Coursbdd ts2 Ig
Coursbdd ts2 Ig
Coursbdd ts2 Ig
Comme avec plusieurs aspects de la vie humaine, la plupart des données présentes
entre elles un certain ordre naturel. Généralement, les données sont groupées sous
forme de fichiers ; étant la méthode d’organisation des données la plus simple et la pu
répandue en informatique.
II- Définitions
II-1 Fichier
II-2 Article
L’article (ou enregistrement logique) d’un fichier donné contient toutes les informations
relatives au même individu ou bien au même objet. C’est l'ensemble minimum de
données qui peut être manipulé par une seule opération élémentaire du fichier. Il est
souvent constitué de diverses données élémentaires, que l'on peut décrire dans le
langage de programmation utilisé, comme le montre la figure 1-1. Dans cet exemple, le
fichier est constitué d'une collection d'enregistrements qui ont la structure d'EMPLOYE.
01 EMPLOYE
02 NOM PICTURE X(30)
02 PRENOM PICTURE X(20)
02 NUM-S-S
03 SEXE PICTURE 9
03 DATE-NAISSANCE
04 ANNEE PICTURE 99
04 MOIS PICTURE 99
03 ADRESSE
04 REGION PICTURE 99
04 VILLE PICTURE 999
02 CODE-INTERNE PICTURE 9999
II-3 Champ
Un attribut (ou attribut) est une variable qui renseigne sur une caractéristique d'une
entité. C’est un groupe d’informations élémentaires. Par exemple l’adresse dans le
fichier « Personnel » constitue une donnée qui rassemble plusieurs informations
élémentaires : Région et Ville.
Le Num-S-S représente un sous article du fichier « Personnel ». Un article alors peut
être divisé en différents niveaux de champs (ou sous articles).
Un caractère correspond au groupe de bits le plus petit (0, 1).
Une zone ou un mot correspond à un groupe de caractères successifs représentant les
informations accessibles dans l’opération de traitement.la longueur d’une zone est le
nombre de caractère de cette zone.
Ainsi :
Groupe de Caractères Zone ou Mot.
Groupe de Mots Champ.
Groupe de Champs Article.
Groupe d’Article Fichier.
Le domaine de l'attribut est l'ensemble des valeurs qu'il peut prendre. Pour un attribut de
type nominal (par exemple : nom, occupation, type de culture), le domaine est défini par
un ensemble de valeurs possibles (l'ensemble des types de cultures possibles dans une
région). Cet ensemble est habituellement fini mais est parfois difficile à cerner (domaine
des noms de familles). Pour les attributs de type quantitatif (pente, température, âge), le
domaine se définit souvent par des bornes minimales et maximales. Le respect du
domaine des attributs contribue grandement à l'intégrité référentielle. Il est d'usage de
créer une table contenant l'ensemble des valeurs du domaine d'un attribut de type
nominal afin d'offrir à la personne qui saisit les données une liste correcte des valeurs
possibles. Il s'agit alors d'une table de consultation.
Ce type d’organisation de fichier est plus efficace lorsqu’on désire obtenir des
enregistrements particuliers. Les enregistrements sont stockés sur un disque à une
adresse particulière qui peut être déterminée à partir de leur champ clé. Cette adresse
est calculée via une technique connue sous le nom de HASHING. Ces programmes de
hashing transforment par des opérations mathématiques, la valeur numérique du champ
clé en une adresse particulière de stockage. Ces programmes sont utilisés
premièrement pour stocker les enregistrements, puis pour les accéder ailleurs.
Ces fichiers sont stockés seulement sur disques.
Avantage : localisation rapide des enregistrements donnés.
Inconvénient : couteux, besoin d’un très grand espace de stockage. Et pas trop
efficace quant aux grand nombre de modifications et
d’enregistrements.
Dans cette organisation (séquentielle indexée), la clé est composée d’un ou plusieurs
attributs; elle est un identifiant des enregistrements du fichier (pas de doubles).
L’index plus les enregistrements du fichier constituent un B−arbre. Les enregistrements
sont donc triés selon l’ordre de la clé. On dit que l’index est "plaçant". L’accès séquentiel
selon l’ordre des clés est très efficace.
Avantage des index secondaires: Plusieurs accès sélectifs selon des clés différentes
possibles, en plus des accès dus à l’organisation de base du fichier.
Inconvénients: Multiplier les index secondaires multiplie les E/S lors des mises à
jour des fichiers.
de
Arbre B+
Les fichiers séquentiels indexés perdent leurs performances quand leur taille grandit. On
propose donc des organisations différentes tels que les fichiers indexés par arbre B+ (B
Balanced, équilibré) , qui sont très utilisés si l’on a des modifications fréquentes. Ils sont
efficaces, quelque soit les opérations d'insertion ou d'effacement de données. Servitude
lors des opérations d'insertion ou de suppression. Un arbre B+ est sous la forme d'un
arbre équilibré.
Arbre B
Les fichiers indexés par arbre B ont le même aspect que les arbres B+ mais les
redondances des clés de tri sont éliminés.
Néanmoins la structure des nœuds non terminaux est différente. Il y a moins de nœuds
que les arbre B+. Dans le cas d'une recherche, on n’est pas obligé d'aller au bout d'un
chemin.
(on peut directement accéder à n'importe quel endroit du fichier). Les fichiers sont soit
binaires, soit formaté ASCII.
Organisation avec blocage possible des enregistrements
(1 bloc = plusieurs enregistrements lus/écrits en une E/S):
♦ n = nombre d’enregistrements dans le fichier.
♦ b = nombre d’enregistrements par bloc.
♦ n/b = N = nombre de blocs nécessaires.
Intérêt du blocage:
♦ gain de place en MS
♦ gain d'E/S lors des accès
Blocage Fixe :
Les enregistrements dans le fichier ont tous la même longueur et sont donc de longueur
fixe. C'est à dire que ces enregistrements sont tous composés d'un même nombre
constant de rubriques (zones) qui, elles aussi, sont chacune de longueur fixe. Une
même rubrique est toujours de la même longueur et de la même nature d'un
enregistrement à un autre.
Blocage Variable :
Les enregistrements dans le fichier sont de longueur variable. C'est à dire qu'ils n'ont
pas tous la même longueur. On peut trouver parfois des enregistrements de même
longueur dans le fichier mais ils sont quand même dits de longueur variable dans la
mesure où ils comportent un compteur d'enregistrement au début. Les enregistrements
peuvent être ou ne pas être tous composés d'un même nombre de rubriques (zones)
qui, à leur tour, peuvent être également de longueur fixe ou variable. Une même
rubrique peut ne pas être toujours de la même longueur mais cependant et en principe
toujours de la même nature d'un enregistrement à un autre. Il arrive même parfois que
certaines rubriques existent dans un enregistrement et n'existent plus dans le suivant.
Le blocage n'est pas obligatoire mais préférable sur les supports bandes magnétiques
pour des raisons d'économie de place sur ces supports.
En plus, on a :
- Les fichiers Liaison (L): fichier permettant de lier deux traitements ; un fichier
résultant d'un premier traitement utilisé pour un second traitement. Sa durée de
vie correspond à celle de l'application qui l'a créé.
- Les fichiers Travail (TR): fichier créé pour un traitement, utilisé puis détruit ; il
existe lors du temps de l'opération.
- Les fichiers Table (T): petit fichier ne concernant que des données de type
paramètre.
- Les fichiers d'attente (A) :Lorsqu'un mouvement ne peut être traité car il
manque certaines données, il est placé dans un fichier d'attente pour pouvoir
être traité ultérieurement lorsque toutes les conditions auront été réunies. Par
exemple une commande est mise en attente si la quantité en stock du produit
commandé est insuffisante pour pouvoir livrer et facturer la commande.
- Les fichiers temporaires (T) Ce type de fichier correspond à des données
stockées provisoirement pour être reprises un peu plus loin. Un fichier
temporaire a une durée de vie limitée. Il est créé en cours d'exécution, et est
détruit après son utilisation. Le cas le plus courant de fichier temporaire est celui
obtenu en résultat d'un tri.
Caractéristiques des fichiers
Les fichiers sont caractérisés par plusieurs données représentant l'utilisation qui est faîte
de ces fichiers.
- Volume : taille d'un fichier en nombre de caractère (unité : octet)
- Taux de croissance : (nombre d'articles créés moins nombre d'articles
supprimés) / nombre d'article en début de période.
- Taux de mouvement : nombre d'articles ajoutés, supprimés, modifiés pendant la
période / nombre d'articles en début de période.
- Taux de consultation : nombre d'articles consultés / nombre d'articles existant.
Base de données
1. Introduction
1.2 Définition
Une base de données est une collection de données organisées et reliées entre elles de
telle sorte que l'on puisse accéder à une quelconque d'entre elles par l'intermédiaire
d'un programme informatique.
Les données doivent être exhaustives (la base contient toutes les informations requises
pour le service que l'on en attend), non redondantes (la même information n'est
présente qu'une seule fois).
Une base de données est donc une entité logiquement cohérente, représentant des
éléments abstraits ou concrets du monde réel et qui véhicule une certaine sémantique
permettant sa gestion.
2. Caractéristiques
base de données qui sont : le niveau interne, le niveau conceptuel et le niveau externe.
Le processus de transformation des requêtes et des résultats qui sortent d'un niveau à
un autre s'appelle correspondance ou mapping.
Indépendance physique Pouvoir modifier les structures de stockage ou les index sans
que cela ait de répercussion au niveau des applications Les disques, les méthodes
d’accès, les modes de placement, le codage des données ne sont pas apparents
Indépendance logique Permettre aux différentes applications d’avoir des vues
différentes des mêmes données Permettre au DBA de modifier le schéma logique sans
que cela ait de répercussion au niveau des applications
Les données de la BDD sont décrites hors des programmes dans la base elle-même.
Les données des fichiers sont décrites dans les programmes.
5 Types d'utilisateurs
• Le programmeur
– Écrit des applications qui utilisent la base de données.
– Il crée les tables et les structures associées (vues, index,...) utilisées par ses
applications.
Les programmeurs d’application : ils définissent les schémas externes et construisent
les programmes qui alimentent ou exploitent la BDD en vue d’application particulières.
Ils utilisent pour cela le langage de BDD du SGBD éventuellement couplé avec un
langage de programmation classique.
• L'utilisateur final
– N'a accès qu'aux données qui lui sont utiles par l'intermédiaire d'applications en
interrogeant directement les tables ou vues sur lesquelles l'administrateur lui a accordé
des droits.
Les utilisateurs finaux : ils accèdent à la BDD au travers des outils construits par les
programmeurs d’applications ou pour les plus avertis au travers du langage de requêtes.
6 Types de SGBD
• SGBD hiérarchique :
– Les données sont représentées dans la base sous la forme d'un arbre.
– La structure d'arbre utilise des pointeurs et détermine le chemin d'accès aux données
• SGBD réseau :
– Les données sont représentées dans la base sous la forme d'un graphe quelconque.
– La structure de graphe utilise des pointeurs et détermine le chemin d'accès aux
données
• Pour les SGBD hiérarchiques et réseaux, les programmes ne sont pas indépendants
de la structure logique de la base.
– Doivent indiquer le chemin d'accès aux données.
– Utilisent un langage complexe pour travailler avec les données
SGBD relationnel
• La théorie des SGBDR est fondée sur la théorie mathématique des relations.
• Représentation très simple des données sous forme de tables constituées de lignes et
de colonnes.
• Plus de pointeurs qui figent la structure de la base.
• Langage non procédural, puissant et simple d'emploi.
• Langage SQL est un standard parmi ces langages.
• Dominent le marché des SGBD.
temps. Il faut pouvoir, lorsque l’une d’elles arrive, récupérer une base dans un
état « sain ». Ainsi, après une panne intervenant au milieu d’une modification
deux solutions sont possibles : soit récupérer les données dans l’état dans lequel
elles étaient avant la modification, soit terminer l’opération interrompue.
Contrôles réalisés par le SGBD
Partage de données : accès à la même information par plusieurs utilisateurs en
même temps. Le SGBD inclut un mécanisme de contrôle de la concurrence basé
sur des techniques de verrouillage des données ( pour éviter par exemple qu’on
puisse lire une information qu’on est en train de mettre à jour)
Intégrité des données grâce à la définition de contraintes sur les données. Le
SGBD veille à ce que toutes les contraintes soient vérifiées à chaque insertion,
suppression, ou modification d’une donnée.
Confidentialité : plusieurs utilisateurs peuvent utiliser en même temps une base
de données, se pose le problème de la confidentialité des données. Des droits
doivent être gérés sur les données, droits de lecture, mise à jour, création; … qui
permettent d’affiner.
Sécurité : une base de données est souvent vitale dans le fonctionnement d’une
organisation, et il n’est pas tolérable qu’une panne puisse remettre en cause son
fonctionnement de manière durable. Les SGBD fournissent des mécanismes
pour assurer cette sécurité.
Indépendance par rapport aux traitements
Pour faciliter la maintenance, un SGBD doit favoriser l'indépendance des traitements
– Par rapport à l'implantation physique des données (codage, support
enregistrement, ordre dans lequel les données sont enregistrées,…).
– Et même, si possible, par rapport à l'implantation logique des données (existence
d'index, décomposition en "fichiers logiques",…).
8- Architecture
Architecture centralisée
programme d'application et SGBD sur même machine (même site).
premiers systèmes
Architecture du type client-serveur (client-server architecture)
programme d'application = client
interface (« GUI ») + traitement du domaine d’application.
SGBD = serveur (de données « data server »).
machines (sites) différentes.
deux couches, niveaux, strates (“two tier ”).
BD
Réseau
Program m e
SG BD
d'application
Logiciel Logiciel
interm édiaire interm édiaire
Pilote de Pilote de
télécom m unication télécom m unication
C lient S erveur
Architecture 3 tiers
BD
Réseau Réseau
Interface Application SG BD
BD BD
locale locale
Réseau Réseau
Program m e
SG BD réparti SGBD réparti
d'application
Logiciel Logiciel Logiciel
interm édiaire interm édiaire interm édiaire
Pilote de Pilote de Pilote de
télécom m unication télécom m unication télécom m unication
Serveur de Serveur de
Client
données données
Base de données parallèles
Mémoire vive
Unité de Unité de Unité de
traitement traitement traitement
Entrepôt de données
BD
opérationnelle
(O LTP)
Extraction :
BD filtrage, Analyse
opérationnelle synthèse, Entrepôt de données (O LAP),
(O LTP) transform ation, (« data wharehouse ») prospection
fusion
Autre
source de
données
Entrepôt de données
Base de données opérationnelle
traitement des données quotidiennes et récentes.
OLTP (“ On Line Transaction Processing ”).
Entrepôt de données (data wharehouse)
grand volume de données historiques extraites de bases opérationnelles
pour le support à la prise de décision.
OLAP (“ On Line Analytical Processing ”)
Prospection de données, ou forage, fouille, exploration de données, ou
découverte de connaissances dans les BD (data mining, analysis,
dredging, archeology, knowledge discovery in databases - KDD)
extraction non triviale d'informations implicites, inconnues et utiles
apprentissage machine, statistiques.
• Décrire les données qui seront stockées indépendamment des applications. Grâce au
langage de définition des données DATA DEFINITION LANGUAGE (DDL)
• Manipuler ces données (ajouter, modifier, supprimer des informations), interroger et
mettre à jour les données sans préciser d'algorithme d'accès dire QUOI sans dire
COMMENT langage de requêtes déclaratif ex.: quels sont les noms des produits de prix
< 100F ? Et ceci grâce au langage de manipulation des données DATA
MANIPULATION LANGUAGE (DML).
• Consulter les données et traiter les informations obtenues (sélectionner, trier, calculer,
agréger,...).
• Définir des contraintes d'intégrité sur les données (contraintes de domaines,
d'existence,...). Intégrité : les données dans une bdd doivent respecter un certain
nombre de contraintes dites d’intégrité. Un SGBD doit assurer que les contraintes
d’intégrité soient respectées.
Concurrence : en général, plusieurs utilisateurs se partagent la même BDD. Plusieurs
transactions peuvent donc s’exécuter en même temps. Un SGBD doit assurer que les
éventuels conflits entre ces transactions ne mettent pas la BDD dans état incohérent.
• Définir des protections d'accès (mots de passe, autorisations,...).
Contrôler les données, Intégrité vérification de contraintes d'intégrité ex.: le salaire doit
être compris entre 400F et 20000F.
Confidentialité, contrôle des droits d'accès, autorisation. Un SGBD doit permettre
d’interdire à certaines personnes de réaliser certaines opérations sur une partie ou sur
toute la BDD.
langage de contrôle des données DATA CONTROL LANGUAGE (DCL)
• Résoudre les problèmes d'accès multiples aux données (blocages, interblocages). Le
Partage une BDD est partagée entre plusieurs utilisateurs en même temps. Le contrôle
des accès concurrents notion de transaction L'exécution d'une transaction doit préserver
la cohérence de la BDD
• Prévoir des procédures de reprise en cas d'incident (sauvegardes, journaux,...). Après
une panne, qu’elle soit d’origine logicielle ou matérielle, un SGBD doit être capable de
restaurer la BDD dans un état cohérent, le même ou le plus proche de celui précédant la
panne.
Indépendance données – traitements :
L’indépendance données – traitements est indispensable pour pouvoir faire évoluer
facilement l’organisation logique ou physique d’une BDD ou bien l’architecture matérielle
du SGBD qui la gère.
L’indépendance données – traitements permet si elle est atteinte :
- de modifier l’organisation physique (par exemple ajouter un index pour un accès
plus rapide) sans modifier le schéma conceptuel ou les programmes
d’application.
- De modifier le schéma conceptuel (par exemple ajouter un nouveau type d’entité
ou d’association) sans modifier les programmes d’application.
• Performances d'accès index (hashage, arbres balancés ...).
P rogram m eur
Program m e sourc e
avec L M D enc hâs sé
Program m e sourc e
inc orporant des appels à u ne
pré-com pilateur
librairie s pécialisée pour le
U tilis ateur expert SG BD
U tilis ateur
Adm inis trateur de base de données (A BD ) C om pilateu r
S y s tè m e d e g e s tio n d e b a s e d e
d o n n é e s (S G B D )
M é m o ire s e c o n d a ire p e rm a n e n te
a- Un peu d'histoire
b- Le modèle relationnel
Le modèle relationnel a été formalisé par CODD en 1970. Quelques exemples de
réalisation en sont : DB2(IBM), INFORMIX, INGRES, ORACLE.
Dans ce modèle, les données sont stockées dans des tables, sans préjuger de la façon
dont les informations sont stockées dans la machine. Un ensemble de données sera
donc modélisé par un ensemble de tables.
Le succès du modèle relationnel auprès des chercheurs, concepteurs et utilisateurs est
dû à la puissance et à la simplicité de ses concepts. En outre, contrairement à certains
autres modèles, il repose sur des bases théoriques solides, notamment la théorie des
ensembles et la logique mathématique.
Les objectifs du modèle relationnel :
- proposer des schémas de données faciles à utiliser.
- améliorer l'indépendance logique et physique,
- mettre à la disposition des utilisateurs des langages de haut niveau pouvant
éventuellement être utilisés par des non informaticiens,
- optimiser les accès à la base de données,
- améliorer l'intégrité et la confidentialité,
- fournir une approche méthodologique dans la construction des schémas.
c- Définitions
Domaine : Ensemble fini ou infini de valeurs distinctes que peut prendre une donnée
élémentaire (entiers, booléens...)
Un n-uplet ou t-uple : élément <v1, v2, …., vn> du produit cartésien d’un ensemble de
domaines D1, D2, …., Dn note D1xD2x…..xDn tel que quelque soit i dans Di.
Exemple : Si D1 = {a, b, c} et D2 = {1, 2} alors D1xD2 = {<a, 1> ; <a, 2> ; <b, 1>, <b, 2> ;
<c, 1> ; <c, 2>}.
N.B. : Le produit cartésien peut être généralisé sur des ensembles quelconques et, en
particulier, des ensembles de t-uples.
Exemples de domaines
Des domaines :
nom = {Dupont, Martin, Robert, Denou, Bellamy, ...}
prénom = {Franck, Isabelle, Adrien, Michelle, Jean, Gustave, ... }
note = [0..20]
Des t-uples :
Nom x prénom = {(Dupont, Franck), (Dupont, Isabelle), ..., (Martin, Franck),
(Martin, Isabelle), ... }
Nom x note = {(Dupont, 0), (Dupont, 1)... }
Table/Relation : une table ou relation est un sous-ensemble du produit cartésien d'une
liste de domaines. Elle est identifiée par un nom. En d'autres termes, une relation est
table dans laquelle chaque colonne correspond à un domaine et porte un nom.
Représentation : tableau dont les lignes sont les t-uples. Les noms de colonne sont les
attributs de la table. Chaque attribut est unique.
Exemples :
NOM_ELV = {Dupont, Durant}
PREN_ELV = {pierre, paul, jacques}
DATE_NAISS = {Date entre 1/1/1990 et 31/12/2020}
NOM_SPORT = {judo, tennis, foot}
La relation ELEVE
ELEVE ⊂ NOM_ELV × PREN_ELV × DATE_NAISS
ELEVE = {(Dupont, pierre, 1/1/1992), (Durant, jacques, 2/2/1994) }
La relation INSCRIPT
INSCRIPT ⊂ NOM_ELV × NOM_SPORT
INSCRIPT = { (Dupont, judo), (Dupont, foot), (Durant, judo) }
Schéma de relation : Nom de la relation, suivi de la liste des attributs avec leurs
Domaines.
Le schéma d'une relation :
le nom de la table,
l'ensemble des noms des attributs,
les contraintes,
Exemples:
ELEVE (NOM, PRENOM, NAISS)
INSCRIPT (NOM_ELV, SPORT)
Exemple de BDR
Étudiants noetu nom prénom
1 28936E Dupont Franck
2 46283B Dupont Isabelle
3 86719E Martin Adrien
4 99628C Robert Adrien
5 99321C Denou Michelle
6 99322C Dupont Isabelle
d- Dépendance fonctionnelle
D.F. élémentaire
D.F. X → A mais A est un attribut unique non inclus dans X et il n’existe pas de X’ inclus
dans X tel que X’ →A