İlişkisel Veri Modeli

advertisement
VERİTABANI YÖNETİMİ
İlişkisel Veritabanı
4.HAFTA
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
İlişkisel Veri Tabanı







İlişkisel veri tabanı, birbirinden farkı tablolara yerleştirilmiş olan verilerin
birbirleri ile belirli alanlara göre ilişkilendirilerek düzenlenen veri
tabanlarıdır.
İlişkisel veri tabanları birden fazla tablodan oluşabilir.
İlişkisel veri tabanlarında veriler tablolarda birbirleri ile ilişkili bir şekilde
saklanmaktadır.
En geniş kullanım alanına sahip veri modelidir.
• Oracle 7.6. ve SQL server bu modeli temel alır.
İlişkisel modele bir alternatif nesneye dayalı veri modelidir.
Bu iki modelin kaynaşmasından nesne ilişkisel veri
modelleri ortaya çıkmıştır.
•
UniSQL, Informix Universal Server, Oracle 8.0, DB2 bazı
örnekleridir.
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
İlişkisel Veritabanı
İlişkisel veri tabanı modeli ilk defa 1970 yılında Dr. E.F. Codd tarafından
ortaya atılmıştır. Model, veri tabanına kayıt edilmiş bilgilerin belli kurallara
uymasını kapsar. İlişkisel veri modeli İlişkisel veri tabanı dillerini ortaya
çıkarmıştır.
İlişkisel Veritabanı Sistemleri büyük miktarlardaki verilerin güvenli bir şekilde
tutulabildiği, bilgilere hızlı erişim imkanlarının sağlandığı, bilgilerin bütünlük
içerisinde tutulabildiği ve birden fazla kullanıcıya aynı anda bilgiye erişim
imkanının sağlandığı programlardır.
İlişkisel veritabanı günümüzde en yaygın kullanılan ilişkisel veritabanı
sistemlerinden biridir.
En çok kullanılan ilişkisel Veritabanı Yönetim Sistemlerine Oracle, MS SQL
Server, Sybase, gibi veritabanı yönetim sistemlerini örnek olarak verebiliriz.
Günümüzde hemen tüm VTYS’ler ilişkisel veri modelini kullanırlar. Bu model
verileri birden çok ilişkili tablolarda tutabilir ve böylece “İlişkisel Veri Tabanı”
olarak adlandırılan veri tabanlarını oluştururlar.
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Neden İlişkisel VT?
1.
2.
3.
4.
Bilgi tekrarını azaltır.
Veriyi sorgulama imkanı verir.
Veriyi işlemek daha kolaydır.
Gereken disk alanı azdır.
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
İlişkisel Veri Tabanı
İlişkisel Veri Tabanı altında inceleyeceğimiz alt kavramlar:
• Sunucular
•Tablolar
• Sütunlar
• Satırlar
• Değerler
• Kısıtlamalar
•Anahtarlar
• Şemalar
• İlişkiler
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Sunucu-Veri tabanı-tablo-kayıt ilişkileri
Sunucu
Veritabanı
Numara
Adi
Soyadı
Vize
1
2
3
4
Ali
Aylin
Aydın
Sami
Kaya
Kul
Recep
Sert
75
76
80
67
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Kayıtlar
Tablo
Sunucu:
SQL Server: Microsoft firmasına ait bir veritabanı sunucu yazılımıdır.
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
İlişkisel Veri Tabanın Genel bir Yapısı
Birden fazla tablodan oluşabilir.
Tablolar en genel halde satır ve sütundan oluşur.
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Tablolar
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Kavramlar
Tablo (Table): İlişkisel veri tabanı sistemlerinde, aynı özelliklere sahip veri kümelerinin
saklandığı yapılar tablo olarak isimlendirilir. Tablo 2 boyutlu bir matris; Kolonları ve satırları var.
Kayıt (Record): Veri tabanı sistemi içinde bulunan tablolardaki her bir satırdaki bilgiye kayıt adı
verilir.
Nitelik (Attribute): Veri tabanında, tablolara yerleştirilen her kayıt için tanımlanmış olan her bir
veri alanı nitelik olarak adlandırılır. Tablodaki sütunlar, kayıtların niteliklerini verir.
Anahtar Nitelik (Key Attribute): Tablolar içindeki kayıtların diğerlerinden ayrıştırılması ve
ihtiyaç durumunda diğer tablolardaki kayıtlar ile olan bağıntılarının kurulabilmesi için her kaydı
tek (unique) olarak tanımlamaya yarayan anahtar nitelik belirlenir.
Birleşik Anahtar Nitelik (Composite Key): Birden fazla niteliğin bir araya gelmesi sonucu
oluşan anahtarlardır.
Süper Anahtar Nitelik (Super Key): Bir tabloya ait kayıtların tek olarak tanımlanmasını
sağlayan her bir nitelik grubu bir süper anahtar olarak tanımlanır. Bir tabloya ait birçok süper
anahtar seti bulunabilir.
SA={{kod, ad}, {kod}, {ad, tarih, yer}, {tarih, yer},…}
Aday Anahtar Nitelik (Candidate Key): Süper anahtar nitelik kümesinin bir alt kümesidir. Süper
nitelikten farkı, süper nitelik içerisindeki minimal elemanlardan oluşmasıdır.
Birincil Anahtar Nitelik (Primary Key): Bir ya da daha fazla niteliğin bir araya gelmesi ile
tanımlanır. Tablo içindeki her kayıtın sadece bir kez tanımlanmasını garanti etmek için kullanılır.
Aday anahtar kümesi içinde bulunan elemanlar içinde seçilen en uygun anahtardır.
Yabancıl Anahtar Nitelik (Foreign Key): İlişkisel veri tabanı sistemlerinde, farklı tablolarda
tutulan veriler birbirleri ile birincil ve yabancıl anahtarlar yardımıyla ilişkilendirilir. Yabancı
anahtar, bir tabloya girilebilecek verileri başka
bir tablonun herhangi bir alanında yer alabilecek
©Veritabanı Yönetimi
İbrahim Çil
veriler ile sınırlandırmak ve ilişkilendirmek Prof.
içinDr.kullanılır.
Tablo örneği
Tablolar veri tabanının ana nesneleridir. Bir veri tabanında verilerin
saklanmış olduğu nesneler tablo olarak adlandırılır. Bir veri tabanı en az bir
tablodan oluşur. Veri tabanını oluşturan tablolar ise “data field” adı verilen
veri alanlarından oluşmaktadır. Tabloları oluşturan sütunlar alanları, satırlar
ise kayıtları göstermektedir.
NO
1
2
3
4
5
ADI
ALİ
VELİ
AHMET
MEHMET
HASAN
DOĞUM_TARĠHİ
12/01/1990
22/09/1989
23/10/1992
12/05/1993
12/10/1980
DOĞUM_YERİ
ANKARA
İSTANBUL
İZMİR
DENİZLİ
MANİSA
Yukarıdaki tabloda;
NO, ADI, DOĞUM_TARİHİ, DOĞUM_YERİ olarak dört adet sütun başlığı,
Alan isimleri(sütun başlıkları) hariç beş adet satır bulunmaktadır.
Her kayıt, bir kişiye birçok yönüyle bağlıdır. Örneğin, üçüncü kayıt için; 3
numaralı personelin adı AHMET, doğum tarihi 23/10/1992ve doğum yeri
İZMİR olduğu bilgisine ulaşılır.
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
İlişkisel veritabanında yer alacak olan tabloların aşağıdaki
özelliklere sahip olması gerekmektedir;
Tablolar satır ve sütunlardan oluşur.
Her sütunun alacağı isim birbirinden farklı olmalıdır.
Her satır birbirinden farklı olmalıdır yani birbiri ile tamamen ayni olan iki
kayıt kullanılmamalıdır.
Satırların ve sütunların sırasının nasıl olacağı önemli değildir.
İlişki (Relationship) Örneği
İlişki adı
Özellikler (Attributes)- sütunlar
NO
1
2
3
4
5
ADI
ALİ
VELİ
AHMET
MEHMET
HASAN
Anahtar alan
DOĞUM_TARĠHİ
12/01/1990
22/09/1989
23/10/1992
12/05/1993
12/10/1980
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
DOĞUM_YERİ
ANKARA
İSTANBUL
İZMİR
DENİZLİ
MANİSA
Satırlar (Tuples)
Kayıtlar
PERSONEL
Tablolar


