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

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

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

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

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

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

Veritabanı Tasarımı. Birincil Anahtar, İkincil Anahtar ve Kontrol Kısıtlamaları

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

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

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

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

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

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

Veritabanı ve Yönetim Sistemleri

SORGULAR VE ÇEŞİTLERİ II

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

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

Aşağıdaki şemaya dikkat edin. Sorgulamalarımızı genellikle bu şemaya göre yapacağız.

MT487_2005guz_final_cevaplar (cevaplar vurgulu ve koyu yazılmıştır)

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

Birden Çok Tabloda Sorgulama (Join)

İLİŞKİSEL VERİTABANLARI

SQL e Giriş. Uzm. Murat YAZICI

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

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

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

Bölüm 10: PHP ile Veritabanı Uygulamaları

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

HAZİ HAZ NE ARAZİLERİ LER YÖNETİ YÖNET M

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

YAYIN TEŞVİK UYGULAMA YÖNERGESİ

Veri Bütünlüğü ve Constraint ler. Veritabanı 1

Veri Tabanı-I 4.Hafta

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

Yaptığımız web sitelerinin daha kullanışlı olması için veritabanı sistemleri ile bağlantı kurup ihtiyaca göre verileri okuyup yazmasını isteriz.

ACCESS DERS Tablolarda Düzenleme

Fatura Dosyalarını Yükleme ile ilgili Detaylar. 14 Temmuz 2014

IDE4DB Veritabanı Geliştirme Platformu Bitirme Projesi Sunumu

Resim 1. Access açılış sayfası. Resim 2. Access veri tabanı düzenleme sayfası

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

VERİTABANI ORGANİZASYONU

İŞE ALMA. Kaynakları paketi ile ne şekilde takip edebilecekleri ile ilgili bilgi verilmesi amaçlanmıştır. [ ] Diğer

SQL DİĞER Deyimler ve Komutlar

ŞEFİM ADİSYON SİSTEMİ SATIŞ EKRANI-MASA SATIŞ

Flash ile Etkileşimli Öğretim Materyali Hazırlama Semineri

İNTERNET PROGRAMCILIĞI HAFTA MYSQL - PHPMYADMIN. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Mysql Nedir.

Veritabanı. SQL (Structured Query Language)

Analiz Raporu. Projenin amacının, konusunun, işlevinin ne olacağı, hangi yazılımlar kullanılacak gibi parametrelerin belirlenmesi.





LibreOffice Veritabanı-1

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

1. Araçların tüm bilgilerini ve bağlı oldukları kiralama noktasının adres ve telefonunu içeren tam listesi:

Proje Yönetimi Uygulamaları Görev Tanımlama

Veritabanı Tasarımı. Sütunlar, Karakterler ve Satırlar ile Çalışma

VERİTABANI Veritabanı Normalizasyonu

DESTEK DOKÜMANI. Tablolu Malzeme Sınıfları

BIM 312 Database Management Systems. Veritabanı Kavramına Giriş

Oracle Database 11g: Introduction to SQL

Veritabanı ve Yönetim Sistemleri

KISITLAMALAR (CONSTRAINT)

DENEY 6: VERİ SEÇİCİLER İLE TASARIM

Veri Tabanı Tasarım ve Yönetimi

Ders Notlarının Creative Commons lisansı Feza BUZLUCA ya aittir. Lisans:

DESTEK DOKÜMANI. Ödeme planlarında taksitli ödeme bilgileri. Ürün :

Tiger Plus Ürün Fark Dokümanı

12 TBT / WEB TASARIM ve PROGRAMLAMA ( Not 3 )

Veritabanı Yönetim Sistemleri

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

CARİ HESAP ANALİSTİ. Seçilmiş olan cariyi burada görebilirsiniz.

Computer Engineering Department DATABASE MANAGEMENT SYSTEMS LAB 2 WORKSHEET

5. Tablo İşlemleri. Bu bölümü bitirdiğinizde,

Horoz Programlanabilir Zaman Rölesi

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

