Les Bases de Données Relationnelles

Généralités sur les bases de données

Le développement des traitements informatiques nécessite la manipulation de données de plus en plus nombreuses. Leur organisation et leur stockage constituent
un enjeu essentiel de performance.
Le recours aux bases de données relationnelles est aujourd’hui une solution très répandue.
Ces bases de données permettent d’organiser, de stocker, de mettre à jour et d’interroger des données structurées volumineuses utilisées simultanément par différents programmes
ou différents utilisateurs. Cela est impossible avec les représentations tabulaires.

1964 : notion de base de données

L’invention du disque dur en 1956, mémoire de masse de grande capacité, a permis d’utiliser les ordinateurs pour collecter, classer et stocker de grandes quantités d’informations de façon plus souple et plus performante que le support antérieur : la bande magnétique.

Le terme database (base de données) est apparu en 1964 pour désigner une collection d’informations partagées par différents utilisateurs d’un système d’informations militaire.

Avec l’apparition du Web, la quantité de données à stocker a littéralement explosé.

Historique des bases de données

Gestion des bases de données

Pour gérer une base de données, il faut utiliser une suite de programmes appelé système de gestion de base de données.

Des systèmes de gestion de bases de données (SGBD) de très grande taille (de l’ordre du pétaoctet) sont au centre de nombreux dispositifs de collecte, de stockage et de production
d’informations. Les SGBD permettent :

  • de gérer la lecture, l’écriture ou la modification des informations de la base
  • de gérer les autorisations d’accès à la base
    un utilisateur peut être autorisé à lire et écrire dans la base de données alors qu’un autre utilisateur peut n’avoir la possibilité que de de lire les informations
  • de gérer les accès concurrents à la base
    plusieurs personnes peuvent avoir besoin d’accéder en même temps aux informations contenues dans une base données, ce qui peut parfois poser problème, notamment lorsqu’il s’agit de modifier la même donnée au même moment
  • d’assurer la maintenance de la base
    les fichiers d’une base de données sont stockés sur des disques durs dans des ordinateurs. Pour palier aux éventuelles pannes matérielles, une même base de données est dupliquée sur plusieurs ordinateurs. Toutes les copies de la base doivent être parfaitement synchronisées, et ce le plus rapidement possible.

 

Différentes familles de base de données

Il existe différentes familles de bases de données :

  • les bases de données hiérarchiques (années 60) : les enregistrements de la base sont liés selon une structure arborescente
    peu adapté pour décrire des structures complexes, répondre aux besoins réels et suivre l’évolution des systèmes d’information
    exemple : base de registre de Microsoft Windows

 

  • les bases de données relationnelles (1970) : l’information est organisée dans des tableaux à deux dimensions reliés entre eux par des clefs.
    ce sont de loin les plus couramment utilisées …

 

  • les bases de données objet (années 90) : les informations sont groupées sous formes de collections d’objets (conteneur logique qui englobe des informations et des traitements)

 

  • les bases de données NoSQL (Not only SQL) (2009) : enregistrement en structures flexibles, selon un paradigme non relationnel, favorisant l’interrogation des données
    adapté aux grosses infrastructures matérielles constituées de nombreux serveurs organisés en clusters (grappes), essentiellement pour des applications Web (cloud, réseaux sociaux, …)
    exemples : BigTable de Google, HBase (Facebook), Cassandra (Twitter) …

 

 

Langages des bases de données

Les langues de base de données permettent d’effectuer de multiples tâches :

  • contrôle de l’accès aux données ;
  • définition des types de données (création, modification ou suppression de tables et les relations entre elles) ;
  • insertion, mise à jour ou suppression d’occurrences de données ;
  • recherche d’informations

Les langages de base de données sont spécifiques à un modèle de données particulier.

Par exemple, l’accès aux données d’une base de données relationnelle s’effectue grâce à des requêtes d’interrogation et de mise à jour qui peuvent par exemple être rédigées dans le langage SQL (Structured Query Language).

Les traitements peuvent conjuguer le recours au langage SQL et à un langage de programmation.

 

Principaux SGBD

https://db-engines.com/en/ranking

Pour en savoir plus …

