M2 - Bases de dades / UF1NF3: Model relacional

De wikiserver
Dreceres ràpides: navegació, cerca
          El model relacional és un model de dades basat en dues disciplines matemàtiques: 
          la lògica de predicats i la teoria de conjunts.
               SGBD

               Acrònim de Sistema Gestor de Bases de Dades. És un programari 
               especialitzat en la gestió de bases de dades (enteses, aquestes, 
               com un conjunt estructurat d’informació).

Potser a causa d’aquest sòlid fonament teòric, que proporciona a aquest model una robustesa excepcional, els SGBD relacionals (o SGBDR) són actualment els que tenen una implantació més gran en el mercat. El model relacional va ser proposat originàriament per Edgar Frank Codd en el seu treball A Relational Model of Data for Large Shared Data Banks (‘Un model relacional de dades per a grans bancs de dades compartits’) l’any 1970, tot i que no es va implementar comercialment fins al final de la dècada.

         E. F. Codd

         Codd treballava per a IBM, però no va ser aquesta multinacional qui va creure 
         abans en les possibilitats del model relacional, sinó més aviat la competència, 
         i molt especialment Oracle, empresa que va néixer, justament, amb el nom de 
         Relational Software.

Un exemple de disseny conceptual

En el contingut següent s'utilitzen dues entitats (relacions) que podrien donar resposta a la següent necessitat:

Disposem d'una serie d'aules de les que ens interessa el seu codi i la seva capacitat. Els alumnes, dels que ens interessa el DNI, nom, cognoms i telèfon, quan es matriculen són assignats a les aules. Tot i que en alguns cassos aquesta assignació no es fa en el moment de la matricula.

Ens interessa també conèixer qui es el delegat de cada alumne, tot i que poden haver alumnes que encara no tinguin cap delegat assignat.

Alumnes - Aules

Estructuració de les dades

         El model relacional permet construir estructures de dades per 
         representar les diferents informacions del món real que tinguin 
         algun interès.

Les estructures de dades construïdes seguint el model relacional estan formades per conjunts de relacions.

         Les relacions poden ser concebudes com a representacions tabulars de les dades.
              Tuple

              En l’àmbit de les BD, podem definir tuple com una seqüència finita 
              d’objectes que comprèn les diferents associacions entre cada atribut 
              de la relació i un valor concret, admissible dins del domini respectiu.

Cal precisar els extrems següents:

  • Tota relació ha de tenir un nom que la identifiqui unívocament dins de la base de dades.
  • Cada fila està constituïda per un tuple de dades relacionades entre elles, anomenat també registre, que guarda les dades que ens interessa reflectir d’un objecte concret del món real.
  • En canvi, cada columna conté, en cada cel·la, dades d’un mateix tipus, i se la pot anomenar atribut o camp.
  • Cada cel·la, o intersecció entre fila i columna, pot emmagatzemar un únic valor.
          Exemple de relació

          La següent taula reflecteix l’estructuració tabular de la relació ALUMNE, que conté les dades 
          personals corresponents als individus matriculats en un centre docent.
 
          Cada fila conté unes quantes dades relacionades que, en aquest cas, són les que pertanyen a un 
          mateix alumne.

          La relació té un nom (ALUMNE), com cadascuna de les columnes (DNI, Nom, Cognoms i Telefon). Si 
          aquests noms són prou significatius, permeten copsar de seguida el sentit que tenen els valors 
          de les dades emmagatzemades en la relació.
          Taula Exemple de relació

               ALUMNE
               -------------------------------------------------
               DNI      	Nom	Cognoms	        Telefon

               47126654F	Josep	Bel Rovira	453641282
               51354897S	Anna	Pacheco Cuscó	723352151
               56354981L	Xavier	Rius Montalvo	726922235
Tota base de dades relacional està formada per un conjunt de relacions.

Aquesta senzilla manera de visualitzar l’estructura de les bases de dades relacionals resulta molt entenedora per a la majoria d’usuaris. Però cal aprofundir en algunes característiques addicionals de les relacions, per talde poder-les distingir clarament dels fitxers tradicionals.

Domini

         Pel que fa al model relacional, un domini consisteix en un conjunt finit de valors indivisibles.

Els atributs només poden prendre els valors que estiguin inclosos dins del domini respectiu. Altrament no són valors vàlids, i un SGBD relacional no en pot permetre l’emmagatzematge.

         Exemples de dominis

         Examinem l’atribut Telefon de la relació ALUMNE. Si el definim de tal manera que només pugui 
         emmagatzemar nou caràcters (perquè els telèfons sempre consten de nou dígits) de tipus numèric 
         (ja que les lletres no poden formar part d’un número de telèfon), el domini d’aquest atribut 
         inclourà totes les combinacions possibles (en concret,10⁹ , que és una magnitud gran, però finita).

         Una altra cosa és que molts d’aquests valors no es podran correspondre mai amb valors existents 
         en el món real (per exemple, difícilment un operador assignarà a un dels seus abonats una cadena 
         de nou zeros com a identificador telefònic). Per aconseguir-ho, caldria restringir força més el 
         domini de l’atribut a l’hora de definir-lo.

         Centrem-nos ara en l’atribut Cognoms. Contindrà els valors dels dos cognoms dels alumnes que els 
         tinguin, separats per un espai en blanc. Per tant, aquest camp està definit per tal que pugui 
         emmagatzemar dos objectes del món real: primer cognom i segon cognom.

         Conceptualment, els usuaris podran distingir entre els dos objectes representats, i els programadors
         d’aplicacions podran truncar, en cas necessari, el resultat obtingut en fer una consulta del camp 
         Cognoms. Però tot SGBD relacional considerarà el valor contingut en l’atribut Cognoms de manera
         atòmica, sense cap estructuració interna.

Hem de considerar dues tipologies de dominis:

  • Dominis predefinits. Són els tipus de dades que admeti cada SGBD, com, per exemple (esmentats de manera genèrica, ja que hi ha moltes especificitats en funció dels diferents sistemes gestors), les cadenes de caràcters, els nombres enters, els nombres decimals, les dades de caire cronològic, etc.
  • Dominis definits pels usuaris. Consisteixen en restriccions addicionals aplicades sobre el domini predefinit d’alguns atributs, establertes pels dissenyadors i pels administradors de bases de dades.
          Exemple de domini definit per l'usuari

          En una relació per emmagatzemar les dades dels aspirants a mosso d’esquadra, es podria establir el
          camp IMC, per registrar els índexs de massa corporal respectius.

          Doncs bé, es podria restringir el domini d’aquest camp de tal manera que no admetés aspirants amb 
          valors inferiors a dinou ni superiors a trenta, ja que la normativa no ho permet.

Esquema i extensió

Tota relació consta d’un esquema (també anomenat intensió de la relació) i de la seva extensió.

         L’esquema d’una relació consisteix en un nom que la identifica unívocament dins de la 
         base de dades, i en el conjunt d’atributs que aquella conté.

És molt recomanable, per tal d’evitar confusions en la implementació ulterior, seguir uniformement una notació concreta a l’hora d’expressar els esquemes de les relacions que formen una mateixa base de dades.

A continuació, es detallen les característiques d’un dels sistemes de notació més freqüents:

  • Cal escriure el nom de les relacions amb majúscules i preferiblement en singular.
  • S’ha d’escriure el nom dels atributs començant amb majúscula i continuant amb minúscules, sempre que no es tracti de sigles, ja que aleshores és més convenient deixar totes les lletres amb majúscules (com ara DNI). Per tal de fer els noms compostos més llegidors, es pot encapçalar cada paraula de les que formen el nom del camp amb una lletra majúscula (per exemple: DataNaixement, TelefonParticular, etc.).
        Exemple d'esquema d'una relació

        L’esquema de la relació que es mostra en la següent taula, conforme al sistema de notació proposat,
        quedaria com segueix:
 
        ALUMNE(DNI, Nom, Cognoms, Telefon)

        Cal precisar que l’ordre en què ens mostrin els atributs és indiferent, per definició del model
        relacional.
             Taula Exemple de relació

             ALUMNE
             ------------------------------------------------ 
             DNI      	Nom	Cognoms	        Telefon
        
             47126654F	Josep	Bel Rovira	453641282
             51354897S	Anna	Pacheco Cuscó	723352151
             56354981L	Xavier	Rius Montalvo	726922235

