Yukarıdaki bir yorumda yazdınız:
"Veritabanı Sistemlerinin Temelleri" [...] diyor ki [...], yabancı anahtar sütununda çok fazla NULL değer varsa (örneğin: çalışanların% 98'i varsa) bir kesişim tablosu kullanılması önerilir. bir departmanı yönetme)
Yabancı anahtar sütununda çok sayıda NULL değer olduğunda, programlarınızın işledikleri her kayıt için bu çoğunlukla boş sütunla uğraşması gerekecektir. Sütun, tüm vakaların% 98'inde boş olsa bile, muhtemelen biraz disk alanı kaplar, ilişkiyi sorgulamak, size daha fazla ağ trafiği veren sütunu sorgulamak anlamına gelir ve tablolarınızdan sınıflar üreten bir ORM kullanıyorsanız, programlarınız ayrıca müşteri tarafında gerekenden daha fazla alana ihtiyaç duyacaktır. Bir kesişim tablosu kullanmak bunu önler, yalnızca eşdeğer yabancı anahtarın NULL olmayacağı durumlarda gerekli olan bağlantı kayıtları olacaktır.
Buna karşılık, sadece birkaç NULL değeriniz yoksa,% 50 veya daha fazla ilişkinin NULL olmadığını söyleyelim, bir kesişim tablosu kullanmak size tam tersi etki sağlar - daha fazla disk alanı, daha fazla ağ trafiğine yol açan daha yüksek karmaşıklık vb.
Dolayısıyla, bir kesişim tablosu kullanmak sadece belirli bir durum için ve özellikle disk alanı ve belleğin daha ucuz hale geldiği, daha az sıklıkla ihtiyaç duyulduğu bir optimizasyon şeklidir. "Veritabanı Sistemlerinin Temelleri" nin 20 yıldan uzun bir süre önce yazılmış olduğunu unutmayın (1994'ün ikinci baskısına bir referans buldum) ve sanırım o zamanlar bu öneri zaten mevcuttu. 1994'ten önce, toplu depolama hala daha pahalı olduğundan ve bilgisayarlar ve ağlar bugünden çok daha yavaş olduğundan, alan optimizasyonu muhtemelen bugünden çok daha önemliydi.
Seçici bir yorumun yan notu olarak: yukarıdaki ifade sadece "Veritabanı Sistemlerinin Temelleri" nin yazarının önerisiyle aklından neler geçtiğini tahmin etmeye çalışıyor, sanırım çoğu sistem için geçerli, kaba, genel bir açıklama yapıyordu. Bazı veritabanlarında, bir kesişim tablosunun kullanımını daha da eski hale getiren "seyrek sütunlar" gibi başka olası optimizasyonlar da vardır.
Yani bu öneriyi yanlış anlamayın. Kitap, {0,1}:n
genel olarak ilişkiler için kavşak tablolarını tercih etmenizi veya yazdığınız gibi bunun "doğru yol" olduğunu söylemez . Programlarınızı yalnızca gerçekten ihtiyacınız olduğunda daha karmaşık hale getirecek bunun gibi optimizasyonları kullanın.