ÜNİTE 1. VERİTABANI TEMELLERİ Ele Alınan Konular Veritabanı

advertisement
ÜNİTE 1. VERİTABANI TEMELLERİ
Ele Alınan Konular
 Veritabanı
 Veritabanı Yönetim Sistemleri
 Veritabanın Temel Bileşenleri
Ünite Hakkında
Bu ünite veritabanı ile ilgili temel kavramları içermektedir. Veritabanı, veritabanlarının temel
bileşenleri, veritabanı yönetim sistemleri ve ilişkisel veritabanı yönetim sistemleri hakkında
bilgi verilmektedir. İki tablo arasında ilişkinin nasıl olması gerektiği yine bu ünitede
bulunmaktadır.
Öğrenme Hedefleri
Bu üniteyi tamamladığınızda;
1.
2.
3.
4.
5.
6.
Veritabanının ne anlama geldiğini öğreneceksiniz.
Bir veritabanının temel bileşenlerinin neler olduğunu öğreneceksiniz.
Veritabanı yönetim sisteminin ne anlama geldiğini öğreneceksiniz.
Veritabanı yönetim sistemlerinin özelliklerini öğreneceksiniz.
İlişkisel veritabanı yönetim sisteminin ne anlama geldiğini öğreneceksiniz.
İki tablo arasında ilişkinin nasıl kurulması gerektiğini öğreneceksiniz.
Üniteyi Çalışırken
Bu üniteyi çalışırken;
1. Bu ünitede veritabanı ile ilgili temel kavramlardan bahsedildiği için bu ünitedeki
kavramları iyi öğrenin. Gerekirse tekrar edin.
2. İlişkisel tablolar oluşturmak veritabanı alanında önemli bir konudur. Bu yüzden siz de bu
konuyla ilgili örnekler araştırın, kendiniz örnek oluşturmaya çalışın.
Veritabanı (Database)
Veritabanı (Database), en sade tanımıyla birbiriyle ilişkili bilgi topluluğudur.
Bilgisayar terminolojisinde veritabanı, bilgisayarda sistematik şekilde saklanmış,
programlarca işlenebilecek bilgi topluluğudur. Bu bilgiler; bilgisayar ortamında yönetilebilir,
güncellenebilir, taşınabilir aynı zamanda bu bilgiler arasında ilişkiler tanımlanabilir.
Literatürde veritabanı, veri bankası olarak da geçmektedir. Bu terim, veritabanı ile ilgili ilk
çalışmaların yapıldığı zamanlarda kullanılmıştır. Günümüzde seyrek de olsa bazı dillerde
(örneğin Portekizce) kullanılmaktadır.
Yüksek miktarda veriyle uğraşmak bilgisayar teknolojisinin gelişmeye başladığı ilk yıllardan
günümüze kadar süren, sürekli artan ve değişik boyutlar kazanan bir ihtiyaçtır. Bilgisayar
ortamında bu verileri düzenli bir biçimde saklamak, bu verilere istenildiği an hızlı bir şekilde
ulaşmak, bu veriler arasından istenilen ölçütlere uygun verileri listeleyebilmek, üzerinde
hesaplamalar yapabilmek, bir veri tabanında yapılması gereken işlemlere örnek olarak
gösterilebilir. Verileri yönetmek ilk zamanlar yalnızca tek bir kişi için yapılırken, günümüzde
artık bu tarz uygulamalar çoklu kullanılıcılar için yapılmaktadır. Veritabanı yönetim
sistemleri denildiğinde işte bu işlemleri yapan yazılımlar akla gelmektedir.
Günümüzde geliştirilen pek çok yazılımda veritabanının önemli bir yeri vardır. Gerek işletim
sistemi tabanlı paket programlarda olsun gerek web-tabanlı uygulamalarda olsun veritabanına
sıkça başvurulur. Örneğin, bir muhasebe programında verileri düzenli bir şekilde saklamak
önemlidir. Bir emlak firması, web sitesinde kullanıcılarının istediği ölçütlere uygun olan
konutları bulabilmesi için verilerini bir veritabanında saklar. Bankacılık işlemlerinde de veri
tabanının önemini görmek mümkündür. Bir banka müşterilerinin kişisel bilgilerini, hesap
bilgilerini, bu hesaplarla ilgili hareket bilgilerini veritabanı yardımıyla saklar ve yönetir.
Veritabanı için aşağıdaki örnekleri de verebiliriz.








