Cours les bases de données SGBD
1 - Définitions
Une base de données contient l’ensemble des données informatisées d’un système d’information.
Une base de données contient l’ensemble des données informatisées d’un système d’information.
Cette base est implantée physiquement sur le disque d’un ordinateur sous la forme d’un ou plusieurs fichiers. Le logiciel spécialisé dans la gestion d’une base de données s’appelle un SGBDR (système de gestion de base de données relationnelles).
Un SGBD représente donc l'ensemble des programmes assurant structuration, stockage, maintenance, mise à jour et recherche des données d’une base + interfaces nécessaires aux différentes formes d’utilisation de la base.
2 - Historique
2.1 L'organisation en fichier
Jusqu’aux années 60 : Les données étaient organisées en fichiers.
Les points particuliers de cette organisation étaient :
Un SGBD représente donc l'ensemble des programmes assurant structuration, stockage, maintenance, mise à jour et recherche des données d’une base + interfaces nécessaires aux différentes formes d’utilisation de la base.
2 - Historique
2.1 L'organisation en fichier
Jusqu’aux années 60 : Les données étaient organisées en fichiers.
Les points particuliers de cette organisation étaient :
- Particularisation de la saisie en fonction des fichiers (un programme de mise à jour pour chaque fichier)
- Contrôle en différé des données => traitement à posteriori des erreurs, d'où augmentation des délais et du risque d'erreur
- Particularisation des fichiers en fonction des traitements
- Grande redondance des données
- Peu de standardisation dans les traitements
- Utilisation de nombreux supports intermédiaires
2.2 L'apparition des SGBD
A la fin des années 60 sont apparus les premiers SGBD qui organisaient la séparation de la description des données de leur manipulation par les programmes d’application :
SOCRATE, TOTAL, IDM S, IDS2, IM S2.
Les points particuliers de cette nouvelle organisation étaient :
- Uniformisation de la saisie
- Contrôle immédiat de la validité des données saisies
- Partage d'une même structure de données entre plusieurs traitements
- Limitation de la redondance des données
- Standardisation des traitements généraux (consultation, restitution sous forme de listes ou tableaux)
- Gestion rationnelle des supports
2.3 Les SGBD relationnels
partir de 1970 apparaît la deuxième génération de SGBD à partir du modèle relationnel. Les principales évolutions sont l'enrichissement et la simplification des SGBD afin de faciliter l’accès aux données pour les utilisateurs.
Commercialisation depuis 1982 : ORACLE, INGRES, SYBASE, INFORM IX, DB2, RDB.
2.4 Les bases de données objet
Il s'agit de la troisième génération de SGBD née dans les années 80 et basée sur le modèle objet: ONTOS, ObjectStore, VERSANT, ORION, O2.
2.5 Les SGBR actuels
2.5.1 Les SGBD commerciaux :
- Oracle (Unix, Linux, W indows)
- M icrosoft : SQL serveur et Access
- IBM : DB2, Informix
- Sybase : Sql Anywhere (W indows, Unix, Linux …)
- Interbase (W indows)
- …
2.5.2 Les SGBDR libres
- M y-SQL
- Postgre Sql (Linux)
- Firebird (Linux, W indows)
- Adabas, SAP-DB, M ax DB (Linux, W indows)
- …
3 - Les objectifs d'un SGBDR
· Indépendance physique
Un remaniement de l'organisation physique des données n'entraîne pas de modification dans les programmes d'application.
· Indépendance logique
Un remaniement de l'organisation logique des données (ajout d'une nouvelle rubrique, ajout d'une nouvelle liaison…) n'entraîne pas de modifications dans les programmes d'application dont la 'vision' logique n'a pas évolué.
· Manipulation des données par des langages non procéduraux Des utilisateurs non informaticiens doivent pouvoir manipuler simplement les données, c’est-à-dire les interroger et les mettre à jour sans préciser d’algorithme d’accès.
· Administration facilitée des données
Un SGBD doit fournir des outils pour décrire les données, permettre leur suivi de ces structures et autoriser leur évolution. C’est la tâche des administrateurs de données :
conception, création, maintenance, « arbitrage ».
· Efficacité des accès aux données
Nécessité de garantir un bon débit (nombre de transactions exécutées par seconde) et un bon temps de réponse (temps d’attente moyen pour une requête). Partage des ressources (CPU, disques…) entre les utilisateurs en optimisant l’utilisation globale afin d’éviter, par exemple, qu’une requête courte d’un utilisateur attende la fin d’une requête longue d’un autre utilisateur.
· Redondance contrôlée des données
Si redondance, volume de stockage plus important, opérations de mise à jour multiples, incohérences momentanées ou permanentes.
· Cohérence des données
Ex. L’âge d’une personne doi être un entier positif. Un SGBD doit veiller à ce que les applications respectent cette règle lors des modifications de données. Une telle règle est appelée contrainte d’intégrité.
· Partage des données
Diverses applications doivent pouvoir partager les données de la base dans le temps et simultanément, comme si elles étaient seules à les utiliser.
· Sécurité des données
Les données doivent être protégées contre les accès non autorisés ou mal intentionnés. La sécurité des données doit aussi être assurée en cas de panne d’un programme ou du système, voire de la machine.
4 - L'organisation d'un SGBDR
4.1 Notion de tables
Une base de données est constituée par des tables reliées entre elles, c’est pourquoi on parle de base de données relationnelles. Une table est un tableau. Ses lignes sont appelées les enregistrements et l’intitulé de ses colonnes les champs. A intersection d’une ligne et d’une colonne figure une valeur
La structure d’une table donne la li e des champs (attributs) qui la composent. Pour chaque champ, elle précise ses propriétés, essentiellement :
- Son nom codé.
- Son type.
- Son caractère obligatoire ou facultatif (si une valeur est ou non requise pour ce champ).
- Sa plage de valeurs, éventuellement
- …
4.2 Les types de données de base
Pour chaque champ, il faut préciser le type d’informations que celui-ci sera capable de stocker. A chaque type correspond une place en octets nécessaire sur le disque pour enregistrer les valeurs du champ. Les différents types sont:
4.2.1 Le type numérique
- Il permet de stocker des données quantitatives sur lesquelles des calculs pourront être faits.
- Il occupera 1, 2, 4 ou 8 octets selon que les nombres à enregistrer seront des octets, des entiers ou des nombres réels.
- Ce type comprend des sous-types (octet, entier, entier long, réel simple, réel double).
4.2.2 Le type texte
- Il permet de stocker des données sous forme de texte ou chaîne de caractères.
- Sa longueur peut être définie de façon fixe ou variable (type Varchar)
4.2.3 Le type Date/heure
- Il permet de gérer le temps.
- C’est un type qui permet de prendre en compte le nombre de jours par mois, y compris le cas particulier du mois de février.
- Il permet de programmer très simplement des calculs sur les dates et les heures.
- Il permet de faire des extractions sur la date (mois, année …)
- Ce type occupe 8 octets.
4.3 Des types particuliers
Il s'agit souvent de dérivés des types de bases qui sont déclinés en fonction de la base de donnée. Il peut également s'agir simplement de mise en forme pour l'affichage. Ils sont très répandus dans les bases de données à interface graphique (Access)
4.3.1 Le type monétaire
- Valeurs monétaires et données numériques utilisées dans les opérations mathématiques sur des données de 1 à 4 décimales. Précision à 15 chiffres à gauche de la virgule et à 4 chiffres à droit
- Il occupe 8 octets.
4.3.2 Le type NuméroAuto
- Numéro séquentiel unique (incrémenté de 1 en 1) ou numéro aléatoire attribué par le SGBDR lorsqu’un nouvel enregistrement est ajouté à une table.
- Les champs NuméroAuto ne peuvent pas être modifiés.
- Ce type occupe 4 octets.
4.3.3 Le type Oui/Non
- Il est aussi appelé type logique ou type booléen : valeurs Oui et Non et champs qui contiennent exclusivement une valeur duale (Oui/Non, Vrai/Faux ou Actif/ Inactif .
- Il n’occupe qu’un octet.
4.3.4 Le type Lien hypertexte
- Il permet d’enregistrer un chemin d’accès vers un fichier, un site Internet.
4.3.5 Le type mémo
- Il s'agit d'un champ texte pouvant aller jusqu'à 65 535 caractères
4.3.6 Le type OLE
- Il s'agit d'un objet (tel qu'une feuille de calcul Excel, un document Word, une image, un son …) lié ou incorporé.
4.4 La notion d'intégrité
Les contraintes d'intégrité font partie du schéma conceptuel. Parmi celles-ci, on distingue :
- Les contraintes de domaines sont des contraintes liées aux colonnes des tables (attribut non nul, ou dans une fourchette de valeurs …)
- La contrainte d'intégrité d'entité précise qu'une table doit toujours avoir une clé primaire
- La contrainte d'intégrité référentielle est liée aux clés étrangères.
Appliquer l'i égrité référenti le implique :
- Dans le champ clé étrangère vous ne pouvez pas entrer une valeur qui n'existe pas dans la clé primaire (Un client ne peut être saisit dans une commande s'il n'existe pas).
- Vous ne pouvez pas effacer un enregistrement de la table primaire si des enregistrements correspondants existent dans une table li
- Vous ne pouvez pas modifier une valeur clé primaire dans la table primaire si cet enregistrement a des enregistrements li
La notion d’intégrité référentielle est au cœur même de la base de données. Elle lui confère son caractère relationnel. Référentielle signifie que la clé étrangère doit faire référence à une clé primaire.
5 - Rappel sur le modèle relationnel
Le modèle relationnel représente la structure de la base de donnée, à savoir
- La structure des tables (nom, nom des champs)
- Les liens entre elles.
- La clé primaire, obligatoire pour chaque table, permet d’identifier de façon unique chaque enregistrement de la table.
- La clé étrangère matérialise la liaison de la table vers une autre table.
Le schéma relationnel est indépendant de la base de donnée utilisée.
5.1 Représentation du modèle relationnel
Cette représentation n'est pas normalisée, mais fait appel à des habitudes. Il est important dans cette représentation de représenter explicitement:
- Les tables avec leurs noms
- Les champs (ainsi que leurs noms) associés aux tables
- Les clés primaires
- Les clés étrangères
- Les liaisons clés primaires, clés étrangères
Elle existe sous différentes formes :
5.1.1 La représentation textuelle :
CLIENT (No_Client, Nom_Client, Ad_Client …)
COMMANDE (No_Cde, Date_Cde, No_Client_Cde#)
Cette représentation non graphique est commode, car rapide à écrire, mais elle est pauvre et insuffisante dès que le nombre de table se multiplie. Le lien entre la clé étrangère et la clé primaire qu’elle référence n’est pas symbolisé. Il faut donc soit connaître le plan de codification mis en Œuvre, soi donner à la clé étrangère le même nom que la clé primaire qu’elle référence, soit t'indiquer en clair par une phrase.
5.1.2 La représentation graphique
Cette représentation est plus visuelle s’adapte à des schémas beaucoup plus complexes et met en relief les liens entre table.
5.1.3 La représentation Access
Il s'agit d'une représentation graphique particulière qui visualise de plus les règles de gestion sur la base (application de l'intégrité référentielle ou non). Il s'agit d'une particularité d'Access.
Article plus récent Article plus ancien