Salta el contingut

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

Una idea diversos models

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:

  1. No hi ha tuples duplicades en una relació
  2. 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:

  1. Unicitat (identificació única). No poden haver dos tuples de R amb el mateix valor de cadascun dels atributs de la clau.
  2. 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.

Claus alienes i navegació

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.

Claus alienes i navegació