Telefon rehberleri
Adres defterleri
Öğrenci bilgileri ve notları
Finans yazılımları
Satış ve pazarlama yazılımları
Soru bankası yazılımları
Hasta takip sistemleri
Eczaneler için ilaç bilgilerinin tutulması
Veritabanına ihtiyaç duyulabilecek bu şekilde daha pek çok yazılım sayılabilir.
Bir Veritabanında Bulunması Gereken Özellikler
Saklamak istediğiniz veriler, bir adres defterindeki gibi basit bir yapıda olabilir ya da
bankacılık işlemlerindeki gibi karmaşık bir yapıya sahip olabilir. Adres defterlerinde yüzlerle
ifade edilebilecek kişilerin (Bu bir veri tabanı için hacmi küçük olan bir bilgidir.) tutulması
yeterli olabilecekken bankacılık işlemlerinde milyonlarca kişinin bilgileri tutulmak istenebilir.
Bazı veriler için güvenlik çok önemli değilken, özellikle bankacılık işlemlerinde saklanan
bilginin güvenliği oldukça önemli olabilir. İster basit ister karmaşık yapıda olsun, ister az veri
ister çok veri olsun, ister güvenlik ihtiyacı alt seviyede ister üst seviyede olsun günümüz
veritabanlarının bulundurması gereken bazı özellikler vardır.
Bunları şu şekilde sıralayabiliriz:
 Veritabanı veri saklama gereksinimini tam olarak karşılayabilmelidir.
 Veritabanındaki bilgiler güvenli bir şekilde tutulmalıdır.
 Veriler kolayca çağırılabilmelidir.
 Verilere ulaşabilmek için olabilecek en az çaba harcanmalı ve en kısa zamanda bu
verilere ulaşılabilmelidir.
 Veritabanı içindeki verilerin güncellenebilmesi ve ekleme yapılabilmesi için veriler
yönetilebilir olmalıdır.
Veritabanı Yönetim Sistemleri
 Veritabanı yönetim sistemi (İngilizce: Database Management System, kısaca DBMS),
veritabanlarını tanımlamak, oluşturmak, kullanmak, değiştirmek ve veri tabanı sistemleri ile
ilgili her türlü işletimsel gereksinimleri karşılamak için tasarlanmış sistem ve yazılımlardır.
Günümüzde kullanılan veritabanı yönetim sistemlerinden bazıları şunlardır:

Oracle Database

Microsoft Access

Microsoft SQL Server

Microsoft Visual FoxPro

MySQL

PostgreSQL

Progress
Veritabanı Yönetim Sistemlerinin Özellikleri
Günümüz veri tabanı yönetim sistemlerinin özelliklerini şu şekilde sıralayabiliriz:
 Sorgulama: Sorgulama, bilgilerin çeşitli faktör ve şartların kombinasyonuna göre
istenmesi işlemidir. Örneğin; “Sınıftan kaç kişi matematik dersinden 90 ya da üzeri not aldı”
sorusuna yanıt arayan bir kişi veritabanı sorgulama dili yardımıyla buna cevap bulabilir ve bir
raporlaştırma aracıyla bunun çıktısını elde edebilir.
 Yedekleme ve Çoğaltma: Veritabanın saklı olduğu disk bozulabilir ya da başka