Els atributs d’una relació són únics dins d’aquesta. El seu nom no pot estar repetit dins d’una mateixa relació. Ara bé, diferents relacions sí que poden contenir atributs amb el mateix nom.

D’altra banda, cal dir que els dominis de diferents atributs d’una mateixa relació poden ser idèntics, malgrat que els camps respectius emmagatzemin els valors de diferents propietats de l’objecte (per exemple, seria perfectament lògic que els atributs TelefonFix, TelefonMobil i TelefonFeina, tot i pertànyer a una mateixa relació, tinguessin el mateix domini).

         L’extensió d’una relació consisteix en els valors de les dades emmagatzemades en tots els 
         tuples que aquesta conté.
         Exemple d'extensió

         Si prenem com a base, una vegada més, la relació amb esquema ALUMNE(DNI, Nom, Cognoms, 
         Telefon) de la taula 2, la seva extensió seria una llista en què figurarien tots els alumnes
         de la base de dades:

         Alumne 1: 47126654F, Josep, Bel Rovira, 453641282 Alumne 2: 51354897S, Anna, Pacheco Cuscó,
         723352151 Alumne 3: 56354981L, Xavier, Rius Montalvo, 726922235

De vegades, els atributs de les relacions poden no contenir cap valor o, dit d’una altra manera, poden contenir valors nuls.

         Exemple de valor nul

         Imaginem que s’hi matricula un quart alumne que no té telèfon. Les seves dades en la coneguda
         relació amb esquema ALUMNE(DNI, Nom, Cognoms, Telefon) reflectiran aquesta circumstància amb 
         l’absència de valor en l’atribut Telefon del tuple que li correspongui.

         En utilitzar representacions tabulars per visualitzar els valors de les extensions de les 
         relacions (en el pla teòric, no en implementacions reals amb SGBD), per tal d’indicar que una 
         cel·la té valor nul s’hi pot incloure el mot NUL (com en la taula anterior), o bé es pot deixar en 
         blanc, simplement.
              Taula Exemple de relació amb valors nuls

              ALUMNE
              -------------------------------------------
              DNI	Nom	Cognoms	        Telefon

              47126654F	Josep	Bel Rovira	453641282
              51354897S	Anna	Pacheco Cuscó	723352151
              56354981L	Xavier	Rius Montalvo	726922235
              24583215W	Mariona	Castellví Mur	NUL
          El grau d’una relació depèn del nombre d’atributs que inclou el seu esquema.
          Exemple de grau d'una relació

          La relació amb esquema ALUMNE(DNI, Nom, Cognoms, Telefon) de la taula anterior és de grau 4, 
          perquè té quatre atributs.
          La cardinalitat d’una relació ve donada pel nombre de tuples que en formen l’extensió.
          Exemple de cardinalitat

          Si ens fixem en la taula anterior, la cardinalitat de la relació ALUMNE és 4, perquè la seva 
          extensió conté quatre tuples corresponents als quatre alumnes que, de moment, hi ha 
          matriculats.

Claus candidates, clau primària i claus alternatives

Per tal de resultar útil, l’emmagatzematge de la informació ha de permetre la identificació de les dades. En l’àmbit de les bases de dades relacionals, els tuples de les relacions s’identifiquen mitjançant les anomenades superclaus.

          Una superclau és un subconjunt dels atributs que formen l’esquema d’una relació tal que 
          no és possible que hi hagi més d’un tuple en l’extensió respectiva, amb la mateixa combinació
          de valors en els atributs que formen part del subconjunt esmentat.

Però una superclau pot contenir atributs innecessaris, que no contribueixen a la identificació inequívoca dels diferents tuples. El que habitualment interessa és treballar amb superclaus mínimes, tals que cap subconjunt propi sigui capaç per sí sol d’identificar els tuples de la relació.

Per definició, cap superclau mínima no pot admetre valors nuls en cap dels seus atributs, perquè si ho fes, no podria garantir la identificació inequívoca dels tuples que continguessin algun valor nul en alguns dels atributs de la superclau mínima en qüestió.

D’altra banda, cal dir que en una mateixa relació pot passar que hi hagi més d’una superclau mínima que permeti distingir els tuples unívocament entre ells.

          S’anomenen claus candidates totes les superclaus mínimes d’una relació formades pels atributs
          o conjunts d’atributs que permeten identificar els tuples que conté la seva extensió.
               Tria de la clau primària

               Amb molta freqüència, és l’administrador de la BD qui tria la clau primària
               de la relació, d’entre les claus candidates disponibles, tot realitzant, en 
               el fons, tasques de dissenyador lògic.

Però, a l’hora d’implementar una BD, entre totes les claus candidates de cada relació només se n’ha de triar una.

          Quan parlem de clau primària ens referim a la clau que, finalment, el dissenyador lògic 
          de la base de dades tria per distingir unívocament cada tuple d’una relació de la resta.

Aleshores, les claus candidates no triades com a clau primària resten presents en la relació.

          Quan una relació ja té establerta una clau primària, la resta de claus presents en aquella,
          i que també podrien servir per identificar els diferents tuples de l’extensió respectiva, 
          es coneixen com a claus alternatives.

Una forma de diferenciar els atributs que formen la clau primària de les relacions, dels altres atributs de l’esquema respectiu, és posar-los subratllats. Per aquest motiu, normalment es col·loquen junts i abans que la resta d’atributs, dins de l’esquema. Però només es tracta d’una qüestió d’elegància, ja que el model relacional no es basa ni en l’ordre dels atributs de l’esquema, ni tampoc en l’ordre dels tuples de l’extensió de la relació.

          Exemples de claus candidates, primària i alternatives

          Observant la taula anterior, podem imaginar que la relació ALUMNE té uns quants atributs més, de 
          manera que el seu esquema queda com segueix:

          ALUMNE(DNI, NumSS, NumMatricula, Nom, Cognoms, Telefon)

          Veurem fàcilment com els atributs DNI, NumSS (número de la Seguretat Social) i NumMatricula,
          en ser personals i irrepetibles, ens podrien servir per identificar unívocament els alumnes.
          Per tant, serien claus candidates.

          Aleshores, el dissenyador de BD s’haurà de decidir per una clau candidata com a clau primària. 
          Si, per exemple, tria DNI com a clau primària, les antigues claus candidates restants es 
          passaran a considerar claus alternatives.

          En aquest cas, doncs, l’esquema resultant haurà de reflectir quina és la clau primària de la 
          relació, tot subratllant l’atribut DNI:
 
          ALUMNE(DNI, NumSS, NumMatricula, Nom, Cognoms, Telefon)
                 ---
               Taula Exemple de relació amb valors nuls

               ALUMNE
               --------------------------------------------------
               DNI       	Nom	Cognoms	        Telefon

               47126654F	Josep	Bel Rovira	453641282
               51354897S	Anna	Pacheco Cuscó	723352151
               56354981L	Xavier	Rius Montalvo	726922235
               24583215W	Mariona	Castellví Mur	NUL

