2 İlişkisel Veritabanı Tasarımı ve Normalizasyon. Veritabanı 1



Benzer belgeler
2 İlişkisel Veritabanı Tasarımı. Veritabanı 1

Veritabanı Tasarımı ve Yönetimi. Uzm. Murat YAZICI

VeritabanıYönetimi Varlık İlişki Diyagramları. Yrd. Doç. Dr. Tuba KURBAN

VERİ TABANI YÖNETİM SİSTEMLERİ Melih BÖLÜKBAŞI

Veritabanı ve Yönetim Sistemleri

ve kullanıcı gereksinim listeleri size yol gözünden

Veri Tabanı Hafta Dersi

Veritabanı ve Yönetim Sistemleri

İLİŞKİSEL VERİ MODELİ

Fonksiyonel(İşlevsel) Bağımlılık

1 Temel Kavramlar. Veritabanı 1

Tekrar. Veritabanı 2

Veritabanı Tasarımı Ve Yönetimi. Varlık-İlişki Modeli

2 Temel Kavramlar (Devam) Veritabanı 1

Veritabanı Dersi. Teoriden Pratiğe. Çağıltay N.E., Tokdemir G.

1 Temel Kavramlar. Veritabanı 1

Veri Tabanı-I 4.Hafta

VTYS İlişkisel Veri Modeli Y R D. D O Ç. D R. M. B E T Ü L Y I L M A Z

İşlevsel Bağımlılık. DAĞITIM (müşteri_no, şehir_kodu, şehir_adı, gönderi_no, miktar)

Veritabanı Tasarımı. Yapay, Birleşik ve İkincil UID ler

EBE-368 Veri Tabanı Yönetim Sistemleri Veri Tabanı Tasarımı

VERİTABANI Veritabanı Normalizasyonu

Veritabanı sistemlerinde veri bütünlüğünü sağlayabilmek için CONSTRAINTS olarak adlandırılan bazı zorlayıcı ifadeler kullanılabilir.

HASTANE OTOMASYONU VERİ TABANI YÖNETİM SİSTEMLERİ TEMEL VERİTABANI KAVRAMLARI

VERİTABANI YÖNETİMİ. Veritabanı Normalizasyonu 5.HAFTA. Veritabanı Yönetimi Prof. Dr. İbrahim Çil

SORGULAR VE ÇEŞİTLERİ II

Coğrafi Bilgi Sistemlerine Giriş. Ünite 5 - Veri Tabanı Yönetim Sistemleri

Varlık-İlişki Modeli (Entity-Relationship Model)

Bölüm 2 Varlık-İlişki Veri Modeli: Araçlar ve Teknikler. Fundamentals, Design, and Implementation, 9/e

Veritabanı Tasarımı. Sütun Değerlerini Güncelleme ve Satırları Silme

2. NORMALİZASYON. Normalizasyon, taslak veri tabanı üzerinde birtakım işlemler yapılarak taslağı son haline yaklaştırma yöntemidir.

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) Varlık İlişki Modeli

İLİŞKİSEL VERİTABANLARI

VERİTABANI Veritabanı Tasarımı

EBE-368 Veri Tabanı Yönetim Sistemleri İlişkisel Model (The Relational Model)

BTP 209 SİSTEM ANALİZİ VE TASARIMI

Dosya Organizasyonu ve Veritabanı

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) Varlık Bağıntı Modeli

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

VERİTABANI YÖNETİMİ. İlişkisel Veritabanı 4.HAFTA. Veritabanı Yönetimi Prof. Dr. İbrahim Çil

Bölüm 4: DDL Veri Tanımlama Dili

Veritabanı ve Yönetim Sistemleri

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) İlişkisel Veritabanı Modeli

Bölüm 1: Veritabanı Yönetim Sistemlerine Giriş

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) Normalizasyon

Veritabanı Tasarımı Ve Yönetimi

Veritabanı Tasarımı. İlişkisel Veritabanı Kavramlarına Giriş

VERİTABANI DERS NOTLARI

VERİTABANI ORGANİZASYONU

BTP203 VERİTABANI YÖNETİM SİSTEMLERİ

Fiziksel Veritabanı Modelleme

Veritabanı Tasarımı. Basit Eşleme: Dönüşüm İşlemi

Kavramsal Tasarım. Veritabanlarına Giriş Dersi

08118 Veri Tabanı I. Database Management System. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. Öğr.Gör. Murat KEÇECĠOĞLU

VERİ KAYNAKLARI. Bilgi sisteminin öğelerinden biride veri