sorunlardan dolayı veritabanı zarar görebilir. Veritabanı yönetim sistemleri bu veritabanının
yedeklerini periyodik olarak alacak ve bunların kopyalarını diğer veritabanı sunucu
bilgisayarına aktaracak yardımcı araçlar sunarlar.
 Kural Uygulama: Bazen verilere kısıtlama getirilmek istenebilir. Örneğin; bir öğrenci
işleri veri tabanında, bir dersten alınabilecek notlar 0 ile 100 arasında olmalıdır. Eğer bunun
dışında bir not girilmek istenirse veritabanı yönetim sisteminden bunu engellemesini ve hata
mesajı göstermesini isteyebiliriz. Veritabanı yönetim sistemleri bu şekilde kuraların
eklenmesini ve kaldırılmasını desteklemektedir.
 Hesaplama: Belirli bir şarta uygun verilerin sayısını bulma, verilerin toplamını,
ortalamasını alma, verileri belirli bir ölçüte göre sıralama, gruplama gibi işlemler günümüz
veritabanı yönetim sistemleri tarafından desteklenmektedir.
 Güvenlik: Kimlerin verilere ulaşabileceği, kimlerin veriler üzerinde değişiklik
yapabileceği veritabanı yönetim sistemleri tarafından belirlenebilecek özelikler arasındadır.
 Günlük Tutma (Logging): “Verilere kimler ulaştı?”, “Hangi bilgiler değiştirildi?”, “Ne
zaman değiştirildi?” gibi kayıtlara veri tabanın yönetim sisteminin günlük tutma özelliği
sayesinde ulaşılabilir.
Veritabanı Modelleri
Veri tabanı yönetim sistemlerinde verinin saklanması ve yönetilmesi için birçok veritabanı
modeli kullanılmıştır. Bunlardan en sık kullanılanları;

İlişkisel

Hiyerarşik

Network

Nesnel veritabanı modelleridir.
Hiyerarşik, network ve nesnel modeller ya çok eski oldukları için ya da geniş kullanım
alanları bulamadıkları için terk edilmiştir. İçlerinden bir tanesi ön plana çıkmaktadır. O da
İlişkisel veri tabanı modelidir.
İlişkisel Veritabanı Yönetim Sistemleri
İlişkisel veritabanı yönetim sistemi verilerin tablolarda satır ve sütunlar halinde tutulduğu ve
yüksek veri tutarlılığına sahip veri depolama sistemidir. Günümüz ilişkisel veritabanı yönetim
sistemleri bu modeli kullanmaktadır.
Bu modelin en büyük özelliği veritabanlarının onları kullanacak olan uygulamalardan
bağımsız olmasıdır. Örneğin, veritabanı içeren bir programı DELPHI programlama dilinde
geliştiriyorsunuz. Bu programın veritabanı tasarımını, Microsoft SQL veritabanı yönetim
sisteminde hazırlayıp bunu hazırladığınız programa entegre edebilir ve kullanabilirsiniz.
İlişkisel modelde veriler tablolarda saklanır. Tablolar saklanacak verilerin özelliklerine göre
bağımsız oluşturulabileceği gibi ilişkisel tablolar da oluşturulabilir. İlişkisel tablolarda, bir
tablodaki veriler başka tablolardaki verilerle ilişkili olabilir. Tablodaki veriler üzerinde
yapılan işlemler o tabloyla ilişkili diğer tablolara yansıtılabilir. Örneğin bir tablodaki bir veri
silindiğinde onunla ilişkili diğer tablolardaki veriler de silinebilir. Listeleme bir ilişkisel
tablolardaki bilgiler beraber listelenebilir.
Veritabanlarının Temel Bileşenleri
Tablo (Table)
Veritabanın en önemli bileşenidir. Veri tabanının diğer bileşenlerinin bir anlam ifade
edebilmesi için öncelikle bir tablonun oluşturulması gerekir. Bunun nedeni verilerin
saklandığı ortam olmasıdır. Daha önce de belirtildiği gibi veritabanlarında veriler tablo
mantığında saklanır. Yani satırlar ve sütunlar verileri saklamak için kullanılır.
 Sütun(Column), ortak özellikli verileri tanımlar. Tablodaki her sütun, belirli türdeki