Si no es disposa d’un atribut que sigui capaç d’identificar els tuples de la relació per si sol, cal buscar un subconjunt d’atributs, tals que la combinació dels valors que adoptin no es pugui repetir. Si aquesta possibilitat no existeix, cal afegir a la relació un atribut addicional que faci d’identificador.

          Per definició, el model relacional no admet tuples repetits, és a dir, no permet l’existència 
          de tuples en una mateixa relació que tinguin els mateixos valors en cadascun dels atributs.

Ara bé, les implementacions concretes dels diferents SGBD sí que permeten aquesta possibilitat, sempre que no s’estableixi cap clau primària en la relació amb tuples repetits.

Aquesta permissivitat de vegades permet solucionar certes eventualitats, però no hauria de ser la manera habitual de treballar amb BD relacionals.

Claus foranes

Qualsevol BD relacional, per petita que sigui, conté normalment més d’una relació. Per tal de reflectir correctament els vincles existents entre alguns objectes del món real, cal que els tuples de les diferents relacions d’una base de dades es puguin interrelacionar.

De vegades, fins i tot pot ser necessari relacionar els tuples d’una relació amb altres tuples de la mateixa relació.

El mecanisme que ofereixen les BD relacionals per interrelacionar les relacions que contenen es fonamenta en les anomenades claus foranes.

          Una clau forana està constituïda per un atribut, o per un conjunt d’atributs, de l’esquema
          d’una relació, que serveix per relacionar els seus tuples amb els tuples d’una altra relació
          de la base de dades (o amb els tuples d’ella mateixa, en alguns casos).

Per tal d’aconseguir connectar els tuples d’una relació amb els d’una altra (o amb les seves pròpies), la clau forana utilitzada ha de referenciar la clau primària de la relació amb la qual es vol relacionar.

Les diferents combinacions de valors dels atributs de tota clau forana han d’existir en la clau primària a què fan referència, o bé han de ser valors nuls. Altrament, les referències serien errònies i, per tant, les dades serien incorrectes.

Cal parar atenció en les característiques següents de les claus foranes:

  • Tota clau forana ha de tenir el mateix nombre d’atributs que la clau primària a la qual fa referència.
  • Entre els atributs de l’esquema d’una clau forana i els de la clau primària respectiva s’ha de poder establir una correspondència (concretament, una bijecció).
  • Els dominis dels atributs de tota clau forana han de coincidir amb els dominis dels atributs de la clau primària respectiva (o, com a mínim, cal que siguin compatibles dins d’un cert rang).
Exemple de bijecció

Una relació pot contenir més d’una clau forana, o bé no contenir-ne cap. I, en sentit invers, la clau primària d’una relació pot estar referenciada per una o més claus forànies, o bé pot no estar referenciada per cap.

Finalment, cal dir que es pot donar el cas que un mateix atribut formi part tant de la clau primària de la relació com d’alguna de les seves claus foranes.

          Exemples de claus foranes

          La relació ALUMNE, tal com es mostra en la següent taula, incorpora dues claus foranes.

          Una d’elles, CodiAula, fa referència a la clau primària de la relació AULA (formada
          per l’atribut Codi), exposada en la taula d'exemple, per tal d’indicar quina aula correspon 
          a cada alumne.

          En canvi, DNIDelegat fa referència a la clau primària de la mateixa relació (formada 
          per l’atribut DNI), i serveix per indicar quin és el delegat que representa cada alumne.

          Fixem-nos que l’alumna Mariona Castellví encara no té assignat ni delegat ni aula i, per 
          aquest motiu, el tuple que la representa conté, de moment, valors nuls en els atributs de 
          les dues claus foranes.
               Taula Exemple de relació amb claus foranes

               ALUMNE
               ---------------------------------------------------------------------------------
               DNI	        Nom	Cognoms	        Telefon	        DNIDelegat	CodiAula

               47126654F	Josep	Bel Rovira	453641282	47126654F	102
               51354897S	Anna	Pacheco Cuscó	723352151	51354897S	201
               56354981L	Xavier	Rius Montalvo	726922235	51354897S	201
               24583215W	Mariona	Castellví Mur	NUL	        NUL	        NUL
                    Taula Exemple de relació amb clau primària referenciada

                    AULA
                    ---------------------
                    Codi	Capacitat

                    101	        40
                    102	        36
                    201 	30

La notació més habitual per designar les claus foranes de les relacions consisteix a afegir aquesta circumstància a continuació del seu esquema, incloent-hi entre dues claus el conjunt d’atributs que formen la clau forana de què es tracti, precedit de l’adverbi ON, i seguit de la forma verbal REFERENCIA i de la relació a què fa referència. Si hi ha més d’una clau forana, se separen per comes i l’última ha d’anar precedida de la conjunció I.

         Exemple de notació per designar claus foranes

         Les dues relacions que es mostren en les taules 5 i 6 s’expressaran de la manera següent:

         ALUMNE(DNI, Nom, Cognoms, Telefon, DNIDelegat, CodiAula) ON {DNIDelegat} REFERENCIA ALUMNE
                ---
         i {CodiAula} REFERENCIA AULA

         AULA(Codi, Capacitat)
              ----

Operacions amb relacions

El model relacional permet realitzar una sèrie d’operacions amb les dades emmagatzemades en les BD, les quals tenen diferents finalitats:

  • Actualització. Aquestes operacions realitzen canvis en els tuples que queden reflectits en les relacions que contenen les BD. Poden ser de tres tipus:
  • Inserció. Consisteix a afegir un o més tuples nous a una relació determinada.
  • Esborrat. Consisteix a eliminar un o més tuples nous d’una relació determinada.
  • Modificació. Consisteix a canviar el valor d’un o més atributs d’un o més tuples d’una relació determinada.
  • Consulta. Aquestes operacions només fan possible l’obtenció parametritzada de dades, sense que es vegin alterades les emmagatzemades en la BD.

La realització d’aquestes operacions comporta el coneixement previ de l’estructura formada per les relacions que sigui necessari utilitzar, és a dir, els esquemes de les relacions i les interrelacions entre elles, mitjançant les claus foranes.

          Exemples d'operacions

          Si prenem en consideració la relació ALUMNE que mostra la taula.7, un exemple d’inserció 
          consistirà a afegir un nou alumne, com ara el següent:

          <65618724G, Lídia, Bofarull Mora, 564628231, 47126654F, 102>

          Un exemple d’esborrament seria eliminar el tuple que conté les dades d’un alumne donat 
          d’alta, com ara el següent:

          <56354981L, Xavier, Rius Montalvo, 726922235, 51354897S, 201>

          Un exemple de modificació seria, per exemple, canviar el número de telèfon de Josep Bel 
          Rovira que consta en la BD (453641282) per un altre (546022547), per tal de reflectir 
          correctament la realitat, de manera actualitzada, o bé assignar-ne un de nou a algú que 
          abans no en tenia, com la Mariona Castellví Mur, introduint 875261473 en lloc de l’anterior 
          valor nul.

          I, com a exemple de consulta, ens podria interessar obtenir una llista, ordenada 
          alfabèticament pels cognoms, de tots els alumnes que són delegats d’aula i que, per tant, 
          tenen valors coincidents en l’atribut DNI i en l’atribut DNIDelegat. En aquest cas, el 
          resultat seria el següent:
          ___________________________________________________________________________________
          
          <47126654F, Josep, Bel Rovira, 546022547, 47126654F, 102> 
          <51354897S, Anna, Pacheco Cuscó, 723352151, 51354897S, 201>
          ___________________________________________________________________________________
                    Taula Exemple de relació amb claus foranes

                    ALUMNE
                    ----------------------------------------------------------------------------
                    DNI	        Nom	Cognoms	        Telefon	        DNIDelegat	CodiAula

                    47126654F	Josep	Bel Rovira	453641282	47126654F	102
                    51354897S	Anna	Pacheco Cuscó	723352151	51354897S	201
                    56354981L	Xavier	Rius Montalvo	726922235	51354897S	201
                    24583215W	Mariona	Castellví Mur	NUL	        NUL	        NUL

