Introducció¶
El modelatge de les dades és una part fonamental en el disseny i la utilització de les bases de dades. El modelatge ens ajuda a definir i a estructurar les dades que es gestionaran. Dins del context de l'enginyeria de programari, aquesta tasca es realitzarà en la fase de disseny.
En aquest cas, ens centrem en el modelatge de les dades en el model conceptual de la base de dades.
Model Entitat Relació¶
El Model Entitat Relació (ER) és una tècnica de representació gràfica d'un conjunt de dades i les relacions que existeixen entre elles. El model ER va ser descrit per Peter Chen en 1976.
Les característiques principals d'aquest model són:
- Representar les dades i les relacions entre aquestes, no les seues transformacions.
- Inclou totes les dades del sistema, independentment de les utilitzades després per cada aplicació.
- És un model teòric, independent al SGBD o al sistema operatiu utilitzat.
- No contempla aspectes com l'espai utilitzat, emmagatzemament o el temps d'execució.
El model ER es basa en dos objectes: Entitats i Relacions.
Entitat¶
Una entitat és qualsevol objecte o element (real o abstracte) que existeix i del qual es dessitja emmagatzemar informació a la base de dades. Una entitat no és un objecte concret, sinó una definició sobre la qual poden existir diferents objectes o instàncies. En cada entitat es poden definir múltiples dades o característiques, anomenades atributs.
Exemple
L'entitat Cotxe té com a atributs el nom de la marca i el nom del model.
D'aquesta entitat podem tindre diferents objectes concrets, anomenades instàncies o ocurrències:
- Cotxe
Marca
Seat iModel
León. - Cotxe
Marca
Renault iModel
Clio.
Atributs¶
Un atribut és una característica o una propietat d'una entitat que ens interessa emmagatzemar. Els atributs es representen en el diagrama amb un cercle connectat a l'entitat.
Els atributs de cada instància adoptaran uns valors concrets, que han de ser vàlids. Es pot definir com domini d'un atribut aquells valors que pot prendre un atribut.
- Per exemple, un atribut numèric com l'edat no pot emmagatzemar caràcters alfabètics (lletres).
Si algun atribut pot no estar present, es diu que pot prendre el valor nul (null en anglés).
- Per exemple, l'atribut telèfon de l'entitat Persona pot ser
null
si una persona en concret no té telèfon.
Quan un atribut s'utilitza per identificar a una ocurrència d'una entitat, s'anomena que l'atribut és una clau primària. Es representa subratllant el nom de l'atribut.
- Per exemple, en l'entitat Cotxe, la matrícula podria ser la clau primària.
- Per exemple, en l'entitat Persona, el DNI podria ser la clau primària.
Entitats regulars¶
Les entitats es poden dividir en dos grups, les entitats regulars o fortes i les entitats febles.
Les entitats regulars, fortes o pròpies són aquelles entitats que s'identifiquen i tenen existència per elles mateixes. Es representen per un rectangle i el seu nom és un substantiu.
Exemple
Les entitats Cotxe i Persona que estan relacionades entre si, i qualsevol de les dues té sentit i pot existir per ella mateixa. Es pot dir que les dues entitats són entitats regulars o fortes.
Entitats febles¶
Per contra, les entitats febles són aquelles que sols poden ser identificades per estar associades a una altra entitat, és a dir, que algun dels seus atributs que l'identifiquen es refereix a una altra entitat. Es representen per un doble rectangle.
La relació que uneix una entitat feble amb la entitat forta de la que depén, s'anomena una relació feble o de dependència i s'indica amb un doble rombe.
El atribut o conjunt d'atributs que s'utilitzen per identificar una entitat feble s'anomenen clau parcial o discriminant., que permet diferenciar totes les ocurrències de l'entitat feble que depenen de la mateixa ocurrència de l'entitat forta. S'indica amb un subratllat de punts.
Exemple
Avió que és una entitat forta ja que pot existir per si mateix, i Seient, és una entitat feble ja que la seua existència depén de l'existència de l'avió on està situat el seient.
L'avió s'identifica per un codi, el qual es la seua clau primària. En canvi, seien s'identifica per la seua relació amb avió. Per poder distingir entre els diferents seients de l'avió, s'utilitza el número de fila i la lletra del seient. Aquest conjunt d'atribut són els discriminants o claus parcials.
Relació¶
Una relació és una associació o una correspondència entre múltiples entitats i es representa mitjançant un rombe amb un verb que descriu el tipus d'associació que es produeix.
Grau¶
El grau d'una relació es defineix com el nombre d'entitats diferents que participen en una relació. No existeix un límit en el nombre d'entitats que poden participar en una relació.
Relació reflexiva¶
Si en una relació sols intervé una entitat, el grau de la relació és 1 i s'anomena relació reflexiva.
Exemple
Aquesta relació representa una relació reflexiva, una relació de grau 1 on una entitat està relacionada amb ella mateixa.
En aquesta relació es representa que un empleat pot estar subordinat a un altre empleat, i que un empleat pot tindre a múltiples altres empleats subordinats.
Relació binària¶
Si en una relació intervenen dues entitats, el grau de la relació és 2 i s'anomena binària. Aquest tipus és el més comú de relació.
Relació ternària¶
Si en una relació intervenen tres relacions, el grau de la relació és 3 i s'anomena ternària.
Exemple
Aquesta relació ternària representa les obres interpretades per una orquestra dirigides per un director.
Cardinalitat¶
La correspondència o cardinalitat es defineix com el nombre d'ocurrències o instàncies de cada entitat que estan relacionades entre si. Les cardinalitats s'expresen com el número mínim i màxim d'instàncies que intervenen en la relació.
Cardinalitat | Definició | Símbol |
---|---|---|
(1, 1) | Cada element de l'entitat li correspon un únic objecte de l'altra entitat obligatòriament. Es pot llegir com 1 i sols 1. | |
(0, 1) | Cada element de l'entitat li correspon un o zero objectes de l'altra entitat. Es pot llegir com 0 o 1. | |
(1, N) | Cada element de l'entitat li correspon un o més objectes de l'altra entitat obligatòriament. Es pot llegir com 1 o més. | |
(0, N) | Cada element de l'entitat li correspon zero o més objectes de l'altra entitat. Es pot llegir com 0 o més. |
Exemple: (1,1) a (1,1)¶
Exemple
Aquesta relació representa una relació d'1 a 1, és a dir, cada ocurrència d'una entitat es relaciona amb 1 i sols amb 1 ocurrència de l'altra entitat.
Aquesta relació representa que un conductor té un permís de conducció obligatòriament, i que un permís de conducció ha de tindre un conductor associat obligatòriament.
Exemple: (1,1) a (0,1)¶
Exemple
Aquesta relació representa una relació de 0 a 1, és a dir, cada ocurrència d'una entitat pot estar relacionada amb 1 ocurrència de l'altra entitat, però pot no estar-ho.
Aquesta relació representa que una persona pot tindre un permís de conducció o no, i que un permís de conducció ha de tindre una persona associada obligatòriament.
Exemple: (1,1) a (0,N)¶
Exemple
Aquesta relació representa una relació de 0 a N, és a dir, cada ocurrència d'una entitat pot estar relacionada amb moltes ocurrències de l'altra entitat, però pot no estar-ho.
Aquesta relació representa que una persona pot tindre o no molts cotxes, i que cada cotxe ha d'estar associada a una persona.
Exemple: (1,N) a (0,N)¶
Exemple
Aquesta relació representa una relació de N a N, és a dir, cada ocurrència d'una entitat pot estar relacionada amb moltes ocurrències de l'altra entitat, i viceversa.
Aquesta relació representa que una persona pot ser membre de múltiples biblioteques, però pot no ser-ho de cap. També representa que cada biblioteca té múltiples membres, però com a mínim en té 1.
Exemple ternària: (1, N) a (1, N) a (1, 1)¶
Exemple
Aquesta relació ternària representa les obres interpretades per una oruestra dirigides per un director.
La cardinalitat s'interpreta de la següent manera:
- Un director i una orquestra poden interpretar múltiples obres.
- Un director pot dirigir una obra en múltiples orquestres.
- Una orquestra interpreta una obra, dirigida per un únic director.
Atributs d'interrelació¶
Les relacions entre diferents entitats també poden tindre característiques determinades, que poden ser modelades mitjançant atributs d'interrelació.
Exemple
En aquest diagrama s'està modelant que una Cistella de la compra conté múltiples Productes, però a més es té en compte quantes unitats de cada producte hi ha en cada cistella.
Entitat associativa¶
A més, en alguns casos una relació entre diverses entitats es pot considerar com una entitat diferent. En aquests casos, parlem d'entitats associatives, que també poden contindre atributs. Normalment apareixen en relacions de molts a molts (N:N), on es necessita que la relació ha d'estar relacionada amb una altra entitat.
Exemple
Aquesta relació representa una associació entre diferents entitats mitjançant una entitat associativa, que està relacionada amb una tercera entitat.
En aquest diagrama s'està modelant que un Pacient pot ser atés per diferents Metges. A més, en aquesta consulta, el metge pot demanar diferents proves diagnòstiques.
Generalització i especialització¶
La generalització és el procés que permet combinar propietats comunes de diferents entitats en una única entitat per evitar la redundància de dades.
En canvi, la especialització és el procés de crear una nova entitat que herete les característiques d'una altra entitat.
En els dos casos, en el diagrama ER es representa de la mateixa manera, amb un triangle invertit que connecta les classes generals amb les classes específiques.
Exemple
En el següent exemple tenim tres entitats, Vehicle,Cotxe i Moto, que estan relacionades amb una relació d'especialització o generalització.
Cotxe i Moto comparteixen els atributs de Vehicle, però també tenen atributs propis.
Bibliografia¶
- Els diagrames s'han realitzat amb l'eina draw.io
- Material de Laura Villalba, Introducció a les bases de dades.
- Ahijado Sánchez, A, Bases de datos, Ed. Marcombo.
- https://vertabelo.com/blog/chen-erd-notation/
- https://stackoverflow.com/questions/38366466/when-to-use-associative-entities
- https://stackoverflow.com/questions/47150141/what-is-the-right-way-to-use-associative-entity
- https://stackoverflow.com/questions/18365870/er-diagram-ternary-relationship-how-to-read-properly