Uploaded by Djihane Ben

Cours Bases de données et Modélisation Master 2

advertisement
République Algérienne Démocratique et Populaire
Ministère de L’enseignement Supérieur et de la Recherche Scientifique
Université des Frères Mentouri, Constantine1
Faculté des Sciences Exactes
Département de Mathématiques
Document destiné aux étudiants de Master 2 LMD
Option : Mathématiques Appliquées à l’économie
et à la finance
Cours Base de données et
Modélisation
Enseignante : Aya Madouri
2024-2025
1
Plan de cours
CHAPITRE 1 : INTRODUCTION AUX BASES DE DONNEES --------------- 3
I- NOTIONS INTUITIVES ----------------------------------------------------------- 3
II- OBJECTIFS ET AVANTAGES DES SGBD ---------------------------------------- 5
III- TYPES D'UTILISATIONS DE BD : --------------------------------------------- 6
IV- LES TYPES DE BASE DE DONNEES : ------------------------------------------- 8
CHAPITRE 2: MODELISATION DE BASES DE DONNEES------------------ 11
I- L’ARCHITECTURE ANSI/SPARC : -------------------------------------------- 11
II- LE MODELE ENTITE-ASSOCIATION : ------------------------------------------ 13
CHAPITRE 3 : CONCEPTION LOGIQUE --------------------------------------- 21
I- TRADUCTION DU MODELE CONCEPTUEL : ------------------------------------ 21
II- NORMALISATION DE BASES DE DONNEES: ----------------------------------- 22
III- TYPES DE DONNEES : -------------------------------------------------------- 24
IV- OPTIMISATION DES REQUETES : -------------------------------------------- 24
V- NORMALISATION DE LA CONCEPTION : -------------------------------------- 25
CHAPITRE 4 : LE MODELE RELATIONNEL ----------------------------------- 27
I- INTRODUCTION : -------------------------------------------------------------- 27
II- CONCEPTS DE BASE : ---------------------------------------------------------- 28
III- LES DÉPENDANCES FONCTIONNELLES : ---------------------------- 32
IV- LES REGLES D'INTEGRITE : -------------------------------------------------- 33
I- LES FORMES NORMALES : ---------------------------------------------------- 35
2
Chapitre 1 : Introduction aux Bases de
Données
I- Notions intuitives
a- Base de données :
Ensemble structuré de données apparentées qui modélisent un univers réel.
Une BD est faite pour enregistrer des faits, des opérations au sein d'un
organisme (administration, banque, université, hôpital, ...). Les BD ont une
place essentielle dans l'informatique .
b- Tables :
Les tables sont des structures qui organisent les données en lignes
et colonnes. Chaque ligne représente un enregistrement individuel, tandis
que chaque colonne représente un attribut ou un champ spécifique lié aux
enregistrements. Par exemple, dans une base de données de gestion
d'employés, vous pourriez avoir une table avec des colonnes pour le nom, le
prénom, l'âge, le numéro d'employé, le poste, etc.
c- Schéma :
Le schéma d'une base de données définit la structure des tables, y
compris les types de données autorisés pour chaque colonne, les clés
primaires et étrangères, les contraintes d'intégrité, etc.
d- Langage de requête :
Pour interagir avec la base de données, vous utilisez généralement un langage
de requête, tel que SQL (Structured Query Language). SQL permet de créer,
lire, mettre à jour et supprimer des données dans la base de données.
3
e- Système de Gestion de Base de Données (SGBD) DATA
BASE MANAGEMENT SYSTEM (DBMS) :
Système qui permet de gérer une BD partagée par plusieurs utilisateurs
simultanément
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 .
4
II- Objectifs et avantages des SGBD
• Que doit permettre un SGBD ?
a- 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)
b- 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 < 100 Euro ?
⇒ langage de manipulation des données DATA MANIPULATION LANGUAGE
(DML)
c- Contrôler les données :
Intégrité: vérification de contraintes d'intégrité
ex.: le salaire doit être compris entre 400 Euro et 20000 Euro?
Confidentialité: contrôle des droits d'accès, autorisation
⇒ langage de contrôle des données DATA CONTROL LANGUAGE (DCL)
d- 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.
e- Sécurité :
reprise après panne, journalisation
f- Performances d'accès :
index (hashage, arbres balancés ...)
g- 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 .
5
h- 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
III-
Types d'utilisations de BD :
a- Gestion de l'entreprise :
- Gestion des ressources humaines : Suivi des informations sur les employés, les
salaires, les avantages, etc.
- Gestion des clients : Stockage des informations sur les clients, les commandes,
les historiques d'achat, etc.
- Gestion de l'inventaire : Suivi des stocks, des fournisseurs et des niveaux de
stock.
- Comptabilité : Stockage des transactions financières, des comptes, des
rapports
financiers, etc.
b- Sites Web et applications :
- Sites de commerce électronique : Stockage des informations sur les produits,
les commandes, les commentaires des clients, etc.
- Réseaux sociaux : Gestion des profils d'utilisateurs, des messages, des
relations entre utilisateurs, etc.
- Blogs et systèmes de gestion de contenu (CMS) : Stockage des articles, des
médias,des commentaires, etc.
- Applications mobiles : Stockage de données utilisateur, de paramètres, de
journaux d'activité, etc.
c- Science des données et analyse :
- Stockage de données brutes : Conservation de données massives pour des
analyses ultérieures.
- Data warehousing : Agrégation et stockage de données provenant de
multiples sources pour l'analyse.
6
- Business intelligence : Création de rapports, de tableaux de bord et d'analyses
pour aider à la prise de décision.
d- Secteur de la santé :
- Dossiers médicaux électroniques (DME) : Stockage des informations sur les
patients,les diagnostics, les ordonnances, etc.
- Systèmes d'information hospitalière (SIH) : Gestion des opérations
hospitalières et des rendez-vous.
- Recherche médicale : Stockage de données de recherche, de résultats d'essais
cliniques, etc.
e- Secteur de l'éducation :
- Gestion des étudiants : Stockage des informations sur les élèves, les cours, les
notes,etc.
- Bibliothèques numériques : Stockage de livres, de revues et de ressources
éducatives en ligne.
- Analyse des performances : Suivi des performances des élèves et des
enseignants.
f- Logistique et transport :
- Gestion de la chaîne d'approvisionnement : Suivi des flux de produits, des
commandes et de l'inventaire.
- Gestion de flottes : Suivi des véhicules, de la maintenance, des itinéraires...
- Planification des transports : Optimisation des itinéraires et des horaires de
livraison.
g- Secteur gouvernemental :
- Gestion des registres publics : Stockage de données civiles, criminelles,
foncières, etc.
- Administration fiscale : Suivi des impôts, des paiements, des déductions...
h- Sécurité et application de la loi :
- Gestion des preuves : Stockage de preuves numériques dans les enquêtes
criminelles.
7
- Contrôle des frontières : Gestion des données des voyageurs et des
passeports.
IV-
Les types de base de données :
Il existe plusieurs types de bases de données, chacun conçu pour répondre à
des besoins spécifiques en matière de stockage et de récupération de données.
Les types de bases de données les plus courants comprennent :
a- Bases de données relationnelles (SGBDR - Système de
Gestion de Base de Données Relationnelle) :
- Les bases de données relationnelles utilisent des tables pour stocker des
données, où chaque table est constituée de lignes (enregistrements) et de
colonnes (attributs).
- Elles sont basées sur le modèle relationnel, et SQL (Structured Query
Language) est souvent utilisé pour les interroger.
- Exemples de SGBDR courants : MySQL, PostgreSQL, Oracle Database,
Microsoft SQL Server.
b- Bases de données NoSQL (Not Only SQL) :
-
Les bases de données NoSQL sont conçues pour gérer des données non
structurées ou semi-structurées et offrir une grande évolutivité.
- Elles sont adaptées aux applications web, à l'Internet des objets (IoT), à
la gestion de données JSON, XML, etc.
- Types de bases de données NoSQL : Document stores (ex. MongoDB),
Key-Value stores (ex. Redis), Column-family stores (ex. Apache
Cassandra),Graph databases (ex. Neo4j).
c- Bases de données en mémoire (In-Memory Databases) :
-
Ces bases de données stockent toutes les données en mémoire vive
(RAM) plutôt que sur des disques, ce qui les rend très rapides pour les
opérations de lecture/écriture.
8
- Elles sont utilisées pour des applications nécessitant une latence
minimale, comme les applications financières et les systèmes de gestion
de caches.
- Exemples : Redis, Memcached.
d- Bases de données de graphes :
- Ces bases de données sont optimisées pour stocker et interroger des
données sous forme de graphes, ce qui les rend adaptées à la gestion de
relations complexes entre les entités.
- Elles sont utilisées pour des applications telles que les réseaux sociaux, la
recommandation de contenu et la détection de fraudes.
- Exemples : Neo4j, Amazon Neptune.
e- Bases de données en temps réel (Real-time Databases) :
-
Ces bases de données sont conçues pour gérer en temps réel des
données qui changent fréquemment.
- Elles sont utilisées dans les applications nécessitant des mises à jour en
temps réel, telles que les systèmes de suivi des stocks, de suivi de flottes,
etc.
- Exemples : Firebase Realtime Database, Apache Kafka.
f- Bases de données spatiales (Spatial Databases) :
-
Ces bases de données sont conçues pour stocker des données
géospatiales, telles que des cartes, des informations de localisation et
des données de géolocalisation.
- Elles sont utilisées dans la cartographie, la navigation, la planification
urbaine, etc.
- Exemples : PostGIS, Esri ArcGIS.
g- Bases de données distribuées :
- Les bases de données distribuées répartissent les données sur plusieurs
9
serveurs ou nœuds pour une grande évolutivité et une meilleure
tolérance aux pannes.
-
Elles sont utilisées pour des applications nécessitant des volumes de
données massifs et une haute disponibilité.
- Exemples : Apache Cassandra, Amazon DynamoDB.
Chaque type de base de données a ses propres avantages et inconvénients, et
le choix dépend des besoins spécifiques de l'application. Il est important de
sélectionner le type de base de données le plus adapté en fonction de la nature
des données à stocker et de l'utilisation prévue.
10
Chapitre 2: Modélisation de Bases de
Données
I- L’architecture ANSI/SPARC :
a- Le niveau externe :
Le concept de vue permet d'obtenir l'indépendance logique La modification du
schéma logique n’entraîne pas la modification des applications (une
modification des vues est cependant nécessaire) Chaque vue correspond à la
perception d’une partie des données, mais aussi des données qui peuvent être
synthétisées à partir des informations représentées dans la BD (par ex.
statistiques).
b- Le niveau interne :
il correspond aux structures de stockage et aux moyens d’accés (index) .
c- Le niveau conceptuel :
il contient la description des données et des contraintes d’intégrité
(Dictionnaire de Données) le schéma logique découle d’une activité de
Modélisation.
11
 Conception Conceptuelle :