Regles d'integritat

Els valors que emmagatzemen les BD han de reflectir en tot moment, de manera correcta, la porció de la realitat que volem modelitzar.

          Anomenem integritat la propietat de les dades que consisteix a representar correctament
          les situacions del món real que modelitzen.

Per tal que les dades siguin íntegres, cal garantir que siguin correctes, i també que estiguin senceres.

En atenció a l’objectiu esmentat, doncs, les dades han de complir certes condicions, que podem agrupar en dues tipologies diferents:

  • Restriccions d’integritat de l’usuari. Són condicions específiques de cada BD. Els SGBD han de permetre als administradors establir certes restriccions aplicables a casos concrets, i han de garantir que es respectin durant l’explotació habitual del sistema.
  • Regles d’integritat del model. Són condicions de caire general que han de complir totes les BD que segueixin el model relacional. No cal definir-les en implementar cada BD, perquè es consideren preestablertes.
          Exemple de restricció d'integritat de l'usuari

          En donar d’alta un nou alumne de la relació ALUMNE, que es mostra en la taula següent, podríem
          exigir al sistema que el validés, mitjançant l’algorisme corresponent, si la lletra introduïda
          del NIF es correspon amb les xifres introduïdes prèviament, i que denegués la inserció en cas 
          contrari, per tal de no emmagatzemar una situació en principi no admissible en el món real.
          Exemple de regla d'integritat del model

          Com que la relació ALUMNE, que es mostra en la taula següent, té definit l’atribut DNI com a clau    
          primària, el sistema validarà automàticament que no s’introdueixi més d’un alumne amb el mateix 
          carnet d’identitat, ja que aleshores la clau primària no compliria el seu objectiu de garantir
          la identificació inequívoca de cada tuple, diferenciant-lo de la resta.
                   Taula Exemple de relació amb claus foranes

                   ALUMNE
                   -----------------------------------------------------------------------------
                   DNI	        Nom	Cognoms	        Telefon	        DNIDelegat	CodiAula

                   47126654F	Josep	Bel Rovira	453641282	47126654F	102
                   51354897S	Anna	Pacheco Cuscó	723352151	51354897S	201
                   56354981L	Xavier	Rius Montalvo	726922235	51354897S	201
                   24583215W	Mariona	Castellví Mur	NUL       	NUL	        NUL

Unicitat de la clau primària

El valor d’una clau primària, globalment considerada, no pot estar repetit en més d’un tuple de la mateixa relació, ja que aleshores la clau primària no estaria en condicions d’assegurar la identificació inequívoca dels diferents tuples.

          En cap moment, no hi pot haver dos o més tuples amb la mateixa combinació de valors 
          en el conjunt dels atributs que formen la clau primària d’una relació.

Els SGBD relacionals han de garantir la regla d’unicitat de la clau primària en totes les insercions de nous tuples, i també en totes les modificacions que afectin el valor d’algun dels atributs que formin part de la clau primària.

          Exemple d'unicitat de la clau primària

          En la relació AULA, que es mostra en la taula següent, no s’hauria de poder inserir un nou tuple
          amb els valors <102, 40>, perquè la clau primària ja emmagatzema el valor 102, corresponent 
          a un altre tuple.

          Si volem donar d’alta una altra aula al primer pis de l’edifici amb capacitat per a quaranta
          alumnes, haurem d’utilitzar com a clau primària un altre valor no present en l’atribut Codi, 
          i resultarà, per exemple, <103, 40>.

          Tampoc no hauria de ser possible modificar la clau del tuple <101, 40> i assignar-hi el valor
          102, perquè aquest valor ja el té assignat la clau primària d’un altre tuple.
                    Taula Exemple de relació amb clau primària referenciada

                    AULA
                    ---------------------
                    Codi	Capacitat

                    101	        40
                    102	        36
                    201	        30

Entitat de la clau primària

Les claus primàries serveixen per diferenciar cada tuple d’una relació de la resta de tuples de la mateixa relació. Per garantir la consecució d’aquesta finalitat, cal que els atributs que formen part d’una clau primària no puguin tenir valor nul ja que, si s’admetés aquesta possibilitat, els tuples amb valors nuls en la clau primària no es podrien distingir d’alguns altres.

          Cap atribut que formi part d’una clau primària no pot contenir mai valors nuls en cap tuple.

Els SGBD relacionals han de garantir la regla d’entitat de la clau primària en totes les insercions de nous tuples, com també en totes les modificacions que afectin el valor d’algun dels atributs que formin part de la clau primària.

          Exemple d'entitat de la clau primària

          En la relació AULA, que es mostra en la taula.10, no s’hauria de poder inserir un nou tuple
          amb els valors <NUL, 26>, perquè la clau primària, per definició, no pot contenir valors nuls.

          Si volem donar d’alta una altra aula amb capacitat per a vint-i-sis alumnes, haurem d’utilitzar 
          com a clau primària un altre valor no nul, i resultarà, per exemple, <202, 26>.

          Tampoc no hauria de ser possible, per la mateixa raó que hem exposat més amunt, modificar la 
          clau del tuple <101, 40> i assignar-hi el valor nul.
                    Taula Exemple de relació amb clau primària referenciada

                    AULA
                    ---------------------
                    Codi	Capacitat
                    
                    101  	40
                    102 	36
                    201 	30

Integritat referencial

El model relacional no admet, per definició, que la combinació de valors dels atributs que formen una clau forana no sigui present en la clau primària corresponent, ja que això implicaria una connexió incorrecta.

         La integritat referencial implica que, per a qualsevol tuple, la combinació de valors que 
         adopta el conjunt dels atributs que formen la clau forana de la relació o bé ha de ser present 
         en la clau primària a la qual fa referència, o bé ha d’estar constituïda exclusivament per valors 
         nuls (si els atributs implicats admeten aquesta possibilitat, i així s’ha estipulat en definir-ne
         les propietats).

Els SGBD relacionals hauran de fer les comprovacions pertinents, de manera automàtica, per tal de garantir la integritat referencial, quan es produeixin dos tipus d’operacions amb relacions que tinguin claus foranes:

  • Insercions de nous tuples.
  • Modificacions que afectin atributs que formin part de qualsevol clau forana.

D’altra banda, els SGBD relacionals també hauran de validar la correcció d’uns altres dos tipus d’operacions amb relacions que tinguin la clau primària referenciada des d’alguna clau forana:

  • Esborraments de tuples.
  • Modificacions que afectin atributs que formin part de la clau primària.

Per tal de garantir la integritat referencial en aquests dos últims tipus d’operació, es pot seguir alguna de les tres polítiques següents: restricció, actualització en cascada i anul·lació.

         Exemple de violació de la integritat referencial

         Continuem especulant amb les relacions ALUMNE i AULA (reflectides en les taules següents).

         El tuple que conté les dades de Mariona Castellví Mur té un valor nul en l’atribut que forma 
         la clau forana que fa referència a la relació AULA.

         Si el volguéssim actualitzar amb el valor 316, per exemple, el sistema no ens ho hauria de 
         deixar fer, perquè aquest valor no és present en la clau primària de cap tuple de la relació 
         AULA i, per tant, aquesta operació contravindria la regla d’integritat referencial.
                   Taula Relació amb claus foranes

                   ALUMNE
                   -----------------------------------------------------------------------------
                   DNI	         Nom	  Cognoms 	  Telefon 	DNIDelegat	CodiAula
 
                   47126654F     Josep	  Bel Rovira	  453641282	47126654F	102
                   51354897S	 Anna	  Pacheco Cuscó	  723352151	51354897S	201
                   56354981L	 Xavier	  Rius Montalvo	  726922235	51354897S	201
                   24583215W	 Mariona  Castellví Mur   NUL     	NUL      	NUL
                        Taula Relació amb clau primària referenciada

                        AULA
                        -----------------
                        Codi	Capacitat

                        101	40
                        102	36
                        201	30

