Dosya Organizasyonu ve Veritabanı

advertisement
Dosya Organizasyonu ve Veritabanı
Dosya Organizasyonu
Dosya (file) aynı yapıya sahip ve birbirleri ile ilişki içerisinde olan kayıtlar (records) topluluğudur. Bir
kayıt içindeki ayrı ayrı veri parçalarına alan (field) adı verilir. Örneğin bir öğrenci bilgileri dosyasını
ele alırsak, öğrencinin adı, soyadı, numarası, aldığı dersler ve bu derslerden aldığı notlar ayrı ayrı birer
alandır. Bir öğrenciye ait bütün bu alanlar bir araya gelerek öğrencinin kaydını oluşturmakta ve tüm
öğrencilere ait kayıtlar da bir araya gelerek öğrenci bilgileri dosyasını oluşturmaktadır.
Numarası Adı
Soyadı
Bölümü
122
Nedim
Doğan
Gazetecilik
456
Ece
Mumcu
Hukuk
342
Bilge
Aydın
Bilgisayar Mühendisliği
Dosya yapıları veri tabanı denilen ve güncel uygulamalarda kullanılan yapının temelini oluşturur.
Alanlar kayıtları, kayıtlar dosyaları oluşturur ve dosyaların bir araya gelmesi ile de veri tabanları
oluşmaktadır. Bir veri tabanı sistemi, aralarında kayıt (record) düzeyinde ilişki bulunan dosyaların
herhangi bir uygulama için bir araya getirilmesiyle oluşur.
Bir yazılım sisteminden beklenen özellikler





Hızlı cevap süresi
Gerçek zamanlı uygulamalarda performans
Geliştirilme için gereken toplam süre
Etkin hafıza kullanımı
Kullanılabilirlik
Dosya organizasyonundaki amaç tüm bu beklentiler ve sınırlamalar altında en iyi performansı elde
etmektir.
Dosyalar büyük miktarda veriler içerdiklerinden veri depolama ortamlarında saklanırlar ve kullanış
amaçlarına göre değişik şekillerde düzenlenirler. Düzenleniş biçimine göre ve veri depolama ortamına
bağlı olarak bir dosyaya genel olarak 2 farklı biçimde erişilir:
1. Sıralı erişim: Bir veriye (bellekte, diskte veya kasette bulunan) önceden belirlenen bir sıra
izlenerek birbiri ardı sıra ulaşılması anlamına gelir. Bu erişim bazen veriye ulaşmak için tek
yoldur (kasetlerde gibi). Örneğin; 500 kayıt bulunan bir dosyada 280. sıradaki kayıta ulaşmak
için o kayıta gelinceye kadar olan tüm kayıtların okunması gerekir.
2. Doğrudan erişim: Ulaşılmak istenen bir veriye, diğer kayıtlardan bağımsız olarak doğrudan
erişmek mümkündür. Bunun için her bir kaydı diğer kayıtlardan ayıran anahtar (key)
tanımlayıcısına ihtiyaç duyulur.
Dosya Sistemlerinin Sakıncaları
Klasik dosya sistemleri kullanılmaya başlandıktan sonra bazı dezavantajları olduğu ortaya çıkmıştır.
Bunlar şöyle sıralanabilir:
1




Veri tekrarı: Aynı veri çeşitli dosyalarda birden fazla yer alabilmektedir buda sistemin
hantallaşmasına neden olur. Mesela bir stok dosyasında stok numarası verisinin malzeme
dosyasında, fatura dosyasında ve ambar girişi dosyasında yer alması gibi.
Verinin birkaç dosyada güncellemesi: Veri birden fazla dosyada tekrar edilebildiği için,
verinin bir dosyada güncellenip diğerlerinde güncellenmemesi Veri Bütünlüğünün (Data
Integrity) bozulmasına neden olabilir. Buna bağlı olarak birbiri ile çelişen raporlar üretilebilir.
Belleğin tekrarlı bilgi nedeniyle israfı: Aynı verinin birden fazla dosya içinde bulunması
nedeniyle kullanılan veri hard diskte fazla yer işgal edecektir. Yani hard disk tekrarlı veriler
için kullanılmış olacaktır.
Sadece belirli bir dilin kullanılması: Verilerin dosya sisteminde saklandığı ortamlar için
değişik programlama dillerinden bir tanesi kullanılır. Kullanılan bu programlama dili ise SQL
dili gibi esnek değildir.
Veritabanı
Veritabanı, sistematik erişim imkânı olan, yönetilebilir, güncellenebilir, taşınabilir, birbirleri arasında
tanımlı ilişkiler bulunabilen bilgiler kümesidir.1 “Birbiriyle ilişkili veriler” bir kuruluşun çalışabilmesi,
işleyebilmesi için kullanılan çok çeşitli verilerdir. Ticari bir şirket için müşteri bilgileri, satış bilgileri,
ürün bilgileri, ödeme bilgileri, vb., okul için öğrenci bilgileri, açılan dersler, kimlerin kaydolduğu,
öğretmen bilgileri, boş ve dolu derslikler, sınav tarihleri, vb., hastane için hasta bilgileri, doktor
bilgileri, yatakların doluluk boşluğu, teşhis-tedavi bilgileri, mali bilgileri, vb …
Veri Tabanının Avantajları
 Gereksiz veri tekrarını önler:Geleneksel veri depolamak için kullanılan dosya sistemlerinde,
