Aller au contenu

TNSI : BDD - SGBD = Système de Gestion de Base de Données⚓︎

Contenus Capacités
Attendues
Commentaires
Système de gestion de bases de
données relationnelles.
Identifier les services rendus par un
système de gestion de bases den
données relationnelles :
persistance des données, gestion
des accès concurrents, efficacité den
traitement des requêtes,
sécurisation des accès.
Il s’agit de comprendre le rôle
et les enjeux des différents
services sans en détailler le
fonctionnement.

SGBD vs BDD⚓︎

Notion de SGBD⚓︎

Def

Un Système de Gestion de Bases de Données (SGBD) 🇫🇷 / DataBase Management System (DBMS) 🇬🇧 est un ensemble d'outils informatiques permettant de réaliser des opérations de bases (CRUD), ou plus évoluées, sur les données :

  • Create ou Création/Sauvegarde
  • Read ou Lecture/Interrogation
  • Update ou Mise à Jour
  • Delete ou Suppression

Selon le SGBD, d'autres opérations plus évoluées sont permises.

Un SGBD est donc un ensemble logiciel permettant aux programmeurs de réaliser des opérations sur des données spécifiques, contenues dans une grande masse d'information partagées par plusieurs utilisateurs.

Base de Données⚓︎

Def

Une Base De Données (BDD) 🇫🇷 ou DataBase (DB) 🇬🇧 est la structure où sont stockées les données

SGBD vs BDD⚓︎

  • Le SGBD est en charge de toute la gestion, la configuration, l'administration et la sécurité de la structure de la BDD.
  • La BDD ne s'occupe que du stockage des données en elles-mêmes, et des relations entre ces données

Fonctions d'un SGBD⚓︎

Selon le SGDB considéré, il peut également permettre d'autres opérations plus évoluées, notamment :

  • la mise en forme des données: description des types de données par des noms, des formats, etc...
  • l'authentification des utilisateurs
  • sécurisation/protection des données : Pourquoi? pour réduire le risque de vol de :

    • propriété intelectuelle
    • documents professionnels
    • de données médicales,
    • d'emails
    • de secrets commerciaux, etc..

    Quelques Techniques Utilisées:

    • gestion de Droits
    • gestion de l'identité
    • gestion de l'accès
    • détection des menaces
    • analyse de la sécurité
  • intégrité des données : regroupe un ensemble de critères s'intéressant (intuitivement) à la qualité de l'état actuel des données, et leur préservation dans ce bon état, notamment:

    • la fiabilité/exactitude des données.
    • la cohérence des données

    Quelques règles que doivent respecter les données, pour garantir l'intégrité initiale des données, et pour la préserver:

    • validation des entrées
    • validation des données
    • suppression des doublons
    • sauvegarde des données
    • contrôles d'accès: gestion des droits utilisateurs et protection des accès physiques aux serveurs, etc..
    • audits automatiques permettant de remonter à la source en cas de vol de données
  • optimisation des performances (minimisation des temps de recherche notamment)

  • outils de gestion:
    • métadonnées :
  • outils d'administration
  • cloud : Le SGBD peut offrir une indépendance logique et physique des données. Cela signifie qu'il peut protéger les utilisateurs et les applications du besoin de savoir où les données sont stockées où d'avoir à s'inquiéter des changements dans la structure physique des données (stockage et matériel).

de SGBD classiques

