Conception de Systèmes d`Information

Transcription

Conception de Systèmes d`Information
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Pôle informatique 2011/2012
Ecole Nationale Supérieure des Mines de Saint-Etienne
Conception de Systèmes
d’Information
Antoine Zimmermann
[email protected]
(adapté du cours de Laurent Vercouter)
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Contenu du cours
Evaluation = moyenne de deux notes
examen écrit sur les aspects théoriques (individuel)
mise en œuvre pratique dans un mini-projet (en double binôme)
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Plan
Introduction sur les Systèmes d’Information
Notions de base
Mise en œuvre technique
Le Modèle Entité-Association
Concepts
Exemple
Le modèle relationnel
Concepts
Algèbre relationnelle
Théorie des dépendances et de la normalisation
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Qu’est ce qu’un Système
d’Information
Système = ensemble auto-réglable et interagissant avec
l’environnement qui fonctionne en vue d’un objectif précis
environnement
entrées
sorties
régulation
Information = donnée enrichie d’un modèle d’interprétation
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Définition
© 2011, Antoine Zimmermann
Système de pilotage
Système d’information
Système opérant
Flux de produits,
argent, information
Flux de matières premières,
argent, information
Selon Le Moigne, le système d’information est vu
comme un sous-système de l’entreprise lié au
système opérant et au système de décision
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Fonctions du SI
Un SI a deux fonctions principales [Dumoulin]
La production d’information
Collecter des informations
Traiter et transmettre des informations
Mémoriser des informations
La mise en œuvre d’outils de gestion
Fonctions technologiques (matériels, logiciels, méthodes,
savoir-faire, …)
Fonction économique
Fonction sociale
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Informatique et SI
L’informatique facilite la gestion d’un SI mais ne le
couvre pas dans son ensemble.
SI Opérationnel
SI Informatisé
SIO – Système d’Information Opérationnel = toute
l’activité autour du SI
SII – Système d’Information Informatisé = uniquement le
contenu informatisé (fichiers, bases, logiciels, …)
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
SI sans Informatique
Les bibliothèques et administrations utilisaient des
SI bien avant l’invention de l’ordinateur
Un SI peut être mis en œuvre à l’aide de cahiers,
registres, indexes, etc
mais un SI sans informatique a peu d’intérêt car les
tâches ne peuvent être automatisées (le SI doit être
exploité par un opérateur humain)
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Communication entre SI
Les SI d’entreprises partenaires (associées, filiales,
client/fournisseur) doivent communiquer
par des moyens « classiques » (courrier, …)
par des outils informatiques : EDI (Echange de Données
Informatisées)
Le(s) Système(s) d’Information peut atteindre une
taille et une envergure gigantesque
Par ex., Google > 100 000 000 000 de documents
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Plan
Introduction sur les Systèmes d’Information
Notions de base
Mise en œuvre technique
Le Modèle Entité-Association
Concepts
Exemple
Le modèle relationnel
Concepts
Algèbre relationnelle
Théorie des dépendances et de la normalisation
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Stockage des données
L’informatisation du SI nécessite la mise en place
de supports matériels et logiciels de stockage des
données.
L’information est numérisée et conservée sous la
forme de fichiers.
Le moyen d’organiser, d’accéder à et de manipuler
ces fichiers est à définir
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Système de Gestion de Fichiers
Système utilisé pour gérer les données d’un disque
(disquette, disque dur, CD-Rom, …)
Un fichier = une suite ordonnée de données
2 types d’accès aux données d’un fichier
Séquentiel (depuis l’adresse de début du fichier)
Accès direct (selon un décalage par rapport à l’adresse de début)
Système de Gestion de Fichiers (SGF) : gère les accès aux
fichiers, application par application
Inconvénient :
Structure trop simple (applications indépendantes)
Redondance d’information
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
SGF: inconvénients par l’exemple
Exemple : Comment stocker les relations d’amitié dans des
fichiers?
1 fichier pour toutes les relations
Problème d’efficacité (fichier très gros)
Problème d’accès (comment trouver les relations de Jules
ou de Jim seulement)
Problème de droit (qui a accès à quoi ?)
1 (petit) fichier par utilisateur
Problème de redondance
Problème de cohérence
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Base de Données
Une Base de Données (BDD) est un ensemble
structuré de données ayant un sens et accessibles
par l’ordinateur pour satisfaire simultanément
plusieurs utilisateurs
nom, tél., mél., adresse, relation sociale
Une BDD est conçu, construite et remplie avec des
données dans un but précis
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Base de Données (suite)
La structure de la BDD dépend du modèle choisi
Hiérarchique ou réseaux (≈ 1960)
Relationnel (≈ 1970/1980)
Objet (≈ 1990)
XML (arborescent) (≈ 2000)
Graphe (en part. RDF) (≈ 1985/2005)
Une BDD peut avoir n’importe quelle taille (agenda
personnel ≈ 100 entrées ; Facebook ≈ 600+ millions
d’utilisateurs)
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Au-delà des fichiers : Système de Gestion
de Base de Données
Un Système de Gestion de Bases de Données (SGBD) est un
ensemble d’outils logiciels permettant la manipulation de BDD
BD1
BD2
...
BDn
SGBD
Ap1
Ap2
Plusieurs BD
un SGBD
Apk
Plusieurs applications
Les applications n’ont pas besoin de savoir comment les données
sont physiquement stockées
Facilite la manipulation des données pour des non-informaticiens
Fournit des fonctionnalités d’administration de la base
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Qu’est-ce qu’un SGBD ?
Un programme permettant aux utilisateurs de créer et de
maintenir des bases de données
Définir : des types de données (nombre, texte, date, etc.)
Construire : peupler la BDD
Manipuler : mettre à jour, insérer, supprimer (e.g.,
ajouter/retirer un ami)
Retrouver des données selon des critères (e.g., “donne-moi le
nom de mes amis ayant développé une appli Facebook et qui
ont moins de 18 ans”)
Gérer les droits d’accès (e.g., accès aux mots de passe)
© 2011, Antoine Zimmermann
17
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Principes fondamentaux des SGBD
(1)
Fidélité
image fidèle de la réalité qu'elle modélise
Unicité
pas de redondance d'information dans la BD
Indépendance
indépendant du modèle de stockage
Concurrence
Gestion d’accès simultanés à une même donnée.
Performance
temps d’exécution raisonnable
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Principes fondamentaux des SGBD
(2)
Confidentialité
Accessibilité des données dépendant de l’utilisateur
Intégrité
garanties de fiabilité et de cohérence.
Robustesse
tolérant aux problèmes matériels, logiciels ou humains
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Principes fondamentaux (détails 1)
Problème de l’unicité
La redondance implique
Une duplication des efforts
Du gâchis d’espace de stockage
Des possibles incohérences lors de mises à jour
Problème de la concurrence
Le partage des données implique
Un contexte multi-utilisateur (parfois > 1000 utilisateurs
accèdent simultanément)
Contrôle des accès concurrents
Cohérence finale des données en cas de mises à jour simultanées
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Principes fondamentaux (détails 2)
Problème de la confidentialité
Restreindre accès aux données privées (adresse postale, date de naissance,
etc)
Sécurité des données sensibles (mots de passe, secret défense, etc)
Droits d’accès différents selon les personnes
Étudiants : peuvent lire leur propre note d’examens
Enseignants : accès à toutes les notes et droit de les modifier
Problème de l’intégrité
Assurer la cohérence des données en
Spécifiant des types pour chaque élément de données (e.g.,
naissance est un date postérieure à aujourd’hui)
Intégrité référentiel (e.g., les amis d’un utilisateur de facebook doivent
être des utilisateurs de facebook)
Contrainte d’unicité (e.g., un identifiant unique par membre)
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Niveaux de représentation d’une BDD
niveau externe (sous-schéma conceptuels)
définition des « interfaces » d’accès aux données
géré par le concepteur de la BDD et/ou les utilisateurs
niveau conceptuel (e.g. modèle Entité-Association)
identification des concepts concrets et abstraits de la réalité
géré par le concepteur de la BDD
niveau logique (e.g. modèle relationnel)
formalisation de la structure des données
géré par le concepteur de la BDD
niveau physique (e.g. système de fichiers, index)
stockage physique des données
géré par le SGBD
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Acteurs du développement
Partie porteuse du besoin qui définit l’objet du projet, le
calendrier et le budget
Maître d’œuvre
Partie en charge de la réalisation technique du projet
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Cycle de développement en V
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Cycle de développement en spirale
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Cycle de vie d’une BDD
Modèle
Logique
de Données
Modèle
Conceptuel
de Données
Monde réel
Concevoir
Créer la structure
Langage de
Description
de Données
Requêtes
spécifiques
Concepteur
Implanter
Maintenir
Administrateur
Langage de
manipulation
de données
© 2011, Antoine Zimmermann
Utilisateur
Manipuler
Optimiser
Outils
d’indexation,
SGBD, …
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Plan
Introduction sur les Systèmes d’Information
Notions de base
Mise en œuvre technique
Le Modèle Entité-Association
Concepts
Exemple
Le modèle relationnel
Concepts
Algèbre relationnelle
Théorie des dépendances et de la normalisation
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Le modèle EntitéAssociation (ou EAR)
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Origine du modèle Entité-Association
Proposé par Chen en 1976
Modèle sémantique pour comprendre et visualiser
l’organisation des données
Également appelé modèle EAR (Entité-AttributRelation)
Objectif : concevoir un Modèle Conceptuel de
Données (MCD)
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Les outils de l’analyse et conception
1 étape : spécifier le cahier des charges en langue
naturelle
e
2 étape : formaliser les spécifications du cahier des
charges d’une manière indépendante du système
utilisé → on utilisera le modèle Entité-Association
ère
(mais il en existe d’autres, e.g., UML)
3 étape : traduire les spécifications formelles dans
un modèle logique (dépendant du système utilisé)
→ on utilisera le modèle Relationnel (mais il en existe
e
d’autres, e.g., Orienté Objet, Graphes, etc)
4e étape : implémenter le modèle dans un SGBD
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
ère
1
étape : spécification textuelle
Exemple :
Notre boutique vend des DVD. Chaque DVD a un numéro
de référence et nous avons un stock de DVD identiques.
Nous voulons enregistrer le titre du film, le réalisateur, la
date de sortie et les acteurs principaux ainsi que le genre
(action, drame, etc). Nous avons une offre de fidélité pour
les clients réguliers donc nous devons enregistrer les
achats faits par nos clients enregistrés.
Généralement, le concepteur de la BDD n’écrit pas la
spécification. Elle est imposé par le client ou le patron.
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
2 étape : le modèle Entité-Association
e
Il décrit ce qui sera stocké dans la base de données
sans imposer une architecture particulière.
Il est suffisamment simple à comprendre pour être
présenté aux non informaticiens donc peut être
conçu en collaboration avec le maître d’ouvrage.
Il documente la BDD car sa signification est
clairement définie.
Sert de point de départ pour l’implémentation de la
BDD
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Modèle EA (1) : Entité
Entité : objet concret ou abstrait reconnaissable pour lequel on
souhaite enregistrer des informations. Correspond
généralement à un nom commun dans le cahier des charges
objet du monde réel ayant une existence physique (e.g., une personne,
une voiture, une maison)
objet ayant une existence conceptuelle (e.g., une entreprise, un travail,
un cours d’université)
on décrit un type d’entité pour décrire un ensemble d’entités
existantes (e.g., l’ensemble des clients d’un magasin)
une entité est un élément d’un type d’entité (e.g., Paul est une entité
de type Personne)
Client
représentation graphique →
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Modèle EA (2) : Attribut
Attribut : une information au sujet d’une entité avec
une valeur pouvant être enregistrée (un nombre, du
texte, une date)
Une entité de type Acteur peut être décrite par :
son nom
sa date de naissance
sa nationalité
Chaque attribut a un type
Une entité particulière a une valeur pour chaque attribut
Acteur
Représentation graphique →
© 2011, Antoine Zimmermann
Nom : String
Naissance : Date
…
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Modèle EA (2) : Clé
Clé : un attribut ou un groupe d’attributs permettant
d’identifier de manière unique une entité parmi
les entités d’un certain type
Les valeurs de ces attributs sont différentes pour
chaque entité de ce type (e.g., numéro de sécu pour
le type Personne)
film-42, Punishment Park, 1971
Film
Film-ID
Titre
DateDeSortie
© 2011, Antoine Zimmermann
film-216, Mulholland Dr., 2001
Ceci est l’ensemble de
tous les films
Description d’une entité
de type Film
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Modèle EA (3) : Association
Association : relation liant deux ou plusieurs entités
Correspond généralement à un verbe dans le cahier
des charges
film-42, Punishment Park, 1971
film-216, Mulholland Dr., 2001
personne-123, David Lynch, 20/01/1946
Association"est réalisé par"
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Modèle EA (4) : Cardinalité
Cardinalité : indique le nombre minimal et
maximal d’entités pouvant être en relation avec une
même entité dans une association
E.g., un Film a au moins un réalisateur. Une
Personne peut ne pas réaliser de film mais peut en
réaliser plusieurs
Film
Film-ID
Titre
DateDeSortie
1,n
réalisé par
0,n
Personne
Personne-ID
Nom
Naissance
Signifie "un Film est réalisé par 1 ou plusieurs Personne"
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Modèle EA (4) : Cardinalité
Cardinalité : indique le nombre minimal et
maximal d’entités pouvant être en relation avec une
même entité dans une association
E.g., un Film a au moins un réalisateur. Une
Personne peut ne pas réaliser de film mais peut en
réaliser plusieurs
Film
Film-ID
Titre
DateDeSortie
1,n
réalisé par
0,n
Personne
Personne-ID
Nom
Naissance
Signifie "une Personne réalise 0 ou plus Film"
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Modèle EA (5) : Propriété d’une
association
Propriété d’une association : une association peut
avoir des propriétés si elles dépendent des entités de
part et d’autre de l’association
Personne
Personne-ID
Nom
Naissance
0,n
joue dans
Role : String
0,n
Le rôle dépend de la personne et du film
© 2011, Antoine Zimmermann
Film
Film-ID
Titre
DateDeSortie
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Modèle EA (6) : cas particuliers
Association entre entités de même type
parent
2,2
Personne
Personne-ID
Nom
Association impliquant 3 types d’entités
Salle
0,n
planning
date
0,n
Cours
© 2011, Antoine Zimmermann
1,n
Groupe
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Comment concevoir la 2 étape
e
Lister les types d’entités évidentes qui forment le
cœur du sujet de l’application (e.g., les livres pour
une bibliothèque)
Lister les informations pertinentes pour chaque type
d’entités (leurs caractéristiques, e.g., titre, auteur)
Ne garder que ce qui est utile pour l’application
(e.g., numéro de sécu utile pour un SI d’hôpital
mais pas pour une base de clients)
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Plan
Introduction sur les Systèmes d’Information
Notions de base
Mise en œuvre technique
Le Modèle Entité-Association
Concepts
Exemple
Le modèle relationnel
Concepts
Algèbre relationnelle
Théorie des dépendances et de la normalisation
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Le modèle Relationnel
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
3 étape : le modèle relationnel
e
Un Modèle Conceptuel de Données (comme le
modèle Entité-Association) n’est pas directement
implantable car indépendant de tout choix
technologique
Traduction nécessaire vers un Modèle Logique de
Données
Suit une approche spécifique de modélisation
(hiérarchique, objet, relationnelle, graphe…)
Utilise un langage formel de spécification de la structure
logique des données
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Modèle relationnel
Proposé par Codd en 1970
« Tout est table »
1 table == 1 relation n-aire
e.g., la table User est une relation entre un login, un mot
de passe, un email, un nom, etc.
Définit un ensemble d’opération sur les tables pour
combiner des informations de différentes tables
(algèbre relationnelle)
Asssocié à un langage de requête (SQL) pour
retrouver de l’information provenant des tables
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Table / Relation
Song(Title, Artist, Album, Release-date, Composer)
Song
Title
Artist
Album
Aphex Twin
Drukqs
...
Cocorosie
Noah's Ark
...
Christmas Song
Mogwai
EP + 2
...
I Luv The Valley OH!
Xiu Xiu
Fabulous Muscles
...
Vordhosbn
Beautiful Boyz
© 2011, Antoine Zimmermann
...
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Table / Relation
Song(Title, Artist, Album, Release-date, Composer)
1 colonne == 1 attribut
Song
Title
Artist
Album
Aphex Twin
Drukqs
...
Cocorosie
Noah's Ark
...
Christmas Song
Mogwai
EP + 2
...
I Luv The Valley OH!
Xiu Xiu
Fabulous Muscles
...
Vordhosbn
Beautiful Boyz
© 2011, Antoine Zimmermann
...
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Table / Relation
Song(Title, Artist, Album, Release-date, Composer)
Song
Title
Artist
Album
Aphex Twin
Drukqs
...
Cocorosie
Noah's Ark
...
Christmas Song
Mogwai
EP + 2
...
I Luv The Valley OH!
Xiu Xiu
Fabulous Muscles
...
Vordhosbn
Beautiful Boyz
1 ligne == 1 tuple
© 2011, Antoine Zimmermann
...
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Concepts du modèle relationnelle (1)
Un attribut (ou colonne) Ai est une variable qui prend ses valeurs
dans un domaine Di
Soit U = {A1 , A2, ..., An}
Une relation R (ou table) définie sur U est un sous-ensemble du
produit cartésien D1 × D2 × … × Dn
On peut voir une relation comme un ensemble de tuples ou de
lignes
Le schéma de relation de R s’écrit R(A1:D1, A2:D2, ..., Ak:Dk). Les
attributs constituant la clé de R sont écrits en premier dans le
schéma de relation et sont soulignés.
Une BD relationnelle est un ensemble de relations R1,R2,...,Rm
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Concepts du modèle relationnelle (2)
Un attribut (ou colonne) Ai est une variable qui prend ses valeurs
dans un domaine Di
Soit U = {A1 , A2, ..., An}
Une relation R (ou table) définie sur U est un sous-ensemble du
produit cartésien D1 × D2 × … × Dn
On peut voir une relation comme un ensemble de tuples ou de
lignes
Le schéma de relation de R s’écrit R(A1:D1, A2:D2, ..., Ak:Dk). Les
attributs constituant la clé de R sont écrits en premier dans le
schéma de relation et sont soulignés.
Une BD relationnelle est un ensemble de relations R1,R2,...,Rm
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Concepts of relational databases (1)
Une table ou relation : une ensemble de lignes
1
Une ligne est appelée tuple : ensemble de valeurs
décrivant les éléments de la table
Dans la table Song, chaque ligne représente en fait une
chanson particulière
Toutes les lignes ont la même structure
1
Le terme « tuple » provient de la séquence quadruple, quintuple, sextuple,
septuple, octuple, etc.
© 2011, Antoine Zimmermann
51
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Concepts of relational databases (2)
Une colonne est un ensemble de valeurs liées à une propriété des
objets décrits dans la table
Toutes les valeurs dans une colonne appartiennent au même type
de données (e.g., entier, date, chapine de caractère, texte)
Un nom de colonne est un attribut (ou champ).
L’attribut Release-date représente la date de sortie d’une chanson
La valeur d’un attribut d’un tuple peut être absente (on utilise alors
la valeur spéciale Null)
Une colonne peut jouer le rôle d’identifiant ou clé (e.g., Song-ID)
ce qui permet d’identifier une unique ligne
© 2011, Antoine Zimmermann
52
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Concepts of relational databases (3)
Le type de données décrivant le type de valeurs
apparaissant dans chaque colonne est appelé le
domaine
Un domaine est un ensemble de valeurs atomiques
e.g., release date: le domaine est un ensemble de dates
number of tracks: le domaine est une valeur entre 1 et
99 (la limite sur un CD audio)
Null représente soit une valeur inconnue, soit une
valeur absente pour le tuple
© 2011, Antoine Zimmermann
53
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Concepts of relational databases (4)
Un schéma de relation définit les attributs d’une table
Un schéma de relation R est noté : R(A1:D1,A2:D2,…,An:Dn)
R est le nom de la table, A1, A2,…, An sont les attributs
D1, … , Dn correspond aux domaines des attributs
e.g., Song(Title:String, Release-date:Date, …)
Chaque tuple t est une liste ordonnée de n valeurs
t = (v1, v2, …, vn)
("Vordhosbn", "Aphex Twin", "Drukqs", 2001, "R. D. James")
© 2011, Antoine Zimmermann
54
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Concepts of relational databases (5)
Un attribut, ou l’association de plusieurs attributs, a ou
ont le rôle de clé. On appelle ces attributs les clés
primaires de la table. Elles ne peuvent pas être Null
e.g., numéro de sécu, plaque d’immatriculation, numéro
étudiant (on souligne la clé dans le schéma)
Song(SongID, Title, Artist,...)
La même valeur pour une clé primaire ne peut pas être
utilisée pour 2 tuples différents
La clé permet d’accéder à une unique ligne de la table
© 2011, Antoine Zimmermann
55
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Concepts of relational databases (6)
Une clé étrangère est un attribut qui fait référence à
une clé primaire d’une autre table
Song(SongID, Title, ArtistID, AlbumID ...)
Artist(ArtistID, ArtistName, RealName, Birthday, ...)
Album(AlbumID, Title, ReleaseDate, Label, ...)
Contraintes référentielles : les valeurs des clés
étrangères dans une table doivent exister dans la table
qui possède cette clé primaire
© 2011, Antoine Zimmermann
56
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
jointures
Jointure naturelle
Thêta-produit dont la condition est une égalité de valeurs entre des
attributs de deux relations
Jointure extérieure
Jointure naturelle à laquelle on ajoute les tuples de chaque relation
n’ayant pas trouvé de correspondance dans l’autre
Semi-jointure
Jointure naturelle à laquelle on ajoute les tuples de la première relation
n’ayant pas trouvé de correspondance dans l’autre
La jointure naturelle est l’opérateur le plus utilisé avec les
sélections et projections, car le plus intéressant
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Requête sur une BDD relationnelle
Qu’est-ce qu’une requête ?
Une expression en algèbre relationnel, i.e., des opérations
sur les tables
Le résultat d’une requête sur des table(s) est aussi une table
Opérations de filtrage :
Sélection (filtre / critère) = sélection de lignes
Projection
= sélection de colonnes
Opérations combinant 2 tables:
Produit cartésien (toutes les possibilités)
Jointure (faire le lien entre différentes tables)
Union (union d’ensembles de lignes)
Différence (élimination de lignes)
© 2011, Antoine Zimmermann
58
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Opérations d’algèbres relationnelles
Opérations unaire UnOp ( Table1 ) → Table2
Sélection (ou restriction) : choix de lignes
Projection
: choix de colonnes
Opérations binaire ( Table1 ) BinOp ( Table2 ) → Table3
Sur des tables avec la même structure : opérateurs ensemblistes
Union
Intersection
Différence
Sur des tables avec différentes structures
Produit cartésien
Jointure
© 2011, Antoine Zimmermann
59
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Sélection
Choix de lignes selon une condition booléenne
σ
condition
© 2011, Antoine Zimmermann
( Table )
60
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Sélection
Choix de lignes selon une condition booléenne
σ
Person
Name
condition
( Table )
Age
Address
Birthplace
James B.
47
London, UK
London, UK
Clark K.
35
Metropolis, USA
Krypton
Lois L.
28
Metropolis, USA
Metropolis, USA
Tarzan
25
London, UK
Forest, Benin
Personnes vivant à Londres :
σAddress="London, UK"(Person)
© 2011, Antoine Zimmermann
Name
Age
Address
James B.
47
London, UK
London, UK
Tarzan
25
London, UK
Forest, Benin
61
Birthplace
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Sélection
Choix de lignes selon une condition booléenne
σ
condition
Person
( Table )
Name
Age
Address
Birthplace
James B.
47
London, UK
London, UK
Clark K.
35
Metropolis, USA
Krypton
Lois L.
28
Metropolis, USA
Metropolis, USA
Tarzan
25
London, UK
Forest, Benin
Personnes vivant à Londres :
σAddress="London, UK"(Person)
Personnes vivant où elles sont nées :
σAddress=Birthplace(Person)
© 2011, Antoine Zimmermann
Name
Age
Address
James B.
47
London, UK
London, UK
Lois L.
28
Metropolis
Metropolis
62
Birthplace
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Sélection (contd.)
Personnes agées de moins de 30 ans :
σAge<30(Person)
Name
Age
Address
Birthplace
Lois L.
28
Metropolis
Metropolis
Tarzan
25
London, UK
Forest, Benin
Ceci est une table
© 2011, Antoine Zimmermann
63
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Sélection (contd.)
Personnes agées de moins de 30 ans :
σAge<30(Person)
Name
Age
Address
Birthplace
Lois L.
28
Metropolis
Metropolis
Tarzan
25
London, UK
Forest, Benin
Ceci est aussi une table !
© 2011, Antoine Zimmermann
64
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Selection (contd.)
Personnes de moins de 30 ans:
Name
σAge<30(Person)
Age
Address
Birthplace
Lois L.
28
Metropolis
Metropolis
Tarzan
25
London, UK
Forest, Benin
Composition de sélection : personnes de moins de 30 ans
vivant à Londres :
σAddress="London, UK"(σAge<30(Person))
Name
Tarzan
© 2011, Antoine Zimmermann
Age
Address
Birthplace
25
London, UK
Forest, Benin
65
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Selection (contd.)
Personnes de moins de 30 ans:
Name
σAge<30(Person)
Age
Address
Birthplace
Lois L.
28
Metropolis
Metropolis
Tarzan
25
London, UK
Forest, Benin
Composition de sélection : personnes de moins de 30 ans
vivant à Londres :
σAddress="London, UK"(σAge<30(Person))
Conjonction de sélection:
σAddress="London, UK" and Age<30(Person))
équivalent à la composition
Name
Tarzan
© 2011, Antoine Zimmermann
Age
Address
Birthplace
25
London, UK
Forest, Benin
66
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Formalisme pour la sélection
Sélection / constant:
σi = a(T) est l’ensemble des lignes L de la table T où L(i) = a
σi = a(T) = { L | L ∈ T et L(i) = a }
Sélection / inter-colonnes:
σi = j(T) est l’ensemble des lignes L de la table T où L(i) = L(j)
σi = j(T) = { L | L ∈ T et L(i) = L(j) }
Opérateurs de comparaison ≠, <, >, ≤, ≥ peuvent être utilisés
Opérateurs booléens AND, OR
© 2011, Antoine Zimmermann
67
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Projection
Choix de colonnes dans une table
π
column(s)
© 2011, Antoine Zimmermann
( Table )
68
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Projection
Choix de colonnes dans une table
π
column(s)
Person
Name
( Table )
Age
Address
James B.
47
London, UK
London, UK
Clark K.
35
Metropolis, USA
Krypton
Lois L.
28
Metropolis, USA
Metropolis, USA
Tarzan
25
London, UK
Forest, Benin
Nom et âge des personnes :
πName,Age(Person)
© 2011, Antoine Zimmermann
Birthplace
Name
Age
James B.
47
Clark K.
35
Lois L.
28
Tarzan
25
69
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Projection (contd.)
Nom des personnes vivant à Londres:
πName(σAddress="London, UK"(Person))
© 2011, Antoine Zimmermann
Name
Age
Address
Birthplace
James B.
47
London, UK
London, UK
Tarzan
25
London, UK
Forest, Benin
70
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Projection (contd.)
Nom des personnes vivant à Londres :
πName(σAddress="London, UK"(Person))
Name
Age
Address
Birthplace
James B.
47
London, UK
London, UK
Tarzan
25
London, UK
Forest, Benin
Name
James B.
Tarzan
© 2011, Antoine Zimmermann
71
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Formalisme pour la projection
Projection sur des colonnes:
πi1,...,ik(T) est l’ensemble des lignes de la table T
obtenues en ne gardant que les colonnes i1, i2, ..., ik
πi1,...,ik(T) = { ( L(i1), ..., L(ik) ) | L ∈ T }
!
Le résultat de n’importe quelle opération sur des tables
est aussi une table ⇒ on peut combiner les opérations
!
Le résultat des sélections ou projections
peuvent être une table vide
© 2011, Antoine Zimmermann
72
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Produit cartésien
Chaque ligne de la première table est combinée avec
toutes les lignes de la seconde table
Table1 ⊗ Table2
© 2011, Antoine Zimmermann
73
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Produit cartésien
Chaque ligne de la première table est combinée avec
toutes les lignes de la seconde table
Table1 ⊗ Table2
Name
Man James B.
Address
London
Clark K.
Metropolis
Tarzan
London
Woman
Name
Lois L.
Metropolis
Catwoman
Toutes les pairs homme-femme :
Name1
Address1
Man ⊗ Woman
© 2011, Antoine Zimmermann
Address
Gotham City
Name2
Address2
James B.
London
Lois L.
Metropolis
James B.
London
Catwoman
Gotham City
Clark K.
Metropolis
Lois L.
Metropolis
Clark K.
Metropolis
Catwoman
Gotham City
Tarzan
London
Lois L.
Metropolis
Tarzan
London
Catwoman
Gotham City
74
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Produit cartésien (contd.)
Man
Name
James B.
Address
London
Clark K.
Metropolis
Tarzan
London
City
CName
Population
Country
London
7,556,900
UK
Metropolis
8,391,881
USA
Dans quels pays vivent les hommes de la table Man ?
1) Man ⊗ City
Name Address CName Population
© 2011, Antoine Zimmermann
Count
James B.
London
London
7,556,900
UK
James B.
London
Metropolis
8,391,881
USA
Clark K.
Metropolis
London
7,556,900
UK
Clark K.
Metropolis
Metropolis
8,391,881
USA
Tarzan
London
London.
7,556,900
UK
Tarzan
London
Metropolis
8,391,881
USA
75
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Produit cartésien (contd.)
2) Suivi d’une sélection :
σAddress=CName(Man ⊗ City)
Name
Name
Address
CName
Population
Country
James B.
London
London
7,556,900
UK
James B.
London
Metropolis
8,391,881
USA
Clark K.
Metropolis
London
7,556,900
UK
Clark K.
Metropolis
Metropolis
8,391,881
USA
Tarzan
London
London
7,556,900
UK
Tarzan
London
Metropolis
8,391,881
USA
Address
CName
Population
Country
James B.
London
London
7,556,900
UK
Clark K.
Metropolis
Metropolis
8,391,881
USA
Tarzan
London
London
7,556,900
UK
© 2011, Antoine Zimmermann
76
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Produit cartésien (contd.)
Couples homme-femme vivant dans la même ville
σAddress =Adrress (Man ⊗ Woman)
1
2
Name1
Name1
Clark K.
© 2011, Antoine Zimmermann
Address1
Name2
Address2
James B.
London
Lois L.
Metropolis
James B.
London
Catwoman
Gotham City
Clark K.
Metropolis
Lois L.
Metropolis
Clark K.
Metropolis
Catwoman
Gotham City
Tarzan
London
Lois L.
Metropolis
Tarzan
London
Catwoman
Gotham City
Address1
Metropolis
Name2
Lois L.
Address2
Metropolis
77
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Formalisme pour le produit cartésien
T1 ⊗ T2 est l’ensemble de toutes les lignes qui peuvent être
obtenues en concaténant une ligne de la table T1 avec une
ligne de la table T2
Τ1 ⊗ Τ2 = { L1L2 | L1 ∈ T1 and L2 ∈ T2 }
!
Le produit cartésien T1 ⊗ T2 est souvent suivi d’une
sélection dans laquelle une colonne de T1
et une colonne de T2 sont égalisées
La succession d’un produit cartésien et d’une sélection est si
courante qu’il existe une opération pour cela, la Jointure
© 2011, Antoine Zimmermann
78
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Jointure
Produit cartésien suivi d’une sélection
2
© 2011, Antoine Zimmermann
79
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Jointure
Produit cartésien suivi d’une sélection
2
Name
Man
James B.
Address
London
Clark K.
Metropolis
Tarzan
London
City
CName
Population
Country
London
7,556,900
UK
Metropolis
8,391,881
USA
Dans quel pays vivent les hommes de la table Man ?