bilgileri (örneğin, tarihler, adlar, tutarlar, numaralar gibi.) depolamak için tasarlanmıştır.
Sütunların bir başka adı da alan (Field)’dır. Alan isimlerinin saklanmak istenen veriyle ilgili
olmasında fayda vardır. Bir tablonun alan isimlerini belirlerken Türkçeye özgü karakterlerin,
boşlukların kullanılmaması gibi bazı sınırlamalar vardır.
 Satır(Row), Bir tabloda yer alan her bir kayıt bir satıra karşılık gelir. Yani tablo
sütunlarına girilmiş her bağımsız veri, 1 satır aynı zamanda bir kayıttır.
5. Sütun
(Alan)
4. Sütun
(Alan)
3. Sütun
(Alan)
2. Sütun
(Alan)
1. Sütun
(Alan)
Şekil 1’deki bir firmanın çalışan bilgilerini tutan örnek tabloda, sütun ve satırların ne işi
yaradığını daha rahat takip edebilirsiniz.
1. Satır (Kayıt)
2. Satır (Kayıt)
3. Satır (Kayıt)
Şekil 1. Örnek bir tablo
! Oluşturacağınız tablolarda, alan isimlerinin tutmak istediğiniz verilerle ilgili olmasına dikkat
edin. Aksi takdirde veriler üzerinde çalışırken karışıklıklar yaşayabilirsiniz.
İndeks(Index)
Veritabanındaki indeksler, bir kitabın indeksine benzer. Tablolarda belirtilen verilere tıpkı
kitapların indekslerinde olduğu gibi hızlı bir şekilde ulaşmaya yarar. İndeksler tabloları
belirtilen sütun(lar)a göre sıralar. Böylelikle bilgilere ulaşmak daha kolay olur. İndekslerin
yararı özellikle çok sayıda kayda sahip tablolarda ortaya çıkar. Bu tür tablolarda indeks
kullanıldığı zaman verilere daha kısa sürede ulaşılabilmektedir. Yani indeksler, veritabanının
performansını artıran bir durum yaratır.
Birincil Anahtar (Primary Key)
Birincil anahtar, bir tablonun seçilen sütun ya da sütunlardaki verinin farklı satırlarda
tekrarlanmamasını (bir kez kullanılmasını) sağlayan bir özelliktir. Örneğin, T.C. Kimlik
numaralarının girileceği bir sütunda bu özellik kullanılabilir.
Birincil anahtarın bir başka özelliği de tablolar arası ilişki kurulmasına olanak sağlamasıdır.
Birden fazla tabloda, birbirleriyle ilişkili veriler olabilir. Örneğin, bir öğrencinin kişisel
bilgileri bir tabloda tutulurken not bilgileri başka bir tabloda tutulabilir. Öğrencinin her iki
tablodaki verilerine birlikte ulaşabilmek ve verilerin tutarlılığını sağlayabilmek için iki tablo
arasında ilişki kurulması gerekir. Bu ilişkinin oluşturulması için gereken şartlardan bir tanesi,
öğrencilere ait notların karışmaması için her öğrenciyi tekil olarak tanımlayan bir bilginin
olmasıdır. Eğer bu bilgi birden fazla öğrenciye ait olursa notlar tablosundaki notların kime ait
olduğu belirlenemez. Birincil anahtar sayesinde öğrencilere verilecek olan bu bilginin tekrar
edilmesi önlenmiş olur. Bir öğrencinin numarası başka bir öğrenciye ait olamayacağı için
numara bilgisi birincil anahtar olarak seçilebilir.
Yabancı Anahtar (Foreign Key)
İlişkiyi oluşturan asıl bileşen yabancı anahtar’dır. Birbirleriyle ilişkili olan iki tablo
arasındaki hangi sütunların ilişkili olduğu, yabancı anahtar ile belirlenebilir.
Yabancı anahtar, ilişkisel tablo mantığında tablodaki bir sütundaki bilginin başka bir tabloda,
hangi sütundaki veriyi işaret ettiğini gösterir. Diğer tablodaki sütun birincil anahtar olmalıdır.
Çünkü işaret edilen sütunda veri tekrarı olmamalıdır.
Bu durumu örnekle açıklayalım.
* Örnek: Basit bir adres defteri için bir tablo yeterlidir. Bu tabloda kişinin adını soyadını,
adresini ve telefonunu tutmak istersek tutulacak her bilgiyi bir sütun olarak tanımlayabiliriz.
Oluşturulan her bir satır da adres bilgilerini tutmak istediğimiz kişileri ve onların adres
bilgilerini gösterir.
Şekil 2’de bu durumu takip edebilirsiniz.
Adi
Soyadi
Adres
Telefon
Ahmet
Yılmaz
5. cad. Emek
2154444
Mehmet
Doğan
2. cad. Keçiören
2121111
Ayşe
Dursun
1. Sok. Yenimahalle
6572222
Melek
Çelik
11. sok. Altındağ
3655555
Şekil2. Adres defteri tablosu
Eğer tutulacak veriler ilişkili değilse bağımsız oluşturulacak tablolar yardımıyla veriler
düzenli bir şekilde saklanabilir.
Bazı durumlarda istenilen verileri tek bir tabloda tutmak zor olabilir. Şu örneği ele alalım.
Öğrencilerin kişisel ve çeşitli derslerden aldıkları notlar veritabanında saklanmak istensin.