bazı veriler gereksiz şekilde birçok kez tekrarlanır. Böylece milyonlarca kayıtın tutulduğu
geleneksel dosya sistemlerinde dosya büyüklüğü gereksiz şekilde şişer. Örneğin Tablo 1’deki
öğrenci kişisel bilgileri ve aldığı ders bilgilerinin geleneksel dosya sistemine göre tek bir
tabloda tutulduğu kayıtlara bakılırsa, Koray Aydoğan isimli öğrencinin aldığı her ders bilgisi
için, numara, adres, doğum tarihi ve bölüm bilgilerinin gereksiz şekilde tekrarlandığı görülür.
Benzer şekilde BTP 108 kodlu dersin adı, o dersi alan bütün öğrenciler için 3 defa gereksiz
şekilde tekrarlandığı görülür. Bu bilgileri veritabanına dönüştürülürse, öğrenci ve ders bilgileri
ayrı tablolarda tutularak veri tekrarı önlenir.
1
Öğrenci
No
08020633
Adı
Soyadı
Koray
Aydoğan
Adres
08020633
Koray
Aydoğan
Kağıthane/
İstanbul
08020633
Koray
Aydoğan
Kağıthane/
İstanbul
08020669
Tayfun
İncereis
Ümraniye/
İstanbul
08020669
Tayfun
İncereis
Ümraniye/
İstanbul
Kağıthane/
İstanbul
Bölüm
Aldığı Ders Ders Adı Aldığı
Not
kodu
Bilgisayar
BTP 108
Veritabanı
3,5
Teknolojisi ve
Yönetim
Programalama
Sistemleri
Bilgisayar
BTP 104
Veri
3,0
Teknolojisi ve
Yapıları
Programlama
Bilgisayar
BTP 106
Grafik ve 2,5
Teknolojisi ve
Animasyon
Programlama
Bilgisayar
BTP 108
Veritabanı
3,0
Teknolojisi ve
Yönetim
Programlama
Sistemleri
Bilgisayar
BTP 104
Veri
3,5
Teknolojisi ve
Yapıları
http://altanmesut.trakya.edu.tr/vt/Ders1.ppt
2
Dönem
II
II
II
II
II
Programlama
Bilgisayar
BTP 103
Algoritma
2,5
I
Teknolojisi ve
ve
Programlama
Program.
08020669 Tayfun
Ümraniye/
Bilgisayar
BTP 105
Temel
4,00
I
İncereis
İstanbul
Teknolojisi ve
Elektronik
Programlama
08020660 Orhan
Gökçebostan Bilgisayar
BTP 108
Veritabanı
3,0
II
Yavuz
Mh. / Sivas
Teknolojisi ve
Yönetim
Demir
Programlama
Sistemleri
08020660 Orhan
Gökçebostan Bilgisayar
BTP 102
Bilgisayar
3,5
II
Yavuz
Mh. / Sivas
Teknolojisi ve
Donanımı
Demir
Programlama
08020660 Orhan
Gökçebostan Bilgisayar
ING 103
Yabancı
2,5
II
Yavuz
Mh. / Sivas
Teknolojisi ve
Dil
Demir
Programlama
08020660 Orhan
Gökçebostan Bilgisayar
BTP 104
Veri
4,00
II
Yavuz
Mh. / Sivas
Teknolojisi ve
Yapıları
Demir
Programlama
 Veri güvenliği sağlar: Bazı uygulamaları ürettiği verilerin güvenliğini sağlamak önemli
konudur. Veritabanı kullanıcılarının veritabanının içerdiği tüm bilgilere kolayca erişmesi
istenilen bir durum değildir. Örneğin, pazarlama bölümü uygulamalarında çalışan bir
kullanıcının, diğer personel özlük bilgilerine ulaşması engellenmelidir. Bunun gibi, her
kullanıcının erişebileceği veriler ayrı ayrı tanımlanmalıdır. Veritabanı sistemlerinde
kullanıcılara veritabanı üzerinde çeşitli yetkiler atanır ve bu yetkiler veritabanı üzerindeki
veriler ile birlikte saklanır.
 Çoklu kullanıcı erişimini sağlar: Veritabanı üzerindeki verilere aynı anda çok sayıda
kullanıcı erişerek veriler üzerinde değişiklik yapabilir.
 Aynı andaki erişimlerde tutarsızlıkları önler: Veritabanı uygulamalarında, veritabanı
