SQL-ből ERD

Egy vagy több beilleszthető CREATE TABLE utasítást, és ez az eszköz megrajzolja a sémát: minden tábla entitássá válik, az oszlopok PK / FK címkével ellátott attribútumokká, a FOREIGN KEY megszorítások pedig kapcsolatvonalakká. Ha egy séma nem deklarál idegen kulcsokat, az olyan oszlopok, mint a customer_id, következtetett kapcsolatokként kínálkoznak, amelyeket megtarthat vagy elvethet. A Mermaid erDiagram forrása másolható, vagy a diagram SVG / PNG formátumban exportálható. Minden helyben fut — a séma soha nem hagyja el a böngészőt.
Mi az ERD? Az ERD az Entitás-kapcsolati diagram rövidítése — egy kép arról, hogyan van szervezve egy adatbázis. Háromféle alakzatból áll: entitások (a táblák, dobozokként rajzolva), attribútumok (a doboz belsejében felsorolt oszlopok) és kapcsolatok (a két dobozt összekötő vonalak). A módszer Peter Chen 1976-os entitás-kapcsolati modelljéből származik, és még mindig a szokásos módja a séma vázlatolásának bármilyen DDL írása előtt: egy jó ERD első pillantásra megmutatja, mely táblák léteznek, mit tárol az egyes sorok, és hogyan mutat egy sor egyik táblában egy másik tábla sorára — olyanok számára is olvasható, akik nem akarnak SQL-t olvasni.
Entity — one thing the system keeps data about, such as a customer, an order or a product. In a relational database each entity becomes one table.
Attribute — one fact recorded for every row of an entity, such as a name, a price or a date. Each attribute becomes one column.
Relationship — an association between two entities, implemented by a foreign key: the child table stores the parent’s key, and the diagram turns that column into a line.
PK / FK — a primary key (PK) identifies each row of a table uniquely; a foreign key (FK) holds the primary key of another table and is what a relationship line represents.
Kardinalitás — hány sor engedélyezett a vonal mindkét végén: egy-az-egyhez, egy-a-többhöz vagy sok-a-sokhoz. Ez az oldal a Mermaid által használt varjúlábas jelölést rajzolja (részletek: a jelmagyarázatot a 4. lépésnél).
Jelölésrendszerek: a Chen-jelölés rombuszokat használ kapcsolatokhoz és ellipszisokat attribútumokhoz; a varjúlábas jelölés (amit itt rajzolunk) az entitást egyetlen dobozba tömöríti, az attribútumokat a doboz belsejébe sorolja, és a vonal „sok” végét háromágú “varjúlábbal” jelöli; az UML osztálydiagramok ugyanazt a szerkezetet osztályokkal, műveletekkel és multiplicitásokkal írják le. Mindhárom ugyanazt mondja a sémáról — csak a jelek különböznek.
1 — Táblaséma (DDL)
2 — Entitások
Rajzolás Táblázat Oszlopok Kapcsolatok Attribútumok
Még nincs elemzett tábla.
3 — Kapcsolatok
Használat Gyermek (sok) Actions Szülő (egy) Forrás Actions
Még nincsenek kapcsolatok.
Kapcsolat kézi hozzáadása:
→
4 — Diagram
Mermaid erDiagram forrás
Hogyan olvashatók a kapcsolatok: a gyermek táblán lévő idegen kulcs létrehozza a PARENT ||--o{ CHILD kapcsolatot. Az entitások és attribútumok megtartják a DDL-nevüket, a Mermaid által nem rajzolható karakterek (szóközök, kötőjelek) aláhúzásjelként jelennek meg. A típusok az alaptípusukra egyszerűsödnek (DECIMAL(10,2) → DECIMAL), mert a diagramszintaxis nem vesz paramétereket.
Kardinalitási jelölések (varjúláb): a entitás melletti jel azt mutatja, hány sor állhat a vonal adott végén — || pontosan egy, o| nulla vagy egy, o{ nulla vagy több, |{ egy vagy több. Így a PARENT ||--o{ CHILD azt jelenti: “egy szülősor több, nulla, egy vagy több gyermeksorra hivatkozhat, és minden gyermeksor pontosan egy szülősorra mutat” — a klasszikus egy-a-többhöz kapcsolat.
Many-to-many is never a single line: a product can appear in many orders and an order can hold many products, so the schema stores a join table (order_items) whose two foreign keys become two one-to-many lines. Read through that middle box and the many-to-many is there.