Not Defteri

Akılda duracagına burda dursun

Veritabanı Normalizasyon - IV

Veritabanı Normalizasyonu - Bölüm-IV
Bu yazı birkaç seriden oluşmaktadır. Başlıklardan konulara kolayca erişebilirsiniz.

  • Bölüm 1 - Veritabanı normalizasyonu konusunu ele alış ve Hastane örneğinin çıkışı. HASTALAR tablosunun oluşturulması ve ilişkilerinin oluşturulması.
  • Bölüm 2 - Doktor bilgilerini tutacagımız DOKTORLAR tablosunu ve tüm ilişkileirni anlatmaya devam ediyoruz.
  • Bölüm 3 - Muayene, Poliklinik tablolarını oluşturup tablo ilişkilerini sonlandırıyoruz.
  • Bölüm 4 - Testler, örnek data girişi, sorgulamalar vs.
  • Tabloları ve ilişkilerini oluşturduk. iyi güzel de bunların doğru çalışıp çalışmadığını anlamak için biraz örnek datayla denemek lazım. Bu bölümde tabloara data inser edip örnek sorgularla istediğimiz sonucu elde edip etmediğimiz göreceğiz. Örnek dataların gişine benim tabirimle dip tablolardan başlıyorum. yanı HASTALAR tablosuna girş yapabilmek için öncelikle Plaka ve ilceNo bilgiis lazım bana. Bu nednele ILLER tablosuna ve ilçeler tablosuna biraz data ekleyeceğim.

    /* 3 tane il giriyoruz */
    insert into ILLER(Plaka,il) VALUES('01', 'ADANA')
    insert into ILLER(Plaka,il) VALUES('02', 'ADIYAMAN')
    insert into ILLER(Plaka,il) VALUES('03', 'AFYON')
    /* Girdiimiz 3 il iin ikier ilce giriyoruz*/
    insert into ILCELER(Plaka,ilceAdi) VALUES('01','CEYHAN')
    insert into ILCELER(Plaka,ilceAdi) VALUES('01','FEKE')
    insert into ILCELER(Plaka,ilceAdi) VALUES('02','BESN')
    insert into ILCELER(Plaka,ilceAdi) VALUES('02','GERGER')
    insert into ILCELER(Plaka,ilceAdi) VALUES('03','BOLVADN')
    insert into ILCELER(Plaka,ilceAdi) VALUES('03','DAZKIRI')
    Bu sayede insanlar tablosuna ve DOKTORLAR tablosuna Plaka ve ilceNo bilgisini sağlayabilmiş olduk. Fakat DOKTORLAR tablomuzda, UnvanNo ve
    UzmanlıkNo gibi iki farklı alan daha vardı bunları da UNVANLAR tablosundan  ve UZMANLIKLAR tablosundan besliyorduk. Hemen ikişer üçer kayıt da bu tablolara ekleyelim.
    /*UNVANLAR tablosuna giri yapyoruz*/
    insert into UNVANLAR(Unvan) VALUES('Prof.Dr')
    insert into UNVANLAR(Unvan) VALUES('Doc.Dr')
    insert into UNVANLAR(Unvan) VALUES('Yrd.Doc.Dr')
    insert into UNVANLAR(Unvan) VALUES('Uzm.Doc')
    /*UZMANLIKLAR Tablosu*/
    insert into UZMANLIKLAR(Uzmanlk) VALUES('ocuk Doktoru')
    insert into UZMANLIKLAR(Uzmanlk) VALUES('Di Hekimi')
    insert into UZMANLIKLAR(Uzmanlk) VALUES('Dahiliye')
    /*POLIKILINIKLER Tablosu*/
    insert into POLIKLINIKLER(Poliklinik) VALUES('Cocuk')
    insert into POLIKLINIKLER(Poliklinik) VALUES('Dis')
    insert into POLIKLINIKLER(Poliklinik) VALUES('ic hastalıklar)
    şimdi insanlar tablosuna kayıt atabiliriz.
    
    /* insanlar Tablosuna Kayt */
    insert into HASTALAR(Adi,Soyadi,DogumTarihi,Plaka,ilceNo,Adres)
    VALUES('Kemal','Karadag','12-03-1976','03',6,'Falan Sk. No:8')
    insert into HASTALAR(Adi,Soyadi,DogumTarihi,Plaka,ilceNo,Adres)
    VALUES('Ersin','Kopru','01-05-1975','01',5,'Falan Sk. No:10')

    Bu kayıtta Kemal kaydının ili AFYON (03), ilcesi DAZKIRI (6) olarak eklemiş olduk. Şimdi geldi DOKTOR tablomuza data girmeye, Burada bir durumu daha deneyeceğiz. Doktor eğer çift ana dal yaptıysa durumunu.

    Görüldüğü üzere 2 nolu doktor olan Ayse Gurman' nın iki uzmanlık alanını da ekleyebilmiş olduk. Şimdi Muayene girme zamanı 1 nolu hasta Kemal (yani ben :) ) in 
    
    /* DOKTORLAR Tablosu*/
    insert into DOKTORLAR(Adi,Soyadi,DogumTarihi,Plaka,ilceNo,UnvanNo)
    VALUES('Hasan','Atik','10-10-1965','01',1,1) -- Prof.Dr. Hasan Atik
    insert into DOKTORLAR (Adi,Soyadi,DogumTarihi,Plaka,ilceNo,UnvanNo)
    VALUES('Ayse','Grman','10-10-1960','02',4,2) -- Doc.Dr. Ayse Grman
     
    
    /* DOKTOR_UZMANLIKLARI*/
    insert into DOKTOR_UZMANLIKLARI(DoktorNo,UzmanlkNo)
    VALUES(1,1) -- Prof.Dr. Hasan Atil Cocuk Hastalklar
    insert into DOKTOR_UZMANLIKLARI(DoktorNo,UzmanlkNo)
    VALUES(2,1) -- Doc.Dr. Ayse Gurman Cocuk Hastalklar
    insert into DOKTOR_UZMANLIKLARI(DoktorNo,UzmanlkNo)
    VALUES(2,3) -- Doc.Dr. Ayse Gurman Dahiliye

    2 nolu doktorla muayenesini girelim.

    insert into MUAYENELER(Tarih,DoktorNo,HastaNo,PoliklinikNo) VALUES('01-01-2009',2,1,3)
    Bir Sorgu ile girmiş olduğumuz kayıtların soonucunu görelim;
    select M.MuayeneNo,H.Adi as HastaAdi,H.Soyadi as HastaSoyadi,
    U.Unvan,D.Adi as DoktorAdi,D.Soyadi as DoktorSoyadi,
    P.Poliklinik
    from MUAYENELER as M,HASTALAR as H,DOKTORLAR as D,POLIKLINIKLER as P,UNVANLAR as U
    WHERE
    M.HastaNo = H.HastaNo
    and
    M.DoktorNo = D.DoktorNo
    and
    M.PoliklinikNo = P.PoliklinikNo
    and
    D.UnvanNo = U.UnvanNo
    Sonuç olarak;
    Posted: Aug 10 2009, 04:42 by kkaradag | Comments (0) RSS comment feed |
    • Currently 3/5 Stars.
    • 1
    • 2
    • 3
    • 4
    • 5
    Filed under: SQL Server

    Add comment


    (Will show your Gravatar icon)

      Country flag

    biuquote
    • Comment
    • Preview
    Loading