amphi de rattrapage de SI

Download Report

Transcript amphi de rattrapage de SI

Amphi de rattrapage de SI
Modélisation et bases de données
Benjamin Fernandes [email protected]
Intérêt de la modélisation des données
(coté théorique)


Représentation logique (relationnelle) de
n’importe quel ensemble de donnée
Plus pratique

Plus simple

Gain de temps
Etudiant
• Code badge
• Nom
• Prénom
Assis à
(0,1)
Place
(0,1) • Amphi
• Rangé
• Position
Intérêt du SQL
(coté pratique)



Langage transcrivant les structures
relationnelles
In English,
so simple !
Simple et naturel (de l’anglais)
SELECT nom FROM eleves
Langage extrêmement répandu (la quasitotalité des sites web l’utilise)
Les entités - Définition
Les entités – objets
Concept abstrait, qui définit la nature d’un
ensemble d’éléments : les étudiants ; les cours
 Les attributs - propriétés
Des caractéristiques de ces éléments : nom ;
professeur
 Les occurrences – instances
Un élément d’un de ces ensembles : vous ; le
cours de TT. Chacun prend un valeur pour
chaque attribut (votre nom, Jean Taine)

Les relations



Une association entre deux entités.
Possède un sens réel : les étudiants suivent des
cours / des cours sont suivis par des étudiants
Une relation peut avoir des attributs qui
viennent la détailler : les étudiants suivent des
cours à certaines heures dans certaines salles
Les cardinaux

Pour chaque relation, on peut définir le
cardinal comme étant le nombre
d’occurrences mise en relation.
Un étudiant suit 1..n cours
Un cours est suivi par 1..n étudiants
Un étudiant est dans 0..n associations
Un étudiant fait 0..1 LV3
Les entités - Représentation
Les entités
 Les attributs
 Les relations (avec attributs)
 Les cardinaux

Etudiant
• Code badge
• Nom
• Prénom
• Taille
Assis à
Place
Heure
(0,1)
(0,1) • Amphi
• Rangé
• Position
Représentation en tableau
ETUDIANT
Code Badge
Nom
Prénom
Département
de naissance
Date de
naissance
1125
Parisato
Patrick
12
07-11-91
1337
Vernoit
Julie
63
24-01-88
2468
Gattei
Marie
41
11-08-89
6900
Pitaine
Jean
09
13-09-90
1873
Amorin
Marc
42
02-02-87
Occurrences
Entité – table
Attributs
– colonnes
–: lignes
correspond
–– champs
entrées
à la structure
::correspond
correspond
du tableau
aux
auxcolonnes
lignes dudu
tableau
tableau
Conditions à respecter


Le modèle doit être logique.
Pour chaque entité, il faut définir une clé
primaire. C’est un attribut dont la valeur prise
diffère pour toutes les occurrences.
Si aucun champ ne peut-être une clé primaire,
on crée une colonne id qui indice les entrées.
Numéro de badge
Numéro de Sécurité Sociale / Identification
Comment faire ?

Réunir toutes les informations disponibles.

Les trier, organiser par sens et essence.
Cela va définir les entités.

Définir les relations entre les entités.

Enfin on vérifie le modèle : toutes les
informations d’un objet sont accessibles par un
chemin de relation.
Illustration plus compète
Aime
Individu
• ID_individu
• Nom
• Prénom
(0,n)
Sport
(0,n)
Encourage
(0,n)
• ID_sport
• Nom
• Genre
(1,n)
Joue du
Niveau
Equipe
(0,n)
• ID_equipe
• Nom
• Sport
• Couleur
(1,1)
Le Structured Query Language



Langage pour utiliser des bases de données
relationnelles
Les bases de données sont des tableaux
(dans le sens vu précédemment)
La modélisation détermine directement la
construction des tableaux
Syntaxe du SQL (1/3)

Objectif : récupérer une partie des données
stockées dans la base.
SELECT colonne1, colonne2, …
FROM base1, base2, …
WHERE condition_booleenne
ORDER BY colonneI ASC/DESC, colonneII…
SELECT nom, prenom
FROM etudiant
WHERE LV2 = « espagnol »
Syntaxe du SQL (2/3)
SELECT etudiant.nom, prenom,
sport.club, effectif, taille
FROM etudiant, sport
WHERE etudiant.id_sport = sport.id
AND (sport.club = « rugby »
OR sport.club = « volley » )
ORDER BY etudiant.taille ASC
Etudiant
• ID
• Nom
• Prénom
• Taille
• Id_sport
Sport
• ID
• Club
• Couleur
• Effectif
Syntaxe du SQL (3/3)
Résultat

Nom
Prénom
Taille
Club
Effectif
Castre
Jean
172
Rugby
80
Dépré
Didier
176
Rugby
80
Carré
Tom
180
Volley
65
Ducroc
Sébastien
181
Rugby
80
Legrand
Olive
185
Volley
65
Equivalence entre :
… FROM b1, b2 WHERE b1.c1 = b2.c1
… FROM b1 INNER JOIN b2 ON b1.c1 =
b2.c1
Construire la base : modèle physique
(1/3)
Objectif : Transformer le modèle
relationnel en modèle physique.
 Pour cela, plusieurs règles


Cas peu intéressant et simplifiable
Base1
• ID
• Attr1
• Attr2
Relation
prop
(0,1)
(0,1)
(1,1)
(1,1)
Base2
• ID
• Col1
• Col2
Base
• ID
• Attr1
• Attr2
• Col1
• Col2
• Prop
Construire la base : modèle physique
(2/3)

Cas du type (1,1) – (1,n)
On crée une entrée Id_b2 dans la base1 pour
avoir le lien avec la base2.
Relation
prop
Base1
• ID
• Attr1
• Attr2
(0,1)
(0,n)
(1,1)
(1,n)
Base1
Base2
• ID
• Col1
• Col2
Base2
ID
Attr1 Attr2 Id_b2
5
Bouc
42
17
prop
ID
Col1
Col2
g
15
Rouge
42
Construire la base : modèle physique
(3/3)

Cas du type (1,n) – (1,n)
On crée une base intermédiaire pour faire le lien.
Relation
prop
Base1
• ID
• Attr1
• Attr2
(0,n)
(0,n)
(1,n)
(1,n)
Base1
Base2
• ID
• Col1
• Col2
Base2
ID
Attr1 Attr2
5
Bouc
42
B1-B2
ID_b1
ID_b2
prop
5
15
g
ID
Col1
Col2
5
Rouge
42