Bir veritabanı tablolarda saklanan verilerden oluşur.
Tablolar verilerin satırlar ve sütunlar halinde düzenlenmesiyle
oluşan veri grubudur. Örneğin öğrenci bilgilerini veritabanında
saklamak için tablo oluşturulur:
•

Ogrenci_bilgileri
Tablo içindeki her bir bilgi kayıt, Sütunlar ise alan olarak
isimlendirilir. Örneğin öğrenci bilgileri tablosunda
•
•
•
•
Alan
Öğrenci numarası,
adı
NO
AD
SOYAD
TEL
soyadı,
125
ALİ
KAR
32332
tel
349
VELİ
KAYA
54324
bilgileri yer alabilir
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Tablolar








Tablo veri tabanı mantığı içerisindeki en önemli kavramdır.
Tablolar veritabanlarının temelidir, çünkü tablolar bilgileri
organize olmuş bir şekilde tutar ve bizim bilgilere ulaşmamızı
sağlar.
Veritabanı binlerce, milyonlarca parçalanmış bilgiye etkili ve
doğru şekilde ulaşmamızı sağlar.
Veri tabanı aslında tablolarda saklanan verilerden oluşur.
Tablo belli bir konu hakkındaki datalar topluluğudur .
Tablodaki veri sütun ve satırlarla ifade edilir.
Her sütün, bir bilgi kategorisi olan bir alanı temsil eder.
Her satır ise bir öğe için bilgi saklayan kayıttan oluşur.
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Bir kaydın veri tabanında saklanması
• Bir kayıt, bir kişi, bir yer, yada bir olay gibi hakkında bilgi saklanacak olan
tek ve bağımsız bir varlığı (entity) tanımlar.
• Mesela bir satış siparişi dosyasındaki bir “sipariş” tipik bir varlıktır.
• Bir varlığı tanımlayan her bir özelliğe alan denir. Örneğin, sipariş no,
sipariş tarihi, sipariş miktarı, vb.
• Bu alanların alabileceği spesifik değerler sipariş kaydını teşkil eden
alanlarda bulunabilir.
• Bir tablo içindeki her bir kayıt, o kaydın çağırılmasında kullanılabilecek en
az bir tane tanımlayıcı alan içermelidir. Bu tanımlayıcı alana anahtar alan
adı verilir.
• Bu örnekte sipariş numarası anahtar alandır çünkü her bir siparişe
kendine özgü bir tanımlayıcı numara verilir.
Varlık: Sipariş
Alanlar
Sipariş no
sipariş tarihi
Parça no
sipariş miktarı
4340
02/08/2013
1580
2
Anahtar alan
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Kayıtlar
İlişkisel Veri Modeli - Kavramlar
Özellikler (Attributes)
Sicil No
Adı
Soyadı
Giriş Tarihi
Doğum Tarihi
1
Mehmet
Taner
06/03/2004
15/10/1970
2
Aysu
Şahin
15/10/2003
01/08/1966
3
Kemal
Atlı
29/05/2002
10/02/1971
4
Ali
Demirci
12/05/2005
18/07/1974
5
Gülin
Merter
07/08/2007
23/02/1972
Birincil Anahtar
Satır Sayısı
Sütun Sayısı
ÜNVANLAR
Yabancı Anahtar
Sıra No
Unvan_Kodu
Açıklama
Terfi Tarihi
Sicil No
1
SM
Satış Müdürü
06/03/2004
1
2
PM
Proje Müdürü
15/10/2003
1
3
MUH
Mühendis
29/05/2002
2
4
UZMUH
Uzman Mühendis
12/05/2005
2
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Satırlar (Tuples)
İlişki (Relation)
PERSONEL
Tablolar
• İlişkisel veritabanlarının temelini oluşturan yapıdır.
• Satır ve sütunlardan oluşur.
Örnek bir tablo yapısı:
Öğrenci No
Ad
Soyad
E - Posta
101
Ali
bilgi
[email protected]
102
Veli
ak
[email protected]
103
Can
kara
[email protected]
Örnek tabloda yer alan her bir satır farklı bir öğrencinin bilgilerini içerir.
Her sütun ise kendi içinde aynı tip bilgiyi depolar.
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Sütunlar- Alanlar
• Tablodaki her sütun benzersiz bir ada sahiptir ve farklı veriler içerir.
• Her sütunun ilişkilendirilmiş bir veri tipi vardır.
• Örnek tabloda “Öğrenci No” sütunu sayısal veri tipi ile ilişkilendirilmişken
diğer alanlar metin veri tipi ile ilişkilendirilmiştir.
Tc_Kimlik
Ad
Soyad
E_Posta
Telefon
12342378891
Ejder
Ayçin
[email protected]
02324208994
23421124534
Hakan
Aşan
[email protected]
02324208923
23474367832
Talip
Arsu
[email protected]
05555308998
98324534244
Melih
Durmuş
[email protected]
05332274392
•Tabloların her bir özelliğini tutar.
•Her sütunun belli bir tipi vardır.( Metin, Tarih,…)
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Satırlar- Kayıtlar
• Tablodaki her satır farklı bir veri girişini (öğrenciyi) temsil eder.
• Tablonun biçimi nedeniyle satırların her biri aynı niteliklere sahiptir.
• Her bir satır “Kayıt” olarak da ifade edilebilir.
• Örnek tabloda üç farklı veri girişi (kayıt) görülmektedir.
Tc_Kimlik
Ad
Soyad
E_Posta
Telefon
12342378891
Ejder
Ayçin
[email protected]
02324208994
23421124534
Hakan
Aşan
[email protected]
02324208923
23474367832
Talip
Arsu
[email protected]
05555308998
98324534244
Melih
Durmuş
[email protected]
05332274392
•Her satır bir kaydı temsil eder.
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Değerler
• Tablodaki her satır sütunlara karşılık gelen bir dizi değerden oluşur.
• Her değer, sütunu tarafından belirtilen veri tipinde olmalıdır.
• Örnek tabloda yer alan “Ahmet”, “yumak”, “101” ve benzeri sayı ve metin
katarlarının her biri değer olarak ifade edilir.
Tc_Kimlik
Ad
Soyad
E_Posta
Telefon
12342378891
Ejder
Ayçin
[email protected]
02324208994
23421124534
Hakan
Aşan
[email protected]
02324208923
23474367832
Talip
Arsu
[email protected]
05555308998
98324534244
Melih
Durmuş
[email protected]
05332274392
Girilen her bir veri değere karşılık gelir.
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Anahtarlar
• Anahtarlar satırları (kayıtları) tanımlayan özel sütunlardır (alanlardır).
• Farklı veri tipleri anahtar olarak belirlenebilir.
• Anahtar olarak belirlenen sütunların içinde yer alan her bir satır (değer)
benzersizdir. Örnek tabloda yer alan “Öğrenci No” alanı anahtar olarak
belirlenmek için uygun sütundur.
Tc_Kimlik
Ad
Soyad
E_Posta
Telefon
12342378891
Ejder
Ayçin
[email protected]
02324208994
23421124534
Hakan
Aşan
[email protected]
02324208923
23474367832
Talip
Arsu
[email protected]
05555308998
98324534244
Melih
Durmuş
[email protected]
05332274392
•Anahtarlar satırları (kayıtları) tanımlayan özel sütunlardır (alanlardır).
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
İlişkiler
Tc_Kimlik
Ad
Soyad
E_Posta
Telefon
12342378891
Ejder
Ayçin
[email protected]
02324208994
23421124534
Hakan
Aşan
[email protected]
02324208923
23474367832
Talip
Arsu
[email protected]
05555308998
98324534244
Melih
Durmuş
[email protected]
05332274392
Sinav_No
Tc_Kimlik
Sinav_Notu
1
12342378891
80
2
23421124534
90
3
23474367832
85
4
12342378891
75
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Metadata
Veri tabanının yapısı hakkındaki verilere metadata adı verilir.
▪Tablo isimleri
▪Sütun isimleri
▪Tablo ve sütunların özellikleri vb.
Tablo no
Tablo adı
1
Müşteriler
3
7
2
Firmalar
3
4
3
Satışlar
3
Sütun sayısı
Satır sayısı
Sütun no Sütun adı Veri türü
7
Metadata: Veri hakkında veri.
VTYS’de bir varlığın tüm özelliklerinin tanımlanması, ör:
Ad
Veri türü
Büyüklük
Biçim veya özel karakteristikler
Dosyaların ya da ilişkilerin özellikleri
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Ad, içerik, notlar, vs.
Uzunluğu
Tablo no
1
id
int
4
1
2
Mus_adi
char
50
1
3
meslegi
char
50
1
Anahtarlar
Bir veri tabanının etkin bir şekilde çalışabilmesi için tablonun alanlarından
bir veya kayıtları tek başına temsil edebilecek birkaç alan kullanılarak
anahtarlar oluşturulur. Bu anahtarlar kayıtların sıralanmasında,
aranmasında ve ilişkilerin kurulmasında yardımcı olur. Bunun dışında
anahtarlar alanlara çift bilgi girilmesini de önlerler.
 Birincil Anahtar Nitelik (Primary Key): Bir ya da daha fazla niteliğin bir
