1-Intro To DB
1-Intro To DB
2
http://www.objectifrente.com/actions/10-secteurs-activites-pour-diversifier-portefeuille-actions
Introduction aux bases de données
• La croissance du World Wide Web a accru le développement du volume d’information, en
fournissant l’accès à des bases de données très diverses avec une interface commune.
3
www.freehali.com/service/je-vais-realiser-un-site-web-dynamique-base-de-donnee-bien-concue-qui-repond-exactement-aux-besoins-du-site
Introduction aux bases de données
4
Introduction aux bases de données
5
https://www.aivancity.ai/actualites/les-metiers-de-lintelligence-artificielle-et-de-la-data
Introduction aux bases de données
• Les bases de données reposent sur des théories solides et sont à l’origine d’une des plus
importantes disciplines de l’informatique : l’ingénierie des systèmes d’information.
• Les concepts théoriques liés à la gestion des bases de données incluent notamment :
• Les fondements des langages de requêtes
• La complexité, la puissance d'expression des requêtes
• Le contrôle de dépendance
• Les principes de contrôle de concurrence
• Les mécanismes de sauvegarde et restauration
• Les bases de données spécialisée: temporelles, déductives, spatiales, probabilistes, …
• Etc.
• Apprendre à utiliser SQL pour interroger et manipuler des données dans une
base de données relationnelle.
7
Plan du cours
• Introduction aux bases de données
• Approche relationnelle
• Modèle relationnel
• Algèbre relationnelle
• Langage SQL
8
Introduction aux bases de données
• Qu’est ce qu’une base de données?
• Modèles de données
• Système de gestion de bases de données
• Etapes de la conception des bases de données
9
Introduction aux bases de données
• Qu’est ce qu’une base de données?
• Modèles de données
• Système de gestion de bases de données
• Etapes de la conception des bases de données
10
Introduction aux bases de données
• Les bases de données sont au cœur de la gestion de
l’information dans tous les domaines.
11
https://web.maths.unsw.edu.au/~lafaye/CCM/bdd/bddintro.htm
Notion de bases de données
• On définit une base de données comme l’ensemble des
données stockées.
• Pour les manipuler, on utilise généralement un
logiciel spécialisé appelé SGBD (Système de Gestion
de Bases de Données).
• Il y a parfois confusion, par abus de langage, entre
base de données et SGBD.
12
Utilisation d’une BD
• Une BD a un but précis: Elle doit permettre de retrouver de l’information par
son contenu en se basant sur des critères de recherche.
• Elle est conçue pour faciliter l’accès, la manipulation et la mise à jour des informations, tout en
garantissant leur cohérence, intégrité et sécurité.
13
Utilisation d’une BD
• Une BD a un but précis: Elle doit permettre de retrouver de l’information par
son contenu en se basant sur des critères de recherche.
• Par exemple:
• Retrouver les étudiants ayant validés tous les semestres.
• Retrouver tous les employés qui ont eu une augmentation l’année dernière.
14
BD vs File
system
15
Introduction aux bases de données
• Qu’est ce qu’une base de données?
• Modèles de données
• Système de gestion de bases de données
• Etapes de la conception des bases de données
16
Modèles de données
• Un modèle de données est une représentation abstraite de la structure des
données dans une base de données.
17
Modèles de données
• Objectifs des Modèles de Données:
• Assurer la cohérence et l'intégrité : Éviter les incohérences et assurer la validité des données.
• Indépendance des données : Séparer la structure des données des traitements effectués
dessus.
18
Evolution des Modèles de données
Années 1960- Modèles hiérarchique et réseau
1970
19
Modèles
• Il existe de nombreux types de modèles de bases de données. Parmi les plus classiques :
20
Modèle hiérarchique
• Origine:
• Le traitement de l’information était encore très lié à l’organisation des fichiers sur une
machine.
• Les modèles conceptuels de données étaient aussi très proches du système de fichiers
puisque l’on manipule des arbres.
• Les nœuds de ces structures constituent les informations et les arêtes représentent les liens
entre ces données.
21
Modèle hiérarchique
• Aperçu:
• Le modèle hiérarchique organise les données dans une structure arborescente.
• Chaque enregistrement dispose d'un seul parent (racine).
• Les enregistrements frères et sœurs sont triés dans un ordre particulier.
• Cet ordre est suivi pour le stockage physique de la base de données.
Exemple : Bibliothèque
Une bibliothèque contient plusieurs sections │── Section (Ex: Informatique)
→ Chaque section contient plusieurs livres │ │── Livre (Ex: "SQL pour les nuls")
→ Chaque livre est écrit par un auteur. │ │ │── Auteur (Ex: John Doe)
│ │── Livre (Ex: "Big Data")
│ │── Auteur (Ex: Alice Smith)
Limitation : Un auteur ayant écrit plusieurs │── Section (Ex: Littérature)
livres est difficile à représenter. │── Livre (Ex: "Le Petit Prince")
│── Auteur (Ex: Antoine de Saint-Exupéry)
22
Modèle hiérarchique (Résumé)
23
Modèle Réseau
• Une extension du modèle hiérarchique:
• Le modèle reseau autorise des relations plusieurs-à-plusieurs entre des enregistrements liés,
ce qui implique plusieurs enregistrements parents.
• Basé sur la théorie mathématique des ensembles, ce modèle s'articule autour d'ensembles
d'enregistrements connexes.
24
Modèle Réseau
• Dans les deux modèles, les enregistrements sont
reliés par des pointeurs.
• On stocke l’adresse de l’enregistrement auquel il
est lié.
25
https://www.geeksforgeeks.org/network-model-in-dbms/
Modèle Réseau (Résumé)
26
Modèle Relationnel
• Proposé en 1970, par E. F. Codd dans l’article :
« A Relational Model of Data for Large Shared Data Banks »,
CACM 13, no 6, June1970.
• La mise en oeuvre des idées de Codd s’est fait chez IBM dans le
cadre du projet de recherche System-R.
• La normalisation du langage SQL dès 1986 par l’ANSI, puis par l’ISO,
30
Modèle Relationnel
• Aperçu:
• Le modèle relationnel et le modèle le plus courant.
• Les données sont tries dans des tables, que l'on
appelle aussi des relations, dont chacune se
compose de colonnes et de lignes.
• Chaque colonne contient un attribut de l'entité en
question, comme le prix, le code postal ou la date
de naissance.
• L'ensemble des attributs d'une relation est appelé
domaine.
• Chaque ligne, également appelée tuple, comprend
des données sur une instance spécifique de l'entité
en question, comme un employé en particulier.
• Le modèle tient également compte des types de
relations entre ces tables. e.g. un-à-un, un-à-
plusieurs,…
31
https://fr.wikipedia.org/wiki/Mod%C3%A8le_relationnel
Modèle Relationnel (Résumé)
32
Modèle Objet
Encapsulation
• Dans le sillage du développement des langages
orientés objet (C++, Java…) dans les années 1980, le
concept objet a été adapté aux bases de données.
• De plus, le concept objet est mieux adapté pour modéliser des volumes de texte importants ou
d’autres types de données multimédias (sons, images, vidéos…).
• Il est beaucoup plus commode de manipuler directement des objets lorsque l’on développe avec
un langage à objet (comme C++ ou Java).
• Les bases de données « orientées objet » apportent ainsi aux applications développées en
langage objet la persistance des objets manipulés :
• Ces derniers peuvent ainsi directement être réutilisés par l’application d’origine ou par d’autres sans
redéfinition.
34
Modèle Objet
• Aperçu:
• Ce modèle définit une base de données comme une
collection d'objets, ou d'éléments logiciels réutilisables,
associés à des caractéristiques et des méthodes.
35
Modèle Objet
• Les produits commerciaux adaptés à ces concepts n’ont pas connu une diffusion suffisamment
importante.
• Les données modélisées sous forme d’objets sont aussi plus complexes à représenter du
point de vue du SGBD et l’on rencontre encore très souvent des problèmes de performance.
36
Modèle Objet (Résumé)
37
Autres modèles de bases de données
• D'autres modèles (NoSQL) sont venus s'opposer au modèle relationnel :
38
Modèle Clé-Valeur “Key-Value Store”
39
Modèle Clé-Valeur “Key-Value Store”
40
https://www.michalbialecki.com/wp-content/uploads/2018/03/cosmos-db-key-value-schema.png
Modèle Document
41
Modèle
Document
https://stph.scenari-community.org/bdd/0/co/nos03.html 42
Modèle Graphe
43
Modèle Graphe
44
https://stph.scenari-community.org/bdd/0/co/nos03.html
Modèle Colonne-famille
45
Modèle Colonne-famille
46
https://stph.scenari-community.org/bdd/0/co/nos03.html
Différents
Modèles
47
Choix du modèle
• Un modèle de données est essentiel pour structurer l’information et garantir l’efficacité des bases de
données.
• Modèles spécialisés (graphes, colonnes, objets) pour des cas d’usage spécifiques.
48
Introduction aux bases de données
• Qu’est ce qu’une base de données?
• Modèles de données
• Système de gestion de bases de données
• Etapes de la conception des bases de données
49
Niveaux d’abstraction
51
Niveaux d’abstraction
• Niveau conceptuel: (Schéma logique global)
• Il décrit les entités, leurs relations et les contraintes sous une forme standardisée
(ex. modèle relationnel avec des tables et des clés étrangères).
52
Niveaux d’abstraction
• Niveau interne: (Schéma physique)
• Il concerne les fichiers, les index, les blocs de stockage, les accès disque, la
compression, etc.
Ce modèle garantit l’indépendance entre les données et leur stockage, ce qui facilite
l’évolution des bases de données sans impacter les utilisateurs ni les applications.
54
Niveaux d’abstraction et SGBD
• Un SGBD idéal doit posséder les principales caractéristiques qui découlent de ce modèle en
couches.
• Intégrité des données. Faire en sorte que l’information résultant des liens entre les données
soit cohérente.
55
SGBD
• Un Système de Gestion de Bases de Données (SGBD) est un logiciel qui permet de créer,
gérer, manipuler et sécuriser des bases de données.
• Il agit comme un intermédiaire entre les utilisateurs et les données en offrant un cadre
structuré pour le stockage et la récupération efficace des informations.
• Exemples de SGBD :
• SGBD relationnels (SQL) : MySQL, PostgreSQL, Oracle, SQL Server
• SGBD NoSQL : MongoDB, Cassandra, Redis
• SGBD orientés objet : Db4o, ObjectDB
56
Pourquoi utiliser un SGBD ?
• Les SGBD offrent plusieurs avantages par rapport au stockage manuel des données (ex.
fichiers texte, feuilles Excel) :
57
Architecture d’un SGBD
• Un SGBD repose sur plusieurs composants clés :
• Gestion des utilisateurs → Contrôle l’accès aux données via des permissions et rôles.
• Interfaces d’accès → Langages et API (SQL, REST, JDBC) pour interagir avec les données.
58
SGBD : Propriété ACID
• Gestion des transactions:
• En ce qui concerne les opérations de modification effectuées sur la base de données,
que l’on appelle des transactions, les propriétés suivantes doivent être assurées:
• Atomicité.
• La transaction est exécutée entièrement ou abandonnée.
• Cohérence.
• La transaction doit se faire d’un état cohérent de la base vers un autre état
cohérent.
• Isolation.
• Des transactions simultanées ne doivent pas interférer entre elles.
• Durabilité.
• La transaction a des effets permanents même en cas de panne.
59
SGBD : Propriété ACID
• Atomicité
• Une transaction se fait au complet ou pas du tout
• Si une partie d'une transaction ne peut être faite, il faut effacer toute trace de la
transaction et remettre les données dans l'état où elles étaient avant la transaction.
• L'atomicité doit être respectée dans toutes situations, comme une panne
d'électricité, une défaillance de l'ordinateur, ou une panne d'un disque magnétique.
Exemple:
- Un transfert de fonds d'un compte de banque à un autre, même s'il implique plusieurs
actions comme le débit d'un compte et le crédit d'un autre, est une seule transaction.
60
SGBD : Propriété ACID
• Cohérence
• Chaque transaction amènera le système d'un état valide à un autre état valide
• Tout changement à la base de données doit être valide selon toutes les règles
définies, incluant mais non limitées aux contraintes d'intégrité, aux rollbacks en
cascade, aux déclencheurs de base de données, et à toutes combinaisons
d'événements.
61
SGBD : Propriété ACID
• Cohérence
Exemple:
- Considérons la table suivante: CREATE TABLE acidtest (A INTEGER, B INTEGER, CHECK (A + B = 100));
62
SGBD : Propriété ACID
• Isolation
• Toute transaction doit s'exécuter comme si elle était la seule sur le système.
63
SGBD : Propriété ACID
• Isolation
Exemple:
- Considérons la table suivante: CREATE TABLE acidtest (A INTEGER, B INTEGER, CHECK (A + B = 100));
- Considérez deux transactions : T1 transfère 10 de A à B. T2 transfère 20 de B à A.
- Ensemble, il y a quatre actions :
- T1 soustrait 10 à A.
- T1 ajoute 10 à B.
- T2 soustrait 20 à B.
- T2 ajoute 20 à A.
- Si ces opérations sont effectuées dans l'ordre, l'isolation est maintenu, même si T2 doit
attendre
- Considérez ce qui se passe si T1 échoue à mi-chemin. La base de données élimine les effets
de T1 et T2 ne voit que les données valides. 64
SGBD : Propriété ACID
• Isolation
Exemple:
- Considérez deux transactions : T1 transfère 10 de A à B. T2 transfère 20 de B à A.
- Ensemble, il y a quatre actions :
- T1 soustrait 10 à A.
- T2 soustrait 20 à B.
- T2 ajoute 20 à A.
- T1 ajoute 10 à B.
- Si T1 échoue lors de la modification de B à l'étape 4.
- Au moment où T1 échoue, T2 a déjà modifié A ; On ne peut pas restauré à la valeur qu'il avait
avant T1 sans laisser une base de données invalide.
65
SGBD : Propriété ACID
• Durabilité
• assure que lorsqu'une transaction a été confirmée, elle demeure enregistrée même à
la suite d'une panne d'électricité, d'une panne de l'ordinateur ou d'un autre
problème.
• Exemple:
- Considérez une transaction qui transfère 10 de A à B.
- Tout d'abord, elle supprime 10 de A, puis elle ajoute 10 à B.
- À ce stade, l'utilisateur est informé que la transaction a réussi.
- Cependant, les modifications sont toujours mises en file d'attente dans la mémoire
tampon du disque en attendant d'être validées sur le disque.
- L'alimentation tombe en panne et les modifications sont perdues, mais l'utilisateur
pense que les modifications persistent. => Echec de la Durabilité 66
DB-Engines Ranking
https://db-engines.com/en/ranking
67
Notion : Metadonnée
• En utilisant une base de données, on assure une indépendance entre le traitement
et les données:
• Les données peuvent évoluer sans impacter directement les programmes qui
les utilisent.
• C’est pourquoi, il est nécessaire que l’application obtienne des informations sur la
structure des données (nom, type, taille, etc.).
68
Notion : Metadonnée
• => On associe à la base de données une description que l’on appelle :
69
Notion : Metadonnée Chaîne de
caractères de
Nombre entier
< à l’année en
Chaîne de
caractères de
taille 50 cours taille 50
Idée Générale:
Titre Auteur Anne_Publication Genre ISBN
- Independence de l’application par
Introduction to the
rapport à la représentation interne Michael Sipser 1997
Informatique
978-1-133-18779-0
Theory of
des données. théorique
Computation
=> une abstraction des données Artificial
Stuart Russell, Intelligence
Intelligence: A 1995 978-0-13-461099-3
Peter Norvig artificielle
- C’est la raison pour laquelle on utilise Modern Approach
une description des données sous la Abraham
forme d’un modèle pour permettre la Database System Silberschatz, Bases de
1986 978-0-07-802215-9
Concepts Henry F. Korth, données
restitution la plus efficace possible de S. Sudarshan
l’information.
Table : Livres (Base de données d'une bibliothèque)
70
Notion : Catalogue
• Le catalogue d’une base de données contient des informations sur :
71
Introduction aux bases de données
• Qu’est ce qu’une base de données?
• Modèles de données
• Système de gestion de bases de données
• Etapes de la conception des bases de données
72
Étapes de la conception des bases de
données
• On peut décomposer le processus de conception
d’une base de données en plusieurs étapes :
L’analyse du système du monde
réel à modéliser
74
Étapes de la conception des bases de
données
• 1- Analyse du monde réel:
• Cette modélisation du monde réel permet de proposer un schéma conceptuel qui servira à la
description générale du système d’information.
• La notion de sens des données et surtout des liens entre les entités ne sera réellement
exprimée que dans ce schéma qui est plus proche du monde réel.
75
Étapes de la conception des bases de
données
• 2- Passage au SGBD:
• La représentation précédente doit être transformée pour la rendre acceptable par le SGBD,
qu’il soit relationnel, objet ou relationnel-objet.
• Souvent, cette étape modifie considérablement les objets du monde réel ainsi que les liens
définis dans le schéma précédent.
• On obtient un schéma des données qui fournira aux utilisateurs les informations nécessaires
pour effectuer leurs requêtes, par exemple la description des noms de tables, de champs et
leurs types.
• Par contre, on perd à ce niveau l’information du « sens » des données et du lien entre elles.
77
Étapes de la conception des bases de
données
• 3- Création et utilisation de la BD
• Une fois le schéma précédent défini, on utilise le SGBD pour passer à la création des tables
qui constituent la base de données.
• Le cas échéant, on crée les vues définies à l’étape précédente et les utilisateurs concernés.
• Le système est alors opérationnel. Cette étape se fait forcément en utilisant le SGBD.
78
Qualité d’une BD
• L’un des objectifs de la création d’une base de données est de pouvoir retrouver les données par
leur contenu.
• Dans cette optique, il faut s’assurer que les données contenues dans la base sont de « bonne
qualité ».
• L’absence de redondance
79
Qualité d’une BD
• La cohérence des données:
• Elle est fondamentale
• Elle nécessite une réflexion préalable sur la normalisation du contenu des champs
• Problèmes à résoudre: Silence et Bruit
• Exemple (Silence):
• On suppose qu’un champ contient la qualité d’une personne (par exemple, Monsieur,
Madame, Mademoiselle).
• Si l’on trouve dans ce champ ‘Mr’ à la place de ‘Monsieur’, il est clair que les recherches
sur ce champ par le contenu ‘Monsieur’ risquent d’être erronées.
• => Silence: Certains résultats pertinents seront ignorés lors d’une interrogation
80
Qualité d’une BD
• La cohérence des données:
• Elle est fondamentale
• Elle nécessite une réflexion préalable sur la normalisation du contenu des champs
• Problèmes à résoudre: Silence et Bruit
• Exemple (Bruit):
• On suppose qu’un champ contient la qualité d’une personne (par exemple, Monsieur,
Madame, Mademoiselle).
• Si l’on saisit ‘Mme’ pour ‘Madame’ et ‘Melle’ pour ‘Mademoiselle’, et qu’il y ait eu par
erreur plusieurs saisies de ‘Mme’ alors qu’il s’agissait d’une demoiselle, la recherche par
le contenu ‘Mme’ donne cette fois plus de résultats qu’il n’y a réellement de dames
• => Bruit: Certains résultats non pertinents seront retrouvés lors d’une interrogation
81
Qualité d’une BD
• La redondance:
• Elle est parfois plus déliquate á identifier
82