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.

  1. 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ó

  1. Transformar Entitats Fortes en Taules
  2. Transformar Entitats Febles en Taules
  3. Transformar Relacions en Taules
  4. Transformar Atributs en Columnes
  5. Definir Claus Primàries i Estrangeres

  1. 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ó:

CREATE TABLE Estudiant (
    ID INT PRIMARY KEY,
    Nom VARCHAR(100),
    DataNaixement DATE
);

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)
);

  1. 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)
);

  1. 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)
);

  1. 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 fa Comanda (1:N)

Transformació:

  1. Entitat Client:
CREATE TABLE Client (
    ID INT PRIMARY KEY,
    Nom VARCHAR(100),
    Adreça VARCHAR(200)
);
  1. 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.

© Copyright 2024. Tots els drets reservats