Kişisel bilgileri adı, soyadı, numarası, sınıfı olsun.
Not bilgileri, dersin adı, 1.sınav 2.sınav olsun.
Öncelikle bu bilgileri tek tabloda düzenlemeye çalışalım. Öğrencinin kişisel bilgileri için adı,
soyadı, numara ve sınıfı alanları oluşturulabilir.
? Not bilgileri için hangi sütunlar oluşturulmalıdır?
Muhtelif ders sayısını belirleyip buna göre alanlar oluşturabiliriz. Örneğin 2 ders mevcut ise
her bir dersi için 1.dersin adı,1.ders not, 1.ders not2, 2.dersin adı, 2.ders not1, 2.ders not2
gibi alanlar oluşturulabilir. Ortaya şekil 3’deki gibi bir tablo çıkar.
Adi
Soyadi
Numarasi Sinifi
Ders1_Adi
Ders1_Not1 Ders2_Not2 Ders2_Adi Ders2_Not1 Ders2_Not2
Ahmet
Yılmaz
09100000
1A
Matematik
40
50 Türkçe
Ali
Türker
09100254
1B
Matematik
80
75
Ayşe
Yiğit
09100151
1A
Matematik
45
95 Türkçe
70
80
50
85
Şekil3. Öğrenci not tablosu
? Bu şekilde bir tablo yapılandırmasının sınırlılıkları ve dezavantajları nelerdir?
Böyle bir yapılanma bazı sorunları da beraberinde getirecektir. Bunlar;
 Dersler için oluşturulan sütunlar gereksinimi karşılamayabilir. Bu dersler için daha fazla
sütun açılarak giderilebilir. Fakat veri tabanı yönetim sistemlerinde oluşturulabilecek
sütunların sayısıyla ilgili bir sınırlama vardır. Kullanılan veritabanı yönetim sistemine göre
farklılık gösterilebilir.
 Sütun sayısı sorunu aşılsa bile her sütun her satır için kullanılmayabilir. Örneğin bir