R ile NOAA üzerinden internet'ten Türkiye Şehirlerinin Sıcaklık verilerini İndirmek

Temel Bilgisayar Programlama

THY Mobil Uygulama Kullanım Kılavuzu. İstanbul, Türkiye

GUSTOLOJİ ÖN MUHASEBE PROGRAMI

HAKKIMIZDA. Firmamız, inşaatın proje aşamasından itibaren fonksiyonel yaşam alanları oluştarmayı hedeflemektedir.

Veritabanı Tasarımı. Alt Sorgu Temelleri

TABLO ve HÜCRE SEÇİMİ

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Veri Tabanı Hafta Dersi

Veri tabanı içinde bulunan tablolardakibazı sütunlarda bulunan bilgilerin, herkes tarafından görülmesi istenmeyebilir.


TIGER PLUS ÜRÜN FARK DOKÜMANI

Ana Sayfaya Git. Yukarıdaki adrese tıklayıp, sizlere e-posta ile iletilen, «Kullanıcı adı» ve «Şifre» bilgileriniz ile giriş yapınız.

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

BÖLÜM -7: TABLOLARI OLUŞTURMA VE YÖNETME

Veritabanı ve Yönetim Sistemleri

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

Varlık İlişkisi Modeli ve Varlık İlişkisi Diyagramları ( Entity Relationship Modeling and ERDs) Amaç

Mikroişlemciler (EE 208) Ders Detayları

NETSİS PAKETLERİNİ ORTAK UYGULAMA İLE ÇALIŞTIRMA

Basit Mimari, Katmanlı Mimari ve doğrudan çalıştırma olarak üçe ayrılır.

TRABZON UN İNCİSİ SÜRMENE DE KALİTELİ BİR YAŞAM SİZLERİ BEKLİYOR. SANKA Evleri.

KİRA İLİŞKİSİNİN SONA ERMESİ

SIKÇA SORULAN SORULAR

Transkript:

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

Konular İlişkilerin eşleştirilmesine yönelik kuralların 1:M ve bağlı ilişkilerin dönüşümüne uygulanması İlişkilerin eşleştirilmesine yönelik kuralların M:M ilişkilerin dönüşümüne uygulanması 1:1 ilişkileri dönüştürme İlişkilerin eşleştirilmesine yönelik kuralların yaydaki ilişkilerin dönüşümüne uygulanması 2

Amaç Başka bir kişiye ev inşa ettiğinizi düşünelim. Gerekli olan bütün malzemelere (ahşap, boya, kapı, pencere, çivi, vida vb.) ve tecrübeye sahipsiniz, fakat mimari tasarıma sahip değilsiniz. İnşaata başladığınızda kaç tane oda olması gerektiği, pencerelerin nereye konulacağı, kapıların ne yöne açılacağı veya odaların hangi renge boyanacağını bilemezsiniz. İnşaat ilerledikçe her seferinde karar verip bina inşa edilebilir fakat eğer temel tasarım noktaları belli değilse bina bitiminde müşterinin istediği binanın elde edilmesi oldukça zordur. 3

Amaç (devam ) İlişkiler, birincil anahtarlar ile yabancı anahtarlar arasında eşleştirilerek bir tablonun başka bir tabloya işaret etmesine imkan tanınır. İlişkileri eşleştirmezsek, veritabanında birbiri ile bağlantısı olmayan ve bilgi içeren bağımsız pek çok tabloya sahip oluruz. Varlıkar arasındaki ilişkileri eşleştirme müşteri, tasarımcı, geliştirici ve DBA arasında görüşmelerin olması açısından önemli bir ilk adımdır. 4

İlişkiler için Kurallar Bir ilişki tabloda ilişkinin çoklu (M) tarafında bir vey birden fazla sütunda yabancı anahtar (FK) oluşturur. Yabancı anahtarı adlandırmak için tablonun isminin kısa hali kullanılır. Sonraki sayfadaki örnekte ÇALIŞANLAR tablosunun BÖLÜM tablosu ile ilişkisi için yabancı anahtarı blm_no ve kendisi ile olan rekürsif ilişki için de çal_no dur. 5

