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;