Les bases de dades relacionals

Una base de dades relacional organitza les dades en una o més entitats i relacions entre elles.

_images/exemple_bbdd.svg

Exemple de base de dades dels cursos impartits en un conjunt de centres docents

La implementació d’aquest model sol utilitzar taules de files i columnes, amb una clau única que identifica cada fila. Les files també s’anomenen registres o tuples. Les columnes també s’anomenen camps o atributs. Generalment, cada taula/relació representa un «tipus d’entitat» (com ara «estudiant», «curs» o «centre docent»). Els registres representen instàncies d’aquest tipus d’entitat (com ara «Puig Serra» o «Història contemporània») i les columnes representen valors d’atribuïts a aquesta instància (com ara «dni» o «adreça»).

Cada fila d’una taula té la seva pròpia clau única. Les files d’una taula es poden enllaçar amb files d’altres taules afegint una columna per a la clau única de la fila enllaçada. Aquestes columnes es coneixen com a claus foranes.

Relacions entre entitats

En el model relacional, s’accedeix a les dades emmagatzemades com a relacions. Les relacions que es desen s’anomenen «relacions base» i s’implementen mitjançant taules. D’altres relacions no emmagatzemen dades, sinó que es calculen aplicant operacions (relacionals) sobre relacions base. Són les anomenades «relacions derivades». En la implementació, se solen anomenar «vistes» o «consultes» (views, queries).

Tipus de relacions entre entitats:

  • Relació un a un (1:1). Per exemple, el director d’un departament

  • Relació un a molts (1:n). Per exemple, els professors d’un departament

  • Relació molts a molts (n:m). Per exemple, els cursos als que s’han matriculat els estudiants. S’implementen com una nova taula amb claus foranes.

_images/exemple_taules.svg

Taules i registres de la base de dades de l’exemple anterior

Dominis i restriccions

El domini és el conjunt de possibles valors d’un camp. Normalment és d’un tipus conegut, com ara un string, un enter o una imatge.

Una restricció és una condició sobre els valors de les dades emmagatzemades. Habitualment s’expressen com un predicat, una condició booleana. Les dues restriccions principals del model relacional són la integritat de les entitats i la integritat de les referències.

La integritat de les entitats consisteix en assegurar que cada valor d’una clau primària és únic i no nul. Així, cada registre ha de representar una única instància del tipus d’entitat modelitzat per la taula/entitat.

La integritat de les referències consisteix en assegurar que els valors dels atributs que són claus foranes d’una entitat han de ser de claus primàries vàlides de l’entitat a la qual fan referència. De vegades també s’hi admeten valors nuls. En altres paraules, tot valor d’una clau forana ha de fer referència a una clau primària existent a la taula de referència.

A part d’aquestes dues, el model relacional admet altres restriccions, com ara els valors dels atributs. Per exemple, una restricció pot limitar els valors d’un atribut enter entre 1 i 10. D’altres restriccions poden referir-se a més d’un atribut, limitant-ne les combinacions possibles, o a tota una relació sencera.