Política de restricció

La política de restricció consisteix a prohibir l’operació d’actualització de què es tracti:

  • En cas d’esborrament, no permetrà eliminar un tuple si la seva clau primària està referenciada des d’alguna clau forana.
  • En cas de modificació, no permetrà alterar el valor de cap dels atributs que formen la clau primària d’un tuple, si aquesta està referenciada des d’alguna clau forana.
         Exemples de restriccions

         Considerem una vegada més les relacions ALUMNE i AULA que es mostren en les següents taules.

         Aplicant la restricció tant en cas d’esborrament com de modificació, aquestes operacions no 
         seran possibles amb l’aula 102 de la relació AULA perquè hi ha alumnes matriculats que han
         d’assistir a classe dins d’aquest espai i, per tant, la referencien des de la clau forana 
         dels tuples que els representen. Sí seria possible, en canvi, esborrar l’aula 101, perquè no 
         està referenciada des de la relació ALUMNE.
                  Taula Relació amb claus foranes

                  ALUMNE	
                  ------------------------------------------------------------------------------
                  DNI		Nom	Cognoms 	Telefon 	DNIDelegat	CodiAula

                  47126654F	Josep	Bel Rovira	453641282	47126654F	102	
                  51354897S	Anna	Pacheco Cuscó	723352151	51354897S	201	
                  56354981L	Xavier	Rius Montalvo	726922235	51354897S	201	
                  24583215W	Mariona	Castellví Mur	NUL     	NUL     	NUL	
                      Taula Relació amb clau primària referenciada

                      AULA
                      -------------------
                      Codi	Capacitat

                      101	40
                      102	36
                      201	30

Actualització en cascada

La política d’actualització en cascada consisteix a permetre l’operació d’actualització de què es tracti sobre un tuple determinat, però disposant al mateix temps una sèrie d’operacions compensatòries que propaguin en cascada les actualitzacions necessàries per tal que es mantingui la integritat referencial dels tuples que referencien, des dels atributs que en formen la clau forana, el tuple objecte d’actualització:

  • En cas d’esborrament, s’eliminaran tots els tuples que facin referència al tuple esborrat.
  • En cas de modificació, els valors dels atributs que formin part de la clau forana dels tuples que facin referència al tuple modificat s’alteraran per tal de continuar coincidint amb els nous valors de la clau primària del tuple al qual fan referència.
          Exemples d'actualització en cascada

          Tornem a prendre com a punt de partida dels exemples les relacions ALUMNE i AULA que es 
          mostren en la taules següents.

          Si apliquem l’actualització en cascada tot esborrant el tuple <201, 30> de la relació AULA, 
          també s’esborraran els dos tuples de la relació ALUMNE que hi fan referència des de la clau 
          forana respectiva (CodiAula).

          En canvi, si apliquem l’actualització en cascada tot modificant el tuple <201, 30> de la 
          relació AULA, canviant el valor de la seva clau primària per un altre, com ara 203, els dos 
          tuples de la relació ALUMNE que hi fan referència actualitzaran en cascada el valor de 
          l’atribut CodiAula de 201 a 203, per tal de mantenir la connexió correcta entre els tuples
          d’ambdues relacions.
                    Taula Relació amb claus foranes

                    ALUMNE
                    ----------------------------------------------------------------------------
                    DNI 	Nom	Cognoms 	Telefon 	DNIDelegat	CodiAula

                    47126654F	Josep	Bel Rovira	453641282	47126654F	102
                    51354897S	Anna	Pacheco Cuscó	723352151	51354897S	201
                    56354981L	Xavier	Rius Montalvo	726922235	51354897S	201
                    24583215W	Mariona	Castellví Mur	NUL	        NUL      	NUL
                         Taula Relació amb clau primària referenciada

                         AULA
                         ----------------
                         Codi	Capacitat

                         101	40
                         102	36
                         201	30

Política d'anul·lació

La política d’anul·lació consisteix a permetre l’operació d’actualització de què es tracti en un tuple determinat, però disposant al mateix temps una sèrie d’operacions compensatòries que posin valors nuls en tots els atributs que formin part de les claus foranes dels tuples que facin referència al tuple objecte d’actualització:

  • En cas d’esborrament, els atributs de la clau forana dels tuples que facin referència al tuple esborrat passaran a tenir valor nul, i no indicaran cap tipus de connexió.
  • En cas de modificació, els atributs de la clau forana dels tuples que facin referència al tuple modificat passaran a tenir valor nul, i no indicaran cap tipus de connexió.

La política d’anul·lació només es pot aplicar si els atributs de les claus foranes implicades admeten els valors nuls.

          Exemple d'anul·lació

          Prenem una vegada més com a punt de partida dels exemples les relacions ALUMNE i AULA 
          que es mostren en les següents taules.

          Aplicant la política d’anul·lació, tant si esborrem el tuple <102, 36> de la relació AULA, 
          com si només canviem el valor de l’atribut de la seva clau primària (Codi) per un altre 
          (com, per exemple, 105), el tuple de la relació ALUMNE que hi fa referència actualitzarà el 
          valor de l’atribut CodiAula de 102 a valor nul, per tal d’evitar una connexió incorrecta entre 
          els tuples d’ambdues relacions, i aleshores resultarà el tuple següent:

          <47126654F, Josep, Bel Rovira, 453641282, 47126654F, NUL>
                    Taula Relació amb claus foranes

                    ALUMNE
                    ----------------------------------------------------------------------------
                    DNI 	Nom	Cognoms 	Telefon 	DNIDelegat	CodiAula

                    47126654F	Josep	Bel Rovira	453641282	47126654F	102
                    51354897S	Anna	Pacheco Cuscó	723352151	51354897S	201
                    56354981L	Xavier	Rius Montalvo	726922235	51354897S	201
                    24583215W	Mariona	Castellví Mur	NUL     	NUL     	NUL
                         Taula Relació amb clau primària referenciada

                         AULA
                         ----------------
                         Codi	Capacitat

                         101	40
                         102	36
                         201	30

Selecció de la política que s'ha de seguir

Serà el dissenyador de cada BD qui escollirà la política més adequada que s’ha de seguir en cada cas concret. Com a orientació, convé saber que les opcions més freqüents, sempre que no calgui fer consideracions addicionals, són les següents:

  • En cas d’esborrament, normalment s’opta per la restricció.
  • En cas de modificació, el més habitual és optar per l’actualització en cascada.

La política d’anul·lació és molt menys freqüent, i es posa en pràctica quan es volen conservar certes dades, encara que hagin perdut la connexió que tenien abans, de vegades amb l’esperança que la puguin recuperar més endavant.

Integritat del domini

La regla d’integritat del domini implica que tots els valors no nuls que contenen els atributs de les relacions de qualsevol BD han de pertànyer als respectius dominis declarats per als atributs en qüestió.

Aquesta condició és aplicable tant pel que fa als dominis predefinits, com també pel que fa als dominis definits per l’usuari.

La regla d’integritat del domini també comporta que els operadors que és possible aplicar sobre els valors depenen dels dominis dels respectius atributs que els emmagatzemen.

          Exemples d'integritat de domini

          Fixem-nos, per últim cop, en la relació AULA que es mostra en la següent taula.
                         Taula Exemple de relació amb clau primària referenciada

                         AULA

                         Codi	Capacitat

                         101	40
                         102	36
                         201	30

Si en la relació amb esquema AULA(Codi, Capacitat) definim el domini de l’atribut Codi com el dels nombres enters de 0 fins a 999, aleshores no podrem inserir, per exemple, un valor en l’atribut que forma la clau primària que no pertanyi al seu domini, com ara INF, o LAB.

