YZM5507 VERİ MODELLEME VE İLİŞKİSEL VERİTABANLARI UYGULAMA #4 Aşağıda nitelikleri ve kısıtlamaları verilen veritabanı yapılarını 1NF, 2NF ve 3NF kurallarına göre normalize ediniz. 1. Bir şirketin çalışan ve proje bilgilerini içeren veritabanı: a) Nitelikleri: sicilno, personeladı, personelsoyadı, unvanno, unvanadı, projeno, projeadı, çalışmasaati, birimno, birimadı, birimyönetici b) Kısıtlamalar: i. Bir çalışan sadece bir birimde çalışabilir. ii. Bir çalışan birden fazla projede görev alabilir. iii. Bir çalışanın sadece bir ünvanı olabilir. 2. Bir kliniğin hasta randevu kayıtlarını içeren veritabanı: a) Nitelikleri: DoktorNo, DoktorAdı, HastaNo, HastaAdı, TelefonNo, Adres, RandevuTarihi, RandevuSaati, MuayeneOdası b) Kısıtlamalar: i. Bir hasta aynı gün için birden fazla randevu alabilir. 3. Bir hastanede yatan hastalar ile ilgili veritabanı: a) Nitelikleri: HastaNo, Adı, KoğuşNo, KoğuşAdı, YatakNo, İlaçNo, İlaçAdı, Açıklama, Doz, UygulamaŞekli, GünlükBirim, BaşlangıçTarihi, BitişTarihi i. Hastanın kullandığı bir ilacın günlük kullanım miktarı (GünlükBirim) zaman içerisinde değişiklik gösterebilir. 1. 1NF: Tekrarların oluşturduğu tablo: proje_detay (sicilno, projeno, projeadı, çalışmasaati) Diğer tablolar: personel_detay (sicilno, personeladı, personelsoyadı, unvanno, unvanadı, birimno, birimadı, birimyönetici) Bağımlılıklar: Tam bağımlıklar: {sicilno, projeno} → çalışmasaati (proje_detay tablosu) Kısmi bağımlılıklar: {projeno} → projeadı (proje_detay tablosu) Geçişken bağımlılıklar: sicilno → unvanno, unvanno → unvanadı sicilno → birimno, birimno → {birimadı, birimyönetici} 2NF: Bağımlılıklar: Kısmi bağımlıklar: {sicilno, projeno} → çalışmasaati Kısmi bağımlılıkların kaldırıldığı tablolar: proje_bilgileri (sicilno, projeno, çalışmasaati) projeler (projeno, projeadı) Diğer tablolar: personel_detay (sicilno, personeladı, personelsoyadı, unvanno, unvanadı, birimno, birimadı, birimyönetici) 3NF: Geçişken bağımlıklar: sicilno → unvanno, unvanno → unvanadı sicilno → birimno, birimno → {birimadı, birimyönetici} Geçişken bağımlılıkların kaldırıldığı tablolar: personel_bilgileri (sicilno, personeladı, personelsoyadı, unvanno, birimno) birim_bilgileri (birimno, birimadı, birimyönetici) unvan_bilgileri (unvanno, unvanadı) Diğer tablolar: proje_bilgileri (sicilno, projeno, çalışma_saati) projeler (projeno, projeadı) 2. Fonksiyonel Bağımlılıklar: Doktor No → Doktor Adı Hasta No → Hasta Adı, Telefon No, Adres Hasta No, Randevu Tarihi, Randevu Saati →Doktor No, Muayene Odası 1NF: Tekrar eden gruplar ortadan kaldırılır ve veri atomik halde saklanır. Mevcut tablo yapısında bir hastaya birden fazla randevu verilmesi hasta bilgilerinin tekrarına yol açar. Bu sebeple hasta ve randevu tanımlamaları ayrıştırılmalıdır. Ayrıca 1NF’da verinin atomik olarak saklanması gerektiği için hasta ve doktor adı nitelikleri adı ve soyadı olarak ayrıştırılır. Benzer şekilde hasta adresi uygun parçalara ayrıştırılır. R1 (HastaNo, HastaAdı, HastaSoyadı, TelefonNo, Cadde, Sokak, Şehir) R2 (HastaNo, RandevuTarihi, RandevuSaati, DoktorNo, MuayeneOdası, DoktorAdı, DoktorSoyadı) 2NF: Verilen fonksiyonel bağımlılıklara göre kısmi bağımlılık bulunmamaktadır. Dolayısı ile herhangi bir değişiklik yapmaya gerek yoktur. 3NF: Geçişken bağımlılıklar kaldırılır. Verilen fonksiyonel bağımlılıklara göre R2 tablosunda DoktorNo geçişken bağımlılık oluşturmaktadır. R1(HastaNo, HastaAdı, HastaSoyadı, TelefonNo, Cadde, Sokak, Şehir) R2a(HastaNo, RandevuTarihi, RandevuSaati, DoktorNo, MuayeneOdası) R2b(DoktorNo, DoktorAdı, DoktorSoyadı) 3. Fonksiyonel Bağımlılıklar: HastaNo, İlaçNo, BaşlangıçTarihi → GünlükBirim, BitişTarihi HastaNo → Adı, YatakNo YatakNo → KoğuşNo KoğuşNo → KoğuşAdı İlaçNo → İlaçAdı, Açıklama, Doz, UygulamaŞekli 1NF: Tekrar eden gruplar ortadan kaldırılır ve veri atomik halde saklanır. Mevcut tablo yapısında bir hastaya birden fazla ilaç verilmesi hastanın ve koğuş bilgilerinin tekrarına yol açar. Bu sebeple hasta ve ilaç tanımlamaları ayrıştırılmalıdır. Ayrıca 1NF’da verinin atomik olarak saklanması gerektiği için HastaAdı niteliği adı ve soyadı olarak ayrıştırılır. R1 (HastaNo, Adı, Soyadı, KoğuşNo, KoğuşAdı, YatakNo) R2 (HastaNo, İlaçNo, İlaçAdı, Açıklama, Doz, UygulamaŞekli, GünlükBirim, BaşlangıçTarihi, BitişTarihi) 2NF: Kısmi bağımlılıklar kaldırılır. Verilen fonksiyonel bağımlılıklara göre R2 tablosunda İlaç No niteliği kısmi bağımlılık oluşturmaktadır. R1 (HastaNo, Adı, Soyadı, KoğuşNo, KoğuşAdı, YatakNo) R2a(HastaNo, İlaçNo, GünlükBirim, BaşlangıçTarihi, BitişTarihi) R2b(İlaçNo, İlaçAdı, Açıklama, Doz, UygulamaŞekli) 3NF: Geçişken bağımlılıklar kaldırılır. Verilen fonksiyonel bağımlılıklara göre R1 tablosunda YatakNo ve KoğuşNo nitelikleri geçişken bağımlılık oluşturmaktadır. R1a (HastaNo, Adı, Soyadı, YatakNo) R1b (YatakNo, KoğuşAdı) R1c (KoğuşNo, KoğuşAdı) R2a (HastaNo, İlaçNo, GünlükBirim, BaşlangıçTarihi, BitişTarihi) R2b (İlaçNo, İlaçAdı, Açıklama, Doz, UygulamaŞekli)
© Copyright 2024 Paperzz