Introduction aux Bases de données
Download
Report
Transcript Introduction aux Bases de données
Informatique appliquée à la gestion : EG5
Introduction aux Bases de
données
I. Introduction
I.1 Exemple de données à manipuler
La gestion des ressources humaines
d’une société.
On a besoin
employés.
de
la
liste
des
Employés en changement permanent :
Nouveau recrutement,
départ (retraite, démission,…)
changement de poste,
Pour chaque employé : on a besoin
d’enregistrer certaines informations
le nom et prénom,
le sexe,
la date de naissance,
l'adresse,
la date de recrutement,
la fonction dans l'entreprise,
N° d’immatriculation ...
Ces informations sont :
consultées plusieurs fois,
modifiées si nécessaire
Ajout et suppression
Entreprise
d’où la nécessité d’avoir un système de
stockage des données.
Différents manières ont été développées
pour le stockage :
A- avant l’ère informatique
Le tri manuellement,
plus le volume des données croît plus la
gestion manuelle devient difficile vue la
masse et la complexité des données.
B - L’ère informatique
Utilisation des fichiers informatiques pour
stocker les informations;
mais l’utilisation de fichiers impose :
• à l'utilisateur de connaître l’arborescence
des fichiers afin de pouvoir accéder aux
informations dont il a besoin,
• d'écrire des programmes pour pouvoir
effectivement manipuler ces informations.
On a donc recherché des solutions tenant
compte à la fois des désirs des utilisateurs
et des progrès techniques. Cette recherche
a abouti au concept de base de données.
II. Base de Données
II.1 Définition :
Une base de données BD, (database DB) est
un ensemble de données, stocké de façon :
Exhaustif : la base contient toutes les
informations requises pour le service que l'on
en attend ;
non redondant : la même information n'est
présente qu'une seule fois (pas de
doublons).
Structuré : les données ont des structures
bien définies.
Remarques : Ces données doivent pouvoir
être utilisées par des utilisateurs différents.
Ainsi, la notion de base de données est
généralement couplée à celle de réseau.
On parle généralement de Système
d'Information pour désigner toute la
structure regroupant les moyens mis en
place pour pouvoir partager des données.
II-2 Utilité d'une base de données
Une base de données permet de mettre des
données à la disposition des utilisateurs pour :
•
•
•
•
•
une consultation,
une saisie
ou bien
une mise à jour,
tout en s'assurant des droits accordés aux
utilisateurs.
Une base de données peut être locale, c'està-dire utilisable sur une machine par un
utilisateur,
ou bien
répartie, c'est-à-dire que les informations sont
stockées sur des machines distantes et
accessibles par réseau et par plusieurs
personnes.
Exemple : la réservation des billets d’avions.
L'avantage majeur de l'utilisation de
bases de données est la possibilité de
pouvoir être accédées par plusieurs
utilisateurs simultanément.
Il existe des bases de données de toutes
tailles, depuis les plus modestes :
…. une liste des numéros de téléphone utilisée
par une seule personne,
jusqu'aux plus grandes :
…. la base des données commerciales d'une
société à activités multiples, avec des Géga
octets de données.
On reprend l’exemple de la société :
Pour éviter les problèmes de la redondance
et construire une base de données bien
structurée et facilement modifiée, il faut
créer deux tableaux :
1- tableau : Produit
Et
2- Tableau : Fournisseurs
III- La gestion
données
des
bases
de
III-1 Système de gestion des bases de
données (SGBD)
Le contrôle des données et des utilisateurs, se
fait grâce à un système de gestion appelé :
système de gestion de bases de données,
SGBD
(Database management system DBMS).
Le SGBD est un ensemble de services
(applications, logicielles) permettant de gérer
les bases de données, c'est-à-dire :
• permettre l'accès aux données de façon
simple à l’aide de l’interrogation de la base ;
• autoriser un accès aux informations à de
multiples utilisateurs ;
• manipuler les données présentes dans la
base de données (administration, insertion,
suppression, modification).
Exemples des applications utilisant les
SGBD :
• Gestion des étudiants d’une université,
• Gestion des réservations des places
d’avions,
• Gestion de comptes bancaires, ...
III-2 Constitution d’un système de gestion
des bases de données
Un SGBD est principalement constitué d'un
moteur
interface graphique (ou SGBD externe).
Le moteur est le coeur du logiciel, c'est à dire
qu'il assure les fonctions essentielles :
saisir les données,
les stocker,
les manipuler,
etc.
Il peut être décomposé en deux parties :
• un système de gestion de fichiers
• un SGBD Logique.
L'interface graphique permet à l'utilisateur
de communiquer commodément avec le
logiciel.
La couche externe (interface graphique) :
prend en charge l’interface avec les
utilisateurs (analyse des requêtes –
interrogation, modification de la BD–,
contrôle des droits d’accès, présentations
des résultats, ...)
La couche logique : assure les fonctions de
contrôle global (optimisation des requêtes,
gestion des conflits d’accès, contrôle de la
cohérence globale de la base, garantie du
bon déroulement des actions en cas de
panne, ...)
La couche interne (le système de gestion
de fichiers) : qui s’occupe du stockage
des données sur les supports physiques et
de la gestion des fichiers et des accès
(index, clés, ...).
III.3 Objectifs d’un SGBD
Parmi les objectifs principaux d’un SGBD sont :
Indépendance physique : La façon dont les
données sont définies doit être indépendante
des structures de stockages utilisées.
Par exemple : les données doivent être
définies indépendamment à ce que on utilise
un système Windows ou Unix ou un réseau
Serveur-Client ou un réseau Domestique,…
Indépendance logique : Un même
ensemble de données peut être vu
différemment
par
des
utilisateurs
différents. Toutes ces visions personnelles
des données doivent être intégrés dans
une vision globale.
Par exemple : dans une bibliothèque, un
utilisateur veut lister tout les livres
concernant la macroéconomie, un autre
utilisateur veut lister les livres de la
macroéconomie par auteur, donc se sont
les
même
données
manipulées
différemment.
• Manipulations des données par des non
informaticiens : Il faut pouvoir accéder aux
données sans savoir programmer ce qui
signifie des langages "quasi naturels".
• Efficacité des accès aux données : Ces
langages doivent permettre d'obtenir des
réponses aux interrogations en un temps
"raisonnable". Ils doivent donc être optimisés.
• Administration centralisée des données :
Des visions différentes des données se
résolvent plus facilement si les données sont
administrées de façon centralisée.
• Non redondance des données : Afin
d'éviter les problèmes lors des mises à jour,
chaque donnée ne doit être présente qu'une
seule fois dans la base.
• Cohérence des données : Les données
sont soumises à un certain nombre de
contraintes d'intégrité qui définissent un état
cohérent de la base. Elles doivent pouvoir être
exprimées
simplement
et
vérifiées
automatiquement à chaque insertion,
modification ou suppression des données.
• Partageabilité des données : Il s'agit de
permettre à plusieurs utilisateurs d'accéder
aux mêmes données au même moment. Il
s'agit alors de pouvoir :
permettre à deux (ou plus) utilisateurs de
modifier la même donnée "en même temps" ;
assurer
un
résultat
d'interrogation
cohérent pour un utilisateur consultant une
table pendant qu'un autre la modifie.
• Sécurité des données : Les données
doivent pouvoir être protégées contre les
accès non autorisés. Pour cela, il faut
pouvoir associer à chaque utilisateur des
droits d'accès aux données.
III-3 Les principaux SGBD
Parmi les Les principaux éditeurs des
SGBD, il y a:
• IBM (36 %), éditeur de DB2 et
Informix ;
• Oracle (34 %), éditeur d’Oracle.
• Microsoft (18 %), éditeur de trois
SGBD :
–SQL Server est destiné aux gros
systèmes,
–Access
est
un
produit
bureautique professionnelle,
–Foxpro
est
développeurs.
• Sybase (<3 %).
destiné
de
aux
IV. Exemples de BD
1. Gestion des cours et étudiants d’une
université : Données beaucoup plus
complexes, car faisant intervenir des
informations diverses, liées entre-elles :
- Informations de type académique, sur les
étudiants (matricule, date d’inscription,
section, notes, ...)
– Informations de type personnelles, sur
les étudiants (nom, prénom, adresse, ...)
– Informations sur les cours dispensés
(titre, pré-requis, matière, langue,
enseignant, horaire, salle, ...)
– Informations sur les enseignants (nom,
prénom, bureau, téléphone, statut, ...)
– Informations sur les cours dispensés
(titre, matière, langue, enseignant,
horaire, salle, ...)
Ensemble de données trop complexe
pour être géré «manuellement» :
il faut faire appel à un SGBD.
V. Les différents modèles de
bases de données
Il existe cinq modèles de SGBD, différenciés
selon la représentation des données
qu'elle contient :
1. le modèle hiérarchique: les données
sont classées hiérarchiquement, selon
des relations de type père-fils. Ce qui
génère une structure arborescente
descendante.
On doit connaître a priori la structure de
l’arbre pour avoir accès aux données, si
la structure change les algorithmes
doivent changer.
Ce modèle est le
premier modèle de SGBD.
2. le modèle réseau: Ce modèle repose sur
le principe du regroupement des données
de la base. Les données sont placées a
proximité les unes des autres sur le disque
si elles sont reliées logiquement. Par
exemple une commande concernant des
produits doit être placés avec la liste des
produits.
3. le modèle relationnel (SGBDR : Système
de gestion de bases de données
relationnelles):
les
données
sont
enregistrées dans des tableaux à deux
dimensions (lignes et colonnes). La
manipulation de ces données se fait selon
la théorie mathématique des relations
Champs
Lignes
4. le modèle déductif : les données sont
représentées sous forme de table, mais
leur manipulation se fait par calcul de
prédicats
(relations
de
logique
mathématique)
le modèle objet (SGBDO): les données sont
stockées sous forme d'objets, c.à.d. des
structures appelées classes présentant
des données membres. Les champs sont
des instances de ces classes
Remarque : Les modèles relationnels
restent les modèles les plus répandues
(environ trois quarts des bases de
données), car elles conviennent bien à la
majorité des besoins des entreprises .
VI. Concept de base d’une base
de données
Le cycle de vie d’une base de donnée (BD)
se décompose en trois phases :
•
La conception : définition des
fonctionnalités,
• L’implantation : réalisation effective de la
base,
• L’exploitation : utilisation et maintenance
de la base.
A- Conception :
La phase de conception est une phase
d’analyse et de modélisation de la
problématique à traiter, qui aboutit à
déterminer le futur contenu de la BD.
La description obtenue, indépendamment des
systèmes de SGBD, utilise un langage
formel basé sur des concepts bien établis,
comme les objets, les liens et les propriétés.
Cette description est appelée :
Schéma Conceptuel (des besoins).
L’ensemble des concepts utilisés par le
langage formel de description choisi est
appelé le :
Modèle Conceptuel des Données (MCD).
Un MCD se décompose généralement en
deux parties :
• Une partie statique décrivant la structure des
données ;
•
Une partie dynamique
opérations sur les données
décrivant
les
Le modèle conceptuel illustré dans le cours
est le modèle : Entité - Association.
VI.1 Entité - Association :
VI.1.1 Entité :
Une entité est une population d’individus
homogènes.
Exemple: les produits ou les articles vendus
par une société peuvent être regroupés
dans une même entité Articles.
- Ordinateurs
-Imprimantes
- Scanner
-…
}
Articles
ceci est possible du fait que ces produits ont
les mêmes caractéristiques (par exemple :
la désignation, le prix unitaire, la quantité,
etc).
Clients
Fournisseurs
VI.1.2 Association :
Une association est une liaison qui a une
interprétation précise entre plusieurs entités.
Exemple : entre l’entité client et article il y a
une liaison qui est Commander : un client
commande un article, et entre fournisseurs et
clients il y a la liaison : Livrer
Clients
Commander
Articles
Livrer
Fig. Associations
Fournisseurs
VI.2 Attributs et identifiants :
Un attribut est une propriété (caractéristique)
d’une entité ou d’une association.
Exemple: Dans l’exemple de la société, l’entité
Articles a des attributs que nous avons déjà
cités :
Désignation,
Quantité,
prix unitaire,
…
L’entité Client peut avoir comme attributs:
adresse client,
nom et prénom du client,
…
Les associations Commander
peuvent avoir comme attributs :
quantité commandée,
date de livraison,
…
et
Livrer
Chaque individu d’une entité doit être identifiable
d’une manière unique et sans ambiguïté,
Exemple: L’individu Said Hamidi de l’entité Clients
ne peut pas être identifier d’une façon unique par son
nom :
Plusieurs clients peuvent avoir le même nom
chaque entité doit posséder un attribut
sans doublon (ne prenant pas deux
fois la même valeur). Il s’agit de
l’identifiant
Remarque : Une entité doit posséder au
moins un attribut qui est son identifiant, par
contre une association peut être dépourvu
d’attributs.
VI.3 Cardinalité
La cardinalité d’un lien entre une entité et une
association précise le nombre de fois qu’un
individu de l’entité peut être concerné par
l’association.
Exemples :
un client peut commander
de 1 jusqu’à n articles.
Un articles peut être commander 0 fois
jusqu’à m fois
• Un client ne peut exister que s’il commande
au moins un article.
Cardinalité minimale pour le client est 1
• Un article peut exister dans le stock même
s’il n’est pas commandé par aucun client,
Cardinalité minimale pour l’article est 0.
VI.4 Règles de modélisation :
Un bon schéma Entités-association doit vérifier
certaines règles dites
règles de modélisation (normalisation)
Objet : Rassembler les données homogènes et
éviter les redondances.
Règ 1: Normalisation des entités : Toutes les
entités qui sont remplaçables par une
association doivent être remplacées.
Deux entités homogènes peuvent être fusionner
Redondance, donc risque d’incohérence
Les adresses peuvent ne pas être les même donc où va-t-on livrer ?
Règ 2: Normalisation des noms : le nom d’une
entité, d’une association ou d’un attribut
doit être unique.
Règ 3: Normalisation d’un identifiant : Chaque
entité doit posséder un identifiant.
Règ 4: Normalisation des attributs et des
associations: les attributs d’une association
doivent
dépendre
directement
des
identifiants de toutes les entités en
association et il faut éliminer les
association superflues.
Règ 5. : Normalisation des cardinalités : une
cardinalité minimale est toujours 0 ou 1 (pas
2, 3 ou n) et une cardinalité maximale est
toujours 1 ou n (pas 2, 3,…).
Méthodologie de Base
Conception d’un MCD à partir d’un
problème Réel
1- Identifier les entités en présence.
2- Lister leurs attributs.
3- Ajouter les identifiants.
4- Établir les associations entre
les entités.
5- Lister leurs attributs.
6- Calculer les cardinalités.
7- Vérifier les règles de normalisation.
VII. Implantation
VII.1 Modèle Logique des Données (MLD) :
La deuxième phase dans la vie d’une base de
données est la phase d’implantation qui
consiste en la traduction du MCD en un
modèle employé par le SGBD.
Le nouveau modèle obtenu est appelé le :
Modèle Logique de Données (MLD).
Il y a plusieurs modèles logiques selon le
SGDB
correspondants
(hiérarchique,
relationnel, objet,…).
VII.2 Modèle logique de données relationnel
(MLDR) :
Ce modèle est lié au SGBD relationnel
(SGBDR) qui se base sur le concept de table
à deux dimensions constituées de lignes et
champs
VII.2.1 Tables, lignes et colonnes :
Dans le MLDR :
les entités sont remplacées par les tables
les colonnes (les champs) représentent les
attributs communs
les lignes contiennent les valeurs des champs
pour chaque ligne.
Il n’y a pas deux lignes identiques dans une table.
VII.2.2 Clés Primaires et Étrangères :
Les lignes d’une table doivent être identifiées
d’une façon unique et précise c’est pour cela
qu’un ou plusieurs champs sont utilisés pour
identifier les lignes. On appelle ce(s)
champ(s) :
Clé primaire (identifiant).
Toute table possède une seule clé primaire.
La connaissance d’une valeur de la clé
primaire délivre de façon unique et certaine
celle de chacun des autres champs de la
table.
Le champ auquel on applique une clé primaire
acquière les propriétés suivantes :
les doublons (deux informations identiques
ou plus) sont désormais interdits par le
système ;
la présence de la clé primaire interdit la
présence d'un champ vide dans un
enregistrement, la valeur "Null" est
désormais interdite.
Clé Étrangère
Une clé étrangère, est une clé (donc un
champ permettant d'identifier de façon
unique une ligne) faisant référence à une clé
appartenant à une autre table.
Exemple :
La table Clients possède une clé primaire qui est le champ N° client, on remarque
que la deuxième table Commandes contient le même champ N° client. Ce champ
sert à établir le lien entre les deux tables, dans la deuxième table Commande le
champ N° Client est dite Clé Étrangère.
Propriétés :
Une même table peut contenir plusieurs clés
étrangères mais une seule clé primaire.
Le SGBDR vérifie que les clés étrangères ne
prennent pas de valeurs en dehors de celles
prises
par
les
clés
primaires
correspondantes.
Cette vérification se fait lors de
l’insertion,
l’ajout,
la suppression
la mise à jour
des tables,
on dit que SGBDR garantit
l’intégrité référentielle des données.
VII.3 Schéma relationnel
Dans un SGBDR, les tables d’une base sont
représentées par un schéma relationnel
dans lequel
les tables sont appelées relations;
et les liens entre les clés étrangères et
primaires sont symbolisés par des
connecteurs.
Connecteur
Relations
Schéma relationnel simple entre deux tables
Traduction d’un MCD en un
MLDR
Pour traduire un schéma MCD en un schéma
MLDR, il suffit de suivre les étapes
suivantes :
Etape 1 : Toute entité devient une table
dans laquelle
les attributs deviennent les colonnes
l’identifiant de l’entité devient la clé
primaire de la table.
Exemple : L’entité Article suivante devient la
table Article
Colonnes (Champs)
Clé primaire
Attributs
Identifiant
Entité Article
Table Article
Étape 2 : Une association binaire de type 1:n
devient clé étrangère du côté 1:1 ou 1:0 qui
référence la clé primaire de l’autre table.
Remarque : Cette clé étrangère ne peut pas
recevoir la valeur vide si la cardinalité est 1:1
Étape 3 : Une association binaire de type n :m
devient une table supplémentaire appelée
table de jonction
L’association Concerner (1) est traduite
par la table supplémentaire :
lignes de commandes.
Les attributs de l’association deviennent
les colonnes de la nouvelle table.
La clé primaire est composé de deux clés
étrangères.
La clé primaire de cette dernière table est
constituée des deux clés des tables
commandes et articles.
Étape 4 : Une association binaire de type 1:1
se traduit comme une association de type
1:n sauf que la clé étrangère se voit imposé
une contrainte d’unicité qui impose à la
colonne correspondante de ne prendre que
des valeurs distinctes.
L’association diriger disparaît au profit de la
table services qui comportera un nouveau
champ n° employé (comme clé étrangère).
!!! Les colonnes de ce champ ne peuvent pas
prendre des valeurs identiques.
Étape 5 : Une association non binaire est
traduite par une table supplémentaire :
La clé primaire est composée d’autant de
clés étrangères que d’entités en association.
Les attributs de l’association deviennent les
colonnes de la nouvelle table.
L’association projeter se traduit par une
table supplémentaire projections.
La clé primaire de cette table est constituée
des clés primaires des autres tables.
l’attribut tarif de l’association projeter
devient une colonne de la table projection.
VIII. Exploitation
En phase d’exploitation, l’utilisation de la BD
se fait au moyen d’un langage de
manipulation de données (LMD).
Un LMD permet d’exprimer aussi bien
des requêtes d’interrogation que des
requêtes de mise à jour.
• Exemple de langage : SQL (Structured
Query Langage).
VIII. Récapitulation
Finalement on peut schématiser la
description complète d‘une base de
données à l’aide de 4 types de schémas,
dont 3 sont directement utilisés par le
SGBD.
Schéma conceptuel : c’est le Modèle
conceptuel de données (MCD).
Schéma externes : Lors de son interaction
avec la BD, chaque utilisateur n’est
généralement intéressé que par une partie
des données stockées dans la base.
On lui associe donc un schéma externe
(aussi appelé vue) décrivant le sousensemble de la base auquel il a accès,
structuré de façon à répondre à ses
besoins spécifiques.
Schéma logique : La phase d’implantation
nécessite la traduction du schéma
conceptuel dans un schéma utilisant les
concepts du :
Modèle logique de données relationnel
(MLDR).
Schéma internes : Pour l’implantation
effective des données, il faut effectuer les
choix relatifs à leur stockage et leur
structuration sur les mémoires physique,
sous la forme d’un ensemble de fichiers.
Ces choix sont consignés dans ce qu’on
appelle le schéma interne de la base de
données, qui repose sur le modèle interne,
dont les concepts sont ceux du système
de fichiers utilisé.