• Buradasın

    Veritabanı Normalizasyon Eğitim Videosu

    youtube.com/watch?v=URskGHtvFlE

    Yapay zekadan makale özeti

    • Bu video, bir eğitmen tarafından sunulan veritabanı yönetim sistemleri ve normalizasyon konulu kapsamlı bir eğitim dersidir.
    • Video, veritabanı tablolarında kullanılan anahtar kavramları (super key, candidate key, primary key) ile başlayıp, normalizasyon kurallarını detaylı şekilde ele almaktadır. İçerikte birinci normal form (1NF), ikinci normal form (2NF) ve fonksiyonel bağımlılık kavramları teorik bilgilerle ve pratik örneklerle açıklanmaktadır. Eğitmen, Excel ve PG Admin gibi araçlar kullanarak tablolar üzerinde normalizasyon uygulamalarını göstermektedir.
    • Video, veritabanı tasarımı ve normalizasyonun neden önemli olduğu, normalizasyonun çözdüğü bozukluklar (ekleme, güncelleme ve silme bozuklukları) ve tabloları nasıl normal formlara dönüştürme konularını içermektedir. Ayrıca, many-to-many ilişkileri nasıl ele alacak şekilde tabloları bölmek ve bir'e çok (one-to-many) ilişki kurma gibi pratik uygulamalar da gösterilmektedir.
    Functional Dependency ve Anahtar Kavramları
    • City ve country arasındaki ilişki incelendiğinde, bir şehir sadece bir ülkeye ait olduğu için city country'yi belirler, ancak country city'yi belirlemez.
    • Bir tabloda primary key ve unique key olarak seçilen alanlar (örneğin customer number veya id) tek bir kaydı simgeleyebilir ve diğer tüm değerleri belirler.
    • Functional dependency, bir değerin her zaman eşsiz bir sonucu elde etmesi durumudur; bu kavram veritabanı sınavlarında sıklıkla sorulur.
    03:26Anahtar Türleri
    • Bu derste superkey, candidate key ve primary key kavramları ele alınacaktır; bu anahtarlar aynı görevi görse de aralarında farklar vardır.
    • Anahtar, tablodaki herhangi bir kaydı eşsiz bir şekilde belirleyebilen bir veya birden fazla kolon (attribute) olarak tanımlanır.
    • Eğer X ve Y değerlerini bildiğimizde sadece tek bir kaydı elde edebiliyorsak, X ve Y bir anahtar oluşturur.
    06:06Anahtar Bulma Yöntemi
    • Tabloda X değeri tek başına her kayıtta eşsiz olduğundan, X kendi başına bir anahtar oluşturur.
    • Eğer X tek başına bir anahtar ise, X ile diğer kolonların (Y, Z, T) birleşimi de bir anahtar oluşturur.
    • X olmadan oluşan kombinasyonlar (örneğin YZ) tablodaki her kaydı eşsiz bir şekilde belirleyemezse, bu kombinasyon bir anahtar oluşturamaz.
    10:11Super Key ve Diğer Anahtar Türleri
    • Anahtar yapısına "key" denir ve teknik olarak "super key" olarak belirtilir.
    • Bir tabloda X değerleri unique olduğundan X tek başına bir anahtar oluşturur ve X ile diğer kolonların birleşimi de anahtar oluşturur.
    • Y ve Z'nin birleşimi de eşsiz olduğundan bir anahtar oluşturur.
    11:57Cand Key Kavramı
    • Cand key, birincil anahtar olmaya aday anlamına gelen bir kavramdır.
    • Cand key, key'ler arasında gereksiz tüm elemanları attığımızda bulunabilir.
    • Bir cand key'de gereksiz bir etrib bulunmaz, alt kümesi boş küme olan key'ler cand key'dir.
    14:41Primary Key Özellikleri
    • Primary key mutlaka tek olmalı ve değişmemeli.
    • Primary key'ler null değerler alamaz.
    • Cand key'lerden birini primary key olarak seçebiliriz.
    15:58Gerçek Hayattan Örnek
    • Örnek tabloda öğrencilerin sınavdan aldığı not bilgileri yer alıyor.
    • Tabloda id, exam_id ve score sütunları bulunuyor.
    • Id tek başına bir super key oluştururken, id ve exam_id birleşimi de bir key oluşturur.
    22:01Normal Form Kavramı
    • İkinci normal form, bir tablonun birinci normal formu da uyması gereken bir kuraldır.
    • İkinci normal formda tabloların herhangi bir partial dependency'si olmaması gerekiyor.
    • Verilen tabloda öğrencilerin bilgileri ve kursların bilgileri bir arada yer alıyor.
    23:31Veritabanı Tasarımında Yaşanan Sorunlar
    • Öğrenciler tablosunda hem öğrencilerin hem de kursların bilgileri yer alıyor, bu durum veritabanı tasarımı için sıkıntılı bir durum oluşturuyor.
    • Kurs bilgilerinin değişmesi durumunda, tüm girdileri tek tek değiştirmek gerekiyor ve bu hatalara yol açabiliyor.
    • Aynı öğrenci birden fazla kayda sahip olduğunda, öğrenci bilgilerinin değişmesi durumunda da tüm kayıtları tek tek güncellemek gerekiyor.
    25:04İkinci Normal Form Kullanımı
    • İkinci normal form kurallarına uymak için öğrencileri ve kursları bir şekilde ayırmak gerekiyor.
    • Üniversite veritabanında öğrenciler ve kurslar arasında many-to-many ilişkisi var; bir öğrenci birden fazla kursa kaydolabilir ve bir kursa da birden fazla öğrenci kaydolabilir.
    • İkinci normal form uygulanması, many-to-many ilişkisini sağlamak için gereklidir.
    26:29Anahtarların Belirlenmesi
    • Tablonun candidate key'leri ve primary key'leri belirlenmelidir.
    • Sadece öğrenci ID veya sadece kurs ID tek başına candidate key olamaz çünkü tekrar edebiliyor.
    • Öğrenci ID ve kurs ID'nin birleşimi her zaman unique olduğu için bu ikili candidate key ve aynı zamanda primary key olarak seçilebilir.
    28:33Partial Dependency Kavramı
    • Partial dependency, candidate key'lerin herhangi bir alt kümesinin, candidate key içinde olmayan bir attribute'ı tek başına belirleyebilmesi durumudur.
    • Örneğin, kurs ID tek başına kurs ismi, kitap adı ve kapasiteyi belirleyebiliyor.
    • Öğrenci ID tek başına öğrenci ismini, yılını ve not ortalamasını belirleyebiliyor.
    • Skor, sadece öğrenci ID veya kurs ID tek başına belirleyilemiyor, bunun için hem öğrenci ID hem de kurs ID gerekli.
    32:42Tabloları Parçalama
    • Partial dependency durumunu yok etmek için tabloyu parçalamak gerekiyor.
    • Öğrenciler ve kurslar bilgilerini iki ayrı tabloya yerleştirmek gerekiyor.
    • Öğrenciler tablosunda öğrenci ID, isim, yıl ve not ortalaması bilgileri yer alırken, kurslar tablosunda kurs ID, isim, kitap adı ve kapasite bilgileri yer alıyor.
    44:58Unique Kısıtlaması
    • Unique kısıtlaması genellikle tek bir değer için kullanılır, ancak bazı durumlarda farklı alanlar da unique yapılabilir.
    • PostgreSQL'de tabloya yeni kolon ekleme işlemi yapılırken, önce mevcut veriler silinir.
    • Username ve email gibi alanlar için karakter veri tipi kullanılarak maksimum 100 karakterlik değerler saklanabilir.
    46:31Unique Kısıtlamasının Uygulanması
    • Tabloya username kolonu eklendikten sonra veriler girilebilir, ancak unique kısıtlaması uygulanmadan aynı username'ler tekrarlanabilir.
    • Unique kısıtlaması uygulamak için tablonun properties kısmından constraint bölümünden unique seçeneği kullanılır.
    • Unique kısıtlaması için isim verilirken genellikle "uk" ön ekli ve tablo adı ile birlikte belirlenir.
    49:12Unique Kısıtlamasının Etkileri
    • Unique kısıtlaması uygulandıktan sonra aynı username'ler tekrarlanamaz, aksi takdirde "duplicate key value violates unique constraint" hatası alınır.
    • Bir tabloya birden fazla unique kısıtlaması eklenebilir.
    • Kombinasyonlu unique kısıtlamalar da yapılabilir, örneğin username ve email birlikte unique olabilir.
    50:35Normalizasyon Kavramına Giriş
    • Normalizasyon, verilerin sağlıklı ve güvenli bir şekilde tutulması için oluşturulan kurallar bütünüdür.
    • Normalizasyon kavramı altı-yedi normal form içerir ve üçüncü normal forma uyuyorsa diğerlerine de uyulmuş sayılır.
    • Normalizasyon gereksiz veri saklanmasını engelleyerek oluşacak sıkıntıları otomatik olarak önler.
    52:14Normalizasyon Sorunları
    • Kurslar tablosunda department ve head of department bilgileri tekrarlanmakta, bu gereksiz veri saklama sorunudur.
    • Insertion anomali (ekleme sorunu) örneğinde, yeni bir eğitmen geldiğinde ancak hangi departmanda çalışacağı belli değilse, tabloya eklenemez.
    • Bu sorunlar normalizasyon uygulayarak çözülebilir.
    54:13Veritabanı Normalizasyonu ve Anomali Durumları
    • Veritabanında kurs kodu primary key olarak belirlendiğinde, yeni bir kurs açıldığında veritabanına eklenmesi gereken bilgileri ekleyemeyiz.
    • Bu durum "ekleme bozukluğu" (insertion anomaly) olarak adlandırılır ve veritabanı normalize halde olmadığında ortaya çıkar.
    • Veritabanında tekrarlanan veriler güncellendiğinde, tüm tekrarlanan verilerin güncellenmesi gerektiği halde bir tanesi güncellenmediğinde "güncelleme bozukluğu" (update anomaly) oluşur.
    57:29Silme Bozukluğu ve Normalizasyon Gerekliliği
    • Bir kurs silindiğinde, o kursla birlikte departman veya eğitmen bilgilerinin de silinmesi "silme bozukluğu" (deletion anomaly) olarak adlandırılır.
    • Normalizasyon yaparak bu tür bozuklukları ve diğer sıkıntıları çözebilir, verilerin sağlıklı ve güvenli tutulmasını sağlayabiliriz.
    • Birden fazla eğitmenin aynı kursu vermesi durumunda, veritabanı yapısını sürekli değiştirmek gerekir ve bu da veritabanını bozulmasına neden olabilir.
    1:01:19Birinci Normal Form
    • Birinci normal form, veritabanlarını normal etmeye başlamak için kullanılan kurallardır.
    • Birinci normal formun ilk kuralı, her tabloda mutlaka bir primary key bulunmasıdır.
    • İkinci kural, bir kolonda aynı türden birden fazla verinin bulunmaması ve kolonların atomik olmasıdır.
    • Üçüncü kural, her kolonun sadece tek tip bilgi tutmasıdır.
    1:04:51Tekrarlanan Kolonların Önemi
    • Veritabanlarında tekrarlanan kolonlar olmamalıdır, bu birinci normal formun birinci kuralıdır.
    • Tekrarlanan kolonlar eklenmesi durumunda, veritabanında NULL değerleri oluşabilir ve performans sorunları yaşanabilir.
    • Birden fazla telefon numarası olan müşteriler için tek bir tabloda tutmak yerine, iki farklı tablo oluşturmak daha sağlıklı bir yöntemdir.
    1:08:40Birinci Normal Form ve İlişkiler
    • Birinci normal formda her sütun tekil değerlerden oluşmalıdır ve tekrarlanan kolonlar olmamalıdır.
    • İki farklı tablo oluşturarak (Customers ve Phone Numbers) birinci normal formu uygulamak daha etkili bir yöntemdir.
    • Customers ve Phone Numbers tabloları arasında bir'e çok (one-to-many) ilişki kurulmalıdır.
    1:11:21Foreign Key Kullanımı
    • İlişkileri kurmak için foreign key (yabancı anahtar) kullanılır.
    • Foreign key, çoklu ilişki olan tabloda (Phone Numbers) tutulmalıdır.
    • Phone Numbers tablosunda customer_id sütunu, Customers tablosundaki primary key'e referans verir ve bu şekilde telefon numaraları hangi müşteriye ait olduğu belirlenir.
    1:14:19Functional Dependency
    • Bir sonraki dersde functional dependency (fonksiyonel bağımlılık) konusu ele alınacaktır.
    • Functional dependency, ikinci ve üçüncü normal formlarını anlamak için gerekli bir kavramdır.
    • Bu kavramı öğrenmek, primary keyleri tayin etmeyi kolaylaştırır ve normal formları daha iyi anlamanı sağlar.
    1:15:04Fonksiyonel Bağımlılık Kavramı
    • Bir tabloda (relation) iki etribut (attribute) olsun: x ve y. Eğer y, x'e göre fonksiyonel olarak bağımlıysa, x'in her değeri her zaman belli ve eşsiz bir y değeri ortaya çıkaracak.
    • Fonksiyonel bağımlılık, x'in değerini bildiğimizde y'nin değerini eşsiz bir şekilde elde edebilme durumunu ifade eder.
    • Fonksiyonel bağımlılık matematiksel bir çıkarım değil, sadece x'in değerini bildiğimizde tabloda arama yaptığımızda her zaman belli bir y sonucunun vermesi gerektiği anlamına gelir.
    1:16:51Fonksiyonel Bağımlılık Örnekleri
    • Bir tabloda x ve y attributeleri varsa, fonksiyonel bağımlılık için x değerleri aynı iken karşılık gelen y değerlerinin de aynı olması gerekir.
    • Eğer tabloya yeni bir kayıt girilirse ve bu kayıt fonksiyonel bağımlılığı bozar (örneğin x=1 için hem y=10 hem y=35 değerleri varsa), fonksiyonel bağımlılık durumu ortadan kalkar.
    • Fonksiyonel bağımlılık durumlarını tayin etmek için tabloda her kayıt incelenir ve attribute isimleri ile ilişkiler değerlendirilir.
    1:19:13Mantıksal Fonksiyonel Bağımlılık
    • Tablo yapısı olmadan bile mantıksal olarak fonksiyonel bağımlılık tespit edilebilir, örneğin "departman" ve "bölüm başkanı" arasında fonksiyonel bağımlılık vardır.
    • Teorik olarak, herhangi iki kaydın x değerleri eşitse, y değerleri de eşit olmalıdır; aksi takdirde fonksiyonel bağımlılık yoktur.
    • Fonksiyonel bağımlılık durumları formülize edilebilir: Eğer t1.x = t2.x ise t1.y = t2.y olmalıdır.
    1:20:41Çoklu Attributelar Arasındaki Fonksiyonel Bağımlılık
    • Bir tabloda üç attribut (A, B, C) varsa, her bir attribut çifti arasında fonksiyonel bağımlılık olup olmadığı kontrol edilebilir.
    • A ve C arasında fonksiyonel bağımlılık olabilirken, B ve C arasında olmayabilir.
    • Tek attribut değil, attributların birleşimi (örneğin A ve B birlikte) başka bir attributu (C) belirleyebilir.
    1:23:49Primary Key ve Fonksiyonel Bağımlılık
    • Bir tabloda (örneğin customers tablosunda) unique (eşsiz) olan alanlar (primary key veya customer number gibi) diğer alanları belirler.
    • Primary key'in özelliği, id bilindiğinde direkt olarak isim gibi diğer alanlara erişim sağlayabilmesidir.
    • Eşsiz olan bir alan (customer number) bilindiğinde tek bir kayda erişilebilir ve diğer alanlar (isim gibi) belirlenebilir.

    Yanıtı değerlendir

  • Yazeka sinir ağı makaleleri veya videoları özetliyor