Modélisation d`une entreprise Notions de bases Définition intuitive d

Transcription

Modélisation d`une entreprise Notions de bases Définition intuitive d
Modélisation d’une entreprise
Motivation  Organiser le Système d’Information de l’Entreprise
Système de
Pilotage
Système
d’Information
FLUX
ENTRANT
Système
Opérant
FLUX
SORTANT
Notions de bases
Définition intuitive d’une BD (1)
 Définition intuitive : on peu considérer une Base de Données (BD)
comme une grande quantité de données (ou ensemble d’informations),
centralisées ou non, servant pour les besoins d’une ou plusieurs
applications, interrogeables et modifiables par un groupe d’utilisateurs
travaillant en parallèle.
 Exemples d’application
 Système Socrate : SNCF
 Annuaire électronique
 Catalogue électronique d’une bibliothèque
Modèle de l’Entreprise
Notions de bases
Définition intuitive d’une BD (2)
 Définition ; une base de données est un ensemble structuré de données (1)
enregistrées sur des supports accessibles par l’ordinateur (2) pour satisfaire
simultanément plusieurs utilisateur (3) de manière sélective (4) en un temps
opportun (5).





(1) : Organisation et description de données
(2) : Stockage sur disque
(3) : Partage des données
(4) : Confidentialité
(5) : Performance
SGBD (1)
Définition : Le logiciel qui permet d’interagir avec une BD est Système de Gestion
de Base de Données (SGBD)
SGBD
BD
Démarche de construction d’une BD
relationnelle
SGBD (2)
Un SGBD est un intermédiaire entre les utilisateurs et les fichiers physiques
Modélisation
Entité association
Interview
Documents
Un SGBD facilite
- la gestion de données, avec une représentation intuitive simple sous forme
de table par exemple
- la manipulation de données. On peut insérer, modifier les données et les
structures sans modifier les programmes qui manipulent la base de données
Base de données
Fichier 1
Schéma logique en
Entité-Association
Transformation
en relationnel
Programme 1
SGBD
Fichier 2
Programme 2
Schéma conceptuel
en relationnel
Programme 3
Fichier 3
Le modèle relationnel
Généralités
 Notions de modèle de données :

Un modèle est un ensemble d’outils utilisés pour décrire et manipuler des
données
 Modèle relationnel





Créé par CODD (69/70)
La majorité des SGBD actuels sont basés sur ce modèle
Les données sont organisées sous forme de tables à deux dimensions, une
table correspondant à une relation.
Les données sont manipulées par des opérateurs de l’algèbre relationnelle
L’état de la base est défini par un ensemble de contraintes d’intégrité
 Normalisation

Au modèle relationnel est associé la théorie de la normalisation des relations
qui permet de se débarrasser des incohérences au moment de la conception
d’une base de données.
Concepts du modèle (1)
Table (relation) : Vision tabulaire du relationnel
- les données sont représentées dans une table
- Exemple : la table OUVRAGES décrit un ouvrage
OUVRAGES
Côte
Titre
12TA1 Réseaux informatique
13G01 Algorithmes génétiques
Editeur
Eyrolles
Eyrolles
Année
NbExemplaire
1998
1994
10
5
Thème
Interconnexion, ….
Informatique, ….
Concepts du modèle (2)
 Attribut : nom donnée à une colonne d’une table (exemple cote, titre, editeur,
etc…). La première ligne de la table comporte ses attributs
 Nom de la table (ou de la relation) : OUVRAGES
 Tuple (ou n-uplet) : nom donné à une ligne comportant des valeurs saisies.
 Extension d’une table : le contenu de la table à savoir tous les tuples
 Cardinalité : nombre de tuples de la relation. Exemple la cardinalité dans
OUVRAGES est 2
 L’ordre des lignes et des colonnes n’est pas significatif
 Pas de lignes identiques
 Une case possède une et une seule valeur
Concepts du modèle (3)
 Attribut


Nom donné à une colonne d’une relation
Prend ses valeurs dans un domaine
 Domaine : ensemble de valeurs possibles prises par les
attributs

Exemple :




Notions de clé primaire
 Clé primaire : Groupe d’attributs minimum qui détermine un
tuple d’une manière unique dans la table



Exemple de clés : le numéro de la sécu, le numéro d’étudiant
La clé de la table OUVRAGE est l’attribut « cote », car la cote
permet de déterminer de façon unique une ligne de la table.
ATTENTION : la clé de détermine par rapport à toutes les valeurs
possibles de l’attribut (ou les attributs) formant la clé primaire, et
surtout pas par rapport aux valeurs déjà saisie
 Remarque : toute table doit obligatoirement avoir une clé
