You are on page 1of 8

VER TABANI YNETM SSTEMLER I

BLM 4 Alako BURMA

4. VER TABANI TASARIMI ve NORMALZASYONU

4.1. Veri Taban Tasarm


Iyi bir veritaban tasarm yapabilmek iin yetenek, bilgi ve tecrbe ok
nemlidir. ncelikle, ilikisel veritabannn tanmn ve bununla ilgili 5 Normalizasyon
kuraln ok iyi bilmek gerekir. 5N, tasarm aamasnda yol gstermek yerine hangi
artlara uygun tasarm yaplmas gerektiini anlatr. Bazen, bu kurallardan
vazgemek durumunda olunabilir ancak, veritabannda saklanacak verilerin hacmi
arttka yani veri taban bydke bu kurallarn daha sk uygulanmasn gerekir.
Bir veri taban ile proje yaplrken iin en nemli aamas veri tabannn
tasarlanmasdr. Balangta yanl tasarlanan bir veri taban ile yaplan projede
sonradan yaplacak dzenlemelerle geri dn yaplamaz. O nedenle Veri taban
tasarm yaplrken aadaki maddelere uyularak yaplmas gerekir.

1. Nesneler Tanmlanr: Nesne, eitli zellikleri bulunan bir varlktr.


Herhangi bir proje de ncelikle nesneler tanmlanr. Birka proje iin nesnelere rnek
verilecek olunursa,
Ktphane sistemi : Kitap, yeler, trler, dn hareketleri
E-ticaret sistemi : rnler, mteriler, sipariler, teslimat, fatura bilgileri, reticiler,
tedarikiler, datclar...
Futbol Ligi : Takmlar, sahalar, oyuncular, fikstr, hakemler, antrenrler
Okul Sistemi : renciler, retmenler, dersler, derslikler
Personel Sistemi : alanlar, meslekler, allan birimler, maalar, izinler
Szlk : kelimeler, anlamlar, diller
Not : Tablolara isim verilirken mmknse tekil isimler kullanlmaldr. Byle yaplrsa;
hem daha anlalr bir tasarm yaplm olur hem de daha sonra kodlama
aamasnda karkln nne geilmi olur. rnein iinde Kitap ile ilgili bilgiler
bulunduran tablonun adn Kitap koymak olduka mantkldr.

2. Her nesne iin bir tablo oluturulur: Her nesne iin bir tablo oluturulur
ve her bir tabloya ierecei veriyi en iyi anlatan bir isim verilir. Tablo oluturma ii, bir
kat stnde sembolik olarak gsterilebilir veya dorudan MS Access, SQL Server,
MySQL, Oracle ... gibi kullanlmakta olunan VTYS stnden de oluturulabilir. Tm
proje bitirilinceye kadar bu tablolar zerinde muhtemel deiiklikler yaplabilir.

3. Her bir tablo iin bir anahtar alan seilir: Veritabanndaki herhangi bir
veriye eriilmeden nce tabloya eriilir. Bir veritabannda zerinde en ok ilem
yaplan nesne grubu genellikle tablolardr. Bu aamaya kadar hangi tablolarn
oluturulacana karar verildi. Her bir tablonun iinde hangi bilgilerin saklanlaca
kabaca tasarlanr. Bu aamada, tabloda yer alacak her bir kayd bir dierinden
ayrabilecek bir stuna ihtiya duyulur.

29
VER TABANI YNETM SSTEMLER I Alako BURMA