Name
Address
σAddress=CName(Man ⊗ City)
CName
Population
Country
James B.
London
London
7,556,900
UK
Clark K.
Metropolis
Metropolis
8,391,881
USA
Tarzan
London
London.
7,556,900
UK
© 2011, Antoine Zimmermann
80
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Jointure (contd.)
Couple homme-femme dans la même ville
Man Name Address
Woman Name
James B.
Clark K.
Metropolis
Tarzan
London

Name1
Clark K.
© 2011, Antoine Zimmermann
Lois L.
London
Catwoman
Address
Metropolis
Gotham City
σAddress =Address (Man ⊗ Woman)
Address1
Metropolis
1
Name2
Lois L.
2
Address2
Metropolis
81
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Formalisme pour la jointure
que L1(i) = L2(j)
T
2
= { L1L2 | L1 ∈ T1 and L2 ∈ T2 and L1(i) = L2(j) }
Lien avec le produit et la sélection:
Soit m le nombre de colonnes de T1
T
2
© 2011, Antoine Zimmermann
=
σi = j+m(T1 ⊗ T2)
82
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Union
Man
Name
James B.
Address
Woman
London
Clark K.
Metropolis
Tarzan
London
Lois L.
Catwoman
Name
L’ensemble des personnes : James B.
Man ∪ Woman
Address
Metropolis
Gotham City
Address
London
Clark K.
Metropolis
Tarzan
London
Lois L.
Metropolis
Catwoman
© 2011, Antoine Zimmermann
Name
Gotham City
83
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Union
Man
Name
James B.
Address
Woman
London
Clark K.
Metropolis
Tarzan
London
L’ensemble des personnes :
Man ∪ Woman
Address
Lois L.
Metropolis
Catwoman
Name
James B.
London
Metropolis
Tarzan
London
Lois L.
Metropolis
Personnes vivant à Metropolis:
σAddress="Metropolis"(Man ∪ Woman)
Gotham City
Address
Clark K.
Catwoman
© 2011, Antoine Zimmermann
Name
Gotham City
Name
Address
Clark K.
Metropolis
Lois L.
Metropolis
84
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Différence
Man
Name
James B.
Address
Woman
London
Clark K.
Metropolis
Tarzan
London
Name
Lois L.
Catwoman
Address
Metropolis
Gotham City
Quelles sont les villes pour lesquelles nous connaissons au
moins une femme et pas d’homme ?
πAddress(Woman) – πAddress(Man)
© 2011, Antoine Zimmermann
Address
Gotham City
85
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Formalisme de ces 2 opérations
Soit T1 et T2 2 tables avec le même nombre de colonnes
et les colonnes ont les mêmes domaines.
Formaliser l’union
T1 ∪ T2 est l’ensemble contenant les lignes de T1 et celles de T2.
T1 ∪ T2 = { L | L ∈ T1 ou L ∈ T2 }
Formaliser la différence
T1 – T2 est l’ensemble contenant les lignes de T1 qui ne sont pas
dans T2.
T1 – T2 = { L | L ∈ T1 et L ∉ T2 }
© 2011, Antoine Zimmermann
86
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Arbre de requête
Quelles sont les couples possibles avec une homme de
Londres et une femme de Metropolis ?
πName ,Name (σAddress ="Metropolis"(σAddress ="London"(Man ⊗ Woman)))
1
2
2
1
OR
πName (σAddress ="London"(Man)) ⊗ πName (σAddress ="Metropolis"(Woman))
1
© 2011, Antoine Zimmermann
1
2
2
87
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Arbre de requête
Quelles sont les couples possibles avec une homme de
Londres et une femme de Metropolis ?
πName ,Name
1
2
4 col., 2 lignes
σAddress ="Metropolis" and Address ="London"
2
1
4 col., 6 lignes
2 col., 3 lignes
Man
⊗
2 col., 2 lignes
Woman
2*3+2*2+4*6+4*2 = 42 cellules manipulées
© 2011, Antoine Zimmermann
88
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Arbre de requête
Quelles sont les couples possibles avec une homme de
Londres et une femme de Metropolis ?
πName ,Name
1
2
1 col., 2 lignes
4 col., 2 lignes
σAddress ="Metropolis" and Address ="London" π
2
1
4 col., 6 lignes
2 col., 3 lignes
⊗
2 col., 2 lignes
⊗
Name1
1 col., 1 ligne
πName
2 col., 2 lignes
2 col., 1 ligne
σAddress ="London" σAddress ="Metropolis"
2
1
2 col., 3 lignes
Man
Woman
2*3+2*2+4*6+4*2 = 42 cellules manipulées
© 2011, Antoine Zimmermann
2
Man
2 col., 2 lignes
Woman
2*3+2*2+2*2+2*1+1*2+1*1 =
19 cells manipulated
89
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Du modèle Entité-Association vers le
modèle relationnel
Un modèle Entité-Association peut se traduire
simplement en un modèle relationnel
Schéma de données plus formalisé
Possibilité d’utiliser l’algèbre relationnel pour exprimer
des requêtes
3 règles simples de transformation
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
EA vers modèle relationnel
Règle 1 : un type d’entité devient une table et
conserve tous les attributs et clés de l’entité
Règle 2 : pour une association de R vers R’, si la
cardinalité est 0:1 ou 1:1, on ajoute une clé
étrangère vers R’ aux attributs de R
Règle 3 : pour une association de cardinalité autre
que 0:1 ou 1:1, on ajoute une relation ayant comme
clé primaire les clés des entités associées et comme
autres attributs ceux de l’association
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
EA vers modèle relationnel
Modèle EA
Entité
Clé
Attribut
Association
0:1 – x,n
1,1 – x,n
x,n – y,m
© 2011, Antoine Zimmermann
Modèle relationnel
Table
Clé primaire
Attribut
Clé étrangère (peut être Null)
Clé étrangère (non Null)
Nouvelle table avec clé
primaire égale à l’union des
clés des entités associées
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
EA vers modèle relationnel
Modèle EA :
Team
Player
Player-ID
FirstName
LastName
Position
plays in
1,1
2,n Team-ID
TeamName
Country
Coach
Modèle relationnel
Player
Player-ID
FirstName
LastName
Position
Team-ID
© 2011, Antoine Zimmermann
Team
Team-ID
TeamName
Country
Coach
L’association devient une clé étrangère
dans la table car cardinalité = 1
93
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
EA vers modèle relationnel
Modèle EA :
Match
Player
Player-ID
FirstName
LastName
Position
0,n
plays in
scoredPts
0,n Match-ID
Spectators
Score1
Score2
Modèle relationnel
Player
Player-ID
FirstName
LastName
Position
Team-ID
© 2011, Antoine Zimmermann
Plays-In
Match-ID
Player-ID
scoredPts
Match
Match-ID
Spectators
Score1
Score2
L’association devient une table avec 2
clés primaires
94
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Cohérence des données
Les relations définissent la structure des données
mais pas la cohérence de contenu.
Exemple de contenu incohérent : une même
personne enregistrée avec deux dates de naissance
différentes
La gestion de la cohérence des données consiste à
rendre impossible la saisie de données incohérente
2 concepts clés
Dépendances fonctionnelles
Formes normales
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Dépendances fonctionnelles (1)
Une dépendance fonctionnelle (DF) représente le
fait qu’à la valeur d'un ou plusieurs attributs, on
associe une valeur pour un autre attribut
Soit R(A1,A2,…, An) et une DF de Ai vers Aj se note :
Ai → Aj
Par exemple, il existe une DF entre le numéro et le
nom d’un propriétaire
numero → nom
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Dépendances fonctionnelles (2)
Une DF A → B est dite élémentaire si un sousensemble de la clé n'est pas source de la DF
∀a ∈ A, A − {a} → B
Une DF A → B est dite directe s'il n'existe pas
d'ensemble d'attributs C tel que
A → C et C → B
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Normalisation
Lors de la conception d’une BDD, plusieurs possibilités de
modélisation existent (dont plusieurs bonnes !)
La qualité d’un modèle dépend de plusieurs facteurs
quantité d'information à stocker
facilité d'expression des requêtes
prévention d'erreur de mise à jour et d'incohérences
La normalisation d’une BDD implique le respect de critères
de protection de l’intégrité des données
6 formes normales existent
1ère, 2ème, 3ème, 4ème, 5ème formes normales + celle de Boyce-Codd
La 3ème, voire celle de Boyce-Codd, est largement suffisante
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
1 forme normale
ère
Une relation est dite normalisée si un même attribut n'est pas
présent plusieurs fois dans une relation et si aucun attribut n'est
décomposable en d'autres attributs.
Toute relation normalisée est en première forme normale (1FN)
Student(stud-ID: int, prof-ID: int, course: string, s-name:
string, p-name: string, mark: int)
stud-ID
prof-ID
course
s-name
p-name
mark
1
11
physics
Smith
Einstein
17
1
12
maths
Takashi
Euler
12
2
25
maths
Peréz
Euler
4
Inconvénient :
Les DF ne sont pas respectées
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
2
ème
forme normale
Une relation est dite en deuxième forme normale (2FN) si
Elle est en 1FN
Toutes les DF issues de sa clé sont élémentaires
Student(stud-ID: int, prof-ID: int, course: string, s-name:
string, p-name: string, mark: int)
stud-ID
prof-ID
course
s-name
p-name
mark
1
11
physics
Smith
Feynman
17
1
12
maths
Smith
Euler
12
2
12
maths
Peréz
Feynman
4
Inconvénient :
Les DF des attributs hors clé ne sont pas respectées
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
3
ème
forme normale
Une relation est dite en troisième forme normale (3FN) si
Elle est en 2FN
Toutes les DF issues de sa clé sont directes
Student(stud-ID: int, s-name: string), Prof(prof-ID: int, p-name:
string) et Mark(stud-ID: int, prof-ID: int, course: string, mark: int)
stud-ID
s-name
1
Smith
2
Peréz
Inconvénient :
stud-ID
prof-ID
course
mark
1
11
physics
17
1
12
maths
12
2
11
maths
4
prof-ID
p-name
11
Feynman
12
Euler
Les DF dont la source n’est pas dans la clé ne sont pas respectées
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Forme normale de Boyd-Codd
Une relation est dite en forme normale de Boyd-Codd (FNBC) si
Elle est en 2FN
La source de chaque DF est la clé de la relation
Student(stud-ID: int, s-name: string), Prof(prof-ID: int, p-name:
string, course: string) et Mark(stud-ID: int, course: string, mark: int)
stud-ID
s-name
1
Smith
2
Peréz
© 2011, Antoine Zimmermann
stud-ID
course
mark
1
physics
17
1
maths
12
2
maths
4
prof-ID
p-name
course
11
Feynman
physics
12
Euler
maths
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Suite du cours
Mercredi 30 novembre
TD/TP « modélisation de BDD »
Mercredi 7 décembre
TD/TP sur le langage SQL
Mercredi 4 janvier
TD/TP « approches de la performance »
Mercredi 11 janvier
Modélisation du projet à réaliser
Mercredi 18 janvier
TP d’interfaçage (OpenOffice Base, PHP)
Mercredi 25 janvier, 1er et 8 février, vendredi 10 février
Développement du projet
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Références
Plus de détails sur les supports suivants :
« Les bases de données relationnelles », A. Flory, F. Laforest,
ed. Economica, 2005
« Bases de données et systèmes d’information », N.
Boudjlida, ed. Dunod, 1999
Quelques cours en ligne :
http://www.metz.supelec.fr/metz/personnel/vialle/course/SI/index.ht
m
http://www.crescenzo.nom.fr/CMBasesDeDonnees/
http://www.emse.fr/~juganaru/CSI/index.html
http://www.volle.com/rennes2/index.htm
Ce cours s’est largement inspiré de ces supports
© 2011, Antoine Zimmermann
Conception de Systèmes d’Information, Pôle Informatique, ENSM-SE
Tous les supports de ce cours sont
disponibles ici :
http://www.emse.fr/~zimmermann/teaching/csi
© 2011, Antoine Zimmermann

Documents pareils