Quelques exemples nominatifs de SGBD classiques et usuels en 2021 :

  • Oracle Database appelé Oracle DB. Principaux Clients : Grandes Entreprises: Banques, Défense, Sécurité, \(\approx \)48% du parc mondial. Oracle Corporation est une entreprise américaine fondée en \(1977\) par Larry Ellison, leader mondial dans le domaine des Bases de Données (BDD). Payant (cher : \(10 To\) \(\approx 1800\) €/mois en \(2018\)). Quelques Exemples de Points Forts:
  • Gestion de données:
    • pools de session
    • connexions
    • gestion de larges objets
  • Sécurisation des Données : Évaluation, détection et prévention des menaces de sécurité, grâce au cryptage, gestion des clés, masquage des données, contrôles d'accès privilégiés, surveillance des activités et audit.
  • Administration : Gestion, Sécurisation, et Maintenance automatisées des BDD, par Machine Learning
  • Cloud
  • 4D (4ième Dimension)
  • Microsoft SQL Server
  • SQLite : Open Source et Gratuit, pour les BDD légères (petit site, applications sur tél portables)
  • MySQL : initialement Open Source et Gratuit, racheté depuis par Sun Microsystems en \(2008\) pour 1 milliard de dollars..., puis Oracle a racheté Sun en \(2009\)). Très Utilisé pour les sites Web et intégration PHP
  • MariaDB est le remplaçant de MySQL dans le monde de l'Open Source Gratuit, depuis le rachat de MySQL par Oracle en \(2009\).
  • PostgreSQL Open Source et Gratuit. Un peu plus complet que MySQL.
  • NoSQL : leader pour les Centres de Données 🇫🇷 ou les Data Center 🇬🇧, et donc le Big Data

Les Propriétés ACID⚓︎

En plus des fonctions précédentes, citées dans la définition, un SGBD :

  • assure le partage des données
  • garantit qu'une opération est réalisée de façon fiable, notamment grâce à des propriétés classiques, appelées les Propriétés ACID :
    • L'Atomicité vérifie qu'une opération s'effectue entièrement, ou pas du tout
    • La Cohérence assure que chaque transaction amèrera le système d'un état valide à un autre état valide, en tenant compte notamment, mais pas exclusivement, des contraintes d'intégrité, des rollbacks en cascade, des déclencheurs et combinaisons d'événements.
    • Isolation : toute transaction doit s'exécuter comme si elle était la seule sur le système. Il ne doit y avoir aucune dépendance entre transactions, de sorte qu'une exécution simultanée de plusieurs transactions produise le même état que celui qui serait obtenu par l'exécution en série des transactions.
    • La Durabilité assure que lorsqu'une transaction a été enregistrée, elle demeure enregistrée même à la suite d'une panne d'électricité, d'ordinateur ou d'un autre problème.

Les Différents Modèles de SGBD⚓︎

Un modèle de SGBD illustre la structure logique du SGBD. Il existe de nombreux modèles de SGBD, parmi les plus courants :

Le modèle Hiérarchique⚓︎

