Introducció

El disseny d'esquemes de bases de dades és una part fonamental en la creació d'una infraestructura d'emmagatzematge de dades robusta i eficient. Un esquema ben dissenyat facilita l'emmagatzematge, la recuperació i la gestió de les dades, assegurant que les operacions siguin ràpides i fiables. En aquesta secció, explorarem els conceptes clau del disseny d'esquemes, les millors pràctiques i proporcionarem exemples pràctics per il·lustrar els punts principals.

Conceptes Clau

  1. Modelatge de Dades

El modelatge de dades és el procés de crear un model visual de les dades que es volen emmagatzemar. Aquest model ajuda a definir l'estructura de la base de dades i les relacions entre les diferents entitats.

  • Entitats: Objectes o conceptes que tenen una existència independent en la base de dades (per exemple, clients, productes).
  • Atributs: Propietats o característiques de les entitats (per exemple, nom del client, preu del producte).
  • Relacions: Connexions entre les entitats (per exemple, un client pot fer diverses comandes).

  1. Normalització

La normalització és el procés d'organitzar les dades en una base de dades per reduir la redundància i millorar la integritat de les dades. Els nivells de normalització més comuns són:

  • Primera Forma Normal (1NF): Elimina els grups repetitius creant una taula separada per a cada conjunt de dades relacionades.
  • Segona Forma Normal (2NF): Elimina les dependències parcials, assegurant que tots els atributs no clau depenen completament de la clau primària.
  • Tercera Forma Normal (3NF): Elimina les dependències transitives, assegurant que els atributs no clau no depenen d'altres atributs no clau.

  1. Denormalització

La denormalització és el procés contrari a la normalització, on es permet certa redundància per millorar el rendiment de les consultes. És útil en escenaris on la velocitat de lectura és més important que l'espai d'emmagatzematge.

Millors Pràctiques

  1. Definir Clarament els Requisits: Abans de començar el disseny, és crucial entendre els requisits de l'aplicació i les necessitats dels usuaris.
  2. Utilitzar Noms Descriptius: Els noms de les taules i les columnes han de ser clars i descriptius per facilitar la comprensió i el manteniment.
  3. Aplicar la Normalització Adequada: Normalitzar les dades fins al nivell necessari per evitar redundàncies, però considerar la denormalització si el rendiment ho requereix.
  4. Documentar el Disseny: Mantenir una documentació detallada del disseny de l'esquema per facilitar el manteniment i les futures modificacions.

Exemples Pràctics

Exemple 1: Esquema de Base de Dades per a una Botiga en Línia

Entitats i Atributs

  • Clients: id_client, nom, correu_electrònic, adreça
  • Productes: id_producte, nom, descripció, preu
  • Comandes: id_comanda, id_client, data_comanda
  • Detalls_Comanda: id_comanda, id_producte, quantitat, preu_unitari

Relacions

  • Un client pot fer diverses comandes (1:N).
  • Una comanda pot incloure diversos productes (N:M).

Esquema Normalitzat

CREATE TABLE Clients (
    id_client INT PRIMARY KEY,
    nom VARCHAR(100),
    correu_electrònic VARCHAR(100),
    adreça VARCHAR(255)
);

CREATE TABLE Productes (
    id_producte INT PRIMARY KEY,
    nom VARCHAR(100),
    descripció TEXT,
    preu DECIMAL(10, 2)
);

CREATE TABLE Comandes (
    id_comanda INT PRIMARY KEY,
    id_client INT,
    data_comanda DATE,
    FOREIGN KEY (id_client) REFERENCES Clients(id_client)
);

CREATE TABLE Detalls_Comanda (
    id_comanda INT,
    id_producte INT,
    quantitat INT,
    preu_unitari DECIMAL(10, 2),
    PRIMARY KEY (id_comanda, id_producte),
    FOREIGN KEY (id_comanda) REFERENCES Comandes(id_comanda),
    FOREIGN KEY (id_producte) REFERENCES Productes(id_producte)
);

Exemple 2: Denormalització per a Consultes Ràpides

En un sistema on les consultes de lectura són molt freqüents, podríem denormalitzar l'esquema per millorar el rendiment.

Esquema Denormalitzat

CREATE TABLE Comandes (
    id_comanda INT PRIMARY KEY,
    id_client INT,
    nom_client VARCHAR(100),
    data_comanda DATE,
    id_producte INT,
    nom_producte VARCHAR(100),
    quantitat INT,
    preu_unitari DECIMAL(10, 2)
);

Exercicis Pràctics

Exercici 1: Modelatge de Dades

Descripció: Crea un model de dades per a una aplicació de biblioteca que inclogui entitats com Llibres, Autors i Préstecs.

Solució:

  • Llibres: id_llibre, títol, any_publicació, id_autor
  • Autors: id_autor, nom, nacionalitat
  • Préstecs: id_préstec, id_llibre, id_usuari, data_préstec, data_devolució

Exercici 2: Normalització

Descripció: Normalitza la següent taula que conté informació de projectes i empleats:

id_projecte nom_projecte id_empleat nom_empleat rol_empleat
1 Projecte A 101 Joan Desenvolupador
1 Projecte A 102 Maria Analista
2 Projecte B 103 Pere Gestor

Solució:

  1. Primera Forma Normal (1NF):
CREATE TABLE Projectes (
    id_projecte INT PRIMARY KEY,
    nom_projecte VARCHAR(100)
);

CREATE TABLE Empleats (
    id_empleat INT PRIMARY KEY,
    nom_empleat VARCHAR(100),
    rol_empleat VARCHAR(50)
);

CREATE TABLE Projectes_Empleats (
    id_projecte INT,
    id_empleat INT,
    PRIMARY KEY (id_projecte, id_empleat),
    FOREIGN KEY (id_projecte) REFERENCES Projectes(id_projecte),
    FOREIGN KEY (id_empleat) REFERENCES Empleats(id_empleat)
);

Conclusió

El disseny d'esquemes de bases de dades és essencial per crear una infraestructura d'emmagatzematge de dades eficient i escalable. Mitjançant el modelatge de dades, la normalització i la denormalització, podem assegurar-nos que les dades es gestionen de manera òptima. Les millors pràctiques i els exemples pràctics proporcionats en aquesta secció han de servir com a guia per dissenyar esquemes robustos i eficients.

© Copyright 2024. Tots els drets reservats