primaire
Entier, reel, chaines de caractères
Euro
Salaire = {4 000..100 000)
Couleur = {bleu, blanc, rouge}
Schéma d’une table
 Le schéma d’une table, appelé aussi le schéma en intention,
comporte le nom de la relation, ses attributs + format et la
clé primaire.
 La clé primaire est souvent soulignée (et/ou mise en gras)
 Exemple : le schéma de la table OUVRAGES est

OUVRAGES (cote : texte, titre : texte, editeur : texte,
NbExemplaire, numérique, année : date, thème : texte)
Problème de Redondance des données
 La redondance = répétition des informations
 Un des objectifs des SGBD est (de nous permettre) de
représenter les données avec le moins de redondance
possible
 Pour chaque ouvrage nous désirons avoir ses auteurs dans la
base. Ceci nous amène à créer un attribut supplémentaire :
Auteur. Or un ouvrage peut avoir plusieurs auteurs. Nous
sommes donc obligés de créer des tuples supplémentaires
(un pour chaque auteur).  apparition de redondance
 Comment éliminer ces redondances ?
Eliminer les redondances (1)
 Pour éliminer les répétitions, nous allons dans un premier temps
construire une table auteur comportant tous les auteurs
 La table auteur est décrite par AUTEURS (NumAuteur, nomAuteur,
PrénomAuteur).Nous avons rajouté l’attribut NumAuteur pour
représenter la clé. NumAuteur est un numéro qui peut être donné
automatiquement par le SGBD.
 Dans la table OUVRAGE, nous pouvons remplacer chaque nom
d’auteur par son numéro.
 Cette représentation nous permet effectivement de réduire la table
OUVRAGES, il n’y a que le numéro de l’auteur au lieu du nom et du
prénom, mais il y a toujours des redondances. La redondance provient du
fait qu’un OUVRAGE peut avoir plusieurs auteurs
 Pour éliminer ces redondances, nous allons construire une table ECRIT
qui permet de relier les OUVRAGES et leurs AUTEURS.
Eliminer les redondances (2)
 Rappelons qu’un des intérêts d’un SGBD est sa possibilité de créer des
liens entre les objets
 Le schéma de la table ECRIT est ECRIT (cote, NumAuteur), il suffit
donc de prendre les clés primaires des tables OUVRAGES et
AUTEURS et former une nouvelle table, en l’occurrence ECRIT.
 La base de données décrivant les OUVRAGES sera composé des tables
suivantes :



AUTEURS (NumAuteur, Nom, Prénom)
OUVRAGES (cote, Titre, NbExemplaire, Année, Editeur, Theme)
ECRIT (cote, NumAuteur)
 Noter que nous avons supprimé l’attribut NumAuteur de la table
OUVRAGES
Clé étrangère
 Les attributs cote et NumAuteur de la table ECRIT proviennent en fait
respectivement des tables OUVRAGES et AUTEURS. Ces deux
attributs sont clés primaires dans chacune de ces tables
 Définition : nous appelons Clé étrangère toute clé primaire apparaissant
dans une autre table
 Exemple :



NumAuteur est une clé étrangère dans le table ECRIT
Cote est aussi une clé étrangère dans ECRIT
Par convention, une clé étrangère est soulignée en pointilé (et/ou mise en
italique)
 Attention : la notion de clé est toujours liée à une table. Un attribut (ou
groupe d’attributs) est clé primaire, ou clé étrangère dans une table
donnée.
Contraintes d’intégrités (2)
Trois type de C.I. obligatoires
Contraintes d’intégrités (1)
 Un des avantages des bases de données par rapport à une gestion de
fichiers traditionnelle réside dans la possibilité d’intégrer des contraintes
que doivent vérifier les données à tout instant.
 Exemple : on souhaite poser les contraintes suivantes :



Le nombre d’exemplaire de chaque OUVRAGE doit être supérieur à 0
(zéro)
Chaque OUVRAGE doit avoir au moins un auteur
Tec.
 Ceci est possible grâce à la notion de contraintes d’intégrité
 Définition : Des contraintes d’intégrités sont des assertions qui doivent
être vérifiées à tout moment par les données contenues dans la base de
données.
 Contrainte de clé : une relation doit posséder une clé primaire
 Contrainte d’entité : un attribut d’une clé ne doit pas possèder de valeurs
nulles (vides)
 Contraintes de référence (pour les clés étrangères), c’est une contrainte
exprimée entre deux tables. Tout tuple d’une relation faisant référence à
une autre relation doit se référer à un tuple qui existe :


