Modelul ER

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Un exemplu de diagramă ER

În informatică , în contextul proiectării bazelor de date , modelul entitate-relație [1] (sau model entitate-asociere ; model ER mai comun) este un model teoretic pentru reprezentarea conceptuală și grafică a datelor la un nivel ridicat de abstractizare , formalizat de prof. univ. Peter Chen în 1976 [2] .

Modelul entitate-relație este adesea utilizat în prima fază a proiectării unei baze de date, în care este necesar să se traducă informațiile rezultate din analiza unui domeniu dat într-o schemă conceptuală, numită diagramă entitate-relație (sau ER diagramă ). [3]


În domeniul proiectării ingineriei bazelor de date există trei niveluri independente și consecutive de proiectare: proiectare conceptuală, proiectare logică, proiectare fizică. În mod corespunzător, modelul ER este principala tehnică pentru faza de proiectare conceptuală, modelul relațional pentru faza de proiectare logică. Doar în ultima fază a proiectării fizice se iau în considerare aplicațiile software și hardware , proprietare sau nu, existente pe piață.

Generalitate

Modelul ER se bazează pe un set de concepte foarte apropiate de realitatea de interes : prin urmare, ușor de înțeles de către proiectanți (și, în general, considerat suficient de ușor de înțeles și semnificativ chiar și pentru non-tehnicieni), dar neimplementabil pe computere . De fapt, deși este orientat către proiectarea bazelor de date, modelul este independent de criteriile specifice de organizare fizică a datelor persistente în sistemele IT . Există tehnici pentru traducerea conceptelor de nivel înalt (mai bine înțelese de oameni) în concepte de nivel inferior tipice diferitelor modele logice (de exemplu modelul relațional ) implementate în diferitele SGBD existente.

Modelul ER a reprezentat pentru o lungă perioadă de timp (și poate și astăzi) una dintre cele mai solide abordări pentru modelarea domeniilor aplicațiilor în domeniul IT; din acest motiv, a fost adesea folosit în afara contextului proiectării bazei de date și a fost folosit ca model de referință pentru numeroase alte notații de modelare. Printre altele, notația OMT a fost inspirată de modelul ER și ulterior a fuzionat în UML .

Printr-o supercheie de identificare (câmpuri: cod părinte_ID, cod copil_ID), schema Entitate-Asociere reprezintă un grafic arborescent pe orice număr de niveluri (în special și o BOM ), foarte frecvent în lumea computerelor. Graficul Sunburst permite o reprezentare grafică ușoară și răspândită a datelor ierarhice.

Principalele constructe ale modelului

Analiza principalelor constructe ale modelului ER: entități, asociații și atribute.

Entitate

Ele reprezintă clase de obiecte (fapte, lucruri, oameni, ...) care au proprietăți comune și existență autonomă în scopul aplicării interesului. O apariție a unei entități este un obiect sau instanță din clasa pe care o reprezintă entitatea. Nu vorbim aici despre valoarea care identifică obiectul, ci despre obiectul în sine. O consecință interesantă a acestui fapt este că apariția unei entități are o existență independentă de proprietățile asociate cu aceasta. În aceasta, modelul ER prezintă o diferență marcată față de modelul relațional în care nu putem reprezenta un obiect fără a cunoaște unele dintre proprietățile sale.

Într-o diagramă, fiecare entitate are un nume care o identifică în mod unic și este reprezentată grafic prin intermediul unui dreptunghi cu numele entității în interiorul său.

Asociere

Asociațiile (numite și relații) reprezintă o legătură între două sau mai multe entități. Numărul entităților afiliate este indicat de gradul de asociere: o schemă ER bună se caracterizează printr-o prevalență a asociațiilor cu gradul doi. Este posibil să legați o entitate cu ea însăși (printr-o asociere inelară), precum și să legați aceleași entități cu mai multe asociații.

