Veritabanı Sistemleri Dersi 8. Ünite Sorularla Öğrenelim

Normalleştirme

Aykırılıklar

1- Bir veritabanında görülebilecek aykırılıklardan silme ve güncelleme arasındaki ilişkiyi açıklayınız.

Cevap: Silme aykırılığı, asıl ve detay ilişkili tablolarda, kayıtların detay bilgilerini silmeden asıl tablodaki satırlarının silinmesi ile oluşur. Önceki ünitelerde anlatılmış olan “cascade delete” SQL komutu kullanılması hâlinde bu aykırılık oluşmayacaktır. “Cascade” komutu öncelikle detay tablolardaki kayıtları siler daha sonra detay tabloların bağlı olduğu asıl tablodaki kaydı siler. Güncelleme aykırılığı silme aykırılığına benzer. Asıl ve detay ilişkili tablolarda güncelleme yaparken asıl tablodaki veri yok edilerek detay tablosundaki veriler ilişkisiz bırakılmamalıdır. Bu aykırılığı önlemek için birincil anahtar değerinde güncelleme yaparken detay tablolarda da ilişkili yabancı anahtarlar sırasıyla (cascade) güncellenmelidir.

Normalleştirme

2- İyi tasarlanmış bir veritabanının özellikleri nelerdir?

Cevap: İyi tasarlanmış bir veritabanının özellikleri Veritabanı tasarımı ta​mamlanarak uygulamaya geçirildiğinde veriye SQL olarak adlandırılan veritabanı sorgu dili kullanılarak erişilir. Ancak SQL komutları sonucunda ilgili veri​ye doğru ve tutarlı olarak erişmek, veri bütünlüğünü korumak ve veritabanı içinde artıklığı minimum yap​mak için veritabanı iyi tasarlanmış olmalıdır. İyi bir veritabanı modeli oluşturmanın yöntemi ise normal​leştirme uygulamaktır. Eğer veritabanı iyi tasarlanmış ise en az üçüncü normal formda olmalıdır. Böylece veritabanında veri tekrarı ve fonksiyonel bağımlılıklar nedeniyle oluşabilecek aykırılıklar kaldırılır. Uygula​ma aşamasında daha az saklama yeri kullanması ve daha iyi bir performansta çalışması sağlanmış olur.

3- Veritabanı modelinden sorunlu fonksiyonel bağımlılıklarının aşama aşama kaldırılması işlemine ne ad verilir?

Cevap: Aykırılıklar aynı zamanda veritabanının normal formlara uymaması anlamına gelir. Veritabanı modelleme aşamalarına ilave olarak tasarımımız normalleştirme kural​larına uygun olarak düzenlenmelidir. Normalleştirme ile tablolar ve tablolar arasındaki ilişkiler tekrar düzenlenerek tutarsız bağımlılıklar kaldırılır ve artıklıklar (redundancy) en aza indirilir. İlk defa tasarlanan bir veritabanı mantıksal modelinde ilişkiler (tablo​lar ve tablolar arasındaki ilişki tanımları) normalleştirme kuralları ile iyi yapılandırılmış hâle getirilir. Benzer şekilde mevcut bir veritabanındaki ilişkilerin iyileştirilmesi içinde normalleştirme kullanılır. Normalleştirme kuralları iki öznitelik arasındaki kısıtlara daya​nan fonksiyonel bağımlılık kavramı ile test edilir. Her aşamada uygulanan kurala Normal Form (NF) adı verilir. İlk kural uygulanıyorsa veritabanı tasarımının birinci normal form​da (1NF) olduğu, ikinci kural uygulanıyorsa ikinci normal formda (2NF) olduğu şeklinde ifade edilir. Her aşamada uygulanan normalleştirme kurallarına göre veritabanı tasarım seviyesi tanımlanmış olur. Kısaca ilgili normal formun adı verildiğinde, veritabanı ilişki​lerinin hangi kurallara uyacak şekilde normalleştirildiği anlaşılır. Veritabanı modelinden sorunlu fonksiyonel bağımlılıklarının aşama aşama kaldırılması işlemine normalleştirme denir.

