Introduction aux bases de données
Un bref historique¶
- 1969 : essor des bases de données, grâce aux travaux de Codd sur l’approche relationnelle.
- 1974 : création de SEQUEL, ancêtre du langage SQL, par Chamberlin.
- 1979 : premiers SGBDs relationnels commerciaux : Oracle, puis SQL/DS cher IBM.
- 1989, 1999, 2003, 2008, 2011, 2016 : normalisations ISO du langage SQL.
Qu'est-ce qu'une base de données ?¶
Définition : une Base De Données (BDD)
C'est un ensemble de données :
- volumineux,
- structuré
- minimalement redondant de données,
- liées entre elles,
- stockées sur supports numériques,
- servant pour les besoins d’une ou plusieurs applications,
- interrogeables, modifiables par un ou plusieurs utilisateurs, travaillant potentiellement en parallèle.
Exemple : base de données d'une compagnie aérienne
Nombreuses données enregistrées, liées entre elles :
- voyageurs,
- vols,
- avions,
- personnel,
- réservations,
- etc.
Les Systèmes de Gestion de Base de Données (SGBD)¶
Qu'est-ce-qu'un SGBD ?¶
Définition : SGBD
-
Logiciel prenant en charge :
- la structuration,
- le stockage,
- la mise à jour,
- la maintenance,
- et la consultation d’une base de données.
-
C'est l'interface principale avec les données.
Exemples de SGBD
- Oracle, SQL Server, Access, MySQL, MariaDB.
- Ce sont des SGBD relationnels.
Quel est leur intérêt ?¶
Avant leur émergence :
-
L'anarchie
- applications de gestions de données développées indépendamment.
- avec : des langages propres, des normes propres, des fichiers propres.
-
Conséquences de cette anarchie
- multiplication des tâches de saisie, de développement et de support : coût important
- redondance des données
- incohérences des données
- non-portabilité des traitements
- dépendance vis à vis des moyens matériels
- restructuration des données dissuasive
Bénéfices garantis par les SGBD¶
- Indépendance physique des données
- Les programmes utilisateurs de la base sont indépendants du matériel et logiciel qui l'hébergent.
- Indépendance logique des données
- Les programmes utilisateurs de la base sont indépendants de sa structure logique.
- Manipulation des données par des non-informaticiens (IHM).
- Administration facilitée des données.
- Optimisation de l’accès aux données.
- Préservation de la cohérence des données (intégrité).
- Partage des données.
- Sécurité des données (confidentialité).
- Sûreté des données (persistance).
Qu'est-ce-qu'une donnée ? (au « niveau conceptuel »)¶
Définition : type de données
- Abstraction servant à désigner une catégorie d’objets, d'une partie du monde réel.
- Elle est associée à un ensemble de caractéristiques, généralement élémentaires, qui doivent suffire à distinguer les objets entre eux.
- Synonymes : entité (modèle Merise), classe (modèle UML), structure (langage C).
Exemple : type de données livre
- Un type livre, pour une bibliothèque donnée, sert à représenter chacun des livres gérés par la bibliothèque (indépendamment de leurs différents exemplaires).
- Il pourrait être concrètement défini par l'ensemble de caractéristiques suivants :
Livre = (Numéro ISBN, Titre, Auteur, Editeur, NombreExemplaires)
.
Définition : donnée
- Associée à un type de données, c'est une combinaison unique des caractéristiques spécifiées par ce type (donc un ensemble de valeurs), désignant un objet particulier du monde réel.
- Synonyme : objet, instance/occurrence de classe.
Exemple : une donnée livre
- Pour représenter un livre particulier dans la base de données de la bibliothèque, on définit une donnée qui précise simplement chacune de ses caractéristiques :
(2100068245, Introduction aux bases de données relationnelles, Mata-Toledo, EdiScience, 2)
. - Cette donnée fait référence à un livre précis :
- celui dont le numéro ISBN est 2100068245,
- qui est écrit par Mata-Toledo,
- intitulé « Introduction aux bases de données relationnelles »
- publié par EdiScience,
- et dont la bibliothèque possède 2 exemplaires.
Conception de base de données¶
-
Trois niveaux de modélisation des BDD (Namur 1974)
- Niveau conceptuel : description du réel, sans contraintes techniques.
- Niveau logique : description d’une solution de modélisation, techniquement orientée, mais indépendante de tout choix d’implémentation.
- Niveau physique : solution technique (programmation + optimisation).
-
+ Niveau externe (ANSI 1975) : prise en compte du point de vue des différents utilisateurs/applications (vues, confidentialité).
Un exemple simplifié de conception d'une base de données¶
Données à modéliser¶
Stages d'étudiants
- Dans une formation donnée, les étudiants sont tous amenés à effectuer un stage.
- Toutes les propositions de stage doivent être suivies.
Modèle Conceptuel de Données (MCD)¶
Grâce à ce diagramme (de classe) écrit en langage UML, on indique l'existence de :
- 2 classes (ou types) de données.
- 1 lien d'association entre ces 2 classes :
- chaque étudiant est associé à
1
stage ; - chaque stage est associé à
0..1
stage (c.-à-d. « au plus 1 »).
- chaque étudiant est associé à
Modèle Logique de Données (MLD)¶
-
Deux tables relationnelles, liées :
Etudiant
NumeroINE Nom Prenom NumeroStage=>Stage Stage
NumeroStage Titre Encadrant
Attention
- Dans un vrai schéma relationnel, une flèche relie la colonne
NumeroStage
de la tableEtudiant
à la tableStage
, pour indiquer que chaque valeur deNumeroStage
désigne précisément un stage, c'est-à-dire une ligne particulière de la tableStage
. - Ici, c'est la flèche « => » qui l'indique.
Note
Les champs soulignés correspondent aux « identifiants » de la table.
On peut l'écrire aussi ainsi, de manière purement textuelle :
- Etudiant(NumeroINE, Nom, Prenom, NumeroStage=>Stage)
- Stage(NumeroStage, Titre, Encadrant)
Niveau physique¶
- Création des tables en langage SQL + Remplissage + Manipulations.
- Les tables remplies prennent alors la forme de fichiers : un fichier par table.
-
Exemple d'extraction de données de la table, apparaissant à l'écran, ou récupérées dans un fichier :
NumeroINE Nom Prenom NumeroStage 140116244795612 Dali Salvador 150086238218665 Picasso Pablo 42
Note
Salvador n'a pas encore trouvé son stage !
SQL et les langages de données¶
Définition : langage de données
Langage informatique permettant de décrire le modèle d’une base de données d’une manière assimilable par la machine (niveau physique).
Le langage SQL contient 3 langages de données :
- Langage de Définition de Données (LDD).
- Langage de Contrôle de Données (LCD).
- Langage de Manipulation de Données (LMD).
Administration de données¶
La gestion de bases de données est généralement répartie sur 3 métiers :
- Administrateur entreprise
- gestion du schéma conceptuel et des règles de contrôle des données.
- Administrateur de données
- gestion des schémas externes et de leur correspondance avec le schéma conceptuel.
- Administrateur de bases de données
- gestion du schéma interne (= logique + physique) et de sa correspondance avec le schéma conceptuel.