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

Benzer belgeler
EBE-368 Veri Tabanı Yönetim Sistemleri SQL

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

Veritabanına Uygulanması

EBE-368 Veri Tabanı Yönetim Sistemleri İlişkisel Cebir ve İlişkisel Hesaplama

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

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

SORGULAR VE ÇEŞİTLERİ II

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

ACCESS PLATFORMUNDA SQL

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

Veri Tabanı Hafta Dersi

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

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language)

VERİTABANI Veritabanı Yönetimi

Veritabanlarına ve SQL'e Giriş. Devrim GÜNDÜZ. Teknoloji Destek Merkezi --

SQL'e Giriş. SELECT Deyimi. SQL Komutları. Yardımcı Deyimler

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

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

KISITLAMALAR (CONSTRAINT)

Mysql Veritabanı Komutları

YAPISAL SORGULAMA DİLİ (SQL)

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

Genel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır.

Oracle da kullanılan veri tipleri:

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

8 Oracle da tablo yapısı içinde otomatik artan kolon yoktur. (identity kolon

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

SORGULAR. Öğr.Gör.Volkan Altıntaş

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

SQL Komutları (2) Uzm. Murat YAZICI

SQL Kod ile Tablo Oluşturma

SQL e Giriş. Uzm. Murat YAZICI

Data Programming SQL Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Tablolar Arası İlşikiler ve Alan Özellikleri. Şekil 1. Magaza veritabanının tabloları ve tablolar arasındaki ilişkiler

SQL Deyimleri. Öğr.Gör.Volkan ALTINTAŞ Volkanaltintas.com

T.C GAZİ ÜNİVERSİTESİ BİLİŞİM ENSTİTÜSÜ YÖNETİM BİLİŞİM SİSTEMLERİ ANA BİLİM DALI MS SQL KOMUTLARI VE MS SQL KOMUTLARI İLE İLGİLİ UYGULAMALAR

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

Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir?

Veri Tabanı Programlamaya Giriş

«BM364» Veritabanı Uygulamaları

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

SQL'e Giriş 2. CREATE TABLE tabloadı (kolon isimleri ve veri türleri) (BOLUM_NO NUMBER, BOLUM_ADI CHAR(10));

Çok tablolu sorgulamalar

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

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

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

İNTERNET PROGRAMCILIĞI HAFTA. MYSQL ile VERİTABANI İŞLEMLERİ - 1. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Veritabanı Oluşturma, Silme

VERİTABANI ORGANİZASYONU

VERİTABANI. SQL (Structured Query Language)

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

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

TESİ. indeks. söylenebilir?? bir ilişkidir d) Hiçbiri. veya somutlaştırılmış. düzeyidir? sağlayabilir? sına. d) Hepsi. olabilir? c) Verilerin d) Hepsi

License. Veri Tabanı Sistemleri. Konular. Bağıntı Modeli Dr. E. F. Codd, 1970 veri bağıntılar şeklinde modellenir: α A B C...

MOBİL UYGULAMA GELİŞTİRME

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

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

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

YAPISAL SORGULAMA DİLİ. BARIŞ ARIBURNU barisariburnu.com

Aşağıdaki tabloyu inceleyin. Yeni kayıt girme, var olan bir kaydı silme veya güncelleme işlemlerini bu tabloya göre yapacağız.

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

Tablolar Arası İlşikiler ve Alan Özellikleri Siparis.musteri_no musteri.musteri_no Siparis.urun_kodu musteri.urun_kodu

Laboratuvar 6 TABLOLAR VE KISITLAR

TRIGGER. Trigger lar, tablo üzerinde tanımlanabilen ve bu tablo üzerinde bir işlem gerçekleştiğinde tetiklenen programlama ögeleridir.

İLİŞKİSEL VERİTABANLARI

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

ELIF KIOTZEOGLOU RESUL MURAD MERT PACOLARI

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

SUNGURLU MESLEK YÜKSEKOKULU 5. T-SQL

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

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

Nesneler üzerinde değişiklik yapmak için kullanılır. Veri tabanındaki nesnelerin oluşturulabilmesi için CREATE komutu kullanılır.

Durhan GABRALI Veritabanı Organizasyonu Dersi (11B)

Veritabanı Tasarımı. Kullanıcı Erişimini Kontrol Etme

SQL TRIGGERS (Tetikleyiciler)

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

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

BÖLÜM- 8: DİĞER ŞEMA NESNELERİNİ OLUŞTURMA

BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK

Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir. Çok satır dönerse hata verir.

