Veritabanı normalleştirme temelleri Access 2000'in açıklaması

Makale çevirileri Makale çevirileri
Makale numarası: 209534 - Bu makalenin geçerli olduğu ürünleri görün.
Acemi kullanıcı: tek kullanıcılı bilgisayarlarda kullanıcı arabirimi hakkında bilgi gerektirir.

Bu makalenin Microsoft Access 97 sürümü için bkz: 100139.
Bu makalenin Microsoft Access 2002 sürümü için bkz: 283878.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu makalede, yeni başlayanlar için veritabanı normalleştirme terminolojisi açıklanmaktadır. İlişkisel veritabanının tasarımı üzerine bir tartışmada bu terminolojinin temel olarak anlaşılmış olması işinizi kolaylaştıracaktır.

Not: Microsoft sunduğu Web yayını, veritabanı normalleştirme temelleri açıklanır. Bu Web Yayınını görüntülemek için, aşağıdaki Microsoft Web sitesini ziyaret edin:
http://support.microsoft.com/servicedesks/webcasts/wc060600/wc060600.asp?fr=1
Access'in önceki bir sürümünde bu konu hakkında ek bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
100139Veritabanı normalleştirme temelleri

Daha fazla bilgi

Normalleştirmenin Açıklaması

Normalleştirme, bir veritabanındaki verileri düzenleme işlemi ' dir. Buna, tablolar oluşturmak ve bu tablolar arasında hem verileri koruyacak hem de artıklığı ve tutarsız bağımlılığı ortadan kaldırarak veritabanını daha esnek duruma getirecek biçimde tasarlanmış kurallara göre ilişkiler oluşturmak da dahildir.

Artık veriler disk alanını boşa kullanır ve bakım sorunları oluşturur. Birden çok konumda bulunan verilerin değiştirilmesi gerekirse, bu veriler tüm konumlarda tam olarak aynı şekilde değiştirilmelidir. Müşteri adresi bilgileri yalnızca Müşteriler tablosunda saklanıyorsa ve veritabanında başka bir konumda yoksa, bir müşteri adresi değişikliği çok kolay gerçekleştirilebilir.

"Tutarsız bağımlılık" nedir? Bir kullanıcı belirli bir müşterinin adresi için Müşteriler tablosuna bakabilir, ancak bu müşteriyle görüşen çalışanın maaşını öğrenmek için bu tabloya bakması mantıklı değildir. Çalışanın maaşı, çalışanın kendisiyle ilişkili ya da buna bağımlıdır ve bu nedenle de Çalışanlar tablosuna taşınmalıdır. Tutarsız bağımlılıklar verilere erişimi zorlaştırabilir, çünkü verileri bulma yolu eksik veya bozuk olabilir.

Veritabanı normalleştirmesi için birkaç kural bulunmaktadır. Her kurala "normal form" adı verilir İlk kural kullanılıyorsa, veritabanının "ilk normal formda" olduğu söylenir İlk üç kural kullanılıyorsa, veritabanı "üçüncü normal formda" olarak nitelendirilir Başka normalleştirme düzeyleri de kullanılabilmekle birlikte, çoğu uygulama için en yüksek düzey üçüncü normal formdur.

Çoğu kural ve belirtimde olduğu gibi, gerçek dünyada karşılaşılan senaryolarda her zaman mükemmel bir uyumluluk sağlanamaz. Genel olarak, normalleştirme için ek tablolar gerekir ve bazı müşteriler bunun ek yük getirdiğini düşünmektedir. Normalleştirmenin ilk üç kuralından birini ihlal etmeye karar verirseniz, uygulamanızın artık veriler ve tutarsız bağımlılıklar gibi oluşabilecek sorunlara karşı hazır olmasını sağlayın.

Aşağıdaki açıklamalarda örnekler yer almaktadır.