Tampoc no podrem aplicar determinats operadors per comparar valors de la clau primària amb valors que no pertanyin al seu domini. Així, no podrem consultar les característiques d’una aula amb Codi=‘INF’, ja que ‘INF’ és una cadena de caràcters.

Traducció del model Entitat-Relació al model relacional

                        Model Entitat Relació o model ER
                        El model ER és un model de dades que té com a resultat un diagrama
                        ER o diagrama Chen on gràficament es poden identificar els principals 
                        elements de dades, les seves característiques més importants i les 
                        interrelacions entre els mateixos.

Una vegada conegudes les característiques d’un model de bases de dades relacional, caldrà partir del model conceptual general (del model Entitat-Relació) i fer un estudi del disseny lògic de bases de dades en aquest àmbit, el relacional.

En tots els exemples, pressuposarem que prèviament ha tingut lloc una fase de disseny conceptual de la qual ha resultat un model Entitat-Relació (o model ER) recollit en els diagrames Chen de què es tracti en cada cas.

                         Fases del disseny de BD

                         Les fases del disseny de BD són:

                          1. Disseny conceptual

                          2. Disseny lògic

                          3. Disseny físic

Abans d’implementar pròpiament la BD dins de l’entorn ofert pel SGBD utilitzat, cal transformar aquests diagrames en estructures de dades relacionals.

El model ER es basa en les entitats i en les interrelacions existents entre aquestes. Podem avançar uns quants aspectes generals sobre com s’han de traduir aquests elements al model relacional:

  • Les entitats sempre donen lloc a relacions, siguin del tipus que siguin (a excepció de les entitats auxiliars de tipus DATA).
  • Les interrelacions binàries de connectivitat 1-1 o 1-N originen claus foranes en relacions ja existents.
  • Les interrelacions binàries de connectivitat M-N i totes les n-àries d’ordre superior a 2 sempre es transformen en noves relacions.

És convenient seguir un cert ordre a l’hora de dissenyar lògicament una base de dades. Una bona pràctica pot consistir a procedir de la manera següent:

1. En primer lloc, cal transformar les entitats del diagrama amb el qual treballem en relacions.
2. Després s’ha de continuar transformant en relacions les entitats que presenten algun tipus d’especificitat (és a dir, les febles, les associatives, o les derivades d’un procés de generalització o especialització).
3. A continuació, s’han d’afegir a les anteriors relacions els atributs necessaris per formar les claus foranes derivades de les interrelacions binàries amb connectivitat 1-1 i 1-N presents en el diagrama ER.
4. I, finalment, ja pot començar la transformació de les interrelacions binàries amb connectivitat M-N i de les interrelacions n-àries.
                    Cap SGBD no pot resoldre una referència a una taula que encara no ha estat creada.

D’aquesta manera evitarem que hi hagi claus foranes que facin referència a relacions que encara no s’han descrit. Això fa més llegidor el model relacional obtingut, certament, però també estalvia la feina d’haver d’ordenar les relacions a l’hora d’escriure (típicament en llenguatge SQL) i les instruccions pertinents per tal que el SGBD utilitzat creï les taules de la base de dades.

Les tècniques necessàries per realitzar correctament el disseny lògic de bases de dades, segons el tipus de conceptualització de què es tracti en cada cas.

Entitats

Cada entitat del model ER es transforma en una relació del model relacional:

  • Els atributs de l’entitat originària seran els atributs de la relació resultant.
  • La clau primària de l’entitat originària serà la clau primària de la relació resultant.
  • Quan una entitat intervé en alguna interrelació binària 1-1 o 1-N, pot ser necessari afegir ulteriorment nous atributs, per tal que actuïn com a claus foranes de la relació.
         Exemple de transformació d'entitat

         El diagrama ER de la figura.1 es tradueix al model relacional de la manera següent:

         ALUMNE(DNI, Nom, Cognoms)
                ---
Entitat

Interrelacions

Un cop transformades totes les entitats en relacions, cal traduir les interrelacions en què aquelles participen.

1. Binàries. Per traduir les interrelacions binàries cal tenir en compte la seva connectivitat, així com també les dependències d’existència.

a. Connectivitat 1-1 i dependències d’existència. Cal afegir a qualsevol de les dues relacions una clau forana que faci referència a l’altra relació.

Però si una de les dues entitats és opcional en la relació, aleshores és ella qui ha d’acollir la clau forana, per tal d’evitar, en cas contrari, l’emmagatzematge de valors nuls en aquesta, i estalviar-se així espai d’emmagatzematge.

                    Dependències d'existència

                    De vegades, una entitat instància només té sentit si hi ha com a mínim una 
                    altra entitat instància que hi està associada mitjançant una interrelació 
                    binària determinada. En aquests casos, es diu de la darrera entitat que és 
                    una entitat obligatòria en la interrelació. Altrament, es diu que es tracta 
                    d’una entitat opcional en la interrelació.

Els atributs de la interrelació (si n’hi ha) acompanyen la clau forana.

          Exemple de transformació d'interrelació binària amb connectivitat 1-1

          El diagrama ER de la figura.2 representa una interrelació binària amb connectivitat 1-1.
          Per tant, en principi hi hauria dues possibilitats de transformació, segons si es col·loca 
          la clau forana en l’entitat PROFESSOR o en l’entitat DEPARTAMENT:

          DEPARTAMENT(Codi, Descripcio)
                      ----

          PROFESSOR(DNI, Nom, Cognoms, CodiDepartament) ON {CodiDepartament} REFERENCIA DEPARTAMENT i CodiDepartament ADMET VALORS NULS
                    ---


          O bé:

          PROFESSOR(DNI, Nom, Cognoms)
                    ---
          DEPARTAMENT(Codi, Descripcio, DNIProfessor) ON {DNIProfessor} REFERENCIA PROFESSOR
                      ----

          Ara bé, l’entitat DEPARTAMENT és opcional en la interrelació Coordina. Això vol dir que hi
          pot haver professors que no coordinin cap departament. Per tant, l’opció més correcta 
          consisteix a afegir la clau forana a la relació DEPARTAMENT, ja que si s’afegís a la relació 
          PROFESSOR hauria de prendre el valor nul en molts casos, i ocuparia un espai d’emmagatzematge 
          innecessari.
Interrelació binària amb connectivitat 1-1

b. Connectivitat 1-N. En aquests casos cal afegir una clau forana a la relació que resulta de traduir l’entitat ubicada al costat N de la interrelació, que faci referència a l’altra relació.

Si es col·loqués la clau forana en l’altra relació, l’atribut que la forma hauria de ser multivalent per tal de poder representar totes les connexions possibles, i això no està permès dins del model relacional.

Els atributs de la interrelació (si n’hi ha) acompanyen la clau forana.

          Exemple de transformació d'interrelació binària amb connectivitat 1-N

          El diagrama ER de la figura.3 representa una interrelació binària amb connectivitat 1-N. 
          Per tant, la clau forana s’haurà d’afegir necessàriament a l’entitat derivada de l’entitat 
          del costat N, i resulta el model següent:

          DEPARTAMENT(Codi, Descripcio)
                      ----
          PROFESSOR(DNI, Nom, Cognoms, CodiDepartament) ON {CodiDepartament} REFERENCIA DEPARTAMENT i 
                    ---          
          CodiDepartament ADMET VALORS NULS

          L’entitat del costat 1 (DEPARTAMENT) és opcional en la interrelació Treballa. Això implica 
          que l’entitat PROFESSOR admetrà valors nuls en la seva clau forana que fa referència a 
          DEPARTAMENT, ja que hi podrà haver professors no assignats a cap departament. Però, al 
          contrari del que passava amb les interrelacions 1-1, aquí no es podran evitar aquests valors 
          nuls, ja que la clau forana ha d’anar necessàriament a l’entitat que resulta de traduir al 
          model relacional l’entitat ubicada al costat N de la interrelació.
