1 DERS Veritaban Kavram BUKET DOAN Marmara niversitesi
1. DERS Veritabanı Kavramı BUKET DOĞAN © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Ders İçeriği ER Şemaları, İlişkisel Veri kavramı ve Normalizasyon 2 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Varlık-İlişki Şemaları Bir personel varlığının aşağıda belirtilen özelliklere sahip olduğu varsayılsın Adı Cadde Sokak Apartman Doğum Tarihi Cadde, sokak ve apartman nitelikleri adres ile birleştirilecektir. Yaş doğum tarihinden elde edilecektir. 3 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Varlık-İlişki Şemaları Yaşı Cadde Adres Sokak Doğum Tarihi Personel Apartman 4 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Varlık-İlişki Şemaları “Müşteri” ve “Hesap” isimli iki varlık kümesinin nitelikleri aşağıdaki gibidir: Müşteri: Adı, Ssk. No, , Adres Hesap: Hesap No, Bakiye Bu veriler ile varlık-ilişki şemasını oluşturunuz. 5 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Varlık-İlişki Şemaları Hesap No Bakiye Adres Müşteri SSK NO Hesap 1: 1 MüşHes Adı Tarih 6 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Varlık-ilişki şemalarının tablo haline dönüştürülmesi SSk No Adı Adres Müşteri={Ssk. No, adı, adres} Hesap No Bakiye Hesap={Hesap No, Bakiye} Müşteri Hesap ilişkisi için={SSk. No, Hesap No, Tarih} SSk No Hesap No Tarih 7
Varlık-İlişki Şemaları Bir müşteri birden fazla otomobile sahip olabilir ve her otomobil modeline birden fazla müşteri sahip olabilir. Bu durumda otomobiller ve müşteriler arasındaki ilişki çoktançoğa biçimindedir. Bu ilişkinin varlık-ilişki şemasını çiziniz. 8 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Varlık-İlişki Şemaları Adı Oto plaka Bakiye Renk Müşteri No Sahip Müşteri Otomobil M: N Tarih Müşteri ve otomobil varlıkları ve sahip ilişkisi için varlık-ilişki şeması 9 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Varlık-İlişki Şemaları • • Müşteri={müşteri no, adı} Otomobil={oto model, renk} Sahip={müşteri no, oto plaka, tarih} Sahip isimli ilişkiye dayanarak aşağıdaki tablo oluşturulabilir. Müşteri no oto plaka Tarih 345 34 GF 67 12. 2005 346 45 HN 34 15. 11. 2002 347 36 BN 67 12. 2005 348 34 AV 45 15. 11. 2002 10
İkiden Büyük Dereceli İlişki Kümelerinin Dönüştürülmesi Eğer bir ilişki kümesi ikiden çok varlık kümesi arasında kurulmuşsa (ilişki üçlü, dörtlü, . . bir ilişki ise), ilişkisel modelde bu ilişki kümesine karşılık ayrı bir ilişki şeması oluşturulur. Oluşturulan ilişki şemasında, aralarında ilişki kurulan tüm varlık kümelerinin anahtarlarına ek olarak, varsa ilişkinin tanımlayıcı niteliklerine yer verilir. © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Örnek TARİH KONSNO SALON KONSER GÖREVİ KATILIM ESNO ESER ESADI BESTECİ ESTÜRÜ MZSNO MÜZİSYEN SOYADI KONSER, ESER ve MÜZİSYEN varlık kümeleri arasındaki KATILIM adlı üçlü ilişki kümesini düşünelim. © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Örnek TARİH KONSNO SALON KONSER GÖREVİ KATILIM ESNO ESER ESADI BESTECİ ESTÜRÜ MZSNO MÜZİSYEN SOYADI Bu ilişki kümesi hangi konserde, hangi eser çalınırken orkestrada hangi müzisyenlerin yer aldığını ve görevlerinin ne olduğunu göstermektedir. © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Örnek TARİH KONSNO GÖREVİ SALON KONSER KATILIM ESNO ESER ESADI BESTECİ ESTÜRÜ MZSNO MÜZİSYEN SOYADI KONSER(KONSNO, TARİH, SALON) ESER(ESNO, ESADI, ESTÜRÜ, BESTECİ) MÜZİSYEN(MZSNO, ADI, SOYADI) © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Örnek Üçlü KATILIM ilişkisi için, ilişkisel modelde aşağıdaki ilişki şeması oluşturulur: KATILIM (KONSNO, ESNO, MZSNO, GÖREVİ) Eğer varlık kümeleri arasındaki ikili eşlemelerin (konsereser, konser-müzisyen ve eser-müzisyen) her üçü de çoktan-çoğa ise KATILIM ilişkisinin anahtarı, yukarıdaki ilişki şemasında görüldüğü gibi üç varlık kümesinin anahtarlarının birleşiminden oluşur. © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
İlişkisel Model İlişkisel model, günümüzde en yaygın biçimde kullanılan bir modeldir. İlişkisel model varlıklar arasındaki bağlantının içerdiği değerlere göre sıralanması esasına dayanır. Bu yaklaşımda veri tabanındaki tüm ilişkiler tablolar tanımlanmaktadır. 16 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi biçiminde
İlişkisel Veri Tabanı İlişkisel veri tabanı, her biri özel isimlere sahip tablolardan oluşur. Burada her bir tablo bir varlığa veya bir ilişkiye karşılık gelmektedir. Tablonun sütunları nitelikleri, satırları ise bu niteliklerin değerlerini ifade eder. Her bir satır bir “kayıt” olarak da düşünülebilir. Anahtar alan tablonun tanımlayıcısıdır. 17 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Tablonun özellikleri Tablolar sütunlardan oluşur. Her bir sütunun ayrı bir adı vardır. Her bir sütun aynı niteliğin tanımladığı aynı etki alanının belirlediği değerleri içerir. Satırların ve sütunların sırası önemsizdir. Her bir satır birbirinden farklıdır. 18 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
İlişki Gösterimi İlişkinin o anki değerleri (relation instance) bir tablo tarafından gösterilir. r deki bir t elemanı bir değerdir ve tablodaki bir satır (row) ile gösterilir. Değerlerin sırası önemli değildir. (Değerler keyfi sırada olabilir) Müşteri Adı Ahmet Smith Curry Lindsay cadde Atatürk North Park Öznitellikler (veya sütunlar) attributes (or columns) Şehir İstanbul Rye Pittsfield Değerler (yada satırlar) tuples (or rows) customer 19 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
TEMEL KAVRAMLAR Alan(Field) : Veritabanı tabloları içerisinde saklanacak verinin içeriğine göre, fiziksel tipi belirlenen (Sayı, String vb. ) ve isimlendirilen bölümlere denir. (Örnek : Bir field içerisinde bir iş yerindeki personele ait "isim" bilgisi saklanacak ise, programın kontrolü açısından alan(field) ismininde içerik ile ilgili seçilmesi tercih edilir yani "Personel. Isim" veya benzer bir alan(field) ismi seçilmelidir. Tablo(Table) : İçeriklerine göre ayrıştırlımış alan(field) topluluklarına tablo denir, tablolar veri tabanlarını oluşturan bilgi depolarıdır. 20 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
BİRİNCİL VE YABANCI ANAHTAR Birincil Anahtar(Primary Key) : Üzerinde işlem yapılan tabloya ait kayıtları benzersiz olarak tanımlayan alanlardır. Örneğin bir okulu ele alalım burda öğrencileri benzersiz biçimde tanımlayabilen en önemli öge şüphesiz ki ögrenci numarasıdır. Bir okulda, isim, soyisim gibi kimilik bilgilerl aynı olabilecek bir çok öğrenci mevcut olabilir fakat, hiç bir öğrencinin, o öğrenciyi tanımlayan, öğrenci numarası aynı olamaz benzer bir mantık ile telefon numaraları da düşünülebilir. 21 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
BİRİNCİL VE YABANCI ANAHTAR Yabancı Anahtarlar(Foreign Keys) : Tablo içerisindeki verilerin birbirleri iletişim kurabilmeleri amacı ile kullanılan benzersiz olması gerekmeyen alanlardır. Örneğin içerisinde "Ogrenci_No" birincil anahtarını barındıran "Ogrenciler" isimli tablonun var olduğunu varsayalım ayrıca "Notlar" isimli bir tablonun içerisinde, aynı "Ogrenci_No" alanını çesitli defalar yabancı anahtar olarak kullanmamız gerekebilir (Çünkü, genellikle bir öğrencinin birden fazla dersi ve dolayısıyla "Notlar" isimli tabloya işlenmesi gereken birden fazla sınav notu olacaktır. ) 22 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
BİRİNCİL VE YABANCI ANAHTAR BÖLÜM ÇALIŞANLAR BİRİNCİL ANAHTAR YABANCI ANAHTAR 23 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Fonksiyonel Bağımlılık R’nin ilişkiyi(relation) ; A ve B’nin bir nitelik veya nitelik setini temsil ettiğini düşünelim. Eğer R ilişkisinde her bir A değeri , tam olarak bir B değerine işaret ediyorsa ; B, A ya fonksiyonel olarak bağımlıdır diyebiliriz A -> B (A fonksiyonel olarak B’yi tanımlar. ) 24 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Fonksiyonel Bağımlılık ID İSİM 123 Ahmet ŞEHİR Ankara 324 Derya Ankara 574 Derya İstanbul Kişiler tablosu ile ilgili neler söyleyebiliriz? “Eğer ID numarasını biliyorsam, ismini de biliyorum” ID numarası ismi belirmektedir. İSİM niteliği, ID’ye fonksiyonel bağımlıdır. 25 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Fonksiyonel Bağımlılık A -> B A fonksiyonel olarak B’yi tanımlar. ) Yukarıdaki ogrenci tablosunu ele aldığımız zaman aşağıdaki bağımlılıklardan söz edebiliriz. ogr_no -> ogr_name ogr_no - > ogr_name , bolum , sinif , kimlik_no - > ogr_no , ogr_name , bolum , sinif 26 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Normalleştirme • İlişkisel veritabanı oluşturmak için normalleştirmeyi bilmek çok önemlidir. • Normalleştirme veri kayıplarını engellemek, verinin tekrarını azaltmak, silme, güncelleme eklemede çıkan zorlukları en aza indirmek icin yapılan operasyonlar toplamidir • Amac veritabanına etkinlik kazandırmaktır. • Herhangi bir tablonun tekrarlı veriler içerdiği duruma birinci normal form denir. • Birinci normal formdaki bir tabloda tekrarlayan sütunlar bulunmamalıdır. • Normalizasyon (Ayrıştırma), bir tabloyu tekrarlardan arındırmak için daha az satır ve sütun içeren alt kümelerine ayrıştırma işlemidir 27 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Normalleştirme(Normalizasyon) Normalleştirilmemiş bir tabloda çok değerli nitelikler ve tekrarlanan gruplar vardır. 28 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Normal Form Normalize Edilmemiş– Çok değerli nitelikler ve tekrarlayan gruplar vardır 1 NF: Çok değerli nitelikler ve tekrarlayan gruplar ortadan kaldırılır. 2 NF : 1 NF + kısmi bağımlılık ortadan kaldırılır. 3 NF : 2 NF + Geçişken bağımlılık ortadan kaldırılır. © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Birinci Normal Form l Örneğin kitap tablosunda, birden fazla yazarı olan kitap için yazar 1, yazar 2, yazar 3 diye alanlar açsaydık, bu kurala uymamış olurduk. Böyle bir durumda, ayrıca yazarlar tablosu da oluşturarak kuralı çiğnememiş oluruz. Genellikle yapılan hata: Verileri virgül veya bir başka karakter ile ayırıp aynı alana girmek. Daha sonra program içerisinde split ile bu değerleri ayırmak. Ancak bu ilişkisel veritabanının doğasına terstir. © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
BİRİNCİ NORMAL FORM Veri tabanı için temel kuralları içerir. Tekrarlayan sütunların olması engellenir. İlişkili veri gruplarına ait ayrı tablolar oluşturulmalı ve her satır birincil anahtar ile temsil edilmelidir. © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Müşterilere ait telefon numaralarını içerecek bir veritabanı tasarlamak istediğimizde aşağıdaki tasarımlar Birinci Normal formda değildir. © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Birinci Normal Form Çözüm iki ayrı tablo olarak tasarım yapmaktır © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
İkinci Normal Form • Bir tablo için, anahtar alan dışındaki her alan, birincil anahtar olarak tanımlı tüm alan veya alanlara bağlı olmak zorundadır. • Kayıtlar bir tablonun birincil anahtarı dışında bir öğeye bağımlı olmamalıdır. • KISMİ BAĞIMLILIKLAR KALDIRILMALIDIR. • Birden çok kayıt için geçerli olan değer kümeleri için ayrı tablolar oluşturmalıdır. • Bu tabloları bir yabancı anahtarla ilişkilendirilmesi gerekir 34 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Kısmi bağımlılık(Partial Dependency) Anahtar olmayan alan, birleşik anahtarın sadece bir kısmı ile belirlenebiliyorsa, buna kısmi bağımlılık denir. © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
2 NF’a Geçiş Nitelikler, birincil alanın tamamına bağımlı olmalıdır, bir kısmına değil. Kısmi bağımlı olan ayrı bir tabloya alınmalıdır. Tablo (Öğrenci. ID, İsim, Kurs. ID, Kredisi) © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
2 NF’a Geçiş Öğrenciler (Öğrenci. ID, İsim) Kurslar (Kurs. ID, Kredisi ) Öğrenci_Kurs (Öğrenci. ID Kurs. ID) © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Kısmi bağımlılık (Partial Dependency) • Ders No ve Bölüm no birlikte Ders Adını tanımlamaktadır • Bölüm No ise, bölüm adını tanımlamaktadır. • Bölüm adının Ders no ile bir bağlantısı yoktur. Bölüm No Ders Adı Bölüm Adı 2232 38
İKİNCİ NORMAL FORM • Tekrarlayan veriler tablodan kaldırılmalıdır. • Satırlarda tekrarlanan veri gruplarını engellemek için bu alanları ayrı bir tabloya taşımak gerekmektedir. • Oluşturulan tablolar arasındaki ilişkiler yabancı anahtar (foreign key) aracılığı ile oluşturulur. © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Kısmi Bağmlılık Proje. Detay (İşçi. Id, Proje. ID, İşçi. Adı, Projenin Adı, Projesinin Süresi) İşçi. Adı İşçi. ID ye bağlı, Projenin. Adı ise Proje. Id ye bağlı) 40 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
l l l İşçiler (İşçi. ID, İşçi Adı) Projeler (Proje. ID, Proje Adı) Detaylar (İşçi. ID, Proje. ID, Kaç Gun) 41 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Geçişken Bağımlılık( Transitive Dependency) A, B, C niteliklilerini içeren 3 nitelikli bir tabloda A, B, ve C için A B B C fonksiyonel bağımlılıkları bulunmakta ise, C kısmi olarak A’ya B aracılığı ile bağımlıdır. 42 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Üçüncü Normal Form Geçişken bağımlılıklar kaldırılmalıdır. Her sütun direkt olarak birincil anahtara bağımlı olmalıdır Birincil anahtara bağlı olmayan alanlar ayrı bir tabloya alınmalıdır. Üçüncü normal formda tablonun, Primary Key ile direk ilişkisi bulunmayan, ancak diğer alanlara bağlı alanlar bulunur. © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Geçişken Bağımlılık( Transitive Dependency) • 3 NF’ a geçiş • İşçi. ID, İşçi. Adı, Bölüm Yöneticisi • Bölüm yöneticisi alanı anahtar olmayan Bölüm alanına bağlıdır.
3 NF • • Geçişken bağımlılığı ortadan kaldırmak için, Manager alanı için ayrı bir tablo oluşturulur. İşçiler( İşçi. ID, İşçi. ID İşçi. Adı Bölümü) Bölümler (Bölüm, Yöneticisi)
Örnek ISBN Kitap. Adı ISBN Yayıncı Adres Her nitelik doğrudan veya dolaylı birincil anahtara bağlıdır. Tekrarlayan nitelik yoktur. 1 NF özellikleri taşımaktadır. © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Örnek ISBN Kitap. Adı ISBN Yayıncı Adres İlişki en azından 1 NF özelliklierini taşımaktadır. Birleşik birincil anahtar yoktur. Bu nedenle kısmi bağımlılık olamaz. Bu tablo 2 NF’dedir. © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Örnek ISBN Kitap. Adı ISBN Yayıncı Adres Yayıncı anahtar olmayan bir alandır ve diğer anahtar olmayan bir alan olan adresi belirlemektedir. Geçişken bağımlılık söz konusudur. İlişki 3 NF’de değildir. © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Örnek ISBN Kitap. Adı ISBN Yayıncı Adres Sonuç olarak bu tablo 2 NF’dedir. © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
DÖRDÜNCÜ NORMAL FORM Tablolarda çok değerli bağımlılık yer almamalıdır. Ders Kitap Öğretim Üyesi ELC 212 Silberschatz John D Yandaki tabloda Öğretim Üyesi ELC 212 Nederpelt John D dersle ilişkili durumdadır. ELC 212 Silberschatz William M ELC 212 Fakat dersler ve kitaplar birbirinden Nederpelt William M ELC 212 Silberschatz Christian G bağımsızdır. ELC 212 dersi için yeni ELC 212 Nederpelt Christian G bir kitap eklemek istersek, Öğretim EDC 102 Silberschatz John D üyesinin adını da yazmak zorunda EDC 102 Silberschatz William M kalırız. © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
DÖRDÜNCÜ NORMAL FORM Aynı şekilde öğretim üyesi eklemek istersek kitap adı yazmak zorunda kalırız. Bu alanları boş bırakırsak yine tabloda BOŞ alan soruna neden olmuş oluruz. Bu problemi ayrı iki tablo ile çözebiliriz. Ders DERS KİTAP DERS ÖĞRETİM ÜYESİ Kitap Öğretim Üyesi ELC 212 Silberschatz John D ELC 212 Nederpelt John D ELC 212 Silberschatz William M ELC 212 Nederpelt William M ELC 212 Silberschatz Christian G ELC 212 Nederpelt Christian G EDC 102 Silberschatz John D EDC 102 Silberschatz William M © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
1 NF MüŞ. No Ev. No Müş. Adı Adres Kira. Başl. Kira. Bitiş Kira Sahip. No Sahip. Adı 52 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
2 NF Müş. No Ev No Müş. Adı Adres Müş. No Kira İşlem. No Sahip. No Kira. Başl. Kira. Bitiş Sahip. Adı 53 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
3 NF İşlem No Adres Kira Sahip. No 54 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi Sahip. Adı
3 NF(TÜM TABLOLAR) Müş. No İşlem No Müş. Adı Adres Müş. No Kira İşlem. No Kira. Başl. Sahip. No Kira. Bitiş Sahip. Adı 55 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
1 NF İşçi No İşçi Adı Bölüm Proje Id Başlangıç Tarihi Yönetici Konum Hafta
1 NF • 2 NF’a geçiş için kısmi bağımlılıklar kaldırılmalıdır. • Proj başlangıç tarihi Proj-id’ye bağımlıdır.
İşçi No Proje. ID 2 NF Konum Proje. ID BaşlangıçTarihi Hafta
• 3 NF’ a geçiş Yönetici alanı anahtar olmayan Bölüm. alanına bağlıdır.
3 NF • Yönetici alanı için ayrı bir tablo oluşturulur. İşçi. No Adı Bölümü Yönetici
TÜM TABLOLAR © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
- Slides: 61