Introduction aux Bases de Données et SGBD
Introduction aux Bases de Données et SGBD
Objectifs et motivation
Appréhender de manière approfondie une base de données (définition et représentation)
Acquérir les concepts d’entité, d’entité type, de relation et de relation type, d’individu et d’instance
Concevoir un modèle entité association : Modèle conceptuel de données (Merise/pu)
Objectifs d’un SGBD
Maitrise du lien entre BD et SGBD
Maitriser les types formulation de requête: Question en langage naturel, expression algébrique de requête
requête sous forme d’arbre, SQL (clauses et prédicats).
Sources bibliographiques
Sites web
https://www.w3schools.com/sql/default.asp
https://www.geeksforgeeks.org/sql-ddl-dml-tcl-dcl/
https://stph.scenari-community.org/idl-bd/7/co/relUC084.html
sql.sh
Ouvrages
-Georges Gardarin, Bases de données, 2003, Eyrolles, (ISBN 978-2-212-11281-8, lire en ligne [archive]), p689
-Serge Miranda, Bases de données : Architectures, modèles relationnels et objets, SQL3, pages 457
-Olivier Hertel, Oracle Administration.
-Oracle, Oracle Education.
-Documentation oracle 11 G, OCP/ OCA.
-Bernard Espinasse, Ingénierie des systèmes d’information
-Hubert Tardieu, Base de données, systèmes et langages
-Jean Patrick Mathéron, Comprendre merise
-Pascal Roques, UML par la pratique, 304
-Laurent De Brauwer et Fien Van Der Hyde, UML2 initiation 269
-M. QUEYSANE, algèbre
PLAN DU COURS
1
Dr APPOH, INP HB, 07 07 930589
LIMINAIRES
I-Système d’information
1-Définitions de concepts afférents
-Système
Par système, il faut entendre un ensemble d’éléments matériels et immatériels mis en interaction
dynamique dont certains peuvent être transformés au moyen de processus ou de mécanismes en vue
d’atteindre un but (Cf Doc Système d’information PREPA détail).
D’autres approches définitionnelles sont :
Par système, on entend un ensemble ordonné et structuré de matériels formant un tout logique.
Un système consiste à un dispositif ou un ensemble d’éléments ayant une fonction déterminée.
Un système est un ensemble d'éléments interagissant entre eux selon un certain nombre de principes
ou de règles.
Un système peut être considéré comme un assemblage d’éléments régi par des lois.
Un système peut être constitué d’un ensemble cohérent de notions (concepts, idées, d’archétypes,
prototypes, paradigmes, spécimens, parangons, modèle, …).
Un système peut s’apparenter à un ensemble de méthodes ou de procédés pour produire un résultat.
Exemples de systèmes
Monde (le monde est un), être, être vivant, être humain, femme, homme, machine, entreprise,
famille, Etat, système expert, ordinateur, vélo, virus, système d’extraction de pétrole, système
de déforestation, astre, astéroïde, comète, grain de sable, goutte de pluie, terre, vent, eau, mer,
feu, sac, feuille, univers, H1N1, grippe, énergie, paramécie, …
Les systèmes ne sont pas classés à la même enseigne. Leur complexité est variable se fondant parfois
sur leur énormité et sur leur taille infiniment petite. D’autres critères difficilement maitrisables par
l’homme, peuvent entrer en jeu dans cette complexité.
Aucun système n’existe sans lien avec un autre (voir support extrait SI). Autrement dit, il n’existe
pas de système isolé véritablement. Les systèmes sont tous liés directement ou indirectement les uns
aux autres. Ils peuvent s’influencer positivement comme négativement. Le monde est un. Il constitue
un tout. Notre univers, le monde y compris, est assimilable à un ensemble de systèmes
interconnectés formant un graphe naturel.
NB
2
Dr APPOH, INP HB, 07 07 930589
g) Le système organise et coordonne : contrôle, dirige, ordonne, oriente, projette, planifie ;
h) Il imagine : crée, invente et innove. Il a des perspectives. Il détient des mécanismes de tolérance
de pannes et de fautes avancés dans l’utilisation de ses produits et services.
i) Il s’auto finalise ou finalise : il tend vers une certaine autonomie ou indépendance (manifestation
du sommet de l’intelligentsia). C’est l’émergence des consciences.
Un exemple de tel système est la NASA (National Aeronautics and Space Administration) : Système
américain sophistiqué au-delà du renseignement (Navigations aérienne et sous-marine
automatiques).
-Donnée
La donnée est la représentation d’une information sous une forme conventionnelle, convenant à une
communication, à une interprétation ou un traitement par l’homme ou par une machine (moyens
informatiques ou non).
La donnée est un fait, une notion, une instruction.
Une donnée est aussi qualifiée d’information élémentaire.
Elle est aussi l’enregistrement dans un code convenu d’une observation, d’un objet ou d’un
phénomène (donnée factuelle, relative au fait), d’une image, d’un son, d’un texte.
-Information
L’information est alors tout le signifiant que l’on attache et que l’on peut déduire d’un ensemble de
données, de certaines associations entre données.
L’information est un support de connaissance, c’est même la connaissance.
D’après Boulding et Lemoigne, c’est aussi tout ce qui forme de manière significative une
représentation imagée de la réalité.
En sommes, par information, il faut entendre des données accompagnées de sens, de sémantique
(données interprétées). Elle peut avoir pour origine des moyens d’expressions humains ou non, être
structurée ou non.
Quelques formes de l’information : écrite, orale, sonore, picturale, olfactive, tactile, gestuelle,
électronique, numérique (digitale), magnétique, ….
Grâce à l’information dans un lange donnée, toute description est possible dans un cadre d’objectivation.
Connaissance
Par connaissance, il faut noter des informations maitrisées, accompagnées donc d’une certaine
maitrise.
On définit la connaissance comme ce qu’on a appris par l’étude, par la pratique ou par l’expérience.
C’est ce qu’on maitrise. La connaissance est mise en évidence par une personne via son expertise.
Les techniques d’apprentissage plus poussées au plan de l’informatique actuel constituent une preuve
de machines intelligentes à même de manipuler des connaissances et d’en produire à des fins
d’intérêts multiples.
Ce niveau technologique du ressort du domaine de l’intelligence artificielle, n’a pas encore atteint la
sagesse humaine en dépit des entrainements des machines.
Sagesse
Par sagesse, il faut comprendre des connaissances accompagnées de discernement.
La sagesse est un état empreint de discernement et de jugement de bon sens. Elle englobe donnée,
information et connaissance. L’émergence de conscience est ici manifeste.
Jusque-là, la sagesse est du ressort de l’homme.
3
Dr APPOH, INP HB, 07 07 930589
NB : Certaines de nos machines logicielles et matérielles sont au stade de connaissances (systèmes
experts, ontologies formelles). L’humanoïde est une machine qui pourrait entamer des étapes ou des
amorces de sagesses rudimentaires.
Infostructure : mot valise à partir des mots information et infrastructure pour traduire le fait que
l’infrastructure du système d’information prime sur l’architecture logicielle ou/et matérielle. Le
système d’information (SI) existe toujours. Ce qui n’est pas le cas du système d’information
informatisé (SII).
L’entreprise est prise comme système de référence pour cet enseignement.
2-Définition de l’entreprise
Une entreprise est un système. Elle se distingue des autres systèmes à travers une définition plus
spécifique. Il en va de même des autres systèmes dans l’optique de les discriminer distinctivement
des uns des autres.
On entend par entreprise, une entité socio économique et juridique regrouppant des moyens humains,
financiers et matériels en vue de la création de biens et de services (richesse partagée).
Par entreprise, on entend, toute entité économique, quelle que soit sa forme juridique, permettant de
rassembler et d’organiser de façon cohérente des ressources autour d’un objet social défini, sous une
direction commune, et sous le contrôle des principaux apporteurs de ressources.
La structure d’une entreprise est la résultante d’un grand nombre de facteurs dont la nature et le
volume des activités, la personnalité des membres, la stratégie retenue, les usages, ainsi que
l’environnement juridique et institutionnel.
Tout système est révélable ou cernable à travers sa description ou dénommable dans une langue
donnée.
3-Rôles de l’information en entreprise
Trois rôles principaux sont assignés à l’information véhiculée et utilisée au sein d’une entreprise :
Outil de communication interne, outil de communication externe, facteur de cohésion.
Comme outil de communication interne, l’information nous permet de répondre aux nécessités de
gestion (définition des objectifs, des activités et leur répartition) et aux obligations légales
(convention collective, droit et devoir des parties composantes de l’entreprise, type de langage à
tenir, respect mutuel).
Grâce à l’information, en tant qu’outil de communication externe, il est possible également de
répondre aux nécessités de gestion (définition des objectifs, des activités et leur répartition entre
partenaires) et aux obligations légales (convention et règlémentation avec l’état et les partenaires).
L’information joue un rôle de facteur de cohésion sociale. A ce titre, par l’information, nous
disposons de capacité de savoir faire et de management dans une communauté sociétale.
L’information est également managée, afin de permettre à tout le monde d’être intéressé et de
participer à l’atteinte de l’objectif commun (Tirer vers le haut et non vers le bas avec des critiques
constructives du fait de la participation active motivée, soutenue et à volonté, intégration des
individus, tendances véhiculées, éthique et moralité sociétales). Une bonne gestion de l’information
par l’information permet de disposer d’un environnement paisible et propice aux activités, aux
affaires, à la sécurité des biens et des personnes (aller et venir).
4-Système d’information
4.1-Définition
Un système d’information est l’ensemble de toutes les informations, quelles qu’en soient l’origine et
la forme, qui circulent au sein de l’entreprise et les moyens mis en œuvre pour les gérer.
4.2-Finalités
On note trois finalités des systèmes d’informations
4
Dr APPOH, INP HB, 07 07 930589
- aider à la prise de décision de qualité ;
- coordonner l’ensemble des activités pour plus de synergie d’actions ;
- contrôler l’évolution du système.
4.3 -Rôles
On note quatre rôles assignés au système d’information quel qu’en soit son état (manuel,
ou semi-mécanisé (semi-manuel), informatisé ou automatisé. Ce sont :
- recueillir ;
- traiter et exploiter ;
- mémorise ;
- diffuser.
4.4-Quelques typologies des systèmes d’information :
-SI selon le degré de formalisation des moyens
- SI formel ;
- SI informel.
- SI selon le niveau de décision
- S.I de planification stratégique ;
- S.I de planification tactique ;
- S.I de planification opérationnelle .
- SI selon le nombre d’utilisateurs
- S.I personnel ou utilisateur ;
- S.I collectif ;
- S.I interentreprises.
-Si selon le degré d’informatisation ou d’automatisation des tâches
- S.I manuel ;
- S.I mécanisé (semi-mécanisé) ;
- S.I automatisé .
Trois grandes époques sont très significatives dans la révolution liée au développement socio-
économique mondial.
-Révolution agricole ;
- Révolution industrielle avec la découverte de l’énergie de transformation et de production ;
- Révolution des technologies de l’information et de la communication marquée par trois grandes
tendances :
o informatique à architecture centralisée (1945-1980)
o informatique à architecture distribuée (1980-1995
o informatique à architecture répartie depuis l’Internet (NTIC devenues TIC).
NB : Le système d’information préexiste à tout système d’information informatisé. Il existe
concomitamment à tout système d’information informatisé. Il continue d’exister à l’état
d’obsolescence ou de disparition du même système d’information informatisé.
II-Système d’informatique
1-Définition de l’informatique
L’informatique est la science du traitement automatique et rationnel de l’information au moyen de
l’ordinateur.
2-Définition de système informatique
Par système informatique, il comprendre un ensemble de ressources informatiques constitutives du
matériel (hardware) et du logiciel (software).
5
Dr APPOH, INP HB, 07 07 930589
3-Aperçu du matériel
Unité centrale
Processeur MC
UC :Unité de commande RAM : Mémoire de
(contrôle) travail
BUS
ROM : Mémoire non
UAL : volatile
Unité arithmétique et
logique
Interface E/S
Sorties : écran, imprimante Entrées : souris, clavier E/S : disque dur, disquette, Pen drive
Les technologies VLSI1 (Very Large Scale Integrator) et ULSI2 (Ultra Large Scale Integrator) sont
les supports pour la miniaturisation du matériel informatique et électronique. Elles constituent un
rempart dans l’approche de construction du matériel.
D’un point de vue logiciel, on a la vision centrée utilisateur accouplée celle de la modularisation, de
la factorisation des programmes de sorte à en faciliter la commutation de contexte, le système
d’appel (appelant/appelé) transactionnel tant pour les SE et que pour les SGBD, ou tout autre logiciel
d’une certaine complexité.
Autres éléments de l’unité centrale : Carte mère, carte son, carte vidéo, carte tv, carte réseau,
Boite d’alimentation, horloge
Le moniteur est en train de devenir inéluctablement un accessoire d’entrée sortie.
4-Cohabitation et agencement des composantes matérielle et logicielle.
1
VLSI : very large scale integrator
2
ULSI : Ultra large scale integrator
6
Dr APPOH, INP HB, 07 07 930589
Le sigle BIOS est Basic Input Output System; UEFI signifie Unified Extensible Firmware
Interface. L’UEFI est très récente en remplacement du BIOS. Cette interface est justifiée par
les limites de gestion par le BIOS, des capacités (volumes ou tailles) de la mémoire de
travail (RAM) et de disque dur sans cesse croissantes. Par exemple pour les disques durs, on
a leur taille plus grande comptant dans l’ordre de plus du TO (PO, EO, ...), avec des
technologies nouvelles de disque dur.
Le SE a trois rôles fondamentaux :
- machine abstraite (interface HM) pour masquer les aspects fastidieux de la machine
(ordinateur), offrir un environnement convivial et attractif de travail. C'est-à-dire il
décharge l’utilisateur des programmes complexes de l’ordinateur.
- gestionnaire des ressources matérielles et logicielles : il assiste le microprocesseur
dans l’accomplissement de sa tâche.
- socle du développement et de l’utilisation des logiciels.
Le deuxième rôle du SE est plus englobant et plus prédominant.
On a l’évolution de l’architecture du système informatique marquée par trois grandes
époques successives : centralisée, distribuée (terminaux en communication avec un élément
central serveur), répartie (du client / serveur à l’architecture n-tiers).
Depuis le système client-serveur (autour des années 1990), trois types de réseaux en fusion
de laquelle résulte le réseau multimédia (Internet) avec des LS (lignes spécialisées
d’autoroutes de l’information. Ces trois types de réseau en nette fusion sont :
-réseau informatique ;
-télécommunication ;
-télédiffusion (câblo-opérateur ou réseau audiovisuel).
Internet avec sa pile de protocoles (TCP/IP : Transmission Control Protocol/Internet
Protocol) en est le point de convergence de ces trois réseaux classiques. Cette pile de
protocoles TCP/IP en est l’élément révolutionnaire principal. C’est donc par l’IP, que l’on a
établi la transmission sur le même signal (canal), des données texte, image, voix et vidéo. Il
est apparu le concept de multimédia et de NTIC devenues TIC.
En 2022, on a actuellement une parfaite intégration du système satellitaire (5G) non
totalement encore déployée, un autre point de cette révolution technologique de la société de
l’information. Avec la 5G, on devra s’attendre à une dimension nouvelle de l’extension en
nombre de services Internet.
7
Dr APPOH, INP HB, 07 07 930589
INTRODUCTION AUX BASE DE DONNEES ET SYSTEME DE GESTION
DES BASES DE DONNEES (SGBD)
D’une économie industrielle où prévalaient les matières premières et les ressources physiques, on
passe à une économie informationnelle. L’information, fondement de toute décision doit désormais
être traitée comme une ressource à part entière, c'est-à-dire gérée, contrôlée et organisée.
Depuis plus d’une trentaine d’années, un secteur quaternaire est quasiment né : celui des travailleurs
de l’information avec un rôle transversal pour tous les secteurs d’activités et qui s’inscrit dans une
dynamique double:
- l’accroissement de la complexité technique et organisationnel d’une part et d’autre part la fusion
entre le monde informatique et le monde manageriel.
- la réduction historique du temps décisionnel, depuis le rythme des saisons, les périodes lunaires,
les heures de clochers, les secondes de l’électronique jusqu’aux nanosecondes de l’informatique
transistorisée, par la maîtrise des systèmes de gestion des bases de données (SGBD) voire des
entrepôts de données (DataWarehouse), machine Learning et du big data ces dernières années.
Les bases de données (BD) ou data bases (DB), aujourd’hui, ont pris une place essentielle dans les
systèmes informatiques et plus singulièrement en gestion. Elles représentent le creuset des efforts
conjoints issus des Systèmes d’exploitation (SE), de l’intelligence artificielle, des systèmes repartis,
du multimédia, etc.
Elles sont actuellement au cœur du système d’information des entreprises. Elles sont pilotées par les
SGBD (e.g : Microsoft Access, Oracle, DB2, MySql, ...).
Les SGBD initialement disponibles sur les mainframes peuvent maintenant être installés sur tous les
types d’ordinateurs (PC, MAC, ...).
Avant l’arrivée des bases de données, on utilisait des données organisées en fichiers fortement
dépendant des traitements avec un manque de flexibilité.
8
Dr APPOH, INP HB, 07 07 930589
-de déperdition (perte) de stockage, car une même donnée pouvant appartenir à plusieurs
applications.
Les données existantes ne peuvent donc pas être exploitées efficacement. Une analyse croisée de
manière dynamique et automatique relève d’un long parcours sans forcément permettre d’obtenir
instantanément les bonnes informations en raison de leurs mises à jour isolées et non partagées.
9
Dr APPOH, INP HB, 07 07 930589
Comptabilité Affectation Réservation
Base de Données
2-Avantages de l’approche BD
L’approche base de données a quatre principaux avantages. Ce sont :
- intégration et corrélation (cohérence des données, autrement dit correspondance entre données
stockées et données réelles, centralisation des contrôles associés) ;
- flexibilité et indépendance (logique et physique) ;
- disponibilité et partageabilité (temps de réponse court, utilisation simultanée transparente aux
utilisateurs, accessibilité) ;
- sécurité et fiabilité accrues (protéger l’unique réservoir (BD) contre tout accès invalide et illégal,
mise en œuvre de l’intégrité, l’authentification, la confidentialité, la non répudiation, la tolérance
de pannes) ;
NB : Ici, on note un couplage faible entre base de données et traitements applicatifs inhérents à cette
base de données contrairement à l’approche ancienne de système de fichiers.
3- Concepts de base relatifs au SGBD
-Lien entre SGBD et BD
Un SGBD (DBMS) est l’outil qui permet de piloter les bases de données au plan des contenants
structurels que des contenus (données à proprement dit). Il permet à un utilisateur de communiquer
avec une BD pour :
-décrire, spécifier et organiser les données sur les mémoires secondaires (définir et modifier au
niveau structurel) ;
-Manipuler les données (au niveau des contenus, rechercher, calculer, sélectionner, modifier, …).
Pour exemple : Notons qu’à l’instar de ce qu’est le Shell pour les systèmes d’exploitation (Microsoft
Windows, Unix solaris, Linux, MacOs, ..), nous avons le langage de requête SQL (Structured Query
Language) pour tout SGBD pilotant une ou des BD. Plus qu’un langage d’interrogation, le SQL
permet d’interagir autant sur les données que les structures de ces données (contenant de ces
données).
SQL
Structures (contenants) : Données (contenus) :
LDD : langage de définition des données LMD langage de manipulation des données
create insert
alter update
drop delete
describe (ou desc) Select ... from ...where
Show schemas
10
Dr APPOH, INP HB, 07 07 930589
Aperçu de l’usage de desc et de select dans MySQL (MariaDB) en modes console et
graphique
Figure 3 : Apeçu 1 des ordres sql desc et select (Mysql) en mode shell (console) et
graphique
11
Dr APPOH, INP HB, 07 07 930589
Un aperçu rapide du modèle entité-association (entité-relation)
Le schéma est aussi utilisé pour présenté le modèle logique de données MLD. C’est le
MLD algébrique présenté comme suit :
Au niveau logique, Ville et Pays sont dits des relations. Suite à la transformation du MLD en
MPD (base de données sur disque dur), Pays et Ville sont dits des tables.
12
Dr APPOH, INP HB, 07 07 930589
Figure 5 : requête multitables en mode graphique
En mode console
Un SGBD donne la possibilité à l’utilisateur de manipuler les représentations abstraites des données
indépendamment de leurs organisations et de leurs implantations sur des supports physiques.
Un SGBD peut être considéré comme un interpréteur de langage de programmation de haut
niveau qui, dans le cas idéal, permet à l’utilisateur de décrire précisément ce qu’il veut
obtenir et comment l’obtenir.
-Définition de Base de données (Data base)
Il suit ici cinq définitions toutes équivalentes du concept de base de données (BD).
De façon formelle, une BD est une collection de données centralisée ou non, organisée de façon
cohérente, servant pour les besoins d’un ou de plusieurs utilisateurs.
Une BD un ensemble de données organisé de manière cohérente modélisant les objets d’une partie
du monde réel et devant servir de support à des applications informatiques.
Elle sous entend un type de données modélisant une partie du système d’information de l’entreprise.
13
Dr APPOH, INP HB, 07 07 930589
C’est aussi un ensemble de données structuré, organisé de même manière cohérente et interrogeable.
On appelle aussi base de données, l’ensemble de données informatiques associées à un schéma de
données et physiquement stockées en mémoire.
Remarque
Une demarche de conception de base de données doit conduire à la definition de données
permanentes nécessaires aux besoins d’un ensemble d’utilisateurs. Cette base de données est relative
à un domaine d’activités, de gestion et de contrôle auquel, elle doit contribuer ou même parfois
qu’elle doit permettre d’automatiser. Un tel domaine, dit domaine d’application de gestion, pourrait
être (ou désigner) une bibliothéque, un service du personnel, le département marketing d’une
entreprise, la prodution de l’énergie, un Système d’information géographique (SIG), le traitement des
infractions du code de la route, gestion des concours et examens, …
Fondement et appui mathématiques des BD : notion de classe
Une base de données, de par sa construction, fait appel ou prend ses racines dans l’algèbre des
ensembles (algèbre ensembliste des mathématiques). Il s’appuie sur la notion algébrique de classe
d’équivalence.
En outre, l’entendement fait du concept de classe se rapporte à celui de classe d’équivalence en
mathématique précisément en algèbre ensembliste.
Trois définitions de classes toutes équivalentes sont données dans ce qui suit.
-Une classe sous-tend un ensemble d’individus partageant des propriétés communes.
-Une classe est un ensemble d'êtres ou d'objets réunis en raison des traits qui leur sont communs
(https://www.cnrtl.fr).
-Par classe ou entité type, il faut comprendre un ensemble d’objets en relation du fait de partager des
propriétés communes.
Un petit tour d’horizon en mathématiques consolide et corrobore ces déclarations. Communément,
en algèbre ensembliste, on note Ā, la classe de A. Etant donné un domaine de discours E (page 12),
alors, il convient de noter la définition de Ā comme suit :
Ā = { X ϵ E / A R X } <==> X̅ = Ā. Dès lors, X et A appartiennent à la même classe, X̅ qui est aussi
Ā.
Cette définition mathématique prise pour un des supports pour les bases de données consistant en des
regroupements des constantes, des individus, des occurrences, des étants, des manifestations ou
encore des instances selon qu’ils partagent un lien verbal déterminant. Ce lien est l’observation à la
fois de propriétés (signalétiques) et de comportements communs par des individus.
Ce qui consacre d’ailleurs leur description classificatoire infinie sur la base de liens verbaux dont
celui arrêté souhaité dans une objectivation. Du coup le silence laissé peut-être plus tard revue et
revalorisé.
A R X traduit que A est en relation avec X selon un lien verbal exprimant minimalement qu’il existe
un ensemble de caractéristiques ou de propriétés que partagent bien A et X.
R est réflexive, symétrique et transitive <==> R est une relation d’équivalence (trivial).
Cette notion de classe reste valable pour les types d’entités (ou entités types) des bases de données
des SGBD.
14
Dr APPOH, INP HB, 07 07 930589
Tout ce qui existe, a un nom. Il convient alors de noter l’existence d’une classe universelle. Elle
comprend tout existant.
Dans une classe d’étudiants tous ceux qui ont une grosse tête constitue une classe. Et une telle
classification pour quelle fin, quel intérêt ?
Les admis à un concours forment une liste constitutive d’une classe (type d’entités). Ils partagent la
propriété "être admis".
Un ensemble d’individus décrit par les nom, prénom, titre et contact constituent une classe.
Des personnes possédant un vélo pour aller au champ constitue une classe.
-Définitions de SGBD (DBMS : Data base management system)
Quant aux SGBD, il peut être vu comme un ensemble de logiciels qui prend en charge la
structuration, le stockage, la mise à jour et la maintenance des données.
Il constitue en fait une interface entre la base de données et les utilisateurs et programmes
d’application. Les programmes d’applications sont dits simplement des applications.
Une base de données est unique. Les applications qui l’utilisent sont multiples en raison des
traitements en nombre infinis possible sur une base de données.
En fait, le SGBD peut être aussi perçu comme un ensemble de logiciels systèmes permettant aux
utilisateurs d’insérer, de modifier et de rechercher des données spécifiques dans une grande masse
d’informations.
En résumé, un SGBD être vu comme un outil informatique permettant la sauvegarde,
l’interrogation, la mise en forme des données structurées sur les mémoires secondaires.
Ils se distinguent des SGF par le fait qu’ils permettent la description des données (définition de type,
des formats, de caractéristiques et parfois des opérations de manière séparée de leurs utilisations.
Le SGBD est le logiciel/matériel qui permet de gérer, manipuler et contrôler une BD.
Par gestion d’une BD, on entend création et maintenance de données (schémas, répertoires),
optimisation des performances (prises de statistiques, définition de chemins d’accès rapides,
évaluation de temps de réponses aux questions), maintien de la cohérence des données en cas
d’erreur ou de panne (tolérance de panne) ou de malveillance.
Le SGBD offre une interface utilisateur « non procédurale » qu’on peut illustrer par l’image
suivante : Supposons qu’un individu X arrive dans l’aéroport d’une ville inconnue et souhaite se
rendre à une adresse Y. X choisit de prendre un taxi. Il va donner l’adresse Y au chauffeur et laisser
à ce dernier le soin de trouver le meilleur chemin pour se rendre à la destination désirée dans les
meilleurs délais. Les SGBDR sont de ce type de SGBD.
Exemple de SGBD : DB2, MICROSOFT ACCESS, MICROSOFT SQL Server ORACLE (Leader
dans le domaine des SGBD, Forms builder pour les IHM), Progress, Sybase, Hyperfile de Windev
(dont le langage WLangguage pour la construction des IHM ou interfaces).
Un SGBD est vu comme un ensemble de logiciels qui va permettre de structurer, définir, manipuler
les données de la BD.
Notons que les moteurs des SGBD évoluent dans deux directions complémentaires induites par de
nouvelles niches applicatives des bases de données (besoins des entreprises):
- l’évolutivité (scalabilité) des serveurs avec une croissante en puissance attendue (vitesse en temps
de calcul).
- l’extensibilité des types par les utilisateurs (traduisant de nouveaux besoins).
Cette évolutivité va de pair avec celle :
-du stockage bientôt dans l’ordre de Exa octet (EO) ; (YO > ZO > EO > PO> TO > GO > MO),
-du client de plus en plus léger (téléphone mobile internet, Personnel Digital Assistant (PDA),
Smartphone…).
15
Dr APPOH, INP HB, 07 07 930589
REMARQUE
-Banque de données
Une base de données sous entend un type de données « factuelles » ou « primaires » alors qu’une
banque de données, un type de données « référentielles » ou « secondaires ». L’information n’est pas
directement obtenue après requête comme c’est le cas avec une base de données, mais des références
à cette information nous sont dérivées.
Elle peut inclure ou intégrer des bases de données.
Ex : Moteur de recherche (Google), recherche documentaire.
Les systèmes documentaires ont pour fonction première d’offrir comme information une indirection
sur un texte (dans un livre, un article…) contenant le résultat recherché, alors qu’un SGBD (BD)
fournit directement ce résultat.
Posée à une banque de données de savoir l’état de santé du président des USA Wilson de - - 1914 à
1918 ? Cette date est donnée à la page 52 du livre contemporain Histoire contemporaine des USA
édition 1980.
A une base de données cette réponse serait directe en donnant l’état « fou ».
- Entrepôt de données (Datawarehouse)
Entrepôt de données ou système d’information décisionnel. Il est alimenté en général par des bases
de données dites bases de production. On a la possibilité de produire des données statistiques et
d’élaborer une historisation des données. Il s’agit d’un système ayant pour support des bases de
données (bases de production) pour générer ou dériver d’autres données ou informations à titre
décisionnel (statistique).
-Domaine de discours
C’est la zone plus ou moins délimitée et circonscrite pour la réalisation d’une étude ou d’un projet
(e.g : modernisation de l’état civile par l’informatisation des actes, gestions des plans de vols propres
à un aéroport, gestion d’une scolarité, gestion d’une bibliothèque, gestion des lignes budgétaires,
gestion des ressources humaines, gestions des ventes et caisses).
On y compte des acteurs à mêmes d’être le siège des flux d’informations, des échanges tout
simplement.
Un flux interne concerne deux acteurs internes. Un flux externe concerne un acteur interne et un
acteur externe.
Ce qui se fait entre deux acteurs externes est ignoré par l’étude certes, mais potentiellement est
susceptible de prospectives et de perspectives potentielles.
Le domaine de discours est également appelé univers de discours.
En état d’éccéité (héccéité) des systèmes, nous appelons ces systèmes des entités, et mieux, des
individus. Le fait d’exister d’un individu ou l’existence de tout individu, marque son unicité qu’on se
doit de transposer dans nos modèles et schémas conceptuels comme opérationnels.
16
Dr APPOH, INP HB, 07 07 930589
L’identifiant (clé en devenir) joue alors un rôle important à cet effet, sans toutefois atteindre cette
réalité naturelle (réel perçu), mais qu’on se contentera de simuler.
P.A
terminaux
P.A
SGBD externe
SGBD interne
Gestionnaire de fichiers
M.S
Notice :
P.A : Programme d’application
M.S : Mémoire secondaire
3
ANSI: American National Standard Institute
SPARC : Scalable Processor ARChitecture (Processeur à architecture adaptable et évolutif).
DBTG : Database Task Group, X3 est une division de DBTG .
17
Dr APPOH, INP HB, 07 07 930589
Remarque
Ces couches de fonctions constituent sans nul doute environ la moitié du code d’un SGBD.
En effet, au-delà des fonctions de recherche, de rangement et de présentation, un SGBD gère
des problèmes difficiles de partage, d’accès concurrents (verrouillage et exclusion mutuelle)
et de cohérence des données. Il protège aussi les données contre les accès non autorisées.
Ces fonctions qui peuvent paraîtres secondaires ou annexes sont souvent plus difficiles à
réaliser et nécessitent beaucoup de code.
Pour être complet notons qu’au dessus des SGBD, de plus en plus, aujourd’hui, des ateliers
de génie logiciel permettent de modéliser des ensembles de données en BD et de représenter
les traitements associés à l’aide d’interfaces graphiques et de langage de spécification. Ces
outils d’aide à la conception bien que non intégrés forcément dans le SGBD permettent de
spécifier les descriptions des données.
La puissance de PC et la mémoire à bon marché, l’approche orienté objet favorisent les
SGBD à intégrer des objets beaucoup plus complexes répondant au besoin de nouvelles
applications de types multimédia, web, environnement, télécommunication, audiovisuel, etc.
2- OBJECTIFS D’UN SGBD
Le principal objectif d’un SGBD est d’assurer l’indépendance des programmes aux données,
c’est-à-dire la possibilité de modifier des schémas conceptuels et internes des données sans
modifier les programmes d’application. Lors des modifications des structures logiques et
physiques plus précisément, on distingue l’indépendance physique qui permet de changer les
schémas internes sans changer les programmes et vis versa et l’indépendance logique qui
permet de changer le modèle conceptuel sans modifier les programmes.
Les SGBD conduisent à mettre en commun les données d’une entreprise, ou du moins d’une
application dans une base de données décrite par un dictionnaire de données. Cela ne va sans
poser des problèmes d’efficacité notamment les accès simultanés aux données souvent
situées sur le même disque. La base peut ainsi devenir un goulot d’étranglement.
L’environnement multi usager de gérer les mises à jour concurrentes de sorte à garantir la
cohérence des données. Notamment des données redondantes contrôlées doivent rester
égales.
2.1 Classification des objectifs
Les objectifs d’un SGBD peuvent être classés en deux groupes dont le deuxième pouvant se
déduire du premier.
Le premier comprend les objectifs suivants :
- Indépendance physique des programmes et données ;
- Indépendance logique des programmes aux données ;
- Manipulation des données par des langages non procéduraux (non informaticiens) ;
- Administration facilitée des données.
Le second groupe porte sur des objectifs additionnels à savoir :
- Efficacité des accès aux données ;
- Partageabilité des données ;
- Cohérence des données ;
- Redondance contrôlée des données ;
- Sécurité des données.
18
Dr APPOH, INP HB, 07 07 930589
Quelques précisions sur certains objectifs
-non-redondance des données : saisir et mettre à jour plusieurs fois les mêmes données pour
éviter des MAJ non coordonnées mais contrôlées.
-cohérence des données : vérification des contraintes d’intégrité et de la cohérence de la
base ; les contraintes doivent être exprimées et gérées dans la base et non dans les
applications.
-gestion de la concurrence d’accès aux données : plusieurs personnes ou applications doivent
pouvoir accéder à la base de données en même temps. (Transaction ACID en vue de la
gestion des susceptibilités de conflits d’accès, système de verrouillage d’accès aux données
partagées en surtout modification multi-utilisateur).
-sécurité des données : protection des données contre les accès non autorisés ou mal
intentionné ; il doit exister des mécanismes permettant d’autoriser, contrôler et enlever des
droits d’accès à des utilisateurs ; Il faut tolérer les pannes (système de tolérance des fautes et
des pannes) : capacité à faire passer la base de données d’un état cohérent à un autre état
cohérent même s’il survenait une panne (électrique). Le système doit permettre un temps de
reprise des données et de continuité de service le temps d’une panne.
2.2 Description des neufs (9) objectifs
De manière plus détaillée les neuf objectifs d’un SGBD sont décrits.
2.2.1-Indépendance physique
Il s’agit de l’indépendance des programmes et des données (MCD, MLD, MPD) vis-à-vis
des divers supports de stockage.
Les données élémentaires ou atomiques sont assemblées pour décrire les objets et les
associations entre objets perceptibles dans le monde réel. Bien qu’en général, deux groupes
de travail assemblent différemment ces données, il est possible au sein d’une entreprise bien
organisée de définir une structure canonique des données (modèle conceptuel). C'est-à-dire
un partitionnement en ensembles et sous ensembles ayant des propriétés bien définies et
cohérentes avec les vues particulières. Cet assemblage peut être considéré comme
l’intégration de ces vues. Il obéit à des règles qui traduisent l’essentiel des propriétés des
données du monde réel. Cet assemblage correspond à un schéma conceptuel d’une BD.
Cet objectif va permettre de réaliser l’indépendance des structures de stockage aux structures
de données du monde réel ; c'est-à-dire les schémas interne et conceptuel.
Bien que ces deux schémas décrivent les mêmes données à des niveaux différents, il s’agit
donc de pouvoir modifier le schéma interne sans avoir à modifier le schéma conceptuel en
tenant compte seulement des critères de performance et de flexibilité d’accès.
On pourra par exemple ajouter un index, regrouper deux fichiers en un, changer l’ordre ou le
codage des données sans mettre en cause les entités et associations définies au niveau
conceptuel.
2.2.2-Indépendance logique
D’une manière générale, un ensemble de données peut être vu comme une intégration de
plusieurs centres d’intérêts. Ainsi, il est vu de manière distincte par différents groupes
d’utilisateurs ; toutes ces visions spécifiques des données doivent être intégrées dans une
vision globale. Le schéma conceptuel modélisant les objets et association entre objets du
monde réel résulte d’une synthèse de vues particulières de chaque groupe de travail utilisant
la BD, c’est-à-dire une intégration de schémas externes. En conséquence, chaque groupe de
travail réalisant une application, doit pouvoir assembler différemment les données pour les
19
Dr APPOH, INP HB, 07 07 930589
former les entités et associations de son schéma externe, ou plus simplement des tables qu’il
souhaite visualiser. Ainsi chacun doit pouvoir se concentrer sur les éléments constituant son
centre d’intérêt, c’est-à-dire que chacun doit pouvoir ne reconnaître qu’une partie des
données et ne voir que cette partie.
Il est donc souhaitable de permettre une certaine indépendance des données vues par les
applications à la structure canonique des données de l’entreprise décrite dans le schéma
conceptuel. L’indépendance logique est donc la possibilité de modifier un schéma externe
sans modifier le schéma conceptuel. Cette indépendance est aussi assurée entre les différents
utilisateurs (eux mêmes), chacun percevant une partie de la BD via son schéma externe
selon une structuration voire un modèle particulier.
L’indépendance logique donne les avantages suivants :
- Permettre à chaque groupe de travail de voir les données comme il le souhaite
- Permettre l’évolution de la vue de chaque groupe de travail et de la vue de canonique de
l’ensemble sans remettre en question au moins dans une certaine mesure le schéma
conceptuel de l’ensemble.
- Permettre l’évolution d’un schéma externe sans remettre en cause les autres schémas
externes.
En somme, il doit être possible d’ajouter des attributs, d’en supprimer d’autres ou de
supprimer des entités dans des schémas externes mais aussi dans le schémas conceptuel
(dans une certaine mesure) sans modifier la plus grande partie des applications, d’ajouter et
de supprimer des ensembles d’associations.
2.2.3-Manipulation des données par des non-informaticiens
Les utilisateurs des données, parfois non professionnel de l’informatique doivent pouvoir
manipuler facilement les données, c’est-à-dire les interroger, les mettre à jour sans préciser
les algorithmes d’accès. Plus précisément, si les deux premiers objectifs sont atteints, les
utilisateurs voient les données indépendamment de leur implantation en machine. De ce fait,
ils doivent pouvoir manipuler les données au moyen de langages non procéduraux (en
décrivant les données qu’ils souhaitent retrouver et mettent à jour).
Les langages non procéduraux (SQL) sont basés sur des assertions de logique de premier
ordre. Ils permettent de définir les objets désirés aux moyens de relations entre les objets et
les propriétés de ces objets.
Deux sortes d’utilisateurs manipulent la BD : les utilisateurs interactifs et les programmeurs.
Les utilisateurs interactifs peuvent interroger, mettre à jour la BD. Ils sont parfois non
informaticiens et réclament les langages de commande semi-formels jusqu’aux langages
graphiques en passant par les interrogations par menus ou par formes.
Les programmeurs écrivent des programmes en utilisant des langages de 3e génération ou
dits évolués (C, Ada, Cobol, Fortran, etc.), des langages plus récents, orientés objet (Java,
C++) et des langages de 4e génération (Microsoft Visual Basic, Forte for java, Netbean,
Eclipse, Jcreator, Jbuilder, PL/SQL). Ces derniers regroupent des instructions de
programmation structurées, des expressions arithmétiques et logiques des commandes
d’accès à la BD et des commandes d’édition et d’entrées de messages (menu déroulant,
fenêtres, rapports imprimés, etc. Ils sont de plus en plus orientés objet (pour mieux simuler
la réalité).
Dans tous les cas, il est important que le SGBD fournisse ou intègre des commandes
nécessaires de manipulation de données par une intégration harmonieuse de langages de
programmation pour des fins de traitements d’objet souhaités.
20
Dr APPOH, INP HB, 07 07 930589
2.2.4-Administration facilitée des données
Un SGBD doit fournir des outils pour décrire les données, à la fois au niveau des structures
de stockage et de leur représentation externe. Il doit permettre aussi le suivi de l’adéquation
de ces structures au besoin des applications et autoriser leur évolution aisée ou en douceur.
Les fonctions qui permettent de définir les données et de modifier leurs définitions sont
appelés outils d’administrations des données.
Afin de permettre un contrôle efficace des données, de résoudre les conflits entre divers
points de vue pas toujours cohérents, de pouvoir optimiser les accès aux données, et
l’utilisation des moyens informatiques, on a pensé à centraliser ces fonctions entre les mains
d’un petit groupe de personnel hautement qualifié appelé administrateur de BD. En fait, une
telle centralisation a souvent conduit à des difficultés d’organisation.
L’évolution des SGBD modernes tend alors à fournir des outils permettant de décentraliser
la description des données tout en assurant une cohérence entre les diverses descriptions
partielles. Ainsi, pour aider les concepteurs de BD, un dictionnaire de données dynamique
(méta base) est souhaité. Cette évolution rapide va dans le sens du développement d’outils
(orientés objet et web) intégrés capables de faciliter l’administration des données et
d’assurer la cohérence des descriptions. (Exemple d’outil d’administration du SGBD oracle :
Toad 8).
2.2.5-Efficacité de l’accès aux données
Ces langages (ceux dont on a parlé) doivent permettre d’obtenir des réponses aux
interrogations dans un temps raisonnable. Ils doivent donc être optimisés et aussi avoir un
mécanisme permettant de minimiser le nombre ‘accès disques’. Tout ceci est fait de façon
transparente par (pour) l’utilisateur. Les performances en termes de débit (nombre de
transactions par secondes) et de temps de réponse (temps d’attente moyen pour une requête
type) sont des problèmes clairs des SGBD. L’objectif de débit élevé nécessite un overhead
minimal (répartition générale des tâches) de la gestion des tâches accomplies par le
système. L’objectif de bon temps de réponse implique qu’une requête courte d’un utilisateur
n’attend pas une requête longue d’un autre utilisateur (mais sans abus de traitements courts
ou longs).
Il faut donc partager les ressources (UC, unités d’entrée/sortie) entre les utilisateurs en
optimisant l’utilisation globale et en évitant les pertes de commutation de contexte. Le
goulot d’étranglement essentiel dans un SGBD reste les entrées/sorties(E/S) disques.
Une E/S coûte en effet quelques dizaines de millisecondes. Afin de les éviter ou les
minimiser, on utilisera une gestion de tampon en mémoire centrale dans de véritables
mémoires caches de disque afin qu’un grand nombre d’accès aux données se fasse en
mémoire.
Un autre facteur d’accès limitatif est relatif (ou dû) à l’utilisation des langages non
procéduraux (puissants mais …) afin d’interroger et mettre à jour la BD.
En résumé, un SGBD devra chercher à optimiser une fonction de coût de la forme suivante :
C (Q) = a x UC (Q) + b x E/S (Q) ;
Q étant un ensemble typique de requêtes, E/S (Q) est le nombre d’entrées/sorties, UC (Q) est le
temps UC dépensé. a et b sont les facteurs convertissant respectivement temps UC(Q) et E/S (Q) en
coût.
2.2.6-Redondance contrôlée des données
Dans les systèmes classiques à fichiers non intégrés, chaque application possède ses données
propres. Ceci conduit généralement à de nombreuses duplications de données avec, outre la
21
Dr APPOH, INP HB, 07 07 930589
perte en mémoire secondaire associée, un gâchis important en moyens humains pour saisir et
maintenir à jour plusieurs fois les mêmes données.
Avec une approche BD, les fichiers plus ou moins redondants sont intégrés en un seul
fichier partagé par les applications. Ce qui conduit naturellement à la non duplication
physique des données afin d’éviter les mises à jour multiples.
Avec l’avènement des BD surtout réparties sur plusieurs calculateurs interconnectés (agents,
sites, machines), il est apparu plus souhaitable de faire gérer la base de données par le
système des copies multiples de données (dans une certaine mesure une copie à des nœuds
du réseau réduit la durée d’accès à une page web dynamique par exemple (1ère fois lancée,
arrêt, et 2ème accès plus rapide, DNS, BDR).
Cela optimise les performances en interrogations en évitant les transferts sur le réseau et en
permettant le parallélisme d’accès.
On considère aujourd’hui que la redondance gérée par le SGBD au niveau physique n’est
donc pas forcément mauvaise. Il faudra par contre éviter la redondance anarchique, non
connue du système, qui conduirait les programmes utilisateurs à devoir mettre à jour
plusieurs fois une même donnée. Il s’agit donc de bien contrôler la redondance qui permet
d’optimiser les performances, en la gérant de manière invisible (transparente) pour les
utilisateurs. (RAID5 technologie permet la redondance physique des données pour des
questions de sécurité)
2.2.7-Cohérence des données
Bien que les redondances anarchiques de données soient évitées par l’objectif précédent, les
données vues par l’utilisateur ne sont pas indépendantes. Au niveau des ensembles de
données, il peut exister une certaine dépendance entre données, par exemple une donnée
représentant le nombre de commandes d’un client doit correspondre au nombre de
commandes de (dans) la base. Plus simplement une donnée élémentaire doit respecter un
format et ne peut prendre une valeur quelconque.
Exemple : Un salaire mensuel devant être compris entre 5000 f et 12000 f.
Un SGBD doit donc veiller à ce que les applications respectent ces règles lors des
modifications de données et doit ainsi assurer leur cohérence. Ces règles et bien d’autres
(CIF) doivent implicitement et explicitement suivre les données au cours de leur évolution
sont appelées des contraintes d’intégrité.
En plus, et la base de données et le SGBD doivent demeurer dans des états cohérents suite à
chaque transaction (modification des contenues données et de leur structures, les tables).
22
Dr APPOH, INP HB, 07 07 930589
(Exclusion mutuelle dans les sections critiques, verrouillage/déverrouillage, mutex,
sémaphore, moniteur comme en système d’exploitation et même l’utilisation de message).
2.2.9-Sécurité des données
Cet objectif a deux aspects.
Tout d’abord, les données doivent être protégées contre les accès non autorisés ou mal
intentionnés. Il doit exister des mécanismes donc adéquats pour autoriser, contrôler ou
enlever les droits d’accès pouvant dépendre de la valeur des données ou des accès
précédemment effectuées par les usagers. Par exemple, un employé pourra connaître les
salaires des employés qu’il dirige mais pas celui de ses supérieurs.
D’un autre côté, 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. Un « bon » SGBD doit être capable de
restaurer les données cohérentes après une panne disque, à partir des sauvegardes par
exemple via au recours à la technologie RAID5 (Redundant Array of Inexpensive Disks). A
ce niveau, il est aujourd’hui possible, de prévoir des sauvegardes sur sites distants
(sauvegarde à distance).
Une bonne gestion des transactions est celle devant pouvoir faire passer une BD d’un état
cohérent à un autre état cohérent. Aussi, si une transaction commence (mise à jour d’un
transfert depuis un compte bancaire sur un autre) et est interrompue par une panne pendant
cette mise à jour (même après avoir débité votre compte), le SGBD doit assurer l’intégrité de
la base (la somme d’argent gérée doit rester constante) et par la suite défaire la transaction
qui a échoué (rollback sous oracle).
Une transaction doit être totalement exécutée ou pas du tout. C’est la propriété d’atomicité
de la transaction prise dans un ensemble de propriétés ACID (Atomicité, Cohérence (tout
ou rien), Isolation, Durabilité).
En assurant l’atomicité des transactions, on contribue à garantir l’intégrité physique de la
BD.
Cette sécurité intègre de plus en plus des systèmes cryptographiques et de chiffrement afin
de parvenir à la confidentialité, à l’intégrité des données d’une part et d’autre part à
l’authentification de l’utilisateur et à la non-répudiation. Il est même fait usage d’éléments
plus élaborés de sécurité notamment les signatures et certifications numériques.
[Cryptologie est l’ensemble des techniques afférentes à la cryptographie plus celles
afférentes à la cryptanalyse ; Cryptographie symétrique et Cryptographie asymétrique ; PKI
ou ICP].
23
Dr APPOH, INP HB, 07 07 930589
Ainsi un SGBD peut donc paraître, à la fois comme un ensemble de logiciel système
permettant de stocker et d’interroger un ensemble de fichiers interdépendants et également
de gérer les données d’une entreprise.
Une idée centrale des bases de données est la séparation de la description des données
effectuées par les administrateurs, de la manipulation les données effectuées par les
programmes d’applications ou les user.
La description permet de spécifier les structures et les types de données l’application alors
que la manipulation consiste à effectuer des interrogations et des mises à jour.
1- Niveaux d’abstraction
1.1- Concepts de base pour l’abstraction (Type, instance, modèle et schéma)
La description de données consiste à définir les propriétés d’ensembles de données (bloc,
regroupement, paquet, groupement) modélisés dans la base de données et non pas d’objets
particuliers (occurrences).
Les objets particuliers sont définis par les programmes d’application (manipulation des
données) et ils doivent réunifier (encapsuler) les propriétés des ensembles auxquels ils
appartiennent.
Il convient de noter que le recueil d’informations nécessite de circonscrire le problème,
d’identifier les acteurs et utiliser quelques procédés de recherche (observation, entretien,
écoute, interview, revue documentaire, internet, bibliothèque ….). Déjà un traitement ou
prétraitement a lieu pour constituer la liste des informations pour le MCD, s’entendre sur la
sémantique des termes conceptuels relatifs au domaine étudié, avant de voir même les
intérêts spécifiques des utilisateurs devant constituer un second groupe de traitements (celui
souvent modélisé).
Deux notions essentielles se dégagent par la définition des objets : type et instance.
-Type d’objet : il permet de spécifier les propriétés communes à un ensemble d’objets en
termes de structure de données visibles et d’opérations d’accès. Le type d’objets est un
ensemble des objets possédant des caractéristiques similaires ou partageant des propriétés
communes et manipulables par des opérations identiques.
-Instance d’objet ou instanciation ou occurrence : elle correspond à un objet particulier
identifiable parmi les objets d’un type (aussi appelée individu ou population).
La description d’un ensemble de données particulières correspondant par exemple à une
application donne naissance à un schéma de données.
On distingue généralement le schéma source spécifié par les administrateurs de données et le
schéma objet résultant de la compilation du précédent par une machine. Le schéma objet est
directement utilisable (intelligible) par le SGBD afin de retrouver, de vérifier les propriétés
des instances d’objets (qui seront) manipulées par les programmes d’application.
Modèle : un modèle est une abstraction de la réalité. Il comprend les éléments pertinents de
cette réalité décrits ou à décrire.
Schéma : C’est la description au moyen d’un langage déterminé, d’un ensemble de données
particulières.
On retient que pour une base de données particulière, il existe un seul schéma interne et un
seul schéma conceptuel. En revanche, il existe plusieurs schémas externes.
24
Dr APPOH, INP HB, 07 07 930589
Schéma conceptuel (Modèle conceptuel) : c’est la description des représentations
annonçant la machine (ordinateur), correspondant à une vue canonique globale d’une
entreprise ou d’une partie de l’entreprise en termes de type d’objets à associer.
Modèle de données : Il doit être perçu comme un ensemble de structures et de données avec
un ensemble d’opérations définies dessus et des mécanismes de contrôles associés
correspondant respectivement aux termes Définition, Manipulation, Contrôle.
NB : Modèle de description des données (data description model) : c’est l’ensemble des
concepts et de règles permettant de décrire les données y compris le formalisme ou
simplement leur représentation.
Le langage de description des données (data description language), c’est le langage
supportant un modèle et permettant de décrire les données d’une base d’une manière
assimilable par une machine.
Remarque
a- Le schéma est considéré comme un modèle plus opérationnel, pragmatique. Le schéma
peut être dérivé du modèle.
b-Approche descendante ou ascendante de définition d’un schéma conceptuel
Le modèle conceptuel de données permet le passage d’un concret inaccessible (l’univers
réel) à un abstrait manipulable : schéma conceptuel.
➢ Approche descendante de la conception d’un schéma conceptuel selon l’architecture
de l’ANSI/X3/ SPARC
Cette approche consiste à :
-établir le schéma conceptuel comme corrélation aussi fidèle que possible à l’entreprise ;
-puis à dériver les schémas externes orientés utilisation et les schémas internes orientés
performance d’implantation machine.
➢ Approche ascendante de la conception d’un schéma conceptuel selon Chen
Cette approche consiste à :
-définir d’abord les schémas externes pour coller au mieux les besoins utilisateurs, puis on
dérive successivement les schémas conceptuels et internes. Les problèmes inhérents à cette
pratique sont :
-difficulté de la définition d’un consensus entre les schémas externes ;
-absence de perception formelle et cohérente de l’entreprise prise dans sa globalité etc.
Au vu de la complexité du système à décrire et des difficultés de l’approche ascendante, on
est amené à retenir l’approche descendante qui est beaucoup plus naturelle dans son
appréhension du réel. En effet la conception d’une base de données (SGBD) devra suivre les
quatre étapes suivantes :
25
Dr APPOH, INP HB, 07 07 930589
-expression de la sémantique de la représentation du monde réel (niveau d’abstraction
conduisant à la définition du schéma conceptuel) par des données et les liens entre ces
données ;
-traduction du schéma conceptuel dan un modèle de données existant (hiérarchique, en
réseau, relationnel, objet..) ;
-expression de l’utilisation (définition des vues, des accès logique et chemins…) ;
-expression de l’implantation en machine (choix des méthodes d’accès, des chemins
d’accès..) permettant d’assurer de bonnes performances d’exploitation). P37ab
-Stabilité et flexibilité : Il doit être stable car devant apporter une solution durable à une
problématique donnée. L’ajout d’une nouvelle donnée ou d’une nouvelle règle sémantique
ne doit pas entraîner une modification sensible du schéma. Seul un changement de
l’univers réel doit entraîner une mutation du modèle (schéma) et ceci sans effet de bord :
réorganisation d’autres entités que celles concernées par le changement. Les fondamentaux
demeurent donc. Le meilleur modèle est flexible et évolutif, car ses fondamentaux
contiennent les éléments de son changement et de son adaptation au contexte dynamique
sans disparaître totalement. Dans toute modélisation, il convient de veiller à atteindre un
niveau (d’abstraction) d’invariabilité suffisant de sorte à garantir la stabilité au modèle
- Simplicité :
Cette propriété revêt deux aspects: la facilité de compréhension (entre pair de même
domaine) et celle d’utilisation.
- facilité de compréhension est relative à la conception du modèle. L’agrégation des
données constituant le schéma doit être partagé par les pairs du même domaine. Toute
symétrie existant dans l’univers doit apparaître.
-facilité d’utilisation porte sur le nombre réduit de primitives de manipulations
pouvant être masquées. Ces primitives doivent être puissantes pour pouvoir exprimer
des requêtes même complexes.
-Base formelle : la définition du schéma conceptuel ou modèle conceptuel doit s’appuyer
sur une base rigoureuse, mathématique si possible, pour éviter toute ambiguïté
d’interprétation et permettre une vérification formelle (complétude). Plus le modèle est
formel, plus le schéma conceptuel correspondant sera fiable, stable, durable et viable.
1.2) Trois (3) niveaux d’abstraction : conceptuel, interne, externe
26
Dr APPOH, INP HB, 07 07 930589
a-Niveau conceptuel
Il est le niveau central. C’est le dépositaire de la sémantique de la base des données. Ce
niveau représente l’abstraction aussi fidèle que possible de l’univers modélisé (univers du
discours). Il correspond à la structure canonique des données qui existent dans l’entreprise.
C'est-à-dire, leur structure sémantique inhérente sans soucis d’implantation en machine et
représentant la vue intégrée de tous les traitements (de tous les utilisateurs des applications).
Il sert de référence globale aux vues particulières des schémas externes.
La définition du schéma conceptuel d’une application n’est pas un travail évident, cela
nécessite un accord sur les concepts de base qui modélise les données.
Le schéma conceptuel permet donc de définir :
- les types élémentaires qui définissent les propriétés élémentaires de l’information dans
l’entreprise ;
- les types de données composés qui permettent de regrouper les propriétés afin de décrire
les objets du monde réel ou les relations entre ces objets ;
- les types de données composés qui permettent de regrouper les propriétés (attributs) afin
de décrire les associations du monde réel.
- Eventuellement les règles que devront observer les données au cours de leur vie dans
l’entreprise, ce sont les règles de gestion.
Le schéma conceptuel est défini en dehors de tout contexte informatique. Le schéma logique
global est la traduction du schéma conceptuel par un modèle existant (hiérarchique, en
réseau, relationnel, objet ….). (Schémas logique interne + logique externe). P45.
b- Niveau externe
Chaque groupe de travail utilisant des données possède une description des données perçues
appelée schéma externe. Cette description est effectuée selon la manière dont le groupe voit
la base via ce programme d’application. Ce niveau logique comprend les vues spécifiques
définies pour la manipulation des données. Les besoins en données des utilisateurs sont ainsi
exprimés à ce niveau à travers plusieurs schémas externes.
Autrement dit, une vue externe représente, d’une manière aussi fidèle que possible un type
d’utilisation de la BD. C’est à ce niveau qu’agit l’utilisateur. Ses actions peuvent être de
plusieurs types; un programme posant des requêtes ad hoc ou non et un autre posant des
requêtes paramétrées ou non.
Alors qu’au niveau conceptuel et interne les schémas décrivent une BD, au niveau externe, ils
décrivent simplement la partie des données ayant simplement un intérêt pour un utilisateur ou
un groupe d’utilisateurs.
En conséquence, un schéma externe est aussi qualifié de vue externe. Le modèle externe
utilisé est dépendant du modèle du langage de manipulation de la BD utilisé. Notons que la
notion de schéma externe permet d’assurer une certaine sécurité des données décrites dans
son schéma externe. Les autres données sont ainsi protégées des accès non autorisés, et
surtout des utilisateurs mal intentionnés.
Certaines vues peuvent ne pas être construites mais déduites par calcul (ce niveau externe ci
est abstrait ; production de statistiques).
27
Dr APPOH, INP HB, 07 07 930589
L’ensemble des données est une vue intégrée de l’ensemble des traitements.(vue
intégratrice)
c-Niveau interne
Il correspond à la structure de stockage supportant les données. La définition du schéma
interne nécessite au préalable le choix d’un SGBD (Oracle, Microsoft Access, Progress,
Sybase, DB2, Informix, Mysql, Microsoft SQLServer …). Elle permet de décrire les
données telles quelles sont stockées dans la machine :
- les fichiers qui les contiennent (nom ou identificateur, organisation, localisation)
- les articles de ces fichiers (langage, champ composant,…)
- les chemins d’accès à ces articles (table, index, chainage,…) (téléchargement inachevé
d’un fichier d’une séquence vidéo donnera l’image mais pas l’entièreté des du film vidéo)
Ce niveau correspond à la représentation en machine aussi efficace que possible du schéma
conceptuel. (L’efficacité doit tenir compte d’une part des contraignantes d’implantation et
d’autre part des critères d’utilisation)
28
Dr APPOH, INP HB, 07 07 930589
Schéma Schéma Schéma
Externe 1 Externe 2 Externe n
Schéma Conceptuel
Schéma Interne
BD
29
Dr APPOH, INP HB, 07 07 930589
Tout le processus de conception et mise en place d’une BD.
Plusieurs cas d’implémentation SII sont possibles pour un seul cas de SIO.
PIM/PSM (Platform independent model / Platform specific model).
30
Dr APPOH, INP HB, 07 07 930589
Modèle E/A
Le modèle E/A qui se résume par entité, association, propriété (attribut) permet de modéliser
simplement des situations décrites en langages naturels. Un des mérites essentiels du modèle E/A est
de permettre une représentation graphique élégante des schémas d’une BD. C’est le formalisme.
Modèle de Chen
NB : Certes ces deux modèles sont bons à savoir mais celui de CODD E F. sera retenu dans
ce cours en raison de sa popularité d’utilisation actuelle soutenue par moult AGL (Atelier de
génie logiciel).
Des étudiants doivent recevoir un lot de formations complémentaires. Une formation peut
être suivie par plusieurs étudiants. Un étudiant est tenu de suivre une et une seule formation.
Il est possible qu’une formation ne soit pas concerné par aucun auditeur étudiant.
suivre
Qu’adviendrait le modèle s’il est établi la règle de gestion libellée comme suit : Un étudiant
n’est pas obligé de suivre ce lot de formations complémentaires.
31
Dr APPOH, INP HB, 07 07 930589
Entité type ou Association type ou Occurrence,
Niveau conceptuel Propriété
type d’entité type d’association instance, valeur
Attribut ou
Niveau logique
Relation (quand (couple, triplet,
(modèle Relation Tuple
elle persiste) quadruplet, … n-
relationnel)
uplet)
Niveau physique
(modèle Colonne ou ligne ou
Table Table
opérationnel ou champ enregistrement
modèle opératoire)
-Dictionnaire de données
Il recense et décrit l’ensemble des propriétés qui seront utilisés par les outils de
modélisations pour élaborer le modèle ou schéma conceptuel des données (MCD ou SCD).
Il constitue aussi la liste des entités et leurs attributs en spécifiant le domaine de chacun ainsi
que leurs catégories :
- Données élémentaires (atomiques) ;
- Données d’informations réduites ou calculées ainsi que les règles de calcul ;
- Données calculées de type situation ou historiques (total, taxes, commande/mois) ;
- Les paramètres utilisés dans les cas particuliers.
Document
donnée ou Type
mnémonique Règle de Contrainte
calcul d’intégrité
Pour le recueil des informations et de données, sont utilisés différents procédés de recherche avec une
implication des acteurs à l’échelle. Comme procédés de recherche d’information (acquisition des
données) pour une étude donnée, on a entre autres, l’observation, la revue documentaire, le web de
l’Internet, les interviews des acteurs, enquête et formulaire, sorties et visites de terrain.
Il y a lieu de comprendre les flux d’informations d’un acteur à un autre. Par acteur, il faut entendre un
agent humain ou machine susceptible de mener au moins une des trois (3) tâches notamment recevoir,
traiter et transmettre de l’information dans l’univers du discours circonscrit.
Le commanditaire peut être confronté à la formulation de ses propres besoins. Alors des techniques
d’élicitation peuvent lui être données par les maîtres d’œuvre ou de consultance.
Au terme de ce recueil, un ensemble de données et de règles de gestion sont assorties. Cet ensemble
est soumis aux parties prenantes averties (utilisateur potentiel et porteurs de la conscience du projet en
32
Dr APPOH, INP HB, 07 07 930589
rapport avec les but et objectifs) pour être validé avec un minimum de consensus. Cette activité
parachève l’admission de cette liste de données retenue pour le dictionnaire de données (DD) (hors
SGBD). Certains SGBD comme oracle, dispose nativement d’un DD qui sera enrichi par l’obtention
de la BD en construction.
Inter-compréhension et élicitation
Bien entendu, ces individus...partagent les mêmes caractéristiques. Ils sont tout de même distincts
par leur identifiant en situation presque équivalente en leur état d’eccéité (ou héccéité).
L’élicitation consiste à utiliser des moyens de questionnement afin de relever ou ressortir les
problématiques, les objets informationnels tacites ou cachés involontairement chez les utilisateurs ou
experts, aussi potentiels bénéficiaires de l’outil informatique ( Base de données applicative) à
construire.
Dans le DD, il faut noter la possibilité d’y consigner peu de données calculées vu leur importance
pour en rassurer les commanditaires. En revanche en aucun cas, une donnée calculée ne doit figurer
dans le MCD.
Des concepts fondent ceux à comprendre dans l’univers de discours. Nous les explorons
succinctement. Il s’agit des concepts d’intentionnalité et d’extensionalité, puis ceux
d’onomasiologie et de sémasiologie
Deux obédiences notamment deux grands courant de représentation du concept de concept existent.
Il y a celle émanant de F Saussure (sémiologie) et l’autre de Peirce C Sanders (sémiotique).
Sémiotique et sémiologie croisent ou se fondent dans la linguistique (terme oral ou écrit).
Sémiotique et sémiologie signifient chacune l’étude, science ou théorie des signes dans toutes leurs
formes et dans toutes leurs manifestations. C’est l’étude pratique des systèmes signifiants.
signifié/concept Concept/signifié/interprétant
signifiant
signifiant
référent/objet
/representamen
Notre réflexion humaine est parsemée de sémiosis c’est-à-dire d’un continuum d’interprétants
successifs. Effectivement, une personne donnée, est disposée à une pensée permanente allant de
signe en signe (on parle de cognition permanente).
33
Dr APPOH, INP HB, 07 07 930589
Le schéma qui suit en donne une représentation.
Concept/signifié/Interprétant
signifiant
référent
/representamen
/objet
Concept/signifié/Interprétant
signifiant
/representamen référent
/objet
Le terme pour se saisir d’un concept est un mot ou un signifiant (terminologie en linguistique orale et
écrite).
Aucune communication n’est possible sans un minimum d’iconicité, de signe.
Pour tout être pensant à même de réfléchir, il est inné en lui, un graphe de concepts dans le cerveau,
imaginaire, tactile, ou visuel ou tangible.
Il en va de même dans n’importe quel domaine de discours, d’un graphe existentiel des systèmes
représentant des individus inter corrélés directement et indirectement.
Le silence s’invite dans nos modélisations pour ne se préoccuper des objets d’intérêt capital pour
atteindre les objectifs, l’objectif général.
Onomasiologie/ sémasiologie
Obtenir un terme pour désigner des individus ou un concept relève de l’onomasiologie. C’est un acte
d’intentionnalité.
On contraint ainsi des individus dans l’emboîtement canonique et catégoriel. On emboîte ainsi des
individus, des objets ayant une description similaire, dans des classes
Partir d’un terme ou disposant un terme, et chercher à lui donner une signification, un sens, c’est se
forger à lui affecter des occurrences, des individus. Ce processus procède de la sémasiologie. C’est
un acte d’extensionalité.
Definiendum/ definiens
Si un terme (definiendum) est défini, son expression (axiomatique) utilisant d’autres termes est
appelée le definiens.
34
Dr APPOH, INP HB, 07 07 930589
Ce graphe décrit les liens orientés entre les propriétés de toutes les entités concernées par les
activités menées au sein ou en rapport avec le domaine de discours..
...
NB : Si deux attributs sont définis sur le même domaine, alors les comparaisons entre ces
deux attributs (via l’usage de UNION ou JOINTURE) ont un sens.
Si ce n’est pas le cas, ces comparaisons sont absurdes sémantiquement.
-Identifiant :
Un identifiant d’entité est une propriété particulière ou un ensemble de propriétés qui
identifie de manière unique (ou univoque) une instance ou une occurrence d’entité.
Un attribut associe à chaque entité une valeur appartenant à un domaine.
Un domaine est un ensemble de valeurs acceptables par l’attribut considéré.
Un identifiant devient clé au niveau logique. A ce niveau, cette clé désigne plus globalement
un groupe minimum d'attributs qui permet d'identifier de façon univoque un tuple dans une
relation.
Lorsque le nombre d’attributs est supérieur à 1 (un) surtout dans une association transformée
en relation, qui n’a donc pas disparu, alors une telle clé apparait au niveau logique pour une
association non hiérarchique. Cette clé est aussi une superclé (concaténation d’attributs).
-Cardinalité :
Elle est le nombre minimum et celui maximum de fois qu’une instance peut être intéressée
(concernée) dans une association. Elle s’exprime en couple d’entiers naturels (Cmin, Cmax).
Cmin <= Cmax.
3-Concepts dérivés
-Formes d’association et cardinalités
35
Dr APPOH, INP HB, 07 07 930589
Le type d’association caractérise le nombre de liens autorisés entre occurrences ou instances
d’entités. Il sert à distinguer les associations en fonction du nombre d’occurrences et de
classes d’entité qu’elles mettent en jeu. On distingue :
- Les associations binaires. Elle relient 2 entités.
- Les associations n-aires qui relient plus de 2 entités.
- Les associations ternaires qui relient de 3 entités.
Dans de telles associations, on a principalement les couples de cardinalités. On a
principalement trois types de cardinalités que sont (1;1) ou (0 ;1), (1;n) ou (0;n), (n;n).
-Type (1;1) ou 1 à 1
Si à une occurrence d’entité E peut correspondre via l’association A au plus une occurrence
de l’entité F et que, réciproquement à une occurrence de E.
Cmin, cmax
Entité E A
Cardinalité
Le tableau ci-dessous représente les différentes valeurs possibles de Cmin et Cmax et leurs
significations.
Valeurs de Signification
Cmin
0 Il peut exister dans l’entité E une occurrence ei qui ne participe pas à l’association
1 Toute occurrence ei de E participe obligatoirement à l’association A
36
Dr APPOH, INP HB, 07 07 930589
Valeurs de Signification
Cmax
Si une occurrence ei de E participe à l’association A elle ne peut y participer qu’une seule
1
fois
N Si une occurrence ei de E participe à l’association A elle peut y participer plusieurs fois
Souvent la cardinalité minimale est difficile à définir en début d’analyse, il est possible de
mettre en lieu et place de 0 ou 1 le symbole -, en attendant de pouvoir se prononcer.
Remarque
Il est important de fixer les cardinalités avec une extrême rigueur car les valeurs à 1 de Cmin
ou de Cmax peuvent engendrer un système bloquant. En effet ces cardinalités seront
traduites dans la structure de la base de mémorisation des données en contraintes d’intégrité.
Le tableau ci-après fixe les règles de contraintes qui seront appliquées :
HOMME FEMME
époux de
Association réflexive
1,1
0,n
Modèle ER DE Codd F E.
Modèle UP/UML
1 1..n
38
Dr APPOH, INP HB, 07 07 930589
Dans le cadre de UP/UML, 1 peut se noter 0..1 ; 1..n peut se noter n.
39
Dr APPOH, INP HB, 07 07 930589
Base de données et dépendances fonctionnelles
1-Définition de schéma de base de données
● Un schéma de base de données est un ensemble de schémas de relations liés par des
dépendances référentielles : attributs communs ou plus généralement des dépendances
d'inclusion.
● Une base de données est alors un ensemble de relations (extensions) associé au schéma
de base de données et vérifiant ses contraintes d'intégrité.
Un schéma de relation R est défini par un ensemble d'attributs U et noté R(U).
●Une relation r est une instance finie d'un schéma de relation, notée r:R(U).
● Les contraintes d'intégrité sont des expressions logiques qui doivent être satisfaites à
tout instant par une instance de base de données.
Une relation est un ensemble de n-uplets. Par définition, un ensemble n'a pas d'élément en double,
donc chaque n-uplet d'une relation est unique.
Pour identifier les n-uplets de façon unique sans en donner toutes les valeurs et respecter leur unicité
une clé est nécessaire.
Définition
● Groupe d'attributs minimum qui détermine un n-uplet de façon unique.
● Plus formellement :
X clé de R(U) avec X ⊆U ssi ∀ r : R(U), ∀ t1,t2 ∈ r, t1[X]=t2[X] →t1 = t2
40
Dr APPOH, INP HB, 07 07 930589
Propriétés
Toute relation possède au moins une clé dans l'ensemble de ses attributs.
●
Si une relation possède plusieurs clés candidates, on choisit une clé qui sera privilégiée : la clé
primaire. Aucun des attributs d'une clé primaire n'admet de valeur nulle (vide).
Conventions d'écriture mais non obligatoire pour les AGL (atelier de génie logiciel).
● On souligne la clé primaire.
● Les clés candidates sont soulignées en pointillés (souvent omis).
2-Définition de DF
● Principales contraintes d'intégrité formelles dans une BD.
● Une dépendance fonctionnelle (df ou DF) indique une implication vérifiée universellement entre
deux groupes d'attributs A et B : à une valeur pour A correspond toujours la même valeur de B.
● On la note A→ B (signifie que A détermine B). A est appelé "la source" et B, "le but ou la cible"
dans la df.
● Soit R(A, B, C). L'attribut B est dit fonctionnellement dépendant de l'attribut A si étant donné 2 n-
uplets <a1, b1, c1> et <a2, b2, c2> alors si a1 = a2 → b1=b2
● Ou encore, A détermine B si étant donné une valeur de A, il lui correspond une valeur unique de
B.
Remarques importantes
- Une DF est une assertion sur toutes les valeurs possibles (domaine des attributs) et non pas sur les
valeurs actuelles (extension courante de la relation).
Elle caractérise une intention et non pas une extension d'une relation : invariante au cours du temps.
- Les DF doivent être définies à partir d'un schéma de relation.
2a-Utilités des DF
● Vérification que les extensions r d'un schéma R sont conformes au réel perçu.
● Spécifier (modéliser) les contraintes que devront vérifier toutes les relations d'un schéma
relationnel.
● Outil de conception automatique d'un bon schéma relationnel : un AGL (WinDesign, PowerAmc)
ou autre.
Exemple
Soit une relation R exprimant l'emploi du temps d'un lycée construite sur les attributs suivants :
P (professeur), H (heure du cours), S (Salle), C (classe) et M (matière).
La signification d'un n-uplet de cette relation est :
Le professeur P enseigne la matière M à l'heure H dans la salle S à la classe C.
Donnez la liste des dépendances fonctionnelles.
Système de règle d'inférences définit par Armstrong en 1974 :
● Réflexivité : Y X alors (X → Y) (ex. A→A ; AB →A)
● Augmentation : X → Y alors (∀Z, XZ→ YZ ou XZ →Y)
● Transitivité : X → Y et Y → Z alors X →Z
Autres règles déduites des 3 premières qui précèdent. Ce sont Pseudo-transitivité, Union et
décomposition.
41
Dr APPOH, INP HB, 07 07 930589
Pseudo-transitivité : X →Y, WY →Z alors WX →Z
Démonstration
Augmentation à X →Y alors WX→ WY
Transitivité : WX →WY, WY →Z alors WX →Z
Décomposition : X →Y et Z Y alors X →Z
Démonstration
Réflexivité à Z Y alors Y → Z
Transitivité : X → Y, Y →Z alors X →Z
Propriétés des DF :
2c-Clé candidate
Rappel : Toute relation a au moins une clé candidate. Soit une relation R.
si R ne contient qu'un seul attribut,
cet attribut a une valeur distincte pour chaque occurrence et forme alors
l'unique clé candidate de R.
si R contient plusieurs attributs
Soient X et Y deux ensembles non vides disjoints d'attributs de R tels que
X ∪ Y = R.
Si on a X →R Y avec X minimal, alors X est une clé candidate de R (il peut y en
avoir plusieurs).
Si aucun X ne peut être trouvé ainsi, toutes les occurrences de R sont distinctes et
l'unique clé candidate de R est formée de tous ses attributs.
Indication : Pour vérifier que X est minimal, il faut contrôler qu'il n'est pas possible
de prendre un attribut dans X pour le mettre dans Y tout en maintenant X →R Y.
3-Pourquoi normaliser ?
42
Dr APPOH, INP HB, 07 07 930589
o pour limiter les redondances de données ;
o pour limiter les pertes de données ;
o pour limiter les incohérences au sein des données ;
o pour améliorer les performances des traitements.
-Formes normales
Question : Quid des dépendances de parties de clés entre elles ou d’attributs non clé vers une
partie de clé ?
La troisième FN (3FN) est bien insuffisant.
Afin d’éliminer les redondances créées par des dépendances entre parties de clé et celles
éliminées par la 3FN, Boyce et Codd ont introduit la forme normale qui porte leur nom
BCNF.
Une ralation est en BCNF si et seulement si les seules dépendances fonctionnelles
élémentaires sont celles dans lesquelles une clé entière détermine un attribut.
BCNF est une relation respectant la 3FN et dont tous les attributs non-clé (hormis les clés
candidates qui sont neutres et ne doivent pas être considérées) ne sont pas source de
dépendance fonctionnelle.
Cette définition a le mérite d’être simple : pas de dépendance autre que K→A, K étant la clé
et A un attribut non clé.
Il a été montré qu’une relation a une décomposition en BCNF qui est sans perte. Par contre
une décomposition en BCNF ne préserve en général pas les df.
Soit R (k1, k2, x, y) une relation et k1, k2, x et y ses attributs.
R k1, k2 , x, y
43
Dr APPOH, INP HB, 07 07 930589
Le schéma ci-dessus est en 3FN mais pas en BCNF. Car Y détermine k1 une partie de la clé
(k1, k2).
Une telle relation R (k1, k2, x, y) doit être décomposable en R1 (k1, k2 , x) et R2 ( y , k1).
Exemple
Une clé est un ensemble minimal d’attributs qui détermine toutes les autres. Un ensemble
d’attributs qui inclut une clé est appelé superclé (Identifiant minimal).
Une clé choisie parmi les clés candidates pour indexer une base est appelée
une clé naturelle.
Quatrième et cinquième formes normales
La BCNF est bien insuffisante pour éliminer complètement les redondances.
44
Dr APPOH, INP HB, 07 07 930589
Dénormalisation :
Technique consistant à implémenter la jointure de deux relations ou plus à la place des relations
individuelles initiales.
Bien évidemment cela pourrait conduire à des redondances.
Groupement :
Une variante plus performante de la dénormalisation est le groupement, permis dans certains SGBD.
Ce groupement connu sous le nom de placement à proximité est une technique permettant de
regrouper dans une même page ou des pages voisines les tuples de deux tables (ou plus) selon un
critère de jointure.
Partitionnement vertical et horizontal
Partitionnement vertical :
Il consiste à extraire d’une table ou relation via une projection selon les attributs ou champs
ou colonnes. Dans cette projection, il possible que les clés soient répétées
Partitionnement horizontal :
Il consiste au contraire à diviser la table en sous tables de même schéma, chacune conservant
une partie des tuples (selon des critères de restriction)
Plus grand ensemble stationnaire F+ de DF valides obtenu à partir d'un ensemble F initial en
appliquant les propriétés des DF (axiomes d'Armstrong).
La fermeture transitive d'un ensemble de DF est unique. Elle ne dépend pas de l'ordre
d'utilisation des propriétés.
Deux ensembles des DF sont équivalents ssi ils ont la même fermeture transitive F1 ≡ F2
alors F1+ = F2+
45
Dr APPOH, INP HB, 07 07 930589
V- FONCTIONS D’UN SGBD
Un SGBD permet de décrire les données des bases, de les interroger, de les mettre à jour, de
représenter les transactions de données, d’assurer les contrôles d’intégrité, de concurrence
d’accès et de sécurité. Il intègre de plus en plus des fonctions avancées pour la gestion des
procédures et des évènements.
1) Description des données
La description concerne la définition des structures de données et le suivi de leur évolution
et du stockage (volumétrie de la BD).
Un SGBD offre des interfaces pour décrire les données. La définition de différents schémas
est effectuée par les administrateurs de BD (ou par des personnes jouant le rôle
d’administrateurs de données). Dans un SGBD où l’environnement de description de BD
supporte trois niveaux de schémas, on peut définir trois rôles d’administrateur de données ou
simplement trois administrateurs. Cela est conforme à l’approche retenue par le comité
ANSI-SPARC qui ajoute à ces rôles un quatrième d’où :
- L’administrateur d’entreprise ;
- L’administrateur de BD ;
- L’administrateur d’application ;
- Le programme l’application .
-Administrateur d’entreprise
Le porteur de ce rôle est chargé de l’élaboration du schéma conceptuel (description de toutes
les entités et leurs propriétés avec les associations). C’est la vue du concepteur
indépendamment de toute utilisation et de toue implantation machine (disque dur).
-Administrateur de BD (DBA)
L’exécutant de ce rôle est chargé de définir le schéma interne et les règles de
correspondance entre le schéma interne et le schéma conceptuel. Il est le gestionnaire
responsable du bon fonctionnement du SGBD et de la mise en œuvre de la BD.
NB : Le schéma interne est la représentation du schéma conceptuel dans la machine. Ce
schéma interne constitue la vue du système où le niveau global et le niveau conceptuel sont
confondus.
Il a pour rôles essentiels :
-de définir le schéma et les sous schémas
-d’assurer la sécurité des données
-améliorer la disponibilité des données et l’optimisation des requêtes (après analyse des
statistiques d’utilisation, les requêtes ad hoc,...).
De manière plus détaillée on a les tâches suivantes qui incombent au DBA.
46
Dr APPOH, INP HB, 07 07 930589
• Mettre en exploitation et en gestion des serveurs de données en relation avec
l’administrateur système
• Créer des outils spécifiques d’aide à l’exploitation
• Assister les utilisateurs (formation, requête techniques …)
• Être le support technique de second niveau pour l’ensemble des bases de données
• Être le correspondant technique entre les Chefs de projets et l’équipe administration
• Gérer les performances et l’optimisation des ressources
• S’assurer de l’intégralité des bases de données existantes en garantissant la sécurité
physique et logique
• Mettre en œuvre des outils de surveillance
• Utiliser de façon optimale des bases en réglant leurs paramètres
• Veille technologique sur les SGBDR et les progiciels retenus par l’entreprise
• Tester et valider, pour les aspects techniques tous les logiciels et progiciels
• Définir des normes et standards d’utilisation et d’exploitation vers les SGBD
• Organiser, planifier et suivre la réalisation de projet lié aux bases de données
• Réaliser des documents (modèle de donnée, spécifications fonctionnelles et
techniques…)
-Administrateur d’application
L’attributaire de ce rôle est chargé de définir les schémas externes correspondant à la vue de
l’utilisateur ou groupe d’utilisateurs.
Un autre rôle dont il faut tenir compte au niveau applicatif, c’est le programmeur
d’application. Le détenteur d’un tel rôle se consacre aux descriptions spécifiées par
l’administrateur d’application.
NB : Un autre rôle existe celui de l’administrateur système ou réseau, surtout lorsque la
base de données utilise le réseau ou encore dans le cadre d’une base de données répartie.
Remarque
Au regard des trois premiers rôles, il s’ensuit les trois niveaux fonctionnels retenus par le
comité ANSI-SPARC (American National Standard Institute, Scalable Processor
ARChitecture) : le niveau conceptuel, le niveau interne et le niveau externe déjà abordés
(précédemment vus).
2) Recherche de données
Tout SGBD fournit des commandes de recherche des données. Les SGBD modernes offrent
un langage d’interrogation assertionnel permettant de retrouver les données par le contenu,
sans préciser la procédure d’accès. Une commande de recherche permet de retrouver les
données de la base répondant à un critère de qualification (prédicat) plus ou moins
complexe. Une recherche s’exprime à l’aide de requêtes du type suivant :
QUEL: RETRIEVE {liste d’attributs} FROM table WHERE qualification
SQL: SELECT {liste d’attributs} FROM table WHERE qualification
A priori, le SGBD doit offrir un langage complet c’est à dire permettant de poser toutes les
questions possibles sur la BD. Les questions peuvent faire intervenir un grand nombre
d’entités/associations, des calculs, des qualifications.
3) Mise à jour (update, alter)
La conception de mise à jour intègre à la fois l’insertion de données dans la base, la
modification dans données et leur suppression. L’insertion de plusieurs instances d’entités
peut s’effectuer facilement. Par contre, celle des instances d’associations est plus délicate car
47
Dr APPOH, INP HB, 07 07 930589
il faut insérer un enregistrement référençant les entités de la base participant à ces
associations à modifier. Il peut arriver que la modification des données s’effectue par
recherche de données à modifier à l’aide d’une qualification. Aussi, il est possible de
supprimer des tuples.
Il ne faut pas occulter non plus la mise à jour structurelle (alter) sans grande incidence
d’organisation sinon refaire carrément un nouveau projet d’informatisation.
48
Dr APPOH, INP HB, 07 07 930589
Les SGBD traditionnels sont passifs en ce sens qu’ils exécutent les commandes de mise à
jour et de recherche.
Avec les déclencheurs, ils deviennent actifs et sont capables de réagir à des évènements
externes.
Par exemple, la surveillance d’un commerce électronique peut nécessiter le refus de vente à
un client suspect. Une demande de réapprovisionnement en cas de rupture de stock. (Site
web dynamique : sous tendu par une base de données ou des formulaires augmentant
l’interactivité homme machine).
Tous ces évènements peuvent être réalisés par des SGBD avec des déclencheurs appropriés.
Ceci introduit la notion de BD active.
Une BD active permet donc de déplacer le comportement réactif des applications dans le
SGBD.
5-2- Contrôle de l’intégrité des données
On appelle contrainte d’intégrité, toute règle implicite ou explicite que doivent suivre les
données. Ces règles visent à assurer le maintien de la cohérence des données. Pour un SGBD
supportant le modèle entité association, les contraintes possibles sont l’unicité de clé, la
contrainte référentielle (clé secondaire) et la contrainte de données (domaines de variation
ou type) et les cardinalités, les propiétés obligatoires.
Il faut veiller à ce que les valeurs des identifiants primaires soient stables durant le cycle de
vie de l’entité pour en assurer la cohérence.
5-3- Gestion des transactions et sécurité
Elle permet d’assurer qu’un groupe de mise à jour soit totalement exécuté ou pas du tout.
Cette propriété est connue sous le nom d’atomicité des transactions. Elle est garantie par le
SGBD qui connaît l’existence de transaction à l’aide de commandes : Begin-transaction,
End-transaction.
Une transaction est donc un groupe de mises à jour qui fait passer la base d’un état à un
autre. Ces états successifs doivent être cohérents et donc respecter les contraintes d’intégrité.
Cette propriété est connue sous le nom de correction des transactions (correctness,
correction, cohérence).
Lorsqu’une transaction est partiellement exécutée, les données peuvent passer par des états
incohérents transitoires qui seront corrigés par les mises à jour suivantes de la transaction.
(Transaction partiellement exécutée est justifiable par : une requête de mise à jour pas très
bien formulée, mise à jour portant sur un trop grand nombre d’enregistrements, niveau de
répartition des données élevé).
Pendant une période de l’activité, les effets de la transaction ne devront pas être visibles aux
autres transactions. Cette propriété est connue sous le nom d’isolation de la transaction.
L’isolation doit donc être assurée par le SGBD.
Une fois la cohérence établie, elle doit l’être de manière durable. (Conserver la cohérence).
Cette propriété est connue sous le nom de la durabilité de la transaction. Dès qu’une
transaction valide ces modifications, le système doit garantir qu’elles seront conservées en
cas de pannes (panne disque par exemple). (Persistance du système)
En résumé, toutes ces propriétés résumées sous le sigle ACID, doivent être assurées par un
bon SGBD qu’il soit centralisé ou réparti.
Ces propriétés nécessitent deux types de contrôles qui sont intégrés dans les SGBD :
- Contrôle de la concurrence des accès
49
Dr APPOH, INP HB, 07 07 930589
- Résistance aux pannes avec validation et reprise (réflexivité multi niveau)
En plus, il faut rappeler que la sécurité permet d’éviter les accès non autorisés aux données
par des mécanismes de contrôle des droits d’accès (privilèges, rôle), et également de
restaurer les données en cas de pannes ou d’erreurs.
Il est important de noter qu’en matière de sécurité on peut mettre à contribution plusieurs
mécanismes et techniques : outils de supervision du réseau (dude), système RAID5
(redundant array of inexpensive disk), trois sauvegardes de la BD au minimum et souvent
hors site, conseil et formation permanente des utilisateurs, veille technologique.
VI- ARCHITECTURE FONCTIONNELLE D’UN SGBD
1) Architecture à 3 trois niveaux
Selon ANSI/X3/ SPARC-DBTG [voir polycop]. X3 est une division de ANSI.
Le groupe (ou comité) ANSI/X3/SPARC-DBTG a proposé vers 1980, une architecture
intégrant les 3 niveaux de schéma : externe, conceptuel et interne. Bien qu’ancienne, cette
architecture permet de bien comprendre les niveaux de description et de transformation des
données possibles dans un SGBD. En gros, cette architecture s’articule autour du
dictionnaire de données et comporte 2 parties :
- un ensemble de modules (processeurs) permettant d’assurer la description des
données et donc la constitution du dictionnaire de données.
- Une partie permettant d’assurer la manipulation des données c'est à dire
l’interrogation et la mise à jour des bases.
Dans chacune des parties, on trouve les 3 niveaux : interne, conceptuel, externe (voir schéma
architecture de référence). A chacun des trois niveaux correspond un processeur.
Les fonctions des trois processeurs sont les suivantes :
- Le processeur de schéma conceptuel compile le schéma conceptuel et,
dans le cas où il n'y a pas d'erreur, range ce schéma compilé dans le dictionnaire de
données (dictionnaire de données système).
- Le processeur de schéma externe compile les schémas externes et les règles de
correspondance externe à conceptuel et, dans le cas où il n'y a pas d'erreur, range le
schéma compilé et les régies de correspondance dans un dictionnaire de données
(SQL).
- Le processeur de schéma interne a un rôle symétrique (semblable et opposé) au
processeur de schéma externe.
- Le processeur de transformation externe à conceptuel transforme les manipulations
externes en manipulations conceptuelles et inversement.
- Le processeur de transformation interne à conceptuel traduit les manipulations
internes en manipulations conceptuelles et inversement.
- Finalement, le processeur de transformation interne à stockage traduit les
manipulations internes en programmes d’accès au système de stockage et délivre les
données stockées en format correspondant au schéma interne.
50
Dr APPOH, INP HB, 07 07 930589
Administrateur
Entreprise
Processeur Processeur
Dictionnaire
Schéma interne de Schéma externe
de données
la BD de la BD
Programme d’application
Système d’E/S (format objet)
Programme d’application
Mémoire disque (format source)
A la place de transformateur on peut mettre correspondance (alors mettre une flèche à sens double).
51
Dr APPOH, INP HB, 07 07 930589
réalise l’analyse syntaxique (conformité à la grammaire) et sémantique (conformité à la vue
référencée ou au schéma) de la requête. Celle-ci est alors traduite en format interne.
-Contrôleur
Une requête en format interne référençant une vue doit tout d’abord être traduite en une ou
plusieurs requêtes référençant les données existant dans la base (schéma). Cette
fonctionnalité est accomplie au niveau du contrôleur de requête ou modificateur de requête.
Elle consiste à changer la requête en remplaçant les références aux objets de la vue par leur
définition en termes d’objets du schéma. C’est aussi au niveau du contrôleur que sont pris en
compte les problèmes de contrôle des droits d’accès (autorisation de lire ou d’écrire un
objet) et du contrôle d’intégrité lors des mises à jour. Le contrôle d’intégrité consiste à
vérifier que la base n’est pas corrompue (polluée) lors des mises à jour c’est à dire que les
règles de cohérence des données restent vérifiées après les mises à jour.
-Optimiseur
L’optimiseur de requêtes est un composant clé des SGBD. Essentiellement, il élabore un
plan d’accès optimisé pour traiter les requêtes. Pour ce faire, il décompose la requête en
opérations d’accès élémentaires (sélection d’index, lecture d’article) et choisit un ordre
d’exécution optimal ou plus proche de l’optimum pour ses opérations. Il choisit aussi les
méthodes d’accès à utiliser. Pour effectuer les meilleurs choix, l’optimiseur s’appuie souvent
sur un modèle de coût qui permet d’évaluer le coût d’un plan d’accès avant son exécution.
Le résultat de l’optimisation peut être sauvegardé par des exécutions multiples ultérieures ou
exécutées directement puis déduite. Pour rappel on a la détermination du coût d’une requête
Q par :
C (Q) = a x UC (Q) + b x E/S (Q) avec Q étant un ensemble typique de requêtes, E/S (Q)
est le nombre d’entrée/sortie, UC (Q) est le temps UC dépensé. a et b sont les facteurs
convertissant respectivement temps UC(Q) et nombre d’E/S (Q) en coût.
-Exécuteur
L’exécuteur de plan a enfin pour rôle d’exécuter le plan d’accès choisi et élaboré par
l’optimiseur. Il s’appuie sur les méthodes d’accès qui permettent d’accéder aux fichiers via
des index et/ou des liens. C’est à ce niveau que sont gérés les problèmes de concurrence
d’accès et d’atomicité de transactions. Les techniques utilisées dépendent de l’architecture
opérationnelle du SGBD qui s’exprime en termes de processus et de tâches
Le schéma suivant donne une illustration succincte de ce qui vient d’être décrit.
52
Dr APPOH, INP HB, 07 07 930589
Schéma de synthèse
Analyse syntaxique
Analyse sémantique
Analyseur Gestion des schémas
3) SGBD opérationnel
Un SGBD au sens opératoire, est un véritable système qui doit fournir les services de base
suivants :
-La gestion des données physiques en mémoire secondaire (la persistance) ; les
fichiers de données doivent rester tels.
-La gestion de la sécurité des données avec contrôle de synchronisation pour les
mises à jour de plusieurs processus concurrents ;
-La gestion des reprises sur pannes (système à tolérance de fautes ou d’erreurs ou de
pannes).
4) Architecture répartie
a-Nouvelle tendance des SGBD
La nouvelle tendance au niveau des SGBD, c’est qu’ils intègrent les outils permettant
d’atteindre l’ensemble des objectifs et deviennent de plus en plus répartis pour intégrer les
fonctionnalités permettant à des applications internet de les utiliser aisément.
Il convient de noter qu’un SGBD offre une interface de description des données qui permet
de documenter le dictionnaire de données. Le compilateur du langage de description des
données gère cette méta base (dictionnaire de données).
Aussi, un SGBD offre une interface de manipulation des données (recherche, mise à jour,…)
qui permet de modifier ou de retrouver des données dans la base. Le compilateur optimiseur
de langage de manipulation gère des plans d’accès optimisés. Ceux-ci sont exécutés par le
processus serveur qui gère aussi la concurrence d’accès et assure la fiabilité des données.
Les requêtes peuvent être émises par des programmes d’applications écrits dans des
langages traditionnels ou par des utilisateurs travaillant en interactivité.
Une BD à architecture répartie est composée de plusieurs serveurs coopérant à la gestion de
BD composée de plusieurs bases gérées par un seul serveur. Mais apparaissant comme des
bases (en environnement Unix) centralisées pour l’utilisateur.
Remarque :
Une BD à architecture répartie, peut être composée de serveurs munis de SGBD différents et
spécialisés. C’est un exemple de BD réparties hétérogènes encore appelés BD fédérées.
53
Dr APPOH, INP HB, 07 07 930589
Exemple : Oracle et Ingres sont des SGBD répartis.
-Infostructures centrées base de données
Une Infostructure est un mot valise contraction de mots information et infrastructure pour
montrer la prééminence de la ressource information et des bases de données dans les
architectures matérielles et logicielles, ou encore la primauté des systèmes d’information sur
le système informatique.
Ces architectures ont évolué au fil du temps depuis les architectures mainframes
propriétaires, vers des architectures internet sans fil en conservant le serveur de base de
données. Celles du futur mettront en jeu les architectures pair à pair (peer to peer
computing). Le tableau suivant décrit cet état de fait.
Epoque 1 : Mainframe Epoque 2: Interface Epoque 3 : Client serveur (voir n-
graphique tiers)
Fiabilité, sécurité, vitesse d’accès En en plus de ce qui précède on a En plus de ce qui précède arrivée de
disque, optimisation des ressources, l’apport de l’autonomie et nouveaux standards, indépendance
performance, coûts interface graphique des traitements, middlewares
Interface (1)
Objets GUI, …
Application (2)
L3G, L4G, …
SGBD (3)
SQL2, SQL3, SQL4
Dans une architecture centralisée (1), (2) et (3) sont sur le même serveur.
Dans une architecture client serveur (1) et (2) sont sur le poste client et (3) sur le serveur.
Dans une architecture Internet généralisée (n-tiers), on a une architecture comme suit :
-le (1) éclaté sur un ou des clients légers (téléphone mobile, PDA) et aussi un serveur
web/portail ;
-le (2) est éclaté sur plusieurs serveurs d’applications ;
-le (3) est éclaté sur plusieurs serveurs de données (BD).
Exemple :
Serveur de base de données : Mysql ;
Serveur web : Appache ;
Serveur d’application : Php ;
Client : internet explorer (browser).
Remarque :
Un SGBD réparti peut mettre en jeu deux cas de figures :
- des SGBD de même type. On parle alors d’architecture en étoile (SQL server, Ingres Star,
MS Access, System R …)
54
Dr APPOH, INP HB, 07 07 930589
- des SGBD hétérogènes suivant le même modèle (oracle, informix, Progess…) ou des
modèles distincts (modèle hiérarchique avec IMS (Integrated Management System), modèle
navigationnel avec IDS II (Integrated Data Store, modèle relationnel avec DB2).
Dans les deux cas (même modèle ou non), l’hétérogénéité peut être étendue au matériel et
aux réseaux.
La gestion des données réparties requiert un coordinateur, qui peut être centralisé ou réparti,
pour assurer :
-le traitement global d’une requête SQL (décomposition en sous requête mono ou multi sites
et optimisation de leur exécution).
-la synchronisation entre requêtes concurrentes et la cohérence globale en cas de pannes
(protocole de terminaison multiphase)
Le traitement global d’une requête sous entend l’existence :
- d’un dictionnaire global (pouvant être centralisé ou distribué) dépositaires de
l’information sur la localisation physique et assurant la transparence pour l’émetteur
de la requête
- d’un traducteur pour accéder à plusieurs SGBD hétérogènes.
Un gestionnaire de ressources doit exister pour permettre et connaître l’état des ressources
utilisées par chacun des traitements.
Les problèmes de conception d’applications réparties et d’interopérabilité hétérogène
(SGBD, OS, Réseau) ne sont pas satisfaits pour mettre en œuvre des architectures
performantes de ce type. Cela ne saurait tarder.
BD de produits
Réseaux de communication
BD géographiques
SITE 4 SITE 5
CLIENT SERVEUR
Cette architecture connaître une évolution en une autre très repartie (n-tiers) de nos jours avec une contexture
web. En occurrence, nous avons l’architecture à contexture web dite trois tiers pour les applications web très
généralisée. On se trouve en présence de l’utilisation de trois serveurs (serveur d’application ou de
présentation, serveur de BD, serveur http ou web). Le client en la matière est le navigateur (browser).
55
Dr APPOH, INP HB, 07 07 930589
Exemple 2 : Googlearth
Service applicatif
Réseau local
Protocole réseau
Serveur BD : Oracle,
Outils de connectabilité Mysql
BD
Avec l’apparition d’internet et du web donc, les architectures C/S ont évolué ves des
architectures à trois strates.
Le client est responsable de la présentation. Il utilise pour cela des web browsers.
Le serveur d’application exécute le code applicatif essentiel.
56
Dr APPOH, INP HB, 07 07 930589
Le serveur de base de données supporte le SGBD et gère éventuellement des procédures
stockées.
Dans l’architecture n-tiers, un client peut invoquer plusieurs serveurs. On parle alors
d’architecture client multiserveur. L’inconvénient mais aussi l’avantage du C/S est de
centraliser des données au niveau du serveur.
L’intervention des machines Datacenter et des cloud augmente les capacités de répartition et
de calcul des BD et bien plus.
57
Dr APPOH, INP HB, 07 07 930589
MODELE RELATIONNEL
I- INTRODUCTION
Le modèle relationnel a été introduit par Edgard F. CODD dans les années 1970 au centre de
recherche IBM à San José.
Il existe en fait trois modèles de données principaux de haut niveau logique et
organisationnel. Les deux premiers principaux modèles d’accès sont le modèle hiérarchique
suivi du modèle réseau (Navigationnel ou CODASYL : Conference On Data System
Language).
Le troisième qui a suivi est le modèle relationnel. La première volonté des dépositaires du
modèle relationnel fut d’être un modèle ensembliste simple supportant des ensembles
d’enregistrements aussi bien au niveau de la description que de la manipulation.
Le modèle relationnel est aujourd’hui à la base de nombreux systèmes et d’architecture
permettant d’accéder depuis une station de travail à des serveurs de données. Le relationnel
a atteint ses objectifs au delà de toute espérance en améliorant de façon significative les
insuffisances des deux précédents modèles.
Il convient de noter que depuis près de 40 ans trois grandes familles de modèles de données
ont été définis en support d’implantation d’une base de données dans un SGBD.
Les modèles informatiques sont en général du ressort des informaticiens. Ici, dans la partie
définition du schéma et dans la partie manipulation des données, on a eu à utiliser le modèle
hiérarchique et le modèle réseau sous le contrôle de DBTG (Data Base Task Group).
Actuellement sont utilisés les modèles suivants :
-Les modèles mathématiques ou relationnels de CODD F ;
-Les modèles à sémantiques hybrides relationnel-objet ;
-Les modèles à sémantiques objets.
NB : Plusieurs systèmes implémentent encore le modèle relationnel De CODD E.F.
Edgar Frank « Ted » Codd (23 août 1923 - 18 avril 2003), informaticien britannique, considéré comme
l'inventeur du modèle relationnel des SGBDR.
[ rappel
L’établissement de ce cycle de conception a connu plusieurs étapes d’évolutions avant d’être adopté par la
communauté des bases de données (BD). Cette évolution est liée aux propositions de différents modèles de
données développés afin de gérer au mieux les données stockées. Les premiers modèles de données proposés à
la fin des années 60, sont les modèles de données physiques. Deux principaux modèles ont connu un succès
certain et ont été utilisés dans d’importants systèmes industriels : le modèle hiérarchique utilisé dans le
système IBM IMS, et le modèle en réseau utilisé dans le système Codasyl (Conference on Data Systems
Languages, Navigationnel) .
Ces deux modèles ont marqué une évolution importante dans le domaine des BD, dans la mesure où ils ont
représenté les premiers modèles permettant de gérer et d’interroger l’ensemble de données d’une BD. Le
modèle CODASYL a valu à son auteur Charles Bachman, le prix ACM Turing en 1973. Cependant, comme
toute première proposition, ces modèles présentaient de nombreux inconvénients.
Le plus important est la difficulté de maintenance et d’évolution de la BD, due à la faible indépendance
physique des données.
Afin de remédier à cet inconvénient, le modèle relationnel a été proposé par Edgar F Codd [50].
L’indépendance physique des données signifie la capacité de modifier le schéma interne de la BD sans avoir à
modifier ni son schéma conceptuel, ni les schémas externes des utilisateurs.
Le modèle relationnel, a ainsi été conçu pour présenter une abstraction mathématique de ce qui est implémenté
dans la BD. Le modèle relationnel est basé sur une représentation formelle. Il propose de stocker les données
dans un modèle organisé en des structures simples et flexibles (des tables) pouvant représenter tout type
d’information. Ce modèle marque une nouvelle évolution importante, sanctionnée également par un prix
Turing en 1981. Le modèle relationnel a été implémenté dans d’importants projets académiques et industriels
comme le projet System R, le projet Ingres et le projet Gamma [76].]
58
Dr APPOH, INP HB, 07 07 930589
1) Modèle hiérarchique
Bien avant ce modèle, on utilisait de système de fichiers pour les ensembles de données.
(Voir en début du cours).
Une des structures les plus simples et les plus répandues existant dans tout l’univers réel est
la structure hiérarchique. La conception de schéma dans le modèle hiérarchique dépend
uniquement des liens d’association un à plusieurs (inter – entités).
Exemple : le SGBD IMS conçu en 1969 sur le système d’exploitation (OS) IBM/360, tous
conçus par IBM (International Business of Machine).
-Avantages du modèle hiérarchique
-adéquation avec une entreprise à structure arborescente (déploiement) ;
-simplicité du modèle dont l’implantation est relativement facile ;
-rapidité d’accès aux données (lecture /écriture disque).
-Inconvénients
-impossible de représenter directement le lien d’association mailles (plusieurs à plusieurs)
inter - entités ;
-beaucoup d’anomalies du modèle pour les opérations de stockages (modification mise à
jour) ;
-absence de symétrie pour les requêtes de manipulation ;
-Indépendance logique très réduite ;
-absence d’interface utilisateur non procédural limitant les informations dans la définition et
la manipulation de BD ;
-impossibilité de concevoir des requêtes mettant en relief des objets de la même génération ;
-coût prohibitif (excessif) des traitements ad hoc (imprévus).
2) Modèle réseau ou navigationnel (CODASYL : Conférences on data system language)
Il incorpore un langage d’interrogation (CODD Frédéric 1970-1978). Il conserve les liens un
à plusieurs entre entités. L’usage de pointeurs logiques est nouveau.
Le schéma est représenté sous forme d’un graphe ou de réseau connectant les entités entre
elles à l’aide de pointeurs logiques.
-Avantages du modèle navigationel
-moins de rigidité donc accroissement de la flexibilité ;
-représentation manuelle des liens maillés ;
-absence d’anomalies pour les opérations de stockage ;
-rapidité des entrées /sorties disques.
-Inconvénients
-absence d’indépendance vis-à-vis des stratégies d’accès ;
-confusion du modèle conceptuel et du modèle des chemins d’accès ;
-procéduralité importante des langages de manipulation (l’utilisateur doit naviguer dans le
réseau logique constitué par les enregistrements et les chaînes de pointeurs).
Certaines requêtes pour des besoins spécifiques sont impossibles.
2) Modèle relationnel
Le modèle relationnel vient combler les insuffisances des modèles précédents. Il ajoute
quelques avantages :
59
Dr APPOH, INP HB, 07 07 930589
- indépendance vis-à-vis des stratégies d’accès ;
- souplesse de manipulation de données d’une entité à une autre directement ou
indirectement en association.
Il connaît tout de même des limitations ;ce qui nous a amenés au modèle objet pour mieux
simuler la réalité.
II) MODELE RELATIONNEL ET SES 10 CONCEPTS FONDAMENTAUX
Le modèle relationnel est fondé (repose) sur une double base théorique mathématique : la
théorie des ensembles et la théorie des prédicats.
Le modèle relationnel créée par E. F. Codd, connu sous le nom initial de modèle V1,
constitue un des apports les plus remarquables à l’informatique dans son rapprochement vers
le non – informaticien (non programmeur) résumé en quatre points :
a-simplicité des concepts de base
Une relation par exemple, est un ensemble au sens mathématique qui va être visualisé à un
instant donné par une table de valeurs. Le concept de table est un des concepts les plus
faciles à appréhender. Il s’en suit également une possibilité d’apprentissage par des
concepteurs ou utilisateurs non programmeur (dans les modèles hiérarchiques ou réseau des
générations précédentes, concevoir et manipuler une base de données était exclusivement
une affaire de programmeurs). Par là, le modèle relationnel satisfait plus l’indépendance des
données.
b-puissance des opérateurs de manipulation
Les opérateurs relationnels sont des opérateurs ensemblistes : l’application d’un opérateur
génère une relation et donc un ensemble qui peut à son tour être manipulé. Un langage
relationnel a donc un caractère dit non procédural.
c-rigueur des concepts aussi bien des structures que des opérateurs avec la double base
mathématique.
d-contribution à la cohérence du système d’information global de l’entreprise : un
SGBD R peut être le support uniforme, s’appuyant donc sur une méthodologie et une
formation unique des utilisateurs, pour toutes les applications de gestion ou de production,
de Datawarehouse ou de serveur de données pour le commerce électronique.
Les 10 concepts fondamentaux du modèle relationnel
Tout modèle de données doit avoir 3 composantes à savoir : définition, manipulation et
contrôle c'est-à-dire :
-la définition concerne les structures permettant de spécifier les données.
-la manipulation concerne les opérateurs permettant de manipuler les données définies
par les structures.
-le contrôle des règles d’intégrités induites par les structures et traduisant les contraintes
liées à la définition ou la manipulation des données
Un SGBD qui implante un modèle de données doit automatiquement prendre en compte les
règles d’intégrité et vérifier la cohérence de ces données.
Aussi et surtout de façon à éviter toute ambiguïté, les définitions d’un modèle de données
doivent idéalement reposer sur des théories formelles. Le modèle relationnel a le privilège
de reposer sur une double base formelle : la théorie ensembliste et la théorie des prédicats.
60
Dr APPOH, INP HB, 07 07 930589
Composante définition des données
1-relation n-aire (tuples) ;
2-domaines –attributs ;
3-clé primaire ;
4-clé étrangère –domaine primaire.
Composante intégrité des données
5-intégrité de domaines (liée à 2) ;
6-intégrité de relation (liée à 1 et 3) ;
7-intégrité de référence (liée à 4).
Composante manipulation des données
8-opérateurs sémantiques (liés aux domaines « domain driven operator »)
9-opérateurs ensemblistes (union, intersection, différence)
10-opérateurs relationnels (sélection, projection, jointure, division).
A B C
Les lettres A B et C sont définies pour traduire les dix concepts de base du modèle
relationnel comme suit :
C : contraintes d’intégrité du
A : définition/structures
modèle (pour le maintien de la B : manipulation (langage relationnel)
cohérence)
1- relation/attributs 5- intégrité du domaine 8- équivalence avec une interface
2- domaines 6- intégrité d’entité (ou de algébrique complète et opérateurs
(sémantique) relation) sémantiques (liés aux domaines)
3- clé primaire 7- intégrité de référence 8-opérateurs ensemblistes (union,
4- domaine primaire (clé intersection, différence)
étrangère) 10-opérateurs relationnels (sélection,
projection, jointure, division).
DIX CONCEPTS DU MODELE RELATIONNEL
NB : Les autres concepts que l’on pourrait définir notamment contrôle de la concurrence,
reprise sur pannes, sécurité, intégration de l’univers modélisé. Les vues ne sont pas
spécifiques seulement au modèle relationnel mais caractéristiques de tout SGBD relationnel
ou non.
Définition de relation et de domaine :
Le concept de relation étant le plus important dans le modèle de Codd, nous allons donner
deux définitions une ensembliste et une prédicative.
-Définition ensembliste d’une relation :
Une relation R est définie comme un sous ensemble du produit cartésien de n ensembles Di.
R est inclus (large) dans le produit cartésien D1 X D2 X - - - - - X Dn.
Une relation est un ensemble composé d’éléments appelés n-uplets (les tuples au niveau
logique sont les occurrences au niveau conceptuel).
Tuple en anglais et en français : couple, triplet, quadruplet, cinq uplets, …, n-uplet.
61
Dr APPOH, INP HB, 07 07 930589
Exemple
(100, Aibus, 300, Paris) est un quadruplet de la relation :
AVION (AVNO#, AVNOM, CAP, LOCVILLE) , avec 100 € AVNO (numéro d’avion) ,
AIRBUS € AVNOM (nom d’avion), 300 € CAP (capacité) etc.
Le domaine LOCVILLE = {NICE, TOULOUSE, PARIS}.
Par ailleurs les attributs ADR de PILOTE, LOC de AVION, VD et VA de VOL prennent
leurs valeurs dans le domaine VIILLE.
Un domaine est un ensemble de valeurs caractérisé par un nom ou une propriété d’attribut.
-Définition prédicative d’une relation :
Prédicat : ce qui est dit de la chose ou d’une personne.
Une proposition est une forme d’énoncé qui est soit vraie ou fausse.
P1 : « il est beau »
P2 : « Socrate est mortel »
P3 « l’avion de numéro 100 est un Airbus de capacité 300 places localisé à Nice ».
Un tuple peut être perçu comme l’écriture concise d’une proposition. Par exemple à la
proposition p3 correspond le tuple (100, Airbus, 300, NICE)
Une relation est un ensemble de tuples.
Objectifs du modèle relationnel selon CODD F.
Ce sont :
a1-Permettre un haut degré d’indépendance des programmes d’application et des activités
interactives à la représentation interne des données en particulier au choix des ordres
d’implantation des données dans les fichiers des indexes et chemin d’accès.
a2-Fournir une base solide pour traiter les problèmes de cohérence et de redondance des
données (non atteint par le modèle hiérarchique)
Ces deux objectifs sont atteints grâce à la simplicité des vues relationnelles présentant les
données sous forme de tables à deux dimensions et également grâce aux règles d’intégrités
supportées par ce modèle et ses fondements logiques.
a3- Permettre le développement de LMD non procédural basé sur des théories
mathématiques solides.
Cet objectif est atteint à l’aide de l’algèbre relationnelle qui permet de manipuler les données
de manière très simple et formelle (via des opérations arithmétiques et aussi grâce au
langage assertionnel basé sur la logique permettant de spécifier les données que l’on
souhaite obtenir sans dire comment les obtenir).
Deux autres objectifs non prévus initialement par le modèle sont atteints à savoir :
a4-Etre un modèle extensible permettant de décrire et de manipuler simplement les données
tabulaires et pouvant être étendu à opérer de même sur des données beaucoup plus
complexes.
a5- Ce modèle se veut devenir un standard pour la description et de la manipulation des BD.
62
Dr APPOH, INP HB, 07 07 930589
Remarque : l’objectif 4 a permis d’intégrer de nouveaux concepts au relationnel notamment
la plupart des concepts orientés objet (classe, encapsulation, polymorphisme, héritage, objet
…).
63
Dr APPOH, INP HB, 07 07 930589
Exemple de schéma relationel
En intention
Buveurs(nb,nom,adresse);
Vins (nv, Cru, mill, qualité, degré, Région, Couleur) ;
Bus(nb, nv, date, quantité).
En extensions de Vins suivies d’une union
64
Dr APPOH, INP HB, 07 07 930589
b- Différence
La différence est également une opération classique binaire de la théorie des ensembles
adaptée de même schéma. Ainsi, les deux relations doivent avoir le même schéma.
C’est une opération portant sur deux relations de même schéma R1 et R2, consistant à
construire une relation de même schéma R3 ayant des tuples ceux appartenant à R1 et
n’appartenant pas à R2.
C’est un opérateur non commutatif. L’ordre des opérandes est donc important.
Notations utilisées :
R
R = R1 - R2
R= DIFFÉRENCE (R1, R2) -
R=REMOVE (R1, R2)
R=MINUS (R1, R2)
R1 R2
Exemple
Notation graphique
Vins1 Cru Mill Région Couleur
Chenas 1983 Beaujolais Rouge
Tokay 1980 Alsace Blanc
− Tavel 1986 Rhône Rose
65
Dr APPOH, INP HB, 07 07 930589
VinsA Cru Region Couleur
Chenas Beaujolais Rouge
Tokey Alsace Blanc
Tavel Rhone Rose
X
Année Mill
1980
1985
Vins6 = VinsA X Année Cru Région Couleur Mill
Chevas Beaujolais Rouge 1980
Tokey Alsace Blanc 1980
Tavel Rhone Rose 1980
Chevas Beaujolais Rouge 1985
Tokey Alsace Blanc 1985
tavel Rhone Rose 1985
66
Dr APPOH, INP HB, 07 07 930589
b- Sélection ou restriction
La restriction est aussi une opération spécifique unaire, qui produit une nouvelle relation en
enlevant des tuples à la relation opérande selon un critère (prédicat ou qualification).
C’est une opération sur une relation R1 produisant une relation R2 de même schéma, mais
comportant les seuls tuples qui vérifient la condition précisée en arguments.
Les conditions possibles sont du type : <attribut> <opérateur> <valeur> où l’opérateur
est un opérateur de comparaison choisi parmi {=, <,>, <=, >= , ≠}.
Il est possible d’utiliser des compositions ou combinaisons logiques de critères comprenant
des conjonctions (et) et des disjonctions (ou) ou des combinaisons des deux.
R2
Ai Ө valeur
R1
Notation graphique de la sélection
Notations utilisées :
R2 = δ condition
(R1)
R2=R1[condition]
R2=RESTRICT (R1, condition)
R2=RESTRICTION (R1, condition)
Exemple
67
Dr APPOH, INP HB, 07 07 930589
Selon le type d’opérateur on distingue :
- L’équi-jointure si l’opérateur est =.
- L’inéqui jointure dans les autres cas c'est-à-dire avec un des opérateurs {<, > ,<=,>= , ≠}.
Il est possible d’utiliser des compositions logiques de critères comprenant des conjonctions
(et) et des disjonctions (ou).
Dans le cas de l’équi jointure, les deux attributs égaux apparaissent chacun dans le résultat.
Il y a donc duplication d’une même valeur dans chaque tuple. Afin d’éliminer cette
redondance, on définit la jointure naturelle. Jointure naturelle comme suit :
Opération consistant à rapprocher les tuples de deux relations R1 et R2 afin de former une
troisième relation R3 dont les attributs sont l’union des attributs des relations R1 et R2, et
dont les tuples sont obtenus en composant un tuple de relation R1 et un tuple de R2 ayant
même valeur pour les attributs de même nom.
Résultat
Ai Bj
R1 R2
Représentation graphique de la jointure
Notations utilisées :
R1 R2
condition
Join (R1, R2, condition)
Où Ai appartient à R1 et Bj à R2.
Exemples
Les exemples suivants illustrent cette opération de jointure sur les relations VINS et
LOCALISATION.
Qualité de vin par ordre décroissant donné par les lettres A, B, C, D, E.
VINS Cru Mill Qualité
Volnay 1983 A
Volnay 1979 B
Chablis 1983 A
juliénas 1986 C
68
Dr APPOH, INP HB, 07 07 930589
Il s’agit d’une jointure naturelle des relations VINS et LOCALISATIONS
Condition : Qualité ± QualMoy
Qualité ± QualMoy
69
Dr APPOH, INP HB, 07 07 930589
Vins1 Cru Mill Région Couleur
Chenas 1983 Beaujolais Rouge
Tokay 1980 Alsace Blanc
Tavel 1986 Rhône Rose
VINSB Cru
Chablis
70
Dr APPOH, INP HB, 07 07 930589
VINSB = VINSA / QUALITE
Remarque :
L’intersection est une opération dérivable des opérations typiques de base (union, différence,
produit cartésien). Elle est donc une opération redondante avec les opérations de base, puisse
qu’il est possible de l’obtenir à partir de la différence à l’aide d’une des formules suivantes :
A ∩ B= A- (A-B) = B – (B-A)
La division peut être obtenue à partir d’opération de base à savoir la différence, le produit
cartésien, la projection comme suit :
D ÷ d = R1 – R2 avec
R1 = П A1, A2, …, Ap (D) et
R2 = П A1, A2, …, Ap ( (R1 x d) – D )
c-Complément
le complément permet de trouver les tuples qui n’appartiennent pas à une relation. Il suppose
à priori que les domaines sont finis. (sinon on obtient des relations infinies)
C’est un ensemble des tuples du produit cartésien des domaines des attributs d’une relation
n’appartenant pas à cette relation.
Notations utilisées :
-Not (R1)
-Comp (R1)
Domaines CRU ={chablis, volnay, médoc}
Couleur ={Rouge, Blanc, Rosé}
Exemple
71
Dr APPOH, INP HB, 07 07 930589
C’est une opération consistant à créer deux relations à partir d’une relation R1 et d’une
condition, la première contenant les tuples de R1 respectant la condition et la deuxième
ceux ne la vérifiant pas.
Notations utilisées :
R1 = RESTRICT (R, condition)
R2 = RESTRICT(R, not (condition))
e-Jointure externe
• Jointure externe
Les jointures telles que définies précédemment perdent des tuples d’au moins une relation
quand les jointures n’ont pas de projections identiques sur l’attribut de jointure. Pour
préserver toutes les informations dans tous les cas, il est nécessaire de définir des jointures
qui conservent les tuples sans correspondant avec des valeurs nulles associées quand
nécessaire. C’est dans ce but que CODD (1979) a introduit les jointures externes.
C’est donc une opération générant une relation R3 à partir de deux relations R1 et R2, par
jointure de ces deux relations et ajout des tuples de R1 et de R2 ne participant pas à la
jointure, avec des valeurs nulles pour les attributs de l’autre relation.
Cette opération est très utile, en particulier pour proposer ces vues sans perte d’information.
Notation
- RELATION1 RELATION2
72
Dr APPOH, INP HB, 07 07 930589
-Dérivées de la jointure externe
Aussi, on peut distinguer la jointure externe droite qui garde seulement les tuples sans
correspondant de la relation de droite. Elle se note :
- R1 R2 ou REXT-JOIN
- R1 R2 ou LEXT-JOIN
f-Semi-jointure
73
Dr APPOH, INP HB, 07 07 930589
Dans certains cas, lors de l’exécution d’une jointure, il est de conserver tous les attributs de
deux relations résultats : seuls les attributs d’une des deux relations sont conservés. A ce
titre une opération spécifique appelée semi-jointure, très utile pour optimiser l’évaluation
des questions a été définie.
C’est donc une opération portant sur deux relations R1 et R2, donnant en résultat les tuples
de R1 qui participent à la jointure des relations.
Notation :
- R1 R2
- SEMI-JOIN (R1, R2)
Elle est équivalente à la jointure des relations R1 et R2 suivis par une projection du résultat
sur les attributs de la relation R1.
Exemple
g-Fermeture transitive
C’est une opération très particulière permettant d’ajouter des tuples à une relation.
Elle n’appartient pas à l’algèbre relationnelle, mais peut être vue comme une de ses
extensions. Il n’est pas possible de constituer cette opération avec un nombre fixe
d’opérations de l’algèbre relationnelle : elle peut être effectuée par une série de
jointure/projection/union. Mais le nombre d’opérations à effectuer dépend du contenu de la
relation.
C’est donc une opération sur une relation R à deux attributs (a1, a2) de même domaine
consistant à ajouter à R tous les tuples qu se déduisent successivement par transitivité, c’set
à dire que si l’on a des tuples <a,b> et <b,c>, on ajoute <a, b).
Notation
-close(R)
-R+
-ℸ (R)
...
74
Dr APPOH, INP HB, 07 07 930589
Calcul
Il est possible de générer des données non tuples à partir des tuples des relations. Ce sont les
agrégats u données calculées pour lesquelles des fontions mathématiques existent : sum,
avg, count …
Remarque :
Il est possible de générer des données non tuples à partir des tuples. Ce sont les agrégats ou
données calculées pour les quelles des fonctions mathématiques existent : sum, average,
count, …
Expression de l’algèbre relationnelle
A partir des opérations de l’algèbre relationnelle, il est possible de composer un langage
d’interrogation de base de données. Une question peut alors être représentée par un arbre
d’opérateurs relationnels ou algébriques.
Exercices : Base dégustation dont le schéma est :
Solution 1
R1 = Restrict (VINS, crus = "Morgan") ou R1 = SELECTION (VINS, crus = "Morgan")
R2 = Restrict (VINS, Mill = "1978")
R3= Intersect (R1, R2)
Résultat = Project (R3, degré)
Deux autres versions
Solution2
R1= Restrict (VINS, cru= "morgon")
R2= Restrict (VINS, cru = "chevas")
R3= Union (R1, R2)
R4= Join (R3, Abus)
R5= Join (R4, Buveurs)
Résultat= Project (R5, nom, prénom)
75
Dr APPOH, INP HB, 07 07 930589
3) Donnez les noms et adresse des buveurs ayant but plus de 10 bouteilles de chablis 1976
avec le degré de vins.
Solution3
R1= Restrict (Abus, Qualité>10)
R2= Restrict (VINS, Cru= "Chablis")
R3= Restrict (R2, Mill= 1976)
R4= Restrict (R1, R3)
R5= Project (R4, Nb, Degré)
R6= Join (R5, Buveurs)
Résultat= Project (R6, Nom, Adresse, Degré).
Ou
R1= Restrict (VINS, Cru= "Chablis")
R2= Restrict (VINS, Mill= 1976)
R3= Restrict (Abus, Qualité>10)
R4=Intersect (R1,R2)
R5=Project (R4,degré)
R6=Join(R3,R5)
R7=Join(R6,Buveur)
R8=Project (R7, nom,adresse,degré)
Solution4
ARBRE ALGEBRIQUE
Une question exprimée sous forme d’un programme d’opérations de l’algèbre relationnelle
peut être représentée par un arbre relationnel ou arbre algébrique..
C’est un arbre dont les nœuds correspondent à des opérations algébriques de relation et les
arcs à des relations de base ou temporaires représentant des flots de données entre
opérations.
Ainsi la question de trouver les noms et prénom des buveurs habitants Paris ayant bu du
chablis depuis 1972 peut être exprimée à l’aide d’un arbre dit arbre relationnel.
Plusieurs arbres équivalents peuvent être déduits d’un arbre donné à l’aide de règles de
transformation simples telles que :
La permutation des jointures et restrictions, la permutation des projections et des jointures,
le regroupement des intersections sur une même relation, etc. Ces transformations sont à la
base des techniques d’optimisation des questions.
76
Dr APPOH, INP HB, 07 07 930589
Exemple
RESULTAT
B. B.NOM, B. PRENOM
V.NV
=
A. NV = V. NV
B. NB A. NB
=
VINS V
BUVEUR B ABUS A
77
Dr APPOH, INP HB, 07 07 930589
RESULTAT
B. B.NOM, B. PRENOM
V.NV
A. NV V. NV
=
B.nom,
B.prenom V.NV
A.NV
A. NB V. Cru « Chablis »
B. NB =
=
B.NB A.NV
B.nom, A.NB VINS V
B.prenom
BUVEUR B
ABUS A
78
Dr APPOH, INP HB, 07 07 930589
LANGAGE SQL2
Les serveurs de données relationnels présentent de nos jours une interface externe sous
forme d’un langage de recherche et de mise à jour. Cette interface permet de spécifier les
ensembles de données à sélectionner ou à mettre à jour à partir de propriétés de valeur sans
dire comment trouver les données.
Ainsi, les opérateurs directement utilisables par les usagers sont en général ceux des
langages dits assertionels (QUEL, QBE, SQL).
SQL est normalisé depuis les années 197-1989 par l’ISO.
SQL est le nom générique d’un standard constitué par une famille de langages de définition,
de manipulation et de contrôle de données relationnelles.
Il est issu du langage SEQUEL Structured English as a QUERY Language.
Il constitue le standard d’accès aux BD assertionnelles. Les autres interfaces par menu,
fenêtre, grille, …ou de programmation de type langage de 3e ou 4e génération sont le plus
souvent offertes au dessus du langage SQL. Celui-ci constitue donc le point d’entrée
obligatoire dans les SGBD relationnels. De manière générale, SQL utilise des critères de
recherche (encore appelés qualification) conçus à partir de la logique des prédicats de
premier ordre.
Il comporte quatre opérations de base (données) utilisant des clauses (règles de base,
primitives, mots clés).
What is SQL?
SQL stands for Structured Query Language.
SQL lets you access and manipulate databases.
SQL became a standard of the American National Standards Institute (ANSI) in 1986, and of the
International Organization for Standardization (ISO) in 1987.
79
Dr APPOH, INP HB, 07 07 930589
Segment
e
Vue
Synonyme Table e
Index
Cluster
SQL
LDD
LCD
LMD GRANT
LID REVOKE
SELECT CONNECT (CONN)
CREATE
ALTER
INSERT DROP
UPDATE TRUNCATE
DELETE ADD
RMAN COMMIT
Lock table ROLLBACK
RENAME
SAVEPOINT
80
Dr APPOH, INP HB, 07 07 930589
]
***-------***-------***-------***-------
(Dans ORACLE enterprise Linux : oraclce pwd kouame)
Se connecter comme sysdba
Pour se déconnecter de la base oracle (orcl), faire un shutdown immediate pour relancer la
Base de données :
Faire :
\sqlplus /nolog
conn / as sysdba
startup
Se reconnecter en utilisateur connu sinon les objets seront accédés comme suit : scott.emp ;
Scott est un utilisateur prpropriétaire des tables dept et emp.
***-------***-------***-------***-------
Oracle linux enterprise installé en virtualisation (VMWare Worsktation 10.0.0 build-
1295980)
oracle
sqlplus /nolog
puis
conn / as sysdba,
starup
ou
sqlplus / as sysdba
startup
Une fois la bd de donnée est montée on peut avoir accès selon les droits :
desc dict
select
desc cats
desc cat
select substr(table_name, 1, 10) from cat
desc v$database
81
Dr APPOH, INP HB, 07 07 930589
Pour fermeture (démonter la BD)
shutdown immediate
***-------***-------***-------***-------
82
Dr APPOH, INP HB, 07 07 930589
***-------***-------***-------***-------
Créer la base de données dans oracle à partir de la génération du script de cette base.
83
Dr APPOH, INP HB, 07 07 930589
Certification oracle : OCP/OCA
Connaitre les fichiers .exe dont la plupart constitue les commandes d’oracle. Ces fichiers
sont dans : /u01/app/oracle/product/11.2.0/dbHome/bin
84
Dr APPOH, INP HB, 07 07 930589
ctxloadO impdpO Path.pm
cursize impO platform_common
cursizeO jssu plshprof
db2gc kfed plshprofO
dbca kfedO proc
DBConsoleBanner.pm kfod purgeDeploymentLibrary
DBConsoleLifeCycle.pm kfodO racgwrap
DBConsole.pm kgmgr racgwrap.sbs
DBConsoleStatus.pm kgmgrO rawutl
dbfs_client LaunchEMagent.pm rawutl0
dbfsize LaunchEMdbconsole.pm rconfig
dbfsizeO lbuilder RegisterTType.pm
dbgeu_run_action.pl lcsscan relink
dbhome ldapadd renamedg
dbshut ldapaddmt renamedg0
dbstart ldapbind repo_mig
dbua ldapcompare rman
dbv ldapdelete rmanO
dbvO ldapmoddn runclass
deploymentLibraryExport.sh ldapmodify sAgentUtils.pm
deploymentLibraryImport.sh ldapmodifymt sbttest
deploync ldapsearch sbttestO
dg4odbc ldifmigrator schema
dg4odbcO linkshlib schemasync
dg4pwd lmsgen SecureAgentCmds.pm
dg4pwdO loadjava SecureDBConsoleCmds.pm
dgmgrl loadpsp SecureOMSCmds.pm
dgmgrlO loadpspO SecureUtil.pm
diagsetup lsnodes setasmgid
Directory.pm lsnrctl setasmgid0
diskmon.bin lsnrctl0 setsso.pl
dropjava lxchknlb skgxpinfo
dsml2ldif lxegen skgxpinfoO
dumpsga lxinst sqlldr
dumpsga0 mapsga sqlldrO
dvca mapsga0 sqlplus
e2eme maxmem srvconfig
e2eme0 maxmemO srvctl
echodo mkpatch StartAgent.pl
emagent mkpatchO statusnc
emagent0 mkstore symfind
emagentdeploy.pl ncomp sysresv
EMAgentPatch.pm netca sysresv0
EMAgent.pm netca_deinst.sh targetdeploy.pl
emagtm netmgr tkprof
emagtm0 nfsPatchPlugin.pm tkprofO
emagtmc nid tnnfg
emagtmc0 nidO tnslsnr
emca nmb tnslsnr0
EmCommonCmdDriver.pm nmb0 tnsping
EMconnectorCmds.pm nmb.0 tnsping0
emctl nmcbufp transx
EmctlCommon.pm nmei trcasst
emctl.pl nmei0 trcldr
emctl.template nmhs trcroute
emdctl nmhs0 trcroute0
emdctl0 nmhs.0 trcsess
EMDeploy nmo tstshm
EMDeploy.bat nmo0 tstshmO
EMDeploy.pm nmo.0 uidrvci
emdfail.command nmocat uidrvciO
EMDiag.pm nmocat0 umu
emdrollogs.pl nmosudo unzip
emdwgrd nmosudo0 wrap
emdwgrd.bat nmupm wrapO
emdwgrd.pl nmupm0 wrc
EmKeyCmds.pm odisrvreg wrcO
EMomsCmds.pm oerr xml
EMSAConsoleCommon.pm oidca xmlcg
emtgtctl oidprovtool xmlwf
emtgtctl2 ojmxtool xsl
emtgtctl20 ojmxtool0 xsql
emutil ojvmjava xvm
emutil.bat.template ojvmtc zip
85
Dr APPOH, INP HB, 07 07 930589
Remarque
Tout modèle de données obéit à trois composantes principales (du point de vue SGBD) :
- Définition ;
- Manipulation ;
- Contrôle.
Aperçu de la constitution d’une BD. Une des tâches essentielles du développement des BD
est la conception des schémas de base. L’objectif est de structurer le domaine d’application
de sorte à le représenter sous forme de type ou de table. La représentation doit être juste pour
éviter les erreurs sémantiques.
Elle doit être aussi complète pour permettre le développement des programmes
d’applications souhaitées.
Elle doit être évolutive (sécable) afin de supporter la prise en compte rapide de nouvelles
demandes.
Le concepteur ou l’administration de la base effectuent doivent répondre à ces choix.
PILOTE (PL # INT (3), PLNOM CHAR (12), ADR CHAR (12) PRIMARY KEY (PL #))
AVION (AV # INT (3), AVNOM CHAR (12), CAP INT (3), LOC CHAR (20), PRIMARY
KEY (AV #))
VOL (VOL CHAR (5) PRIMARY KEY, PL # INT (3) REFERENCE PILOTE (PL #), AV #
INT (3) REFERENCE AVION (AV #), VD CHAR (20)
Not null, VA CHAR (20) HD DECIMAL (2, 2))
FORMATION (PL # NUMBER (4) not null REFERENCES PILOTE (PL #), TYPAV
CHAR (2) not null, DATEF DATE, PRIMARYKEY (PL #, TYPAV).
AVION
1, n AV
CONDUIRE VOL AVNom
VD
CAP
VA LOC
HD
HA
1, 1
1, n
PILOTE APPARTENIR
PL
PLNom
ADR 1, N
TYPAVION
TYPAVION
86
Dr APPOH, INP HB, 07 07 930589
REQUETES ET REPONSES:
Q1: Quels sont les types d’avion de la Compagnie avec leur capacité, tire par ordre croissant
de capacité pour les capacités > 250.
Remarque : Tous les avions de même nom ont la même capacité.
R1 (Solution de Q1) : SELECT DISTINCT AVNom, cap FROM AVION WHERE cap >
250 ORDER BY cap DESC;
NB: Les termes connus du langage sont des clauses, les autres sont des prédicats.
Q2 : insérer la ligne (110,A320, 320, Nice)
R2: Insert into AVION values (110, ‘A320’, ‘NICE’);
Q9: Quels sont les numéros des pilotes qui assurent plus 2 vols?
R9: select PL from VOL group by PL Having Cunt (*) >2;
Q10: Quels sont les n° de pilote (avec le nombre des vols assurés) qui assurent plus de 2
vols au départ de Nice ?
R10: Select PL, count (*) From VOL where PL in (Select PL From Vol where VD = ‘Nice’
Group By Having Count (*) >2;
87
Dr APPOH, INP HB, 07 07 930589
2e Partie Méthode ensembliste et Méthode prédicative
Q1: Quels sont les noms des avions avec leur n° et leur localisation?
• Méthode ensembliste : un ordre est caractérisé par
- un seul SFW par table
- le 1er SFW traduit le résultat
- association des SFW par l’appartenance ensembliste
• Méthode prédicative : un ordre est caractérisé par :
- un seul SFW pour toute la question
- la liste de tables intervenant dans l’écriture de la requête est dans FRM
- la traduction de la jointure par une égalité entre les colonnes
Q2 : Quels sont les noms des pilotes qui assurent un vol au départ de paris
Q3 : Quels sont les noms des pilotes qui conduisent un Airbus ?
S2:
- (méthode prédicative)
Select PLNom from pilote, vol where pilote.PL = vl.PL and vol.VD = ‘Paris’
-(méthode ensembliste)
Select PLNom from pilote where PL# = any (Select PL# from vol where VDD =
<<Paris>>);
S3: Select PLNom from pilote where PL in (Select Pl from vol where AV in (Select AV
from Avion where AVNom = ‘Airbus’)
Q4: Quels sont les noms des ilotes qui habitant dans les localisations d’un ‘’Airbus’’
Extension de SQL 2 (relationnel) est SQL 3 et SQL4 (objet) mais qui comprennent le
relationnel.
Exercices /projets
-Base de données dégustation
-BD état civil
-BD ligne budgétaire
-BD météorologique
-Gestion du personnel,
-Gestion du patrimoine
-Organisation de concours
-Gestion de suivi des armes de guerre
-Gestion de passation des charges
-gestion d’une chaîne de complexes hôteliers
-suivi des sources et origines des armes de guerres
-gestion des zones de pèlerinage (basilique)
Autres :
88
Dr APPOH, INP HB, 07 07 930589
B- Gestion des bus d’une métropole ( A chaque arrêt de bus se trouvent notifiées chaque fois
les heures d’arrivée des deux prochains bus A et B. A et B arriveront respectivement à t1 et
t2 (t1< t2). Faire en sorte que maximalement les arrêts aller et retour soient en face à face.
Prendre en compte les dépôts ou stations puis les centres de formations de pilotes/chauffeurs
et de réparation).
****----****
8-Gestion des explorations minières des régions au plan national
9-Gestion innovante de passation des marchés publics :
Règles de gestion MCD pour le modèle MCD
Données
BD extensionnelles
BD
89
Dr APPOH, INP HB, 07 07 930589
Complexité des requêtes
Relationnel Objet
Technologie de l’information :
Processeur :
CISC : Complex Instruction Set Computing, processeur à jeu d’instructions
complexes)
RISC: Reduced Instruction Set Computing, processeur à jeu d’instructions réduit)
SGBD : SQL (sans graphisme direct) servant de piliers une bonne partie des HIM des
applications ayant comme support des bases de données, dialogue direct ou indirect
avec le SGBD, et selon le type d’utilisateur
SE/OS : Shell (interpréteur de commande) idem
90
Dr APPOH, INP HB, 07 07 930589
Sécurité des données
Pour arriver à des fins d’utilisations objectives, les états cohérents du système tant au
niveau du Se que du SGBD doivent être observés tout le long des transactions et des
échanges locaux ou par réseau.
Le respect des états cohérents d’un passage à un autre au sein d’un SGBD, nécessite une
politique de sécurité accrue et de veille pour les données.
Cette sécurisation porte sur l’authentification des usagers, l’intégrité des données, la
confidentialité des données et la non répudiation des actes posés.
.
Les mise à jour des données et leur modifications structurelles doivent à la fois être
réalisées avec le minimum possible de dommage.
91
Dr APPOH, INP HB, 07 07 930589
------- stabilité croissante
-----→ dynamique croissante
T Matériel
H BIOS / UEFI
F OS/SE
G Programmes/applications
d Données
T[H[F(G(d))]]
Chaque commande est suivie d’une validation par la touche " entrée "
92
Dr APPOH, INP HB, 07 07 930589
Microsoft.Troubleshooting
compmgmt.msc Afficher et configurer les paramètres et composants
du système (gérer l’ordinateur)
msinfo32 Informations avancées sur le système du point de
vue de paramètres matériel et logiciel, et les
interruptions
eventvwr Afficher les messages d’analyse et de dépannage
appwiz.cpl Lancer, ajouter ou supprimer des programmes et des
composants Windows
inetcpl.cpl Propriétés de l’Internet
ipconfig Afficher et configurer les paramètres réseau
perfmon Analyser les performances de des ordinateurs locaux
et distants
resmon Surveiller les performances et l’utilisation des
ressources (monitoring)
taslist Lister les tâches en instance d’exécution
taskmgr Gestionnaire des tâches : informations détaillées sur
les programmes et les processus en exécution
sur la machine
Regedit Apporter des modifications au registre Windows
msra Recevoir de l’aide d’un ami
Rstrui Restaurer le système de l’ordinateur à un état
antérieur
Cls Pour quitter le shell
help Lister des fonctions shell
93
Dr APPOH, INP HB, 07 07 930589
P16 concernant « - Eventuellement les règles que devront observer les données au cours de
leur vie dans l’entreprise. »
P25 e de connue a été ajouté dans « l’exécution de certaines opérations sur les entités ou
associations. Cette fonctionnalité est connue sous le nom de trigger (ou déclencheur),
encore appelé reflexe dans le contexte …. »
P26 Persistance du système)
P27 titre du schéma y compris le texte au juste dessus
P28 dans le texte en dessous du titre « 2) Architecture fonctionnelle typique »
P30 architectures matérielles et logicielles, ou encore la primauté des systèmes
d’information sur
La vague de l’Internet sans fil (WAP, GPRS, UMTS) ne fera que renforcer d’une part, le
besoin de très gros serveurs de base de données capables d’être interrogés pour délivrer de
l’information personnalisée sur le poste léger et d’autre part, de nouvelles architectures où
une station pourra aussi bien être client que serveur. (peer to peer computing ou pair à pair).
Réseau pervasif (ubiquité, faculté d’être dans plusieurs endroits ou lieux à la fois)
94
Dr APPOH, INP HB, 07 07 930589
-et l’anthropologie sociale et culturelle, qui étudie la vie des sociétés humaines, présentes et
passées, les évolutions de leurs langues, des croyances et des pratiques sociales. L’objet
général de l’anthropologie est de faire de l’homme et de toutes les dimensions de la vie
humaine, l’objet d’un savoir positif.
La sociologie se situe dans le champ des sciences sociales ou humaines qui, comme
l’économie, la science politique, l’anthropologie, la psychologie ou l'histoire, étudient les
comportements humains collectifs. La sociologie peut avoir des points de contact avec ces
autres sciences, partager avec elles les mêmes objets d'études, et même développer des liens
interdisciplinaires.
Sa spécificité tient au fait qu'elle s'attache à la logique sociale des phénomènes qu'elle
observe, tandis que la psychologie tend à en privilégier la dimension individuelle (par
exemple, dans l'étude de la famille, la psychologie pourra s'intéresser à la vie psychique de
l'enfant, alors que la sociologie insistera plutôt sur la transmission de la position sociale ou
du capital culturel). Par rapport à la science économique, la sociologie propose des cadres
d'analyse plus larges et plus qualitatifs pour interpréter les phénomènes sociaux au-delà de
leur pure fonction économique (la sociologie des marchés se distinguera ainsi de l'analyse
économique des prix).
D'autre part, l'anthropologie ou l'ethnologie fournissent des analyses en termes de culture et
de pratiques rituelles que la sociologie peut reprendre, tout en ajoutant, cependant, une
dimension plus quantitative, voire statistique (classer les comportements humains en
fonction de certaines variables, comme le sexe, l'âge ou l'origine socioprofessionnelle est
une des caractéristiques de la recherche sociologique).
95
Dr APPOH, INP HB, 07 07 930589