2. Conceptes bàsics del model relacional
2.1. Models i esquemes
Durant la fase de disseny lògic transformarem l'Esquema Conceptual (Diagrama Entitat-Relació) en un Esquema Lògic. Com? Es pot fer de diferents maneres, anomenades models lògics.
Models Lògics
Tradicionalment, tenim tres tipus de models lògics:
- Model Lògic Relacional (el que s'utilitza actualment)
- Model Lògic Jeràrquic
- Model Lògic Xarxa

Nosaltres utilitzarem el Model Lògic Relacional, en el qual, a partir d'un esquema E-R, obtindrem un Esquema Lògic Relacional.
Cal diferenciar entre "model" i "esquema":
- Model de dades: és l'eina intel·lectual (conjunt de conceptes i regles) que permet representar els aspectes estàtics i dinàmics de la part del món real que volem estudiar.
- Esquema: és la representació concreta de la part del món real utilitzant un model de dades.
2.2. Elements del model relacional
Els distints tipus d'elements que veiérem en el model E-R tenen noms diferents en les diferents fases del cicle de vida:
| Fase: | ANÀLISI | DISSENY | IMPLEMENTACIÓ |
|---|---|---|---|
| Model: | E-R | Relacional | Físic |
| Objectes | Entitats i Relacions | Relacions | Taules |
| Característiques | Atributs | Camps | Columnes |
| Dades | Ocurrències | Registres o tuples | Files |
El model relacional (Edgard Codd 1970) representa una BBDD com un conjunt de relacions. Per exemple, la relació EMPLEATS podria ser esta:
| CAMPS | ||||
|---|---|---|---|---|
| DNI | Nom | Cognom | Adreça | |
| REGISTRES (tuples) | 27456363Z | Pep | Garcia | c/ Sequial, 3 |
| 32456783X | Marta | Pineda | c/ Nou, 17, 3a | |
| 12345678A | Manel | Meseguer | c/ Niu, 33 | |
| 98765432Y | Joan | Roda |
Els camps són els noms de les propietats d'una relació.
Cada registre representa un conjunt de valors de dades relacionades entre sí.
És a dir, una relació està formada per camps i per registres, complint les següents condicions:
- No hi ha tuples duplicades en una relació
- No hi ha ordre entre les tuples
No és el mateix una taula i una relació. Les taules són la implementació de les relacions, on les files i columnes tindran un ordre en concret. Ara bé, abusant del llenguatge, per a no confondre les "relacions" del disseny (les taules) amb les "relacions" de l'anàlisi (els rombes), utilitzarem indistintament els termes de "taula" i "relació".
2.2.1 Claus de les taules
En el model relacional, les tuples no poden estar duplicades. Per a això estan les claus.
Hi ha distints tipus de claus:
- Clau candidata (primàries / alternatives)
- Clau aliena
Tipus de claus
És un atribut (o més d'un) de la taula que complix 2 condicions:
- Unicitat (identificació única). No poden haver dos tuples de R amb el mateix valor de cadascun dels atributs de la clau.
- Minimalitat (no redundància). No sobra cap atribut de la clau. És a dir: cap dels atributs de la clau pot ser eliminat sense que el conjunt resultant deixe de complir la propietat anterior.
Exemple de clau
Suposem que tenim la taula \(PROFESSOR = \underline{dni + nif} + nom + dpt\).
La clau NO pot ser \(\underline{dni + nif}\) perquè puc eliminar el nif de la clau, i la nova clau resultant seguix complint la primera propietat (identifica unívocament cada registre).
Cadascuna de les claus d'una taula. Hi ha 2 tipus:
- Clau primària: De totes les claus d'una taula, s'elegix una com a clau primària. Aquesta ha de complir la condició que no podran haver valors nuls en eixa clau.
- Clau alternativa: Totes les altres claus. Sempre hi haurà una clau primària, però potser no hi haja una clau alternativa. Suposarem que el SGBD accepta valors nuls en les claus alternatives.
Atribut (o conjunt d'atributs) d'una taula, el valor del qual ha de coincidir amb el valor de la clau primària d'una altra taula, a la qual referencia.
Les claus alienes servixen per a representar les relacions entre entitats de l'E-R.
Exemple de clau aliena
DEPARTAMENTS = \(\underline{dept}\) + nom_dept + ...
PROFESSORS = \(\underline{dni}\) + nom + ... + dpt
- C. Ali : dpt DEPARTAMENTS (dept)
Estem dient que dpt és una clau aliena i identifica el DEPARTAMENT: els valors de dpt que apareixen en PROFESSORS han d’estar també com a valors de la clau primària de DEPARTAMENTS (és a dir, en dept).
2.2.2 Restricció de Valor No Nul (VNN)
Si en una relació se li posa esta restricció en un atribut, cap valor d'este atribut podrà ser nul.
En el model relacional, per a expressar que un atribut té una restricció de valor no nul, ho indicarem amb VNN. Per exemple:
Notació
PROFESSORS = \(\underline{dni}\) + nom + ... + dpt
VNN: nom
2.2.3 Restriccions d'integritat implícites
Hi ha algunes restriccions que no cal indicar-les a l'esquema lògic perquè ja se sobreentenen. Estan implícites en el model:
- Integritat de claus (clau primària): Cap atribut component de la clau primària d'una relació pot tindre un valor nul.
- Integritat referencial (clau aliena): Si algun valor d'una clau aliena no és nul, haurà de ser igual a algun valor del camp de la taula a la qual fa referència.
Exemple de integritat referencial
\(DEPARTAMENTS = \underline{dept} + nom\_dept + \ldots\)
\(PROFESSORS = \underline{dni} + nom + ... + dpt\)
- C. Ali : dpt DEPARTAMENTS (dept)
Hem vist que que dpt és una clau aliena. Ocòrre que:
- Bé te valor nul (un professor no té departament assignat)
- Bé te un valor que ha d'estar en la clau primària de DEPARTAMENTS (és a dir, en
dept).
Notació
Per a indicar que un camp és clau primària, subratllarem eixe camp.
Per a indicar que un camp és una clau aliena, ho indicarem amb "C. Ali".
2.3. Altres consideracions
2.3.1 Esquema d'una taula
L'esquema d'una taula T, denotat per \(T = \underline{A_1} + A_2 + \dots + A_n\), es composa del nom de la taula (T) i de la llista dels atributs de la taula (\(A_1, ..., A_n\)). A més, tot esquema de taula ha de tindre una clau primària, que s'acostuma a subratllar.
Exemple d'esquema de taula
\(EMPLEATS = \underline{dni} + Nom + Cognoms + Adreça\)
Exemples d’ocurrències (registres) de la taula EMPLEATS:
| dni | Nom | Cognoms | Adreça |
|---|---|---|---|
| 27456363Z | Pep | Garcia Martinez | c/ Sequial, 3 |
| 32456783X | Marta | Pineda Albors | c/ Nou, 17, 3a |
| 12345678A | Manel |
Una BD relacional sol contindre moltes taules. Per exemple, la BD Institut podria estar formada per les taules: PROFESSORS, ASSIGNATURES, ALUMNES i GRUPS.
2.3.2 Claus alienes i navegació
Una clau aliena pot fer referència a la seua pròpia taula.

2.3.3 Algunes observacions
- Un mateix concepte del món real, al representar-se com un atribut, pot tindre noms diferents a les taules on apareix ("dpt", "dept", "depart", ...)
- Les relacions del E-R (és a dir, els "rombes" i "triangles") es representaran en l'esquema relacional amb les claus primàries i alienes de les taules.
- En un esquema relacional caldrà crear:
- Una taula per cada entitat
- Una taula per cada atribut multivalent
- Una taula per cada relació ternària
- Una taula per cada relació binària M:M
Tenint en compte les claus alienes, podem "navegar" per les taules.