öğrencinin 5, başka bir öğrencinin 10 dersi olabilir. Böyle bir durumda az dersi olan
öğrenciler için kullanılmayan sütunlar oluşacak. Bu da beraberinde veritabanın gereksiz yere
büyümesini getirecektir. Yukarıdaki tabloda Ali Türker’in 2. dersinin olmaması bu durum için
bir örnektir.
 Gereğinden fazla alan, tablonun yönetimini zorlaştırabilir.
Böyle bir durumda ideal tasarım 2 tablo halinde ve ilişkisel olmalıdır. Öğrenciler için ayrı,
notlar için ayrı bir tablo oluşturulmalıdır. Tabloların sütun yapıları şu şekilde olabilir.
Öğrenci tablosu
Notlar tablosu







Adı
Soyadı
Numarası
Sınıfı
Dersin adı
Not1
Not2
Tabloların sütun yapılarından anlaşılacağı üzere öğrenci tablosu öğrenci bilgilerini saklamak
için, notlar tablosu ise ders ve o derse ait not bilgilerini saklamak için tasarlanmıştır.
? Derslere ait not bilgilerinin hangi öğrencilere ait olduğu nasıl anlaşılacak?
Bu noktadan itibaren tablolar arası ilişkilendirme mantığını yürütmeliyiz. Öğrenci tablosu bu
durumda ana tablodur. Notlar tablosu ise detay tablosudur. Notlar tablosuna derslere ait not
bilgilerinin hangi öğrencilere ait olduğunu gösteren bir alan daha eklemeliyiz. Buradaki alan
öğrenciye ait öyle bir bilgiyi içermelidir ki bir öğrenciye ait olan bu bilgi, başka bir öğrencide
olmamalıdır. Bu bilgi biden fazla öğrencide olursa o öğrencilerin notları karışacaktır.
Dolayısıyla tabloları ilişkilendirmenin bir anlamı olmayacaktır.
? Notlar tablosuna eklenecek bu yeni sütun, öğrenciye ait hangi bilgiyi içermelidir?
Öğrenci bilgilerini tek tek ele alalım.
 Adı bilgisi olamaz. Çünkü aynı isme sahip birden fazla öğrenci olabilir.
 Soyadı bilgisi için adı bilgisine ait durum geçerlidir.
 Adı ve soyadı bilgisini beraber kullanmak da bu durum için bir çözüm üretmez. Çünkü
aynı ad ve soyada ait birden fazla öğrenci olabilir.
 Numarası bilgisini kullanmak çözüm olabilir. Çünkü yapı itibariyle aynı numaraya sahip