nesneleri başka başka uygulamalar tarafından paylaşılabilir. Veriler aynı anda farklı
uygulamalar ve dolayısıyla farklı kullanıcılar tarafından aynı anda paylaşılabilir. Örneğin; bir
elektronik eşya satan bir firmanın veritabanında ürün stokunda 50 adet uydu alıcısı olduğunu
varsayalım. İki farklı kullanıcıdan birinin aynı anda 25, diğerinin 30 adet uydu alıcı çıkışı
yapmaya çalıştığını düşünelim. İşlem aynı anda yapıldığı için, 50 birimlik stoktan 55 birimlik
çıkış yapılabileceği düşünülebilir. Ancak veritabanı yönetim sistemi buna izin vermez.
Çıkışlar aynı anda yapılmasına rağmen, önce birincisini stoklardan çıkarır ve ikincisi için bir
kontrol yaparak çıkışı önler.
08020669
Tayfun
İncereis
Ümraniye/
İstanbul
Veri Tabanı Yönetim Sistemi VTYS
Veri tabanı tanımlamak, yaratmak, yaşatmak ve veri tabanına denetimli erişim sağlamak için
kullanılan yazılım sistemidir.2 Veri tabanı yönetim sistemi, kullanıcı ile veri tabanı arasında bir
arabirim oluşturmaktadır ve veri tabanına her türlü erişimi sağlar. Veri tabanının tanımlanması: veri
tabanını oluşturan verilerin tip ve uzunluklarının belirlenmesidir. Veri tabanını oluşturulması ise veri
için yer belirlemesi ve saklama ortamına verilerin yüklenmesini ifade eder. Veri tabanı üzerinde işlem
yapmak; belirli bir veri üzerinde sorgulama yapmak, meydana gelen değişiklikleri yansıtmak için veri
tabanının güncellenmesi ve rapor üretilmesi gibi işleri temsil eder. Ayrıca veri tabanı yönetim sistemi,
verinin geri çağrılmasını sağlar. Veri tabanına yeni kayıt eklemek, eskileri çağırmak ve gerekli
2
http://pozitron.sdu.edu.tr/dersnotlari/veri%20taban%C4%B1%20sistemleri%201/bol1.pdf
3
düzeltmeleri yapmak yoluyla, verinin bakımını ve sürekliliğini gerçekleştirir, kayıtlara yeni veri
eklemek ve yeni kayıtlar oluşturmakla, veri tabanını genişletir.
VTYS’ler fiziksel hafızayı ve veri tiplerini kullanıcılar adına şekillendirip denetleyen ve
kullanıcılarına standart bir SQL ara yüzü sağlayarak onların dosya yapıları, veri yapısı, fiziksel hafıza
gibi sorunlarla ilgilenmek yerine veri giriş-çıkışı için uygun arayüzler geliştirmelerine olanak sağlayan
yazılımlardır. VTYS’de verileri tutmak üzere birçok türde nesne ve bu nesnelere erişimleri
düzenlemek üzere kullanıcılar, roller ve gruplar yer alır. Her bir kullanıcının belli hakları vardır. Bu
haklar, kısıtlanabilir. Örneğin bir tablo ya da programcığı bir kullanıcı kullanabilirken bir başkasının
hakları veritabanı yöneticisi tarafından kısıtlanmış olabilir.
Veri Tabanı Yönetim Sistemleri (VTYS) belirli bir veri modeline dayanır. Bir veri tabanı yapısının
temelini veri modeli kavramı olusturmaktadır. Veriyi mantıksal düzeyde düzenlemek için; kullanılan
kavramlar, yapilar ve islemler topluluguna “Veri Modeli” denir.
Şu ana dek birçok veri modeli gelistirilmistir. Bunlar;