https://www.hello-pomelo.com/systeme-de-gestion-de-bases-de-donnees/

 

 

Sources :
https://fr.wikipedia.org/wiki/Base_de_données
https://pixees.fr/informatiquelycee/n_site/nsi_term_bd_intro.html


Le Modèle relationnel

Le modèle de données relationnel représente une base de données comme un ensemble de :

  • relations (tables à deux dimensions) qui contiennent
    • un ensemble de n-uplets ou tuples (les lignes – ou enregistrements – de la table)
      • dont les entrées (des valeurs qui peuvent être de type nombre, texte, booléen ou bien NULL) appartiennent à un domaine.
    • des attributs (les colonnes de la table), dont les noms peuvent servir de clefs.

On appelle ordre (ou degré) le nombre d’attributs d’une relation.
Par exemple : la relation Produits est d’ordre 4.

1970 : bases de données relationnelles

Les bases de données relationnelles ont été mises au point en 1970 par Edgar Franck Codd, informaticien britannique (1923-2003). Ces bases de données sont basées sur la théorie mathématique des ensembles.

 

Dans une même base de données, différentes relations peuvent avoir des attributs de même nom. Pour désigner l’attribut attr1 d’une relation rel1 , on le notera : rel1.attr1 .

Par exemple : Produits.Référence

 

Domaines

Le domaine d’un attribut est un ensemble, fini ou infini, de valeurs admissibles.

Par exemple :
le domaine de l’attribut « Prix » est l’ensemble des nombres à virgule flottante (FLOAT) exprimés avec deux chiffres après la virgule.
le domaine de l’attribut « Nom » correspond à l’ensemble des chaînes de caractères (TEXT).

Activité : domaines

Définir le domaine de l’attribut « Référence ».

Définir le domaine de l’attribut « En stock ».

Le domaine d’un attribut est renseigné au moment de la création de la relation. Le SGBD s’assure par la suite qu’un élément ajouté à une relation respecte bien le domaine de l’attribut correspondant.

 

Relations et clés

Les relations d’une base sont reliées (ou « connectées ») par certaines des valeurs qu’elles contiennent : chaque enregistrement d’une table contient un groupe d’informations relatives à un sujet et les différents sujets sont connexes.
Par exemple : les relations Produits et Ventes sont connectées puisque l’objectif de la base de données est de gérer la vente de produits !
Ces liens existants entre les informations sont stockés dans les champs (attributs) des enregistrements sous forme de clés.
Pour une relation donnée, une clé est un groupe d’attributs permettant d’identifier un unique enregistrement de la relation.
Pour qu’un groupe d’attributs forme une clé, il faut être sûr que deux enregistrements n’auront jamais des valeurs identiques pour ces attributs : on parle d’unicité de la clé.
On parle de clé candidate si le groupe d’attributs de la clé est minimal, c’est-à-dire que si on retire un seul des attributs de ce groupe, l’unicité n’est plus vérifiée.
Toute relation doit avoir au moins une clé candidate (et peut en avoir plusieurs).
  • clé primaire : c’est l’une des clés candidates de la relation, choisie pour être utilisée comme clé étrangère dans une autre relation :
  • clé étrangère : attribut d’une relation dont les valeurs sont des références à une clé primaire d’une autre relation.

Pour préserver l’intégrité d’une base de données, le SGBD se charge de vérifier que toutes les valeurs d’une clef étrangère d’une relation correspondent bien à des valeurs présentes dans la clef primaire de l’autre relation.

Activité : clés candidates

Donner les attributs des relations Produits et Ventes qui peuvent constituer des clés candidates.

 

Notion de contrainte

  • Domaine
  • Non nullité (NOT NULL)
  • Unicité (UNIQUE)
  • Contrainte de clé primaire ou étrangère

 

Cardinalité de relation

La cardinalité d’une relation est le nombre d’enregistrements qu’elle contient (le nombre de participation d’une entité à une relation)

Le modèle relationnel prévoit trois types de relations entre tables : 1:1, 1:N et N:N. Les relations entre les tables sont définies dans la colonne partagée.

Relation 1:1

Dans deux tables A et B de relation 1:1, un tuple de la table A se rapporte seulement à un tuple de la table B.