araya gelmesi ile tanımlanır. Tablo içindeki her kayıtın sadece bir kez
tanımlanmasını garanti etmek için kullanılır. Aday anahtar kümesi içinde
bulunan elemanlar içinde seçilen en uygun anahtardır.
 Aday anahtarlar arasından seçilmiş anahtar. Bu anahtar sadece bir
özellikten oluşabileceği gibi birden fazla özelliğin birleşiminden de
oluşabilir. Çalışan varlık türünde SİCİLNO veya TC_KİMLİK_NO
özellikleri birincil anahtar olarak seçilebilir.
 Yabancıl Anahtar Nitelik (Foreign Key): İlişkisel veri tabanı
sistemlerinde, farklı tablolarda tutulan veriler birbirleri ile birincil ve
yabancıl anahtarlar yardımıyla ilişkilendirilir. Bir yabancıl anahtar veri
tabanı tablosunda bulunan bir©Veritabanı
niteliktir.
Yönetimi
Prof. Dr. İbrahim Çil
Anahtarlar

Genel anahtar (superkey)
ilişki dahilinde satırı eşsiz tanımlayan özellik veya özellikler kümesi



Basit anahtar- yalnız bir özellikten oluşan anahtar
Karmaşık anahtar- birkaç özellikten oluşan anahtar
Aday anahtar (candidate key)-Altkümesi genel anahtar
olmayan genel anahtar, başka değişle, her hangi biçimde parçalandığı
zaman anahtarlık özelliğini kaybeden karmaşık anahtar; her bir basit
genel anahtar aday anahtardır.