Hiyerarşik Veri Tabanları: Bu veritabanı tipi, ana bilgisayar ortamlarında çalışan yazılımlar
tarafından kullanılmaktadır. Bu türde en çok kullanılan yazılım, IBM tarafından çıkarılan IMS'
dir. Uzun bir geçmişe sahip olmasına rağmen, PC ortamına uyarlanan hiyerarşik veri tabanları
yoktur. Hiyerarşik veri tabanları, bilgileri bir ağaç (tree) yapısında saklar. Kök (Root) olarak
bir kayıt ve bu köke bağlı dal (Branch) kayıtlar bu tip veritabanının yapısını oluşturur.
Ağ (network) veri modeli: Hiyerarşik veri tabanlarının yetersiz kalmasından dolayı bilim
adamlarının ortak çalışması sonucu ortaya konulmuş bir veri tabanı türüdür. Ağ veri tabanları
verileri ağaçların daha da gelişmiş hali olan graflar (ağacın kendiside özel bir graftır.) şeklinde
saklarlar. Bu yapı en karışık yapılardan biridir.
İlişkisel veri modeli: E.F. Codd Tarafından 1970 yılında önerilmiştir. Bu sistemde veriler
tablo şeklinde saklanır. Bu veri tabanı yönetim sisteminde; veri alış verişi için özel işlemler
kullanılır. Günümüzde hemen hemen tüm veri tabanı yönetim sistemleri ilişkisel veri modelini
kullanırlar. Bu model, matematikteki ilişki teorisine (“the relational theory”) dayanır. Tablolar
arasında ilişkiler belirtilir. İlişkisel veri modelinde (Relational Data Model) veriler basit
tablolar halinde tutulur. Tablolar, satır ve sütunlardan oluşur
Nesneye yönelik veri modeli: Günümüzde nesne kavramı her yerde kullanılmaktadır. Pek
çok kelime işlemci ve hesap tablosu programlarının alıştığımız görünümlerine artık bir de
nesneler eklenmiştir. Ancak bu gerçek anlamda bir nesneye yönelik yazılım demek değildir.
Yüzde yüz nesneye yönelik bir yazılımın tamamen nesneye temelli çalışması gerekir.
Yazılımın mutlaka nesneye yönelik bir dilde yazılmış olması beklenir. Fakat Windows gibi
işletim sistemi üzerinde çalışan yazılımlar bu özelliklere tümüyle sahip değillerdir. Sadece
nesne kavramını kullanarak bazı ek özellikler sunarlar. Nesneye yönelik veri tabanı da , C++
gibi nesneye dayalı bir dille (OOPL) yazılmış olan ve yine C++ gibi nesneye dayalı (OOPL)
bir dille kullanılan veri tabanı anlamına gelir. Günümüz teknolojisinde yüzde yüz nesneye
yönelik bir veri tabanı yaygın olarak kullanıma sunulmuş değildir. Ancak nesneye yönelik veri
tabanlarının bazı üstünlükleri olacağından söz edilmektedir.
Sayılan bu veri modellerinin içinde en yaygın kullanılanı, ilişkisel veri modelidir. Günümüzde
kullanılan VTYS'lerin hemen hemen tümü iliskisel veri modeline dayalidir. Son zamanlarda ortaya
çıkan nesneye yönelik veri modeli, ilişkisel veri modeli (E-R (Entitiy-Relationship=Varlık-İlişki)) ile
birlikte bazı VTYS'lerde kullanılmaktadır.
4
E-R modeli kavramları
Varlık ve nitelikleri
Gerçek hayatta diğerlerinden ayırt edilebilen nesnelere varlık denir3. Bir varlık, kişi, araba, ev veya
çalışan gibi fiziksel nesneler olabileceği gibi, şirket, iş veya ders gibi fiziksel olmayan nesneler de
olabilir. Her varlık kendisini tanımlayan kendisine has özelliklere sahiptir. Örneğin, bir çalışan varlığı,
çalışan adı, yaşı, adresi, maaşı ve görevi özellikleri ile tanımlanır. Her varlığın niteliğinin bir değeri
olur. Örneğin öğrenci varlığı olan o1 varlığının ad, öğrenci numarası, adres, telefon niteliklerinin
değeri sırasıyla “Halil İbrahim Onay”, “08020618” “Gülbahar Mh., Rize”, “5128688888” verilebilir.
Varlık kümesi
Veritabanında benzer varlıklar ve nitelik değerlerinden oluşan
Öğrenci No
Ad
kümeye varlık kümesi denir. Örneğin öğrenci varlıklarından o1
varlığı olan “Halil İbrahim Onay”, “080206018”, “Gülbahar Mh.,
Rize”, “5128688888”, ile birlikte o2 varlığı olan “Ferhat Kavcı”,
Öğrenci
“08020641”, “Avcılar, İstanbul”, “2125098888” ve o3 varlığı olan
“Işıl Mavier”, “08020609”, “Manisa, Merkez”, “02362348888”
tümü öğrenci varlık kümesini oluştururlar. ER şemasında varlık
Adres
Telefon
kümeleri dikdörtgen içinde belirtilir. Nitelikler ise oval bir daire
içinde belirtilerek ilgili varlık kümesine çizgi ile bağlanır.
Şekil1’de öğrenci varlık kümesi ve ad, numara, adres ve telefon niteliklerinin şeması görülmektedir.
Anahtar Nitelik
Varlık kümesindeki bir veya daha fazla niteliğin değeri, her bir
varlık için farklı ise bu nitelik anahtar niteliktir. Örneğin
öğrenci varlık kümesinde öğrenciNo anahtar niteliktir. Çünkü
bir üniversitede, öğrenci varlık kümesinde hiçbir varlığın
öğrenciNo niteliği aynı olamaz. Benzer şekilde personel varlık
kümesinde, sicilNo niteliği anahtar niteliktir. Hiçbir personelin
sicilNo’su aynı olamaz. Anahtar nitelik, ER şemasında niteliğin
altı çizilerek gösterilir. Şekil 2’de Personel varlık kümesinin
anahtar niteliği ve diğer nitelikleri görülmektedir.
Ad
Sicil No
Personel
Adres
Maaş
Tek değerli nitelikler - çok değerli nitelikler
Genellikle bir varlığın tek bir değeri vardır.
Ad
SicilNo
Örneğin personel varlığının sicil numarası niteleiği
tek değeri olur. Bir varlığın bir niteliğinin aldığı
değer tek ise bu niteliğe tek değerli nitelik denir.
Bakmakla
Ancak bazı niteliklerin birden çok değeri olabilir.
Personel
yükümlü kişi
Örneğin personel varlığının yabancı dil niteliği,
birden çok değer alabilir. Bu durumda personel
varlığının yabancı dil niteliği çok değerli nitelik
denir. Başka bir örnek olarak, bir personelin
Adres
Maaş
bakmakla yükümlü olduğu kişi niteliği bir kişi de
olabileceği gibi birden çok kişi de olabilir. Bu durumda personel varlığının bakmakla yükümlü olduğu
kişi niteliği çok değerli niteliktir. ER şemasında çok değerli nitelikler çift çizgili oval olarak gösterilir.
3
fatih.edu.tr/~zcetin/0708/bilg106/dokuman/Veritabani_ER.doc
5
Domain
Varlık kümesinde niteliklerin alabileceği değerler aralığını belirler. Örneğin öğrenci varlık kümesinde,
dogumTarih niteliği 01.01.1980 ile 01.01.1990 arasında olabileceğini belirlemek için domain
kullanılır. Domain aralığı ER şemasında gösterilmez.
İlişkiler
İki veya daha fazla varlık kümesi arasında kurulan anlamlı bağıntılara ilişki denir. İlişkiler ER
şemasında dörtgen ile gösterilir. Dörtgen içine ilişkinin adı yazılır. Personel varlık kümesi ile bölüm
varlık kümesi arasında çalışır ilişkisi (Şekil 1), müşteri varlık kümesi ile ürün varlık kümesi arasında
satın alır ilişkisi örnekleri verilebilir (Şekil 2).
Personel
çalışır
Şekil 1. Personel- Bölüm varlık kümesi çalışır
ilişkisi
İki varlık kümesi arasında birden fazla
ilişki de olabilir. Örneğin bölüm varlık
kümesi ile öğrenci varlık kümesi arasında
okur ilişkisi olabileceği gibi temsilcilik
yapar ilişkisi de olabilir (Şekil ).
Satın
alır
Müşteri
Bölüm
Ürün
Şekil 2. Müşteri-Ürün varlık kümesi satın alır ilişkisi
okur
Bölüm
Öğrenci
Temsilci
olur
İlişkiDerecesi
İlişkide bulunan varlık kümelerin sayısı ilişkinin derecesini oluşturur. Genelde ilişkiler iki varlık
kümesi arasında yapılır. Ancak bazı durumlarda, ilişkide ikiden fazla kümesi yer alabilir. Örneğin bir
personelin hangi projede hangi görevi yaptığı bilgisi gerekli ise; personel, proje ve görev varlık
kümeleri arasında çalışır ilişkisi yapılır ( Şekil 7.4). Benzer şekilde hangi öğrencinin hangi dersi hangi
öğretim görevlisi bilgisi gerekli ise; öğrenci, ders ve öğretim görevlisi arasında ders alır ilişki yapılır
(Şekil 5).
Görev
Personel
çalışır
Ders
Proje
Öğrenci
Şekil 4. Üç varlık kümesi arasındaki çalışır
ilişkisi
Ders
alır
Öğretim
Görevlisi
Şekil 5. Üç varlık kümesi arasındaki ders alır ilişkisi
TanımlayıcıNitelik
Varlık kümeleri arasındaki ilişkide oluşan niteliklere tanımlayıcı nitelik denir. Tanımlayıcı nitelikler
ilişkinin olması ile var olabilir. İlişki oluşmaz ise bu nitelikler de var olamaz. Müşteri varlık kümesi ile
6
ürün varlık kümesi arasında satın alır ilişkisinde, müşterinin ürünü aldığı tarih ile satın aldığı ürünün
miktarı nitelikleri tanımlayıcı niteliklerdir. Tanımlayıcı nitelikler ilişki ile bağlanır (Şekil 6).
Ad
Tarih
Müşteri
Satın
alır
UrunKod
Ad
MusteriNo
Adres
Ürün
Fiyat
Miktar
Maaş
Birim
Şekil 6. Müşteri – ürün satın alır ilişkisinde tarih ve
miktar tanımlayıcı niteliktir
p1 ●
1. Bire-bir (1-1) ilişki
A varlık kümesinin bir elamanı, B varlık kümesinin sıfır
ya da bir elemanı ile ilişki kurabiliyorsa bu ilişki türüne
bire-bir ilişki denir. Örneğin personel varlık kümesi ile
bölüm varlık kümesi arasında yönetir ilişkisi bire-bir
ilişkidir (Şekil ?- Şekil ?)
SicilNo
Ad
Personel
Adres
Bölüm
Personel
İlişkiTürleri
Varlık kümeleri aralarında 3 türde ilişki kurulabilir.
Stokmikta
Yönetir
 b1
