Eğer okumak ve normalization temellerini anlamak gerekir. en projeleri için, 3. normal form normalleştiren sadece iyi olacak. Orada daha fazla veya daha az normalleşmeyi istediğiniz zaman belli senaryolar her zaman vardır, ama arkasındaki kavramları anlamada size veritabanı bir normalleştirilmiş biçimde yapılandırılmıştır nasıl düşünmek sağlayacaktır.
Burada bir tablo normalleştirilmesi çok temel bir örnek:
students
student_id
student_name
student_class
student_grade
oldukça standart bir tablo çeşitli verileri içeren, ama biz hemen bazı sorunları görebilirsiniz. bir öğrencinin adı, onun kimliği bağımlı olduğunu görebilirsiniz, ancak, bir öğrencinin birden fazla sınıfa dahil olabilir, ve her sınıf makul farklı bir not olurdu. biz o gibi tablolar hakkında düşünebilirsiniz:
students
student_id
student_name
class
class_id
class_name
Bu kötü değil, şimdi biz çeşitli öğrenci ve çeşitli sınıfları görebilirsiniz, ama biz öğrencinin notları esir değil.
grades
student_id
class_id
grade
şimdi bize belirli bir öğrenci, belli bir sınıfın ve bu sınıf ile ilişkili bir sınıf arasındaki ilişkiyi anlamamızı sağlayan 3 tablo var. bizim ilk ilk tablodan, biz şimdi (en biz :) örnek uğruna başka notlarını normalleştirmek gerek yok varsayalım) bir normalize veritabanında 3 tablolar var
Bu çok temel bir örnek seçip ayırmak bir kaç şey:
- Bizim veriler tüm çeşit (student_id, class_id ve student_id + class_id) bir anahtara bağlıdır. Bu her tablo içinde benzersiz tanımlayıcılardır.
- Bizim anahtarlı ilişkileri ile, biz (öğrenci # 4096 kayıtlı kaç sınıfları?) birbirlerine bilgi ilişkilendirmek mümkün olacaktır
- bizim tablolar student_class birçok öğrenci için aynı değer olabilir, bizim ilk tabloda, düşünmek (şimdi biz sınıf adını değiştirmek olsaydı., biz. tüm kayıtları güncellemek gerekiyor çoğaltılamaz veri içermez görebilirsiniz bizim normalize biçimi, sadece class_id arasında class_name güncelleyebilirsiniz)