Du "ritar" inte "enhetsrelationer i databaser direkt; Du * modellerar * dem med ett visuellt verktyg (som ett ritningsprogram eller dedikerad databasdesignprogramvara) och översätter sedan den modellen till databasens schema (den faktiska databasstrukturen). Den visuella representationen kallas ett enhetsrelationsdiagram (ERD).
Så här representerar du enhetsrelationer i ERD:er, tillsammans med motsvarande databasimplementering:
1. Enheter:
* Representation: Rektanglar. Varje rektangel representerar en enhet (en sak eller ett koncept) som "kund", "ordning", "produkt."
* Databasimplementering: Dessa blir tabeller i din databas. Varje tabell har kolumner (attribut) som representerar enhetens egenskaper.
Exempel:
`` `
+---------++-----------+
| Kund | | Beställning |
+---------++-----------+
| Custid | | Orderid |
| Namn | | Custid |
| Adress | | BESTÄLLNINGSDATE |
+---------++-----------+
`` `
2. Attribut:
* Representation: Ovaler anslutna till rektangeln som representerar enheten. Dessa beskriver enhetens egenskaper (t.ex. "namn", "adress", "OrderId", "OrderDate"). Du kan också ange datatyper (t.ex. `int`,` varchar`, `datum ').
* Databasimplementering: Dessa blir kolumner i motsvarande databastabeller. Datatypen i de ovala kartorna till kolumnens datatyp i databasen.
3. Relationer:
* Representation: Linjer som förbinder enhetens rektanglar. Den typ av linje och tillhörande symboler indikerar vilken typ av relation:
* en-till-en (1:1): En enda instans av en enhet är relaterad till högst en instans av en annan enhet (t.ex. en person och deras pass). Ofta representerad med en linje med en "1" i varje ände eller ibland en speciell notation som en linje som slutar på en diamant på ensidan.
* en-till-många (1:m) eller många-till-en (M:1): Ett exempel på en enhet är relaterad till många fall av en annan enhet (t.ex. kan en kund ha många beställningar). Representerad av en linje med "1" i ena änden och "M" (eller Crows Foot Notation - en tredelad symbol) på den andra.
* många-till-många (m:n): Många fall av en enhet är relaterade till många fall av en annan enhet (t.ex. kan många studenter ta många kurser). Representerad av en linje med "M" i båda ändarna. Detta kräver vanligtvis ett korsningstabell (eller brostabell) i databasimplementeringen.
Exempel:En-till-många (kund till beställningar)
`` `
+---------+-------------+
| Kund | |
+---------+-------------+
| Custid | 1 |
| Namn | |
| Adress | ------------- | M
+ ---------+ |
|
V
+-----------+
| Beställning |
+-----------+
| Orderid |
| Custid |
| BESTÄLLNINGSDATE |
+-----------+
`` `
Exempel:Många-till-många (studenter och kurser)
`` `
+---------++-----------+
| Student | | Kurs |
+---------++-----------+
| Studid | -------- M | Kurs |
| Namn | | | Namn |
+ ---------+ | +-----------+
|
| M -------- 1
V
+-------------------+
| Studentkurs |
+-------------------+
| Studid |
| Kurs |
+-------------------+
`` `
4. Kardinalitet och deltagande:
* Kardinalitet: Antalet fall av en enhet som kan relateras till en annan (representerad av "1" eller "m").
* Deltagande: Huruvida deltagande i förhållandet är obligatoriskt eller valfritt (anges i vissa ERD -notationer med olika symboler på linjerna, till exempel en cirkel för valfritt).
Databasimplementering (SQL -exempel):
För exemplet för kundorder (1:m) skulle du skapa två tabeller:
`` `SQL
Skapa tabellkund (
Custid int primär nyckel,
Namn Varchar (255),
Adress Varchar (255)
);
Skapa tabellordning (
OrderID int primärnyckel,
Custid int,
Beställningsdatum,
Foreign Key (CustId) Referenser Kund (Custid)
);
`` `
Den utländska nyckelens begränsning i tabellen "Order" upprätthåller förhållandet. Varje "OrderId" har en "custid", och den "custid" måste existera i tabellen "kund".
För det många-till-många exemplet skulle du ha tre tabeller (studenter, kurser och studentkurs). Tabellen "Student Course" är korsningen/bridge -tabellen som länkar studenter till kurser.
Sammanfattningsvis skapar du ERD visuellt för att utforma din databas, visa enheter, attribut och relationer. Sedan översätter du den visuella modellen till det faktiska databasschemat med SQL (eller ett annat databasspråk) för att skapa tabeller, definiera kolumner och ställa in begränsningar för att upprätthålla relationerna. Många databasdesignverktyg kommer att generera SQL för dig direkt från ERD.