Örnek: HAFTA12B isimli bir kullanıcı tanımlayalım. Bu kullanıcıya gerekli yetkileri verelim.

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

Veritabanı Tasarımı Ve Yönetimi

SUNGURLU MESLEK YÜKSEKOKULU 5. T-SQL-2

Fonksiyonlar istenilen deger tipinde dönüs yapabilir. INT, VARCHAR deger döndürebileceğiniz gibi bir tablo da döndürebilirsiniz.

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

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

Veritabanı Tasarımı. Tablo Değiştirme

Veritabanı Dersi. Teoriden Pratiğe. Çağıltay N.E., Tokdemir G. Veritabanı Sistemleri Dersi -Bölüm XII: Durum Çalışması Çağıltay, N., Tokdemir, G.

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Veri Tabanı ve Yönetimi (BİL 301)

20461C Querying Microsoft SQL Server Modül Seviye Belirleme Testi

Oracle Database 11g: Introduction to SQL

Veri Tabanı-I 4.Hafta

BMB202. Veritabanı Yönetimi Ders 6. SQL. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

ÜNİTE NESNE TABANLI PROGRAMLAMA I. Uzm. Orhan ÇELİKER VERİTABANI SORGULARI İÇİNDEKİLER HEDEFLER

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

Aşağıdaki tabloyu inceleyin. Sorgulama işlemlerini bu tabloya göre yapacağız.

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım.

İLİŞKİSEL VERİ MODELİ

Transkript:

EBE-368 Veri Tabanı Yönetim Sistemleri İlişkisel Model (The Relational Model) Dr. Dilek Küçük

İlişkisel Model [1] Günümüzde en yaygın kullanılan veri tabanı modelidir. Bir ilişkisel veri tabanı bir veya data fazla ilişkiden (relation) oluşur. İlişkiler iki kısımdan oluşur: İlişki şeması (relation schema) İlişkinin adını, alanlarının adlarını ve bu alanların veri türleri. İlişki örneği (relation instance) Şemaya karşılık gelen ve satırları (kayıtları) olan bir tablo 2

İlişki şeması: İlişkisel Model [2] Öğrenci (no:tamsayı, ad:karakter dizisi, soyad: karakter dizisi, yaş:tamsayı, ortalama:reel sayı) İlişki örneği: no ad soyad yas ortalama 21325 Necla Yılmaz 18 2,9 21345 Öykü Okan 20 2,1 21378 Elçin Demir 19 3,3 21389 Özgür Kara 19 3,1 21370 Serkan Özdemir 20 1,8 3

İlişkisel Model [3] Bir örnekteki herhangi iki kayıt birbirinin aynı olamaz. Alan kısıtlamaları (domain constraints) her kolonun hangi veri kümesinden değer alabileceğini belirtir. Bir ilişkideki kolon sayısına derece adı verilir. Öğrenci ilişkisinin derecesi 5 tir. 4

SQL Sorgu Dili 19 yaşındaki tüm öğrencileri bulmak için: SELECT * FROM Ogrenci WHERE yas = 19; no ad soyad yaş ortalama 21378 Elçin Demir 19 3,3 21389 Özgür Kara 19 3,1 19 yaşındaki öğrencilerin sadece ad ve soyadları için: SELECT ad, soyad FROM Ogrenci WHERE yas = 19; ad Elçin Özgür soyad Demir Kara 5

SQL de İlişki Oluşturma Ogrenci ilişkisini oluşturmak için: CREATE TABLE Ogrenci ( no INTEGER, ad CHAR(30), soyad CHAR(30), yas INTEGER, ortalama REAL); VTYS kayıt eklenirken ve güncellenirken alanların veri türlerinin uygun olmasını zorlar. 6

SQL de İlişki Silme ve Değiştirme Ogrenci ilişkisini silmek için aşağıdaki komut kullanılır. Şema bilgisi ve kayıtlar silinir. DROP TABLE Ogrenci; Ogrenci ilişkisine yeni bir alan eklemek için: ALTER TABLE Ogrenci ADD COLUMN sinif INTEGER; Bu alanı kaldırmak için: ALTER TABLE Ogrenci DROP COLUMN sinif; 7

SQL de Kayıt Ekleme/Silme/Güncelleme Ogrenci ilişkisine kayıt eklemek için INSERT INTO Ogrenci (no, ad, soyad, yas, ortalama) VALUES (21325, Necla, Yılmaz, 18, 2.9); Ogrenci ilişkisinden belirli bir şartı sağlayan kayıtları silmek için (ör. Adı Necla olanları): DELETE FROM Ogrenci WHERE ad = Necla ; Ogrenci ilişkisinde bir kaydı güncellemek için: UPDATE Ogrenci SET yas = 19 WHERE no = 21325; 8

