SQL σε ERD — Οπτικοποίηση σχημάτων CREATE TABLE ως διαγραμμάτων οντοτήτων-σχέσεων
SQL σε ERD
Επικόλληση μίας ή περισσότερων δηλώσεων CREATE TABLE και το εργαλείο σχεδιάζει το σχήμα: κάθε πίνακας γίνεται οντότητα, οι στήλες γίνονται χαρακτηριστικά με ετικέτες PK / FK, και οι περιορισμοί FOREIGN KEY γίνονται γραμμές σχέσεων. Όταν ένα σχήμα δεν δηλώνει ξένα κλειδιά, στήλες όπως η customer_id προτείνονται ως συμπεραινόμενες σχέσεις που μπορούν να διατηρηθούν ή να αφαιρεθούν. Αντιγραφή του κώδικα Mermaid erDiagram ή εξαγωγή του διαγράμματος ως SVG / PNG. Όλα εκτελούνται τοπικά — κανένα σχήμα δεν φεύγει ποτέ από το πρόγραμμα περιήγησης.
Τι είναι το ERD; Το ERD σημαίνει Entity Relationship Diagram (διάγραμμα οντοτήτων-σχέσεων) — μια εικόνα του τρόπου οργάνωσης μιας βάσης δεδομένων. Σχεδιάζεται από τρία είδη σχημάτων: οντότητες (οι πίνακες, ως κουτιά), χαρακτηριστικά (οι στήλες που αναγράφονται μέσα σε ένα κουτί) και σχέσεις (οι γραμμές που ενώνουν δύο κουτιά). Η τεχνική προέρχεται από το μοντέλο οντοτήτων-σχέσεων του Peter Chen το 1976 και εξακολουθεί να είναι ο συνήθης τρόπος σχεδίασης σχήματος πριν γραφτεί οποιοδήποτε DDL: ένα καλό ERD δείχνει με μια ματιά ποιοι πίνακες υπάρχουν, τι αποθηκεύει κάθε γραμμή, και πώς μια γραμμή σε έναν πίνακα δείχνει σε μια γραμμή σε άλλον — αναγνώσιμο από ανθρώπους που δεν θέλουν να διαβάζουν SQL.
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.
Πληθικότητα — πόσες γραμμές επιτρέπονται σε κάθε άκρο μιας γραμμής: ένα-προς-ένα, ένα-προς-πολλά ή πολλά-προς-πολλά. Η σελίδα σχεδιάζει τον συμβολισμό πόδι κόρακα που χρησιμοποιεί το Mermaid (βλ. τον υπόμνημα στο βήμα 4).
Συμβολισμοί: ο συμβολισμός Chen χρησιμοποιεί ρόμβους για σχέσεις και ελλείψεις για χαρακτηριστικά· ο συμβολισμός πόδι κόρακα (αυτός που σχεδιάζεται εδώ) συμπυκνώνει μια οντότητα σε ένα κουτί με τα χαρακτηριστικά της μέσα και σημαδεύει το πολλαπλό άκρο μιας γραμμής με ένα «πόδι κόρακα» τριών άκρων· τα διαγράμματα κλάσεων UML περιγράφουν την ίδια δομή με κλάσεις, λειτουργίες και πολλαπλότητες. Και οι τρεις λένε το ίδιο για το σχήμα — διαφέρουν μόνο τα σύμβολα.
1 — Σχήμα πίνακα (DDL)
2 — Οντότητες
Σχεδίαση
Πίνακας
Στήλες
Σχέσεις
Χαρακτηριστικά
Δεν έχουν αναλυθεί ακόμη πίνακες.
3 — Σχέσεις
Χρήση
Παιδί (πολλά)
Actions
Γονέας (ένα)
Πηγή
Actions
Δεν υπάρχουν ακόμη σχέσεις.
Προσθήκη σχέσης με το χέρι:
→
4 — Διάγραμμα
Πηγαίος κώδικας Mermaid erDiagram
Πώς διαβάζονται οι σχέσεις: ένα ξένο κλειδί στον πίνακα παιδί παράγει PARENT ||--o{ CHILD. Οι οντότητες και τα χαρακτηριστικά διατηρούν τα ονόματα του DDL, με χαρακτήρες που το Mermaid δεν μπορεί να σχεδιάσει (κενά, παύλες) να εμφανίζονται ως υπογραμμίσεις. Οι τύποι απλοποιούνται στη βασική τους λέξη (DECIMAL(10,2) → DECIMAL), επειδή η σύνταξη του διαγράμματος δεν δέχεται παραμέτρους.
Σύμβολα πληθικότητας (πόδι κόρακα): το σύμβολο δίπλα σε μια οντότητα δείχνει πόσες γραμμές μπορούν να βρίσκονται σε εκείνο το άκρο της γραμμής — || ακριβώς μία, o| μηδέν ή μία, o{ μηδέν ή πολλές, |{ μία ή πολλές. Έτσι το PARENT ||--o{ CHILD διαβάζεται ως «μία γραμμή γονέα μπορεί να αναφέρεται από μηδέν, μία ή πολλές γραμμές παιδιών, και κάθε γραμμή παιδιού δείχνει ακριβώς σε έναν γονέα» — η κλασική σύνδεση ένα-προς-πολλά.
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.