Fonksiyonel Bağımlılık

4- Fonksiyonel bağımlılığı açıklayınız?

Cevap: FONKSİYONEL BAĞIMLILIKNormalleştirme fonksiyonel bağımlılıkların analizine dayalı olarak yapılır. Fonksiyonel bağımlık iki set öznitelik arasındaki kısıtlardır. Bir veritabanındaki herhangi bir tablo T ve bu tablodaki iki öznitelik A ve B olsun. Eğer A özniteliğinin değeri B özniteliğinin değerini belirliyorsa B özniteliğinin A özniteliğine bağımlı olduğu söylenir. B’nin A’ya fonksiyonel bağımlılığı ok işareti ile A→B şeklinde gösterilir. Burada tanımlanan fonksiyonel bağımlılıkmatematiksel bağımlılık değildir. Yani B’nin değeri A’nın değerinden hesaplanmaz. Bunun yerine A’da var olan her bir değer için B’de bir değer olduğunu gösterir. Bu ilişki A özniteliği B özniteliğini belirler şeklinde ifade edilir.

Normalleştirme

5- Kısmi bağımlılık nedir? Açıklayınız?

Cevap: Bir tabloda birincil anahtar bir veya daha fazla öznitelikten oluşabilir. Eğer birincilanahtar iki veya daha fazla öznitelikten oluşuyorsa bu tür birincil anahtarlara birleşik anahtar (composite key) adı verilir. Bu tür tablolarda anahtar olmayan öznitelik, birleşik anahtarın sadece bir kısmı ile belirleniyorsa buna kısmi bağımlılık denir. Bir veritabanında yer alan tabloda A, B, C ve D gibi toplam dört özniteliğin olduğunu varsayalım.Bu tablonun birincil anahtarı da (A, B) olsun. Bu durumda AB→CD fonksiyonel bağımlılığı yazılabilir. Bu tabloda A→C fonksiyonel bağımlılığını da varsayalım. Bu durumda C özniteliği birleşik anahtarın sadece bir kısmı olan A özniteliğine bağımlıdır. Yani C özniteliği A’ya kısmi bağımlıdır.

Veritabanı Tablolarında Normalizasyon

6- Geçişli Bağımlılık nedir? Açıklayınız.

Cevap: Bir tabloda yer alan bazı özniteliklerin başka bir öznitelik aracılığıyla üçüncü bir özniteliğe bağımlı olması geçişli bağımlılık olarak adlandırılır. Bir veritabanında yer alan tablonun A, B, C ve D şeklinde toplam dört özniteliği olsun. Bu tabloda A birincil anahtar olsun. A→B ve B→C fonksiyonel bağımlılıklarının olduğunu varsayalım. Verilen bu iki fonksiyonel bağımlılık incelendiğinde, C özniteliğinin B özniteliği aracılığıyla A özniteliğine bağımlı olduğu görülür. Bu durum geçişli bağımlılık olup A→C fonksiyonel bağımlılığı yazılabilir. Başka bir deyişle geçişli bağımlılıkta; C özniteliği, A özniteliği ile bir diğer öznitelik B üzerinden dolaylı olarak belirlenir.

Normalleştirme

7- Bir vertabanı tasarımında döngüsel bağımlılığın nasıl oluştuğunu örnek vererek açıklayınız.

Cevap: Döngüsel bağımlılıkta döngü kapalı halka, tekrar etme anlamında kullanılmaktadır. Veritabanında bir öznitelik A, diğer öznitelik B’ye bağımlı iken aynı zamanda B özniteliği de A’ya bağımlı ise döngüsel bağımlılık olarak adlandırılır. Döngüsel bağımlılık genelde tablolardaki iki ya da daha fazla alandan oluşan birleşik anahtarlarda oluşur.

Aykırılıklar

8- Aykırılık nedir? Bir veritabanında görülebilecek aykırılıkları sıralayınız.