La phase initiale du processus de modélisation de données est la conception
conceptuelle, où l'objectif principal est de définir les concepts, les entités, les
relations et les attributs pertinents pour le système ou le domaine en question.
Cette étape se concentre sur la création d'un modèle abstrait, généralement
présenté sous forme de diagrammes, de schémas ou de notations spécifiques,
tels que le modèle entité-association, afin de représenter de manière
conceptuelle les éléments fondamentaux du système ou de la base
de données.
La conception conceptuelle permet de saisir les besoins, les exigences et la
structure globale du système, en mettant de côté les aspects techniques de la
mise en œuvre. Elle fournit une vue d'ensemble qui servira de fondement pour
la création du modèle logique, lequel, à son tour, conduira à la mise en œuvre
pratique de la base de données ou du système d'information.
En résumé, la conception conceptuelle est une étape cruciale de la
modélisation de bases de données, visant à créer un modèle conceptuel,
également connu sous le nom de modèle entité-association (modèle E-R), qui
capture la structure globale de la base de données sans se préoccuper des
détails de mise en œuvre. Cette étape permet de définir les entités, les
relations et les attributs essentiels nécessaires pour représenter de manière
adéquate les données du domaine spécifique que la base de données gérera.
Voici quelques éléments importants de la conception conceptuelle :
12
II- Le modèle Entité-Association :
EA en français, ER en anglais (pour Entity Relationship):
a- Le concept d’entité :
En matière de modélisation de données et de conception de bases de données,
une entité représente un objet, une chose ou un concept du monde réel qui
peut être identifié et distingué. Les entités sont des éléments fondamentaux
dans la conception conceptuelle et la modélisation de bases de données, et
elles jouent un rôle essentiel pour organiser et stocker des informations sur ces
objets du monde réel.
Les entités sont des abstractions qui permettent de représenter des objets ou
des concepts réels, tels que des personnes, des produits, des factures, des
commandes, etc. Elles sont généralement représentées par des noms
descriptifs, comme "Client," "Produit," ou "Employé."
• Les entités peuvent être regroupées en types d’entités Un type d’entités
définit un ensemble particulier d’entités.
• Chaque entité appartient à un type d’entités
13
• Les entités forment des occurrences de leurs types
Par exemple, on peut considérer que tous les projets particuliers sont des
instances du type d’entité générique PROJET.
b- 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
(pertinentes);
• Les propriétés d’une entité sont également appelées Des attributs, ou des
caractéristiques de cette entité .
c- Attributs :
Les attributs, dans le contexte de la modélisation de base de données, sont des
caractéristiques ou des propriétés spécifiques qui décrivent une entité. Ils
représentent les informations ou les données que l'on souhaite stocker au sujet
de chaque instance de cette entité. Les attributs sont fondamentaux pour
définir les détails et les caractéristiques des entités et des relations dans une
base de données. Voici quelques points importants à retenir sur les attributs :
 Types d'attributs : Les attributs peuvent avoir différents types de
