Să presupunem că am un tabel „Tranzacții” care are o coloană „Customer ID” (cheie străină) și un tabel pentru clienți cu „ID” (cheie principală) . Cum arăt relația dintre cele două tabele și arată că „ID-ul clientului” este cheia externă a tabelului „Tranzacții”, care este cheia principală în tabelul „Client”?
Am cercetat această întrebare pe Google și am verificat acest forum pentru interogarea mea, dar nu am putut găsi un exemplu exact cu o diagramă care să răspundă la întrebarea mea.
Vă rog să-mi explicați, dacă este posibil, cu o diagramă.
Comentarii
- Am găsit următorul link care spune că putem afișa o cheie străină doar într-o diagramă ER conceptuală. lucidchart.com / pages / ER-diagram-symbol-and-meaning . Vă rog să-mi spuneți cum o pot face.
- Am ‘ am învățat la școală (!!) că cheile primare pot fi reprezentate cu o subliniere dreaptă sub atribut (e) și cheie externă (e) cu o linie punctată
- Bine. Dar cum arăt că cheia externă într-una tabelul este același lucru cu cheia principală a unui alt tabel ale cărui nume sunt diferite în ta-ul lor respectiv bles (așa cum se cere în exemplul din întrebarea despre ‘ ID ‘ și ‘ Client ID ‘)?
- Întrucât această întrebare se referă la o notație „No-Chen“ (deoarece solicită afișarea relațiilor fk), am deschis o nouă întrebare explicită pentru un model ER în notația Chen la dba.stackexchange.com/questions/271264/…
Răspuns
Diagramele ER au fost utilizate inițial numai pentru a reprezenta modelul ER. Modelul ER nu folosește chei străine pentru a reprezenta relațiile. Folosește linii între cutii. Liniile au un fel de indicator pentru cardinalitate la ambele capete sau la ambele capete. Uneori, o relație va fi indicată separat de un diamant.
Astăzi, mai mult de jumătate din diagramele ER care plutesc în jurul lor sunt cu adevărat diagrame ale unui model relațional și nu ale unui model ER. Un model relațional are cheile străine incluse în tabele și acestea servesc la implementarea relațiilor pe care modelul ER le identifică. Și un model relațional va avea un tabel suplimentar, adesea numit „tabel de joncțiune” între două tabele de entități care sunt legate printr-o relație de mai mulți la mulți. Acest tabel de joncțiuni conține două sau mai multe chei străine.
Există multe modalități de a reprezenta un model relațional. Poate că cel mai simplu este „Diagrama relației” pe care MS Access o poate produce dintr-o bază de date completată. Acest lucru va fi destul de complet, dacă constructorul bazei de date a identificat cheile străine.
Există multe instrumente care sunt mai sofisticate decât MS Access pentru realizarea de diagrame la scară mai mare. Unele dintre acestea sunt utilizate înainte de a construi baza de date. Unele sunt folosite după.
Comentarii
- În prezent, fac doar o diagramă pe o hârtie. Puteți arăta cum pot fi prezentate cele două tabele de mai sus (în întrebare) într-o diagramă a relației?
- Dacă veți căuta pe ” Diagrama ER Clienți Tranzacții ” veți obține o mulțime de imagini care arată diferite moduri de a face ceea ce doriți.
Răspundeți
La desenarea diagramelor ER, am folosit următoarea convenție grafică: Etichetați liniile de relație cu numele (numele) coloanei cheii străine, astfel:
Acest lucru arată clar care coloană din tabelul copil este cheia externă a tabelului părinte. Indicarea stării cheii primare se poate face subliniind atributul în cauză.
Ce poate fi mai util decât acesta este o convenție de denumire care clarifică care este cheia primară a unui tabel (ușor de realizat dacă utilizați chei surogate prin convenție) și ce este o coloană cu cheie străină.
Unele diagrame ale modelului relațional includ, de asemenea, o etichetă de participare a cheii în partea stângă a numelor coloanelor din lista de coloane (de ex. „>
PK „, ” FK1 „, ” FK2 „, …) care vă poate ajuta mai ales dacă aveți chei compozite.
Comentarii
- Această convenție este publicată și undeva sau este doar ideea ta (bună)?
- @Lorenz este ‘ adaptare pentru o diagramă fizică entitate-relație a versiunii notației piciorului ‘ s ( en.wikipedia.o rg / wiki / … ) publicat de James Martin ( en.wikipedia.org/wiki/James_Martin_(author) ) în cartea sa Ingineria informației , care a folosit numele relației ca etichetă pentru relații.Pentru mine, ‘ este o extensie sensibilă de la modelul logic la modelul fizic.
- Chiar dacă ajută, rămâne o idee privată atunci, aceasta nu a fost total clar din expresia „Am folosit”.
Răspuns
Prefer acest format, folosind „picioarele corbii” pentru a ilustra îmbinările multiple la unu
Comentarii
- Îmi plac picioarele de corbă și pentru diagramele ER. Pentru diagramele relaționale, prefer vârful săgeții. rețineți că un picior de corb merge pe ” multe ” capătul unei linii, în timp ce o vârf de săgeată merge pe ” un ” capăt al unei linii.
- Există doar simbolurile FK / PK care lipsesc la capetele liniei din acest grafic aici 🙂 Totuși, acest răspuns ulterior pentru prima postare a link-ului dlink ‘ a primit prea puține voturi în opinia mea. Link-ul postat anterior de dlink ‘ a fost criticat, a fost deja menționat în primul comentariu al întrebării de către @MKSingh care a pus;), DAR! se pare că legătura este mai bună decât se menționează acolo. Dacă vizionați videoclipul oferit sub ” Simboluri ERD fizice „, acesta arată exact cum să reprezentați mai multe FK într-un ERD, aici este linkul direct, accesați 7:28, youtube.com/watch?v=QpdhBUYk7Kk
Răspuns
Mulți ani mai târziu, vă rugăm să țineți cont de diferitele notații ale diagramelor ER, astfel întrebarea nu este suficient de precisă.
Aruncați o privire la toate răspunsuri la
https://stackoverflow.com/questions/48191228/is-erd-considered-a-kind-of-uml-diagram#48198083
și
Care este o diagramă ER? . Un răspuns aici afirmă chiar că notația Chen este ERD, în timp ce notația Crow Foot se spune că este un EAD (Entity Attribute Diagram), vezi @JoshuaGuttman.
Notarea Chen nu arată în mod explicit relațiile FK , așa cum explică deja răspunsul acceptat, în timp ce alte notații pot face acest lucru.
Dacă luați, de exemplu, notația Crow Foot sau Baker, puteți lua ” cel mai precis răspuns ” al lui @dlink unde liniile duc exact către FK-uri. Apoi nu este încă clar ce să facem cu FK-uri compozite care duc la PK-uri compozite și probabil din cauza că programele profesionale pur și simplu nu leagă grafic sfârșiturile de linie cu FK-urile. Apoi, numirea este tot ce vă puteți referi, ceea ce este oricum suficient dacă respectați strict o convenție de numire (cum ar fi CustomerID la Customer.ID sau alte reguli) . Vezi de exemplu Paradigma vizuală la https://www.visual-paradigm.com/guide/data-modeling/what-is-entity-relationship-diagram/
Răspuns
Această pagină, de LucidCharts are o scriere frumoasă despre cum ar trebui să arate ERD.
Sub Simboluri ERD fizice, arată cum să reprezinte cheile.
[ https://www.lucidchart.com/pages/ER-diagram-symbols-and-meaning]
Comentarii
- Bun venit dlink. Încercați să oferiți răspunsuri amănunțite care sunt mai mult decât un link , altfel pot fi eliminate.