Herhangi bir tablonun tekrarlı veriler içerdiği duruma birinci normal form denir. Birinci normal formu Aşağıdaki tablo ile ele alacağız.

SQL (Structured Query Language)

Veritabanı Tasarımı. NOT NULL ve UNIQUE Kısıtlamaları Tanımlama

Veritabanı Yönetim Sistemleri

Oracle Database 11g: Introduction to SQL

Veritabanı Tasarımı. İlişkileri Eşleştirme

SQL e Giriş. Uzm. Murat YAZICI

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri

İLİŞKİSEL VERİTABANI. İlişkisel veritabanlarının ortak özelliği verilerin tablolar aracılığı ile tutulmasıdır.

VERİTABANI. SQL (Structured Query Language)

Veri Tabanı-I 3.Hafta

BĐL378 - VERĐTABANI YÖNETĐM SĐSTEMLERĐ

Veritabanı. SQL (Structured Query Language)

10-Veri Tabanları.

VERİ TABANI YÖNETİM SİSTEMLERİ

Veritabanı Tasarımı. İlişki Eşleme

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

Veri Tabanı-I. 3.Hafta

Veri Tabanı-I 2.Hafta

3. Hafta Tablo İşlemleri BPR255 Veritabanı Yönetim. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) İş Kuralları ve Veri Modelleri

Algoritmalar ve Programlama. Algoritma

Sınıf Diyagramları Amaç: Sınıf Diyagramları Nasıl Çizilir?

Veri Tabanı Yönetim Sistemleri Bölüm - 3

Veri Tabanı Tasarım ve Yönetimi

VERİ TABANI YÖNETİM SİSTEMLERİ

3. Hafta Tablo İşlemleri BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri Kısıtlamalar (Constraints)

BĐL378 - VERĐTABANI YÖNETĐM SĐSTEMLERĐ

Veritabanı Yönetimi Bilgisayarların. Keşfi Hedefler. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi

5 SQL- Yapısal Sorgulama Dili. Veritabanı 1

Çok tablolu sorgulamalar

Computer Engineering Department LAB 1 WORKSHEET

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

SQL Komutları (2) Uzm. Murat YAZICI

Veritabanı Tarihi. 1960s: Bilgisayarlar artan saklama kapasiteleri ile birlikte firmalar tarafından karşılanabilir hale gelmeye başladı

5 Sorgulama İşlemleri. Veritabanı 1

ÇARPANLAR VE KATLAR ÖĞRENİYORUM

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

ULUSLARARASI BANKA HESAP NUMARASI HAKKINDA TEBLİĞ (Sayı: 2008/6) (10 Ekim 2008 tarih ve sayılı Resmi Gazete de yayımlanmıştır)

Computer Engineering Department DATABASE MANAGEMENT SYSTEMS LAB 2 WORKSHEET

Veri Tabanı Hafta Dersi

KISITLI OPTİMİZASYON

Veri Tabanı, Veri Ambarı, Veri Madenciliği. Veri Madenciliği Uygulama Alanları

Veritabanı Tasarımı. Kartezyen Çarpım ve Join İşlemleri

d) Müşteri: Bankalardan hizmet alan gerçek ve tüzel kişileri

Transkript:

2 İlişkisel Veritabanı Tasarımı ve Normalizasyon Veritabanı 1

Veritabanı Tasarımı Tasarım yapılırken izlenecek adımlar; Oluşturulacak sistemin nelerden oluşması gerektiği ve hangi işlemlerin hangi aşamalarda yapıldığı belirlenerek rapor tutulmalıdır. Oluşturulan bu metne göre varlık ilişki-modelinin oluşturulması Varlık ilişki modelinin tablolara dönüştürülerek Tabloların oluşturulması Anahtar sütunların belirlenmesi Normalizasyon kurallarına uygun olmayan durumlarda Tabloların bölünmesi İlişkilerin kurulması

İlişkisel Veritabanı Kavramsal Tasarım Verilerin daha üst seviyede gösterilmesi. Kullanılan model: ER (Entity Relationship Varlık ilişki) Varlık ilişki modeli kavramsal tasarımda kullanılan popüler model. VTYS den bağımsız modelleme yapılır. Varlık ilişki modelinde kullanılan şekiller veritabanın şematik olarak tasarlanmasını sağlar

Varlık-İlişki Modeli Temel Üç öğe vardır; Varlık ; Öğrenci,Ders,Araba,Notlar Nitelik ; ogrno,ad,soyad,derskod,dersad İlişki ; Öğrenci.ogrNo <-- 1-n --> Notlar.ogrNo

