Model de diagramă de relație de entitate (ER) cu exemplu DBMS
⚡ Rezumat inteligent
Modelul diagramei entitate-relație (ER) cu exemplu de SGBD ilustrează o metodă structurată de reprezentare vizuală a datelor și a interconexiunilor acestora în cadrul bazelor de date relaționale. Propusă de Peter Chen, aceasta oferă o bază de modelare conceptuală pentru a defini cu precizie entități, atribute, relații și cardinalitățile acestora.

Ce este o diagramă ER?
Diagrama Entitate-Relație (ER) este un instrument vizual puternic pentru proiectarea structurilor bazelor de date relaționale. Propusă pentru prima dată de Peter Chen în 1976, aceasta oferă o bază de modelare conceptuală care definește cu precizie entitățile, atributele, relațiile și cardinalitățile acestora. Acest tutorial acoperă totul, de la concepte de bază la tehnici avansate, ajutându-vă să stăpâniți proiectarea schemelor bazelor de date.
Diagramele ER conțin diferite simboluri care utilizează dreptunghiuri pentru a reprezenta entități, ovale pentru a defini atribute și forme de romb pentru a reprezenta relații.
La prima vedere, o diagramă ER arată foarte asemănător cu o schemă logică. Cu toate acestea, o diagramă ER include multe simboluri specializate, iar semnificațiile lor fac ca acest model să fie unic. Scopul unei diagrame ER este de a reprezenta infrastructura cadrului de lucru al entității.