Bütünlük Kısıtlamaları (Integrity Constraints) Bir veri tabanı şemasında belirtilen ve veri tabanının bir örneğinde saklanabilecek veriyi sınırlayan durumlara bütünlük kısıtlamaları denir. Veritabanı tanımlanırken ifade edilirler. İlişkiler değiştirilirken kontrol edilirler. Veri tabanı yönetim sistemleri, veri tabanının bütünlük kısıtlamalarına uygun olmasını sağlar. 9

Anahtar Kısıtlamaları [1] Bir ilişkinin alanlarının belirli en küçük bir alt kümesinin bu ilişkideki kayıtları diğerlerinden ayırt etmesi ifadesidir. Bir kaydı diğerlerinden ayıran bu tip bir alt kümeye aday anahtar veya anahtar adı verilir. Bir ilişki örneğindeki iki farklı kayıt, anahtar alanlarında tamamen aynı değerlere sahip olamaz. Anahtarın alanlarının hiçbir alt kümesi bir kayıt için ayırt edici değildir. Bir anahtar içeren alan kümesine süper anahtar adı verilir. 10

Anahtar Kısıtlamaları [2] Aday anahtarlar arasından biri birincil anahtar (primary key) olarak belirtilir. SQL de anahtar oluşturan kümeler UNIQUE kelimesi ile belirtilebilir. Bu adaylardan en fazla biri PRIMARY KEY kelimesi ile birincil anahtar olarak ifade edilir. CREATE TABLE Ogrenci (no INTEGER, ad CHAR(30), soyad CHAR(30), yas INTEGER, ortalama REAL, UNIQUE (ad, soyad), CONSTRAINT OgrenciAnahtari PRIMARY KEY (no)); 11

Yabancı Anahtar Kısıtlamaları [1] İki ilişkiyi içeren en yaygın kısıtlama yabancı anahtar (foreign key) kısıtlamasıdır. DersKaydi(ogrenci_no:tamsayı, ders:karakter dizisi, harf_notu:karakter) DersKaydi ilişkisinin ogrenci_no alanı bir yabancı anahtardır ve Ogrenci nin no alanına işaret eder. ogrenci_no ders harf_notu 21325 VTYS111 A 21389 TARIH300 B 21378 TURKCE222 A no ad soyad yas ortalama 21325 Necla Yılmaz 18 2,9 21345 Öykü Okan 20 2,1 21378 Elçin Demir 19 3,3 21389 Özgür Kara 19 3,1 21370 Serkan Özdemir 20 1,8

Yabancı Anahtar Kısıtlamaları [2] CREATE TABLE DersKaydi (ogrenci_no INTEGER, ders CHAR(20), harf_notu CHAR(1), PRIMARY KEY (ogrenci_no, ders), FOREIGN KEY (ogrenci_no) REFERENCES Ogrenci ON DELETE CASCADE ON UPDATE NO ACTION); Alan, birincil anahtar ve yabancı anahtar kısıtlamaları dışında da genel kısıtlamalar olabilir: Tablo kısıtlamaları Koşullar (assertions)

Anahtar Kısıtlamaları Notlar [1] Bilinmeyen veya mevcut olmayan tablo alanlarına null değeri eklenebilir. UNIQUE anahtar kelimesini gibi null değer almaması gereken alanlar da NOT NULL ile kısıtlanabilir. Birincil anahtar kısıtlaması; UNIQUE ve NOT NULL kısıtlamalarının beraber zorunlu tutar. Birincil anahtara ait alanlar null değer içeremez.

Anahtar Kısıtlamaları Notlar [2] Yabancı anahtarlara ait alanlar null değer içerebilir. Yabancı anahtarın işaret ettiği alanın/alanların işaret edilen tabloda anahtar olması/olmaları gerekir. Bir yabancı anahtar kendi tablosundaki bir alana/alanlara da işaret edebilir. Yabancı anahtarın kısıtlaması durumunda işaret edilen tabloda veri silinmesi/güncellenmesi durumunda aşağıdaki seçeneklerden biri belirtilir: RESTRICT NO ACTION CASCADE SET NULL SET DEFAULT