Varlık-İlişki Modeli- Varlık Varlık ; Modelin en temel öğesi Var olan ve benzerinde ayıt edilen her şey varlık; öğrenci, ders, kitap, araba. Birden fazla varlığın oluşturduğu kümeye varlık kümesi denir. Model içerisinde dikdörtgen ile gösterilir. Varlığın ismi içine yazılır. Öğrenci

Varlık-İlişki Modeli - Nitelik Nitelik Varlıkların herbir özelliği nitelik olarak ifade edilir. ogrno,ad,soyad,derskod,dersad Model içerisinde oval gösterilir. Niteliğin ismi içine yazılır. Nitelik bulunduğu varlığa düz çizgi ile bağlanır Varitabanında her tablonun bir sütununu ifade eder. Niteliğin değeri her bir varlık için farklıysa anahtar nitelik olarak belirlenir. Şema içerisinde altı çizilidir. per_id ad Personel görev maaş

Varlık-İlişki Modeli -Nitelik Nitelik (Devamı) Birden fazla değere sahip nitelikler çok değerli niteliklerdir ve çift çizgi ile gösterilir. per_id ad Personel görev maaş ydil Domain (Etki alanı); Niteliğin alabileceği değer aralığıdır.örneğin öğrenci notları 0-100 arasında olmalıdır. Etki alanı ER şemasında gösterilmez.

Varlık-İlişki Modeli -İlişki İlişki ; Farklı varlık kümeleri arasındaki ilişkileri ifade eder. Öğrenci ve dersler arasında ders alma ilişkisi vardır. Model içerisinde baklava dilimi ile gösterilir. İlişkinin ismi içerisine yazılır. Baklava dilimi ilişkili olduğu varlıklara düz çizgi ile bağlanır. Varlıklar arasında 1-1,1-n,ve n-m ilişki olabilir. İki varlık kümesi arasında birden fazla ilişki olabilir.

Varlık-İlişki Modeli İlişki (Davam) Öğrenci ders arasındaki ilişki Öğrenci Alır Ders Personel bölüm arasındaki ilişki Personel Çalışır Bölüm

Varlık-İlişki Modeli İlişki (Davam) çalışır Personel Bölüm yönetir

Varlık-İlişki Modeli İlişki (Davam) Varlık kümeleri arasında oluşturulan ilişkilerde ilişki sonucu nitelikler oluşabilir. Bu niteliklere tanımlayıcı nitelik denir. Örnek ; gösterime giren bir filmin sinemalarda gösterim saati ve tarihi farklıdır. film_id film_adı tarih sinema _id sinema _adı Film Oynar Sinema y_tarih yonetm en saat adres telefon

Varlık-İlişki Modeli İlişki (Davam) Öğrenci ders arasındaki 1-n ilişki Öğrenci 1 Alır n Ders Personel bölüm arasındaki n-1 ve 1-1 ilişki çalışır n 1 Personel Bölüm 1 1 yöneti ci

Varlık-İlişki Modeli İlişki (Davam) Film ve sinema arasında n-m ilişkisi film_id film_adı tarih sinema _id sinema _adı Film n Oynar m Sinema y_tarih yonetm en saat adres telefon

Varlık-İlişki Modeli İlişki (Davam) İlişkiler genelde farklı varlık kümelerinde olmasına rağmen bazen tek bir varlık kümesinde olabilir. Bu tür ilişkilere recursive ilişki denir. Personel n 1 yönetir Personel n m ebeve yn

Varlık-İlişki Modeli- (Zayıf Varlık Kümeleri) Bir varlık kümesi anahtar niteliğe sahip değilse zayıf varlık kümesi olarak adlandırılır. Zayıf varlık kümeleri çift çizgili dörtgen ile gösterilir. Üniversite 1 n aittir Fakülte

Kullanılan Semboller Sembol Açıklama Varlık kümesi Nitelik Anahtar nitelik İlişki Çok değerli nitelik Zayıf varlık kümesi

Bire-bir ilişkilerin tabloya dönüşümü Varlık kümelerini tablolara dönüştür Nitelikleri tabloların sütunlarına dönüştür İlişkide bir varlık kümesinin birincil anahtarı diğer varlık kümesinin yabancı anahtarı olarak belirlenir.