données, tels que des nombres, des chaînes de caractères, des dates, des
booléens, etc. Le choix du type de données dépend de la nature de
l'information que l'attribut représente.
 Exemples d'attributs : Dans le contexte d'une base de données pour une
entreprise, des exemples d'attributs pour l'entité "Employé" pourraient
inclure le nom, le prénom, le numéro d'employé, la date d'embauche, le
salaire, le département, etc.
 Attributs composites : Parfois, un attribut peut être composé de
plusieurs sous-attributs. Par exemple, l'adresse d'un client peut être
divisée en attributs tels que "rue,""ville," "code postal," etc.
 Attributs dérivés : Certains attributs peuvent être calculés à partir
d'autres attributs de la base de données. Par exemple, l'âge d'une
personne peut être dérivé à partir de sa date de naissance.
 Attributs clés : Dans le contexte des clés primaires, un attribut clé est un
attribut qui est utilisé pour identifier de manière unique chaque
14
enregistrement d'une entité. Par exemple, dans une table "Clients,"
l'attribut "ID client" peut être la clé primaire.
 Attributs optionnels ou obligatoires : Certains attributs peuvent être
obligatoires (non nuls), ce qui signifie qu'ils doivent avoir une valeur pour
chaque enregistrement, tandis que d'autres peuvent être optionnels
(nuls), ce qui signifie qu'ils peuvent être laissés vides.
 Attributs multi-valués : Certains attributs peuvent avoir plusieurs valeurs