Birincil anahtar-Aday anahtarlar içinden seçilmiş aday anahtar
Yabancı anahtar-Bir ilişkinin , başka bir ilişkinin aday
anahtarı ile eşleşen özellik veya özellikler kümesi
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Anahtarlar (devamı)

Aday anahtarın özellikleri:
eşsizlik- her bir satır için eşsiz değer alması
küçülmezlik- karmaşık aday anahtarın her hangi altkümesinin anahtar
özelliği yoktur

Birincil anahtarın özellikleri:
özellikler kümesi en küçük olmalı;
değerlerinin değişme olasılığı düşük olmalı;
eşsizlik özelliğini kaybetme olasılığı düşük olmalı
ismi çok sayıda karakterle ifade edilmemeli;
kullanıcı tarafından kolay kullanıla ve anlaşıla bilir olmalı;
satır için anlam ifade etmeli
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
İlişkisel Bütünlük (relational İntegrity)

Boş (Null) değerler
Özelliğin, verilmiş satır için uygulana bilmeyen veya şuan belli olmayan
değerini ifade eder

Varlık bütünlüğü (Entity İntegrity)
Taban ilişkide birincil anahtar özelliği boş değer alamaz
Erişimsel Bütünlük (Referential İntegrity)
İlişkide yabancı anahtar varsa, bu anahtarın değeri, ana ilişkinin her
hangi bir satırındaki aday anahtarının değerine eşit olmalı veya boş
değer almalıdır
Sınırlamalar
1. Kullanıcılar veya veri tabanı yöneticisi tarafından belirlenmiş kurallar