Bire-bir ilişkilerin tabloya dönüşümü Personel bölüm arasındaki 1-1 ilişkiyi dönüştürelim sicilno ad bolum No görev Personel 1 1 yöneti ci Bölüm maaş ad 1. Personel Bölüm 2. Personel(sicilNo,ad,maas,gorev) Bölüm(bolumNo,ad) 3 Personel(sicilNo,ad,maas,gorev) Bölüm(bolumNo,ad,yoneticiSicilNo)

Bire-çok ilişkilerin tabloya dönüşümü Varlık kümelerini tablolara dönüştür Nitelikleri tabloların sütunlarına dönüştür İlişkilerin n tarafındaki tabloya 1 tarafındaki tablonun birincil anahtar sütunu yabancıl anahtar olarak eklenir. İlişkilerde tanımlayıcı nitelik bulunuyorsa tanımlayıcı nitelikler ilişkinin n taraftaki tabloya sütun olarak eklenir.

Bire-çok ilişkilerin tabloya dönüşümü Personel bölüm arasındaki 1-n ilişkiyi dönüştürelim sicilno ad bolum No görev Personel n 1 çalışır Bölüm maaş ad 1. Personel Bölüm 2. Personel(sicilNo,ad,maas,gorev) Bölüm(bolumNo,ad) 3 Personel(sicilNo,ad,maas,gorev,bolumNo) Bölüm(bolumNo,ad)

Çoğa-çok ilişkilerin tabloya dönüşümü Varlık kümelerini tablolara dönüştür Oluşturulan ilişki isminde tablo oluşturulur. Nitelikleri tabloların sütunlarına dönüştür. İlişkiyi oluşturan tabloların birincil anahtarları ilişkiyi oluşturan tabloya yabancıl anahtar olarak eklenir. İlişkide oluşturulan tablonun birincil anahtarı oluşturulan yabancıl anahtarların birleşiminden oluşur. Bu şekilde oluşturulan birincil anahtar cevap vermezse yeni bir alan eklenir ve birincil anahtar yapılır.

Çoğa-çok ilişkilerin tabloya dönüşümü film_id film_adı tarih sinema _id sinema _adı Film n Oynar m Sinema y_tarih yonetm en saat adres telefon 1. Film Sinema 2. Film_Sinema_Oynar 3. Film(film_id,film_adi,y_tarih,yonetmen) Sinema(sinema_id,sinema_adi,adres,telefon) Film_Sinema_Oynar(tarih,saat) 4. Film(film_id,film_adi,y_tarih,yonetmen) Sinema(sinema_id,sinema_adi,adres,telefon) Film_Sinema_Oynar(tarih,saat,film_id,sinema_id,oynar_id)

Çok değerli niteliklerin tabloya dönüşümü Varlık kümelerini tablolara dönüştür Nitelikleri tabloların sütunlarına dönüştür. Çok değer içeren nitelik için tablo oluştur. Oluşan tabloya çok değerli niteliği ve bağlı bulunduğu varlığın birincil anahtarını yabancıl anahtar olarak ekle. Oluşan tablonun birincil anahtarı varlığın birincil anahtarı ve çok değerli niteliğin birleşiminden oluşmaktadır.

Çok değerli niteliklerin tabloya dönüşümü (devam) per_id ad Personel görev maaş ydil 1. Personel 2. Personel(per_id,ad,gorev,maas) 3. ydil( ydil,per_id) 4. ydil( ydil,per_id,sirano)

2 Normalizasyon Veritabanı 1

Normalizasyon -Tanım Normalizasyon; veri tabanı tasarım aşamasında veri tekrarını, veri kaybını veya veri yetersizliğini önlemek için gerçekleştirilen işlemlerdir. Normalizasyon tanım olarak ise ; (Ayrıştırma), veritabanlarında çok fazla sütun ve satırdan oluşan 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.

Normalizasyon Giriş Normalizasyon yapılırken uyulması gereken kurulların her birine normal form adı verilir. Birinci Normal Form (1NF) İkinci Normal Form (2NF) Üçüncü Normal Form (3NF) Daha yüksek düzey formlar var ama çok fazla kullanılmıyor. İlk üç düzey ihlal edilirse Kayıt güncelleme Kayıt silme Kayıt bulmada zorluk çekilir. 3NFde olan tablolar 1NF ve 2NFye uygundur. 2NFde olan tablolarda 1NFye uygundur.

Normalizasyon Amaçları Veri Bütünlüğünün Sağlanması Gereksiz veri tekrarını önleyerek verilerdeki bozulmaları önlemek Uygulamadan Bağımsızlık Uygulama değişse bile veritabanı tutarlı olarak çalışmalı Performansı Arttırmak Veri tekrarı en aza iner ve arama hızlı olur.