Istoricul modelelor ER
Peter Chen a propus diagrama ER în 1976 în lucrarea sa fundamentală „Modelul entitate-relație: către o vedere unificată a datelor”. Scopul său a fost de a crea o convenție uniformă care să poată fi utilizată atât pentru bazele de date relaționale, cât și pentru rețele. Chen a conceput modelul ER ca o abordare de modelare conceptuală care ar reduce decalajul dintre cerințele din lumea reală și implementarea tehnică a bazelor de date.
De atunci, modelul ER a evoluat cu diverse sisteme de notație, inclusiv notația Chen (originală), notația Crow's Foot (populară în instrumentele moderne) și abordări bazate pe UML. În ciuda acestor variații, conceptele de bază rămân consecvente în toate implementările.
De ce să folosiți diagramele ER?
Diagramele ER oferă numeroase beneficii pentru proiectarea și dezvoltarea bazelor de date:
- Comunicare vizuală: Acestea oferă o reprezentare vizuală clară pe care atât părțile interesate tehnice, cât și cele non-tehnice o pot înțelege.
- Plan de dezvoltare: Acestea arată exact cum ar trebui să se conecteze tabelele și ce câmpuri va conține fiecare tabel.
- Traducere gata: Diagramele ER pot fi traduse direct în tabele relaționale, permițându-vă să construiți rapid baze de date.
- Prevenirea erorilor: Acestea ajută la identificarea defectelor de proiectare și a redundanțelor înainte de implementare, economisind timp și resurse.
- Documentație: Acestea servesc drept documentație durabilă care ajută noii membri ai echipei să înțeleagă arhitectura sistemului.
- Analiza de sistem: Acestea ajută la identificarea tuturor entităților existente într-un sistem și a relațiilor dintre ele.
Componentele diagramei ER
Fiecare diagramă ER este construită din trei componente principale: entități, atribute și relații. Înțelegerea fiecărei componente și a modului în care acestea interacționează este esențială pentru crearea unor modele eficiente de baze de date.
Exemple de diagrame ER
De exemplu, într-o bază de date universitară, am putea avea entități pentru Studenți, Cursuri și Lectori. O entitate student poate avea atribute precum Nr. înscriere, Nume și ID departament. Acestea pot avea relații cu Cursuri și Lectori.
entități
O entitate reprezintă orice obiect din lumea reală - viu sau neviu - care poate fi identificat în mod clar și despre care pot fi stocate date. Poate fi un lucru fizic, un fapt despre întreprindere sau un eveniment care se întâmplă în lumea reală. Entitățile pot include persoane, locuri, obiecte, evenimente sau concepte.
Exemple de entități pe categorii:
- Persoană: Angajat, Student, Pacient, Client
- Locul: Magazin, Clădire, Birou, Depozit
- Obiect: Mașină, Produs, Mașină, Carte
- Eveniment: Vânzare, Înregistrare, Reînnoire, Tranzacție
- Concept: Cont, Curs, Departament, Proiect
Set de entitati
Un set de entități este un grup de entități similare care au atribute comune. De exemplu, toți studenții dintr-o universitate formează un set de entități „Student”. Entitățile sunt reprezentate în diagramele ER folosind dreptunghiuri, cu numele entității scris în interior.
Entitățile sunt reprezentate prin proprietățile lor, care sunt numite și atribute. Toate atributele au valori separate. De exemplu, o entitate de tip student poate avea ca atribute un nume, o vârstă și o clasă.
Entități puternice vs. entități slabe
Entitățile sunt clasificate fie ca puternice, fie ca slabe, în funcție de capacitatea lor de a exista independent. Înțelegerea acestei distincții este crucială pentru proiectarea corectă a bazelor de date.
O entitate puternică are propria cheie primară și poate exista independent. De exemplu, o entitate „Student” poate fi identificată în mod unic prin Student_ID fără a depinde de nicio altă entitate.
O entitate slabă nu are o cheie primară proprie și depinde de o entitate puternică (numită entitatea proprietar) pentru identificarea sa. Aceasta folosește o cheie parțială (discriminator) combinată cu cheia primară a proprietarului pentru a obține unicitatea. De exemplu, într-un sistem bancar, o entitate „Tranzacție” depinde de o entitate „Cont” - numărul tranzacției în sine nu este unic în întreaga bază de date, dar combinat cu numărul contului, devine unic.
| Entitate puternică | Entitate slabă |
|---|---|
| Are propria cheie primară | Nu are o cheie primară; folosește o cheie parțială |
| Reprezentat printr-un singur dreptunghi | Reprezentat printr-un dreptunghi dublu |
| Cheia primară este subliniată cu o linie continuă | Cheia parțială este subliniată cu linie punctată |
| Poate exista independent | Depinde de entitatea proprietar pentru existență |
| Legat de o relație cu un singur diamant | Conectat cu diamant dublu (relație de identificare) |
| Exemplu: Student, Angajat, Produs | Exemplu: Tranzacție, Dependent, Articol_Comandă |
Relaţie
O relație reprezintă o asociere între două sau mai multe entități. Relațiile sunt de obicei identificate folosind verbe sau sintagme verbale care descriu modul în care entitățile interacționează între ele. În diagramele ER, relațiile sunt reprezentate folosind forme de romb. Exemplu: Tom lucrează în departamentul de chimie.
Entitățile iau parte la relații. De multe ori putem identifica relații cu verbe sau expresii verbale.
Exemple:
- Participați la această prelegere
- țin prelegerea
- Un student participă la o prelegere
- Un lector ține o prelegere
Atribute
Un atribut este o proprietate sau o caracteristică care descrie o entitate sau o relație. Atributele oferă informații detaliate care fac ca fiecare instanță a entității să fie unică și semnificativă. În diagramele ER, atributele sunt reprezentate folosind ovale (elipse) conectate la entitatea lor părinte printr-o linie.
De exemplu, o entitate Student ar putea avea atribute precum Student_ID, Name, Date_of_Birth, Email și Phone_Number.
Tipuri de atribute
| Tip de atribut | Descriere | Exemplu |
|---|---|---|
| Simplu (AtomIC) | Nu poate fi împărțit în componente mai mici | Număr de telefon, CNP, E-mail |
| Compozit | Poate fi împărțit în sub-atribute mai mici | Nume complet (prenume, nume mijlociu, nume de familie), adresă (stradă, oraș, coș poștal) |
| Derivat | Valoarea este calculată din alte atribute; nu este stocată direct | Vârstă (derivată din data nașterii), Preț total |
| Multivaloare | Poate conține mai multe valori pentru o singură entitate | Telefon Numbers, Adrese de e-mail, Competențe |
| Atribut cheie | Identifică în mod unic fiecare instanță a entității (cheie primară) | ID_student, ID_angajat, ISBN |
Sfat cheie: În diagramele ER, atributele cheie sunt afișate cu numele lor subliniate. Atributele derivate sunt afișate în ovale punctate, iar atributele multivaloare sunt afișate în ovale duble.
Cardinalitate (Tipuri de relații)
Cardinalitatea definește constrângerile numerice ale unei relații - mai exact, câte instanțe ale unei entități pot fi asociate cu instanțe ale unei alte entități. Înțelegerea cardinalității este esențială pentru proiectarea unor structuri eficiente ale bazelor de date.
1. Unu la Unu (1:1)
O entitate din mulțimea A poate fi asociată cu cel mult o entitate din mulțimea B și invers.
Exemplu: Unui student i se atribuie exact un singur ID de student, iar fiecare ID de student aparține exact unui singur student.
2. Unu-la-Mulți (1:N)
O entitate din mulțimea A poate fi asociată cu mai multe entități din mulțimea B, dar fiecare entitate din B este asociată doar cu o singură entitate din A.
Exemplu: O clasă este formată din mai mulți elevi.
3. Mai mulți la unu (N:1)
Mai multe entități din mulțimea A pot fi asociate cu o entitate din mulțimea B.
De exemplu, mulți elevi aparțin aceleiași clase.
4. Many-to-Many (M:N)
Mai multe entități din mulțimea A pot fi asociate cu mai multe entități din mulțimea B și invers.
De exemplu, studenții ca grup sunt asociați cu mai mulți membri ai facultății, iar membrii facultății pot fi asociați cu mai mulți studenți.
Simboluri și notații ale diagramei ER
Diagramele ER utilizează simboluri standardizate pentru a reprezenta diferite componente. Deși există mai multe sisteme de notație, cele două cele mai utilizate sunt notația Chen și notația Crow's Foot.
Notația Chen
Notația Chen, dezvoltată de Peter Chen în 1976, folosește forme geometrice pentru a reprezenta diferite elemente:
| Simbol | Nume | reprezintă |
|---|---|---|
| Dreptunghi | Entitate | Entitate puternică (de exemplu, Student, Produs) |
| Double Dreptunghi | Entitate slabă | Entitate dependentă de alta (de exemplu, tranzacție) |
| Elipsă/Oval | Atribut | Proprietatea unei entități (de exemplu, nume, ID) |
| Double elipsă | Atribut multivalor | Atribut cu valori multiple (de exemplu, Telefon Numbers) |
| Elipsă punctată | Atribut derivat | Valoare calculată (de exemplu, vârsta din data nașterii) |
| Diamant | Relaţie | Asocierea între entități (de exemplu, Înscrieri) |
| Double Diamant | Identificarea relației | Relația cu entitatea slabă |
| Linie | Link | Conectează componentele împreună |
| Text subliniat | Cheia principala | Identificator unic pentru entitate |
Notația piciorului ciorii
Notația Crow's Foot (numită și notație IE) este mai frecvent utilizată în instrumentele moderne de proiectare a bazelor de date. Folosește diferite sfârșituri de linie pentru a reprezenta cardinalitatea și este deosebit de eficientă pentru a arăta latura „mulți” a relațiilor.
| Simbol Description | Sens |
|---|---|
| Linie verticală unică (|) | Obligatoriu Unul (exact unul) |
| Cerc cu linie (O|) | Opțional Unu (zero sau unu) |
| Laba gâștei cu linie (>|) | Obligatoriu Mai multe (unul sau mai multe) |
| Laba gâștei cu cerc (>O) | Opțional Mai multe (zero sau mai multe) |
Notația Chen vs. piciorul cioarăi: când se utilizează fiecare
| Aspect | Notația Chen | Notația piciorului ciorii |
|---|---|---|
| Cele mai bune | Modelare conceptuală, utilizare academică | Modelare fizică/logică, utilizare industrială |
| Afișarea atributelor | Afișează vizual toate atributele | Listează atributele în caseta entității |
| Cardinalitatea | Folosește numere (1, N, M) | Folosește simboluri vizuale |
| Complexitate | Poate deveni aglomerat | Mai compact și mai curat |
| Suport pentru instrumente | Suport limitat pentru instrumente moderne | Susținut pe scară largă în instrumente |
Cum se creează o diagramă de relație între entități (ERD)
În acest tutorial despre diagrama ER (ERD), vom învăța cum să creăm o diagramă ER. Următorii sunt pașii pentru a crea o diagramă ER:
Să le studiem cu un exemplu de diagramă de relație cu entitate:
Într-o universitate, un student se înscrie la cursuri. Un student trebuie să fie repartizat la cel puțin un curs. Fiecare curs este predat de un singur profesor. Pentru a menține calitatea predării, un profesor poate preda un singur curs.
Pasul 1) Identificarea entității
Avem trei entități:
- student
- Curs
- Profesor
Pasul 2) Identificarea relației
Avem următoarele două relații:
- Studentul este alocate un curs
- Profesorul Oferă un curs
Pasul 3) Identificarea cardinalității
Din enunțul problemei, știm că:
- Un student poate fi repartizat multiplu cursuri
- Un profesor poate livra doar unu înscrie-te la cursul
Pasul 4) Identificați atributele
Trebuie să studiați fișierele, formularele, rapoartele și datele menținute în prezent de organizație pentru a identifica atributele. De asemenea, puteți realiza interviuri cu diverse părți interesate pentru a identifica entitățile. Inițial, este important să identificați atributele fără a le asocia unei anumite entități.
După ce aveți o listă de atribute, trebuie să le mapați la entitățile identificate. Asigurați-vă că un atribut este asociat cu exact o singură entitate. Dacă considerați că un atribut ar trebui să aparțină mai multor entități, utilizați un modificator pentru a-l face unic.
Odată finalizată maparea, identificați cheile primare. Dacă o cheie unică nu este disponibilă, creați una.
| Entitate | Cheia principala | Atribut |
|---|---|---|
| student | Carnet de student | Numele studentului |
| Profesor | Card de identitate al angajatului | Nume profesor |
| Curs | ID-ul cursului | Numele cursului |
Pentru entitatea Curs, atributele pot fi Durată, Credite, Teme etc. Pentru ușurință, am luat în considerare un singur atribut.
Pasul 5) Creați ERD-ul
O reprezentare mai modernă a unui exemplu de diagramă entitate-relație:
Cele mai bune practici pentru diagrame ER eficiente
Urmați aceste instrucțiuni pentru a crea diagrame ER clare, ușor de întreținut și eficiente:
- Eliminați redundanța: Eliminați entitățile, atributele sau relațiile duplicate.
- Folosiți convenții de denumire clare: Folosește nume consecvente și descriptive. Evită abrevierile.
- Validare în funcție de cerințe: Asigurați-vă că diagrama susține toate nevoile de stocare a datelor.
- Nu te complica: Creați mai multe diagrame la niveluri diferite, în loc de o singură diagramă aglomerată.
- Folosește culoarea cu moderație: Folosește culorile în mod consecvent pentru a evidenția categoriile.
- Ipoteze privind documentul: Includeți note care explică ipotezele despre regulile de afaceri.
- RevPerspectivă cu părțile interesate: Rugați utilizatorii de business și echipa tehnică să examineze diagrama.
- Controlul versiunii: Mențineți versiunile pe măsură ce designul evoluează.
Diagrame ER vs. diagrame de clase UML
Deși atât diagramele ER, cât și diagramele de clase UML sunt utilizate pentru modelarea datelor, ele servesc unor scopuri și contexte diferite. Înțelegerea momentului în care se utilizează fiecare este importantă pentru o proiectare eficientă a sistemului.
| Aspect | Diagrama ER | Diagrama de clasă UML |
|---|---|---|
| Scopul principal | Proiectare baze de date | Proiectare software/obiecte |
| Focus | Date și relații | Obiecte, metode și comportamente |
| Metode/Operații | Nu este suportat | Complet sprijinit |
| Moştenire | Limitat (doar în EER) | Suport complet |
| Utilizare în industrie | Administratori de baze de date, analiști de date | Dezvoltatori de software, arhitecți |















