Base de Données Relationnelles CHAPITRE I

publicité
Base de Données Relationnelles
CHAPITRE I : Introduction
1.0
A propos du cours
A la fin de ce cours, l’étudiant sera capable d’analyser un problème et de concevoir
un schéma relationnel. L’étudiant maîtrisera les grands principes du langage SQL. Il
aura également une connaissance avancée d’un SGDB particulier.
Un projet sera organisé, ainsi que des interrogations qui compteront pour 40% de la
note finale. A la fin du module, se tiendra un examen écrit. Toute absence aux
interros doit être justifiée, faute de quoi, l’étudiant sera sanctionné d’un 0.
1.1 Qu’est ce qu’une base de données ? Une base de données est un « gros » ensemble s
sont mémorisées sur un support permanent afin d’en faciliter l’exploitation
(ajout, mise à jour, recherche…). Nous exploitons tous des informations, chaque jour, et pour de
depuis l’apparition de l’écriture, nous avons le pouvoir de les stocker et de les
transmettre au-delà des générations, le stockage et la gestion de la connaissance
est la base de la naissance de l’évolution culturelle qui a aujourd’hui emmagasiné sur
Terre bien plus d’informations que la simple évolution biologique (via l’ADN). La
gestion et l’exploitation de l’information sont un fondement essentiel du progrès
scientifique. Les bases de données permettent d’automatiser cette gestion. Par leurs
mécanismes, elles permettent de stocker des informations de façon organisée et de
les retrouver en questionnant le système à travers des critères et des conditions
particulières (des requêtes). Il est également possible, bien naturellement, d’ajouter,
de modifier et de supprimer des données de la base de données. Exemple de base de données : ·
ses limites : Pas de gestion de la concurrence (plusieurs personnes sont sur le même
fichier), pas de gestion de la sécurité, lourdeur d’accès (il faut écrire un programme
pour explorer chaque type de fichier), redondance de l’information. Le langage
COBOL est un parfait exemple de cette philosophie, Cobol est aujourd’hui un
langage mort mais il existe encore énormément de lignes de code dans ce langage
dans les industries, les anciennes données des banques sont souvent encodées
dans des cœurs Cobol qu’il faudra, un jour ou l’autre, traduire dans un langage plus
moderne et plus efficace.
La conception système fichier a poussé progressivement les chercheurs à concevoir
une couche d’abstraction supplémentaire à laquelle nous déléguons la manipulation
et la sécurité des fichiers : c’est un logiciel spécialisé que l’on appelle le SGDB
(Système de Gestion de Base de Données ; DBMS pour Data Base Management
System en anglais). Access, DBase, DB2, Informix, Firebird, Oracle, Sybase,
MySQL… sont des exemples célèbres de SGDB.
Nous ne verrons pas dans ce cours le fonctionnement détaillé d’un SGDB, mais il
faut savoir qu’il peut se baser sur plusieurs modèles et plusieurs techniques
algorithmiques pour retrouver les données. Outre l’archaïque méthode par système
de fichiers, voici les plus importantes du moment :
Le Modèle Relationnel C’est le modèle le plus utilisé actuellement même s’il commence à tendre
fin de vie. En 1970, Codd publia un article où il proposait de stocker des données
hétérogènes dans des tables et d’établir des liens entre ces tables. Pour manipuler
ces relations, il existe un modèle théorique que l’on appelle l’algèbre relationnelle.
Par exemple, le langage SQL est une extension standardisée de l'algèbre
relationnelle. C’est le modèle que nous étudierons dans ce cours d’introduction.
Le Modèle Orienté-Objet Inspiré du paradigme de programmation du même nom, le modèle OO s
données non plus sous forme de table mais sous forme d’objet. Un objet modélise une chose de la
--> voiture C
--> camion D
\--> pneu A
\--> marque Michelin
--> pneu B
--> vélo E
O2 est un exemple de produit basé sur le modèle Orienté-Objet, mais n’est plus
commercialisé, le succès n’ayant pas été au rendez-vous (les consommateurs
commençaient juste à se familiariser avec le modèle relationnel). Le langage de
requête se nommait OQL et on opérait le design des objets via un langage O2C qui
servait de module à du C ou du C++. Le modèle OO refera sans doute son apparition
prochainement dans le monde des SGBD, on le retrouve déjà dans Zope, framework
d’architecture web de plus en plus populaire. Zope gère les DB en OO via le module
Zope Object Database. Le Modèle Multi-dimensionnel
L’idée est ici de stocker les données dans des hypercubes à n dimensions, on parle
de cube de données, qui permettent d’analyser les données selon plusieurs critères.
Ici un cube à 3 dimensions où on peut mesurer les données suivant le type de
marché, le temps ou le type de produit… on peut faire des études d’une dimension
par rapport à une autre, en pratique, il y a, bien entendu, beaucoup plus de
dimensions : 1.2 Quelles en sont les utilisations ? Les bases de données servent généralem
données brutes en informations utiles pour prendre des décisions, on parle alors de
Data Mining. On parle aussi dans ce cas de Knowledge Management ou de
Knowledge Discovery Data, les outils de data mining permettent d’extraire de la
connaissance des données en découvrant des modèles, des règles dans le volume
d’information (souvent très très important) présent dans les entreprises.
Pour rappel, la loi de Moore nous dit que notre capacité de calcul double chaque 18
mois (cette loi a toujours été respectée depuis l’introduction des microprocesseurs).
Notre capacité de stockage d’information, quant à elle, double chaque 9 mois. Nous
nous dirigeons donc vers une surcharge d’information ingérable et encore plus
chaotique par l’échange en réseau et par internet. Il faudra donc de plus en plus
compter sur des agents automatiques pour trier, résumer, comprendre et interpréter
l’information à notre place, voilà une des fonctions du Data Mining, l’on parle aussi
de Text Mining pour les applications qui font des résumés d’articles de manière
automatique et de Web Mining si on analyse les données sur les sites, les blogs et
les forums.
Considérons le suivi des statistiques et des tendances à long terme en prenant l’exemple d’une pu
susceptibles de commander un produit plutôt qu’un autre. A l’aide des statistiques et des tendances
des données
positionnement des données 1960
1970
1980
1990
2000 D
données
Brèche de
connaissance
Potentiel
d’analyse
produits dans un rayon : les consommateurs qui achètent telle marque de bière,
achètent généralement telle marque de chips, donc nous placerons ces chips et
cette bière à proximité dans le rayon.
Une base de données contribue à réduire ou à supprimer le volume de papier
manipulé. Prenons l’exemple d’un service de ressources humaines qui gère des
centaines de curriculum vitae. Le stockage de ces documents s’effectue de façon
classique dans un classeur ; ils sont classés par nom de famille et par ordre
alphabétique, ce qui permet de les retrouver facilement. Pour sélectionner le
curriculum vitae de toutes les personnes qui possèdent telle ou telle aptitude, il est
nécessaire de lire tous les documents, ce qui peut demander des heures. Quand les
informations sont stockées dans une base de données, on obtient les mêmes
résultats en quelques secondes.
Il existe deux types de bases de données : les bases de données OLTP (Online
Transactional Processing) et OLAP (OnLine Analytical Processing). Chaque type est
associé à une utilisation particulière qui dépend de l’exploitation envisagée des
données. Une base de données OLTP dite transactionnelle permet de traiter des données de
façon régulière. La programmation de cours et les inscriptions d’étudiants constituent
un bon exemple d’utilisation de base de données transactionnelle. Supposons
qu’une université propose plusieurs centaines de formations. Elle en ajoute, en
supprime, en modifie en fonction des besoins. Chaque formation est assurée par un
professeur au moins et concerne entre dix et trois cents étudiants. Des inscriptions et
des abandons sont enregistrés toute l’année. Les données sont donc dynamiques et
exigent un gros volume de saisie. Une gestion sur papier nécessiterait un personnel
important, d’où l’intérêt d’utiliser une base de données. Le rôle principal d’une base de données O
des données en réponse aux demandes émises. En général, les chargements
volumineux de données constituent la seule activité transactionnelle effectuée dans
ce type de base. Les données OLAP (performances de l’entreprise, tendances…)
servent de support à des décisions commerciales circonstanciées ou relatives au fonctionnement d
collectées auprès de toutes les parties d’un organisme. Les entrepôts de données sont spécialeme
apparentées et font généralement partie d’une base de données transactionnelle. Elles peuvent êtr
pendant des années, il est généralement inutile de stocker en ligne toutes les
données. Cela augmenterait la quantité globale de données à lire pour en récupérer
ou en modifier une seule. Les informations d’historique sont généralement stockées
hors ligne, le cas échéant sur un serveur dédié, un lecteur de disques ou un lecteur
de bandes. Par exemple, les données des trois dernières années d’exercice d’une
entreprise peuvent être enregistrées sur une bande. La question qui se pose
concerne la durée de stockage en ligne ; seul le client peut y répondre.
Notons le grand succès des ERP (Enterprise Resource Planning) qui sont des
macro-packages modulaires orientés business et qui peuvent gérer des bases de
données via SQL ou des langages propriétaires, en plus de pouvoir analyser ses
données et faire du risk management. L'autre principe qui caractérise un ERP est
l'usage systématique de ce qu'on appelle un moteur de workflow
qui permet,
lorsqu'une donnée est entrée dans le système d'information, de la propager dans
tous les modules du système qui en ont besoin. Exemple d’application célèbre qui
vont dans ce sens : SAP, PeopleSoft Enterprise (Oracle), Cognos, BO (Microsoft),
SAS… et beaucoup d’autres. 1.3 Qui sont les utilisateurs ? Banquiers, avocats, comptables,
saisie de données, etc., les utilisateurs potentiels de base de données se retrouvent
dans pratiquement toutes les professions. Leurs besoins varient. Le banquier par
exemple conserve les comptes de personnes et de sociétés, les lignes de crédits, les
prêts personnels, les prêts d’entreprise etc. Lorsqu’un client souhaite clôturer son
compte, le banquier contrôle les informations personnelles du client en question.
Lorsque vous, utilisez votre carte de crédit pour retirer de l’argent dans une banque,
vous vous connectez à une base de données. Au fur et à mesure que l’argent est
retiré, le montant correspondant est déduit du solde de votre compte. Lorsque vous
transférez de l’argent du compte d’épargne au compte courant, la somme est
créditée sur le compte courant et débité du compte d’épargne. 1.4 Environnements des bases
logiquement interdits d’accès aux données Il existe plusieurs environnements possibles d’une bas
· l’environnement informatique Internet
Environnement de mainframe
L’environnement classique des premiers systèmes de bases de données est
l’environnement de mainframe, essentiellement constitué d’un ordinateur central
puissant (main-frame) qui prend en charge de nombreuses connexions d’utilisateurs.
Plusieurs terminaux passifs sont connectés au mainframe et permettent aux
utilisateurs de communiquer avec le superordinateur. Les terminaux sont des
extensions du mainframe, non des ordinateurs indépendants ; ils ne « pensent » pas
par eux-mêmes, mais comptent sur le mainframe pour effectuer tout le traitement.
L’environnement mainframe pose de nombreux problèmes. En particulier, un terminal
passif ne peut communiquer qu’avec l’ordinateur principal. Des tâches, notamment
des processus manuels, l’utilisation d’un traitement de texte, ou un ordinateur
personnel, ne s’interfacent pas toujours avec l’ordinateur principal. La plupart des
entreprises actuelles ont fait migrer leurs systèmes vers l’environnement
client/serveur pour des raisons que nous citerons dans le prochain chapitre
Environnement client/serveur L’environnement client/serveur est probablement le plus larg
serveur. L’application située sur le client transmet à la base des requêtes de données ou des transa
beaucoup de temps.
L’installation et la maintenance d’une application sur un poste client imposent un coût
supplémentaire, mais présentent également de nombreux avantages. En particulier,
grâce à leurs propres ressources (CPU, mémoire, stockage sur disque), les clients
peuvent exécuter une partie du traitement de l’application et décharger d’autant le
serveur qui n’a plus à assumer seul la totalité du travail. Les PC sont donc capables
de « penser » par eux-mêmes et d’exécuter d’autres applications, ce qui rend les
utilisateurs plus productifs. Par exemple, une personne peut être connectée à la
base de données du serveur tout en travaillant sur un document et en lisant un email. La technologie client/serveur résout ainsi de nombreux problèmes inhérents à
l’environnement de mainframe. La figure 1.2 présente l’environnement client/serveur.
Environnement informatique Internet Les environnements informatique Internet et client/serv
l’utilisation de logiciels adaptés supplémentaires. L’une des caractéristiques de l’informatique Intern
le PC de l’utilisateur. Dans l’environnement informatique Internet, la configuration et la maintenance
sens qu’ils nécessitent un serveur, un réseau et un ou plusieurs PC. L’informatique
Internet se distingue toutefois par son ouverture sur Internet. Dans un environnement
client/serveur, l’utilisateur a accès aux ressources disponibles sur l’intranet de
l’entreprise, voire à des bases de données extérieures à l’intranet, mais cela suppose
ATTENTION De nombreuses entreprises ont leurs bases de données sur Internet. Elles doivent
donnée et ceux qui les exploitent etc. Les concepteurs de base de données doivent apprendre à c
prendre
desdonnées
mesuressuivant
de sécurité
draconiennes
pourModeling
empêcher
tout propriétaire
la
base de
la norme
UML (Unified
Language).
UML est le langage stand
d’ordinateur disposant d’une connexion Internet d’accéder à leurs bases de données
sans autorisations. Concrètement, il s’agit d’implémenter des fonctions telles que des
pare-feu et des mécanismes de sécurité pour protéger les données des hackers et
autres utilisateurs malintentionnés. De nombreux organismes qui adoptent l’environnement informa
choisissent une architecture à N niveaux, comparable à l’architecture à un niveau
intermédiaire ou à trois niveaux. Une architecture à trois niveaux compte une couche
client, une couche application et une couche serveur ou base de données. Le "N"
indique le nombre de niveaux nécessaires à l’aboutissement de la transaction ou de
la requête. 1.5 Origine d’une base de données La modélisation d’une activité, qui est à l’orig
à évaluer et à distinguer les tâches quotidiennes d’une activité. è
il faut dialoguer avec les décid
1.6
Règles de gestion
Les règles de gestion indiquent comment les données sont créées, modifiées et
supprimées à l’intérieur d’un organisme. Elles imposent des restrictions et des
limitations sur la façon de gérer les données et détermine la structure de la base de
données ainsi que l’application utilisée pour y accéder. Chaque entreprise possède
ses propres règles et a des besoins de stockage de données qui lui sont propres.
On distingue deux types de règles de gestion :
1. Orientées base de données
2. Orientées application La première affecte la conception logique de la base de données. Elle conc
façon de regrouper les données et de mettre en relation les tables internes de la
base de données. Elles déterminent entre autre la fourchette de validité des valeurs
de données et se concrétisent dans ce cas par des contraintes placées sur les
colonnes La deuxième affecte le fonctionnement de l’application qui sert d’interface entre
l’utilisateur et la base de données. Elles concernent plus particulièrement la façon de
conduire les processus et les méthodes utilisées pour accéder aux données de la
base de données. Processus opérationnels Les processus opérationnels concernent les activit
soit manuellement par le personnel de l’entreprise, soit automatiquement. Les
activités sont exercées, par l’intermédiaire de processus opérationnels. Exemple d’un client qui com
processus opérationnels sont en jeu : · La commande du client est reçue · La disponibilité du prod
conception de la base de données et de l’interface de l’application. 1.7
Informations et donné
afin de satisfaire les besoins d’un organisme et lui permettre de prendre des
décisions commerciales.
Par exemple, les données d’une librairie en ligne sont les titres de livres, les auteurs,
les clients, les commandes, les résumés de livres, les ventes, etc. Les données
diffèrent naturellement d’une entreprise à l’autre.
Toute base de données contient à la fois des données statiques (ou historiques) et
des données dynamiques (ou transactionnelles).
· Les données statiques sont rarement (ou jamais) modifiées après leur saisie
dans la base de données ; elles ne sont consultées qu’en cas de besoin. On
peut s’en servir pour suivre une tendance ou créer des statistiques
commerciales, prendre des décisions.
· Les données dynamiques ou transactionnelles sont fréquemment modifiées
après leur stockage dans la base de données.
La majorité des entreprises ont besoin d’enregistrer des données dynamiques et une
combinaison de données dynamiques ou statiques. C’est le cas d’une librairie en
ligne qui doit modifier un certain nombre de données au fur et à mesure qu’elle traite
les commandes des clients et qui a besoin par ailleurs, d’enregistrer des statistiques
(ex : les catégories de livres les plus vendus en Wallonie ces cinq dernières années).
Entités Une entité est un objet qui représente un groupe ou une catégorie de données d’une
activité. Par exemple, les titres des livres sont une catégorie d’informations tout
comme les auteurs. Les entités servent à modéliser logiquement les données.
Attributs Un attribut est un sous groupe d’informations à l’intérieur d’une entité. Prenons
l’entité titre de livre ; elle possède plusieurs attributs : le titre du livre, l’éditeur,
l’auteur, la date d’édition, etc. Les attributs permettent de ranger des données
spécifiques au sein d’une entité. Eléments constitutifs d’une base de données le schéma d’un
Schéma
Un schéma est tout simplement un groupe d’objets d’une base de données qui sont
apparentés et reliés entre eux. La table constitue l’élément le plus fondamental d’un
schéma de base de données.
D’autres types d’éléments peuvent résider dans un schéma de base de données :
1. des index 2. des contraintes 3. des vues 4. des procédures Trois modèles sont associés à u
1. Le modèle conceptuel (ou logique) : c’est le modèle fondamental
de la base de données, il rend compte des structures
d’organisation qui servent à définir les structures de la base de
données, comme les tables et les contraintes.
2. Le modèle interne (OU physique) concerne le stockage physique
de la base de données ainsi que l’accès aux données, par
exemple à travers les tables et les index. Ce modèle distingue le
modèle de données et les besoins physiques du matériel et du
système d’exploitation. 3. Le modèle externe (ou interface application) concerne le
méthodes d’accès à la base de données utilisées par les
utilisateurs, par exemple les formulaires de saisie de données. II
autorise la création de relations entre l’application de l’utilisateur
et le modèle de données. La figure 1.4 présente un schéma de base de données relationnelle.
T
Généralement, c’est aux tables que font référence les utilisateurs pour accéder aux
données. Une base de données peut être constituée de plusieurs tables reliées entre
elles. La figure 1.5 présente les tables d’un schéma, chacune étant en relation avec
au moins une de ses voisines, voire plusieurs
On y trouve 4 types de tables étudiées : 1. Les tables de données : Elles stockent l’ess
données provenant d’une table de données 4. Les tables de validation : Souvent baptisées table, d
l’entité ; autrement dit, lorsqu’un modèle d’activité est converti en modèle de base de données, les
données 2. Les tables jointes : Elles permettent de créer une liaison entre deux tables
3. Les tables de sous-ensemble : Elles contiennent un sous-ensemble de
chaque ligne de la table. Dans la figure 1.6, chaque colonne de la table Customers
représente une catégorie d’informations.
Lignes Une ligne de données est une collection de valeurs inscrites dans les colonnes
ligne de données d’une table
Types de données Un type de donnée détermine l’ensemble de
traitée comme un caractère, non comme un nombre, d’où l’impossibilité d’effectuer des opérations
successives d’une table, l’ensemble formant un enregistrement unique. Par exemple,
la table des titres des livres d’une librairie qui propose 25.000 ouvrages compte
25.000 enregistrement ou lignes de données. Le nombre de lignes augmente ou
diminue en fonction des ajouts et suppressions de titres. La figure 17 présente une
·
Le type de donnée date et heure permet de stocker des valeurs de date et
d’heure, lesquelles varient selon le système de gestion de base de données
relationnelle utilisé
Intégrité d’une base de données
L’intégrité des données garantit que les données de la base sont exactes, en
d’autres termes qu’elles vérifient des règles d’intégrité exprimées sous la forme de
contraintes sur les colonnes Ces contraintes valident les valeurs des données
placées dans la base de données, garantissent l’absence de données dupliquées ou
le respect des règles de gestion après modification ou ajout de données. Elles
peuvent être implémentées aussi bien an niveau colonne qu’au niveau table.
Quand les tables entretiennent des relations parent/enfant, les valeurs d’une colonne
dépendent des valeurs d’une colonne d’une autre table. L’intégrité référentielle
garantit que les données de tables apparentées sont cohérentes ou synchronisées.
Ces données doivent vérifier des règles exprimées sous la forme de contraintes
référentielles. La représentation de ces contraintes nécessite la définition de clés.
Une clé est une valeur de colonne d’une table ou une combinaison de valeurs de
colonnes, qui permet d’identifier une ligne de cette table ou d’établir une relation
avec une autre table. Il existe deux types de clés : primaires et étrangères
Clés primaires Une clé primaire rend une ligne de données unique dans une table. ElIe sert
généralement à joindre des tables apparentées ou à interdire la saisie
d’enregistrements dupliqués. Par exemple, le numéro de Sécurité sociale d’un
employé est considéré comme la clé primaire idéale car il est unique Clés étrangères Une clé ét
Pour supprimer un auteur de la base de données, on retire en premier lieu toutes les
références à cet auteur dans la table enfant Booklist
ATTENTION : Il faut implémenter les contraintes d’intégrité référentielles avant
l’admission de toute donnée dans la base pour éviter le stockage de données
incohérentes ou sans relation, comme des enregistrements orphelins
(enregistrements enfant sans aucune relation avec des enregistrements parents).
Relations Les bases de données comportent généralement plusieurs tables, dont la plupart
sont en relation les unes avec les autres. Dans les bases de données relationnelles,
les relations sont souvent établies par l’intermédiaire de clés primaires et étrangères.
On répartit les données dans des tables que l’on relie pour réduire la redondance
des données. Le processus de réduction de la redondance de données dans une
base de données relationnelle est baptisé normalisation.
Les trois types de relations entre deux tables sont : · Un à un : Un enregistrement d’une table est
enregistrement d’une autre table · Un à plusieurs : Un enregistrement d’une table peut être en
plusieurs enregistrements d’une autre table · Plusieurs à plusieurs : Un enregistrement d’une
avec un ou plusieurs enregistrements d’une table 2, et un ou plusieurs
enregistrements de la table 2 peuvent être en relation avec un ou plusieurs
enregistrements de la table 1. La Figure 1 9 présente les relations entre les tables d’une base de
relationnelle. Dans le modèle relationnel, les tables parent peuvent avoir plusieurs
tables enfant et les tables enfant plusieurs tables parent. La figure montre deux tables la Table 1 co
plusieurs)
Objets d’une base de données relationnelle
Divers types d’objets participent à une base de données relationnelle, les plus
assurer l’intégrité référentielle (relations des tables parent et enfant). Elles sont créées au niveau
clients, comme un index de livre indique une page donnée. · Les triggers. Un trigger (déclenche
courants étant : · Les tables. Une table sert au stockage d’informations dans une base de
données relationnelle. En d’autres termes, elle contient les données
auxquelles l’utilisateur accède. Elle est constituée de colonnes et de lignes.
Une ligne de données compte une valeur dans chaque colonne de la table.
· Les vues. Une vue est une table virtuelle en ce sens qu’elle ressemble à une
table et fonctionne comme elle. Elle est définie d’après la structure et les
données d’une table. On peut l’interroger et parfois la mettre à jour. · Les contraintes. Une con
précisément à contrôler les données autorisées dans une colonne, et à
Les procédures. une procédure est un programme stocké et exécuté au
niveau de la base de donnée, qui sert essentiellement à gérer les données et
à effectuer des traitements par lots.
Les quatre premiers objets servent à la définition de la base de données, les deux
·
derniers à l’écriture des méthodes d’accès aux données. La représentation logique
des données à partir de ces éléments rend immatériel l’emplacement physique des
données.
Téléchargement