Interrelació binaria amb connectivitat 1-N

c. Connectivitat M-N. Cada interrelació M-N es transforma en una nova relació amb les característiques següents:

  • La seva clau primària estarà formada pels atributs de les claus primàries de les dues entitats interrelacionades.
  • Els atributs de la interrelació (si n’hi ha) es convertiran en atributs de la nova relació.
Interrelació binària amb connectivitat M-N
          Exemple de transformació d'interrelació binària amb connectivitat M-N

          El diagrama ER de la figura.4 es tradueix al model relacional de la manera següent:

          ALUMNE(DNI, Nom, Cognoms)
                 ---
          ESPORT(Codi, Descripcio)
                 ----
          PRACTICA(DNIAlumne, CodiEsport, DiaSemanal) ON {DNIAlumne} REFERENCIA ALUMNE i {CodiEsport} 
                   ---------------------
          REFERENCIA ESPORT

2. Ternàries. Tota interrelació ternària es transforma en una nova relació, que tindrà per atributs els de les claus primàries de les tres entitats interrelacionades, més els atributs propis de la interrelació, si en té.

La composició de clau primària de la nova relació depèn de la connectivitat de la interrelació ternària originària.

a. Connectivitat M-N-P. En aquest cas, la clau primària està formada per tots els atributs que formen les claus primàries de les tres entitats interrelacionades (si no fos així, la clau primària hauria de repetir algunes combinacions dels seus valors per tal de modelitzar totes les possibilitats, però aquesta possibilitat no està permesa dins del model relacional).

          Exemple de transformació d'interrelació ternària amb connectivitat M-N-P

          El diagrama ER de la figura.5 es tradueix al model relacional de la manera següent:

          ALUMNE(DNI, Nom, Cognoms)
                 ---
          ESPORT(Codi, Descripcio)
                 ----
          CURS(Codi)
               ----
          PRACTICA(DNIAlumne, CodiEsport, CodiCurs, DiaSemanal) ON {DNIAlumne} REFERENCIA ALUMNE 
                   -------------------------------
          {CodiEsport} REFERENCIA ESPORT i {CodiCurs} REFERENCIA CURS
Interrelació ternària amb connectivitat M-N-P

b. Connectivitat 1-M-N. La clau primària està composta per tots els atributs que formen les claus primàries de les dues entitats que són a tots dos costats de la interrelació etiquetats amb una N (o amb el que és equivalent, una fletxa de punta doble).

          Exemple de transformació d'interrelació ternària amb connectivitat 1-M-N

          El diagrama ER de la figura.6 es tradueix al model relacional de la manera següent:

          ALUMNE(DNI, Nom, Cognoms)
                 ---
          ESPORT(Codi, Descripció)
                 ----
          CURS(Codi)
               ----
          PRACTICA(DNIAlumne, CodiCurs, CodiEsport, DiaSemanal) ON {DNIAlumne} REFERENCIA ALUMNE 
                   -------------------
          {CodiEsport} REFERENCIA ESPORT, I {CodiCurs} REFERENCIA CURS

          Fixem-nos que, en aquest cas, un alumne només pot practicar un esport en cada curs acadèmic
          i, per tant, no cal incorporar la clau de l’entitat ESPORT a la clau de la relació PRACTICA.
Interrelació ternària amb connectivitat 1-M-N

c. Connectivitat 1-1-N. En aquests casos, la clau primària està composta pels atributs que formen la clau primària de l’entitat del costat N de la interrelació, més els atributs que formen la clau primària de qualsevol de les altres dues entitats connectades amb cardinalitat 1.

Així, doncs, tota nova relació derivada d’una interrelació ternària amb connectivitat 1-1-N disposarà de dues claus candidates. L’elecció d’una d’aquestes com a clau primària de la nova relació quedarà al criteri del dissenyador lògic de BD.

          Exemple de transformació d'interrelació ternària amb connectivitat 1-1-N

          El diagrama ER de la figura.7 es pot traduir al model relacional de dues maneres:
 
          ALUMNE(DNI, Nom, Cognoms)
                 ---
          ESPORT(Codi, Descripció)
                 ---- 
          CURS(Codi)
               ----
          COORDINACIO(CodiCurs, DNIAlumne, CodiEsport, DiaSemanal) ON {DNIAlumne} REFERENCIA ALUMNE
                      -------------------
          {CodiEsport} REFERENCIA ESPORT i {CodiCurs} REFERENCIA CURS

          O bé:

          ALUMNE(DNI, Nom, Cognoms)
                 ---
          ESPORT(Codi, Descripció)
                 ----
          CURS(Codi)
               ----
          COORDINACIO(CodiCurs, CodiEsport, DNIAlumne, DiaSemanal) ON {DNIAlumne} REFERENCIA ALUMNE 
                      --------------------
          {CodiEsport} REFERENCIA ESPORT i {CodiCurs} REFERENCIA CURS

          Es pot veure que hem modificat el nom de la relació derivada de la interrelació per tal 
          de convertir el verb originari en un substantiu, que normalment és més adequat per designar
          relacions.
Interrelació ternària amb connectivitat 1-1-N

d. Connectivitat 1-1-1. En aquests casos, la clau primària està composta pels atributs que formen la clau primària de dues entitats qualssevol, ja que totes tres estan connectades amb cardinalitat 1.

Així, doncs, tota nova relació derivada d’una interrelació ternària amb connectivitat 1-1-1 disposarà de tres claus candidates. L’elecció d’una d’aquestes com a clau primària de la nova relació quedarà al criteri del dissenyador lògic de BD.

          Exemple de transformació d'interrelació ternària amb connectivitat 1-1-1

          El diagrama ER de la figura.8 es pot traduir al model relacional de tres maneres:

          ALUMNE(DNI, Nom, Cognoms)
                 ---
          ESPORT(Codi, Descripció)
                 ----
          CURS(Codi)
               ----
          COORDINACIO(CodiCurs, DNIAlumne, CodiEsport, DiaSemanal) ON {DNIAlumne} REFERENCIA ALUMNE 
                      -------------------
          {CodiEsport} REFERENCIA ESPORT i {CodiCurs} REFERENCIA CURS

O bé:


          ALUMNE(DNI, Nom, Cognoms)
                 ---
          ESPORT(Codi, Descripció)
                 ----
          CURS(Codi)
               ----
          COORDINACIO(CodiCurs, CodiEsport, DNIAlumne, DiaSemanal) ON {DNIAlumne} REFERENCIA ALUMNE 
                      --------------------
          {CodiEsport} REFERENCIA ESPORT i {CodiCurs} REFERENCIA CURS
O bé:


          ALUMNE(DNI, Nom, Cognoms)
                 ---
          ESPORT(Codi, Descripció)
                 ----
          CURS(Codi)
               ----
          COORDINACIO(CodiEsport, DNIAlumne, CodiCurs, DiaSemanal) ON {DNIAlumne} REFERENCIA ALUMNE 
                      ---------------------
          {CodiEsport} REFERENCIA ESPORT i {CodiCurs} REFERENCIA CURS

          Fixem-nos que hem canviat el significat del diagrama respecte al que hem representat en 
          la figura.7: ara un alumne només pot coordinar la pràctica d’un esport durant un sol curs 
          acadèmic, al llarg dels seus estudis, per tal d’afavorir la rotació en els càrrecs de 
          coordinació del centre.
Interrelació ternària amb connectivitat 1-1-1

3. n-àries. Cada interrelació n-ària es transforma en una nova relació, que té com a atributs les claus primàries de totes les entitats relacionades, més els atributs propis de la interrelació originària, si en té.

