Introducció
El model relacional és un dels models de bases de dades més utilitzats i es basa en la teoria de conjunts i la lògica de predicats. Va ser proposat per Edgar F. Codd el 1970 i ha estat la base per a molts sistemes de gestió de bases de dades (SGBD) comercials.
Conceptes Clau
- Taula (Relació)
- Definició: Una taula és una col·lecció de dades organitzades en files i columnes.
- Files (Tuples): Cada fila representa un registre únic.
- Columnes (Atributs): Cada columna representa una característica del registre.
- Esquema de Relació
- Definició: L'estructura d'una taula, incloent els noms de les columnes i els seus tipus de dades.
- Exemple:
Estudiants(Nom, Cognom, Edat, Curs)
- Clau Primària (Primary Key)
- Definició: Un atribut o conjunt d'atributs que identifica de manera única una fila en una taula.
- Exemple:
Estudiants(ID_Estudiant, Nom, Cognom, Edat, Curs)
- Clau Forana (Foreign Key)
- Definició: Un atribut o conjunt d'atributs en una taula que fa referència a la clau primària d'una altra taula.
- Exemple:
Matrícules(ID_Matrícula, ID_Estudiant, ID_Curs)
- Integritat Referencial
- Definició: Assegura que les relacions entre taules es mantinguin consistents.
- Exemple: Si un estudiant és eliminat de la taula
Estudiants
, totes les seves matrícules haurien de ser eliminades de la taulaMatrícules
.
Exemples Pràctics
Creació de Taules
CREATE TABLE Estudiants ( ID_Estudiant INT PRIMARY KEY, Nom VARCHAR(50), Cognom VARCHAR(50), Edat INT, Curs VARCHAR(50) ); CREATE TABLE Matrícules ( ID_Matrícula INT PRIMARY KEY, ID_Estudiant INT, ID_Curs INT, FOREIGN KEY (ID_Estudiant) REFERENCES Estudiants(ID_Estudiant) );
Inserció de Dades
INSERT INTO Estudiants (ID_Estudiant, Nom, Cognom, Edat, Curs) VALUES (1, 'Joan', 'Garcia', 20, 'Informàtica'), (2, 'Maria', 'López', 22, 'Matemàtiques'); INSERT INTO Matrícules (ID_Matrícula, ID_Estudiant, ID_Curs) VALUES (1, 1, 101), (2, 2, 102);
Consulta de Dades
SELECT Estudiants.Nom, Estudiants.Cognom, Matrícules.ID_Curs FROM Estudiants JOIN Matrícules ON Estudiants.ID_Estudiant = Matrícules.ID_Estudiant;
Exercicis Pràctics
Exercici 1: Creació de Taules
- Crea una taula
Professors
amb els següents atributs:ID_Professor
(clau primària),Nom
,Cognom
,Departament
. - Crea una taula
Assignatures
amb els següents atributs:ID_Assignatura
(clau primària),Nom_Assignatura
,ID_Professor
(clau forana que fa referència aProfessors
).
Exercici 2: Inserció de Dades
- Insereix tres registres a la taula
Professors
. - Insereix tres registres a la taula
Assignatures
.
Exercici 3: Consulta de Dades
- Realitza una consulta per obtenir el nom dels professors i les assignatures que imparteixen.
Solucions
Exercici 1: Creació de Taules
CREATE TABLE Professors ( ID_Professor INT PRIMARY KEY, Nom VARCHAR(50), Cognom VARCHAR(50), Departament VARCHAR(50) ); CREATE TABLE Assignatures ( ID_Assignatura INT PRIMARY KEY, Nom_Assignatura VARCHAR(50), ID_Professor INT, FOREIGN KEY (ID_Professor) REFERENCES Professors(ID_Professor) );
Exercici 2: Inserció de Dades
INSERT INTO Professors (ID_Professor, Nom, Cognom, Departament) VALUES (1, 'Anna', 'Martínez', 'Informàtica'), (2, 'Pere', 'Sánchez', 'Matemàtiques'), (3, 'Laura', 'González', 'Física'); INSERT INTO Assignatures (ID_Assignatura, Nom_Assignatura, ID_Professor) VALUES (1, 'Bases de Dades', 1), (2, 'Àlgebra', 2), (3, 'Física Quàntica', 3);
Exercici 3: Consulta de Dades
SELECT Professors.Nom, Professors.Cognom, Assignatures.Nom_Assignatura FROM Professors JOIN Assignatures ON Professors.ID_Professor = Assignatures.ID_Professor;
Conclusió
El model relacional és fonamental per a la gestió de bases de dades i proporciona una manera estructurada i lògica d'emmagatzemar i recuperar dades. Comprendre els conceptes clau com les taules, les claus primàries i foranes, i la integritat referencial és essencial per treballar amb bases de dades relacionals. Els exercicis pràctics proporcionen una oportunitat per aplicar aquests conceptes i reforçar l'aprenentatge.
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