p2 ●
 b2
p3 ●
 b3
p4 ●
 b4
p5 ●
 b5
BölümN
1
1
yönetir
Bölüm
Maaş
BölümA
Şekil. Personel - Bölüm yönetir 1-1 ilişkisi
2. Bire-birçok (1-n) ilişki
Öğrenci
A varlık kümesinin bir elemanı B varlık
kümesinin 0 ya da birden çok elemanı ile ilişki
kurabiliyorsa bu ilişki bire-bir ilişkidir. Örneğin
öğrenci bölüm okur ilişkisinde bir öğrenci birebirçok ilişkidir. Bir öğrenci en çok bir bölümde
okur iken, bir bölümde birden çok öğrenci
okuyabilir (Şekil?)
ö1 ●
ö2 ●
Okur

b1

b2

b3
ö3 ●

b4
ö4 ●

b5
ö5 ●
7
Bölüm
Ad
ÖğrenciN
BölümN
Cinsiyet
n
Öğrenci
Adres
1
Okur
Doğum Tarih
Bölüm
BölümA
Şekil 10. Öğrenci - Bölüm okur 1-n ilişkisi
3. Birçoğa-birçok (n-n ya da n-m) ilişki
A varlık kümesinin bir elemanı, B varlık kümesinin sıfır ya da birçok eleman ile ilişki kurabiliyor ve B
varlık kümesinin bir elemanı, A varlık kümesinin sıfır ya da birçok elemanı ile ilişki kurabiliyorsa bu
ilişki türü birçoğa birçok ilişki türüdür. Birçoğa birçok ilişki kısaca n-m ilişki olarak da
adlandırılabilir. Örneğin müşteri ile ürün varlık kümeleri arasında satın alır ilişkisi birçoğa birçok
ilişkidir. Çünkü bir müşteri birden çok ürün satın alabilirken, bir ürünü birden çok müşteri satın
alabilir (Şekil 11- Şekil 12).
Müşteri
Ürün
Satın alır