La composició de la clau primària de la nova relació depèn de la connectivitat de la interrelació n-ària.

a. Connectivitat de totes les entitats amb cardinalitat N. La clau primària està formada per tots els atributs que formen les claus primàries de totes les entitats interrelacionades (n).

Cal seguir el mateix mecanisme que amb les interrelacions ternàries amb connectivitat M-N-P.

b. Connectivitat d’una o més entitats amb cardinalitat 1. La clau primària està formada per tots els atributs que formen les claus primàries de totes les entitats interrelacionades excepte una (n-1). L’entitat que no incorpora la seva clau primària a la de la nova relació ha d’estar forçosament connectada amb un 1.

Cal seguir el mateix mecanisme que amb les interrelacions ternàries amb connectivitat 1-M-N, 1-1-N i 1-1-1.

4. Recursives. Les interrelacions recursives traduïdes es comporten de la mateixa manera que la de la resta d’interrelacions:

  • Les binàries amb connectivitat 1-1 i 1-N donen lloc a una clau forana.
  • Les binàries amb connectivitat M-N i les n-àries originen una nova relació.

a. Binàries amb connectivitat 1-1 o 1-N. En aquestes situacions, cal afegir a la relació sorgida de l’entitat originària que es relaciona amb ella mateixa una clau forana que faci referència a la pròpia clau primària.

Evidentment, els atributs de la clau forana no poden tenir els mateixos noms que els de la clau primària als quals fan referència, ja que tots dos es troben en la mateixa relació, i això atemptaria contra els principis del model relacional.

Interrelació recursiva binària amb connectivitat 1-N
          Exemple de transformació d'interrelació recursiva binària amb connectivitat 1-N

          El diagrama ER de la figura.9 es tradueix al model relacional de la manera següent:

          ALUMNE(DNI, Nom, Cognoms, DNIDelegat) ON {DNIDelegat} REFERENCIA ALUMNE
                 ---

b. Binàries amb connectivitat M-N. Quan la interrelació recursiva binària té connectivitat M-N s’origina una nova relació, la qual té com a clau primària els atributs que formen la clau primària de l’entitat originària, però dos cops, ja que cal modelitzar el fet que l’única entitat que intervé en la conceptualització prevista s’interrelaciona amb ella mateixa (i no pas amb una altra de diferent).

Cal modificar convenientment els noms d’aquests atributs que són presents dos cops en la nova relació perquè no coincideixin, i respectar així les directrius del model relacional.

          Exemple de transformació d'interrelació recursiva binària amb connectivitat M-N

          El diagrama ER de la figura.10 es tradueix al model relacional de la manera següent:

          ASSIGNATURA (Codi, Descripcio)
                       ----
          PRERREQUISIT(CodiAssignatura, CodiPrerrequisit) ON {CodiAssignatura} REFERENCIA ASSIGNATURA i 
                       ---------------------------------
          {CodiPrerrequisit} REFERENCIA ASSIGNATURA
Interrelació recursiva binària amb connectivitat M-N

c. n-àries. S’origina una nova relació, la clau primària de la qual es construeix de manera diferent en funció de la connectivitat:

Quan la connexió de totes les entitats es produeix amb cardinalitat N, la clau primària de la nova relació es compon de tots els atributs que formen part de les claus primàries de totes les entitats interrelacionades (n).

Quan la connexió d’una o més de les entitats es produeix amb cardinalitat 1, la clau primària de la nova relació es compon de tots els atributs que formen les claus primàries de totes les entitats interrelacionades excepte una (n-1). L’entitat que no incorpora la seva clau primària a la de la nova relació ha d’estar forçosament connectada amb un 1.

          Exemple de transformació d'interrelació recursiva n-ària

          El diagrama ER de la figura.11 es tradueix al model relacional de la manera següent:

          ALUMNE(DNI, Nom, Cognoms)
                 ---
          ASSIGNATURA(Codi, Descripcio)
                      ----
          DELEGAT(DNIAlumne, CodiAssignatura, DNIDelegat) ON {DNIAlumne} REFERENCIA ALUMNE, 
                  --------------------------
          {CodiAssignatura} REFERENCIA ASSIGNATURA i {DNIDelegat} REFERENCIA ALUMNE

          Fixem-nos que hem incorporat a la clau primària de la nova relació els atributs que 
          formen les claus primàries de les dues entitats connectades amb cardinalitat N, és a 
          dir, ASSIGNATURA i ALUMNE, però des de la posició dels alumnes que no són delegats.
 
          D’aquesta manera, es modelitza el fet que cada alumne té un delegat per a cada assignatura,
          i que el delegat de cada assignatura representa una pluralitat d’alumnes.
Interrelació recursiva n-ària

Entitats febles

Com que les entitats febles sempre estan situades en el costat N d’una interrelació 1-N que els serveix per completar la identificació inequívoca de les seves instàncies, la relació derivada de l’entitat feble ha d’incorporar a la seva clau primària els atributs que formen la clau primària de l’entitat de la qual són tributàries. Els atributs esmentats constitueixen, simultàniament, una clau forana que fa referència a l’entitat de la qual depenen.

         Exemple de transformació d'entitat feble

         El diagrama ER de la figura.12 es tradueix al model relacional de la manera següent:

         CICLE(CodiCicle)
               ---------
         ASSIGNATURA(CodiCicle, CodiAssignatura) ON {CodiCicle} REFERENCIA CICLE
                     --------------------------
Entitat feble

Generalització i especialització

En aquests casos, tant l’entitat superclasse com les entitats de tipus subclasse es transformen en noves relacions.

La relació derivada de la superclasse hereta d’aquesta la clau primària. A més, s’encarrega d’emmagatzemar els atributs comuns a tota l’especialització o generalització.

Les relacions derivades de les entitats de tipus subclasse també tenen, com a clau primària, la clau de l’entitat superclasse, que al mateix temps actua com a clau forana, en referenciar l’entitat derivada de la superclasse.

          Exemple de transformació de generalització o especialització

          La figura.13 mostra un encadenament de generalitzacions o especialitzacions. Si el 
          traduïm a un model relacional obtenim el resultat següent:

          PERSONA(DNI, Nom, Cognoms, Telefon)
                  ---
          PROFESSOR(DNI, Sou) ON {DNI} REFERENCIA PERSONA
                    ---
          ALUMNE(DNI) ON {DNI} REFERENCIA PERSONA
                 ---
          INFORMATIC(DNI, EspecialitatMaquinari, EspecialitatProgramari) ON {DNI} REFERENCIA PROFESSOR
                     ---
          ADMINISTRATIU(DNI, Titulacio, Especialitat) ON {DNI} REFERENCIA PROFESSOR
                        ---
Generalització i especialització

Entitats associatives

Les entitats associatives es basen en una interrelació entre entitats. La traducció d’aquesta interrelació a un model relacional equival a la traducció de l’entitat associativa.

Entitat associativa
         Exemple de transformació d'entitat associativa

         El diagrama ER de la figura.14 es tradueix al model relacional de la manera següent:

         ALUMNE(DNI, Nom, Cognoms)
                ---
         ESPORT(Codi, Descripcio)
                ----
         PROFESSOR(DNI, Nom, Cognoms)
                   ---
         PRACTICA(DNIAlumne, CodiEsport, DNIProfessor) ON {DNIAlumne} REFERENCIA ALUMNE, {CodiEsport} 
                  ---------------------
         REFERENCIA ESPORT i {DNIProfessor} REFERENCIA PROFESSOR

         Fixem-nos com la relació PRACTICA, derivada de l’entitat associativa, incorpora una clau forana
         que fa referència a la relació PROFESSOR, ja que l’entitat associativa originària és al costat 
         N d’una interrelació binària amb l’entitat PROFESSOR.