Partie 1 Séance 1 DBs
Partie 1 Séance 1 DBs
Partie 1 Séance 1 DBs
Abdelhak BOULAALAM
[email protected]
https://sites.google.com/a/usmba.ac.ma/boulaalam/
1
©Boulaalam/SMBA University
OBJECTIFS DU MODULE
2 ©Boulaalam/SMBA University
1
Elément 2 : Vue d’ensemble
Outline
3
• Histoire des systèmes de bases de données
©Boulaalam/SMBA University
4 ©Boulaalam/SMBA University
2
Elément 2 : Vue d’ensemble
Outline
5 ©Boulaalam/SMBA University
Présentation générale
Donnée vs Information, DB
• Quelques points de terminologie:
Qu’est-ce qu’une donnée?
C’est une information quelconque comme, par exemple : voici une personne,
elle s’appelle CODD. C’est aussi une relation entre des informations : Codd
est le fondateur du model relationnel.
Des relations de ce genre définissent des structures.
Une base de données est un ensemble, en général volumineux, de
telles informations, avec une caractéristique essentielle :
on souhaite les mémoriser de manière permanente. D’où la
définition :
3
Présentation générale
Donnée |Information| Connaissance|Ssagesse
7 ©Boulaalam/SMBA University
Présentation générale
Donnée |Information| Connaissance|Ssagesse
Chaque étape
de la pyramide
répond à des questions
et ajoute de la valeur
aux données initiales.
8 ©Boulaalam/SMBA University
4
Présentation générale
Données, Bases de données
• Remarque: une organisation/entreprise consistant en un (ou plusieurs) fichier(s)
stockés sur mémoire secondaire est conforme à cette définition.
Un ensemble de fichiers ne présentant qu’une complexité assez faible.
• MAIS... Malheureusement l’utilisation directe de fichiers soulève de
très gros problèmes :
1. Lourdeur d’accès aux données pour chaque accès... il faudrait écrire un
programme.
2. Manque de sécurité tout programmeur peut accéder directement aux fichiers, il est
impossible de garantir la sécurité et l’intégrité des données.
3. Pas de contrôle de concurrence Dans un environnement où plusieurs
utilisateurs accèdent aux mêmes fichiers, des problèmes de concurrence d’accès se
posent.
Présentation générale
SGBD – DBMS
• D’où le recours à un logiciel:
• chargé de gérer les fichiers constituant une BD,
• prendre en charge les fonctionnalités de protection et de sécurité
• et de fournir les différents types d’interface nécessaires à l’accès aux données.
En particulier, une des tâches principales du SGBD est de masquer à
l’utilisateur les détails complexes et fastidieux liés à la gestion de
fichiers.
5
Présentation générale
SGBD – DBMS Database Systems
• Le SGBD contient des informations sur une entreprise particulière
• Collecte de données interdépendantes
• Ensemble de programmes pour accéder aux données
• Un environnement à la fois pratique et efficace à utiliser
• Les systèmes de base de données sont utilisés pour gérer des collections de
données qui sont:
• Très précieux
• Relativement large
• Accessible par plusieurs utilisateurs et applications, souvent en même temps.
• Un système de base de données moderne est un système logiciel complexe
dont la tâche est de gérer une vaste et complexe collection de données.
• Les bases de données touchent tous les aspects de nos vies
11 ©Boulaalam/SMBA University
Présentation générale
Exemples d'applications de base de données (1/2)
• Informations sur l'entreprise
• Ventes: clients, produits, achats
• Comptabilité: paiements, encaissements, actifs
• Ressources humaines: informations sur les employés, les salaires, les charges
sociales.
• Manufacturing/Fabrication: gestion de la production, des stocks, des
commandes, de la chaîne d'approvisionnement.
• Bancaire et financier
• informations sur les clients, comptes, prêts et transactions bancaires.
• Transactions par carte de crédit
• Finance: ventes et achats d'instruments financiers (par exemple, actions et
obligations; stockage de données de marché en temps réel
• Universités: inscription, notes
12 ©Boulaalam/SMBA University
6
Présentation générale
Exemples d'applications de base de données (2/2)
• Compagnies aériennes: réservations, horaires
• Télécommunication: enregistrement des appels, des SMS et de l'utilisation
des données, génération de factures mensuelles, maintien des soldes sur les
cartes téléphoniques prépayées
• Services basés sur leWeb
• Détaillants en ligne: suivi des commandes, recommandations personnalisées
• Publicités en ligne
• Bases de données de documents
• Systèmes de navigation: pour maintenir les emplacements de divers lieux
d'intérêt ainsi que les itinéraires exacts des routes, des systèmes de train, des
bus, etc.
13 ©Boulaalam/SMBA University
Présentation générale
Objectif des systèmes de base de données (1/2)
• Au début, les applications de base de données étaient construites
directement sur les systèmes de fichiers, ce qui conduit à: ... les 7 PBs
• Redondance et incohérence des données: les données sont stockées dans
plusieurs formats de fichiers, ce qui entraîne l'induplication des informations
dans différents fichiers
• Difficulté d'accès aux données
• Besoin d'écrire un nouveau programme pour effectuer chaque nouvelle tâche
• Isolation des données
• Plusieurs fichiers et formats
• Problèmes d'intégrité
• Les contraintes d'intégrité (par exemple, solde du compte> 0) deviennent «enfouies» dans le
code du programme au lieu d'être énoncées explicitement
• Difficile d'ajouter de nouvelles contraintes ou de modifier celles existantes
14 ©Boulaalam/SMBA University
7
Présentation générale
Objectif des systèmes de base de données (2/2)
• Atomicité des mises à jour
• Les échecs peuvent laisser la base de données dans un état incohérent avec des
mises à jour partielles effectuées
• Exemple: le transfert de fonds d'un compte à un autre doit être terminé ou ne
pas avoir lieu du tout
• Accès simultané par plusieurs utilisateurs
• Accès simultané nécessaire pour la performance
• Des accès simultanés non contrôlés peuvent entraîner des incohérences
• Ex: Deux personnes lisent un solde (disons 100) et le mettent à jour en retirant de l'argent
(disons 50 chacun) en même temps
• Problèmes de sécurité
• Difficile de fournir un accès utilisateur à certaines données, mais pas à toutes
Les systèmes de base de données offrent des solutions à tous
15
les problèmes ci-dessus
©Boulaalam/SMBA University
Présentation générale
SGBD... Est-il Complexe? (1/2)
• La complexité d’un SGBD est essentiellement issue de la diversité des
techniques mises en œuvre, de la multiplicité des composants
intervenant dans son architecture, et des différents types
d’utilisateurs (administrateurs, programmeurs, non informaticiens,
...) qui sont confrontés, à différents niveaux, au système.
• Voici quelques exemples illustrant les cas de figure qu’il faudrait
envisager:
Les modèles de données : Entité-Relation, réseau, hiérarchique,
relationnel, orienté-objet, modèles sémantiques.
Les langages de requêtes : fondements théoriques et les langages
comme SQL, SQL3, Datalog, etc.
Les techniques de stockage : sur disque (optique), sur bande.
L’organisation des fichiers : index, arbre-B, hachage, ...
16 ©Boulaalam/SMBA University
8
Présentation générale
SGBD... Est-il Complexe? (2/2)
L’architecture : centralisé, distribué, sur d’autres bases
accessibles par réseau.
Les techniques d’évaluation et d’optimisation de requêtes.
La concurrence d’accès et les techniques de reprise sur pane.
On peut se raccrocher à une architecture standard conforme
à la plus grande partie des SGBD existant, et offrant
l’avantage de bien illustrer les principales caractéristiques d’un
SGBD.
Présentation générale
BD... Les types d’ utilisateur
• Acteurs / Utilisateurs :
Utilisateur naïf : du non spécialiste des SGBD au
non informaticien.
Concepteur et programmeur d’application :à
partir des besoins des différents utilisateurs, écrit
l’application pour des utilisateurs “naïfs”.
Utilisateur expert : informaticien connaissant le
fonctionnement interne d’un SGBD et chargé
d’administrer la base.
18 ©Boulaalam/SMBA University
9
Présentation générale
View of Data -Vue des données
• Un système de base de données est une collection de
données interdépendantes et un ensemble de programmes
qui permettent aux utilisateurs d'accéder et de modifier ces
données.
• Un des principaux objectifs d'un système de base de données
est de fournir aux utilisateurs une vue abstraite des données.
• Modèles de données
• Un ensemble d'outils conceptuels pour décrire les données, les relations de
données, la sémantique des données et les contraintes de cohérence.
• Abstraction de données
• Masquez la complexité des structures de données pour représenter les
données de la base de données aux utilisateurs à travers plusieurs niveaux
d'abstraction de données.
19 ©Boulaalam/SMBA University
Présentation générale
Data Models - Modèles de données
• Une collection d'outils pour décrire
• Données
• Relations de données
• Sémantique des données
• Contraintes de données
• Modèle relationnel
• Modèle de données Entité-Relation Entité-Association (principalement
pour la conception de bases de données)
• Modèles de données basés sur des objets (orientés objet et objet-
relationnel)
• Modèle de données semi-structuré (XML)
• Autres modèles plus anciens:
• Modèle de réseau
20
• Modèle hiérarchique
©Boulaalam/SMBA University
10
Présentation générale
Exemple: Modèle relationnel
• Toutes les données sont stockées dans différentes tables.
• Exemple de données tabulaires dans le modèle relationnel
Colonnes / Columns
Lignes / Rows
Ted Codd
Turing Award 1981
21 ©Boulaalam/SMBA University
Présentation générale
Exemple: simple BD relationnelle
22 ©Boulaalam/SMBA University
11
Présentation générale
Les niveaux d’abstraction - Levels of Abstraction
• Chaque niveau du SGBD remplit (réalise) un certain nombre de
fonctions :
Niveau physiques : gestion sur mémoire secondaire (fichiers) des
données, du schéma, des index ; Partage de données et gestion
de la concurrence d’accès ; Reprise sur pannes (fiabilité);
Distribution des données et interopérabilité (accès aux réseaux).
Niveau logique : Définition de la structure de données :
Langage de Description de Données (LDD) ; Consultation et
Mise à Jour des données : Langages de Requêtes (LR) et
Langage de Manipulation de Données (LMD) ; Gestion de la
confidentialité (sécurité) ; Maintien de l’intégrité ;
Niveau externe : Vues ; Environnement de programmation
(intégration avec un langage de programmation) ; Interfaces
conviviales et Langages de 4e Génération (L4G) ; Outils d’aides
(e.g. conception de schémas) ; Outils de saisie, d’impression d’états.
23 ©Boulaalam/SMBA University
Présentation générale
Les niveaux d’abstraction - Levels of Abstraction
• Niveau physique/Physical level: décrit comment un
enregistrement (par exemple, un instructeur) est stocké.
• Niveau logique/Logical level: décrit les données stockées dans la
base de données et les relations entre les données.
type instructor = record
ID : string;
name : string;
dept_name : string;
salary : integer;
end;
12
Présentation générale
Système de BD: architecture
• Une architecture pour un système de base de données
25 ©Boulaalam/SMBA University
Présentation générale
Système de BD: architecture
26 ©Boulaalam/SMBA University
13
Présentation générale
BD: définition 2
27 ©Boulaalam/SMBA University
14
Processeur/traitement de requêtes
Query Processor
• Les composants du processeur de requêtes comprennent:
• Interpréteur DDL (Data Definition Language) - interprète les
instructions DDL et enregistre les définitions dans le
dictionnaire de données.
• Compilateur DML (Data Manipulation Language) - traduit
les instructions DML dans un langage de requête en un plan
d'évaluation composé d'instructions de bas niveau que le
moteur d'évaluation de requête comprend.
• Le compilateur DML effectue l'optimisation des requêtes; c'est-à-dire
qu'il choisit le plan d'évaluation le moins coûteux parmi les diverses
alternatives.
• Moteur d'évaluation des requêtes - exécute les instructions de
bas niveau générées par le compilateur DML.
29 ©Boulaalam/SMBA University
Processeur/traitement de requêtes
Query Processor
1. Analyse et traduction
2. Optimisation
3. Évaluation
30 ©Boulaalam/SMBA University
15
Origine et évolution : Modèles de base de
données
31 ©Boulaalam/SMBA University
16
les systèmes basés sur des fichiers
File-based System
Système
Ensemble de programmes d’application qui
basé sur exploitent ses propres fichiers de données
des fichiers pour répondre aux besoins spécifiques d’un
groupe d’utilisateurs finaux (File-based
system).
Élaborés dans les années 1950 et1960:
• Systèmes de traitement de la paie,
• Systèmes de gestion financière et comptable,
• Systèmes de gestion des ressources humaines,
•
33
…
©Boulaalam/SMBA University
17
les systèmes basés sur des fichiers
File-based System
Exemple: ( fichier véhicule)
36 ©Boulaalam/SMBA University
18
les systèmes basés sur des fichiers
File-based System
Modèle hiérarchique
Hierarchical data models
• Une première génération de SGBD appelé dans sa
naissance IMS
• Née de travaux de Recherche menés dans les années
1960 pour le compte de la NASA dans le cadre du
projet Apollo et commercialisés dans les années 1970 par
la société IBM sous le nom IMS (Information
Management System).
• Le SGBD était basé sur le concept que les
enregistrements conservés dans divers fichiers pouvaient
être liés selon une certaine hiérarchie et constituer un
assemblage arborescent .
38 ©Boulaalam/SMBA University
19
Modèle hiérarchique
Hierarchical data models
Exemple 1:
Les données sont représentées dans une structure hiérarchique:
Pour accéder aux données " Offering 4 ", le chemin hiérarchique, en commençant par la gauche,
serait: Teacher 1 > Subject 1 > Offering 1 > Offering 2 > Teacher 2 > Subject 2 > Offering 3 > Subject 3 >
Offering 4
L'unique extrémité d'une relation s'appelle le parent, tandis que l'autre extrémité est appelée
l'enfant.
39
Chaque parent peut avoir plusieurs enfants, mais les enfants ne peuvent avoir qu'un seul parent.
©Boulaalam/SMBA University
Modèle hiérarchique
Hierarchical data models
20
Modèle hiérarchique
Hierarchical data models
• Un SGBD hiérarchique possède un avantage indéniable
sur les systèmes basés sur des fichiers.
• Il permet en effet d’établir des liens un à plusieurs entre les
fichiers d’une base de données : un enregistrement père peut
être lié à plusieurs enregistrements fils .
Modèle hiérarchique-
hiérarchique- bilan
bilan--
Hierarchical data models
21
Modèle réseau
Network data models
• Des chercheurs de la société américaine General
Electric eurent l’idée de généraliser l’approche des
SGBD hiérarchiques en proposant un modèle
d’organisation des données permettant des liens
plusieurs à plusieurs(N-N) entre les fichiers.
Modèle réseau
Network data models
Inconvénients:
• Fondements théoriques!!!
• Ils ne permettaient pas en pratique d’assurer
l’indépendance tant souhaitée entre les applications
et les données.
comme le lien entre deux enregistrements était
implanté à l’aide d’un pointeur, soit une sorte
d’adresse permettant de repérer un enregistrement
associé, cela donnait lieu à des programmes
complexes même pour des requêtes simples.
...... Et après merci à CODD
44 ©Boulaalam/SMBA University
22
Fin des 1970... Evénements
Années 80 et 90 ...
• Années 1980:
• Les prototypes relationnels de recherche évoluent vers
des systèmes commerciaux
• SQL devient un standard industriel
• Systèmes de bases de données parallèles et distribués
• Wisconsin, IBM,Teradata
• Systèmes de base de données orientés objet
• Années 90:
• Grandes applications d'aide à la décision et d'exploration
de données
• Grands entrepôts de données de plusieurs téraoctets
• Émergence du commerce Web
46 ©Boulaalam/SMBA University
23
Années 2000 et 2010 ....
• Années 2000
• Systèmes de stockage Big Data
• Google BigTable,Yahoo PNuts,Amazon,
• Systèmes «NoSQL».
• Big data analysis : au-delà du SQL
• Map reduce and friends
• Années 2010
• SQL rechargé
• SQL front end to Map Reduce systems
• Systèmes de bases de données massivement parallèles
• Bases de données de mémoire principale multicœur
47 ©Boulaalam/SMBA University
Modèle relationnel
Relational Model
• Introduit par E.F.CODD de IBM en 1969; chercheur chez IBM, ce
modèle est à l’origine des premiers SGBD relationnels, devenus des
systèmes incontournables.
• Repose sur des principes mathématiques. (fondé sur de solides bases
théoriques, car il propose des opérateurs issus de la théorie des
ensembles.)
• Organisation de données dans des tables bidimensionnelles:
Relations.
Concepts de base:
• Attribut, Domaine, Relation (table),Tuple.
Attributs: correspondent aux caractéristiques ou propriétés des faits;
Exemples: nom_etudiant, prénom_etudiant
48 ©Boulaalam/SMBA University
24
Modèle relationnel
Relational Model
Domaine: correspond à l’ensemble des valeurs possibles d’un
attribut.
Exemple: prix_produit ]0,5000], ville {Fès, Rabat,..}
Relation: est un ensemble d’attributs qui définissent un fait. (Un
étudiant possède un nom, un prénom, un CNE…).
Exemple: Etudiant(CNE, nom, prénom, date_naissance).
Tuple (n-uplet) : ensemble des valeurs des attributs;
Correspondant à un enregistrement d’une entité.
CNE Nom Prénom Date_naissance
E1 Karimi Karim 15/12/1990
E2 Mamadou Alpha 01/04/1991
49 ©Boulaalam/SMBA University
Modèle relationnel
Relational Model
50 ©Boulaalam/SMBA University
25
Modèle relationnel
Relational Model
Clé étrangère:
• fait référence à la clé primaire d'une autre table.
Code_formation intitulé
Exemple:
C1 Informatique
• Classe(Code_classe, nom) TélécomC2
51 ©Boulaalam/SMBA University
Modèle relationnel
Relational Model
52 ©Boulaalam/SMBA University
26
Modèle relationnel
Relational Model
• Certains éditeurs comme IBM ou Oracle ayant près de 30
ans d’expérience, leurs produits sont assurément d’une
grande fiabilité.
• Standardisé, SQL, le langage utilisé, peut s’interfacer avec
des langages de troisième génération (C, Cobol...), mais
aussi avec des langages plus évolués (comme C++ ou Java).
• Ces systèmes intègrent des outils de développement comme
les précompilateurs, les générateurs de code, d’états ou de
formulaires.
• Ces systèmes répondent bien à des architectures de type
client-serveur et Intranet ou Internet.
53 ©Boulaalam/SMBA University
27
Modèle relationnel (niveaux d’abstraction)
Relational Model
55 ©Boulaalam/SMBA University
28
Modèle de données relationnel
Relational Model
• Bien que le modèle de données relationnel repose sur des concepts simples
(relations, clés et dépendances fonctionnelles pour les principales) MAIS il
permet néanmoins de modéliser artificiellement des données complexes.
• Le modèle relationnel repose sur l’AR: des opérateurs issus de la théorie des
ensembles. De plus, on peut appliquer des techniques de normalisation.
• La programmation de ces concepts est assurée par le langage SQL normalisé par
l’ISO depuis 1986.
• Les liens entre les relations, qui sont des tables au niveau de la base de
données, ne font plus intervenir de chaînages physiques comme le faisaient
les SGBD précédents (hiérarchiques et réseaux), mais des pointeurs logiques
fondés sur des valeurs contenues dans les colonnes.
• Nous verrons que les liens sont réalisés par les clés primaires (primary keys)
et par les clés étrangères (foreign keys).
Pour cette raison, le modèle relationnel est dit « modèle à valeurs ».
57 ©Boulaalam/SMBA University
29
Modèle de données relationnel
Relational Model - Structure des données
59 ©Boulaalam/SMBA University
30
Limitations du modèle relationnel
31
Que sont devenus les SGBD objet ?
32
Que sont devenus les SGBD objet ?
65 ©Boulaalam/SMBA University
66 ©Boulaalam/SMBA University
33
Que sont devenus les SGBD objet ?
67 ©Boulaalam/SMBA University
68 ©Boulaalam/SMBA University
34
Les SGBD objet-
objet-relationnels
70 ©Boulaalam/SMBA University
35
Les SGBD objet-
objet-relationnels
71 ©Boulaalam/SMBA University
72 ©Boulaalam/SMBA University
36