From: Burak DAYIOGLU (burak.dayioglu@pro-g.com.tr)
Date: Tue 20 Jan 2004 - 02:38:06 EST
Fuat Altun wrote:
> Merhabalar,
> Adresler adindaki tablomda 3 adet telefon numarasi gerekiyor. (tel1, tel2,
> tel3)
> Bunun disinda 3 adet faks numarasi gerekiyor. (faks1, faks2, faks3)
> Adesler tablosunun icine bu 6 alani (tel1..tel3, faks1..faks3) ayri ayri
> koymakmi?
>
> Yoksa numaralar diye ayri bir tablo yapip bu numaralarin hepsini tel ve faks
> diye ayirarak bu tabloda tutumak mi?(tel,faks)
>
> Yoksa yine numaralar diye ayri bir tablo yapip bu numaralarin hepsini bu
> tabloda tutumak mi?(numara,tel_faks_flag)
Merhaba,
Iliskisel veritabani tasarim konusuna iliskin teorik konulari
animsadigim kadari ile yanitlayayim. Tariflediginiz adresler iliskisinde
iliskinin anahtari (isim, musteri-no vb.) telefon numarasini belirliyor.
Yani musteri adi Burak'sa telefonu 312-2101494'tur biciminde. Bu da,
iliski icerisinde baska redundancy yoksa iliskinin BCNF olmasina engel
teskil etmiyor.
Bu nedenle, telefonlari ve fakslari adresler ile AYNI YERDE saklamanizi
oneririm. Adreslerin yaninda duran telefonlar bilindik herhangi bir
anormallik durumuna da (insert, update, delete anomalies) yol acmiyor.
Telefonlari disari cikartmanin saglayacagi tek fayda
telefon(id,telefonno,tur) biciminde sira numarali ve turlu
(faks,telefon) saklanmis bir iliski kullanilmasi durumunda kazanilacak
bir kac bayt yer olabilir ki join'lerin maliyeti cok daha yuksek olacaktir.
Object relational bir DBMS (oracle 8+i, postgresql 7, interbase/firebird
vb.) kullaniyorsaniz Enver'in onerdigi gibi array() turu bir nesne de
kullanabilirsiniz; ben cok onemli bir zorunluluk olmadikca
performanslari nedeniyle bunlari tercih etmiyorum.
selamlar, sevgiler.
-- Burak DAYIOGLU Danisman, Pro-G Bilisim Guvenligi ve Arastirma Ltd. http://www.pro-g.com.tr info@pro-g.com.tr Tel: +90 312 2101494 Faks: +90 312 2101493