Cevap: İlişkisel veritabanında bir satırdaki verinin (veya satırlardaki verilerin) hatalı olarak değiştirilmesine aykırılık (anomali) denir. Bir veritabanında görülebilecek üç aykırılık vardır. Bunlar ekleme, silme ve güncelleme aykırılıkları olarak sıralanabilir.

Normalleştirme

9- Bir veri tabanı tasarımında neden normalleştirme yapılmalıdır? Açıklayınız.

Cevap: Normalleştirmenin amaçları;

  • Veri artıklığını minimum yapmak,
  • Aykırılıkları önlemek,
  • Veri bütünlüğünü sağlayan kısıtların uygulamasını basitleştirmek,
  • Veri işlemeyi (ekleme, güncelleme ve silme) daha basit hâle getirmek,
  • Veri tekrarı önlenmiş bir veritabanında ihtiyaç duyulan fiziksel saklama alanı daha az olur. Daha az alanda daha az karmaşık sorgular ile veriye daha hızlı ulaşarak performans artışını sağlamak,
  • Gerçek varlık ve ilişkileri daha iyi temsil edecek veritabanı modeli tasarımını gerçekleştirmek ve ileriki geliştirmeler için sağlam bir taban oluşturmak.

10- Bir veri tabanı tasarımında normalleştirmenin aşamaları nelerdir?

Cevap: Normalleştirme AşamalarıNormal form fonksiyonel bağımlılıklara göre uygulanılan basit kuralların sonucunda oluşturulan veritabanı tasarımını gösteren modelin aşamasıdır.

  1. Normal Form (1NF)Tablolar ilişkilendirilebilir şekilde tasarlanır ve çok değerli öznitelikler kaldırılır.Tablonun her bir satır ve sütun kesişiminde atomik değer olacak şekilde tablo tekrar yapılandırılır. Birden fazla bilgi tek bir sütunda tutulamaz. Tekrarlanan veriler kaldırılır. 1NF’de bir tablodaki tüm alanlar birincil anahtar (birleşik anahtar olabilir) ile doğrudan ya da dolaylı benzersiz olarak belirlenebilir.
  2. Normal Form 2NF)Bu aşamada kısmi fonksiyonel bağımlılıklar kaldırılır. Tüm alanlar birincil anahtarile belirlenebilir olmalıdır. Bu aşamada asıl tablodaki birincil anahtara bağlı olanancak tekrar eden alanlar yeni bir tabloya taşınır. Asıl tablo ile yeni tablo arasında bir ilişkisi kurulur. Yeni tablo tekrar eden alanları tek kayıt altında birincil anahtar ile belirler. Yeni tablodaki birincil anahtar asıl tabloya yabancı anahtar olarak yerleştirilir. Asıl tabloya yerleştirilen yabancı anahtar aynı tablodaki birincil anahtarın bir parçası değildir.
  3. Normal Form (3NF)Geçişli fonksiyonel bağımlılıklar kaldırılır. Yani birincil anahtar tarafından dolaylıolarak belirlenen alanlar yok edilir. Geçişli fonksiyonel bağımlılığı kaldırmak içinasıl tablodaki birincil anahtara dolaylı bağımlı alanlar yeni bir tabloya taşınır.Boyce -Codd Normal Form (BCNF) Fonksiyonel bağımlılıktan geri kalan tüm aykırılıklar kaldırılır. Bir tablo 3NF’de ise ve her belirleyici anahtar olarak tanımlandıysa ilgili tablo BCNF formunda denir. Bu tanıma göre eğer bir tablo BCNF ise bu tablo aynı zamanda 3NF’dir. Ama tersi doğru değildir.
  4. Normal Form (4NF)Çok değerli hiç bir bağımlılık kalmaz. Birincil anahtar olan alanlar ile diğer alanlararasındaki her bir bağımsız bire-çoklu ilişki için ayrı tablo oluşturmak gerekir.Tekrarları önlemek için her tablo mümkün olduğunca küçük parçalara bölünür.
  5. Normal Form (5NF)Bu aşamada döngüsel fonksiyonel bağımlılıklar ve kalan tüm aykırılıklar kaldırılır.Projeksiyon Normal Form (PJNF) olarakta adlandırılır. 4NF’de kaldırılmamış olantekrarlamalar daha küçük tablolara bölünerek kaldırılır.
  6. Etki Alanı Anahtarı Normal Formu (Domain Key Normal Form-DKNF) Bu aşama bir dönüşüm olmak yerine en üst seviyede normalize edilmiş veritabanı kavramsal modeli seviyesinin ölçüsüdür. Normal formlar her aşamada daha fazla kısıt uygulamaktadır. Öncelikle 1nci Normal Form ile tablolar ilişkisel yapıya dönüştürülür ve izleyen aşamalarda sırasıyla kısmi ve geçişli fonksiyonel bağımlılıklar ve aykırılıklar mantıksal veritabanı tasarım modelinden kaldırılır. Veritabanı normalleştirmesinde önce 1NF daha sonra 2NF olmak üzere her aşama sırayla uygulanır. Herhangi bir aşama atlanmaz ve sıralama değiştirilmez.