De obicei este reprezentat grafic printr-un diamant care conține numele asociației. Substantivul poate fi un verb pentru a oferi o direcție de lectură sau poate fi un substantiv pentru a nu da o direcție de lectură. Cea mai recentă orientare academică și profesională tinde să folosească substantivul tocmai pentru a evita să dea o direcție asociației.

Atribute

Entitățile și asociațiile pot fi descrise folosind un set de atribute. Toate obiectele din aceeași clasă de entitate (sau asociație) au aceleași atribute: la asta ne referim când vorbim despre obiecte similare. Alegerea atributelor reflectă nivelul de detaliu cu care dorim să reprezentăm informații despre entități și relații. O cheie este definită pentru fiecare clasă de entitate sau asociație. Cheia este un set minim de atribute care identifică în mod unic o instanță de entitate sau asociere. Atributul este reprezentat cu o elipsă în interiorul căreia este specificat numele atributului sau chiar simplu, în cazul diagramelor complexe, indicând doar numele, eventual în corespondență. În cazul unei chei primare, numele atributului este subliniat sau încercuit.

Alte construcții de modele

Cardinalitatea asociațiilor

Acestea sunt specificate pentru fiecare entitate care participă la o asociație și indică de câte ori, într-o asociație între entități, o apariție a uneia dintre aceste entități poate fi legată de aparițiile celorlalte entități implicate în asociație (indică aparițiile minime și maxime) .

Atribut cardinalitate

De asemenea, este posibil să se definească constrângerile de cardinalitate asupra atributelor, cu două scopuri:

  • indicați opționalitatea;
  • indicați atribute cu mai multe valori.

Dacă specificația de constrângere lipsește, așa cum se întâmplă în majoritatea cazurilor, cardinalitatea atributului este (1,1). Să luăm în considerare următorul exemplu:

Exemplu de cardinalitate


Deoarece specificația de constrângere a cardinalității lipsește din nume, înseamnă că cardinalitatea este (1,1).

  • (0,1) NumeroPatente, înseamnă că un angajat poate avea un permis de conducere, dar, de asemenea, nu îl are sau, mai degrabă, un angajat poate avea cel mult un permis de conducere.
  • (0, n) NumeroTelefono, înseamnă că un angajat poate avea multe numere de telefon, dar nu poate avea niciun număr de telefon.
  • (1, n) TitleStudio, înseamnă că un angajat poate avea multe calificări, dar trebuie să aibă cel puțin una.

Identificatori de entitate

Ele constituie un subset al atributelor unei entități care identifică în mod unic fiecare apariție a aceleiași entități. Un exemplu poate fi constituit de atributul CodiceFiscale al entității CittadinoItaliano. De fapt, se știe că fiecare apariție a entității CittadinoItaliano, adică fiecare cetățean care locuiește pe teritoriul Republicii Italiene, poate fi identificată fără echivoc prin codul său fiscal. Aceasta înseamnă că nu pot exista doi cetățeni italieni cu același cod fiscal (cu excepția cazului în care există un caz de omocodie ).

Generalizări

Ele reprezintă legături logice existente între două sau mai multe entități. Dintre entitățile implicate, se remarcă următoarele:

  • o singură entitate mamă;
  • una sau mai multe entități copil.

Entitățile secundare sunt „cazuri speciale” ale entității părinte. Fiecare atribut al entității părinte este, de asemenea, un atribut al entităților copil, dar entitățile copil pot avea atribute care le diferențiază de tatăl și frații lor. Următorul exemplu evidențiază faptul că:

  • fiecare persoană este identificată printr-un cod fiscal și se caracterizează printr-un nume de familie, un nume și o vârstă;
  • fiecare persoană se distinge în bărbat sau femeie;
  • statutul militar poate fi, de asemenea, evaluat.

