Vous êtes sur la page 1sur 63

Base de données

Mourad Nachaoui
Département d’informatique
FST de Béni-Mellal
Objectifs du cours
• Initiation et familiarisation avec les concepts
de base des SI et des bases de données,
• Initiation aux langages de gestion des
données
• Langage de requêtes SQL
Plan
• Chapitre 1 : Introduction générale
• Chapitre 2 : Modèle Entité/Association
• Chapitre 3 : Modèle relationnel
• Chapitre 4 : L’algèbre relationnelle
• Chapitre 5 : Langage SQL
Bibliographie
• Carrez C., Des Structures aux Bases de
Données, Masson
• 2. Gardarin G., Maîtriser les Bases de Données:
modèles et langages, Eyrolles
• 3. Marcenac, P., SGBD relationnels,
Optimisation des performances, Eyrolles.
Données, Bases de données et SGBD
• Qu’est-ce qu’une donnée ?
C’est une information quelconque comme, par exemple :
voici une personne, elle s’appelle Ahmed. C’est aussi une relation
entre des informations : Ahmed enseigne les bases de données.
Des relations de ce genre définissent
des structures.

Définition : D'après l'encyclopédie Encarta : « Une donnée est une information représentée
sous une forme conventionnelle, afin de pouvoir être traitée automatiquement »
Définitions générales
• Base de données :
1) ensemble structuré de données apparentées qui
modélisent un univers réel.
Peu importe le support utilisé pour rassembler et stocker
les données (papier, fichiers, etc.), dès lors que des
données sont rassemblées et stockées d’une manière
organisée dans un but spécifique, on parle de
base de données.

2) Plus précisément, on appelle base de données un