©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Anahtar Alan






Anahtar Alan: Varlık kümesinde yer alan her varlığı kesin olarak
tanımlamaya yarayan özelliklere aday anahtar adı verilir. Çalışan varlık
türünde SİCİLNO ve TC_KİMLİK_NO özellikleri aday anahtar olabilir.
Fakat Çalışan_ADI özelliği olamaz, çünkü aynı ada sahip birden fazla
Çalışan olabilir.
Eğer bir üniversitede tüm öğrencilerin numaraları birbirinden farklı ise,
öğrencileri ayırt etmek için öğrenci numarası yeterlidir. Bu durumda
“öğrenci numarası”, “öğrenci” varlık kümesi için aday anahtar ya da kısaca
anahtardır.
Birleşik (Composite) Anahtar: İki veya daha fazla özellikten oluşan aday
anahtar. ÖĞRENCİ NO, YIL ve DÖNEM alanları birleşik anahtar olabilir.
Süper Anahtar Nitelik (Super Key): Bir tabloya ait kayıtların tek olarak
tanımlanmasını sağlayan her bir nitelik grubu bir süper anahtar olarak
tanımlanır. Bir tabloya ait birçok süper anahtar seti bulunabilir.
SA={{kod, ad}, {kod}, {ad, tarih, yer}, {tarih, yer},…}
Aday Anahtar Nitelik (Candidate Key): Süper anahtar nitelik kümesinin bir
alt kümesidir. Süper nitelikten farkı, süper nitelik içerisindeki minimal
©Veritabanı Yönetimi
elemanlardan oluşmasıdır.
Prof. Dr. İbrahim Çil
Kısıtlamalar (Constraınts)



