Normalizasyon Kuralları & SQL Veri Tabanı Yönetim Sistemleri 1 Fatih Universitesi © Zülal Şevkli
Fatih Universitesi © Zülal Şevkli Tablo ve Bileşenleri Tablo : Konusa ait verilerin tutulduğu satır ve sütünlardan oluşan yapı İlişkili bilgilerin mantıksal olarak gruplanıp tutulduğu yapı Kayıt: Tablodaki satırlara denir. Birinci anahtar: Tablodaki benzersiz kayıtlar elde etmemizi sağlayan sutüna denir. Yabancı anahtar: Bir tabloda benzersiz kayıt oluşturmayı sağlayan sutünun diğer tabloda bir sutün olarak bulunma haline denir. Fatih Universitesi © Zülal Şevkli
Normalizasyon Kuralları Verilerin düzenli olarak vt tutulmasını sağlayan kurallar topluluğudur. 1NF: Tekrarlanan sütun gruplarını ortadan kaldırmak Kompozit olarak birincil anahtar oluşturmak 2NF: Anahtar özelliğine sahip olmayan tüm sütunlar birincil anahtara tam bağımlı olmalı Buna göre tablolar bölünmeli 3NF: Kısmi bağımlılık tamamen ortadan kaldırılmalı. Fatih Universitesi © Zülal Şevkli
Tablolar arası ilişkiler BireBir : Tablolar arası ilişkiyi sağlayacak olan ortak alanların ikiside birincil anahtar ise birebir ilişki olur. BireÇok : Tablolar arası ilişkiyi sağlayacak olan ortak alanlardan birisi birincil anahtar diğeri yabancı anahtar ise bireçok ilişki olur. Çokaçok: Tablolar arası ilişkiyi sağlayacak olan ortak alanlardan ikisi de anahtar değillerse çokaçok ilişki olur. Fatih Universitesi © Zülal Şevkli
Fatih Universitesi © Zülal Şevkli Bütünlük Kuralları Ana tabloda bir kayıt yoksa alt tablolarda da hiçbir kayıt olamaz. Alt tablolara ait bir tablodan bir satır silinmesi yada değiştirilmesi durumunda alt tablolara bakılır. Eğer alt tablolarda ilişkili kayıtlar varsa ana tablo satırının silinmesine izin verilmez. Alt tablolarda girilen bilginin ana tabloya bağlı alanı kontrol edilmeli. Farklı bir bilginin girilmesine izin verilmez. Fatih Universitesi © Zülal Şevkli
İlişki kurmadaki hatalar Tablolardaki anahtar alanların null olması İlişki kuracak alanların veri tiplerinin aynı tipde olmaması İlişki kurulacak alanlarda tutarsız bilgilerin mevcut olması Fatih Universitesi © Zülal Şevkli
Tablo tasarımındaki sıra Normalizasyon kurallarına göre tablolar oluşturulur. Her tabloda birincil anahtarlar tespit edilir. İlişkileri kuracak ortak alanlar tespit edilir. İlişkiler kurulur Kayıtlar girilir. Ana tablodan kayıt girişi başlanır.(Kendisinde hiç sonsuz ayağı olmayan tablo) Alt tabloların kayıtları girilir. Fatih Universitesi © Zülal Şevkli
Fatih Universitesi © Zülal Şevkli Örnek Çalışma Amaç : Fatih Universitesi Meslek Yüksek Okulu öğrencilerinin Kimlik bilgileri (ad,soyad,anne adi, baba adı, dogum yeri, doğum tarihi....) Öğrenci bilgileri (ogrno,bölümü,giriş yili,ücret bilgileri, ders bilgileri) Fatih Universitesi © Zülal Şevkli
Fatih Universitesi © Zülal Şevkli Örnek Çalışma Normalize edilmemiş tablo Amaç çerçevesinde veritabanında kayıtlı olması gereken tüm bilgileri içerir. Ogrno Adı Soyadı Anne adı Baba adı Ev telefonu Cep telefonu Dogum yeri Dogum tarihi Kimlik numarası Giriş yili Adres bilgisi Adres Posta kod İlçe İl Bölümü Dönemi Aldığı dersler Ders1 Ders2 ... Dönem sonu notu Ders1 notu Ders2 notu Borcu Ödediği miktar Ödediği zaman Fatih Universitesi © Zülal Şevkli
Fatih Universitesi © Zülal Şevkli Örnek Çalışma (1NF) Tekrarlanan sütun gruplarını ortadan kaldırmak Kompozit olarak birincil anahtar oluşturmak Ders Bilgileri Ogrno Donem DersKod DersAdi Kredi Dönem_sonu_notu Tekrar Ucret Bilgisi Odeme_trh Odeme_miktari Borcu Kimlik Bilgileri Ogrno Adı Soyadı Anne adı Baba adı Ev telefonu Cep telefonu Dogum yeri Dogum tarihi Kimlik numarası Giriş yili Adres Posta kod İlçe İl Bölümü Dönemi (BA) (BA) (BA) (BA) (BA) (BA) Fatih Universitesi © Zülal Şevkli
Fatih Universitesi © Zülal Şevkli Örnek Çalışma (2NF) Anahtar özelliğine sahip olmayan tüm sütunlar birincil anahtara tam bağımlı olmalı Buna göre tablolar bölünmeli Kimlik Bilgileri Ogrno (BA) Adı Soyadı Anne adı Baba adı Ev telefonu Cep telefonu Dogum yeri Dogum tarihi Kimlik numarası Giriş yili Adres Posta kod İlçe İl Bölümü Dönemi Borcu Ders Bilgileri Ogrno (BA) Donem (BA) DersKod (BA) DersAdi Kredi Dönem_sonu_notu Tekrar Ogr Ders Bilgileri Ogrno (BA) Donem (BA) DersKod (BA) Dönem_sonu_notu Tekrar Ders Bilgileri DersKod (BA) DersAdi Kredi Ucret Bilgisi Ogrno (BA) Odeme_trh (BA) Odeme_miktari Borcu Fatih Universitesi © Zülal Şevkli
Fatih Universitesi © Zülal Şevkli Örnek Çalışma (3NF) Kısmi bağımlılık tamamen ortadan kaldırılmalı. Gerekli olduğu takdirde yapılmalı Fatih Universitesi © Zülal Şevkli
Örnek Çalışma (İlişkileri kurma) Kimlik Bilgileri Ogrno (BA) Adı Soyadı Anne adı Baba adı Ev telefonu Cep telefonu Dogum yeri Dogum tarihi Kimlik numarası Giriş yili Adres Posta kod İlçe İl Bölümü Dönemi Borcu 1 Ogr Ders Bilgileri Ogrno (BA) Donem (BA) DersKod (BA) Dönem_sonu_notu Tekrar Ders Bilgileri DersKod (BA) DersAdi Kredi 1 1 Ucret Bilgisi Ogrno (BA) Odeme_trh (BA) Odeme_miktari Borcu Fatih Universitesi © Zülal Şevkli
SQL(Structure Query Language) Veri tabanı uygulamalarında, Veri tanımlama, Veri tabanın bütünlüğünün kontrolü, Veri tabanlarına erişimin kontrolü Veri tabanlarının sorgulanması ve güncellenmesi amaçları için gerekli komutlara sahip bir alt dildir. Fatih Universitesi © Zülal Şevkli
SQL(Structure Query Language) SQL sahip olamadığı komutlar Çevrim (döngü) if then else Goto Fatih Universitesi © Zülal Şevkli
Fatih Universitesi © Zülal Şevkli SQL Komutları SELECT [listelenecek sütunlar] FROM [tablo adları] WHERE [kayıtlar için koşullar] ORDER BY [kayıt sırasını belirliyecek sütunlar] Fatih Universitesi © Zülal Şevkli
Bir Tabloluyu Sorgulamak SELECT Alan isimleri * : Bütün alanlar Hesaplanan alanlar DISTINCT : Tekrarlı satırları ortadan kaldırmak ORDER BY ASC :Artan DESC : Azalan Fatih Universitesi © Zülal Şevkli
Bir Tabloluyu Sorgulamak WHERE Numerik Char Tarih Mantıksal IN BETWEEN LIKE Birden çok koşulu birleştirmek Fatih Universitesi © Zülal Şevkli