# Model entitat-relació

El model entitat-relació és una eina pel modelat de dades que permet representar les entitats rellevants d'un sistema d'informació així com les seves interrelacions i propietats.

## Base teòrica i conceptual

El model de dades entitat-relació està basat en una percepció del món real que consta d'una col·lecció d'objectes clàssics, anomenats entitats i de relacions entre aquests objectes:
* Entitat : Representa un objecte del món real amb existència independent, és a dir, es diferencia únicament d'un altre objecte fins i tot sent del mateix tipus. Exemple: una persona, un automòbil, una casa... Una entitat pot ser un objecte amb existència física (persona, animal, casa…) o un objecte amb existència conceptual (un lloc de treball, una assignatura…). Una entitat està descrita i es representa per les seves característiques o atributs. Per exemple, l'entitat Persona té els atributs: nom, cognoms, gènere, estatura, pes i data de naixement. Aquestes entitats es representen en un diagrama amb rectangles.
* Atributs : Els atributs són les característiques que defineixes o identifiquen a una entitat. Aquestes poden ser moltes i el dissenyador només utilitza les més rellevants. Exemple: {| class=wikitable !Id !Nom !Any |- |1 |Sofia |2 |- |2 |Josefa |5 |- |3 |Carles |2 |} Els atributs identificatius són aquells que permeten diferenciar una instància de l'entitat d'una altra. Per exemple, l'atribut identificatiu que distingeix a un alumne és el seu número d'id. Per cada atribut existeix un domini, aquest fa referència a les restriccions dels valors que l'atribut pot acceptar. Quan algun atribut no té un valor determinat obté el valor nul, sigui perquè no el coneix o perquè no existeix. Es representen amb cercles que descendeixen d'una entitat.
* Relació : Descriu certa dependència entre entitats o permet l'associació entre elles. Per exemple, si tenim dos entitats: EMPLEAT i CÀRREC, podem entendre la relació que hi ha entre elles, ja que un atribut d'empleat serà idèntic a un de càrrec. Es representen amb rombes que uneixen les dues entitats.

## Restriccions

Són regles que han de mantenir les dades emmagatzemades a la base de dades.

### Cardinalitats

La cardinalitat indica el nombre d'entitats amb les que pot estar relacionada una entitat donada. Les cardinalitats poden ser:
* Un a un (1 a 1): Un registre d'una entitat A es relaciona només amb un registre d'entitat B. Per exemple: dos entitats, professor i departament, un professor només pot ser director d'un departament i un departament només pot tenir un director.
* Un a molts (1 a N): un registre d'una entitat A es relaciona amb 0 o més registres d'una entitat B però els registres de B només es relacionen amb un d'A. Per exemple: dues entitats, venedor i vendes, un venedor pot tenir moltes vendes però una venda només pot tenir un venedor.
* Molts a molts (N a M): una entitat A es pot relacionar amb 0 o més registres de B i viceversa. Per exemple: dos entitats, associacions i ciutadans, on un ciutadà pot pertànyer a moltes associacions i una associació pot pertànyer a molts ciutadans.

### Restriccions de participació

Donat un conjunt de relacions R en el qual participa un conjunt d'entitats A, la participació pot ser de dos tipus:
* Total : Quan cada entitat A participa almenys en una relació de R
* Parcial : Quan almenys una entitat A no participa en alguna relació de R

## Tipus especials de relació

* Relació reflexiva o recursiva : Relaciona una entitat amb si mateixa. Ex: Un empleat pot ser supervisor d'uns empleats
* Dos relacions entre dues entitats : Dues entitats tenen dos relacions entre elles. Ex: Dues relacions entre l'entitat Viatge i l'entitat Ciutat, una relació és per la ciutat origen i l'altre per la ciutat destí.
* Relació ternària : Relació entre tres entitats. La forma de trobar cardinalitats de les relacions ternàries és fixar una combinació d'elements en dos dels extrems de la reiació i obtenir lògicament les cardinalitats de l'altre extrem lliure.

## Claus

És un subconjunt d'atributs que permet identificar inequívocament cada una de les entitats que pertanyen a una col·lecció. Existeixen els següents tipus de claus:
** Superclau o clau principal : És un subconjunt d'atributs que permet diferenciar inequívocament cadascuna de les entitats d'un conjunt d'entitats. Si s'afegeix un atribut a l'anterior subconjunt, el resultat seguirà sent una superclau.
** Clau primària : És un camp o una combinació de camps que identifiquen de forma única les entitats en un conjunt d'entitats
** Clau forana : És un camp que està estrictament relacionat amb la clau principal d'un altra entitat.

## Entitats febles

Les entitats febles són aquelles que no disposen de prou atributs per a designar inequívocament els seus registres. Per tal d'aconseguir-ho, han d'estar associades a una entitat forta que les ajudi. La relació entre l'entitat forta i la feble sempre serà 1:N, on N estarà al costat de la feble.
Les entitats febles no tenen clau primària, però sí un atribut clau que permet distingir entre elles tots els registres de l'entitat feble que depenen d'un mateix registre de l'entitat forta.

## Enllaços externs

* Gutiérrez, Pedro. Fundamento de las bases de datos: Modelo entidad-relación. (en castellà)
* Martí Hernández, Carlos Manuel. Model Entitat-Relació (PDF) Arxivat 2016-02-12 a Wayback Machine.

## Referències

* ↑ «Introducción al diseño de base de datos» (en castellà), 2001. Arxivat de l'original el 2020-01-25. [Consulta: 23 octubre 2015].
* ↑ «M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació» (en català). [Consulta: 21 octubre 2015].