ensemble homogène et structurée d'informations
permettant le stockage de grandes quantités
d’informations afin d’en faciliter l’exploitation (ajout, mise
à jour, recherche de données).
Base de données informatisée
● Définition : Une base de données
informatisée est un ensemble structuré de
données enregistrées sur des supports
accessibles par l’ordinateur, représentant
des informations du monde réel et pouvant
être interrogées et mises à jour par une
communauté d’utilisateurs.
● Le résultat de la conception d’une base de
données informatisée est une description
des données.
Exemples classiques
d'applications BD
● Gestion des ● Système de
personnels, réservation
étudiants, cours,
inscriptions, ...
d’une
● Gestion des ● Gestion des
● comptes clients
université commandes à
d’une banque Amazon.com
Exemples de BD
• Exemple 1 :
Organisation : une bibliothèque
Données : les livres, les emprunts, les
emprunteurs
• Exemple 2 :
Organisation : une Université
Données : les étudiants, les enseignants, les
cours, etc.
Systèmes de Gestion de Bases de
Données
• Systèmes de Gestion de Bases de Données
(DataBase Management Systems - DBMS) :
Ensemble de logiciels systèmes permettant aux
utilisateurs d'insérer, de modifier, et de
rechercher efficacement des données
spécifiques dans une grande masse
d'informations (pouvant atteindre plusieurs
milliards d'octets) partagée par de multiples
utilisateurs.
Systèmes de Gestion de Bases de
Données
En bref un SGBD est un système qui permet de
gérer une BD partagée par plusieurs utilisateurs
simultanément.
Exemples : MySQL, PostgreSQL, Oracle,
Microsoft SQLServer, etc.
Des fichiers aux Base de Données
La multiplication des fichiers entraînait la redondance des
données, ce qui rendait difficile les mises à jour.
D'où l'idée d'intégration et de partage des données
Objectifs et avantages des SGBD
Que doit permettre un SGBD ?
• Décrire les données
indépendamment des applications (de manière
intrinsèque)
⇒ langage de définition des données
DATA DEFINITION LANGUAGE (DDL)
• Manipuler les données
interroger et mettre à jour les données sans préciser
d'algorithme d'accès dire QUOI sans dire COMMENT
langage de requêtes déclaratif
ex.: quels sont les noms des produits de prix < 1000 dh ?
⇒ langage de manipulation des données
DATA MANIPULATION LANGUAGE (DML)
Objectifs et avantages des SGBD
Contrôler les données
intégrité
vérification de contraintes d'intégrité
ex.: le salaire doit être compris entre 2000 dh et 20000dh
confidentialité
contrôle des droits d'accès, autorisation
⇒ langage de contrôle des données
DATA CONTROL LANGUAGE (DCL)
Partage
une BD est partagée entre plusieurs utilisateurs en
même temps
⇒ contrôle des accès concurrents
notion de transaction
L'exécution d'une transaction doit préserver la
cohérence de la BD
Objectifs et avantages des SGBD
Sécurité
reprise après panne, journalisation
Performances d'accès index (hashage, arbres balancés ...)
Indépendance physique
Pouvoir modifier les structures de stockage ou les
index sans que cela ait de répercussion au niveau des
applications
Les disques, les méthodes d’accès, les modes de placement, le
codage des données ne sont pas apparents
Indépendance logique
Permettre aux différentes applications d’avoir des vues
différentes des mêmes données Permettre au DBA de modifier
le schéma logique sans que cela ait de répercussion au niveau
des applications
Architecture des SGBD
● Pour mettre un peu d’ordre dans tout cela, on peut se raccrocher
à une architecture standard conforme à la plus grande partie des
SGBD existant, et offrant l’avantage de bien illustrer les
principales caractéristiques d’un SGBD.
● Cette architecture distingue trois niveaux correspondant d’une
part à trois représentations équivalentes de l’information, d’autre
part aux champs d’interventions respectifs des principaux acteurs.
Pour ces derniers, nous utiliserons la terminologie suivante :
● - Utilisateur naïf : du non spécialiste des SGBD au non
informaticien.
- Concepteur et programmeur d’application : à partir des besoins
des différents utilisateurs, écrit l’application pour des utilisateurs
“naïfs”.
Architecture des SGBD
Chaque niveau du SGBD remplit (réalise) un certain nombre de
fonctions :
● Niveau physiques : gestion sur mémoire secondaire (fichiers)
des données, du schéma, des index ; Partage de données et
gestion de la concurrence d’accès ; Reprise sur pannes
(fiabilité) ; Distribution des données et interopérabilité (accès
aux réseaux).
● Niveau logique : Définition de la structure de données :
Langage de Description de Données (LDD) ; Consultation et
Mise à Jour des données : Langages de Requêtes (LR) et
Langage de Manipulation de Données (LMD) ; Gestion de la
confidentialité (sécurité) ; Maintien de l’intégrité ;
● Niveau externe : Vues ; Environnement de programmation
Architecture des SGBD
En résumé, un SGBD est destiné à gèrer un gros
volume d’informations, persistantes (années) et
fiables (protection sur pannes), partageables
entre plusieurs utilisateurs et/ou programmes et
manipulées indépendamment de leur
représentation physique.
Notion de modélisation des données
Le modèle Entité/Association
● Ce chapitre présente le modèle Entité/Association (E/A)
qui est utilisé à peu près universellement pour la
conception de bases de données (relationnelles
principalement).
● La conception d’un schéma correct est essentielle pour le
développement d’une application viable. Dans la mesure
où la base de données est le fondement de tout le
système, une erreur pendant sa conception est
difficilement récupérable par la suite.
● Le modèle E/A a pour caractéristiques d’être simple et
suffisamment puissant pour représenter des structures
relationnelles. Surtout, il repose sur une représentation
graphique qui facilite considérablement sa
Le modèle Entité/Association
● Le modèle E/A souffre également de nombreuses
insuffisances : la principale est de ne proposer que des
structures.
● Il n’existe pas d’opération permettant de manipuler les
données, et pas (ou peu) de moyen d’exprimer des
contraintes. Un autre inconvénient du modèle E/A est de
mener à certaines ambiguités pour des schémas
complexes.
● En bref l'objectif de la modélisation conceptuelle
est la représentation symbolique et réduite de
la réalité représentation logique (vs. physique)
Entité
● Définition : entité = représentation logique d’un individu
(au sens large, c’est-à-dire élément d’un ensemble) ou
“objet”.
● Une entité correspond également à une classe d'Une
entité est caractérisée par son unicité => identifiant
unique (“clé”). Ex: no. SS, no. client, no. produit.
● Une entité peut être représentée par un ensemble
d’attributs 4 . Ex: nom d’une personne, âge, adresse,
nom d’un produit, prix unitaire, quantité en stock, ...
● Chaque attribut peut prendre un certain nombre de
valeurs -> domaine de l’attribut 5 .
Entité
● Une entité du monde réel est ainsi représentée par un
ensemble d’attributs instanciés à l’aide de valeurs.
● Une entité peut être considérée comme dépendante si
son existence est conditionnée par l’existence d’une
autre ou d’autres entités.
● Ex: si un produit n’est livré que par un seul fournisseur
et que ce fournisseur disparait, le produit va lui aussi
disparaitre. On parle aussi d’entités dominantes /
dominées.
Le modèle Entité/Association