İlk Normal Form

  • Aynı tablodaki yinelenen grupları kaldırın.
  • Her bir ilgili veri kümesi için ayrı bir tablo oluşturun.
  • Her bir ilgili veri kümesini bir birincil anahtarla tanımlayın.
Benzer verileri saklamak için aynı tabloda birden çok alan kullanmayın. Örneğin, iki olası kaynaktan alınabilecek bir stok öğesini izlemek için, stok kaydı, Satıcı Kodu 1 ve Satıcı Kodu 2 alanlarını içerebilir.

Üçüncü bir satıcı eklerseniz ne olur? Bir alan eklemek çözüm değildir; programda ve tabloda değişiklikler yapılmasını gerektirir ve satıcı sayısını dinamik hale getirmez. Bunun yerine, tüm sayıcı bilgilerini Satıcılar adlı ayrı bir tabloya yerleştirin, sonra da stoğu bir öğe numarası anahtarıyla satıcılara veya satıcıları bir satıcı kodu anahtarıyla stoğa bağlayın.

İkinci Normal Form

  • Birden çok kayıt için geçerli olan değer kümeleri için ayrı tablolar oluşturun.
  • Bu tabloları bir yabancı anahtarla ilişkilendirin.
Kayıtlar bir tablonun birincil anahtarı (gerekirse bir bileşik anahtar) dışında bir öğeye bağımlı olmamalıdır. Örneğin bir muhasebe sistemindeki müşteri adresini ele alalım. Adresin Müşteriler tablosunun yanı sıra Siparişler, Nakliye, Faturalar, Alacak Hesapları ve Topluluklar tablolarında da kullanılması gerekir. Müşterinin adresini bu tabloların her birinde ayrı bir girdi olarak saklamak yerine, Müşteriler tablosunda veya ayrı bir Adresler tablosunda olmak üzere tek bir konumda saklayın.

Üçüncü Normal Form

  • Anahtara bağımlı olmayan alanları kaldırın.
Bir kayıt anahtarının parçası olmayan kayıt değerleri tabloda bulunmak zorunda değildir. Genel olarak, bir alan grubu içeriğinin tabloda birden çok kayda uygulanabileceği durumlarda, bu alanları ayrı bir tabloya yerleştirebilirsiniz.

Örneğin bir Çalışan İşe Alma tablosunda, bir adayın bitirdiği üniversitenin adı ve adresi bulunabilir. Ancak grup postaları için tüm üniversitelerin listesi gerekir. Üniversite bilgileri Adaylar tablosunda saklanıyorsa, geçerli adaylar olmayan üniversiteler listelenemez. Ayrı bir Üniversiteler tablosu oluşturup bu tabloyu bir üniversite kodu anahtarıyla Adaylar tablosuna bağlayın.

Her EXCEPTION: üçüncü normal form için teorik olarak uygun, ancak ne zaman pratik değildir. Bir Müşteriler tablonuz varsa ve tüm olası alanlar arası bağımlılıkları kaldırmak isterseniz şehirler, posta kodları, satış temsilcileri, müşteri sınıfları ve birden çok kayıtta yinelenebilecek tüm diğer öğeler için ayrı tablolar oluşturmalısınız. Teorik olarak, normalleştirme yapılması doğrudur. Ancak çok sayıda küçük tablo nedeniyle performans düşebilir veya açık dosya ve bellek özellikleri yetersiz kalabilir.

Üçüncü normal formun yalnızca sık sık değişen verilere uygulanması daha uygun olabilir. Bazı bağımlı alanlar kalacaksa, uygulamanızı kullanıcıdan herhangi bir alan değiştiğinde tüm ilgili alanları doğrulamasını isteyecek biçimde tasarlayın.

Diğer normalleştirme formları

Boyce Codd Normal Form (BCNF) olarak da bilinir, dördüncü normal form ve beşinci normal form var, ancak nadiren kullanışlı tasarımında kabul edilir. Bu kuralları yoksaymak mükemmel veritabanı tasarımından uzaklaşılmasına neden olacaktır, ancak işlevselliği etkilememelidir.

