PasseClasse

Cours de Bases de données – Licence 2

Le modèle relationnel, proposé par E. F. Codd, représente les données sous forme de relations (tables) dont les lignes sont des tuples et les colonnes des attributs typés. Ce chapitre définit le vocabulaire (schéma, domaine, degré, cardinalité), les notions de superclé, clé candidate, clé primaire et clé étrangère, les contraintes d'intégrité (domaine, entité, référentielle), le traitement de la…

5 chapitres · exercices corrigés et quiz dans l'application

Continue sur PasseClasse

Crée ton compte gratuit : 2 premiers chapitres de chaque matière avec exercices corrigés, quiz et tuteur IA.

Commencer gratuitement

Programme : les chapitres

1. Le modèle relationnel
Le modèle relationnel, proposé par E. F. Codd, représente les données sous forme de relations (tables) dont les lignes sont des tuples et les colonnes des attributs typés. Ce…
2. L'algèbre relationnelle
L'algèbre relationnelle est le langage formel de requêtes du modèle relationnel : chaque opérateur prend une ou deux relations et produit une relation. Ce chapitre présente les…
3. Le langage SQL
SQL (Structured Query Language) est le langage standard des bases de données relationnelles. Ce chapitre couvre la définition et la manipulation des données (CREATE, INSERT,…
4. Dépendances fonctionnelles et normalisation
La normalisation est la méthode qui évite les redondances et les anomalies de mise à jour en décomposant les relations selon leurs dépendances fonctionnelles. Ce chapitre…
5. Conception entité-association
La conception d'une base de données part d'un cahier des charges pour aboutir à un schéma relationnel via un modèle conceptuel : le modèle entité-association (E/A, ou MCD en…

Chapitre à lire gratuitement : Le modèle relationnel

1. Des fichiers aux bases de données

Un système de gestion de bases de données (SGBD) permet de stocker, d'interroger et de protéger de grands volumes de données partagées par plusieurs utilisateurs. Par rapport à des fichiers ou à un tableur, il apporte l'indépendance entre les programmes et le stockage, la réduction de la redondance, la cohérence (contraintes d'intégrité), la concurrence d'accès (transactions) et la sécurité. Exemples de SGBD relationnels : PostgreSQL, MySQL, SQLite, Oracle.

2. Relations, attributs, tuples

Définition : un domaine est un ensemble de valeurs (entiers, chaînes, dates...). Une relation R de schéma R(A_1, ..., A_n) est un sous-ensemble fini du produit cartésien D_1 × ... × D_n. Un élément de R est un tuple (ou n-uplet). Le degré de R est le nombre d'attributs n ; sa cardinalité est le nombre de tuples.

Une relation est un ensemble : l'ordre des tuples et l'ordre des attributs n'ont pas d'importance, et il n'y a pas de doublons.

Exemple fil rouge (pêche artisanale, données fictives) :

PORT (id_port, nom_port, region)

PIROGUE (id_pirogue, nom, id_port, longueur)

ESPECE (id_espece, nom_espece, prix_kg)

CAPTURE (id_pirogue, id_espece, date_capture, quantite_kg)

La relation PIROGUE (1, Teranga, 1, 14), (2, Baobab, 2, 12), (3, Lamine, 2, 18) a pour degré 4 et pour cardinalité 3.

3. Clés

Définition : une superclé de R est un ensemble d'attributs dont la valeur identifie de manière unique chaque tuple. Une clé candidate est une superclé minimale (aucun sous-ensemble strict n'est une superclé). La clé primaire est la clé candidate choisie comme identifiant principal.

Définition : une clé étrangère est un attribut (ou groupe d'attributs) d'une relation qui référence la clé primaire d'une autre relation. Dans PIROGUE, id_port est clé étrangère vers PORT. Dans CAPTURE, la clé primaire est composée (id_pirogue, id_espece, date_capture) et chacun des deux premiers attributs est aussi une clé étrangère.

Propriété : toute relation a au moins une clé candidate (l'ensemble de tous les attributs est une superclé). Si une clé candidate comporte k attributs parmi n, ses sur-ensembles sont des superclés.

4. Contraintes d'intégrité

À la suppression ou modification d'un tuple référencé, le SGBD peut refuser (RESTRICT / NO ACTION), propager (CASCADE) ou mettre à NULL (SET NULL) les tuples référençants.

Exemple : supprimer le port 2 (Mbour) alors que deux pirogues le référencent est refusé avec RESTRICT, supprime les deux pirogues avec CASCADE, ou met leur id_port à NULL avec SET NULL.

5. La valeur NULL

NULL représente une valeur inconnue ou inapplicable ; ce n'est ni 0 ni la chaîne vide. Toute comparaison avec NULL (=, <, >) donne un résultat inconnu (UNKNOWN), et une condition WHERE ne retient que les lignes dont le résultat est vrai. Pour tester, on utilise IS NULL ou IS NOT NULL. Les fonctions d'agrégation (SUM, AVG, COUNT(attribut)) ignorent les NULL, alors que COUNT(*) compte toutes les lignes.

6. Traduction en SQL (définition des données)

CREATE TABLE PIROGUE (

id_pirogue INTEGER PRIMARY KEY,

nom VARCHAR(40) NOT NULL,

id_port INTEGER REFERENCES PORT(id_port),

longueur INTEGER CHECK (longueur > 0)

);

CREATE TABLE CAPTURE (

id_pirogue INTEGER REFERENCES PIROGUE(id_pirogue),

id_espece INTEGER REFERENCES ESPECE(id_espece),

date_capture DATE,

quantite_kg REAL CHECK (quantite_kg >= 0),

PRIMARY KEY (id_pirogue, id_espece, date_capture)

);

7. Méthode pour les examens

Continue sur PasseClasse

Crée ton compte gratuit : 2 premiers chapitres de chaque matière avec exercices corrigés, quiz et tuteur IA.

Commencer gratuitement