Définition: EA en français, ER en anglais (pour


Entity Relationship) Formalisme retenu par l'ISO
pour décrire l'aspect conceptuel des données à
l’aide d’entités et d’associations
● La méthode permet de distinguer les entités qui
constituent la base de données, et les
associations entre ces entités. Ces concepts
permettent de donner une structure à la base,
ce qui s’avère indispensable.
Le concept d’entité
● Représentation d’un objet matériel ou
immatériel
● Par exemple un employé, un projet, un bulletin
de paie

● Les entités peuvent être regroupées en types


d’entités
Le concept d’entité
● Par exemple, on peut considérer que tous
les employés particuliers sont des
instances du type d’entité générique
EMPLOYE
● Par exemple l’employé nommé DUPONT
est une instance ou occurrence de l’entité
EMPLOYE
Les propriétés
● données élémentaires relatives à une
entité
Par exemple, un numéro d’employé, une date de début de
projet
• on ne considère que les propriétés qui intéressent un
contexte particulier
• Les propriétés d’une entité sont également appelées des
attributs, ou des caractéristiques de cette entité
L’identifiant

propriété ou groupe de propriétés qui sert à identifier une


entité L’identifiant d’une entité est choisi par l’analyste de
façon à ce que deux occurrences de cette entité ne
puissent pas avoir le même identifiant
● Par exemple, le numéro d’employé sera l’identifiant de
l’entité EMPLOYE
Les associations
Représentation d’un lien entre deux entités
ou plus
• une association peut avoir des propriétés
particulières
Les associations
● Par exemple, la date d’emprunt d’un livre
Les cardinalités
La cardinalité d’une association pour une
entité constituante est constituée d’une
borne minimale et d’une borne maximale :
• Minimale : nombre minimum de fois
qu’une
occurrence de l’entité participe aux
occurrences de l’association, généralement
0 ou 1
• Maximale : nombre maximum de fois
qu’une occurrence de l’entité participe aux
occurrences de l’association, généralement
Les cardinalités
Par exemple :

• La cardinalité 0,3 indique qu’un adhérent peut être associé à 0, 1, 2 ou 3 livres, c’est à
dire qu’il peut emprunter au maximum 3 livres.
• A l’inverse un livre peut être emprunté par un seul adhérent, ou peut ne pas être
emprunté.
• Les cardinalités maximum sont nécessaires pour concevoir le schéma de la base de
données
• Les cardinalités minimums sont nécessaires pour exprimer les contraintes d’intégrité
Les cardinalités

● En notant uniquement les cardinalités


maximum, on distingue 3 type de liens :
• Lien fonctionnel 1:n
• Lien hiérarchique n:1
• Lien maillé n:m
Lien fonctionnel 1:n

Une instance de A ne peut être associée qu'à une seule instance


de B. Par exemple :

Un employé ne peut travailler que dans un seul département


Lien hiérarchique n:1

Une instance de A peut être associée à plusieurs instances de B

Inverse d'un lien 1:n

Un département emploie généralement plusieurs employés


Lien maillé n:m

Une instance de A peut être associée à plusieurs instances de


B et inversement. Par exemple :

De ce schéma, on déduit qu’un employé peut participer à


plusieurs projets.
Diagrammes entités-associations

● Classes d’entités -> rectangles.


● Attributs -> ellipses
● Associations -> losanges.
● Exemples : Produits / Fournisseurs /
Clients, Comptes bancaires / Clients /
● Agences, Etudiants / Cours / Profs.
Exemple de diagramme Entité Association
Les différents modèles de données
● L'organisation des données au sein d'une
BD a une importance essentielle pour
faciliter l'accès et la mise à jour des
données
● Nous avons trois type de modèles des
données.
Modèle Hiérarchique
Modèle Réseau
Modèle relationnel
Modèles hiérarchique et réseau
● Les modèles hiérarchique et réseau sont
issus du modèle GRAPHE
● données organisées sous forme de
graphe
● langages d'accès navigationnels
(adressage par liens de chaînage)
● on les appelle "modèles d'accès"
Modèle Relationnel
● Le modèle relationnel est fondé sur la
notion mathématique de RELATION
● introduit par Codd (recherche IBM)
● données organisées en tables (adressage
relatif)
● stratégie d'accès déterminée par le SGBD
LE MODÈLE RÉSEAU
● Schéma logique représenté par un
GRAPHE
noeud : article (représente une entité)
arc : lien hiérarchique 1:N
● Exemple de schéma réseau
LE MODÈLE RÉSEAU

