Introduction aux Bases de Données SGBD
Introduction aux Bases de Données SGBD
Données
Plan
Modèle logique de données (Relationnel)
Du E/A au Modèle relationnel, L’algèbre relationnelle.
Conclusion
Résumé général, Références.
Introduction 01
Définitions, Modèles du SGBD.
Introduction
Définitions
‘Informatique
’ INFORMATIQUE ? Computer Science
en anglais
INFORMATION AUTOMATIQUE
Informatique :
Problématique :
Problématique :
Chercher le nombre d’étudiant Validé tous les modules dans la Filière F1 ?
• chercher le ficher concerner
Perte de temps
• trouver la réponse
Problématique :
‘ Donnée
«Une donnée est un élément brut,
qui n’a pas encore été interprété,
mis en contexte.» ’
Donnée
«Une information est par définition
une donnée interprétée.»
Information
«Une action réalisée en fonction
des connaissances disponibles.»
Connaissance
‘ Système d’information
’
Système constitué des ressources
humaines, des ressources matérielles et
des procédures permettant d'acquérir, de
stocker, de traiter et de diffuser les Traçabilité
éléments d'information pertinents au
fonctionnement d'une organisation »
‘Base de Donnée ’
Les dimensions d'une application ?
Langages de programmation
Traitements Manipulation de données
SGBD
Données Bases de Données
Pr. Fatima BEN ZAID 12
Introduction
Définitions
‘Base de Donnée
accessibles par l’ordinateur pour
’
✓ BD est un ensemble structuré de données, enregistrées sur des supports
satisfaire simultanément plusieurs
utilisateurs de manière sélective en un temps opportun.
✓ BD est un ensemble de données reliées entre-elles de manière logique.
✓ Tout système d’information est construit autour de bases de données !!
‘SGBD ’
Un Système de Gestion de Bases de Données SGBD est un ensemble de logiciels
(Programmes) permettant aux utilisateurs de définir, créer, maintenir, contrôler et accéder à la
Base de Données.
‘SGBD
✓ Le SGDB est l’interface entre la
’
base de données et les utilisateurs
✓ Dans une base de données, les
données doivent être utilisées par
des programmes, par des
utilisateurs différents.
Objectifs :
‘
SGBD ’
✓ la centralisation
✓ l’indépendance entre les données et les traitements
✓ la structuration de données complexes
✓ le partage des données
✓ l’intégrité et la cohérence
✓ la confidentialité
✓ la sécurité.
Exemples :
‘SGBD ’
Hiérarchique :
‘Modèles du SGBD ’
Réseaux :
‘Modèles du SGBD ’
Relationnel :
‘Modèles du SGBD ’
Relationnel :
‘Modèles du SGBD ’ Attributs de L'en-tête
Lignes du corps
✓ L'en-tête est lui-même composé de plusieurs
attributs.
Autres types :
‘Modèles du SGBD ’
Ex-1 :
‘Pratique ’
Electrique Diesel Essence Hybride
1. Dans quel modèle de SGBD les données sont-elles enregistrées de cette façon ? Justifier ?
Rep-1 :
‘Pratique ’
Electrique Diesel Essence Hybride
1. C’est le modèle hiérarchique, car les enregistrements sont liées dans une structure arborescente
de façon à ce que chaque enregistrement n’ait qu’un seul processeur (type 1 vers N).
Pr. Fatima BEN ZAID 24
Introduction
Modèles du SGBD
Rep-1 :
‘Pratique ’
2. Le modèle Réseaux, où les enregistrements sont liées dans structure arborescente avec une
possibilité d’établir des liaisons de type N vers N.
Hiérarchique
Rep-1 :
‘Pratique ’
2. Le modèle Réseaux, où les enregistrements sont liées dans structure arborescente avec une
possibilité d’établir des liaisons de type N vers N.
Réseaux
Rep-1 :
‘Pratique ’
2. Dans le modèle Relationnel, les enregistrements sont représentées sous forme de Tables.
‘ Entité/ Association
’
✓ Le modèle E/A est un Formalisme graphique pour la modélisation de données.
✓ Succès dus à :
➢ Langage graphique
➢ Concepts simples :
Entité :
•
‘ Entité/ Association
’
"une chose" qui existe et qui peut être distinguée de façon unique.
• abstraite ou concrète
Exemple :
Entité : Représentation
‘ Entité/ Association
’
• Les entités représentée par un rectangle, nom en majuscule
• Choisir un nom commun décrivant l’entité (exemple :
ETUDIANT, FILIERE, MATIERE …..)
ETUDIANT FILIERE
‘ Entité/ Association
Attribut :
•
•
propriété d’une entité.
’
prend des valeurs simples, par exemple entiers ou chaînes de caractères (domaine d'attribut)
Exemple :
✓ Id_Personne
✓ Nom
Entité ✓ Prénom Attributs
✓ Age
✓ Adresse
✓ NumTél
Attribut : Représentation
‘ Entité/ Association
’
•les attribut de l’entité ETUDIANT est : CNE, Nom-E, Prénom-E .
• Les attributs de l’entité FILIERE est : Num Filière et Nom Filière
ETUDIANT FILIERE
CNE Num Filière
Attribut ETUDIANT
Nom-E Nom Filière Attribut FILIERE
Prénom-E
Domaine :
‘ Entité/ Association
’
• Un attribut prend ses valeurs dans un ensemble de valeurs possibles
appelé "domaine".
• Chaque attribut possède un domaine qui définit l'ensemble des valeurs possibles qui
peuvent être choisies pour lui (entier, chaîne de caractères, booléen…).
Exemple :
Attribut Domaine
CNE Nombre entier
Positif
Nom-E Caractère
Prénom-E Caractère
Pr. Fatima BEN ZAID 35
Conception de BD
Entité-Associations
Relation : •
‘ Entité/ Association
’
Une relation c’est une table dans laquelle les colonnes correspondent aux attributs et
les lignes aux occurrences (Valeur affecter pour chaque attribut ) .
Exemple : • Relation Inscription qui représente l’inscription d’un ETUDIANT dans un FILIERE
Relation Inscription
Inscription(CNE, NOM-E, Prénom-E, Num Filière, Nom Filiere)
Degré:
•
‘ Entité/ Association
Le degré d’une relation est son nombre d’attributs
’
• Exemple: soit la relation Inscription(CNE, NOM-E, Prénom-E, Num Filière,
Nom Filière) Le degré de la relation Inscription est 5
Cardinalité:
•
‘ Entité/ Association
’
La cardinalité d’une relation est son nombre d’occurrences.
Exemple :
CNE NOM-E Prénom-E NUM Filière Nom Filière
1 x u 1 SMP
2 y v 2 IAG
3 z w 3 SMI
4 t h 4 GL
La cardinalité de la Relation Inscription est 4
Pr. Fatima BEN ZAID 38
Conception de BD
Entité-Associations
Identifiant / Clé :
‘ Entité/ Association
’
• C’est un attribut ou groupe d’attributs dont les valeurs identifient
de manière unique chaque tuple de la relation.
• jamais de tuple en double .
• Il existe donc toujours un identifiant : dans le cas le pire, c'est
l'ensemble des attributs de la relation .
• Il peut exister plusieurs identifiants.
Exemple 1 :
✓ Id_Personne
✓ Nom
Entité ✓ Prénom Attributs
✓ Age
✓ Adresse
✓ NumTél
Exemple 2 :
Identifiant
✓ Code_module
✓ Nom_Filière
Entité Attributs
✓ Titre_cours
Exemple :
ETUDIANT DEPARTEMENT
Association (Relation) :
•
‘ Entité/ Association
C’est un lien entre deux ou plusieurs entités. ’
Exemple : une personne achète un produit.
Entités
Achète
Association (Relation) :
•
‘ Entité/ Association
C’est un lien entre deux ou plusieurs entités. ’
Degré d’une Association
Exemple :
Si K est le degré d’une association :
Association (Relation) :
•
‘ Entité/ Association
C’est un lien entre deux ou plusieurs entités. ’
Degré d’une Association
Exemple :
Si K est le degré d’une association :
✓ K = 2 : relation binaire
Personne Passport
CIN Possède Num_Pass
Nom Date_emission
A R B Prénom Province
Association (Relation) :
•
‘ Entité/ Association
C’est un lien entre deux ou plusieurs entités. ’
Degré d’une Association
Exemple :
Local
Si K est le degré d’une association :
Num_Local
✓ K = 3 : relation ternaire Nom
Capacité
A R B Professeur Module
CIN Enseigner Code_Module
Nom Nom
Prénom Niveau
C
Pr. Fatima BEN ZAID 46
Conception de BD
Entité-Associations
Nom_Auteur Titre
Id_livre
Id_Auteur
1,n 1,1
Auteur Écrire Livre
Pénom_Auteur
Année_Édition
Adresse_Auteur
‘ Pratique
’
Ex-1 :
Ex-1 :
‘ Pratique
’
Proposer un diagramme du modèle Entité-Association représentant la relation entre Personne, Voiture, et Fabricant ?
0,n 0,1
Personne Possède Voiture
Id_Personne
Carburant
Fabricant
Id_Fabricant
Ex-2 :
‘Pratique ’
À partir de ce diagramme, répondre aux questions suivantes : Auteur
Livre
1,n 1,1
IdAuteur Écrit
1. Est-il possible d’avoir des auteurs homonymes ? NumLivre
Nom
Titre
2. Un auteur peut-il écrit plusieurs livre ? Prénom
3. Un livre peut-il correspondre à plusieurs auteurs ? 1,1
4. Est-il possible qu'un éditeur ne publie aucun livre ?
5. Est-il possible de stocker un livre dans plusieurs dépôts ? Édite
6. Est-il possible qu’un dépôt peut être utilisé par de
1,n
nombreux éditeurs ? Dépôt
Éditeur
Num_Dépôt
Nom IdÉditeur
Adresse Nom
Ex-2 :
‘Pratique ’
À partir de ce diagramme, répondre aux questions suivantes : Auteur
Livre
1,n 1,1
IdAuteur Écrit
1. Est-il possible d’avoir des auteurs homonymes ? NumLivre
Nom
Titre
Prénom
1,1
Édite
Réponse :
1,n
Oui, car le nom n’identifie pas les Dépôt
auteurs. Il peut donc y avoir des Num_Dépôt
Éditeur
homonymes. Nom IdÉditeur
Adresse Nom
Ex-2 :
‘Pratique ’
À partir de ce diagramme, répondre aux questions suivantes : Auteur
Livre
1,n 1,1
IdAuteur Écrit
NumLivre
2. Un auteur peut-il écrit plusieurs livre ? Nom
Titre
Prénom
1,1
Édite
Réponse :
1,n
Dépôt
Oui, il peut le faire car sa cardinalité Éditeur
maximale vaut n. Num_Dépôt
Nom IdÉditeur
Adresse Nom
Ex-2 :
‘Pratique ’
À partir de ce diagramme, répondre aux questions suivantes : Auteur
Livre
1,n 1,1
IdAuteur Écrit
NumLivre
3. Un livre peut-il correspondre à plusieurs auteurs ? Nom
Titre
Prénom
1,1
Édite
Réponse :
1,n
Dépôt
Non, chaque livre correspond à un et Éditeur
un seule auteur, car sa cardinalité Num_Dépôt
minimale et maximale valent 1. Nom IdÉditeur
Adresse Nom
Ex-2 :
‘Pratique ’
À partir de ce diagramme, répondre aux questions suivantes : Auteur
Livre
1,n 1,1
IdAuteur Écrit
NumLivre
Nom
4. Est-il possible qu'un éditeur ne publie aucun livre ? Titre
Prénom
1,1
Édite
Réponse :
1,n
Dépôt
Non, chaque éditeur a publié au
moins un livre, car sa cardinalité Éditeur
Num_Dépôt
minimale prend la valeur 1. Nom IdÉditeur
Adresse Nom
Ex-2 :
‘Pratique ’
À partir de ce diagramme, répondre aux questions suivantes : Auteur
Livre
1,n 1,1
IdAuteur Écrit
NumLivre
Nom
5. Est-il possible de stocker un livre dans plusieurs dépôts ? Titre
Prénom
1,1
Édite
Réponse :
1,n
Oui, il peut le faire car sa cardinalité Dépôt
maximale vaut n. Num_Dépôt
Éditeur
Nom IdÉditeur
Adresse Nom
Ex-2 :
‘Pratique ’
À partir de ce diagramme, répondre aux questions suivantes : Auteur
Livre
1,n 1,1
IdAuteur Écrit
6. Est-il possible qu’un dépôt peut être utilisé par de NumLivre
Nom
Titre
nombreux éditeurs ? Prénom
1,1
Édite
Réponse :
1,n
Dépôt
Oui, un dépôt peut être utilisé par de
Éditeur
nombreux éditeurs, car sa cardinalité Num_Dépôt
maximale vaut n. Nom IdÉditeur
Adresse Nom
‘Normalisation ’
La normalisation est un algorithme qui consiste de partir d'une table universelle composée de la
totalité des attributs pour avoir plusieurs tables.
Cet algorithme de normalisation est constitué des étapes qui vérifient si les tables sont dans états bien
définies. Ces états s'appellent : les formes normales.
Formes normales :
✓ Les formes normales s’appliquent aux entités et aux associations.
✓ Elles ont pour objectif de vérifier la non redondance de l’information dans le modèle et de
proposer les transformations applicables sans perte d’informations.
‘ Dépendances fonctionnelles
Définition:
’
Les dépendances fonctionnelles expriment la relation qui existe entre les
propriétés. On dit qu’une propriété B d’une entité E1 dépend fonctionnellement
d’une propriété ( ou groupe de propriétés) A d’une autre entité E2, si pour
chaque valeur A détermine une et une seules valeur B.
On note conventionnellement
détermine
A B
on dit A détermine B ou bien B dépend fonctionnellement de A
‘ Dépendances fonctionnelles
Exemple:
’
Soit le schéma de relation PERSONNE (CIN_P, Nom, Adresse, Age).
Les dépendances fonctionnelles qui s'appliquent sur ce schéma de relation sont les
suivantes
CIN_P -> Nom,
CIN_P -> Adresse,
CIN_P -> Age
On pourra aussi écrire :
L'attribut CIN_P détermine tous les attributs du schéma de relation. Il s'agit d'une
propriété de la clé d'une schéma de relation.
‘Normalisation ’
Une relation est en 1ère forme normale si :
✓ Tous ses attributs sont atomiques : ils ne sont pas des propriétés répétitives ou décomposables.
‘Normalisation ’
Processus de mise en 1ère forme normale :
Exemple :
Etudiant Etudiant
Université
Nom CNE
Prénom
Age
1ère forme normale
Nom
Prénom
+ IdUniv
Nom
Adresse
Université Age
✓ La table possède une clé élémentaire (formée à partir d'un seul attribut ) ;
✓ Si la table possède une clé composée, les autres attributs doit dépendre de la totalité de cette clé.
Exemple :
2FN 2FN 2FN 2FN
✓ Regrouper dans une nouvelle table les champs dépendants d'une partie de la clé, et faire cette
partie la clé primaire de la nouvelle table.
Exemple :
Location
Employé Employé
Location Profession
Appartement
2ème forme normale
IdClient
Nom
IdAppartement
IdProfession
Montant
NumBureau
IdClient
Nom
IdAppartement
IdProfession
Montant
NumBureau
+ IdProfession
IdAppartement
Salaire
AdresseAppartement
AdresseAppartement
Salaire
✓ Tous les attributs dépendent directement de la clé et pas d’autres attributs (pas de transitivité).
✓ Regrouper dans une nouvelle table les attributs dépendants transitivement de la clé. L’attribut de
transition reste dupliqué dans la table initiale, et devient la clé primaire de la nouvelle table.
Exemple :
Etudiant
Appartement Etudiant
Appartement Faculté
Propriétaire
IdAptCNE 3ème forme normale IdApt
CNE Nom_Faculté
CIN_Propriétaire
AdresseApt
Nom
Nom_Faculté
CIN_Propriétaire
Nom
AdresseApt
CIN_Propriétaire
Nom_Faculté
+ Adr_Faculté
NOM_Propriétaire
Adr_Faculté
NOM_Propriétaire
‘ Normalisation
Une relation est en forme normale de Boyce-Codd (BCFN) :
’
✓ La table soit déjà en 3ème forme normale ;
✓ Tout attribut qui appartient à la clé ne dépend pas à l’un des autres attributs.
Exemple :
BCFN BCFN
BCFN BCFN 3FN 3FN
‘ Normalisation
Processus de mise en forme normale de Boyce-Codd (BCFN) :
’
✓ Conserver dans la table initiale tout attribut n'est pas source d'une Dépendance Fonctionnelle
(DF) vers une partie de la clé.
✓ Remplacer dans la table initiale la partie de la clé par son attribut source d'une DF.
✓ Regrouper dans une nouvelle table la partie de la clé et son attribut source d'une DF, et faire
cette dernière la clé primaire de la nouvelle table.
Exemple :
Personne
Faculté Personne
Faculté Diplôme
Ville
Nom_Faculté
CIN BCFN Nom_Faculté
CIN Nom_Diplôme
Ville
Nom_Dept
Région
Nom
Adresse
Ville
Nom_Diplôme
Adresse
Nom
+ Nom_Dept
Région
Ville
Nom_Diplôme
Pr. Fatima BEN ZAID 68
Conception de BD
Normalisation
EX 1 :
‘ Pratique
’
Soit la Relation R donnée par le nom commande avec
les attribut suivant (N°Commande, date, N°Client, nom , Commande
N° article, désignation, QuanttitéCommandée). N°Commande
Date
1. Mettez en première forme normale cette Relation R . N°Client
2. Mettez en 2éme forme normale cette Relation R . Nom
N°Article
Désignation
QuanttitéCommandée
Réponse :
‘Pratique
’
1. Mettez en première forme normale cette Relation R .
Commande
N°Commande
Date Commande Article-Commande
N°Client 1ère FN N°Commande N°Article
Nom
N°Article
Désignation
Date
N°Client
Nom
+ N°Commande
Désignation
QuanttitéCommandée
QuanttitéCommandée
Réponse :
2. Mettez
‘ Pratique
’
en 2éme forme normale cette Relation R .
La table commande n’est pas concernée par la normalisation en 2NF. La clé n’est
pas composée Donc la table Article –Commande est composé de deux clé
Article-Commande
N°Article 2ème FN Article-Commande Article
N°Commande
Désignation
QuanttitéCommandée
N°Article
N°Commande
QuanttitéCommandée
+ N°Article
Désignation
EX 2 :
‘ Pratique
’
Soit le schéma relationnel donné ci-dessous d’une base de données pour une établissement universitaire :
Département (CNE, Note, Filière, Cours, Module, Num_Prof, NomProf, Nom_Etud, Nb-h)
‘ Pratique
’
Soit le schéma relationnel donné ci-dessous d’une base de données pour une établissement universitaire :
Département (CNE, Note, Filière, Cours, Module, Num_Prof, NomProf, Nom_Etud, Nb-h)
Réponse :
1. Les dépendances fonctionnelles :
• CNE → Nom-Etud, Filière
• Num-Prof → Nom-Prof
• Cours → Module
• Cours, Module → Nb-h
• Filière, Cours, Module → Num_Prof, Nom-Prof
• CNE, Cours, Module → Note
Pr. Fatima BEN ZAID 73
Conception de BD
Normalisation
‘
Pratique
’
Soit le schéma relationnel donné ci-dessous d’une base de données pour une établissement universitaire :
Département (CNE, Note, Filière, Cours, Module, Num_Prof, NomProf, Nom_Etud, Nb-h)
Réponse :
1. Les dépendances fonctionnelles : 2. La clé :
1FN 2FN
Clé Attributs Atomiques