Contraintes d’intégrités (3)
 Contrainte optionnelle


Contrainte de domaine : liée au domaine de définition d’un attribut
Exemple : NbExemplaire > 0
 Les contraintes d’intégrité sont vérifiées (exécutées) à
chaque mise à jour de la base de données (ajout, suppression
ou modification d’un tuple). Si lors d’un mise à jour une
contrainte n’est pas satisfaite, cette mise à jour ne peut pas
avoir lieu.
Intuitivement, cela consiste à vérifier que l’information utilisée dans un
tuple pour désigner un autre tuple est valide, notamment si le tuple désigné
existe bien
En d’autre terme, quand on désigne un attribut comme clé étrangère, les
seules valeurs que peut prendre cet attribut sont celles qui sont déjà saisies
dans la table qu’il référence.
Exemple (1)
 Schéma de la relation AUTEURS

AUTEURS (NumAuteur, Nom, Prénom)
 Schéma de la relation EDITEURS

EDITEURS (NumEditeur, Nom, Adresse)
 Schéma de la relation OUVRAGES (avec la modification de
l’exercice précédent)




OUVRAGES (cote, Titre, NbExemplaire, Annee, NumEditeur,
Theme)
Clé primaire : cote
Contrainte de domaine : NbExemplaire > 0
Contrainte référentielle : OUVRAGES.NumEditeur est une clé
étrangère et fait référence à EDITEURS.NumEditeur ou encore
OUVRAGES.NumEditeur REFRENCE EDITEURS.NumEditeur
Exemple (2)
Schéma d’une base de données
 Le schéma d’une base de données est composée de l’ensemble des
schémas des tables (relations) définies dans cette base de données
 Exemple de schéma de la base de données permettant la gestion de
notices bibliographiques :
 Schéma de la table ECRIT



ECRIT (NumAuteur, cote)
Clé primaire : NumAuteur, cote
Contraintes référentielles :




ECRIT.NumAuteur REFERENCE AUTEURS.NumAuteur
ECRIT.cote REFERENCE OUVRAGES.cote
Le fait d’écrire ECRIT.cote REFERENCE OUVRAGES.cote, c’est-àdire définir l’attribut cote dans ECRIT comme clé étrangère, implique
une contrainte référentielle. Ceci se traduit par ; les seules valeurs que
peut prendre cote dans ECRIT sont celles qui sont déjà saisies dans cote
d’OUVRAGES.




OUVRAGE
1,N
Ecrit
Cote
Titre
NbExemplaire
Année
Thème
1,1
1,N
AUTEUR
NumAuteur
Nom
prénom
A pour éditeur
1,N
EDITEUR
NumEditeur
Nom
Adresse
Contrainte de domaine : NbExemplaire > 0
Contrainte référentielle : OUVRAGES.NumEditeur REFERENCE
EDITEURS.NumEditeur
ECRIT (NumAuteur, cote)

Contraintes référentielles :
 ECRIT.NumAuteur REFERENCE AUTEURS.NumAuteur
 ECRIT.cote REFERENCE OUVRAGES.cote

