Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
1
1.DERS Veritabanı Kavramı BUKET DOĞAN
2
Ders İçeriği ER Şemaları, İlişkisel Veri kavramı ve Normalizasyon
3
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.
4
Varlık-İlişki Şemaları
Yaşı Cadde Personel Doğum Tarihi Adres Sokak Apartman
5
Varlık-İlişki Şemaları
“Müşteri” ve “Hesap” isimli iki varlık kümesinin nitelikleri aşağıdaki gibidir: Müşteri: Adı, SskNo, , Adres Hesap: Hesap No, Bakiye Bu veriler ile varlık-ilişki şemasını oluşturunuz.
6
Varlık-İlişki Şemaları
Adres Adı Müşteri 1:1 Hesap Hesap No Bakiye MüşHes Tarih SSK NO
7
Varlık-ilişki şemalarının tablo haline dönüştürülmesi
SSk No Adı Adres Müşteri={SskNo, adı,adres} Hesap No Bakiye Hesap={Hesap No, Bakiye} Müşteri Hesap ilişkisi için={SSkNo, Hesap No, Tarih} SSk No Hesap No Tarih
8
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.
9
Varlık-İlişki Şemaları
Adı Oto plaka Bakiye Renk Müşteri No Sahip M:N Otomobil Müşteri Müşteri Tarih Müşteri ve otomobil varlıkları ve sahip ilişkisi için varlık-ilişki şeması
10
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 346 45 HN 34 347 36 BN 67 348 34 AV 45
11
İ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.
12
Örnek GÖREVİ SALON ESNO TARİH ESADI KATILIM KONSNO KONSER ESER BESTECİ ESTÜRÜ MZSNO MÜZİSYEN SOYADI ADI KONSER, ESER ve MÜZİSYEN varlık kümeleri arasındaki KATILIM adlı üçlü ilişki kümesini düşünelim.
13
Örnek GÖREVİ SALON ESNO TARİH ESADI KATILIM KONSNO KONSER ESER BESTECİ ESTÜRÜ MZSNO MÜZİSYEN SOYADI ADI 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.
14
Örnek KONSER(KONSNO, TARİH, SALON) ESER(ESNO, ESADI, ESTÜRÜ, BESTECİ)
GÖREVİ SALON ESNO TARİH ESADI KATILIM KONSNO KONSER ESER BESTECİ ESTÜRÜ MZSNO MÜZİSYEN SOYADI ADI KONSER(KONSNO, TARİH, SALON) ESER(ESNO, ESADI, ESTÜRÜ, BESTECİ) MÜZİSYEN(MZSNO, ADI, SOYADI)
15
Ö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 (konser-eser, 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.
16
İ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 biçiminde tanımlanmaktadır.
17
İ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.
18
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.
19
İ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) Ahmet Smith Curry Lindsay Müşteri Adı Atatürk North Park cadde İstanbul Rye Pittsfield Şehir customer Öznitellikler (veya sütunlar) attributes (or columns) Değerler (yada satırlar) tuples (or rows)
20
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 "PersonelIsim" 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.
21
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.
22
BİRİNCİL VE YABANCI ANAHTAR
Yabancı Anahtarlar(Foreign Keys) : Tablo içerisindeki verilerin birbirleri ile 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.)
23
BİRİNCİL VE YABANCI ANAHTAR
BİRİNCİL ANAHTAR BÖLÜM ÇALIŞANLAR YABANCI ANAHTAR
24
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.)
25
Fonksiyonel Bağımlılık
ID İSİM ŞEHİR 123 Ahmet 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.
26
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 kimlik_no - > ogr_no , ogr_name , bolum , sinif
27
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
28
Normalleştirme(Normalizasyon)
Normalleştirilmemiş bir tabloda çok değerli nitelikler ve tekrarlanan gruplar vardır.
29
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.
30
Birinci Normal Form Örneğin kitap tablosunda, birden fazla yazarı olan kitap için yazar1, yazar2, yazar3 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.
31
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.
32
Müşterilere ait telefon numaralarını içerecek bir veritabanı tasarlamak istediğimizde aşağıdaki tasarımlar Birinci Normal formda değildir.
33
Birinci Normal Form Çözüm iki ayrı tablo olarak tasarım yapmaktır
34
İkinci Normal Form KISMİ BAĞIMLILIKLAR KALDIRILMALIDIR.
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
35
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.
36
2NF’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 olan ayrı bir tabloya alınmalıdır. Tablo (ÖğrenciID, İsim, KursID, Kredisi)
37
2NF’a Geçiş Öğrenciler (ÖğrenciID, İsim) Kurslar (KursID, Kredisi ) Öğrenci_Kurs (ÖğrenciID KursID)
38
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 No Ders Adı Bölüm Adı 2232 38
39
İ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.
40
Kısmi Bağmlılık ProjeDetay (İşçiId, ProjeID, İşçiAdı, Projenin Adı, Projesinin Süresi) İşçiAdı İşçiID ye bağlı, ProjeninAdı ise ProjeId ye bağlı)
41
İşçiler (İşçiID, İşçi Adı)
Projeler (ProjeID, Proje Adı) Detaylar (İşçiID, ProjeID, Kaç Gun)
42
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
43
Üçü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.
44
Geçişken Bağımlılık( Transitive Dependency)
3NF’ a geçiş İşçiID, İşçiAdı, Bölüm, Bölüm Yöneticisi Bölüm yöneticisi alanı anahtar olmayan Bölüm alanına bağlıdır.
45
3NF Geçişken bağımlılığı ortadan kaldırmak için,
Manager alanı için ayrı bir tablo oluşturulur. İşçiler( İşçiID, İşçiAdı Bölümü) Bölümler (Bölüm,Yöneticisi)
46
Örnek ISBN KitapAdı ISBN Yayıncı Yayıncı Adres
Her nitelik doğrudan veya dolaylı birincil anahtara bağlıdır. Tekrarlayan nitelik yoktur.1NF özellikleri taşımaktadır. ISBN KitapAdı ISBN Yayıncı Yayıncı Adres
47
Örnek ISBN KitapAdı ISBN Yayıncı Yayıncı Adres
İlişki en azından1NF özelliklierini taşımaktadır. Birleşik birincil anahtar yoktur. Bu nedenle kısmi bağımlılık olamaz. Bu tablo 2NF’dedir. ISBN KitapAdı ISBN Yayıncı Yayıncı Adres
48
Örnek ISBN KitapAdı ISBN Yayıncı 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 3NF’de değildir. ISBN KitapAdı ISBN Yayıncı Yayıncı Adres
49
Sonuç olarak bu tablo 2NF’dedir.
Örnek Sonuç olarak bu tablo 2NF’dedir. ISBN KitapAdı ISBN Yayıncı Yayıncı Adres
50
DÖRDÜNCÜ NORMAL FORM Tablolarda çok değerli bağımlılık yer almamalıdır. Yandaki tabloda Öğretim Üyesi dersle ilişkili durumdadır. Fakat dersler ve kitaplar birbirinden bağımsızdır. ELC212 dersi için yeni bir kitap eklemek istersek, Öğretim üyesinin adını da yazmak zorunda kalırız. Ders Kitap Öğretim Üyesi ELC212 Silberschatz John D Nederpelt William M Christian G EDC102
51
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 KİTAP DERS ÖĞRETİM ÜYESİ Ders Kitap Öğretim Üyesi ELC212 Silberschatz John D Nederpelt William M Christian G EDC102
52
1NF MüŞ.No EvNo Müş.Adı Adres KiraBaşl KiraBitiş Kira SahipNo SahipAdı
53
2NF Müş.No Müş.Adı Müş.No İşlemNo KiraBaşl. KiraBitiş
Ev No Adres Kira SahipNo SahipAdı
54
3NF İşlem No Adres Kira SahipNo SahipNo SahipAdı
55
3NF(TÜM TABLOLAR) Müş.No Müş.Adı Müş.No İşlemNo KiraBaşl. KiraBitiş
İşlem No Adres Kira SahipNo SahipNo SahipAdı
56
1NF İşçi No İşçi Adı Bölüm Yönetici
İşçi No Proje Id Başlangıç Tarihi Konum Hafta
57
1NF 2NF’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.
58
2NF İşçi No ProjeID Konum Hafta ProjeID BaşlangıçTarihi
59
3NF’ a geçiş Yönetici alanı anahtar olmayan Bölüm . alanına bağlıdır.
60
3NF Yönetici alanı için ayrı bir tablo oluşturulur. İşçiNo Adı Bölümü
Bölüm Yönetici
61
TÜM TABLOLAR
62
ÖDEV (NORMALİZASYON) Öğrenci No İsim Soyisim B.N Bölümü Ders Kodu
Aldığı Dersler TC NO Dersin Öğretmeni Oda Numarası Dahili Tel. RAMAZAN DEMİR 1 Elektronik Bilgisayar ELC346 Veritabanı 23322 Buket Doğan D406 217 ELC223 Mikroişlemciler 33332 H.Hüseyin Çelik D508 223 ELC123 Elektronik 22222 Hayriye Korkmaz D506 219 AHMET YILMAZ 2 Makine Eğitimi ELC124 Mukavemet 1111 Mustafa Kurt A433 313 ELC125 Teknik Resim 11111 Hasan Tahsin AYŞE DOĞAN 62
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.