Modèle relationnel

&

base de données


Le traitement des données

Le traitement des données

Souvenir : Sélectionner des pokémons avec Python à partir d'un fichier CSV.

import csv

with open("pokemon.csv", "r", encoding="utf8") as f:
    pokedex = [ dict(pokemon) for pokemon in csv.DictReader(f) ]

for pokemon in pokedex:
    if int(pokemon["Generation"]) == 4:
        print(pokemon)   
                

Le traitement des données

Dans un monde optimisé, il faudrait pouvoir faire une requête du type :


Sélectionner les pokemons du pokedex tel que leur génération soit égale à 4.

Le modèle relationnel

Edgar Frank Codd

Les premiers modèles de base de données ne permettent pas de décrire de façon satisfaisante les relations entre deux données à l’aide de pointeurs logiques.
Dans les années 1960 et 1970, Edgar Frank « Ted » Codd (23 août 1923 ‐ 18 avril 2003) un informaticien britannique se met à la recherche d'une solution satisfaisante d’arrangement de données.

Cette recherche aboutit au modèle relationnel.
Il recherche à décrire les relations entre les données de façon logique et mathématique, sous le nom d’algèbre relationnelle, dont le théorème de Codd est l’un des théorèmes fondamentaux de la théorie des bases de données.

Modèle relationnel

Le modèle relationnel est basé sur :

  • Une structure unique, la relation (ou table)
  • Des contraintes qui définissent des formes normales, évitant les défauts de conception
  • Un langage (SQL) pour effectuer les requêtes

Relation

Dans le modèle relationnel, la structure pour représenter les données est la relation (aussi appelé table). Elle contient des données ayant un lien entre elles.
Concrètement une base de données est un objet qui contient un ensemble de relation sur lesquelles on peut effectuer des recherches, des ajouts, des mise à jour par le biais d’un langage.

Exemple

Les départements et leurs codes sont en relation :
Ardèche ←→ 07
Gard ←→ 30
Isère ←→ 38
Manche ←→ 50
Paris ←→ 75
Mayotte ←→ 976

Exemple

On peut représenter cette relation sous forme d'un tableau.
Nom Code
Ardèche 07
Gard 30
Isère 38
Manche 50
Paris 75
Mayotte 976

Schéma relationnel

On peut donc aussi décrire une relation par les éléments qui le constitue. On note cette représentation schéma relationnel. On y décrira :
  1. Le nom de la relation.
  2. Un nom (distinct) pour chaque dimension, dit nom d’attribut.
  3. Le domaine de valeur (type) de chaque dimension.

Exemple

En utilisant notre exemple, la relation Departements peut ainsi se décrire par :
Departements( nom, code )
ou en précisant le domaine de valeur
Departements( nom: TEXT, code: INTEGER)

Domaines

Les différents domaines :
  • TEXT, STRING ou CHAR : un texte
  • INTEGER : un entier
  • FLOAT : un nombre décimal
  • DATE : une date

Ordre d'une relation

On appelle ordre (ou degré) le nombre d’attributs d’une relation.

Par exemple : la relation Departements est d’ordre 2.

Cardinal d'une relation

On appelle cardinal le nombre d’enregistrements d’une relation.

Par exemple : la relation Departements est de cardinal 6.

Search Query Langage

SELECT

L'instruction SELECT permet de sélectionner des entrées dans une relation.
Par exemple :

SELECT * FROM Departements
                
Le code ci-dessus sélectionne tous les attributs (nom et code) de la relation Departements

SELECT avec filtre

L'instruction WHERE ajouter à l'instruction SELECT permet filtrer la sélection.
Par exemple :

SELECT nom FROM Departements WHERE code > 50
                
Le code ci-dessus sélectionne toutes les valeurs de l'attribut nom de la relation Departements dont la valeur de l'attribut code est strictement supérieur à 50.

Opérateur

Opérateur Description
= égal à
!= différent de
> supérieur à
>= supérieur ou égal à
< inférieur à
<= inférieur ou égal à
BETWEEN ... AND.. compris entre ... et ...
LIKE selection d'un motif
IS NULL valeur nulle
IS NOT NULL valeur non nulle

INSERT

L'instruction INSERT permet d'ajouter une entrée à la table.
Par exemple :

INSERT INTO Departements(nom, code) VALUES (Rhône, 69)
                
Le code ci-dessus ajoute l'entrée Rhône avec le code 69 à la relation Departements.

Cas d'usage

Exercice 1

Films
id titre realisateur annee note
1 Alien, le huitième passager Scott 1979 10
2 Dune Lynch 1985 5
3 2001 : l’odyssée de l’espace Kubrick 1968 9
4 Blade Runner Scott 1982 9

  1. Déterminer l'ordre et la cardinal de la relation Films
  2. Écrire le schéma relationnel de la table Films

Exercice 1

On dispose de la table films
id titre realisateur annee note
1 Alien, le huitième passager Scott 1979 10
2 Dune Lynch 1985 5
3 2001 : l’odyssée de l’espace Kubrick 1968 9
4 Blade Runner Scott 1982 9

  1. Quelle requête permet de sélectionner tout les titres de la relation Films
  2. Quel sera le résultat de la requête suivante
     SELECT realisateur FROM Films WHERE annee_sortie >= 1980 

Football féminin

Coupe du monde

Coupe_du_monde

Id Année Champion Hote
1 1991 Etats-Unis Chine
2 1995 Norvège Suède
3 1999 Etats-Unis Etats-Unis
4 2003 Allemagne Etats-Unis
5 2007 Allemagne Chine
6 2011 Japon Allemagne
7 2011 Etats-Unis Canada

Coupe du monde

  1. Écrire le schéma relationnel de la table Coupe_du_monde
  2. Quelle requête permet de sélectionner tout les champions de la relation Coupe_du_monde
  3. Quelle requête permet de connaitre le nombre de victoire des Etats-Unis
  4. Quelle requête permet de connaitre le nombre de pays différent qui on gagné la coupe du monde.