Les données sont stockées hiérarchiquement, selon une arborescence descendante (comme dans un arbre).

  • Ce modèle utilise des pointeurs unidirectionnels (chaque enregistrement mène vers uniquement vers un autre) entre les différents enregistrements.
  • Requêtes procédurales (comment aller chercher les données, plutôt que quoi aller chercher)
  • modèle défini sur des produits technologiques et non sur un modèle abstrait (d'où une grande dépendance aux technologies)
  • produit le plus connu: Information Management System (IMS) par IBM (\(1968\)) Historiquement, il s'agit du premier modèle de SGBD.

GaProduitbCommerciauxa->bcTechniciensa->cdAmbulantsb->deSédentairesb->efWebc->fgGraphistesc->ghSécuritéc->h

Le modèle Hiérarchique

Ce modèle Hiérarchique est aujourd'hui obsolète.

Le modèle Réseau⚓︎

Le modèle réseau est une extension du modèle hiérarchique, et lui succède historiquement : celui-ci utilise donc encore des pointeurs vers des enregistrements. Il autorise même des relations plusieurs à plusieurs entre des enregistrements liés, ce qui autorise plusieurs (ou pas) enregistrements parents. La structure n'est donc plus obligatoirement descendante. Son pic de popularité remonte aux années \(1970\), après qu'il ait été officiellement défini par la conférence sur les langages de système de traitement des données (Conference on Data Systems Languages, CODASYL)

Gaba->bca->cb->cdb->deb->efc->fgc->ghc->hd->eid->if->g

Le modèle Réseau

Ce modèle Réseau est aujourd'hui obsolète.

Le modèle Relationnel (SGBDR)⚓︎

Les données sont enregistrées dans des Tableaux appelés Tables , à deux dimensions : lignes et colonnes

\(\,\) \(\,\) \(\,\)
\(\,\) \(\,\) \(\,\)
\(\,\) \(\,\) \(\,\)
\(\,\) \(\,\) \(\,\)
\(\,\) \(\,\) \(\,\)

\(\,\) \(\,\)
\(\,\) \(\,\)
\(\,\) \(\,\)
\(\,\) \(\,\)

  • Le modèle relationnel est le plus utilisé actuellement, et ce depuis la fin des années \(1990\) : environ les \(\displaystyle \frac 34\) des SGBD/bases de données utilisent ce modèle.
  • Parmi les SGBD Relationnels les plus populaires on peut citer:

    • Oracle
    • MySQL
    • Microsoft SQL Server
    • PostgreSQL
    • MariaDB
    • SQLite
    • Microsoft Access
    • ..
  • Limites L'évolution entre autres du matériel informatique, des langages de programmation, des exigences des interfaces-utilisateurs, des applications multimédia ainsi que de la réseautique a mis en lumière des limitations du modèle relationnel, et a ainsi poussé d'autres modèles à émerger. Plus particulièrement, ses limites pour les systèmes distribués à grande échelle sur le Web (comprendre les Centres de Données 🇫🇷, ou Data Centers 🇬🇧 utilisés pour le Big Data), comme par exemple Google, Twitter et Facebook, ont conduit à l'apparition des familles de bases de données appelées des SGBD non-relationnels ou familles NoSQL (Not Only SQL) 🇬🇧

Dans toute la suite, nous ne nous intéresserons qu'au ce modèle relationnel.

Le modèle Déductif⚓︎

Les données sont présentées sous forme de Tables, comme le modèle relationnel, mais la manipulation des tables se fait différemment (par calcul des prédicats : hors-programme)

Le modèle Objet (SGBDO)⚓︎

Les données sont stockées sous forme d'Objets, c'est à dire en pratique sous forme de Classes, présentant des données membres. Les champs sont des instances de la classe.

Familles NoSQL⚓︎

  • L'appellation NoSQL (Not only SQL) date de \(2009\). Il ne s'agit pas, à proprement parler, d'un modèle NoSQL, mais de plusieurs familles NoSQL, qui répondent à des besoins différents. En effet, le modèle relationnel, se révèle peu efficace et rencontre quelques limites dans sa manière de représenter et de manipuler les données, particulièrement dans le contexte d'environnements Web distribués à grande échelle, comprendre pour les Centres de Données 🇫🇷, ou Data Centers 🇬🇧, qui sont amenés à traiter de très grands volumes de données (ce que l'on appelle le Big Data, p. ex Google, Twitter, Facebook, eBay).

  • Les familles NoSQL, délaissent les propriétés des transactions relationnelles qui ont été pensés pour garantir et de maintenir la cohérence des données (propriétés ACID) au profit de contraintes qui priorisent la disponibilité des données (contraintes BASE).

  • Exemples de Familles NoSQL

  • Familles Orientées Graphes: Encore plus flexible qu'un modèle réseau car il permet la connexion entre tous les noeuds, quels qu'ils soient. Exemple: Twitter
  • Orientés Colonnes
  • Orientés Clés/Valeurs. Exemple: Système de Sauvegarde type Dropbox
  • Orientés "Document" : Gestion des documents et/ou des données semi-structurées (e.g. métadonnées), plutôt que des données atomiques. Exemple : métadonnées des produits sur eBay.
  • Exemples d'Implémentations
  • MongoDB (OpenSource, orienté document de types JSON)
  • Amazon Dynamo DB
  • Cassandra (Facebook)
  • Big Table (Google)
  • Apache HBase (pour la base de données Big Table de Google)
  • Oracle NoSQL Database
  • etc..

Voir par exemple ces références12 pour une introduction à ces Modèles NoSQL (MongoDB, Cassandra, et Elasticsearch)

Les SGBD les plus populaires⚓︎

SGBD

source: db-engines.com voir leur Méthodologie de Calcul

Les SGBD les plus Populaires en 2022,
source: Sondage 2021 de Développeurs, par StackOverflow

Références⚓︎