2010-08-05 34 views
8

Bu ERD'yi 5. normal biçimde nasıl alacağımı gösterebilir misiniz? Dün yaptığımız bir sınıf ödevi yaptık ve gerçek bir müşteri gelip ihtiyacını bize açıkladı. Grubum bu modelle geldi. Bir adım daha atmaya çalışıyorum ve 5. Gelecek hafta daha iyi anlayabileceğimiz bir başka grup daha yapıyor olacağız ERD 5nf'de olması gereken şey nerede başlayacağımı bilmiyorum ve kitap bana geçmiyor. Bana yardım eder misiniz? Erd Model http://img534.imageshack.us/img534/2118/capturekk.jpgVeritabanı tasarımı normalleştirme yardımı gerekli (5nf)

Yeni bilgiler "Sahte Müşteriler gerekiyor"

istemci eldiven ve pi evcil hayvanlar vb gibi tıbbi ürün onu, sipariş 2 bölüm "Lab 1, Lab 2" .. bölümler vardır modelinin envanter ürün kataloğu, envanter ürün katalogu, envanter ilanı, bulunan ürünler ve daha fazlası hangi ürünleri sunuyor?

madde sıralanır o açıkladı yolu bir birey ona gider olmasıdır ve o da kişi kişi isim ve fatura ne maliyet merkezi dan ne laboratuar aşağı yazıyor malzemeleri için sorar. ama o da tarihte satın alınan ve ne stokta ne var ve ne satın alınmalıdır izlemek istiyor. O da bazı kullanıcılar iyi fiyat olmayabilir ve o da çok o parçaya istediği fiyatları ile postalarda bazı katalogları aldığı belirli bir satıcıdan öğeleri istediğiniz bir örnek verdi.

Eğer onun iç karışıklığı varsa, ancak bu tamamen bellekten ötürü özür dilerim.

+0

Bunun 5NF'de olmadığını düşünmenizi sağlayan bir şey var mı? –

+0

Bu formların Wikipedia'daki tanımlarını incelemek, bunun tartışmalı bir şekilde ilgiyle takip etmeme rağmen, onun olduğundan şüphelenmemi sağlıyor. –

+0

Lütfen bu modelin arkasındaki iş mantığını açıklığa kavuşturun: bu bir satın alma takip sistemi, müşterinin koyduğu bir tedarikçi takip emrinin olağan halinden ziyade, müşterinin çeşitli tedarikçileriyle birlikte verdikleri siparişlerin görünümüdür. – APC

cevap

4

Boynumun dışına çıkacağım ve mevcut şemanın 5NF için herhangi bir uygunluğa sahip olmadığını söyleyeceğim. wikipedia dan bir alıntı alarak, en 4NF tabloları şimdiden 5NF uygun diyor ki: Sadece nadir durumlarda

Kullanımı bir 4NF tablo 5NF uygun değildir. Bu , gerçek dünya kısıtlamasının 4NF tablosundaki öznitelik değerlerinin geçerli kombinasyonlarının geçerli kombinasyonlarının bu tablonun yapısında örtülü olmadığı durumlardır. Bu tür bir tablo 5NF normalize değilse, tablo içindeki verinin mantıksal tutarlılığını muhafaza yükü bunu için ekleme, silme ve güncellemeler sorumlu uygulama tarafından kısmen gerçekleştirilmelidir; ve tablodaki verilerin tutarlı olmayacağına dair artan bir risk vardır. Buna karşılık, 5NF tasarımı, bu tür tutarsızlıklar olasılığını hariç tutar. http://en.wikipedia.org/wiki/Fifth_normal_form

Belki amaç veritabanı 5NF yapmak, ancak 5NF kıyasla yapı var anlamak ve zaten 5NF kalmış olabilir niçin savunma yapmanı değil.

Güncelleme: Yorumlardan bir çeşit fikir birliği okuması, tasarımınızın 5NF'de olup olmadığı, tasarımdan mı yoksa bir önceki normalizasyon geçişinden kaynaklanan kazadan kaynaklanıyor olabilir.

+0

Ama daha da geliştirilebilir, gerçekten bilmek istediğim şey, bu şemayı delirdiğimizde gruba liderlik ettim ve temel olarak ERD'yi oluşturan girdimdi, ancak çoğunlukla kazayla oldu ve daha önce sahip olduğumuz bazı slaytlara atıfta bulunmaktaydı sınıfta gözden geçirilmiştir. –

+0

Tamam, benim asıl sorum, bunu farklı bir şekilde yapardınız mı? eğer öyleyse bunu sağlam bir 5nf tasarımı yapmak için ne yaparsınız. –

+0

Bana yeterince sağlam görünüyor - ilgili verileri (yani, özniteliklerine sahip bir varlık) bir araya getirdiğiniz için, çoktan çoğunu paylaştınız. 5NF'yi göstermek için daha karmaşık bir sonuca ihtiyacın olduğunu düşünüyorum. Viki girişine bakıldığında, gösterilen örnek oldukça spesifikti. Mevcut tasarımın iyi olduğunu düşünüyorum - eğer değilse, o zaman öğretim görevlisi herhangi bir eksikliğe işaret edebilir. –

1

Yasal Uyarı: İş mantığınızı bilmeden, aşağıdaki önerilerin bazılarında tamamen yanlış olabilir.

Veritabanı şemasında gördüğünüz birkaç şey var.

  1. Maliyet merkez tablonuz hem bir arama hem de ilişki tablosu olarak görünüyor. Yani, belirli bir miktardaki maliyet merkeziniz varsa, örneğin 5 tane 1000 kullanıcısı varsa, bu tabloda tüm maliyet merkezi adını depolayan 5000 kayıt olacaktır (bu, maliyet merkezi atamasının her kullanıcı için benzersiz olmadığını varsayar). Kullanıcı ilişkilendirmesini, kendi PK ve FK'ler için costcenterId ve userId olan ayrı bir tabloya bölmek isteyebilirsiniz.
  2. Bir ürün için stok miktarını depoladığımı varsaydığım envanter tablosunun, açıklamanın ne anlama geldiğinden emin olmak için yalnızca bir miktar ürüne ihtiyacı vardır. Açıklama, her bir öğe envanterine özgü değilse, bunu kendi arama tablosuna bölmek ve envanter tablosuna göndermek isteyebilirsiniz.
  3. Satıcı tablosunda "lineQuantity" yı saklıyorsunuz. Bu sütun ne içindir? Bir şekilde belirli bir siparişle (satın alınan ürünün miktarı?) Ilgili olduğu anlaşılıyorsa, bunu kendi masasına bölmek ve satıcıyla değil siparişle ilişkilendirmek isteyeceksiniz. tam olarak hangi satırı bilmeden? Bu öneri tamamen yanlış olabilir.
  4. Son öneri sınıfınızın bu kadar önemli olup olmadığından emin değil. Tüm veri türlerini CHAR (10) olarak tanımlayacaksınız, bunları veritabanında kullanacağınız gerçek veri türleri olarak değiştirmek isteyebilirsiniz.
İlgili konular