rnein bir kitap seilmek istenildiinde, bu kitabn hangi kitap olaca yle bir
anlatlabilmeli ki, baka hibir kitap ile karmamaldr. Bunu yapmann tek yolu, bir
alan birincil anahtar alan olarak belirlemektir. Anahtar alan seilirken, kstlamad
srece, doal alanlar seilmeye dikkat edilmelidir. rnein aralar ile ilgili bir tablo
yaplrken, plakalar anahtar alan olarak belirlenebilir. nk her bir plakadan bir tek
ara trafie kabilir ve plakalar kstlamaz. renci tablosu iin, renci numaras
doal bir anahtar alandr nk ayn okulda, ayn numaradan bir rencinin daha
bulunmas sz konusu deildir. Personel tablosu iin, personel sicil numaras doal
bir anahtar alandr nk ayn iyerinde, ayn numaradan bir personel daha
bulunmaz.
Kitap tablosu iin ISBN numaras anahtar alan olarak tanmlanabilir ama, ayn
kitaptan iki adet olduunda, ISBN numaras bizi kstlar. Elimizde iki adet
nmzdeki Yol kitab varsa, her iki kitabn da ISBN numaras ayndr. Kitaplardan
birisi eski dieri yeni olabilir. Bu bir kargaaya neden olabilir. nk eski kitab kime,
yeni kitab kime verdiimizin takibini ISBN numaras ile yapmak mmkn deildir.
Ancak bir E-Ticaret sitesi tasarlanrken, stoktaki tm kitaplar birbiri ile edeer
olacandan ya da yle olduu varsayldndan ISBN numaras birincil anahtar alan
olabilir. Bu durumda, adet diye bir niteliin ayn tabloda yer almas gerekecektir.

4. Nesnelerin gerekli her bir zellii iin tabloya bir stun eklenir: Tablo
adlar tanmlandktan ve anahtar adlar belirlendikten sonra, tablolara srasyla adn
veren nesnelerin her bir zellii iin bir alan (stun) eklenir.
rnein, kitap iin; Kitap no, ISBN no, kitap ad, yazar, tr, sayfa says, zeti,
fiyat, bask yl...
ye iin; UyeNo, ad, soyad, e-mail adresi, ev telefonu, cep telefonu, i telefonu....
Personel iin; Personel sicil No, ad, soyad, e-mail adresi, meslei, alt birim,
maa....
Bu hazrlklar yaplrken yaplmas istenilen proje ile ilgili basl formlar vs.
varsa, onlarn incelenmesi tabloya eklenecek stunlarn hangi zellikler olmas
gerektii konusunda karar verilmesinde yardmc olurlar.
PUCU : 1. En baa birincil anahtar olarak belirlenen alan eklemek bir kural
deildir, ancak tablonun anlalrl ve gze ho grnmesi asndan tercih edilmesi
faydal olacak bir tekniktir.
2. Genellikle, yapay birincil anahtar alanlar tablo ad ile balar ve sonunda ID
vardr. Ogrenci tablosu iin ogrenciID, Personel tablosu iin personelID gibi.

5. Tekrarlayan nesne zellikleri iin ek tablolar oluturulur : Aklda hep u


soru olmaldr: veri tekrar olacak m? Veri tekrar olacaksa bir yerlerde hata yaplyor
demektir. Bu durumda eldeki tablonun en az bir tabloya daha ayrlmas gerekiyor
demektir.
u da unutulmamaldr, her projeye uyacak evrensel bir veritaban tasarm
teknii yoktur. Yani her ey belli kurallar erevesinde ne kadar detayyla dnlp
tasarlandna baldr.

30
VER TABANI YNETM SSTEMLER I Alako BURMA

rnein, her bir kitap iin tr belirledik ama, bir kitap hem kiisel geliim
kategorisine hem de hikaye kategorisine girebilir. Ya da e-ticaret sisteminde bir
rnn birden fazla reyonda yer almas gerekli olabilir. Veya bir kitap birden fazla kii
tarafndan yazlm olabilir. Bir kitap iin birden fazla tr kaydedebilme ele alnsn:
Bu trden bir sorunu zmek iin ilk akla gelen ey, Kitap tablosunda tr alan
iin 2.stun daha eklemek olabilir. Bu tabloya 2.Tr ve 3.Tr diye iki stun alan daha
eklemek. Ama ou kitap bir tek trdendir ve bu kitap iin eklenen 2 alan hep bo
kalacaktr. te yandan, 4.tre birden giren bir kitap olduunda 4.tr bilgisi nereye
yazlacaktr? Ayn alana m? Ya da drt adet blm m alacak? Bunlar, veritaban
tasarmnn doasna terstir.
2.zm yolu ise, bir kitab iki kere kaydedip, birincisini, Kiisel Geliim tr
olarak; ikincisini de Hikaye olarak girmektir. Bu durumda tabloda ayn kitaba ait iki
kayt olacaktr ve kitap tr dndaki dier tm bilgiler tekrar edecektir. Ya da bir sre
sonra, kitap hakknda girilen bilgilerin yanl olduu fark edildi. Hangi kayt
gncellenecektir? Ya biri dzeltip dieri unutulursa? Sonuta veri tekrar ve veri
btnlnn bozulmas sz konusudur.
Bu da yine ilikisel veritaban tasarmnn doasna terstir. Bu durumda, trler
diye bir yeni tablo oluturup, bir de kitap_turler diye 2.tablo yu oluturduktan sonra
bu trden bilgileri burada tutmak gerekecektir. Bylelikle, hibir trde yer almayan
kitaptan 10 ayr trde yer alan kitaba kadar btn olaslklar iin bir zm
gelitirilmi olur.

