Bases de données
Yann Loyer yann.loyer@uvsq.fr
Bases de données - Yann Loyer 2
Plan du cours
1. Introduction 2. Modèle relationnel
3. Langage de manipulation de données 4. Langage de définition de données 5. Bases de la conception de schémas 6. Développement d’interfaces 7. Problèmes
Bases de données - Yann Loyer 3
Introduction
Plan :
I.1) Bases de données
I.2) Systèmes de gestion de bases de données I.3) Niveaux d’abstractions
Bases de données - Yann Loyer 4
Bases de données
Une base de données est ensemble de données : – représentant une partie du monde réel
– stockées en mémoire secondaire – pouvant être interrogées et mises à jour
– servant de support à une ou plusieurs applications
Mais cela ne suffit pas à caractériser une base de données
Exemple
• Un ensemble de fichiers textes suffit
Comptes.txt
142; 3; compte chèque; 482 157; 56; compte chèque; 1580 345; 3; livret A; 800
Chaque ligne représente un compte bancaire
Exemple
• Un ensemble de fichiers textes suffit
Comptes.txt
142; 3; compte chèque; 482 157; 56; compte chèque; 1580 345; 3; livret A; 800
Les données représentent une partie du monde réel
Exemple
• Un ensemble de fichiers textes suffit
Comptes.txt142; 3; compte chèque; 482 157; 56; compte chèque; 1580 345; 3; livret A; 800
Les données sont stockées en mémoire secondaire
Exemple
• Un ensemble de fichiers textes suffit
Comptes.txt142; 3; compte chèque; 482 157; 56; compte chèque; 1580 345; 3; livret A; 800
Les données peuvent être interrogées et mises à jour
Exemple
• Un ensemble de fichiers textes suffit
Comptes.txt142; 3; compte chèque; 482 157; 56; compte chèque; 1580 345; 3; livret A; 800
Les données peuvent servir dans plusieurs applications
Bases de données - Yann Loyer 10
Bases de données
Une collection de données est appelée base de données si:
–format connu(défini au niveau du système et non uniquement au niveau des programmes utilisant les données) et défini par des méta-données(données décrivant des données)
Exemple
• Les données sont décrites par des données
NumCompte NumClient TypeCompte Solde
142 3 Compte chèque 482
157 56 Compte chèque 1580
345 3 Livret A 800
Par exemple, la méta-donnée « NumCompte » décrit
Bases de données
Une collection de données est appelée base de données si:
–format connu(défini au niveau du système et non uniquement au niveau des programmes utilisant les données) et défini par des méta-données(données décrivant des données) – Données stockées, recherchées, modifiées uniquement par un
type spécial de programmes appelé système de gestion de bases de données
Exemples
• Oracle
• SQL Server
• Mysql
• PostgreSQL
• MongoDB
• etc.
Bases de données - Yann Loyer 14
Bases de données
Une collection de données est appelée base de données si:
–format connu(défini au niveau du système et non uniquement au niveau des programmes utilisant les données) et défini par des méta-données(données décrivant des données) – Données stockées, recherchées, modifiées uniquement par un
type spécial de programmes appelé système de gestion de bases de données
– Données manipulées sous le contrôle de transactions (ensemble de règles formelles assurant l’intégrité des données)
Exemple
• Imaginons un programme de transfert bancaire
\* entrées/sorties *\
afficher(« quel compte souhaitez-vous débiter? »);
affecter la valeur dans la variable c1;
afficher(« quel compte souhaitez-vous créditer? »);
affecter la valeur dans la variable c2;
afficher(« quel montant souhaitez-vous transférer? »);
affecter la valeur dans la variable m;
\* écritures dans la base de données*\
solde(c1)=solde(c1)-m;
solde(c2)=solde(c2)+m;
Exemple
Imaginons que durant l’exécution se produit un incident
\* entrées/sorties *\
afficher(« quel compte souhaitez-vous débiter? »);
affecter la valeur dans la variable c1;
afficher(« quel compte souhaitez-vous créditer? »);
affecter la valeur dans la variable c2;
afficher(« quel montant souhaitez-vous transférer? »);
affecter la valeur dans la variable m;
\* écritures dans la base de données*\
solde(c1)=solde(c1)-m;
solde(c2)=solde(c2)+m;
panne, erreur, etc.
La somme d’argent m a disparue !
Bases de données - Yann Loyer 17
Système de gestion de bases de données (SGBD)
Un SGBD est un ensemble de logiciels-système permettant aux utilisateurs de:
– mettre en forme – sauvegarder,
– mettre à jour (modifier, insérer, supprimer) – rechercher
efficacement des données spécifique dans une très grande masse d’informations partagées entre plusieurs utilisateurs
Bases de données - Yann Loyer 18
Utilisation d’un SGBD
• Définition du schéma de la base (modèle Entité/Association, normalisation)
Client Numéro-client Nom Prénom Date de naissance
Compte Numéro-compte type solde
possède
Bases de données - Yann Loyer 19
Utilisation d’un SGBD
• Définition du schéma de la base (modèle Entité/Association, normalisation)
• schéma conceptuel (format des données et associations entre données)
Numéro-client Nom Prénom Date de naissance
Numéro-compte Type Solde Numéro-client
CLIENT
COMPTE
Bases de données - Yann Loyer 20
Utilisation d’un SGBD
• Définition du schéma de la base (modèle Entité/Association, normalisation)
• schéma conceptuel (format des données et associations entre données)
• schéma interne (correspondance entre les notions conceptuelles et celles liées à l’organisation physique des données – fichiers, index)
Numér o Nom Préno
m DN
1 n1 …
2 n2
3 …
4 5 6 7
4 6 2
1 3 5 7
Bases de données - Yann Loyer 21
Utilisation d’un SGBD
• Définition du schéma de la base (modèle Entité/Association, normalisation)
• schéma conceptuel (format des données et associations entre données)
• schéma interne (correspondance entre les notions conceptuelles et celles liées à l’organisation physique des données – fichiers, index)
• schémas externes (définition d’une vue pour chaque groupe d’utilisateur afin de d’administrer les droits d’accès)
Bases de données - Yann Loyer 22
Utilisation d’un SGBD
• Définition du schéma de la base (modèle Entité/Association, normalisation)
• schéma conceptuel (format des données et associations entre données)
• schéma interne (correspondance entre les notions conceptuelles et celles liées à l’organisation physique des données – fichiers, index)
• schémas externes (définition d’une vue pour chaque groupe d’utilisateur afin de d’administrer les droits d’accès)
• programmes d’application (code est constitué de commandes propres au SGBD intégrées dans un langage de
programmation s’exécutent en référençant les schémas externes
Fonctionnalités d’un SGBD (1)
• Gestion de données persistantes
• Gestion de grandes quantités de données
• Fiabilité des données
– Cohérence et contraintes d’intégrité – Sûreté du fonctionnement
• Notion de transaction atomique
• Techniques de sauvegarde et/ou de journalisation
• Procédures de reprise sur panne
Fonctionnalités d’un SGBD (2)
• Sécurité d’accès
– commandes d’autorisation
• Partage et accès concurrents – techniques de verrouillage
• Interrogation : langages de requêtes – déclaratifs et incomplets
⇒intégration du langage de requête et d’un langage de programmation
⇒dysfonctionnements (typage et traitement ensembliste)
Bases de données - Yann Loyer 25
Niveaux d’abstraction
• Plusieurs niveaux d’abstractions entre l’ordinateur (qui traite des bits) et l’utilisateur final (qui traite des concepts)
• Dans le domaine des BD, on en considère 3:
– Niveau interne – Niveau conceptuel – Niveau externe
Bases de données - Yann Loyer 26
Niveau interne
• Ensemble de fichiers et de structures utilisées pour permettre un accès efficace aux données (index)
• Appelé base de données physique
• Réside en mémoire auxiliaire
• Plusieurs BD physiques peuvent être gérées par le même SGBD
Bases de données - Yann Loyer 27
Niveau conceptuel (1)
• Base de données conceptuelle: abstraction du monde réel
• Langage de définition de données:
– fourni par le SGBD
– permet de définir la BD conceptuelle en terme de modèle de données
– permet de réaliser son implémentation au niveau physique
Bases de données - Yann Loyer 28
Niveau conceptuel (2)
Principaux modèles de données:
• Modèle hiérarchique – Structure de base: l’arbre
• Modèle réseau
– Structure de base: le graphe orienté
• Modèle relationnel – Structure de base: la relation
• Émergence de nouveaux modèles – Modèle orienté-objets
Bases de données - Yann Loyer 29
Niveau conceptuel (3)
• BD conceptuelle: description d’un ensemble cohérent réunissant les informations pertinentes d’une entreprise
• Processus: ensemble de fichiers → BD
conceptuelle
– appelé intégration de données– coordonné par une ou plusieurs personnes constituant l’administrateur de la base
Bases de données - Yann Loyer 30
Niveau externe (1)
• Appelé également Niveau des vues
• Vue: abstraction de la BD conceptuelle représentant une partie de ses informations
• La plupart des SGBD fournissent:
– un langage de définition de vues
– un langage de manipulation de vues
Bases de données - Yann Loyer 31
Niveau externe (exemple)
Numéro-client Nom Prénom Date de naissance
1 DUPONT JEAN 02/04/1980
2 DURAND JACQUES 03/01/2000
Nom Prénom Age
DUPONT JEAN 40
DURAND JACQUES 20
Table CLIENT
Vue V_CLIENT
La vue donne un accès limité aux données de la table.
Bases de données - Yann Loyer 32
Niveau externe (2)
• Construction de vues : processus inverse de l’intégration de données
• Avantage de l’intégration de données:
– vue globale des données de l’entreprise – meilleur contrôle de la cohérence – élimination des redondances – meilleur contrôle d’accès aux données – possibilité de faire des études statistiques plus
facilement – etc.
Bases de données - Yann Loyer 33
Vision globale d’une BD
Programme Programme d’application 1 d’application n Niveau vue 1 … vue n externe
Niveau BD conceptuelle Conceptuel
Niveau BD physique Interne
Bases de données - Yann Loyer 34