Modèle Entité Association
AUTEURS (NumAuteur, Nom, Prénom)
OUVRAGES (cote, Titre, NbExemplaire, Annee, NumEditeur, Theme)
EDITEURS (NumEditeur, Nom, Adresse)
Création d’une base de données vide
Remplissage d’une base de données
Base de
données
existante(s)
Création d’une nouvelle
base de données
Indications
• Une base de données sous Access est composée de
tables.
• Exemple :
– Une table AUTEURS permettant de stocker des indications
portant sur tous les auteurs dont on désire garder les
coordonnées
– Une table OUVRAGES permettant se stocker des indications sur
les ouvrages que chaque auteur de la table AUTEURS a écrit.
– Une table ECRIT permettant de savoir qui a écrit quoi.
Création d’une table en mode création
Construction d’un table
Création d’un champ
• La table AUTEURS stocke une liste de coordonnées
d’auteurs.
• Chaque auteur est caractérisé par un nom et un prénom.
• Deux auteurs peuvent avoir un même nom et un même
prénom. Aussi afin de les reconnaître, nous leur
associons un numéro unique.
• Un auteur est donc caractérisé par trois caractéristiques
(ou champ) :
– NumAuteur (un numéro identifiant chaque auteur de manière unique)
– Nom
– Prénom
Création d’un champ numérique
automatique
Donner un nom à la table
Click sur
l’icône
enregistrement
Remplissage de la table AUTEURS (1)
Remplissage de la table AUTEURS (2)
Click ici
Zone de remplissage
manuelle
La table est
vide pour
le moment.
Zone de remplissage
automatique
Remplissage de la table AUTEURS (3)
Navigation dans une table
En cours de
création
Passage à l’auteur
précédent
Les numéros
s’incrémentent
automatiquement
Utilisation de la touche tabulation afin de passer d’un champ à un autre.
Positionnement sur le
nouvel auteur
Passage à
l’auteur suivant
Positionnement sur le
premier auteur
Nombre d’auteurs présents
dans la table.
Positionnement sur le
dernier auteur
Création d’un champ numérique
Création d’une zone déroulante (1)
Le nombre d’enfants
doit être inférieur à
10
Message indiquant que la valeur du champ « nb enfant » n’est pas correct
Création d’une zone déroulante (2)
Liste des
valeurs
possibles
Création d’une zone déroulante (3)
Saisie d’une valeur dans la liste
Restriction des valeurs possibles
Pour que la valeur soit obligatoirement dans la liste, il faut remplir le champ
« valide si »
Exercice 2
Exercice 1
• Créer la table OUVRAGES avec les champs :
–
–
–
–
–
Titre : texte
NbExemplaire : > 0 et avec pour valeur par défaut : 10
Editeur : Flamarion ou Eyrolles ou Europia ou cepadues
Cote : numéro automatique
Theme : texte avec pour valeur par défaut : « policier ».
• Créer la table ECRIT avec les champs :
– Cote : Numérique
– NumAuteur : Numérique
ETUDIANT
(NumEtudiant : Numéro automatique
Nom : texte,
Adresse : texte,
Date_Naissance : date)
INSCRIPTION
(NumEtudiant : Numérique,
Uv : texte,
Date_Inscription : date
Moyenne : Numérique)
UNITE_VALEUR (Uv : texte,
Nb_Heures : numérique > 0 et < 200,
NumResponsable : numérique)
RESPONSABLE (NumResponsable : numero automatique,
Nom : texte,
Piece : texte,
Departement : liste de valeurs possibles
(Mathématique, Histoire, Informatique)
Création d’une clé primaire simple (1)
Clic sur le bouton
droit de la souris
Le champ NumAuteur
est la clé primaire de la
table AUTEURS
La valeur d’un champ dépend d’un champ
d’une autre table (1)
La valeur de du champ NumAuteur de la table ECRIT doit être une valeur du champ
NumAuteur de la table AUTEURS
Sélection de la table AUTEURS
Création d’une clé primaire simple (2)
1) Sélection du
champ
2) Sélection et clic sur
l’icône clé
3) Création de la clé primaire
La valeur d’un champ dépend d’un champ
d’une autre table (2)
Sélection d’une valeur
Contraintes référentielles(1)
Clic sur cette icône
Ces liens sont dus aux
créations de listes indiquant
qu’il y a un lien entre les
champs.
La valeur de ces champs peut
prendre une valeur qui n’est pas
présente dans les listes respectives
Contraintes référentielles(2)
Double clic
Contraintes référentielles(3)
Affichage de plusieurs champs dans une
liste de choix
Insertion de tuples dans une table à partir
d’une autre table (1)
Cet icône indique que
ce champ est lié avec
le champ d’une autre
table
C’est bien le NumAuteur qui est stocké mais à l’écran nous voyons
uniquement le nom de l’auteur
Insertion de tuples dans une table à partir
d’une autre table (2)
Insertion de tuples dans une table à partir
d’une autre table (3)
Clic sur l’icône +
Diderot a écrit les ouvrages
de cote 3, 2, 1.
Georges Simenon
n’a pas encore écrit
d’ouvrages
On crée un nouveau tuple
dans la table ECRIT indiquant
quel nouvel ouvrage a écrit
Diderot
Le tuple a bien été créé.
On indique ici que Diderot à écrit l’ouvrage de Cote 4
Exercice 1
Reprenez la base de données gérant les inscriptions des étudiants dans des
unités de valeurs en y créant les clés primaires avec les dépendances
fonctionnelles correspondantes.
ETUDIANT
(NumEtudiant, Nom, Adresse, Date_Naissance)
INSCRIPTION (NumEtudiant, Uv, Date_Inscription, Moyenne)
avec NumEtudiant = ETUDIANT. NumEtudiant et Uv = UNITE_VALEUR.Uv
UNITE_VALEUR
(Uv, Nb_Heures, NumResponsable)
avec NumResponsable = RESPONSABLE.NumResponsable
RESPONSABLE (NumResponsable, Nom, Piece, Departement)