Diferència entre revisions de la pàgina «M2 - Bases de dades / UF1NF3: Model relacional»

De wikiserver
Dreceres ràpides: navegació, cerca
(Esquema i extensió)
(Estructuració de les dades)
Línia 64: Línia 64:
 
               -------------------------------------------------
 
               -------------------------------------------------
 
               DNI      Nom Cognoms         Telefon
 
               DNI      Nom Cognoms         Telefon
 +
 
               47126654F Josep Bel Rovira 453641282
 
               47126654F Josep Bel Rovira 453641282
 
               51354897S Anna Pacheco Cuscó 723352151
 
               51354897S Anna Pacheco Cuscó 723352151

Revisió del 19:12, 28 oct 2014

          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.

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, , 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 taula.2, 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.3), 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 3 é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.3, 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.