Mantıksal Veritabanı Tasarımı: Varlık-İlişki den İlişkisele Varlık kümeleri tablolara dönüştürülür, her öznitelik tablonun bir alanı olur. CREATE TABLE Personel (sicil_no INTEGER, adi CHAR(30), dogum_tarihi DATE, PRIMARY KEY (sicil_no)); 16

Mantıksal Veritabanı Tasarımı [2] 17

Mantıksal Veritabanı Tasarımı [3] İlişki kümeleri de tablolara dönüştürülür. Alanlar aşağıdakileri içerir: Katılan varlıkların birincil anahtar öznitelikleri yabancı anahtar olarak, İlişki kümesinin tanımlayıcı öznitelikleri. CREATE TABLE Calisir (sicil_no INTEGER, bolum_no INTEGER, adres CHAR(20), baslangic_tarihi DATE, PRIMARY KEY (sicil_no, bolum_no, adres), FOREIGN KEY (sicil_no) REFERENCES Personel, FOREIGN KEY (bolum_no) REFERENCES Bolum, FOREIGN KEY (adres) REFERENCES Yer); 18

Mantıksal Veritabanı Tasarımı [4] CREATE TABLE Karsi_Sorumludur (yonetici_sicil_no INTEGER, ast_sicil_no INTEGER, PRIMARY KEY (yonetici_sicil_no, ast_sicil_no), FOREIGN KEY (yonetici_sicil_no) REFERENCES Personel (sicil_no), FOREIGN KEY (ast_sicil_no) REFERENCES Personel (sicil_no)); 19

Mantıksal Veritabanı Tasarımı [5] CREATE TABLE Yonetir (sicil_no INTEGER, bolum_no INTEGER, baslangic_tarihi DATE, PRIMARY KEY (bolum_no), FOREIGN KEY (sicil_no) REFERENCES Personel, 1. Yaklaşım (toplam 3 tablo) FOREIGN KEY (bolum_no) REFERENCES Bolum); 20

Mantıksal Veritabanı Tasarımı [6] CREATE TABLE Bolum_Yonetim (bolum_no INTEGER, bolum_adi CHAR(20), butce REAL, sicil_no INTEGER, baslangic_tarihi DATE, PRIMARY KEY (bolum_no), 2. Yaklaşım (toplam 2 tablo) FOREIGN KEY (sicil_no) REFERENCES Personel); 21

Mantıksal Veritabanı Tasarımı [7] CREATE TABLE Bolum_Yonetim (bolum_no INTEGER, bolum_adi CHAR(20), butce REAL, sicil_no INTEGER NOT NULL, baslangic_tarihi DATE, PRIMARY KEY (bolum_no), FOREIGN KEY (sicil_no) REFERENCES Personel ON DELETE NO ACTION); 22

Mantıksal Veritabanı Tasarımı [8] CREATE TABLE Cocuk_Bakim (c_adi CHAR(20), c_dogum_tarihi DATE, masraf REAL, sicil_no INTEGER, PRIMARY KEY (c_adi, sicil_no), FOREIGN KEY (sicil_no) REFERENCES Personel ON DELETE CASCADE); 23

Mantıksal Veritabanı Tasarımı [9] İki yaklaşım mevcuttur: Her varlık için ayrı tablo oluşturmak. Alt sınıflara ait tablolar sicil_no yabancı anahtarıyla Personel tablosuna işaret eder. Sadece alt sınıflara ait iki tablo oluşturmak. Bu tablolar varlıkların hem kendi özniteliklerine hem de Personel in özniteliklerine karşılık gelen alanlar 24 içerirler.

Mantıksal Veritabanı Tasarımı [10] İzler için sicil_no, p_no, bolum_no, ve bitis_tarihi alanlarından oluşan bir tablo oluşturulabilir. Eğer Destekler ilişkisinin hiç özniteliği olmasaydı ve İzler ilişkisine tam katılımı olsaydı Destekler için ayrı bir tablo oluşturulmasına gerek olmazdı. 25

Görüntüler Satırları gerçekte veri tabanında depolanmayan, gerektikçe tanımı kullanılarak hesaplanan tablolara görüntü (view) adı verilir. CREATE VIEW B-Ogrenci (ad, soyad, ogrenci_no, ders) AS SELECT O.ad, O.soyad, O.ogrenci_no, D.ders FROM Ogrenci O, DersKaydi D WHERE O.ogrenci_no = D.ogrenci_no AND D.harf_notu = B ; Görüntüler mantıksal veri bağımsızlığını ve veri güvenliğini sağlamada faydalıdırlar. 26

Teşekkürler 27