Generalizările sunt împărțite în „total” și „parțial”. O generalizare este totală atunci când unirea subseturilor copiilor constituie întregul tată. De exemplu, generalizarea prezentată în figură este totală, deoarece toți oamenii sunt fie bărbați, fie femei, prin urmare, combinând subseturile de bărbați și femei obținem setul de oameni. O generalizare este parțială atunci când, pe de altă parte, unirea subseturilor copiilor nu identifică global setul tatălui. De exemplu, o entitate mamă Mijloace de locomoție cu entitățile pentru copii Biciclete și automobile este o generalizare parțială, deoarece pe lângă biciclete și mașini există și alte mijloace de locomoție, precum mopede, trenuri, nave etc. Prin urmare, unirea subseturilor de biciclete și mașini nu este suficientă pentru a identifica setul părinte de Mijloace de Locomoție.

O generalizare poate fi, de asemenea, „exclusivă” sau „suprapusă”. O generalizare este exclusivă atunci când intersecția subseturilor copiilor este goală; în schimb, se suprapune atunci când intersecția subseturilor copiilor nu este goală. O entitate mamă Lucrător cu entități copil Angajat și student identifică o generalizare care se suprapune prin faptul că pot exista angajați care sunt simultan studenți. În concluzie, o generalizare poate fi:

  • total exclusiv (t, e);
  • total suprapus (t, s);
  • exclusiv parțial (p, e);
  • parțial suprapus (p, s).

Model de date entitate - atribut - valoare (EAV)

Un model de date Entitate - atribut - valoare (EAV) este utilizat în mod avantajos în cazurile în care bazele de date constau din:

  • atribute unice de tip variabil în timp;
  • sute de tabele sau categorii de număr variabil de-a lungul timpului, dar care în interiorul lor sunt alcătuite din câteva zeci de rânduri sau instanțe; și un număr relativ mic de tabele, dar fiecare având mii sau milioane de rânduri sau instanțe.

În domeniul business intelligence , o structură informațională de acest tip ar putea fi un cub OLAP multidimensional, din care utilizatorul trebuie adesea să adauge o anumită dimensiune a analizei, a unui număr imprevizibil și variabil în timp: tabelele EAV oferă o reprezentare sumară atunci când datele de analizat sunt extrem de împrăștiate, de exemplu într-o bază de cunoștințe biomedicale. Același model EAV poate fi folosit și pentru a importa tabele EAV direct în cubul OLAP [4] .

Un model ER ar avea limita de a gestiona toate tabelele în mod obișnuit, chiar și din punct de vedere vizual, indiferent de dimensiunea și importanța lor. Modelul entității - atribut - valoare este un model de date care depășește această limită și permite conceptelor să fie reprezentate într-un mod eficient IT, în situații în care entitățile individuale sunt descrise printr-un număr de atribute (proprietăți sau parametri) relativ mult mai mici decât cele potențial potrivite pentru o reprezentare conceptuală și logică eficientă.

Documentarea schemelor ER

O schemă ER nu este aproape niciodată suficientă singură pentru a detalia toate aspectele unei aplicații din diverse motive. În primul rând, într-o schemă ER apar doar numele diferitelor concepte prezente în ea, dar acest lucru poate fi insuficient pentru a înțelege semnificația lor. În cazul schemelor deosebit de complexe, se poate întâmpla să nu puteți reprezenta diferitele concepte într-un mod inteligibil și exhaustiv.

Din acest motiv, este esențial să furnizați fiecărei scheme ER documentație de susținere care poate servi pentru a facilita interpretarea schemei în sine și pentru a descrie proprietăți din datele reprezentate care nu pot fi exprimate direct de constructele modelului. De aici și necesitatea de a avea instrumente pentru a finaliza schema.

Reguli de afaceri

Unul dintre instrumentele cele mai utilizate de analiștii de sisteme informaționale pentru descrierea proprietăților unei aplicații care nu pot fi reprezentate direct cu modele conceptuale este cel al regulilor de afaceri . Această semnificație derivă din faptul că, în majoritatea cazurilor, ceea ce vrem să exprimăm este doar o regulă a domeniului de aplicație special pe care îl luăm în considerare.

