En aquest tema, aprendrem com transformar diagrames Entitat-Relació (ER) en esquemes relacionals. Aquesta transformació és crucial per implementar el disseny conceptual d'una base de dades en un sistema de gestió de bases de dades (SGBD) relacional.
Objectius d'Aprenentatge
- Comprendre els passos per transformar diagrames ER en esquemes relacionals.
- Aplicar les regles de transformació a entitats, relacions i atributs.
- Crear taules relacionals a partir de diagrames ER.
- Introducció a la Transformació de Diagrames ER
Els diagrames ER són una representació gràfica del model conceptual d'una base de dades. Per implementar aquest model en un SGBD relacional, hem de convertir-lo en un esquema relacional, que consisteix en un conjunt de taules.
Passos Generals per a la Transformació
- Transformar Entitats Fortes en Taules
- Transformar Entitats Febles en Taules
- Transformar Relacions en Taules
- Transformar Atributs en Columnes
- Definir Claus Primàries i Estrangeres
- Transformació d'Entitats
2.1 Entitats Fortes
Cada entitat forta en un diagrama ER es converteix en una taula en l'esquema relacional.
Exemple:
Entitat Estudiant
amb atributs ID
, Nom
, DataNaixement
.
Estudiant |
---|
ID |
Nom |
DataNaixement |
Transformació:
2.2 Entitats Febles
Les entitats febles depenen d'una entitat forta i es transformen en taules amb una clau primària composta que inclou la clau primària de l'entitat forta.
Exemple:
Entitat Dependents
amb atributs Nom
, Relació
, depenent de Estudiant
.
Dependents |
---|
Nom |
Relació |
EstudiantID |
Transformació:
CREATE TABLE Dependents ( Nom VARCHAR(100), Relació VARCHAR(50), EstudiantID INT, PRIMARY KEY (Nom, EstudiantID), FOREIGN KEY (EstudiantID) REFERENCES Estudiant(ID) );
- Transformació de Relacions
3.1 Relacions Un a Un (1:1)
Les relacions un a un es poden implementar afegint una clau estrangera a una de les taules implicades.
Exemple:
Relació entre Estudiant
i Carnet
.
Carnet |
---|
ID |
DataExpedició |
EstudiantID |
Transformació:
CREATE TABLE Carnet ( ID INT PRIMARY KEY, DataExpedició DATE, EstudiantID INT UNIQUE, FOREIGN KEY (EstudiantID) REFERENCES Estudiant(ID) );
3.2 Relacions Un a Molts (1:N)
Les relacions un a molts es transformen afegint una clau estrangera a la taula del costat "molts".
Exemple:
Relació entre Professor
i Assignatura
.
Assignatura |
---|
ID |
Nom |
ProfessorID |
Transformació:
CREATE TABLE Assignatura ( ID INT PRIMARY KEY, Nom VARCHAR(100), ProfessorID INT, FOREIGN KEY (ProfessorID) REFERENCES Professor(ID) );
3.3 Relacions Molts a Molts (M:N)
Les relacions molts a molts es transformen creant una taula intermèdia que conté les claus primàries de les dues taules implicades.
Exemple:
Relació entre Estudiant
i Assignatura
.
Estudiant_Assignatura |
---|
EstudiantID |
AssignaturaID |
Transformació:
CREATE TABLE Estudiant_Assignatura ( EstudiantID INT, AssignaturaID INT, PRIMARY KEY (EstudiantID, AssignaturaID), FOREIGN KEY (EstudiantID) REFERENCES Estudiant(ID), FOREIGN KEY (AssignaturaID) REFERENCES Assignatura(ID) );
- Transformació d'Atributs
Els atributs de les entitats i relacions es transformen en columnes de les taules corresponents. Els atributs compostos es descomponen en atributs simples.
Exemple:
Atribut Adreça
compost per Carrer
, Ciutat
, CodiPostal
.
Transformació:
CREATE TABLE Estudiant ( ID INT PRIMARY KEY, Nom VARCHAR(100), DataNaixement DATE, Carrer VARCHAR(100), Ciutat VARCHAR(50), CodiPostal VARCHAR(10) );
- Definició de Claus Primàries i Estrangeres
Les claus primàries es defineixen per garantir la unicitat de les files en una taula. Les claus estrangeres es defineixen per mantenir la integritat referencial entre taules.
Exemple:
CREATE TABLE Professor ( ID INT PRIMARY KEY, Nom VARCHAR(100) ); CREATE TABLE Assignatura ( ID INT PRIMARY KEY, Nom VARCHAR(100), ProfessorID INT, FOREIGN KEY (ProfessorID) REFERENCES Professor(ID) );
Exercici Pràctic
Diagrama ER:
Entitats:
Client
(ID, Nom, Adreça)Comanda
(ID, Data, ClientID)
Relació:
Client
faComanda
(1:N)
Transformació:
- Entitat
Client
:
- Entitat
Comanda
:
CREATE TABLE Comanda ( ID INT PRIMARY KEY, Data DATE, ClientID INT, FOREIGN KEY (ClientID) REFERENCES Client(ID) );
Resum
En aquesta secció, hem après a transformar diagrames ER en esquemes relacionals seguint una sèrie de passos sistemàtics. Hem vist com transformar entitats fortes i febles, relacions un a un, un a molts i molts a molts, així com atributs en columnes. També hem après a definir claus primàries i estrangeres per mantenir la integritat de les dades.
En el següent tema, explorarem els conceptes de normalització per optimitzar els nostres esquemes relacionals.
Fonaments de Bases de Dades
Mòdul 1: Introducció a les Bases de Dades
- Conceptes Bàsics de Bases de Dades
- Tipus de Bases de Dades
- Història i Evolució de les Bases de Dades
Mòdul 2: Bases de Dades Relacionals
Mòdul 3: Bases de Dades No Relacionals
- Introducció a NoSQL
- Tipus de Bases de Dades NoSQL
- Comparació entre Bases de Dades Relacionals i No Relacionals
Mòdul 4: Disseny d'Esquemes
- Principis de Disseny d'Esquemes
- Diagrames Entitat-Relació (ER)
- Transformació de Diagrames ER a Esquemes Relacionals