ü1
m2 ●

ü2
m3 ●

ü3
m4 ●

ü4
m5 ●

ü5
m1 ●
Şekil 11. Müşteri-ürün satın alır n-m ilişkisi
MusteriN
Adres
Ad
Müşteri
Tarih
n
Satın Alır
UrunNo
m
Ürün
Birim
Telefon
Miktar
Şekil 12. Müşteri-ürün satın alır n-m ilişkisi
8
UrunAd
Stok
Miktarı
4. Tekrarlamalı (Recursive) İlişki
Genellikle, ilişkiler farklı varlık kümeleri arasında oluşur. Ancak bazı durumlarda tek varlık kümesi
üzerinde ilişki kurulabilir. Örneğin personel varlık kümesinde yönetir ilişkisi tekrarlamalı ilişkidir. Bir
personel birden çok personeli yönetebilir. Bu ilişki Şekil 13 de görülmektedir. Şekil 14’te ikamet eden
varlık kümesinde aile reisi olur ilişkisi tekrarlamalı ilişkidir. Bir ikamet eden diğer ikamet edenlerin
aile reisidir. Benzer şekilde futbol takımlarının kendi aralarında maç yapar ilişkisi de tekrarlamalı
(recursive) ilişkidir. Şekil (15)
İkamet eden
Personel
1
n
Yönetir
1
Takımlar
n
Aile
reisi
m
n
Maç
yapar
Şekil 13. Personel varlık
Şekil 14. İkamet eden varlık
Şekil 15. Takımlar varlık
kümesinin yönetir 1-n
kümesinin aile reisi olur 1-n
kümesinin maç yapar n-m
tekrarlamalı ilişkisi
tekrarlamalı ilişkisi
tekrarlamalı ilişkisi
5. Güçlü-Zayıf Varlık Kümesi
Bir varlık kümesinin nitelikleri içerisinde anahtar nitelik (alan) oluşturulamıyorsa, bu varlık kümesine
zayıf varlık kümesi denir. Bir varlık kümesinin nitelikleri içerisinde en az bir tanesi anahtar nitelik
olabiliyorsa bu varlık kümesine güçlü varlık kümesi denir. Zayıf varlık kümeleri, güçlü varlık
kümeleri ile 1-n ilişki oluştururlar. Ancak her 1-n ilişki güçlü-zayıf varlık kümesi ilişkisi değildir.
Zayıf varlık kümeleri ER şemasında çift çizgili dikdörtgen ile gösterilir. Ayrıca zayıf varlık
kümelerinin güçlü varlık kümelerine var olma bağımlılığı olması gerekir. Üniversite fakülte
ilişkisinde, bir fakülte üniversite olmadan olamayacağı için ve aynı fakülte isminde başka
üniversitelerde fakülte olabileceği için fakülte varlık kümesi zayıf varlık kümesidir.
Veritabanı tasarım işlemi birkaç değişik işlem aşamalarından oluşur. İlk olarak, veritabanı yapılacak
kurum ya da kuruluşun ihtiyacı olan bilgilerin analizi yapılır. Bu süreçte, veritabanı tasarımcısı,
veritabanını kullanıcıları ile görüşerek kullanıcı ihtiyaçlarını tespit eder. Veriler toplanıp sistem analizi
yapıldıktan sonra, ilişkisel veri modeline göre veritabanı şeması oluşturulur. Bu şema, veritabanı
kullanıcılarının ihtiyaç duydukları verilerin kısa açıklamasıdır. Bu şema içerisinde varlık tipleri ve
ilişkilerin açıklaması bulunur. Daha sonra bu şemaya göre tablolar çıkarılır.
ER şemasının tablolara dönüştürülmesi
Bire‐birilişkilerindönüştürülmesi
Birebir ilişkiyi oluşturan varlık kümeleri tablolara dönüştürülür. Nitelikler tabloların alanlarına
dönüşür. Uygun olan varlık kümesinin anahtar alanı diğer varlık kümesine yabancı anahtar olarak
eklenir. Bire-bir ilişkide belirtilen tanımlayıcı nitelikler, yabancı anahtar eklenen tabloya alan olarak
eklenir. Örneğin bölüm ve personel varlık kümeleri arasındaki yönetir birebir ilişkisinde iki şekilde
dönüştürme yapılır. Birincisi, her iki varlık kümesi bölüm ve personel tablolarına dönüştürülür. Bölüm
tablosuna personel tablosunun anahtar alanı olan sicilno alanı yabancı anahtar olarak eklenir. İkincisi,
benzer şekilde her iki varlık kümesi bölüm ve öğrenci tablolarına dönüştürülür. Öğrenci tablosuna
bölüm tablosunun anahtar alanı olan bölümno alanı yabancı anahtar olarak eklenir.
9
ad
sicilNo
soyad
bölümNo
1
Personel
çalışır
1
bölümAd
Bölüm
adres
maaş
Şekil 1. Personel-Bölüm çalışır bire-bir ilişkisi ER şeması
ER şemasının tablolara dönüştürme;
1. Yol
2. Yol
Bölüm (bölümNo, bölümAd, sicilNo)
Bölüm (bölümNo, bölümAd )
Personel (sicilNo, ad, soyad, adres, maaş)
Personel (sicilNo, ad, soyad, adres, maaş, bölümNo)
Bire‐birçok(1‐n)ilişkilerintablolaradönüştürülmesi
İlişkiyi oluşturan varlık kümeleri tablolara dönüştürülür. İlişkinin n tarafındaki tabloya 1 tarafındaki
tablonun anahtar alanı yabancı anahtar olarak eklenir. İlişkide belirtilen tanımlayıcı nitelikler n tarafına
alan olarak eklenirler. Örneğin öğrenci bölüm varlık kümeleri arasındaki 1-n okur ilişkisinde öğrenci
ve bölüm varlık kümeleri tablolara dönüştürülür (Şekil 2). İlişkinin n tarafındaki tablo olan öğrenci
tablosuna bölüm tablosunun anahtar alanı olan bölümNo alanı yabancı anahtar olarak eklenir. İlişkiyi
tanımlayan kayıtTar ve mezunTar nitelikleri de öğrenci tablosuna alan olarak eklenirler.
öğrenciNo
ad
kayıtTar
cinsiyet
n
Öğrenci
adres
doğum
Tarih
Okur
bölümNo
1
Bölüm
mezunTar
bölümAd
Şekil 2. Öğrenci ve Bölüm 1-n okur ilişkisi ER şeması
Yukarıdaki ER şeması tablolara dönüştürülürse;
Öğrenci(öğrenciNo, ad, cinsiyet, adres,doğumTarih, bölümNo, kayıtTar, mezunTar)
Bölüm(bölümNo, bölümAd)
10
Birçoğa‐birçok(n‐m)ilişkilerintablolaradönüştürülmesi
İlişkiyi oluşturan varlık kümeleri tablolara dönüştürülür. Ancak ilişki isminde yeni bir tablo
oluşturulur. İlişkiyi oluşturan tabloların anahtar alanları yeni tabloya yabancı anahtar olarak eklenir.
İlişkide belirtilen tanımlayıcı nitelikler varsa yeni tabloya alan olarak eklenir. Yeni tablonun anahtar
alanı ilişkiyi oluşturan tabloların yabancı anahtarlarından oluşan ikili veya daha fazla alandan oluşur.
Ancak bazı durumlarda bu anahtar tanımı yeterli olmaz. Yeni tabloya tabloya uygun şekilde yeni bir
anahtar alan eklenir. Örneğin aşağıdaki şekildeki müşteri-ürün n-m ilişkisi tabloya dönüştürülürken,
müşteri ve ürün adında iki tablo oluşturulur. Ayrıca satınalır isminde yeni bir tablo oluşturulur.
Satınalır tablosun müşteri tablosunun anahtar alanı olan müşteriNo ve ürün tablosunun anahtar alanı
olan ürünNo yabancı anahtar olarak eklenirler. Ayrıca satın alır ilişkisinde tanımlanan tarih ve miktar
nitelikleri de satınalır tablosuna alan olarak eklenirler. Satınalır tablosunun anahtar alanı olarakta
satınalırNo isminde yeni bir alan eklenir.
müşteriNo
adres
tarih
ad
Müşteri
ürünNo
m
n
Ürün
Satın Alır
telefon
miktar
ürünAd
birim
Fiyat
stok
Miktarı
Şekil 3. Müşteri ürün n-m satın alır ilişkisi ER şeması
Yukarıdaki ER şeması tablolara dönüştürülürse;
Müşteri (müşteriNo, ad, adres, telefon)
Ürün (ürünNo, ürünAd, birimFiyat, stokMiktarı)
SatınAlır (satınAlırNo, müşteriNo, ürünNo, tarih, miktar)
Çokdeğerliniteliklerindönüştürülmesi
Çok değerli herbir nitelik için yeni bir tablo oluşturulur. Yeni tabloya çok değerli alan adı ve çok
değerli alanın bulunduğu ilk tablonun anahtar alanı eklenir. Bu yeni tablonun anahtar alanı ise, çok
değerli alan ile birlikte eklenen yabancı anahtarın birleşimidir. Örneğin şekil 4’deki bakmakla
yükümlü olduğu kişi niteliği çok değerli bir niteliktir. Çünkü her personelin birden çok bakmakla
yükümlü olduğu kişi olabilir. Bu durumda bakmaklaYükümlüOlduğuKişi adında yeni bir tablo
oluşturulur. Bu tablonun alanları olarak bakmaklaYükümlüOlduğuKişi ve personel tablosunun anahtar
alanı olan sicilNo yabancı anahtar olarak eklenir. Bu tablonun anahtar alanı
bakmaklaYükümlüOlduğuKişi ve sicilNo alanlarının birleşimidir.
11
Ad
SicilNo
Bakmakla
yükümlü kişi
Personel
Maaş
Adres
Şekil 4. Personel varlık kümesinin çoklu değer niteliği ve diğer nitelikleri
Personel varlık kümesi tabloya dönüştürülürse;
Personel (sicilNo, adres, ad, maaş)
BakmalaYükümlüKişi (bakmaklaYükümlüKişi, sicilNo)
Zayıfvarlıkkümelerinintablolaradönüştürülmesi
Zayıf varlık kümeleri tablolara dönüştürülür. Ancak zayıf varlık kümesinin anahtar alanı kendi anahtar
alanı ile birlikte ilişki kurduğu güçlü varlık kümesinin yabancı anahtarının birleşimidir. Örneğin,
aşağıdaki şekildeki üniversite-fakülte 1-n ilişkisinde, üniversite varlık kümesi güçlü, fakülte varlık
kümesi ise zayıf varlık kümesidir. Üniversite ve fakülte varlık kümeleri, ayrı ayrı üniversite ve fakülte
varlık kümelerine dönüştürülür. Ancak, fakülte varlık kümesinin anahtar alanı, fakülteNo ile birlikte
üniversiteNo alanlarından oluşturulur.
fakülteNo
ünivNo
1
Üniversite
ünivAd
Olur
n
fakülteAd
Fakülte
il
Şekil 5. Üniversite-Fakülte olur 1-n güçlü-zayıf ilişkisi
Yukarıdaki ER şeması tablolara dönüştürülürse;
Üniversite (ünivNo, ünivad,il)
Fakülte (fakülteNo, ünivNo, fakülteAd)
12
Çok Bilinen VTYSler
MS Access
 Microsoft Office ürünüdür.
 Küçük ölçekli uygulamalar içindir.
 Tablo başına 2 GB a kadar veri depolayabilir.
 Aynı anda 255 bağlantıya izin verebilir.
 MS Windows dışındaki sistemlerde