Termenul de regulă de afaceri este utilizat de analiști cu o semnificație mai largă pentru a indica orice informație care definește sau constrânge un aspect al unei aplicații. În special, pe baza unei clasificări destul de consolidate, o regulă de afaceri poate fi:

  • descrierea unui concept relevant pentru cerere sau definiția precisă a unei entități, atribut sau asociere a modelului ER;
  • o constrângere de integritate asupra datelor aplicației, fie că este vorba de documentarea unei constrângeri exprimată cu o construcție a modelului ER (cum ar fi cardinalitatea unei asociații) sau descrierea unei constrângeri care nu poate fi exprimată direct cu constructele modelului;
  • o derivare sau un concept care poate fi obținut printr-o inferență sau un calcul aritmetic din alte concepte ale schemei.

Pentru regulile primului tip este clar imposibil să se definească o sintaxă precisă și, în general, se folosește propoziții în limbaj natural. Aceste reguli sunt de obicei reprezentate sub formă de glosare, grupând descrierile în mod corespunzător.

Regulile care descriu constrângerile de integritate și derivările sunt mai potrivite pentru definiții formale cu sintaxă mai mult sau mai puțin complexă. Cu toate acestea, având în vedere că nu există standardizări și că orice formalism ales riscă să nu fie suficient de expresiv, vom folosi din nou definițiile în limbaj natural, având grijă să structurăm în mod adecvat aceste definiții. În special, regulile care descriu constrângerile de integritate pot fi exprimate sub formă de afirmații sau afirmații care trebuie întotdeauna verificate în baza noastră de date. Din motive de claritate și pentru a facilita construcția lor, aceste afirmații trebuie să fie atomice, adică nu pot fi descompuse în propoziții care încă constituie afirmații. Mai mult, deoarece acestea sunt folosite pentru a documenta o schemă ER, afirmațiile trebuie să fie declarate într-o formă care nu sugerează o metodă care să le satisfacă. Aceasta este de fapt o problemă constructivă și, prin urmare, nu este pertinentă pentru reprezentarea conceptuală. Prin urmare, notații precum <condition> atunci <action> nu sunt potrivite pentru exprimarea regulilor de afaceri atunci când documentează o schemă ER. O structură predefinită pentru enunțarea regulilor de afaceri sub formă de afirmații ar putea fi următoarea:

<concept> trebuie / nu poate <expresii pe concepte>

unde conceptele citate pot corespunde fie conceptelor care apar în schema ER la care se face trimitere, fie conceptelor care pot fi definite de acestea.

Regulile de afaceri care exprimă derivări pot fi exprimate prin specificarea operațiilor (aritmetice sau altele) care fac posibilă obținerea conceptului derivat. Prin urmare, o posibilă structură este:

<concept> are ca rezultat <operație pe concepte>

Tehnici de documentare

Documentarea diferitelor concepte reprezentate într-o diagramă sau regulile descriptive de afaceri pot fi produse folosind un dicționar de date. Se compune din două tabele: primul descrie entitățile schemei cu numele, o definiție informală în limbaj natural, lista tuturor atributelor (cu orice descriere asociată) și identificatori posibili. Celălalt tabel descrie asociațiile cu numele, descrierea informală a acestora, lista atributelor (cu orice descriere) și lista entităților implicate împreună cu cardinalitatea participării lor.

În ceea ce privește alte reguli, puteți utiliza în continuare un tabel în care sunt listate diferitele reguli, specificând tipul lor de fiecare dată. Este important să se reprezinte toate regulile care descriu constrângerile care nu sunt exprimate de schemă, dar uneori este util să se reprezinte și reguli care documentează constrângerile deja exprimate în schemă.

Traducerea schemei ER

