S.A
Öncelikle bu konuyu gerek forumiçi gerekse netten araştırdığımı belirtmek ve hatta böyle bir soruyu sormaktan utandığımı, birkaç gün kararsız kalıp, sormanın ayıp olmadığı düşüncesini tekrar hatırladım ve soruyorum işte...
Bu maddeler Foreign Key içindir:
1- Nedir?
2- Amaç ne, ne zaman nasıl kullanılmalı?
3- Omazsa olmaz bi olay gibi, açıklama?
4- VT şekillendirmesindeki rolü, hangi alanların FK olacağı nasıl tespit edilir (sanırım ilk 3 maddeden donra bu kararı kendim verebilirim ama...)
Sonuçta; VT olayının temel özelliği olarak değerlendirilebilecek bu özelliği bilmiyorum ve bilgi istiyorum. FireBird kullandığımıda belirteyim...
Herkese teşekkürler, saygılarımla...
Foreign Key
Hocam öncelikle fahrettin abi'nin Veritabanı ile ilgili seminerlerini izlemenizi tavsiye ederim...
Kısaca özetliyelim...
Zorlayıcı (Constraint): Herhangi bir alan için girilebilecek verileri kısıtlayıcı kurallara zorlayıcı denir..Kullanıcı zorlayıcının istediği şekilde veri girmez ise, VTYS hata verir ve böylece gereksiz ve keyfi bilgi girişleri önlenmiş olur..
Örneğin Bölüm tablosunda olmayan bir bölümü Personel tablosunda bir elemanı tanımlar iken olmayan bir bölümü personele veremeye kaltığımızda bir hata verecek şekilde kısıtlamayapabiliriz..
Anahtar (Key) :Anahtar bir veya birden fazla alanın bir satır için niteleyeci olarak girilmesi için tanımlanan özel bir çeşit zorlayıcıdır...
Tekrarlanmıyacak bir alan tanımlandığında , bu anahtar alana birincil anahtar denir.
Primary Key
Unique Key
Foreing Key
gibi türevleri vardır...
Foreing Key : Bir tabloya girilebilecek değerleri başka bir tablonun belli alanında yer alabilecek veri grubu ile sınırlandırılmaya ve en önemlisi de ilişkilendirmeye yarar...
Örneğin ;Olmayan bir bölümü personelin bölüm alanına yazamayacağınız gibi;
Persolen Table
-------------------
Sicil_NO (Birincil Anahtar)
Adi
Soyadi
Bolum_NO (Foreing Key)
Bolum Table
-------------------
Bolum_NO (Birincil Anahtar)
Bolum_Adi
inşallah açıklayıcı olmuştur kolay gelsin (yanlız fahrettin abinin seminerini izlemeyi unutma
)
Kısaca özetliyelim...
Zorlayıcı (Constraint): Herhangi bir alan için girilebilecek verileri kısıtlayıcı kurallara zorlayıcı denir..Kullanıcı zorlayıcının istediği şekilde veri girmez ise, VTYS hata verir ve böylece gereksiz ve keyfi bilgi girişleri önlenmiş olur..
Örneğin Bölüm tablosunda olmayan bir bölümü Personel tablosunda bir elemanı tanımlar iken olmayan bir bölümü personele veremeye kaltığımızda bir hata verecek şekilde kısıtlamayapabiliriz..
Anahtar (Key) :Anahtar bir veya birden fazla alanın bir satır için niteleyeci olarak girilmesi için tanımlanan özel bir çeşit zorlayıcıdır...
Tekrarlanmıyacak bir alan tanımlandığında , bu anahtar alana birincil anahtar denir.
Primary Key
Unique Key
Foreing Key
gibi türevleri vardır...
Foreing Key : Bir tabloya girilebilecek değerleri başka bir tablonun belli alanında yer alabilecek veri grubu ile sınırlandırılmaya ve en önemlisi de ilişkilendirmeye yarar...
Örneğin ;Olmayan bir bölümü personelin bölüm alanına yazamayacağınız gibi;
Persolen Table
-------------------
Sicil_NO (Birincil Anahtar)
Adi
Soyadi
Bolum_NO (Foreing Key)
Bolum Table
-------------------
Bolum_NO (Birincil Anahtar)
Bolum_Adi
inşallah açıklayıcı olmuştur kolay gelsin (yanlız fahrettin abinin seminerini izlemeyi unutma


aslinda foreing key kavrami birbirine yakin farkli iki anlamda kullanilmaktadir.
1. veritabaninda Referential Integrity yi saglamak icin trigger olusturmanin alternatifi olarak foreing key olusturulup amaclanan Referential Integrity (veri butunlugu) (bakiniz detayli bilgilendirme : viewtopic.php?t=644 ve tabi veritabani seminerleri. 5. 6. ve 8. seminer) saglanabilir.
2. anlaminda ise veritabani tasarimi yaparken personel tablosuna bolum adi yerine bolum numarasini koyup bu numara karsiligini bolum tablosundan alma olayina da personel tablosuna bolum no alanini foreing key olarak tanimladik deriz. (foreing key i cumle icinde kullanmis oldum
) Fakat Referential Integrity icin veritabani tarafinda foreing key olusturmuyor olabiliriz. Bunu trigger ile sagliyor olabiliriz. Tabi 1. anlam 2. anlami kapsamaktadir.
eger 1. anlami ile dusursek veritabani uzerinde hic foreing key tanimlamayabiliriz. Bunun yerine veri butunlugunu triggerlar ile gayet guyel temin edebiliriz. Yani olmasalar da olurlar.... Hatta ben sahsen foreing key yerine genelde trigger tercih ederim..
Fakat 2. anlami ile veritabanimizi tasarlarken bir bolum tablosundan personel tablosuna bolum no alanini gondermek iliskisel veritabani tasarim teorisi acisindan sarttir. Yani isin raconu budur
Dolayisiyla 4. sorunuza gelirsek buradaki foreing key kavramini 2. anlam olarak algilarsak ki oyel algilamak zorundayiz. Zira 2. anlamdan gecmeden 1. anlama gelinemiyor. Bu duurmda hangi alanlarin foreing key olmasi gerektigine karar vermek veritabani tasarim isinin bir nevi kendisidir zaten.... personel tablosundaki bolum no, dogdugu sehir no, musteri tablosundaki bulundugu sehir no vs.....
not: almanca bir klavye kullaniyorum. yazim hatalarim affola.... ozellikle y ve z harfleri yer degisebiliyor.
1. veritabaninda Referential Integrity yi saglamak icin trigger olusturmanin alternatifi olarak foreing key olusturulup amaclanan Referential Integrity (veri butunlugu) (bakiniz detayli bilgilendirme : viewtopic.php?t=644 ve tabi veritabani seminerleri. 5. 6. ve 8. seminer) saglanabilir.
2. anlaminda ise veritabani tasarimi yaparken personel tablosuna bolum adi yerine bolum numarasini koyup bu numara karsiligini bolum tablosundan alma olayina da personel tablosuna bolum no alanini foreing key olarak tanimladik deriz. (foreing key i cumle icinde kullanmis oldum

eger 1. anlami ile dusursek veritabani uzerinde hic foreing key tanimlamayabiliriz. Bunun yerine veri butunlugunu triggerlar ile gayet guyel temin edebiliriz. Yani olmasalar da olurlar.... Hatta ben sahsen foreing key yerine genelde trigger tercih ederim..
Fakat 2. anlami ile veritabanimizi tasarlarken bir bolum tablosundan personel tablosuna bolum no alanini gondermek iliskisel veritabani tasarim teorisi acisindan sarttir. Yani isin raconu budur

Dolayisiyla 4. sorunuza gelirsek buradaki foreing key kavramini 2. anlam olarak algilarsak ki oyel algilamak zorundayiz. Zira 2. anlamdan gecmeden 1. anlama gelinemiyor. Bu duurmda hangi alanlarin foreing key olmasi gerektigine karar vermek veritabani tasarim isinin bir nevi kendisidir zaten.... personel tablosundaki bolum no, dogdugu sehir no, musteri tablosundaki bulundugu sehir no vs.....
not: almanca bir klavye kullaniyorum. yazim hatalarim affola.... ozellikle y ve z harfleri yer degisebiliyor.

* http://www.fahrettin.org Manzara Fotoğraflarım... 
* http://delphiturkiye.gunduz.info Seminerler...
* http://www.hakmar.com.tr Kalite bir haktır...

* http://delphiturkiye.gunduz.info Seminerler...

* http://www.hakmar.com.tr Kalite bir haktır...

S.A
Beyler Allah razı olsun kafamda baya baya şekillendi bu olay. Seminerlerden 6 hariç tümünü seyrettim (bazıları biraz problemli olsada, anlayabildiğim kadarıyla) 6'yı bugün indirip seyretcem. Trigger SP vs. ile alakalı tüm konuları da defalarca okudum.
Aslında bişey itiraf edeyim, ben bi proje için MySQL kasıyodum. 1 ay filan uğraştım. Baktım proje ilerlemiyor, sonra bi gün sayenizde Firebird filan kurdum işte, 2 tablo yaptım SP olayını denedim süpper bişii.. şimdi tüm VT yi FB ye dönüştürüyom, SP leri filan yazcam ama FK olayı çok rastlamaya başladığım için danıştım. İlgilenen herkese minnettarım...
İyi çalışmalar, saygılarımla...
Beyler Allah razı olsun kafamda baya baya şekillendi bu olay. Seminerlerden 6 hariç tümünü seyrettim (bazıları biraz problemli olsada, anlayabildiğim kadarıyla) 6'yı bugün indirip seyretcem. Trigger SP vs. ile alakalı tüm konuları da defalarca okudum.
Aslında bişey itiraf edeyim, ben bi proje için MySQL kasıyodum. 1 ay filan uğraştım. Baktım proje ilerlemiyor, sonra bi gün sayenizde Firebird filan kurdum işte, 2 tablo yaptım SP olayını denedim süpper bişii.. şimdi tüm VT yi FB ye dönüştürüyom, SP leri filan yazcam ama FK olayı çok rastlamaya başladığım için danıştım. İlgilenen herkese minnettarım...
İyi çalışmalar, saygılarımla...