Veri tabanında depolanan bilgiler arasında bir bütünlük olması yani
verilerin birbirleri ile uyumlu olması gerekmektedir.
Bütünlük kısıtlamaları, veri tabanında depolanacak verileri kısıtlayan
koşullar olarak adlandırılır.
Bir veritabanına kısıtlamalar uygulanarak sadece geçerli verilerin
depolanması sağlanır.
1. PRIMARY KEY
2. FOREIGN KEY
3. NULL / NOT NULL
4. CHECK
5. UNIQE
6. DEFAULT
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
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.
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Anahtar Kısıtlamaları
Veri tabanında depolanan bilgiler arasında bir bütünlük olması yani verilerin birbirleri
ile uyumlu olması gerekmektedir.
Bütünlük kısıtlamaları, veri tabanında depolanacak verileri kısıtlayan koşullar olarak
adlandırılır.
Bir veritabanına kısıtlamalar uygulanarak sadece geçerli verilerin depolanması
sağlanır.
Bütünlük kısıtlamalarının sağlanmasında anahtar kısıtlamaları önemli bir role sahiptir.
Herhangi bir tablodaki her bir satır için kullanılan anahtarın tek olması gerekmektedir.
Aksi takdirde kayıtlar arasında tutarsızlıklar meydana gelebilmektedir.
Birincil anahtar(primary key) veya yabancı anahtar(foreign key) türlerinden birisi
seçilerek kısıtlamaların gerçekleştirilmesi sağlanmaktadır.
Anahtar Kısıtlamaları: Bütünlük kısıtlamalarının sağlanmasında anahtar
kısıtlamaları önemli bir role sahiptir.
Herhangi bir tablodaki her bir satır için kullanılan anahtarın tek olması gerekmektedir.
Aksi takdirde kayıtlar arasında tutarsızlıklar meydana gelebilmektedir.
Birincil anahtar(primary key) veya yabancı anahtar(foreign key) türlerinden birisi
seçilerek kısıtlamaların gerçekleştirilmesi sağlanmaktadır.
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Anahtar Kısıtlamaları
Birincil anahtarlar hiçbir zaman NULL(boş) veya birbiri ile ayni olan değerleri
içeremez.
Yabancı anahtar, bir tabloya girilebilecek verileri başka bir tablonun herhangi bir
alanında yer alabilecek veriler ile sınırlandırmak ve ilişkilendirmek için kullanılır.
OGRENCI
TCKİMLİK_NO
AD
SOYADİ
ADRES
BÖLÜMÜ
Yabancı anahtar
Birincil anahtar
NOTLAR
ÖĞRENCİNO
Birincil anahtar
ÖĞRENCİNO
ORTALAMANOTU
HARFKARŞILIĞI
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Veri Kısıtlamaları
Tablo tasarlarken kullanılan verilerin tutarlılığını sağlamak ve ne tür
değerlere sahip olabileceğini belirlemek için de kısıtlamalar getirilebilir. Veri
kısıtlamaları sırasında kullanılan bazı kısıtlamalar Not Null, Default, Unique
ve Check’tir.
1.
Not null kısıtlaması; Veri girişi yapılacak bir tablodaki sütunun değer
alıp (NULL) almaması (NOT NULL) gerektiğini belirlemek için
kullanılan kısıtlamadır.
2.
Default kısıtlaması; Veri girişi sırasında bir alanın alabileceği
varsayılan bir değer atamak için kullanılır.
3.
Unique kısıtlaması; Tablodaki bir alana girilen verinin tekrarsız
olmasını sağlamak için kullanılır.
4.
Check Kısıtlaması; Kontrol kısıtlayıcı olarak da adlandırılır. Veri
girişlerinin belirtilen kriterlere göre yapılmasını sağlar. Örneğin kişinin
T.C. Kimlik numarası girilirken 11 haneden fazla değer girilmesi
engellenebilir.
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
KISITLAMALARIN KULLANIMI
Boş Geçilemez : ogr no int NOT NULL
Birincil Anahtar : ogr no int NOT NULL PRIMARY KEY
•
•
CONSTAINT pkkey PRIMARY KEY (ogr_no, ders_kodu)
CHECK : vize int CHECK(vize>0)
•
CONSTAINT chkvize CHECK (vize>=0 AND vize<=100)
CONSTAINT chchod CHECK (urun_kod IN (‘A089’, ‘A090’, ‘A091’, ‘A100’) OR
urun_kod LIKE ‘A9[0-9][0-9]’))
•
UNIQE : pers_id int NOT NULL UNIQE (MSSQL, ORACLE)
UNIQE(pers_id)
CONSTAINT un_deger UNIQE (pers_id, Soyadi)
•
FOREIGN KEY :
CREATE TABLE notlar
(ogr_no in FOREIGN KEY PREFERENCES ogrenci(ogr_no),
ders_kodu varchar(25) FOREIGN KEY PREFERENCES ders (ders_kodu) (Oracle)
• CREATE TABLE notlar ( ogr_no int, ders_kodu varchar (25), vize int, final int,
CONSTAINT fk_ogr_no FOREIGN KEY (ogr_no) REFERENCES ogrenci (ogr_no)
CONSTAINT fk_dkod FOREIGN KEY (ders_kodu) REFERENCES
ders(ders_kodu)
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
İ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ı
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
35
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.
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
36
Şemalar
Veritabanında tablonun tasarımına şema adı verilir.
Şema veri içermez; veritabanının taslağı olarak kullanılabilir.
Şema; tabloları, sütunları ve her tablonun birincil anahtarları ile birlikte
varsa yabancı anahtarları da gösterir.
Birincil Anahtarlar
Yabancıl Anahtarlar
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Örnek Bir Veritabanı Şeması
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
İlişki şeması- Liste
İlişkinin adı ve ilişki niteliklerinin adlarından oluşan tanım deyimine ilişki
şeması denir.
ÖGRENC ilişki şeması.
 ÖGRENC(Ögr-No, Ögr-Adı,Ögr-Adres)
 ÇALISMA(Ögr-No.,Ders-Kodu)
 DERS(Ders-Kodu,Ders-Adı)
İlişkisel tablolar
Örnek
 Veritabanı şeması (database Schema)
Sınav(kod, tarih,ad, süre, yer, açıklama)
Yada;
 Takım (no, ad, şehir, kyılı)
 Oyuncu (no, ad, adres, adress, dtarihi, takımno)
 Pozisyon (no, ad)
 Oynar(oyuncu,pozisyonno)
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
İlişki Şeması-Liste


Veri tabanında tutulan tabloların ve bu tablolardaki veriler ile ilgili
diğer bilgilerin tanımladığı yapıları gösterir.
Veri tabanı şeması, veri tabanı tasarımı aşamasında hazırlanır ve
genelde çok sıklıkla değişmesi beklenmeyen bir yapıdır.
Sınavlar (kod, tarih, ad, süre, yer, açıklama)
Hazırlayan (sınavKodu, öğretmenKodu (sınavKodu sınavlar tablosunu,
öğretmenKodu öğretmenler tablosunu referans verir), tarih)
Sınavlar
Skodu
ad
tarih
yer
açıklama
süre
Hazırlayanlar
öğretmenKodu
skodu
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
tarih
İlişki Şemaları
Varlık-İlişki Diyagramı
Kitap Adı
Sayfa Sayısı
Kitap_No
KİTAP
N
N
Bastığı
Yazar_Kitap
M
YAZAR
Yayınevi No
1
YAYIN EVİ
Yazar Adı
Yayınevi Adı
Yazar Soyadı
Yazar No
İlişki Şeması
YAZAR (Yazar No, Yazar Adı, Yazar Soyadı)
YAYINEVİ (Yayınevi No, Yayınevi Adı)
KİTAP (Kitap No, Kitap Adı, Sayfa Sayısı, Yayınevi No)
YAZAR_KITAP(Yazar No, Kitap No)
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
İlişkiler
Tc_Kimlik
Ad
Soyad
E_Posta
Telefon
12342378891
Ejder
Ayçin
[email protected]
02324208994
23421124534
Hakan
Aşan
[email protected]
02324208923
23474367832
Talip
Arsu
[email protected]
05555308998
98324534244
Melih
Durmuş
[email protected]
05332274392
Sinav_No
Tc_Kimlik
Sinav_Notu
1
12342378891
80
2
23421124534
90
3
23474367832
85
4
12342378891
75
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
İlişkisel Veri Tabanı: İlişkiler
Tablolar arası bağlantı ilişkiler aracılığıyla sağlanır. İlişkiler iki tabloda bulunan
ortak alanlarla yapılır. İki tabloyu ilişkilendirmek ilişkisel veri tabanının en temel
çalışma şeklidir. Böylece farklı tablolardaki bilgilerin birbirleriyle etkili biçimde
kullanılması sağlanmış olur. Veri tutarlılığının sağlanması için ilişkiler çok
önemlidir. İlişkisel veri tabanının en önemli özelliği ilişkilerdir. Tablolar
arasındaki verileri bağlamak için çeşitli ilişki türleri vardır. Örneğin Şekil 3 deki
gibi ÖĞRENCİ tablosundaki birden fazla satır DERS tablosundaki birden fazla
satırla bağlantılıdır.
ÖĞRENCİ
1
Öğrenci No
Adı
Soyadı
E - Posta
101
102
103
Ali
Fatma
Ruhu
Can
Kara
Say
[email protected]
[email protected]
N
[email protected]
1
DERS
Ders Kodu
Ders Adı
201
Programlama 4
105
207
Veri Tabanı
Fizik
ALINAN_DERS
Öğrenci No
N
Notu
Harf Notu
101
Ders Kodu
201
90
AA
101
105
80
BB
102
105
75
CB
102
©Veritabanı
207 Yönetimi
Prof. Dr. İbrahim Çil
85
BA
Kredisi
4
3
Örnek Veritabanı (ŞİRKET)
Varlık-İlişki Şeması
Satış
Fiyat
KDV Oranı
N
Ürün ID
1
ÜRÜN
N
KATEGORİ
AİT OLDUĞU
Kategori Adı
N
Kategori ID
Ürün Adı
TEDARİK
EDEN
Adet
ÜRÜN_SİPARİŞ
N
Adres
Tarih
1
SİPARİŞ
Firma ID
Firma Adı
FİRMA
Adres
N
1
Telefon
MÜŞTERİ_SİPARİŞ
MÜŞTERİ
Telefon
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Ad
Soyad
Müşteri ID
İlişki Şeması
ÜRÜN (Ürün No, Ürün Adı, Satış Fiyatı, Kategori No, Firma No)
KATEGORİ (Kategori No, Kategori Adı, KDV Oranı)
FİRMA (Firma No, Firma Adı, Adresi, Telefon)
MÜŞTERİ (Müşteri No, Adı, Soyadı, Adresi, Telefonu)
SİPARİŞ (Sipariş No, Tarih, Müşteri No)
ÜRÜN_SİPARİŞ (Sipariş No, Ürün No, Adet)
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
İlişkisel Model
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Veritabanı Şeması
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Download