Ayn ilem renci ve renciye ait ders notlar iin dnlebilir. renciye
ait ders not bilgilerinin yazld tabloya ait stunlarn aadaki gibi olduunu
varsaylrsa;

renciNo DersinAd VizeNotu FinalNotu Ortalama

Bir renci ald dersten baarl olursa vize ve final notu yazlarak ortalamas
hesaplanr ve sorun yaanmaz. Ama renci bu dersten baarsz olursa bu dersi
yeniden almak zorundadr. Yeniden ald bu derse ait ders notlarnn nereye
yazlacann dnlmesi gerekir. Eski notlarnn da kalmas gerektii dnd
bu durumda tablo aadaki gibi tasarlanabilir.

renciNo DersinAd VizeNotu FinalNotu Ortalama VizeNotu FinalNotu Ortalama


03101001 BILGISAYAR 37 40 45 48

Tabloda 2 adet not yazlabilecek alan vardr. Peki ama rencinin dersi ikiden
fazla kere tekrar etmesi gerekirse ne olacak? Bu durumda yeni stun alanlar m
eklemek gerekecek? Tabloya 3 tane not yazma alan eklendiinde dersi bir kere alan
ve baarl olan renciler iin 2. ve 3.alanlar bo kalacaktr. Bu her renci iin
deiebilecek bir durum olduu iin tablo tasarmnda bu mantkla dnmek doru
deildir. Yukarda ki rnekte de akland gibi bu ekilde bir tasarm yaplmaz.

31
VER TABANI YNETM SSTEMLER I Alako BURMA

Ayrca; tabloda tanmlanan her stun alan, bu alana hibir bilgi yazlmasa bile
HDde yer kaplayaca iin;diskte tanmlanan bu alanlar bouna kullanlm olacaktr.
Dolays ile diskte de bo yere alan igal edilmi olacandan tabloda gereksiz
stun alanlarnn tanmlanmamas gerekir. rnein, tabloda gereksiz tanmlanan bir
stun alan diskte 4byte yer kaplyor ise ve tabloda toplam 15 bin renci var ise;
gereksiz kullanlan toplam HD alan 4 * 15.000 = 60.000 byte olacaktr. Sadece tek
bir alan iin bu kadar alann bo yere kullanlm olmas ho bir durum deildir.
Bu durumda tablo tasarmnda yaplmas gereken dzenleme aadaki gibi
olmaldr. Bir renciye ait dersler yazlrken alt alta satrlar eklinde kayt (record)
olarak yazlarak yaplmaldr.

renciNo DersinAd VizeNotu FinalNotu Ortalama


03101001 BILGISAYAR 37 40
03101002 INGILIZCE 56 58
03101001 BILGISAYAR 45 48
03101001 BILGISAYAR 69 78

Doru tablo tasarm ve kayt girii yukardaki tabloda olduu gibi olmaldr.
Burada 03101001 numaral rencinin BILGISAYAR dersine ait notlar bu tablodan
ilerleyen blmde anlatlan SQL cmlecii ile seilerek bulunabilir.

6. Anahtar Alana Bal Olmayan Alanlar Belirlenir : likisel veritabannda,