İlişkiler için Kurallar (devam ) Yabancı anahtar sütunu işin ihtiyacına göre zorunlu veya seçimli olabilir. Örnekte böl_no zorunlu, çal_no ise seçimlidir. 6

İlişkiler için Kuralların Gösterimi yönetilir yönetir ÇALIŞAN * adresi * doğum tarihi dahildir içerir BÖLÜM 7 ÇALIŞANLAR (ÇAL) Anahtar Tipi Seçimlilik Sütun Adı pk * no * adresi * doğ_tarihi fk1 * böl_no fk2 o çal_no BÖLÜMLER (BÖL) Anahtar Tipi Seçimlilik Sütun Adı pk * no * adres * notlar fk işaret eder fk işaret eder

Bir Tarafı Zorunlu Olan İlişkiyi Eşleştirme Bir tarafı veya iki tarafı zorunlu olan ilişkiler bir tarafı seçimli olan ilişkilerin eşleştirilmesi ile aynıdır. Kavramsal model ilişkilerin iki tarafta seçimlilik durumunu gösterme kapasitesine sahiptir. Ancak, fiziksel model sadece tek bir FK ile sınırlı olduğundan sadece çoklu (M) taraftaki zorunlu ilişkiyi uygulayabilir. İzleyen örnekte, fiziksel model BANDO nun mutlaka bir müzisyen içermesi zorunluluğunu uygulayamamaktadır. Tekli ilişkinin (1) olduğu taraftaki bu zorunluluk ilave programlama ile sağlanmalıdır. 8

Seçimliliği Uygulama MÜZİSYEN o enstrüman dahildir içerir BANDO MÜZİSYENLER (MÜZ) Anahtar Tipi Seçimlilik Sütun Adı pk * no o enstrüman fk o bnd_no BANDOLAR (BND) Anahtar Tipi Seçimlilik Sütun Adı pk * no fk işaret eder 9

Aktarılamaz İlişkiyi Eşleştirme Kavramsal modelde aktarılamaz ilişki veritabanındaki tabloda yer alan FK değerinin değiştirilemeyeceği anlamına gelmektedir. FK kısıtı sadece tek başına bu kuralı uygulayamaz. İlave programlama bu iş kuralının veritabanında uygulanması için gerekecektir. Bu tür kuralları yazılı hale getirmek takım elemanlarının bu iş kuralının uygulanabilmesi için gereken kodu yazma noktasında hatırlatıcı olacaktır. 10

Aktarılamaz İlişkinin Uygulanması ÇEK ÖDEMESİ * ödeme süresi için alıcısı ÇALIŞAN ÇEK_ÖDEMESİ (ÇEKÖ) Anahtar Tipi Seçimlilik Sütun Adı pk * no * ödm_süresi fk * çal_no Bu sutündaki FK hiçbir zaman değiştirilemez 11

Bağlı (Çizgili) İlişkinin Eşleştirilmesi Bağlı (çizgili) ilişki, 1:M ilişkide olduğu gibi çoklu (M) tarafta bir FK sütununa eşleştirilir. Bu durumda FK sütunu aynı zamanda PK in de bir parçası olduğu için iki işleve sahip olacaktır. Örnekte, bnk_no, HESAPLAR tablosunda bir FK olup BANKALAR ın PK sütununa işaret etmektedir. Aynı zamanda HESAPLAR ın PK sinin bir parçasıdır. 12

Aktarılamaz İlişkinin Uygulanması HESAP * yekün * açılış tarihi bulunur bulundurur BANKA HESAPLAR (HSP) Anahtar Tipi Seçimlilik Sütun Adı pk * hsp_no * yekün * açl_tarihi fk * bnk_no işaret eder Anahtar Tipi BANKALAR (BNK) Seçimlilik Sütun Adı pk * bank_no 13