Bir örnek tabloyu normalleştirme

Bu adımlarda, bir kurgusal bir öğrenci tablosunu normalleştirme işlemi gösterilmektedir.
  1. Normalleştirilmemiş tablo:
    Bu tabloyu kapaBu tabloyu aç
    Öğrenci#DanışmanOda NoDers1Ders2Ders3
    1022Güneş412101-07143 01159 02
    4123Etikan216201-01211 02214 01
  2. Ilk normal form: Hiçbir yinelenen gruplar

    Tablolar yalnızca iki boyutlu olmalıdır. Aynı öğrenci birden çok ders alacağı için, bu dersler ayrı bir tabloda listelenmelidir. Yukarıdaki kayıtlardaki Ders1, Ders2 ve Ders3 alanları bir tasarım sorununun göstergesidir.

    Elektronik tablolar genelde üçüncü boyutu kullanır, ancak tablolar kullanmamalıdır. Bu sorun bir-çok ilişkide de görülür, bir tarafını ve çok tarafını aynı tabloya yerleştirmeyin. Bunun yerine, ilk normal formda yinelenen grubu (Ders#) aşağıdaki gösterildiği gibi kaldırarak başka bir tablo oluşturun:
    Bu tabloyu kapaBu tabloyu aç
    Öğrenci#DanışmanOda NoDers#
    1022Güneş412101-07
    1022Güneş412143 01
    1022Güneş412159 02
    4123Etikan216201-01
    4123Etikan216211 02
    4123Etikan216214 01
  3. Ikinci normal form: Gereksiz veri'i kaldırmak

    Yukarıdaki tabloda her Öğrenci# değeri için birden çok Ders# değerini not alın. Ders# öğesi işlevsel olarak Öğrenci# öğesine (birincil anahtar) bağımlı olmadığı için, bu ilişki ikinci normal formda değildir.

    Aşağıdaki iki tabloda ikinci normal form gösterilmektedir:

    Öğrenciler

    Bu tabloyu kapaBu tabloyu aç
    Öğrenci#DanışmanOda No
    1022Güneş412
    4123Etikan216

    Kayıt

    Bu tabloyu kapaBu tabloyu aç
    Öğrenci#Ders#
    1022101-07
    1022143 01
    1022159 02
    4123201-01
    4123211 02
    4123214 01
  4. Üçüncü normal form: Veri kaldırmak anahtarının açık bağımlı.

    Son örnekte, Oda No öğesi (danışmanın oda numarası) Danışman özniteliğine işlevsel olarak bağımlıdır. Çözüm, bu özniteliği aşağıda gösterildiği gibi Öğrenciler tablosundan Fakülte tablosuna taşımaktır:

    Öğrenciler

    Bu tabloyu kapaBu tabloyu aç
    Öğrenci#Danışman
    1022Güneş
    4123Etikan

    Fakülte

    Bu tabloyu kapaBu tabloyu aç
    AdOdaBölüm
    Güneş41242
    Etikan21642

Referanslar

Ahlo, Randy Brown ve Peter Colclough Hamilton M.'i tıklatın. FoxPro 2: BIR Geliştirici Kılavuzu: endüstriyel güç programlama için Uzman Kılavuzu. John Wiley & Sons, Ekim 1991. Sayfaları 220-225.

Jennings, Roger'i tıklatın. 1.1 Windows için Access kullanma. Temmuz 1993 Que Corporation. Sayfaları 799-800.

Özellikler

Makale numarası: 209534 - Last Review: 6 Ağustos 2004 Cuma - Gözden geçirme: 2.2
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Access 2000 Standard Edition
Anahtar Kelimeler: 
kbmt kbdatabase kbdesign kbinfo kbusage KB209534 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:209534

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com