Base de données - CELENE

25
Base de données

Transcript of Base de données - CELENE

Page 1: Base de données - CELENE

Base de données

Page 2: Base de données - CELENE

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

Page 3: Base de données - CELENE

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é

Page 4: Base de données - CELENE

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.

Page 5: Base de données - CELENE

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

Page 6: Base de données - CELENE

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

Page 7: Base de données - CELENE

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.

Page 8: Base de données - CELENE

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.

Page 9: Base de données - CELENE

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.

Page 10: Base de données - CELENE

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.

Page 11: Base de données - CELENE

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)

Page 12: Base de données - CELENE

Modèles de données relationnel

Page 13: Base de données - CELENE

Modèles de données objet

Page 14: Base de données - CELENE

Modèles de données semi-structuré

Page 15: Base de données - CELENE

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.

Page 16: Base de données - CELENE

Architecture d'un SGBD

Architecture centralisé

Page 17: Base de données - CELENE

Architecture d'un SGBD

Architecture client-serveur

Page 18: Base de données - CELENE

Architecture d'un SGBD

Architecture 3 tiers

Page 19: Base de données - CELENE

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é.

Page 20: Base de données - CELENE

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

Page 21: Base de données - CELENE

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.

Page 22: Base de données - CELENE

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

Page 23: Base de données - CELENE

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)

Page 24: Base de données - CELENE

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')

Page 25: Base de données - CELENE

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