Professional Documents
Culture Documents
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.
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;
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.
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.
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.
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:
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
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.
35
VER TABANI YNETM SSTEMLER I Alako BURMA
36