Normal Formlar

11- Normal formlar nedir? Açıklayınız.

Cevap: Normal form fonksiyonel bağımlılıklara göre uygulanılan basit kuralların sonucunda oluşturulan/dönüştürülen veritabanı tasarımının aşamasını belirtir.1NF, 2NF, 3NF, BCNF, 4NF, 5NF bunlardan yaygın bilinenleridir. Veritabanlarının bu formlara uyması gerekir. 1NF’de çok değerli öznitelikler atomik değerliözniteliklere dönüştürülür. 2NF’de kısmi bağımlılıklar kaldırılır. 3NF’de geçişli bağımlılıklar kaldırılır. 3NF üzeri Normal Formlarda ise diğer bağımlılık ve aykırılıklar kaldırılır.

Normalleştirme

12- Veritabanı normalleştirmesinin ilk aşamasında uygulanan kurallar nelerdir?

Cevap: Birinci Normal Form (1NF)Birinci normal formda çok değerli ve çok parçalı öznitelikler ve tekrar eden gruplar kaldırılır.Veritabanı normalleştirmesinin ilk aşamasında uygulanan kurallar:

  • Tekrar eden gruplar kaldırılır.
  • Birincil anahtar tanımlanır. Birincil anahtar benzersiz olup tekrarlı değerlere izinvermez.
  • Bütün diğer alanlar birincil anahtar ile doğrudan ya da dolaylı benzersiz olarakbelirlenebilir.
  • Her bir alan atomik değer içermelidir.
  • Bir alandaki değerler aynı veritipinde olmalıdır.

Normal Formlar

13- Yukarıda verilen tabloyu 1NF kuralı ile tek tabloyla yapılandırınız.

Cevap:

14- İkinci Normal Form (2NF) kuralları nelerdir?

Cevap: 2NF’de tekrar eden değerler yeni tablolara taşınmaktadır. 2NF kuralları aşağıdadır:

  • Tablolar 1NF olmalıdır.
  • Tüm anahtar olmayan alanlar birincil anahtara tam fonksiyonel bağımlı olmalıdır.
  • Kısmi bağımlılıklar kaldırılmalıdır.

Önceden de bahsedildiği gibi kısmi bağımlılıkfonksiyonel bağımlılığın bir özel durumu olup bir alanın birleşik anahtarın bir parçasına tam bağımlı olması demektir. Kısaca birincil anahtara kısmi bağımlı alanlar yeni bir tablo oluşturarak taşınmalıdır.

15- Üçüncü Normal Form (3NF) kuralları nelerdir?

Cevap: Üçüncü Normal Form (3NF)Normalleştirmenin bu aşamasında 2NF’de karşılaşılan aykırılıkları çözmek için geçişli bağımlılıklarda kaldırılır. 3NF kuralları:

  • Tablolar 2NF olmalıdır.
  • Geçişli bağımlılıklar kaldırılmalıdır. Geçişli bağımlılıkta bir alan birincil anahtarile ikinci bir alan üzerinden dolaylı olarak belirlenir.
  • Ayrılan alanlar için yeni bir tablo oluşturulur.3NF’de bir tablodaki anahtar olamayan tüm alanlar birincil anahtara bağlı olmak zorundadır.