pour une même entité. Par exemple, un client peut avoir plusieurs
numéros de téléphone.
Les attributs jouent un rôle essentiel dans la définition de la structure des
entités et dans la capture des données pertinentes pour une base de données.
Une conception soignée des attributs est cruciale pour garantir que la base de
données est capable de stocker, récupérer et gérer les informations de manière
efficace et précise.
d- Clés primaires :
Une clé primaire (PK - Primary Key en anglais) est un attribut ou un ensemble
d'attributs dans une base de données qui permet d'identifier de manière
unique chaque enregistrement (ligne) dans une table. Les clés primaires sont
essentielles pour garantir l'intégrité des données et permettre des opérations
telles que la recherche et la mise à jour d'enregistrements spécifiques. La
définition et la gestion appropriée des clés primaires sont essentielles pour la
conception d'une base de données bien structurée, car elles garantissent
l'intégrité des données et facilitent les opérations de recherche et de gestion
des données.
EMLOYE
Numéro
Nom
Prénom
…
Zone– Base de données
Voici quelques points clés sur les clés primaires :
15
-
Unicité : Chaque valeur de la clé primaire doit être unique au sein de la
table. Cela signifie qu'aucun enregistrement dans la table ne peut avoir la
même valeur pour la clé primaire.
- Non-nullité : Les valeurs de la clé primaire ne peuvent pas être nulles
(c'est-à-dire, elles doivent contenir une valeur).
- Stabilité : Les valeurs de la clé primaire ne doivent pas changer
fréquemment. Elles servent à identifier de manière permanente chaque
enregistrement.
- Usage fréquent : Les clés primaires sont souvent utilisées pour établir
des relations entre les tables (clés étrangères) et pour rechercher
rapidement des enregistrements.
Par exemple, le numéro d’employé sera clé primaire de l’entité EMPLOYE.
e- L’association :
Les relations dans le contexte de la conception conceptuelle d'une base de
données sont des associations ou des liens entre les entités. Elles décrivent
comment les différentes entités interagissent les unes avec les autres. Les
relations sont un aspect essentiel de la modélisation des données et peuvent
varier en termes de cardinalité (le nombre d'entités associées) et de degré (le
nombre d'entités impliquées).
Par exemple, la date d’emprunt d’un livre.
Voici quelques types courants de relations que l'on peut rencontrer dans la
conception conceptuelle :
 Relation Un-à-Un (1:1) :
- Dans cette relation, une entité est associée à une et une seule autre entité, et
vice versa.
Par exemple, un "client" est associé à un "compte".
16
 Relation Un-à-Plusieurs (1:N) :
- Dans cette relation, une entité est associée à plusieurs instances d'une autre
entité, mais l'inverse n'est pas vrai. Par exemple, un "département" peut avoir
plusieurs "employés", mais un "employé" ne peut appartenir qu'à un seul
"département".
 Relation Plusieurs-à-Un (N:1) :
- C'est l'inverse de la relation 1:N. Plusieurs instances d'une entité sont
associées à une seule instance d'une autre entité Par exemple.
 Relation Plusieurs-à-Plusieurs (N:M) :
- Dans cette relation, plusieurs instances d'une entité sont associées à plusieurs
instances d'une autre entité Par exemple .
17
 Relation Réflexive :
- Une relation réflexive se produit lorsqu'une entité est associée à elle-même.
Par exemple, dans un organigramme, un "employé" peut être le "supérieur"
d'un autre "employé".
 Relation Attribute :
- Parfois, les relations peuvent être représentées sous forme d'attributs d'une
entité plutôt que comme des entités distinctes. Par exemple, une entité
"Personne" peut avoir un attribut "Conjoint" qui est lié à une autre instance de
"Personne".
Lors de la conception conceptuelle, il est important de bien définir les relations,
de spécifier leur cardinalité (1:1, 1:N, N:1, N:N) et de comprendre comment
elles affectent la structure de la base de données. Une conception conceptuelle
solide garantit que les relations sont correctement modélisées avant de passer
à la création du modèle logique et de la base de données réelle.
Diagramme Entité Association
18
Exercice : Consultation médical
On vous donne le MCD représentant des visites dans un centre médical.
1- Un patient peut-il effectuer plusieurs consultations ?
2- Un médecin peut-il recevoir plusieurs patients dans la même
consultation?
3- Peut-on prescrire plusieurs médicaments dans une même consultation?
4- Deux médecins différents peuvent-ils prescrire le même médicament ?
solution :
1- Un patient peut-il effectuer plusieurs consultations ? En effet, la cardinalité
1,n indique qu'il peut en prendre plusieurs.
2- Un médecin peut-il recevoir plusieurs patients dans la même consultation ?
Non, les cardinalités 1,1 de part et d'autre de l'entité consultation indique
qu'une consultation ne peut avoir qu'un seul et unique patient avec un seul
et unique médecin.
3- Peut-on prescrire plusieurs médicaments dans une même consultation ?
Oui, les cardinalité 0,n entre la consultation et le médicament précisent
qu'à une consultation donnée, on peut prescrire aucun, un ou plusieurs
médicaments.
19
4- Deux médecins différents peuvent-ils prescrire le même médicament ? Bien
sur, un patient peut prendre plusieurs consultations (cardinalités 0,n) avec
des médecins différents (pas de contrainte entre le patient et le médecin
qui traduirait un médecin référent !)
20
Chapitre 3 : Conception Logique
Une fois que la conception conceptuelle est achevée, la conception logique
intervient. Elle consiste à traduire le modèle conceptuel en un modèle de
données plus détaillé, en utilisant un modèle de données spécifique (comme le
modèle relationnel pour les bases de données relationnelles). À cette étape, les
tables, les attributs, les clés primaires, les clés étrangères et d'autres
contraintes de données sont définis de manière plus précise. Les décisions
prises lors de la conception logique visent à garantir l'intégrité et la
performance des données.
La conception logique d'une base de données est une étape cruciale dans le
développement de bases de données relationnelles. Elle se situe entre la
conception conceptuelle et la conception physique.
Voici les étapes clés de la conception logique d'une base de données :
I- Traduction du modèle conceptuel :
À partir du modèle conceptuel de données,qui comprend des entités, des
attributs et des relations, vous traduisez ces concepts en un modèle logique
plus détaillé. Les entités deviennent des tables, les attributs deviennent des
colonnes, et les relations se traduisent en contraintes d'intégrité référentielle.
Voici comment cela fonctionne en général :
a- Entités deviennent des tables :
Les entités du modèle conceptuel sont généralement traduites en tables dans
le modèle logique. Chaque table représente une entité et contient des
enregistrements qui correspondent à des instances de cette entité. Par
exemple, si vous avez une entité "Client" dans le modèle conceptuel, elle
deviendra une table "Clients" dans le modèle logique.
b- Attributs deviennent des colonnes :
Les attributs de chaque entité deviennent des colonnes dans la table
correspondante. Chaque colonne représente une caractéristique ou un attribut
de l'entité. Par exemple, si l'entité "Client" a des attributs tels que "Nom",
"Prénom" et "Adresse",ces attributs deviendront des colonnes dans la table
"Clients".
21
c- Relations deviennent des contraintes de clé étrangère :
Les relations entre les entités sont traduites en contraintes de clé étrangère
(foreign keys) dans le modèle logique. Une clé étrangère est une colonne qui
établit un lien entre les enregistrements de deux tables. Par exemple, si l'entité
"Commande" est liée à l'entité "Client" dans le modèle conceptuel, cette
relation sera traduite en une clé étrangère dans la table "Commandes" qui fait
référence à la table "Clients".
d- Cardinalités :
Les cardinalités (1:1, 1:N, N:M) entre les entités dans le modèle conceptuel
sont également prises en compte lors de la traduction. Elles indiquent combien
d'enregistrements d'une entité sont associés à combien d'enregistrements de
l'autre entité, et cela influence la création des contraintes de clé étrangère.
II- Normalisation de bases de données:
La normalisation est un processus essentiel dans la conception logique d'une
base de données relationnelle. Elle vise à structurer la base de données de
manière à réduire les anomalies, à améliorer l'intégrité des données et à
optimiser l'efficacité du stockage et des opérations de requête. La
normalisation consiste généralement à organiser les données en plusieurs
tables interconnectées tout en respectant certaines règles, appelées formes
normales. Les formes normales les plus couramment utilisées sont la première
forme normale (1NF), la deuxième forme normale (2NF) et la troisième forme
normale (3NF).
a- Définition des contraintes :
Vous définissez les contraintes d'intégrité qui garantissent la cohérence et la
qualité des données. Cela inclut les clés primaires, les clés étrangères, les
contraintes de vérification, les contraintes de domaine, etc.
b- Indexation :
C’est un concept clé dans la conception logique d'une base de données. Elle fait
référence à la création et à l'utilisation d'index pour améliorer la performance
des opérations de recherche, de tri et de récupération de données dans une
base de données. Les index sont des structures de données auxiliaires qui
fournissent un moyen efficace d'accéder rapidement à des informations
22
spécifiques dans une table, en évitant de parcourir l'intégralité de la table à
chaque recherche.
Voici comment fonctionne l'indexation dans une base de données :
1. Création d'index :
Lors de la conception logique, vous identifiez les colonnes qui seront
fréquemment utilisées dans des opérations de recherche, de tri ou de filtrage.
Vous créez ensuite des index sur ces colonnes.
2. Structure d'index :
Un index contient une liste ordonnée des valeurs de la colonne indexée,
associées à des pointeurs vers les lignes correspondantes dans la table. Cette
structure permet d'accélérer la recherche en réduisant le nombre de lignes à
parcourir.
3. Utilisation des index :
Lorsque vous exécutez une requête SQL qui implique une colonne indexée, le
système de gestion de base de données (SGBD) utilise l'index pour identifier
rapidement les lignes qui correspondent aux critères de recherche. Cela permet
d'accélérer considérablement les opérations de recherche.
4. Types d'index :
Il existe différents types d'index, notamment les index uniques (qui
garantissent que les valeurs de la colonne indexée sont uniques), les index non
uniques (qui permettent des doublons), les index composés (qui couvrent
plusieurs colonnes) et d'autres types d'index spécifiques à certains SGBD.
5. Maintenance des index :
Les index doivent être mis à jour à chaque insertion, mise à jour ou
suppression de données dans la table associée.
Cette maintenance peut avoir un impact sur les performances, en
particulier lorsqu'il y a un grand nombre d'index.
L'indexation est un aspect crucial de la conception logique d'une base de
données, car elle peut avoir un impact significatif sur les performances et
l'efficacité des opérations de requête dans la base de données. Elle doit être
soigneusement planifiée et ajustée en fonction des besoins spécifiques de
23
l'application.
III-
Types de données :
Vous choisissez les types de données appropriés pour chaque colonne en
fonction des besoins, en prenant en compte la taille des données et les
contraintes de précision.
Le choix des types de données dépend des besoins de l'application, de la
nature des données à stocker, de la taille de la base de données, des
performances attendues et d'autres considérations. Il est important de choisir
judicieusement les types de données pour minimiser l'utilisation de la mémoire
et garantir l'intégrité et la précision des données stockées dans la base de
données.
Schéma de données :
Le schéma de données est un élément clé de la conception logique d'une base
de données. Il représente la structure de la base de données sous forme de
diagrammes, de modèles ou de descriptions textuelles. Le schéma de données
décrit comment les tables, les colonnes, les clés primaires, les clés étrangères,
les contraintes et les index sont organisés dans la base de données. Vous
concevez le schéma de la base de données, en indiquant comment les tables
seront organisées, les relations entre les tables, les contraintes et les index.
IV-
Optimisation des requêtes :
Vous prenez en compte les types de requêtes qui seront exécutées sur la base
de données et assurez-vous que la conception logique prend en charge une
exécution rapide et efficace de ces requêtes.
Voici quelques stratégies et bonnes pratiques pour optimiser les requêtes dans
une base de données :
 Conception appropriée de la base de données
 Indexation judicieuse
 Écriture de requêtes optimisées
 Optimisation des jointures
24
 Limitation des colonnes récupérées
 Optimisation des sous-requêtes
 Surveillance des performances
 Mise en cache des résultats
 Test et ajustement
V- Normalisation de la conception :
Vous pouvez réexaminer la normalisation de la conception pour vous assurer
qu'elle est à la fois efficiente et flexible pour répondre aux besoins de
l'application.
a- Documentation :
La documentation de la conception logique est importante pour que les
développeurs, les administrateurs de bases de données et d'autres parties
prenantes comprennent comment la base de données est structurée et
comment elle fonctionne. Elle permet de capturer, de communiquer et de
gérer les informations importantes sur la structure de la base de données, les
règles de gestion, les contraintes, les procédures et d'autres éléments clés.
Voici comment la documentation est importante dans
ce contexte :
 **Compréhension et Communication** :
La documentation permet aux membres de l'équipe de développement, aux
administrateurs de bases de données, aux analystes et aux autres parties
prenantes de comprendre comment la base de données est conçue, quelles
sont les entités, les relations, les contraintes, les index, etc. Elle sert de point de
référence pour une communication claire et précise.
 **Maintenance et Évolution** :
La documentation facilite la maintenance et l'évolution de la base de données
au fil du temps. Lorsque des changements sont nécessaires, la documentation
existante aide à identifier l'impact de ces changements sur la base de données
et à planifier les modifications nécessaires.
 **Formation** :
La documentation peut servir de ressource précieuse pour la formation des
nouveaux membres de l'équipe qui travaillent sur la base de données. Elle peut
25
également aider à former les utilisateurs finaux sur la structure de la base de
données et sur la manière d'interagir avec elle.
 **Conformité et Gouvernance** :
La documentation joue un rôle important dans le respect des réglementations
et des normes de gouvernance des données. Elle permet de démontrer que la
base de données est conçue et gérée de manière conforme.
 **Gestion des Contraintes** :
La documentation capture les contraintes et les règles de gestion de la base de
données, ce qui est essentiel pour garantir l'intégrité des données et la
cohérence des opérations. Elle permet de s'assurer que les contraintes sont
correctement appliquées.
 **Références Rapides** :
Les documents de conception facilitent la recherche rapide d'informations sur
la base de données. Les descriptions textuelles, les diagrammes de modèles de
données, les diagrammes entité-association et d'autres formes de
documentation sont des aides visuelles et textuelles pour comprendre la
structure et le fonctionnement de la base de données.
 **Planification de la Maintenance** :
La documentation aide à planifier la maintenance préventive de la base de
données, à suivre les tâches de sauvegarde, de récupération, de gestion de la
capacité, etc.
La forme de la documentation peut varier en fonction des besoins et des
préférences de l'organisation. Elle peut inclure des documents texte, des
diagrammes, des schémas, des descriptions de colonnes, des descriptions de
contraintes, des manuels d'utilisation, etc. Il est important de tenir la
documentation à jour au fur et à mesure que la base de données évolue et que
de nouvelles informations deviennent disponibles. Une documentation précise
et complète est un atout précieux pour la gestion efficace de la base de
données.
Une fois la conception logique achevée, elle sert de base pour la conception
physique de la base de données, où vous définirez les détails techniques de
mise en œuvre, tels que le choix du SGBD (Système de Gestion de Base de
Données), la configuration matérielle, et le stockage physique des données.
26
Chapitre 4 : Le Modèle Relationnel
I- Introduction :
Le modèle relationnel a été défini par E.F Codd dans les années 70. Ainsi, de
nombreux chercheurs ont contribué à son développement. Dans ce modèle, les
données sont stockées dans des tables, sans préjuger de la façon dont les
informations sont stockées dans la machine. Un ensemble de données sera
donc modélisé par un ensemble de tables. Le succès du modèle relationnel
auprès des chercheurs, concepteurs et utilisateurs est dû à la puissance et à la
simplicité de ses concepts. En outre, contrairement à certains autres modèles,
il repose sur des bases théoriques solides, notamment la théorie des
ensembles et la logique mathématique (théorie des prédicats d’ordre 1). Le
modèle relationnel présente également de nombreux avantages dus au fait
qu’il soit basé sur la théorie des ensembles : Langage de manipulation des
27
données ensemblistes grâce à l’algèbre relationnelle et grâce à des langages
assertionnels qui permettent de spécifier ce que l’on souhaite obtenir sans dire
comment l’obtenir. Le SGBD est responsable de la politique d’exécution des
requêtes.
II- Concepts de base :
a- Le Domaine :
Ensemble de valeurs atomiques d'un certain type sémantique 
Ex. : NOM_VILLE = { Constantine, Annaba, Alger } 
Des domaines sont les ensembles de valeurs possibles dans lesquels sont
puisées les données 
Deux ensembles peuvent avoir les mêmes valeurs bien que sémantiquement
distincts
Ex. :
NUM_ELV = { 1, 2, … , 2000 }
NUM_ANNEE = { 1, 2, … , 2000 }
b- Relation :
Sous ensemble du produit cartésien de plusieurs domaines 
𝑅 ⊂ 𝐷1 × 𝐷2 × … × 𝐷𝑛 
𝐷1,𝐷2 , … ,𝐷𝑛 sont les domaines de 𝑅 
n est le degré de 𝑅
Exemples:
-Les domaines :
NOM_ELV = {Anas, Ali}
PREN_ELV = {Mohamed, Aziz }
DATE_NAISS = {Date entre 1/1/1990 et 31/12/2020}
NOM_SPORT = {judo, tennis, foot }
- La relation ELEVE
28
ELEVE ⊂ NOM_ELV ×PREN_ELV ×DATE_NAISS NOM_ELV ×PREN_ELV
×DATE_NAISS = { (Anas, Mohamed, 1/1/1990), (Anas, Mohamed, 2/1/1999),…}
Exemples2:
- La relation ELEVE
ELEVE ⊂ NOM_ELV ×PREN_ELV ×DATE_NAISS
ELEVE = {(Anas, Salim, 1/1/1992), (Jamal, Imane, 2/2/1994) }
-La relation INSCRIPT
INSCRIPT ⊂ NOM_ELV ×NOM_SPORT
INSCRIPT = { (Anas, judo), (Anas, foot), (Ali, judo) }
c- LES N-UPLETS :
un élément d'une relation est un n-uplet de valeurs (tuple en anglais) • Un nuplet représente un fait Exemple: « Jamal est un élève né le 1 janvier 1992 » «
Jamal est inscrit au judo » DEFINITION PRÉDICATIVE D’UNE RELATION
d- Attribut :
Chaque composante d'une relation est un attribut
• Le nom donné à un attribut est porteur de sens
• Il est en général différent du nom de domaine
• Plusieurs attributs peuvent avoir le même domaine
Exemple :
La relation TRAJET :
TRAJET ⊂ NOM_VILLE × NOM_VILLE
Dans laquelle la première composante représente la ville de départ VD, la
deuxième composante la ville d’arrivée VA d’un trajet.
e- LE SCHÉMA D’UNE RELATION :
Le schéma d'une relation est défini par :
- le nom de la relation
- la liste de ses attributs
on note : R (A1:D1, A2:D2, ... , An:Dn)
29
Exemple:
ELEVE (NOM, PRENOM, NAISS)
INSCRIPT (NOM_ELV, SPORT)
TRAJET (VD, VA)
f- LE SCHÉMA D’UNE BDR :
Le schéma d'une base de données est défini par :
- l'ensemble des schémas des relations qui la composent
Notez la différence entre :
• le schéma de la BDR qui dit comment les données sont organisées dans la
base
• l'ensemble des n-uplets de chaque relation, qui représentent les données
stockées dans la base
• Conception de Schéma Relationnel
- Problème :
Comment choisir un schéma approprié ?
 LA REPRÉSENTATION
1 RELATION = 1 TABLE
1 ÉLÉMENT ou n-uplet = 1LIGNE
30
31
III-
LES DÉPENDANCES FONCTIONNELLES :
a- Dépendance fonctionnelle :
 Soit R(A1, A2, ...., An) un schéma de relation Soit X et Y des sous
ensembles de {A1,A2,...An}
 On dit que Y dépend fonctionnellement de X (XY) si à chaque valeur de
X correspond une valeur unique de Y
on écrit : X → Y et on dit que : X détermine Y 
Ex.:
PRODUIT (no_prod, nom, prixUHT)
no_prod → (nom, prixUHT)
NOTE (no_contrôle, no_élève, note)
(no_contrôle, no_élève) → note
une dépendance fonctionnelle est une propriété sémantique, elle
correspond à une contrainte supposée toujours vrai du monde réel.
• D.F. élémentaire
D.F. X  A mais A est un attribut unique non inclus dans X et il n’existe
pas de X’ inclus dans X tel que X’  A
32
b- La clé d’une relation :
attribut (ou groupe minimum d'attributs) qui détermine tous les autres
Ex.:
PRODUIT (no_prod, nom, prixUHT)
no_prod → (nom, prixUHT)
no_prod est une clé
• Une clé détermine un n-uplet de façon unique
• Pour trouver la clé d'une relation, il faut examiner attentivement les
hypothèses sur le monde réel
• Une relation peut posséder plusieurs clés, on les appelle clés candidates
Ex.:
dans la relation PRODUIT, nom est une clé candidate (à condition qu'il n'y ait
jamais 2 produits de même nom)
c- Clé primaire :
choix d'une clé parmi les clés candidates . Clé étrangère ou clé secondaire
attribut (ou groupe d'attributs) qui fait référence à la clé primaire d'une autre
relation
Ex.:
CATEG (no_cat, design, tva)
PRODUIT(no_prod, nom, marque, #no_cat, prixUHT)
no_cat dans PRODUIT est une clé étrangère
CLÉ ÉTRANGÈRE = CLÉ PRIMAIRE dans une autre relation
IV-
Les règles d'intégrité :
Les règles d'intégrité sont les assertions qui doivent être vérifiées par les
données contenues dans une base Le modèle relationnel impose les
contraintes structurelles suivantes :
-INTÉGRITÉ DE DOMAINE
33
-INTÉGRITÉ DE CLÉ
-INTÉGRITÉ RÉFÉRENCIELLE
La gestion automatique des contraintes d’intégrité est l’un des outils les plus
importants d’une base de données.  Elle justifie à elle seule l’usage d’un SGBD.
a- INTÉGRITÉ DE DOMAINE :
Les valeurs d'une colonne de relation doivent appartenir au domaine
correspondant
• contrôle des valeurs des attributs
• contrôle entre valeurs des attributs
b- INTÉGRITÉ DE CLÉ :
Les valeurs de clés primaires doivent être :
- uniques
- non NULL
• Unicité de clé
• Unicité des n-uplets
• Valeur NULL
valeur conventionnelle pour représenter une information inconnue
• dans toute extension possible d'une relation, il ne peut exister 2 n-uplets
ayant même valeur pour les attributs clés sinon 2 clés identiques
détermineraient 2 lignes identiques (d'après la définition d’une clé), ce qui est
absurde.
c- INTÉGRITÉ RÉFÉRENTIELLE :
Les valeurs de clés étrangères sont 'NULL' ou sont des valeurs de la clé primaire
auxquelles elles font référence
• Relations dépendantes
• LES DÉPENDANCES :
34
Liaisons de un à plusieurs exprimées par des attributs particuliers:
clés étrangères ou clés secondaires.
I- Les Formes Normales :
a- La théorie de la normalisation :
• elle met en évidence les relations «indésirables »
• elle définit les critères des relations "désirables" appelées formes normales
• Propriétés indésirables des relations :
- Redondances
- Valeurs NULL
• elle définit le processus de normalisation permettant de décomposer une
relation non normalisée en un ensemble équivalent de relations normalisées .
b- La décomposition :
Objectif:
- décomposer les relations du schéma relationnel sans perte d’informations
- obtenir des relations canoniques ou de base du monde réel
- aboutir au schéma relationnel normalisé
• Le schéma de départ est le schéma universel de la base
• Par raffinement successifs ont obtient des sous relations sans perte
d’informations et qui ne seront pas affectées lors des mises à jour (non
redondance)
c- Les formes normales :
3 FN, les critères sont de plus en plus restrictifs
FNj ⇒ FNi ( j > i )
• Notion intuitive de FN
une « bonne relation » peut être considérée comme une fonction de la clé
primaire vers les attributs restants
35
1ère Forme Normale 1FN
Une relation est en 1FN si tout attribut est atomique (non décomposable)
Contre-exemple
ELEVE (no_elv, nom, prenom, liste_notes)
Un attribut ne peut pas être un ensemble de valeurs
Décomposition
ELEVE (no_elv, nom, prenom)
NOTE (no_elv, no_matiere, note)
2ème Forme Normale 2FN
Une relation est en 2FN si
- elle est en 1FN
- si tout attribut n’appartenant pas à la clé ne dépend pas d’une partie de la clé
• C’est la phase d’identification des clés
• Cette étape évite certaines redondances
• Tout attribut doit dépendre fonctionnellement de la totalité de la clé
Contre-exemple
une relation en 1FN qui n'est pas en 2FN
COMMANDE (date, no_cli, no_pro, qte, prixUHT)
elle n'est pas en 2FN car la clé = (date, no_cli, no_pro) et le prixUHT ne dépend
que de no_pro
Décomposition
COMMANDE (date, no_cli, no_pro, qte) PRODUIT (no_pro, prixUHT)
3ème Forme Normale 3FN
Une relation est en 3FN si
36
- elle est en 2FN
- si tout attribut n’appartenant pas à la clé ne dépend pas d’un attribut non clé
Ceci correspond à la non transitivité des D.F. ce qui évite les redondances.
En 3FN une relation préserve les D.F. et est sans perte.
Contre-exemple
une relation en 2FN qui n'est pas en 3FN
VOITURE (matricule, marque, modèle, puissance)
- on vérifie qu'elle est en 2FN ;
- elle n'est pas en 3FN car la clé = matricule, et la puissance dépend de
(marque, modèle)
Décomposition
VOITURE (matricule, marque, modèle)
MODELE (marque, modèle, puissance)
37
Download