Normalizasyon Kuralları Birinci Normal Form (First Normal Form) 1NF İkinci Normal Form(Second Normal Form) 2NF Üçüncü Normal Form(Third Normal Form) 3NF

Birinci Normal Form -1 Tekrarlanan sütun yapıları olmamalıdır Birden fazla türde bilgi tek bir sütunda olamaz. Bir alan içerisindeki bilgi özel karakterlerle ayrılarak tutulmamalıdır. Telefon Tablosu Ad Soyad Telefon Ali Coşkun 3710, 3712 Mehmet Kaya 3714, 3715,3716 Ahmet Demir 3750 Adres Tablosu Ad Soyad Ali Coşkun Mehmet Kaya Ahmet Demir Adres1 Adres2 Ordu Denizli Adana Çivril Atasay Kamer MYO Çivril / Denizli

Birinci Normal Form -2 1Nf uyun hale geldi fakat 2NF ve 3NF ye uygun değil Telefon Tablosu Ad Soyad Telefon Ali Coşkun 3710 Ali Coşkun 3712 Mehmet Kaya 3714 Mehmet Kaya 3715 Mehmet Kaya 3716 Ahmet Demir 3750 Adres Tablosu Ad Soyad Adres1 Ali Coşkun Ordu Ali Coşkun Çivril Atasay Kamer MYO Çivril / Denizli Mehmet Kaya Denizli Ahmet Demir Adana

Sorunlar Birinci Normal Form -3 Veri Ekleme Eklenen verinin daha önce olup olmadığının kontrolü zor Veri güncelleme Kişiye ait bir telefon numarası güncellenmek istediğine hangisinin güncelleneceği Veri silme Silinecek verinin hangisi olduğu Telefon Tablosu Ad Soyad Telefon Ali Coşkun 3710 Ali Coşkun 3712 Mehmet Kaya 3714 Mehmet Kaya 3715 Mehmet Kaya 3716 Ahmet Demir 3750

İkinci Normal Form -1 1. Tabloda bir birincil anahtar olmalı ve anahtar olmayan sütunlar birincil anahtara bağımlı olmalı. 2. Birincil anahtar birden fazla sütundan oluşuyorsa tablodaki veriler her iki sütuna da bağımlı olmalıdır. OgrenciVeNot Tablosu ogrno Ad Bolum DersKodu Not 759 Ali Bilgisayar c121 60 759 Ali Bilgisayar c122 70 760 Mehmet Bilgisayar c121 65 761 Kemal Büro c134 90 Öğrenci bilgileri ve not bilgileri ayrılmalı.

İkinci Normal Form -2 İkinci normal forma uygun hali Ogrenci Tablosu ogrno Ad Bolum 759 Ali Bilgisayar 760 Mehmet Bilgisayar 761 Kemal Büro Not Tablosu ogrno DersKodu Not 759 c121 60 759 c122 70 760 c121 65 761 c134 90

Üçüncü Normal Form -1 Anahtar olmayan sütunlar anahtar sütuna tam bağımlı olmalı. Anahtar olmayan sütuna bağımlı olmamalı. Ürün Tablosu ÜKodu Ad Birim Birim Adı k001 Alçı 1 Kg k002 Tel 2 Cm k003 Boya 3 Lt

Üçüncü Normal Form -2 Ürün Tablosu ÜKodu Ad Birim k001 Alçı 1 k002 Tel 2 k003 Boya 3 Birim Tablosu Birim Birim Adı 1 Kg 2 Cm 3 Lt

Normalizasyon Örnek-1 1NF Uygun 2NF değil musteri Urun_id Sehir SehirKodu Miktar M145 U1 Denizli 1 100 M145 U2 Denizli 1 150 M151 U2 Tokat 2 75 M149 U3 Samsun 3 200 M148 U1 Tokat 2 140

Normalizasyon Örnek 1-devam musteri Urun_id Miktar M145 U1 100 M145 U2 150 M151 U2 75 M149 U3 200 M148 U1 140 musteri Sehir SehirKodu M145 Denizli 1 M151 Tokat 2 M149 Samsun 3 M148 Tokat 2 2NF uygun 3NF uygun değil.

Normalizasyon Örnek 1-devam musteri Urun_id Miktar M145 U1 100 M145 U2 150 M151 U2 75 M149 U3 200 M148 U1 140 musteri M145 1 M151 2 M149 3 M148 2 SehirKodu SehirKodu Sehir 1 Denizli 2 Tokat 3 Samsun