kullanılamaz.
 “Transaction logging” özelliğine sahiptir,
ancak “trigger” ve “stored procedure”
özelliklerine sahip değildir.
Oracle
 Oracle, Inc.
 Dünyanın en güçlü ve güvenilir veritabanı
olarak gösterilmektedir.
 Çok yüksek maliyet
 Windows, Unix, Linux, ...
 Oracle, sınırsız sayıda tabloları
desteklemektedir.
PostgreSQL
 PostgreSQL Global Development Group
 Linux, Unix, BSD, Windows, AIX vb.
 Ücretsiz, akademik bir veritabanı
 Çok güçlü işlem yapısı
 Veri güvenliği ön planda
 Tablo başına 64 TB veri tutabilme özelliği
 “Transaction”, “Inheritance” “trigger” ve
“stored procedure” özelliklerine sahiptir.
MySQL
 MySQL Inc.
 Windows, Linux, OS/2,Solaris, AIX vb.
 “trigger” ve “stored procedure” özelliklerine
sahiptir, ancak “Transaction logging” özelliği
bulunmamaktadır.
 Tablo başına 4 TB veri depolayabilir.
MS SQL Server
 Microsoft
 Dezavantajları:
 Sadece Windows üzerinde çalışabilir.
 Yüksek maliyet
 Kullanım kolaylığı, güvenilirliği,işlem gücü
 Tablo başına 4 TB veri.
 “Transaction logging”, “trigger” ve “stored
procedure” özelliklerine sahiptir.
Informix
 Illustra
 Ücretli ve güçlü bir veritabanıdır.
 Orta ölçekli işletmelerin yükünü
kaldırabilecek kapasitededir.
 1994’deki Postgres kodundan geliştirilmeye
başlanmıştır.
IBM DB2
 IBM
 Access ve MySQL e göre daha performanslı,
ancak küçük işletmelere göre daha yüksek
maliyete sahiptir.
 Unix ve Windows üzerinde çalışabilir.
 Transaction logging”, “trigger” ve “stored
procedure” özelliklerine sahiptir.
Hangi veritabanı seçilmeli?
 Küçük yoğunlukta trafik: Access
 Web uygulamaları için: MySQL
 Daha büyük ve orta ölçekli uygulamalar içinse, Progress, MS SQL ya da Linux üzerinde
PostgreSQL .
 Oracle ise çok yüksek güvenilirlik ve işlem gücü gerektirdiğinde tercih edilen bir veritabanı
sunucusudur.
13
Download