16- Yukarıda verilen tabodaki alanlar arasındaki geçişli bağımlılığı gösteriniz.

Cevap: Öğrenci No--Fakültesi, Fakültesi--Bölümü

17- 3NF’de çoka çok ilişki durumunu bir örnekle açıklayınız.

Cevap: İki tablo arasında çoka çok ilişki oluşursa bu tablolarda yapılacak sorgu sonucunda tek bir satır yerine çoklu satır sonuç gelecektir. Bu sorunu gidermek için yeni bir tablo oluşturulur ve çoka çok ilişkili iki tablonun birincil anahtarları bu tabloya yabancı anahtar olarak eklenir.Kitabınızdaki Normalleştirme ünitesindeki sayfa 188 Şekil 8.12’de Ürünler ve Tedarikçiler arasındaki çoka çok ilişki vardır. Çünkü bir ürün birden fazla tedarikçiden temin edilebileceği gibi, bir tedarikçiden birden fazla ürün alınabilir.Bu çoka çok ilişki yeni bir tablo (Atama) aracılığı ile çoka-bir ilişkilere dönüştürülmüştür. Bu dönüşüm sonucunda verinin saklama alanında da küçülme sağlanacaktır.

18- Aşağıda verilen tabloya 3NF kuralı uygulandığında oluşan tabloların alanlarını belirtiniz.

Cevap: Tablo I Öğrenci No, Adı, Fakültesi Tablo 2 Fakülte, Bölüm

19- 3NF üzeri normalleştirmelerin veritabanında kullanılmama nedenlerini açıklayınız.

Cevap: Günümüzde modern ilişkisel veritabanı modellerinde genelde 3. normal formdan sonrası genelde uygulanmaz. 3NF üzeri normalleştirmeler veritabanında çok fazla tablo ve ilişki oluşturur. Bunun sonucunda da uygulamada oluşturulacak SQL bitişmeleri çok karmaşık olur. Karmaşık bitişmeler ise sorguların tamamlanma sürelerinin uzamasına sebep olur.Dolayısıyla uygulamada veriye erişimde performans düşüşleri yaşanır. Bu nedenle uygulamacılar tabloları daha küçük parçalara bölmek yerine, 3NF veritabanı modeli ile daha az karmaşık bitişme kullanan SQL komutları kullanır ve olası performans düşüşlerinin önüne geçmiş olur.

Aykırılıklar

20- Veritabanı 3NF’ye dönüştürüldüğünde hangi aykırıklar kaldırılmış olur?

Cevap: Veritabanı tasarımındaki hatalar veya ilişiklerde ortaya çıkan bağımlılıklar aykırılıklara neden olur. Üç tür aykırılık vardır. Bunlar ekleme, silme ve güncelleme aykırılıklarıdır. Aykırılıklar normalleştirme sonucundadüzelir. Veritabanı 3NF’ye dönüştürüldüğünde üç aykırılıkta kaldırılmış olur. Ekleme aykırılığı tabloya veri eklenmek istendiğinde ilave veri veya bilgiye ihtiyaç duyulması anlamına gelir. Silme aykırılığında ise tablodanbir satır silindiğinde faydalı bilgiler de silinebilir. Tabloda gereksiz veri tekrarı olması durumunda güncelleme aykırılığı oluşur. Güncelleme aykırılığında tekrarlı veri güncellenmek istendiğinde bütün kopyaların aynı şekilde güncellenmesi gerekir. Aksi hâlde tutarsızlık oluşur.

Sıra-(Soruid) 1-(1065685) 2-(1065477) 3-(1065482) 4-(1065505) 5-(1065527) 6-(1065544) 7-(1065586) 8-(1065660) 9-(1065727) 10-(1065784) 11-(1066131) 12-(1065803) 13-(1065918) 14-(1065933)15-(1065955) 16-(1066074) 17-(1065986) 18-(1066182) 19-(1066111) 20-(1066233)

Yaz Okulu Kayıt ve Ders Seçme
28 Haziran 2021 Pazartesi