Traducerea schemei ER într-o schemă logică echivalentă (bazată pe un model logic, cum ar fi modelul relațional ), adică capabilă să reprezinte aceleași informații, este un pas fundamental al proiectării logice , care este în mod normal precedat de faza de restructurare din schema ER . Elementul principal al traducerii diagramei ER într-o diagramă logică echivalentă este faptul că în modelul relațional nu există asociații (relații), prin urmare ambele entități care asociațiile trebuie traduse în rapoarte, prin reguli codificate corespunzătoare, în conformitate cu principiile principale identificatori determinați în faza de restructurare a schemei ER, cardinalitatea asociațiilor și prezența identificatorilor externi.

În timp ce faza pregătitoare a restructurării schemei ER este doar parțial automatizabilă , din schema ER restructurată diverse programe de pe piață pot obține automat schema relațională corespunzătoare, baza de date propriu-zisă. O consecință evidentă a acestor fapte și, evident, și a naturii modelelor implicate, este aceea că activitatea de a deriva automat o schemă ER din schema relațională derivată pe baza implementării fizice a DB , o funcție pusă la dispoziție de unii software, în general nu permite obținerea schemei ER originale .

Numele fiecărei entități corespunde antetului unei tabele-matrice, având atâtea coloane câte atribute ale entității. Dacă atributul este o cheie primară sau o parte dintr-o supercheie formată din mai multe atribute, nu poate asuma valoarea NULL (atribut non-opțional, obligatoriu) și nu poate presupune două apariții ale aceleiași valori (valori unice, nerepetate).

Dacă asocierea dintre două sau mai multe entități are unul sau mai multe atribute, în mod normal asocierea va da naștere unui tabel având ca cheie de identificare setul de chei primare ale tuturor entităților legate de relație (cu orice cardinalitate) și ca câmpuri atributele plasate relației în schema ER. Acest pasaj, de natură logică, nu trebuie confundat cu reificarea unei asociații într-o entitate, un pasaj având un caracter conceptual care poate fi realizat în schema ER.

Într-un al doilea pas, numărul de tabele poate fi redus semnificativ, luând în considerare cardinalitatea maximă (unitară, n-aer) care conectează două tabele.

Notă

  1. ^ Termenul este o distribuție a modelului englez entitate-relație .
  2. ^ "Modelul de relație entitate: către o vedere unificată a datelor" pentru modelarea entității - relații.
  3. ^ Schemă mai puțin comună entitate-relație , chiar în comparație cu schema ER .
  4. ^ (EN) Peter Thanisch, Tapio Niemi, Marko Niinimaki, Jyrki Nummenmaa, Utilizarea modelului entitate-atribut-valoare pentru construcția cubului OLAP în Lucrare de conferință selectată în: Perspective in Business Informatics Research: 10th International Conference , BIR 2011. Proceedings , Riga, Letonia, 6 octombrie 2011, DOI : 10.1007 / 978-3-642-24511-4_5 , ISSN 1865-1348 ( WC ACNP ) . Adus la 17 mai 2018 .

Bibliografie

  • EF Codd, Un model relațional de date pentru bănci mari de date partajate , Laboratorul de cercetare IBM, San Jose, California, Comunicări ale ACM - Volumul 13 / Numărul 6 / Iunie 1970
  • Atzeni, Ceri, Paraboschi, Torlone, Baze de date (modele și limbi de interogare) , McGraw Hill, 2003
  • Atzeni, Ceri, Fraternali, Paraboschi, Torlone, Baze de date (Arhitecturi și linii de evoluție) , McGraw Hill, 2003
  • Ramez Elmasri, Shamkant B. Navathe, Sisteme de baze de date , elemente fundamentale , Pearson - Addison Wesley, 2003

Alte proiecte

Controlul autorității LCCN (EN) sh00009200 · GND (DE) 4230505-6 · BNF (FR) cb167494845 (data)
Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT