1. Bases de dades relacionals

1.2. El model entitat-relació

Podem estructurar qualsevol realitat en diferents entitats que poden interactuar entre elles seguint determinades regles. Per exemple, el genoma, en tant que part de la realitat biològica d’una cèl·lula, també es pot estructurar en diferents components. A partir d’aquesta organització artificialment construïda, podem modelar la totalitat dels elements que el conformen utilitzant entitats i relacions. Aquestes estructures, contenidors d’informació o dades poden ser digitalitzats en un ordinador per a la seva gestió i anàlisi; en el cas del genoma, anàlisis bioinformàtics.

El model entitat-relació ens ajuda a dissenyar la nostra pròpia base de dades. Una entitat representa una mena d’elements en l’entorn real que desitgem modelar. Una ocurrència és una instància o exemple particular d’una entitat. La connectivitat o participació entre entitats s’ha d’especificar explícitament mitjançant relacions. El nombre d’ocurrències d’una entitat que podran relacionar-se amb instàncies d’una altra entitat serà:

  • Un a un (1:1): un element de la primera entitat pot relacionar-se amb un únic element de la segona.
  • Un a diversos (1:N): un element de la primera entitat pot relacionar-se amb diversos elements de la segona (però no al contrari).
  • Diversos amb diversos (M:N): un element de la primera entitat pot relacionar-se amb diversos elements de la segona (i viceversa).
Figura 1. Model entitat-relació d’un catàleg de gens.
Font: elaboració pròpia.

El model conté tres entitats i dues relacions. Gràficament, les entitats es representen utilitzant rectangles, i les relacions, mitjançant línies rectes amb un rombe per indicar la connectivitat.

Aquest esquema basat en entitats i relacions resulta senzill d’emprar posteriorment per construir la base de dades definitiva. Per mostrar les diferents etapes de disseny, procedirem a modelar un escenari molt habitual en entorns de recerca bioinformàtics: la caracterització del catàleg de gens d’un genoma. Podeu observar les diferents entitats amb els seus atributs i les relacions entre entitats que han de formar el nostre model en la figura 1.

Els gens són fragments d’ADN ubicats en una localització precisa del genoma que codifiquen la seqüència d’una proteïna. Aquestes molècules, d’altra banda, exerceixen una funció biològica específica dins de l'organisme. Lògicament, cada genoma posseeix el seu propi catàleg de gens. Analitzant aquesta informació prèvia, decidim modelar aquest entorn utilitzant les entitats gens, genomes i funcions, amb els seus propis atributs (mostrats en la figura 2).

Lògicament, les entitats no són objectes aïllats del seu entorn. Per tant, hem de complint les especificacions del nostre problema, unir mitjançant relacions aquelles entitats que estan interconnectades en el món real. En aquest cas, els gens tenen la capacitat de pertànyer a un genoma per desenvolupar una funció concreta en l’organisme. Per satisfer ambdues propietats, definim les relacions binàries pertinença i anotacions, cadascuna amb una connectivitat diferent (figura 1). Les entitats i relacions que formen aquest model han de ser convertides en taules. Les entitats i els seus atributs passaran a ser taules de la nostra base de dades, però no totes les relacions seran taules, depèn del tipus de connectivitat. És bàsic establir per a cada taula un atribut especial (o una combinació d’atributs) que identifiqui cada instància de forma unívoca. Aquest atribut especial rep el nom de clau primària. És preferible usar un codi característic en lloc d’un nom per facilitar la identificació de qualsevol instància mitjançant la clau primària (per exemple, un codi numèric assignat en funció de l’ordre d’entrada a la taula).

Figura 2. Entitats convertides en taules.
Hem subratllat la clau primària de cada taula.
Font: elaboració pròpia.

Les dues relacions existents en el nostre esquema s’han de modelar de diferent forma, atès que cadascuna presenta una combinació diferent de possibles ocurrències entre taules. L’associació entre les taules gens i genomes s’ha de representar amb una relació amb cardinalitat 1:N, ja que un gen només pertany a un genoma, però un genoma conté molts gens. Aquesta relació no necessita una taula nova, pot implementar-se referenciant simplement des d’una taula (gens), que és la part n de la relació pertinença, la clau primària de l’altra (genomes), que és la part 1 de la relació pertinença. Dins de la taula gens, aquest atribut rep la denominació de clau forana.

Figura 3. Relacions (1:N) convertides en claus foranes.
Indiquem amb un subratllat superior la clau forana de cada taula.
Font: elaboració pròpia.

La relació anotacions entre les taules gens i funcions té una connectivitat M:N, ja que un gen pot posseir diverses anotacions, però una anotació també pot ser compartida per diversos gens. Per a la seva correcta implementació, hi introduirem una nova taula anomenada anotacions. Aquesta posseirà, com a clau primària, la combinació de les claus primàries de cada taula original.

Atès que ambdues claus primàries per separat posseeixen totes les propietats necessàries, el dissenyador garanteix amb aquesta mesura que cada instància d’aquesta nova taula estarà dotada d’un identificador únic, que estarà format pel nom del gen juntament amb el nom de la funció en particular perquè sigui un identificador de la instància únic que no es pugui repetir.

Figura 4. Relacions (M:N) convertides en taules.
Font: elaboració pròpia.

Les relacions amb cardinalitat M:N exportades des del model entitat-relació estan caracteritzades també pels seus propis atributs. Així, és possible afegir un camp per guardar l’origen de cada anotació (per exemple, computacional, experimental o font bibliogràfica). Podem extreure aquesta informació a partir de les dades recuperades del sistema d’anotació automàtica utilitzat per poblar d’exemples el nostre catàleg de gens:

Figura 5. Atributs en relacions convertides en taules.
Font: elaboració pròpia.

La selecció de les claus idònies resulta essencial dins del disseny d’una base de dades relacional. De fet, la integritat d’un model relacional ha de complir dos requisits fonamentals relacionats amb la gestió d’aquestes:

  1. La clau primària no ha de contenir un valor indefinit o nul i el valor ha de ser únic.
  2. La clau forana ha de fer referència a una clau primària d’una altra taula.