2012-02-14 19 views
5

Dla projektu szkolnego musimy stworzyć własną bazę danych. Zdecydowałem się stworzyć bazę danych do zarządzania zasobami elektronicznymi. Jako wymaganie, musieliśmy stworzyć diagram ER, a następnie z tego schematu wyprowadzić schemat bazy danych. Na nieszczęście profesor uważa, że ​​stworzony przeze mnie diagram można uprościć, a encja "Część" jest niepotrzebna.Uproszczenie schematu/schematu bazy danych ER

This to diagram, który wymyśliłem, a here jest schematem pochodnym.

Jeśli usunę element Part, to aby jednostka Obwodu mogła "użyć" dowolnej liczby jakiejkolwiek części i każda część była powiązana z dowolnym obwodem, musiałbym mieć oddzielne M-do-N zależność między każdym typem komponentu a obwodem. Każda z tych relacji generuje nową tabelę. To z pewnością przekroczyłoby maksymalną dopuszczalną liczbę tabel dozwolonych dla projektu.

Jeśli profesor wyraźnie wspomniał o Part było niepotrzebne, to musi istnieć jakiś sposób, aby go usunąć, co skutkuje prostszym schematem i schematem ER - ale nie widzę, co to jest.

Może możecie zobaczyć, co to jest i dać mi wskazówkę?

EDYCJA: Dan W miał świetną propozycję. Mogłem wyeliminować tę część, nadając poszczególnym typom części (kondensator, rezystor itp.) Własne klucze. Następnie wewnątrz części use, włącz obce klucze do tych komponentów. Musiałbym założyć, że każdy wpis w tabeli byłby powiązany tylko z jedną częścią, reszta była pusta. Here's wynikowy schemat. Ten schemat powinien działać dobrze. Ale teraz muszę dokładnie określić, jakie modyfikacje schematu ER będą zgodne z tym schematem.

EDIT2: Doszedłem do wniosku, że związek, którego szukam, jest n-ary. Zgodnie z kilkoma źródłami, aby przekonwertować z n-ary na schemat, należy uwzględnić klucz podstawowy każdej relacji typu jednostki uczestniczącej jako klucz obcy. Następnie dodaj proste atrybuty. This jest tym, co wymyśliłem.

+1

Nie można zmienić PartID na ResistorID, CapicatorID itd., A następnie dodać te kolumny do tabeli Uses_Part? –

+0

Dobra sugestia. Myślałem o tym wcześniej, ale nie jestem do końca pewien, jak to przedstawić na diagramie ER. To może być związek n-ary, ale muszę to zobaczyć. – Schmidget

+2

Bardzo podoba mi się twój projekt. Nic nie zmienię. Istnieją różne rodzaje części, z różnymi atrybutami i masz osobne elementy dla każdego z nich (rezystor, kondensator itp.). Jednostka cząstkowa jest potrzebna jako jednostka supertypowa tych. Jak mówisz (poprawnie) do użycia w relacji M: N. –

Odpowiedz

1

Masz ścisłą maksymalną liczbę tabel (projekt fizyczny), ale czy jesteś ograniczony w swoim diagramie ER do tej liczby elementów (projekt logiczny)? Wszystkie twoje jednostki dla części - rezystory, tranzystory, kondensatory i układ ogólny IC - mogą być przechowywane w jednej tabeli części z wszystkimi atrybutami części, rezystorów, tranzystorów, kondensatorów i ogólnego układu scalonego jako kolumn zerowalnych. Jeśli atrybut jest ważny dla wszystkich typów, nie jest on zerowy. Dodaj kolejną kolumnę w tabeli części, która identyfikuje typ części (rezystor, tranzystor, kondensator lub układ scalony), chociaż masz już kolumnę typu we wszystkich elementach, które mogą również służyć do tego.

tabela części w schemacie jest teraz:

PartID (PK) 
Quantity 
Drawer 
Part Type 
Value 
Tolerance 
Subtype 
Power Rating 
Voltage 
Term_Style 
Diam 
Height 
Lead_Space 
Name 
Case 
Polarity 
Use 
V_CE 
P_D 
I_C 
H_FE 
Package 
Pins 
Description 

i upuść rezystor, kondensator, tranzystorowe i ogólne IC tabel w schemacie. Pozostaw te elementy na diagramie ER, ponieważ pokazuje, które atrybuty w tabeli Części są wymagane (nie powinny być puste) dla każdego typu części.