Par exemple, un ministre est à la tête d’un ministère et un ministère ne comporte qu’un seul ministre : la table Ministères est en relation 1:1 avec la table Ministres.

Relation 1:N

Dans deux tables A et B de relation 1:N, un tuple de la table A se rapporte à un ou plusieurs tuples de la table B.

Par exemple, un internat accueille plusieurs élèves : un seul membre de la table Internats peut se rapporter à plusieurs membres de la table Élèves.

Relation N:N

Dans deux tables A et B de relation N:N, un tuple de la table A se rapporte à un ou plusieurs tuples de la table B et un tuple de la table B se rapporte à un ou plusieurs tuples de la table A.

Par exemple, dans une école secondaire, une classe a plusieurs professeurs et un professeur est responsable de plusieurs classes : les tables Classes et Professeurs sont en relation N:N.

 

Remarque : une relation N:N peut donc être décomposées en deux relations 1:N.

 

Schéma relationnel

Les tables constituent la structure logique du modèle.

Un schéma de relation précise le nom de la relation ainsi que la liste des attributs avec leurs domaines.
On peut représenter un schéma de relation sous une forme graphique, par exemple à l’aide d’un diagramme :

 

La cardinalité est représentée par des liens.
  • cardinalité 1 à 1: ou 
  • cardinalité 1 à plusieurs :  ou 

On peut aussi le noter plus simplement sous la forme du nom de la relation suivi de la liste de ses attributs.

  • Produits (Référence, Nom, En stock, Prix)
  • Ventes (Numéro, #Référence produit, Date, Quantité)

Les clés primaires apparaissent soulignées, les clés étrangères précédées (ou suivies) d’un # .

On peut également préciser les domaines des différents attributs :

  • Produits (Référence : TEXT, Nom : TEXT, En stock : BOOL, Prix : FLOAT)
  • Ventes (Numéro : INT, #Référence produit : TEXT, Date : DATE, Quantité : INT)

 

Activité : ressources humaines

Soit une base de données dont le schéma est le suivant :

EMPLOYE (NumEmp, Nom, Prénom, Adresse, Téléphone, Qualification)
SERVICE (NomService, Responsable, Téléphone)
PROJET (NomProjet, DateDeb, DateFin, #NumEmp)

Réécrire ce schéma sous forme de diagramme.
Un employé peut il avoir plusieurs qualifications ?
Un employé peut il faire plusieurs projets en même temps ?
Une personne peut elle être responsable de plusieurs services ?
Un service peut il avoir plusieurs responsables ?

 

Activité : aéroport

Soit une base de dont le schéma est le suivant :

Pilote (PLNUM, PLNOM, PLPRENOM, VILLE, SALAIRE)
Avion (AVNUM, AVNOM, CAPACITE, LOCALISATION)
Vol (VOLNUM, #PLNUM, #AVNUM, VILLEDEP, VILLEARR, HEUREDEP, HEUREARR)

Réécrire ce schéma sous forme de diagramme.

 

Activité : films
  • En partant de la relation Films ci-dessous, créer une relation Réalisateurs  (id, nom, prenom et annee_naissance).
  • Modifier la relation Films afin d’établir un lien avec la Réalisateurs. Préciser l’attribut qui jouera le rôle de clef étrangère.

Films :

id titre realisateur annee_sortie note_sur_10
1 Alien, le huitième passager Scott 1979 10
2 Dune Lynch 1985 5
3 2001 : l’odyssée de l’espace Kubrick 1968 9
4 Blade Runner Scott 1982 8

 

 

 

Algèbre relationnelle

Les opérations d’algèbre relationnelle sont utilisées pour faire des rapprochements entre les enregistrements et créer de nouvelles relations à partir des relations enregistrées dans la base de données.

 

 

 

 

Sources : http://www.ai.univ-paris8.fr/~lysop/bd/seance4-ModeleRel.pdf

https://fr.wikipedia.org/wiki/Base_de_données_relationnelle

https://openclassrooms.com/courses/initiez-vous-a-lalgebre-relationnelle-avec-le-langage-sql/comprenez-limportance-des-cles

Vous aimerez aussi...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *