View
6
Download
0
Category
Preview:
Citation preview
Base de données
Evaluation
Note = ½ CT + ½ CC.
CT examen terminal de 2H sur Cours + TD + TP.
CC contrôle continu de TD et de TP.
Seconde session sous la forme d'un CT de 2H unique.
Références bibliographique
Plan du cours
Introduction
Cours 1 : Modélisation entité – association
Cours 2 : Le modèle relationnel
Cours 3 : SQL : langage de définition des données.
Cours 4 : SQL : langage de manipulation des données.
Cours 5 : Algèbre relationnel
Cours 6 : SQL : langage d’interrogation des données.
Cours 7 : Théorie de la normalisation
Cours 8 : SQL avancé
Base de données (BDD)
Une base de données est une collection de données structurées, organisées par des relations,stockées au sein d’un SGBD permettant :
- la définition de bases de données structurées ;
- l’interrogation et la mise à jour cohérente des données ;
- un stockage pérenne et efficace de grandes quantités de données ;
- une tolérance aux erreurs, pannes et malveillances ;
- permettant un accès concurrent aux utilisateur.
Système de gestion de base de données (SGBD)
Système logiciel visant à simplifier la tâche des usagers en proposant un niveau d’abstractionplus élevé.
Gestion des représentations physiques et logiques des données.
Gestion des accès, optimisation,...
Exemple de SGBD :
Oracle,
PostgreSQL (alternative solide à Oracle),
MySQL : facile d'accès et très utilisé dans la création de sites web dynamiques
Access : permet de déployer rapidement une petite application
Un peu d'histoire
La révolution relationnelle : E.F. Codd. A relational model for large shared data banks. 1970.
Sépare le niveau physique du niveau logique.
Normalisation du langage : SQL.
- concepts simples, cadre théorique bien formalisé, langage de haut niveau (SQL)
- portabilité, optimisation, gestion des pannes
Qu'est ce qu'un SGBD performant ?
Langage de définition, manipulation, contrôle et interrogation de données :
Utilisation d’un langage déclaratif :
Définition (LDD) - Manipulation (LMD) - Contrôle (LCD) – Interrogation (LID)
Repose sur la logique du premier ordre et l’algèbre.
Traduction automatique des requêtes déclaratives en séquences procédurales.
Optimisation automatique des requêtes à l’aide de l’algèbre relationnelle, d’indexes et de techniques d’optimisation.
Gestion des vues
Mise en œuvre de l’indépendance logique par des relations virtuelles.
Stockage par le SGBD d’une définition de question.
Qu'est ce qu'un SGBD performant ?
Gestion de la cohérence
Prise en compte de contraintes d’intégrité (LCD)
Détecter les mises à jour erronées
Simplification du code, partage des contraintes.
Gestion des pannes
Tolérance aux fautes :
Contrainte violée et annulation de transaction
Panne du système, support, réseaux.
Mécanismes de journalisation et de reprise.
Qu'est ce qu'un SGBD performant ?
Concurrence d'accès
Gérer les conflits d’accès concurrents aux mêmes données.
Assurer l’isolation des utilisateurs.
Assurer la cohérence des données.
Gestion de la confidentialité
Mécanismes visant à protéger les données contre les accès non autorisés.
Identification lors de la connexion.
Privilèges d’accès aux objets de chaque base de données.
Etape de conception d'une base de données
(1) Analyse de l'existant :
Repose sur les capacité d'analyse de l'ingénieur
Discussion avec les utilisateurs et experts métiers
(2) Transcription de cette analyse en une série de modèles conceptuels :
D'une spécification orale vers une spécification formelle non ambiguë.
(3) Traduction des modèles conceptuels en modèle logique :
Etape souvent systématique.
(4) Création de la BD dans un SGBD à partir du modèle logique : on aboutit au modèlephysique.
Modèles de données
Un modèle de données est un ensemble de concepts et de règles de compositions de cesconcepts pour décrire les données.
Trois niveaux de modélisation
(1) Le modèle conceptuel : restitution de la situation attendu sans contraintes techniques
Formalisme Entité-Association : axé conception de BD relationnelles
Notation UML : axé conception d'application fondée sur l'objet
(2) Le module logique : Transcription du modèle conceptuel en une solution compatible avec l’utilisation visée (SGBD) sans spécifier explicitement les choix techniques.
Modèle relationnel
Modèle objet et relationnel objet
Modèle semi-structuré (XML)
Modèles de données relationnel
Modèles de données objet
Modèles de données semi-structuré
Modèles de données
(3) Le module physique : décrit l'organisation physique des données , stockage, accélération, etc.
Schéma de données : niveaux d'abstraction de schémas (AINSI/SPARC)
(1) Niveau conceptuel : explication et description sémantique du domaine modélisé. Par exemple description des entité/associations du monde réel.
(2) Niveau externe : spécifier les vues spécifiques à chaque groupe d'utilisateur. Il permet de protéger la BD contre des manipulations incorrectes ou non autorisées,en
cachant certaines données à certains utilisateurs.
(3) Niveau interne : le plus bas niveau → décrit comment les données sont stockées.
Architecture d'un SGBD
Architecture centralisé
Architecture d'un SGBD
Architecture client-serveur
Architecture d'un SGBD
Architecture 3 tiers
Qui intervient sur une BD ?
L’administrateur (une personne ou une équipe)
Il définit le schéma conceptuel de la BD et le fait évoluer.
Il fixe les paramètres de l’organisation physique de façon à optimiser les performances.
Il gère les droits d’accès et les mécanismes de sécurité.
Qui intervient sur une BD ?
Les programmeurs d’application
Construisent les programmes qui alimentent ou exploitent la BD en vue d’applications particulières.
Ils utilisent pour cela le langage de bases de données du SGBD, éventuellement couplé avec un langage de programmation classique.
Les utilisateurs finaux
Ils accèdent à la BD au travers des outils construits par les programmeurs
Coopérative de consommateurs
Une coopérative de consommateurs reçoit des commandes de ses adhérents ets’approvisionne auprès de ses fournisseurs pour satisfaire les commandes.
Par exemple, Mr Martin a commandé à la coopérative 10 kg de pommes et 30 boîtes de maïs le 16 septembre 2005, 25 kg de pommes le 24 septembre 2005.
La coopérative peut choisir d’acheter des pommes en Normandie au tarif de 1€50 le kgle 17 septembre 2005, des pommes à Orléans à 1€40 le 26 septembre et du maïs chez legrossiste à Paris à 1€ le kg le 20 septembre 2005.
Règles de gestion : un même adhérent peut avoir plusieurs commandes en cours à lacoopérative. Plusieurs achats en cours des mêmes produits peuvent concerner le mêmefournisseur.
Requête : On souhaite pouvoir lister toutes les commandes (avec dates) passées par unadhérent en saisissant simplement son numéro d'adhérent. Pour simplifier l'exercice onne garde comme coordonné d'un adhérent que son nom.
Modélisation conceptuelle
Transformation de la description détaillée en un modèle conceptuel des données : unschéma entité-association.
Remarque : plusieurs MCD différents peuvent être solution.
Éléments fondamentaux : Entités - Associations - Attributs - Cardinalités - Identifiant
Modèle relationnel
Transformation du modèle conceptuel des données en un modèle logique des données : un schéma relationnel.
Transformation automatique du MCD suivant des règles.
Eléments fondamentaux : Relations – Attributs – Clés
Commande(numCommande,dateCommande,numAdhérent)
Adhérent(numAdhérent, nomAdhérent)
LigneCommande(numCommande,référence,quantité)
Produit(référence,désignation)
LigneAchat(référence,numAchat,prixUnitaire)
Achat(numAchat,dateAchat,numFournisseur)
Fournisseur(numFournisseur,nomFournisseur,adresseFournisseur)
Définition et manipulation des données sous ORACLE
Adhérent(numAdhérent, nomAdhérent)
LDD : langage de définition de données
CREATE TABLE Adherent ( numAdherent NUMBER(6) CONSTRAINT PK_Adherent_numAdherent
PRIMARY KEY
, nomAdherent VARCHAR2(32) NOT NULL ) ;
LMD : langage de manipulation de données
INSERT INTO Adherent VALUES (329,'Dupont')
Interrogation des données sous ORACLE
Si l'on souhaite connaître toutes les commandes (avec dates) passées par un adhérent Xil nous faut questionner la table Commande qui nous renverra les numCommande etdateCommande.
Commande(numCommande,dateCommande,numAdhérent)
SELECT * FROM Commande
WHERE numAdherent=235
ORDER BY dateCommande
Recommended