tablodan herhangi bir tek kayda erimek iin mutlaka bir farkl zellik salanmaldr
ve bu zellik de anahtar alan tarafndan salanr. Ancak bazen, anahtar alan ile ayn
satrda yer ald halde, anahtar alan ile birebir ilikisi olmayan bir alan yer alabilir. Bu
trden alanlarn elimine edilip ayr tablolara ayrlmas gerekir. rnein, dn tablosu
ele alnacak olursa, dn verilen her kitap iin dn alann adresi de bilinmek
istenirse, bu dn tablosuna yazlamaz. nk dn tablosunun birincil anahtar
alan oduncNo dur ve bu alan, dn verme ilemi ile ilgilidir. Oysa dn alann
adresi, dn alan kiinin kendisine bal bir zelliktir. Bu kiinin her ald kitap iin
adresini tekrar yazmaya gerek yoktur. Ayn ekilde otomasyon ierisinde baka
yerlerde de bu kiinin adres bilgilerine muhtemelen ihtiya duyulabilir nk adres,
yenin bir zelliidir.
dn verilen kitabn adresi renilmek istenildiinde, yeler adnda bir tablo
daha alp, burada herkesin adres bilgisi tutulmak zorunda kalnr. dn
tablosunun ise, oduncAlan bilgisi olarak, yeler tablosunun birincil anahtar alanna
bir balant (yabanc anahtar) iermesi daha doru olur.

32
VER TABANI YNETM SSTEMLER I Alako BURMA

7.Tablolar arasndaki ilikiler tanmlanr : Her biri bir nesneye dair zellikleri
barndran tablolarn tm gz nne alnr ve birbirleri ile olan ilikileri tanmlanmaya
allr. rnein kitab dn verebiliriz. Bu durumda, dn tablosu ile Kitap tablosu
ilikili olacaktr. Kitap yelere dn verilir. Bu durumda, dn ile yeler arasnda da
bir iliki vardr. Trler ile Kitap arasnda bir iliki vardr, bir kitabn en az bir tre dahil
olmas gerekir.
Bu projedeki nesneler (tablolar) arasnda ilikiler aada yer almaktadr:

ekil 4.1.1. rnek Projenin SQL Server 2000 deki diyagram

likili her iki tablo bir birincil alan ve bir yabanc anahtar alan stnden
birbirine balanr. Ayn diyagramn bir benzeri Ms Access veya Oracle veri
tabanlarnda da hazrlanabilir.
Farkl tablolardaki iki alan ayn veriyi tutuyorsa, iki alana da ayn ad vermek,
karkla yol aabilir gibi grnse de aslnda daha dzgn bir yap ortaya kar.
KitapNo alan kitap tablosunda da dn tablosunda da kitap numarasn tutmaktadr.
Bu alanlardan birine KitapNo, dierine oduncGidenKitapNo demek, kafa karklna
neden olabilir. En nemlisi de her alan iin her tabloda farkl isimler kullanmak
deikenlerin isminin aklda tutulmasn zorlatracak ve daha sonraki tablolar
zerinde ilem yaparken ilemleri zorlatracaktr. Her seferinde ilgili alann hangi
isimle kaydedildiine bir listeden bakmak zorunda kalnacaktr. nk byk bir
veritaban projesinde 250 den fazla tablo bulunabilir. Her tabloda da bir ok alann
bulunaca dikkate alndnda her alana ait isimlerin aklda tutulmas mmkn
olmamaktadr. Birden fazla tabloda olan alanlar iin; ayn ismi kullanmak bu zorluu
ortadan kaldracaktr. En mantkls her ikisine de KitapNo demektir.

33
VER TABANI YNETM SSTEMLER I Alako BURMA

4.2. Veri Taban Normalizasyonu

Aslnda ilikisel veri taban tasarmndan ziyade, bir tablo ierisinde yer alacak
kaydn nelerden olumasna karar vermeye yarayan normalizasyon kurallar bal
bana bir ilemdir. Normalizasyon; veritaban tasarm aamasnda gerekli bir ilem
olduundan bu blmde incelenecektir. Genel kabul grm 5 normalizasyon kural
vardr. Burada her bir kural tam olarak anlatmak mmkn deildir. Ancak bu kurallar,
ilikisel veritabannn tanm ile birlikte ortaya konulmutur. zet olarak fikri vermesi
asndan normalizasyon kurallarna aada yer verilmitir.
1. Normalizasyon Kural :
Bir satrdaki bir alan yalnzca bir tek bilgi ierebilir. Birden fazla yazar olan kitap
iin yazar1, yazar2 ve yazar3 diye alanlarn almas ile bu kurala uyulmam olunur.
Byle bir durumda, ayrca yazarlar tablosu da oluturularak kural inenmemi olur.
Veri taban tasarmnda; verileri virgl veya bir baka karakter ile ayrlp ayn
alana girilmesi ve daha sonra program ierisinde split ile bu deerlerin ayrlmas
genellikle sk yaplan hatalardan birisidir. Ancak bu ilikisel veritabannn doasna
terstir. Bunun yaplmamas gerekir.