birden fazla öğrenci olamaz. Fakat bu durumda şöyle bir problem ortaya çıkabilir. Numara
bilgisi kullanıcı tarafından bilgisayara elle girildiği için hatalı girilme olasılığı vardır. Bu da
bilgilerin karışmasına neden olabilir.
Veritabanı yönetim sistemlerinde sütunlar için benzersiz sayılar üretmeye yarayan
mekanizmalar vardır. Örneğin; “Auto Increment (otomatik artırma)” özelliği sayesinde bir
sütundaki sayıların belirli bir sayıdan başlayıp tek tek artması sağlanabilmektedir. Bu
sütundaki sayıları kullanıcı değiştiremez. Sistem, yeni kayıt eklendikçe artırma işlemini yapar.
Böylece oluşturulan her kayıt için verilecek olan sayı benzersiz bir sayı olacaktır.
Bu özelliği biz öğrencilere benzersiz bir numara vermek için kullanabiliriz. Bu şekilde her
öğrenciyi tekil olarak tanımlayan bir alan elde etmiş oluruz. Örneğimizdeki Öğrenci
tablosunda oluşturulacak bu yeni alana Ogrenci_ID ismini verelim. Ders ve not bilgilerinin
hangi öğrencilere ait olduğunu belirtmek için notlar tablosunda da öğrencilere ait bu bilgileri
tutabileceğimiz bir alan eklemememiz gerekir. Bu sütuna da Ogrenci_ID denilmesinde bir
sakınca yoktur. Ortaya çıkan yeni durum ve tablolar arası ilişkiyi Şekil4’den takip
edebilirsiniz.
Şekil4. Öğrenci ve notlar tablosu arasındaki ilişki.
Buradaki
simgesi aradaki ilişkiyi göstermektedir. Ogrenci tablosundaki
Ogrenci_ID alanı her öğrenci için otomatik atanan benzersiz bir sayı; notlar tablosundaki
Ogrenci_ID alanı ise ders ve not bilgilerinin hangi öğrencilere ait olduğunu gösteren alandır.
Ogrenci tablosunda Ogrenci_ID alanı, benzersiz bilgiler içermesi gerektiği için birincil
anahtar olmalıdır.
simgesi aynı zamanda yabancı anahtarı da göstermektedir. Yabancı anahtar
notlar tablosunda tanımlanmıştır. Yani notlar tablosundaki Ogrenci_ID sütunundaki bilgilerin
ogrenci tablosundaki Ogrenci_ID sütunundaki bilgileri işaret ettiğini bize göstermektedir.
Veriler girildikten sonra durumu anlamak daha kolay olacaktır. Şekil 5’de tabloların veriler
girilmiş halini görebilirsiniz.
Ogrenci tablosu
Ogrenci_ID
Adi
1 Ahmet
2 Ali
3 Ayşe
Soyadi
Yılmaz
Türker
Yiğit
Numarasi
09100000
09100254
09100151
Sinifi
1A
1B
1A
Notlar tablosu
Ogrenci_ID
Dersin_adi
not1
not2
1 Matematik
40
50
1 Türkçe
70
80
1 İngilizce
40
80
2 İngilizce
50
95
2 Türkçe
90
40
2 Matematik
80
75
3 Türkçe
80
85
3 Matematik
45
95
3 İngilizce
100
45
Şekil 5. Öğrenci ve notlar tabloların veri girilmiş hali.
Notlar tablosundaki Ogrenci_ID sütununa bakıldığında, derslere ait not bilgilerinin Öğrenci
tablosundaki hangi öğrencilere ait olduğu anlaşılmaktadır. İlişkisel veritabanı modelinin
sorgulama özelliği, öğrenci ve o öğrencilere ait ilişkisel bilgileri bir arada görmemize olanak
sağlamaktadır.
! “ID” ifadesi İngilizce identification kelimesinden gelir. Türkçe karşılığı kimlik demektir.
Veritabanlarında verileri benzersiz tanımlayan sütunlara ID ismini vermek bir gelenek haline
gelmiştir. Bu yüzden bu ifade kullanıldı. Türkçe veritabanı yönetim sistemlerinde oluşturulan
tablolar için bazen bu sütun otomatik oluşturulur ve adı da kimlik olarak atanır.
! Veritabanı yönetim sistemlerinde tablo ve sütunları isimlendirmede, boşluk karakterinin,
Türkçeye özgü karakterlerin kullanılmaması gibi bazı kurallar vardır. Bu yüzden sütun ve
tablo isimleri, kullanılan ifadelerden farklılık gösterebilir. İlerleyen ünitelerde bu duruma
değinilecektir.
Kısıtlayıcı (Constraint)
Herhangi bir alan için girilebilecek verileri sınırlayan kurallara kısıtlayıcı denir. Eğer
kullanıcı, kısıtlayıcının istediği şekilde veri girmezse veri tabanı yönetim sistemi hata verir.
Görünüm (View)
Görünümler, Veritabanında önceden kaydedilmiş SQL sorgu ifadeleridir. Örneğin bir
tablodaki kayıtların tamamı ya da bir kısmı listelenmek istenebilir. Bu listelemeyi sağlayan
sorgu ifadesi her ihtiyaç duyulduğunda tekrar yazılmak yerine görünümden çağrılabilir.
Kayıtlı Yordamlar (Stored Procedures)
Veritabanı üzerinde işlem yapmayı sağlayabilen SQL ifadeleri, çalıştırılmadan önce veri
tabanı yönetim sistemi tarafından değerlendirilerek ve derlenerek sonuçları geriye döndürülür.
Değerlendirilen ve derlenen SQL ifadeleri veri tabanı yönetim sisteminin içinde saklanabilir.
Saklanabilen bu nesnelere kayıtlı yordamlar denir. Kayıtlı yordamlar görünümlerin daha
ileri bir aşamasıdır. Kayıtlı yordamlar kayıtlar üzerinde görünümlerin yaptığından daha fazla
işlem yapabilmektedir.
Tetikleyiciler (Triggers)
Tetikleyiciler kayıtlı yordamların özel bir türüdür. Yapılan bir işlem sonucunda otomatik
olarak arka planda çalışması için hazırlanmış bir yordamdır. Örneğin bir tablodan bir kayıt
silindiği zaman başka bir tablodaki kayıtların silinmesi gerekebilir. Bu durumda tetikleyiciler
işe yarayabilir.
! Bu bileşenler, temel nitelikte olmalarına karşın veritabanı yönetim sistemleri arasında
farklılıklar gösterebilir. Bizim ders için kullanacağımız MSSQL 2008 veritabanı yönetim
sisteminde bu bileşenleri bulmak mümkündür.
! SQL (Structured Query Language – Yapılandırılmış Sorgu Dili) verileri yönetmek için
tasarlanmış bir veritabanı dilidir. Sağladığı komutlar ya da ifadeler sayesinde veritabanındaki
tablolara kayıtlar eklenebilir, silinebilir, listelenebilir ve daha birçok işlem yapılabilir.
Günümüz veritabanı yönetim sistemlerinin çoğu SQL ifadelerini desteklemektedir.
Değerlendirme Soruları
1. Aşağıdakilerden hangisi birbiriyle ilişkili bilgi topluluğuna verilen isimdir?
a) Veri
b) Veritabanı
c) Tablo
d) Satır
e) Sütun
2. Aşağıda veritabanı bileşenlerinden hangisi önem derecesine göre diğerlerinden önce gelir?
a)
b)
c)
d)
e)
Tablo
Birincil Anahtar (Primary Key)
Yabancı Anahtar (Foreign Key)
İndeksler
Görünümler
3. Aşağıdaki veritabanı bileşenlerinden hangisi tablo alanlarına aynı verinin tekrar girilmesini
engeller?
a) Tablo
b) Birincil Anahtar (Primary Key)
c) Yabancı Anahtar (Foreign Key)
d) İndeksler
e) Görünümler
4. Aşağıdaki veritabanı bileşenlerinden hangisi iki tablo arasındaki ilişkiyi tanımlar?
a)
b)
c)
d)
e)
Tablo
Birincil Anahtar (Primary Key)
Yabancı Anahtar (Foreign Key)
İndeksler
Görünümler
Musteri tablosu;
 MusteriNo: Her müşteriyi atanan
benzersiz bir sayı.
 Adi: Müşterinin adı.
 Soyadi: Müşterinin soyadı.
 Adresi: Müşterinin Adresi.
 IsTelefonu: Müşterinin İş telefonu.
Siparis tablosu;
 SiparisNo: Her siparişe atanan
benzersiz bir sayı.
 Tarih: Sipariş tarihi.
 UrunAdi: Siparişi verilen ürünün adı.
 Tutar: Ürünün Fiyatı.
5. Yukarıdaki tablolar, bir firmanın müşteri ve bu müşterilere ait sipariş bilgilerini tutmak
için oluşturulacaktır. Alan yapıları ve açıklamaları verilen tablolar arasında ilişki
kurulacaktır. Buna göre Siparis tablosuna ilişki kurmak için eklenecek yeni alan, Musteri
tablosunun hangi alanındaki verileri içermelidir?
a)
b)
c)
d)
e)
MusteriNo
Adi
Soyadi
Adresi
IsTelefonu
Download