Kaskat Bağlı (Çizgili) İlişkinin Eşleştirilmesi İlişkileri Eşleştirme Hiyerarşiler kaskat bağlı ilişkilere yol açabilir. Bu yapıda hiyerarşinin en üstünde yer alan varlığın UID hiyerarşinin en altında bulunan varlığa kadar taşınır. Örnekte ODA nın UID i, ODA no, DAİRE no, KAT no ve BİNA no yu içermektedir. Bu bağlı ilişki ile gösterilir. 14

Kaskat Bağlı (Çizgili) İlişkinin Eşleştirilmesi İlişkileri Eşleştirme Bu yapı fiziksel modele eşleştirildiğinde sonuç çok uzun bir FK sütun ismine sahip olacaktır. Çünkü bütün tabloların isimleri ön ek olarak alınacaktır. Önerilen yaklaşım hiçbir zaman ikiden fazla tablo ismine yer verilmemesidir. Örnekte, BİNA dan başlayarak gelen ODA nın FK sütunu dai_kat_bin_no yerine dai_bin_no olarak adlandırılır. 15

Kaskat İlişkinin Uygulanması ODA bulunur yeridir DAİRE o kiracı bulunur yeridir KAT bulunur yeridir BİNA * adresi 16 ODALAR (ODA) Anahtar Tipi Seçimlilik Sütun Adı pk * oda_no pk,fk * dai_no pk,fk * dai_kat_no pk,fk * dai_bin_no KATLAR (KAT) Anahtar Tipi Seçimlilik Sütun Adı pk * kat_no pk,fk * bin_no DAİRELER (DAİ) Anahtar Tipi Seçimlilik Sütun Adı pk * dai_no pk,fk * kat_no pk,fk * kat_bin_no o kiracı BİNALAR (BİN) Anahtar Tipi Seçimlilik Sütun Adı pk * no * adresi

Kaskat İlişkinin Gösterimi 17 BİNALAR NO ADRESİ 100 Kızılırmak Cad. No:12 201 Sakarya Cad. No:1 KATLAR KAT_NO ADRESİ 1 100 2 100 1 201 2 201 DAİRELER DAİ_NO KAT_NO KAT_BİN_NO KİRACI 15 2 100 Recep Uçan 25 2 100 Semih Gezgin 5E 1 201 Şaban Kaynak 7B 2 201 Aliye Arslan ODALAR oda_no dai_no dai_kat_no dai_bin_no 1 15 2 100 2 15 2 100 1 7B 2 201

M:M İlişkinin Eşleştirilmesi M:M ilişki bir kesişim tablosuna eşleştirilen kesişim varlığı ile çözümlenir. Bu kesişim tablosu kendisinin oluşmasına sebep olan tablolara işaret eden FK sütunlarını içerir. Örnekte, DEĞERLENDİRMELER, KRİTİK ve FİLM arasındaki bütün durumları içerir. 18

M:M İlişkinin Eşleştirilmesi (devam ) DEĞERLENDİRME * rating KRİTİK EDEN FİLİM 19 KRİTİK_EDENLER (KRİ) pk * no FİLMLER (FLM) pk * no DEĞERLENDİRMELER (DĞR) Anahtar Tipi Seçimlilik Sütun Adı pk, fk1 * kri_no pk, fk1 * flm_no * rating

1:1 İlişkinin Eşleştirilmesi 1:1 İlişki aktarılırken FK ve UK oluşturulur. Bu FK in bütün sütunları aynı zamanda UK in de parçasıdır. Eğer ilişki sadece bir tarafta zorunlu ise FK bu tabloda oluşturulur. Örnekte şişk_kodu SODA_ŞİŞESİ nde FK olup ŞİŞE_KAPAKLARI nın PK ine işaret etmektedir. Şişk_kodu aynı zamanda SODA_ŞİŞESİ tablosunda eşsiz olacaktır. 20

1:1 İlişkinin Eşleştirilmesi (devam ) SODA ŞİŞESİ kapatılır kapatır ŞİŞE KAPAĞI # kodu * tanımı SODA_ŞİŞELERİ (SODŞ) pk * no fk * şişk_kodu ŞİŞE_KAPAKLARI (ŞİŞK) pk * kodu * tanımı 21