2. Normalizasyon Kural:
Bir tablo iin, anahtar olmayan her alan, birincil anahtar olarak tanml tm
alanlara bal olmak zorundadr. rnein, dn tablosuna KitapAdi diye bir alan
eklense idi, bu sadece dn verilen kitap ile ilgili bir bilgi olacakt ve oduncNo na
bal bir nitelik olmayacakt. Bunu zmek iin, kitap adlar ayr bir tabloda tutularak
sorun zlebilir.
Ya da anahtar alann birden fazla alandan olutuu tablolarda, anahtar
alanlardan sadece birine bal veriler tabloda yer almamal, ayr bir tabloya
tanmaldr. Bunun tersi de geerlidir. Yani iki ya da daha fazla tablonun birincil
anahtar ayn olamaz. Byle bir durum sz konusu ise, bu iki tablo tek tabloya
indirilmelidir.

3. Normalizasyon Kural:
Bir tablo iin, anahtar olmayan bir alan, anahtar olmayan baka hi bir alana
bal olamaz. rnein, kitaplar iin cilt tipi adnda bir alan eklenip burada da karton
kapak iin K, deri cilt iin D, spiral cilt iin S yazlsayd, bu kodlama, kitap tablosunun
birincil anahtar olan kitapNo alanna bal bir kodlama olamazd. nk bu kodlama
bir baka anahtar olmayan alana baldr. Bunun sonucunda da veritabannda,
karl olmayan bir kodlama yer alm olurdu. Cilt tipi bilgisini kodlu olarak tutan
alan aslnda cilt tipi aklamas olan baka bir alana baldr. Bu iliki baka bir
tabloda tutulmaldr. Bu durumda, cilt ekillerini tutan bir tablo almas gerekir. Bu
tablonun alanlar da ciltTipKodu ve ciltSekli olabilir. Ancak bundan sonra, kitaplar
tablosunda ciltTipi adnda bir stun ap buraya da D,S,K gibi kodlar yazlabilir.

34
VER TABANI YNETM SSTEMLER I Alako BURMA

4. Normalizasyon Kural:
Birincil anahtar alanlar ile anahtar olmayan alanlar arasnda, birden fazla
bamsz bire-ok ilikisine izin verilmez. rnein, tabloda yer alan bir kitap, hem
hikaye kitab hem de kiisel geliim kitab olabilir. (Bu durumda kitabn ad, kiisel
geliim hikayeleri olurdu her halde) Bu durum Kitap tablosunda nasl ifade edilebilir?
4.Normal formu salamak iin, her bamsz bire ok iliki iin ayr bir tablo
oluturulmas gerekir. Bu rnekte, trler iin yeni bir tablo almas gerekir. Tablonun
adna trler denilebilir. Daha sonra kitapTurleri diye bir baka tablo daha almas
gerekir. Kiisel Geliim Hikayeleri adl kitap iin, ncelikle kitap numaras, Hikaye
blmnn kodunun yer ald bir satr; ardndan da yine kitap numaras, ardndan
da kiisel geliim trnn kodunun ald yeni bir satrn daha eklenmesi gerekir.

5. Normalizasyon Kural:
Tekrarlamalar ortadan kaldrmak iin her bir tablonun mmkn olduunca kk
paralara blnmesi gerekir. Aslnda ilk 4 kural sonuta bu ie yarar ancak, bu
kurallar kapsamnda olmayan tekrarlamalar da 5 normalizasyon kural ile giderilebilir.
rnein, kitaplar iin bir edinme ekli bilgisi girilecek stun eklenmek istenebilir:
Bu blme girilebilecek bilgiler bellidir: Ba veya satn alma.
Bu bilgiler baka bir tabloda tutulabilir. Bylelikle, kullanclarn bu alana gelii
gzel bilgiler girmesi engellenmi olur. Bu da sorgulama esnasnda veriler arasnda
bir tutarllk salar. Bu ilem sonucunda, tutarszlklara neden olabilecek ve sk
tekrarlayan veriler baka bir tabloya tanm olur. Bu tablo iin, veritaban
programlamada look-up table terimi kullanlr.
Ancak, veritaban normalizasyon kurallar, bir ilikisel veritabannn tasarlanma
aamalarn deil de ilikisel veritabannda yer alacak kaytlarn ilikisel veritaban ile
uyumlu olup olmadn denetlemeye yneliktir. zetle ilikisel bir veritaban tasarm
u drt eyi barndrmaldr.
1. Veri tekrar yaplmamaldr.
2. Bo yer mmkn olduunca az olmaldr.
3. Veri btnl salanmaldr.
4. Veriler, aralarnda bir iliki tanmlanmaya msait olmaldr.

