Vous êtes sur la page 1sur 28

Base de données

Organisation de l'unité d'enseignement

Cours/TD : Khalil Djelloul

TP Laure Kahlem

Contact : prenom.nom@univ-orleans.fr

Support de cours : 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
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.


Base de données (BDD)

Les bases de données ont envahi l’ensemble des activités professionnelles et personnelles :

- Transports - Gestion de stocks et logistique

- Banques et administrations - Médecine

- Commerces et marketing - Gestion de données personnelles


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’abstraction
plus é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 ?

Indépendance physique :

Indépendance des langages de manipulation de données vis-à-vis de la


représentation physique des données.

Possibilité d’optimiser la représentation sans modifier les programmes


d’applications.

Indépendance logique :

Évolution de la base de données sans réécrire les programmes.

Les applications peuvent disposer de vues logiques qui leurs sont propres.
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èle


physique.
Modèles de données

Un modèle de données est un ensemble de concepts et de règles de compositions de ces


concepts 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 et
s’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 kg


le 17 septembre 2005, des pommes à Orléans à 1€40 le 26 septembre et du maïs chez le
grossiste à Paris à 1€ le kg le 20 septembre 2005.

Règles de gestion : un même adhérent peut avoir plusieurs commandes en cours à la


coopérative. Plusieurs achats en cours des mêmes produits peuvent concerner le même
fournisseur.

Requête : On souhaite pouvoir lister toutes les commandes (avec dates) passées par un
adhérent en saisissant simplement son numéro d'adhérent. Pour simplifier l'exercice on
ne 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 : un


sché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 X
il nous faut questionner la table Commande qui nous renverra les numCommande et
dateCommande.

Commande(numCommande,dateCommande,numAdhérent)

SELECT * FROM Commande

WHERE numAdherent=235

ORDER BY dateCommande

Vous aimerez peut-être aussi