Aller au contenu

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)

My super diagram placeholder

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 »).

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 table Etudiant à la table Stage, pour indiquer que chaque valeur de NumeroStage désigne précisément un stage, c'est-à-dire une ligne particulière de la table Stage.
  • 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.