Seçimli 1:1 İlişkinin Eşleştirilmesi Eğer 1:1 ilişki her iki tarftada seçimli ise FK nin hangi tabloya konulacağına siz karar verebilirsiniz. Bunul ailgil kesin bir kural yoktur ancak bazı tavsiyeler şu şekildedir: FK yi daha az satırı olan tabloya yerleştirerek yer tasarrufu yapınız. FK yi iş için önemli olma durumunu dikkate alarak gerçekleyiniz. 22

Seçimli 1:1 İlişkisi için İş Kuralları Örnekte, bir araba kiralama şirketi park yerinden çok araçla ilgilenecektir. Bu açıdan FK yi ARABALAR tablosuna koyması anlamlı olacaktır. Buna rağmen otopark işi yapan firma içinse ana konu park yeridir. Bunun için FK yi PARK_YERLERİ ne koyması anlamlı olacaktır. 23

1:1 İlişkinin Eşleştirilmesi (devam ) ARABA # plaka no * modeli park etmiş bulundurur PARK YERİ # kodu * tanımı 24 ARABALAR (ARB) pk * plaka_no * model fk, uk o prky_kodu ARABALAR (ARB) pk * plaka_no * model Araba Kiralama İşi PARK_YERLERİ (PRKY) pk * kodu * tanımı Otopark İşi PARK_YERLERİ (PRKY) pk * kodu * tanımı fk, uk o arb_plk_no

1:M İlişkiyi Uygulama Eğer ilişki iki tarafta zorunlu ise veritabanında 1:M ilişkide bir tarafında zorunluluk olduğu gibi aynı kısıta sahip olacaksınız. Bunun için kuralı uygulamak için ilave program yazmak gerekecektir. 25

Yayları Eşleştirme Yay içeren varlıklar ilişkinin tek olan tarafından gelecek FK leri tabloya eşleştirecektir. Yayın çoklu ilişki olan tarafında zorunluluk olsa bile FK ler her zaman seçimli olmalıdır (çünkü her zaman bir tanesi boş olacaktır). 26

Yay Eşleştirmesi (devam ) PROGRAM * tarihi * fiyatı o açıklama DEĞERLENDİRMELER (DĞR) pk, * no * tarihi o fiyatı açıklama fk1 o kma_no fk2 o özm_no KAMUSAL_ALANLAR (KMA) pk * no * adresi * kira_bedeli * not KAMUSAL ALAN * adres * kira bedli * not ÖZEL MÜLK * adres o not ÖZEL_MÜLKLER (ÖZM) pk * no 27

Yayları Eşleştirme (devam ) Yay birbirini dışlayan (XOR) ilişkiyi temsil ettiğinden tablodaki her bir satırda FK lerin sadece birinin değerinin olması gerektiği ilave kodlama ile sağlanmalıdır. Veritabanında saklanan check kısıtı ile bu kolaylıkla sağlanabilir. Örnekte, check kısıtı şu şekilde olacaktır: CHECK (kma_no is not null AND özm_no is null) OR (kma_no is null AND özm_no is not null) 28

Yayları Eşleştirme (devam ) Eğer yaydaki ilişkiler taamıyla seçimli olsaydı, bu durumda aşağıdaki kod ilave edilmeliydi: OR (kma_no is null AND özm_no is null) 29

Yayları Eşleştirme (devam ) KAMUSAL_ALAN için örnek veriler no adres kira_bedeli not 6 Kızılırmak Cad. No:12 1.500 Asansör yok 10 Sakarya Cad. No:1 1.000 Cami altı ÖZEL_MÜLK için örnek veriler no adres not 15 Yeşil bakkal Sok, No:16 20 Güzel Yalı Sok, No:3 Geniş LED TV PROGRAM için örnek veriler no adı Tarihi Fiyatı Tanımı Kma_no Özm_no 42 Hoş geldin partisi 5 Haz 5.000 6 48 Moral programı 8 Tem 8.000 10 50 Veda yemeği 12 Tem 2.000 20 30