● Exemple de schéma réseau


LE MODÈLE HIÉRARCHIQUE
Schéma logique représenté par un ARBRE
noeud : segment (regroupement de données)
arc : lien hiérarchique 1:N

• Exemple de shéma hiérarchique


LE MODÈLE HIÉRARCHIQUE
Choix possible entre plusieurs arborescences
(le segment racine est choisi en fonction de l'accès souhaité)
• Dissymétrie de traitement pour des requêtes symétriques
En prenant l'ex. précédent, considérer les 2 requêtes :
a) Trouver les no de produits achetés par le client x
b) Trouver les no de clients qui ont acheté le produit p
Elles sont traitées différemment suivant le choix du segment
racine
(Client ou Produit)
• Adéquation du modèle pour décrire des organisations à
structure arborescente (ce qui est fréquent en gestion)
LE MODÈLE RELATIONNEL

● En 1970, CODD présente le modèle relationnel


● Schéma logique représenté par des RELATIONS
LE SCHÉMA RELATIONNEL
Le schéma relationnel est l'ensemble des RELATIONS
qui modélisent le monde réel
● Les relations représentent les entités du monde réel
(comme des personnes, des objets, etc.) ou les
associations entre ces entités
LE MODÈLE RELATIONNEL
● Passage d'un schéma conceptuel E-A à un schéma
relationnel
- une entité est représentée par la relation :
nom_de_l'entité (liste des attributs de l'entité)
- une association M:N est représentée par la relation :
nom_de_l'association (
liste des identifiants des entités participantes,
liste des attributs de l'association)
● Ex . : CLIENT (IdCli, nom, ville)
PRODUIT (IdPro, nom, prix, stock)
VENTE (IdCli, IdPro, date, qte)
Représentation des données sous forme de tables :
LES AVANTAGES DU MODÈLE RELATIONNEL
SIMPLICITE DE PRÉSENTATION
- représentation sous forme de tables
• OPÉRATIONS RELATIONNELLES
- algèbre relationnelle
- langages assertionnels
• INDEPENDANCE PHYSIQUE
- optimisation des accès
- stratégie d'accès déterminée par le système
• INDEPENDANCE LOGIQUE
- concept de VUES
• MAINTIEN DE L’INTEGRITÉ
- contraintes d'intégrité définies au niveau du schéma
Règle de normalisation

Un bon schéma doit E/A doit répondre à certains


règles de normalisation
● Normalisation des Entités : Toutes les entités
remplaçable par une association doivent être
remplacer.
● Normalisation des noms: Le nom d’une entité,
d’une association ou d’une attribut.
Plusieurs fois le même nom, c’est parfois symptomatique d’une
modélisation qui n’est pas terminée (figure (a)) ou le signe d’une
redondance (figure (b))
Règle de normalisation

• Normalisation des identifiants : Chaque


entité doit avoir un identifiant
• Normalisation des attributs : remplacer
les attributs en plusieurs exemplaires en
une association supplémentaire de
cardinalité maximale n et ne pas ajouter
des attributs calculable à partir d'autre
attributs
Les attributs en plusieurs exemplaire posent des problèmes
d’évolutivité du modèles (figure (a)), comment faire si un
employé à deux adresse secondaires ?
Les attributs calculables induisent un risque d’incohérence entre
les valeurs des attributs de base et celles des attributs calculés,
comme sur le figure (b)
Normalisation des attributs des
associations

● Dans l’exemple suivant, la quantité commandée dépend à la fois du numéro de client et


numéro d’article, par contre la date de commande non. Il faut donc faire une entité commande
à part idem pour les livraisons
Normalisation des attributs des
associations
Normalisation des associations
Normalisation des associations
Normalisation des associations

Vous aimerez peut-être aussi