4.3. likisel Veri Taban Ynetim Sistemleri


Veritaban Ynetim sistemlerinden gnmzde kullanm en yaygn olan ilikisel
veritabandr ve en yaygn veritaban ynetim sistemleri, ilikisel Veritaban Ynetim
Sistemleri (VTYS) dir. likisel veritabannn en nemli yan, tablolardan olumasdr.
Daha nemli yan da bu tablolarn birbiri ile ilikilerinin olmasdr. VTYS lere ilikisel
denmesinin anlam budur.

35
VER TABANI YNETM SSTEMLER I Alako BURMA

Bir veritabannda ilikiden sz edebilmek iin en az iki tablonun yer almas


gerekir ve bu iki tablodaki verilerin birbiri ile bir ekilde ilikilendiriliyor olmas gerekir.
Yine bir nceki rnek olaya dnecek olursak, Kitap listesi ile dnler listesi arasnda
bir iliki vardr. nk Kitap listesinde olmayan bir kitap bizde yoktur ve dn
verilemez. Haliyle de mantk olarak bu trden bir dn bilgisi dn listesinde yer
almamaldr. Olaya tersten baklacak olursa, geri dnmeyen bir kitap hakkndaki
detaylar renilmek istenildiinde dn listesindeki kitap numaras alnr. Daha
sonra ayn numaraya karlk gelen kitap, Kitap tablosundaki satrda bulunur. Bu
satrdaki bilgiler, bize kitap hakkndaki tm detaylar verir.
Kitap tablosundaki kitapNo alan aday anahtar (indeks)tir. Odunc tablosundaki
KitapNo alan, yabanc anahtar (foreign key) alandr, nk Kitap tablosundaki bir
kayd sembolize etmektedir. Tm bunlarn ardndan VTYS leri hakknda zet olarak
diyebiliriz ki;
Bir Ilikisel Veritaban Ynetim Sistemi tablolar stnde u ilevi yerine
getirmek zorundadr.
1.Seme : Herhangi bir tabloda (listede) yer alan tm bilgileri gsterebilmelidir.
rnein, Kitap tablosunun bir dkmn verebilmelidir ya da kitap listesinden baz
kitaplarn bilgilerini getirip dier bir ksmn getirmeyebilmelidir.
2. zdrme : Herhangi bir tablodan sadece belli stunlarn yer ald seme
ilevlerini yerine getirebilmelidir. rnein, can isteyen bir kullanc kitabn sadece
adn ve ka sayfa olduunu seebilmelidir.
3.Birletirme : Birden fazla tabloda yer alan bilgiler, yeri geldiinde tek bir
tabloymu gibi sunulabilmelidir. rnein, dn alnp da geri getirilmeyen kitaplarn
adlar ve kimler tarafndan alnd bir tek tabloymu gibi gsterilebilmelidir.
VTYS bu 3 temel ilevi yerine getirebilmelidir. Bunlardan , ikisi veya biri
ayn anda yerine getirilmek durumunda kalnabilir. rnein, sayfa says 200 den
byk kitaplarn sadece ismi grlmek istenirse, hem izdrme hem de seme
ilemine ihtiya duyulur. Veriler ve depolanma ekilleri farkl olabilir. nemli olan,
VTYSnin SQL ile ynetilebilir olmasdr. Bylelikle, verilerin bilgisayarda fiziksel
olarak ne ekilde depoland, kullanc bilmek zorunda deildir.
Yani, kullanc temel veri saklama ilem ve yntemlerinden izole edilmi olur.
Kullancnn verileri etkili olarak kullanmas iin bilmesi gereken tek ey SQL
olmaldr. SQL ilerleyen blmlerde anlatlmtr.

36

You might also like