Bases de données Yann Loyer

Slides:



Advertisements
Présentations similaires
III. Conception de schéma de base de données
Advertisements

Les Systèmes de Gestion de Bases de Données (SGBD) Algèbre relationnelle.
Rappels. Les Systèmes de Gestion de Bases de Données (SGBD) L'algèbre relationnelle.
Informatique appliquée à la gestion Bases de données www. labri
Material/Sources: Daniel Bardou, Julie Dugdale &
BASES DE DONNÉES AVANCÉES
Introduction Pour concrétiser l’enseignement assisté par ordinateur
Fonctionnalités des SGBD
Algèbre relationnelle
TP 3-4 BD21.
Gestion de la persistance des objets
INTRODUCTION.
Système de gestion de bases de données. Modélisation des traitements
Pratique de Bases de Données
Bases de Données Plan du cours : Année : 2009/10 A - Généralités :
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Les contraintes d’integrité
Contrôles d'accès aux données
Rappel sur les bases de données et le vocabulaire
Initiation à la conception de systèmes d'information
Connexion en mode application. Bases de données - Yann Loyer2 Connexion en mode application Pour tout type dutilisateurs : –passif, actif, gérant Permettre.
Introduction à la conception de Bases de Données Relationnelles
LANGAGES LIES AU MODELE RELATIONNEL
Les bases de données Cours assuré par: Mlle Smii imen
Chap 4 Les bases de données et le modèle relationnel
Bases de données et SGBD relationnels
L’utilisation des bases de données
Modèle Logique de Données
Gestion des bases de données
SYSTEME DE GESTION DE BASES DE DONNEES
Rappels de logique des prédicats du 1er ordre
Staf 2x Cours de bases de données
Cours de Base de Données & Langage SQL
Les concepts et les méthodes des bases de données
Initiation aux bases de données et à la programmation événementielle
Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 1 Modèle relationnel Historique.
1. Représentation des informations
Introduction.
PHP & My SQL.
ANALYSE METHODE & OUTILS
Problèmes BD. Bases de données - Yann Loyer2 Problèmes BD Ensemble de problèmes couramment rencontrés lors du développement d’applications de bases de.
Bases de données.
Présentation Session RPSI
Management des Systèmes d’Information (MSI)
Hatainville Les Moitiers d’Allonne – Tel : Website : stratic.online.com La démarche projet Mars 2001.
Objectifs A la fin de ce chapitre, vous pourrez : présenter l'utilisation d'opérations de chargement de données par chemin direct décrire l'utilisation.
Créer des packages.
1 BDs Orientées Objets Witold LITWIN. 2 Pourquoi ? F Les BDs relationnelles ne sont pas adaptées aux applications CAD/CAM, cartes géo... F le problème.
Initiation à la conception des systèmes d'informations
Sélection de colonnes (la projection)
François CARCENAC,Frédéric BONIOL ONERA-DTIM Zoubir MAMMERI IRIT
STRUCTURES DES DONNEES. L’ORGANISATION DES DONNEES. BASES DES DONNEES
Modélisation des flux Introduction et définition
1 Initiation aux bases de données et à la programmation événementielle Responsable : Souheib BAARIR. (le sujet de votre .
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Initiation aux SGBD Frédéric Gava (MCF)
Cours Access TuanLoc NGUYEN. Contact Nguyen TuanLoc Tél: Web:
Dr Mohamed Anis BACH TOBJI
1 Structure en MC Principes Stockage des données dans la mémoire volatile d’un ordinateur Problèmes Stockage temporaire «Petits» volumes de données Langages.
La gestion des bases de données
INTRODUCTION AUX BASES DE DONNEES
Initiation aux bases de données et à la programmation événementielle
Initiation aux bases de données et à la programmation événementielle
Cours n°2 Implémentation et exploitation
Introduction Module 1.
Analyse, élaboration et exploitation d’une Base de Données
Cours 11 Entrepôts de données
Le langage SQL LA Plan 1. Introduction Rappels sur le modèle relationnel Les caractéristiques du langage SQL 2. Le Langage d'Interrogation des.
Introduction SGDBOO Sommaire Définition d’un SGBD (6 services)
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
Transcription de la présentation:

Bases de données Yann Loyer yann.loyer@prism.uvsq.fr

Bases de données - Yann Loyer Plan du cours Introduction Modèle relationnel Conception Langage de définition et manipulation (algèbre et calcul relationnels, SQL) Développement d’applications Bases de données - Yann Loyer

Bases de données - Yann Loyer Introduction Plan : I.1) Bases de données I.2) Systèmes de gestion de bases de données I.3) Niveaux d’abstractions Bases de données - Yann Loyer

Bases de données - Yann Loyer Une base de données est ensemble de données : représentant une partie du monde réel stockées en mémoire secondaire pouvant être interrogées et mises à jour servant de support à une ou plusieurs applications Mais… base de données  banque de données Bases de données - Yann Loyer

Bases de données - Yann Loyer Une collection de données est appelée base de données si: format connu (défini au niveau du système et non uniquement au niveau des programmes utilisant les données) et défini par des méta-données (données décrivant des données) Données stockées, recherchées, modifiées uniquement par un type spécial de programmes appelé système de gestion de bases de données Données manipulées sous le contrôle de transactions (ensemble de règles formelles assurant l’intégrité des données Bases de données - Yann Loyer

Système de gestion de bases de données (SGBD) Un SGBD est un ensemble de logiciels-système permettant aux utilisateurs de: mettre en forme sauvegarder, mettre à jour (modifier, insérer, supprimer) rechercher efficacement des données spécifique dans une très grande masse d’informations partagées entre plusieurs utilisateurs Bases de données - Yann Loyer

Bases de données - Yann Loyer Utilisation d’un SGBD Définition du schéma de la base (modèle Entité/Association, normalisation) schéma conceptuel (format des données et associations entre données) schéma interne (correspondance entre les notions conceptuelles et celles liées à l’organisation physique des données – fichiers, index) schémas externes (définition d’une vue pour chaque groupe d’utilisateur) programmes d’application (code est constitué de commandes propres au SGBD intégrées dans un langage de programmation s’exécutent en référençant les schémas externes Bases de données - Yann Loyer

Fonctionnalités d’un SGBD (1) Gestion de données persistantes Gestion de grandes quantités de données Fiabilité des données Cohérence et contraintes d’intégrité Sûreté du fonctionnement Notion de transaction atomique Techniques de sauvegarde et/ou de journalisation Procédures de reprise sur panne Bases de données - Yann Loyer

Fonctionnalités d’un SGBD (2) Sécurité d’accès commandes d’autorisation Partage et accès concurrents techniques de verrouillage Interrogation : langages de requêtes déclaratifs et incomplets intégration du langage de requête et d’un langage de programmation  dysfonctionnements (typage et traitement ensembliste) Bases de données - Yann Loyer

Niveaux d’abstraction Plusieurs niveaux d’abstractions entre l’ordinateur (qui traite des bits) et l’utilisateur final (qui traite des concepts) Dans le domaine des BD, on en considère 3: Niveau interne Niveau conceptuel Niveau externe Bases de données - Yann Loyer

Bases de données - Yann Loyer Niveau interne Ensemble de fichiers et de structures utilisées pour permettre un accès efficace aux données (index) Appelé base de données physique Réside en mémoire auxiliaire Plusieurs BD physiques peuvent être gérées par le même SGBD Bases de données - Yann Loyer

Bases de données - Yann Loyer Niveau conceptuel (1) Base de données conceptuelle: abstraction du monde réel Langage de définition de données: fourni par le SGBD permet de définir la BD conceptuelle en terme de modèle de données permet de réaliser son implémentation au niveau physique Bases de données - Yann Loyer

Bases de données - Yann Loyer Niveau conceptuel (2) Principaux modèles de données: Modèle hiérarchique Structure de base: l’arbre Modèle réseau Structure de base: le graphe orienté Modèle relationnel Structure de base: la relation Émergence de nouveaux modèles Modèle orienté-objets Bases de données - Yann Loyer

Bases de données - Yann Loyer Niveau conceptuel (3) BD conceptuelle: description d’un ensemble cohérent réunissant les informations pertinentes d’une entreprise Processus: ensemble de fichiers  BD conceptuelle appelé intégration de données coordonné par une ou plusieurs personnes constituant l’administrateur de la base Bases de données - Yann Loyer

Bases de données - Yann Loyer Niveau externe (1) Appelé également Niveau des vues Vue: abstraction de la BD conceptuelle représentant une partie de ses informations exemple: si une BD conceptuelle décrit des clients par leurs noms, dates de naissance et numéro de CB, alors on peut définir une vue décrivant les clients par leurs noms et ages La plupart des SGBD fournissent: un langage de définition de vues un langage de manipulation de vues Bases de données - Yann Loyer

Bases de données - Yann Loyer Niveau externe (2) Construction de vues : processus inverse de l’intégration de données Avantage de l’intégration de données: vue globale des données de l’entreprise meilleur contrôle de la cohérence élimination des redondances meilleur contrôle d’accès aux données possibilité de faire des études statistiques plus facilement etc. Bases de données - Yann Loyer

Vision globale d’une BD Programme Programme d’application 1 d’application n Niveau vue 1 … vue n externe Niveau BD conceptuelle Conceptuel Niveau BD physique Interne Bases de données - Yann Loyer

Atouts du modèle relationnel Le modèle relationnel est très populaire dans l’industrie car: conceptuellement simple (tout programmeur d’application peut aisément comprendre les concepts de base) fondements mathématiques (les aspects opérationnels peuvent être prouvés et des propositions testées) Bases de données - Yann Loyer

II. Modèle relationnel

II.1 Définition d’une BD relationnelle La définition d’une BD suppose l’existence de: un ensemble d’attributs un ensemble de domaines (ou types, ou valeurs) un ensemble de noms de tables Bases de données - Yann Loyer

Schéma de relation Définition: schéma de relation R = ensemble fini de la forme R = {A1:dom(A1),…, An: dom(An)} où Ai est un attribut et dom(Ai) le domaine de Ai noté R = {A1,…, An} Bases de données - Yann Loyer

Bases de données - Yann Loyer N-uplets et relations Définition: un n-uplet t sur R est une fonction qui associe à chaque attribut de Ai de R une valeur de son domaine dom(Ai) Si t(Ai) = ai pour tout i, alors t est représenté par ai… an Définition: une relation r sur R est un ensemble de n-uplets sur R R est appelé schéma de r, et noté sch(r) Bases de données - Yann Loyer

Bases de données - Yann Loyer Base de données Définition: un schéma de base de données S est un ensemble fini de tables, où chaque table T est associée à un schéma de relation sch(T) T de schéma sch(T) = {A1,…, An} est notée T(A1,…,An) Un attribut peut appartenir à plusieurs tables Plusieurs tables peuvent avoir le même schéma Définition: Soit S = {T1,…, Tn}. Une base de données  sur S est une fonction qui associe à chaque table Ti une relation finie (Ti) sur sch(Ti) Bases de données - Yann Loyer

Exemple de BD relationnelle Soit S le schéma de base de données suivant: S = {E(EMP:char ; DEP:char) ; M(MGR:char ; DEP:char)} Soit  une base de données sur S définie par: (E) = {(Dupont;info); (Durand;info)} (M) = {(Martin;info); (Marton;RH)} Bases de données - Yann Loyer

Bases de données - Yann Loyer II.2 Mises à jour Insertion Modification Suppression d’un ou plusieurs n-uplets dans une relation donnée  pas de difficulté au niveau conceptuel Bases de données - Yann Loyer

Bases de données - Yann Loyer II.3 Consultation Deux types de langages: langages fondés sur l’algèbre relationnelle impératifs langages fondés sur le calcul relationnel déclaratifs Bases de données - Yann Loyer

II.3.1 Algèbre relationnelle 6 opérations de bases qui s’appliquent aux relations et retournent des relations: Union Différence Projection Sélection Produit Renommage Bases de données - Yann Loyer

Bases de données - Yann Loyer UNION argument : 2 relations r et s telles que sch(r) = sch(s) résultat : une relation r  s telle que: sch(r  s) = sch(r) r  s = {t | t  r ou t  s} Bases de données - Yann Loyer

Bases de données - Yann Loyer DIFFERENCE argument : 2 relations r et s telles que sch(r) = sch(s) résultat : une relation r - s telle que: sch(r - s) = sch(r) r - s = {t | t  r et t  s} Bases de données - Yann Loyer

PROJECTION argument : une relation r et un ensemble d’attributs X tel que X  sch(r) résultat : une relation X(r) telle que: sch(X(r)) = X X(r) = {t(X) | t  r} où t(X) est la projection de t sur X Bases de données - Yann Loyer

Bases de données - Yann Loyer SELECTION argument : une relation r et une formule  formules : soient A et B des attributs, t et t’ des n-uplets et a une valeur de dom(A), alors : t(A) = t’(B), t(A) < t’(B), t(A) = a … sont des formules Si F et G sont des formules, alors (F), F, FG, FG sont des formules résultat : une relation (r) telle que: sch((r)) = sch(r) (r) = {t | t  r et } Bases de données - Yann Loyer

PRODUIT argument : 2 relations r et s telles que sch(r)  sch(s) =  résultat : une relation r  s telle que: sch(r  s) = sch(r)  sch(s) r  s = {t | t(sch(r))  r et t(sch(s))  s} Bases de données - Yann Loyer

RENOMMAGE argument : une relation r et une fonction f qui à chaque attribut associe un attribut résultat : une relation f(r) telle que: sch(f(r)) = f(sch(r)) f(r) = {s | t  r et s  f = t} Bases de données - Yann Loyer

Langage algébrique de requêtes Chaque schéma de BD est associé à un langage algébrique de requêtes: Ensemble de toutes les expressions relationnelles que l’on peut former à partir des tables de S et des opérations de l’algèbre relationnelle Chaque expression e est appelée requête sur S Le résultat de l’évaluation de e sur  est appelé réponse de e sur  Bases de données - Yann Loyer

Évaluation d’une expression Remplacer chaque table T de e par (T) Effectuer les opérations de e Renvoyer le résultat Traitement parallèle Cela équivaut à définir une fonction Fe : Fe () = eval(e, ) Bases de données - Yann Loyer

Requêtes équivalentes Chaque requête équivaut à un programme Fe L’évaluation de e sur une BD  équivaut à l’exécution de ce programme avec en entrée  et en sortie eval(e, ) Deux expressions e et e’ sont équivalentes, e  e’, ssi Fe = Fe’ Exemple: X(R) = X(Y(R) ) si X  Y Bases de données - Yann Loyer

Bases de données - Yann Loyer Exercice Soit le schéma de BD suivant: SALLE(nom,horaire,titre) FILM(titre,réalisateur,acteur) PRODUIT(producteur,titre) VU(spectateur,titre) AIME(spectateur,titre) Bases de données - Yann Loyer

Bases de données - Yann Loyer Requêtes Quels sont les films réalisés par Coppola? Où et à quelle heure peut-on voir « Le parrain »? Où peut-on voir un film dans lequel joue Al Pacino? Après 23h, où peut-on voir un film dans lequel joue Marlon Brando? Quels acteurs ont produit un film dans lequel ils jouent? Quels sont les acteurs qui ont produit un film? Quels acteurs ont produit un film qu’ils ont réalisé? Quels sont les spectateurs n’aimant aucun film? Quels spectateurs n’ont pas aimé un des films qu’ils ont vus? Quels spectateurs ont aimé tous les films qu’ils ont vus? Bases de données - Yann Loyer

Bases de données - Yann Loyer II.3.2 Calcul relationnel Langage logique  langage de requêtes relationnels (SQL) Principe: Chaque table T de S  un prédicat N-uplets de (T)  valeurs satisfaisant le prédicat Bases de données - Yann Loyer

Bases de données - Yann Loyer Calcul relationnel Formules: soit un ensemble de variables par domaine Les valeurs et variables d’un domaine sont des termes Si x1,…, xn sont des termes, alors R(x1,…, xn) x1  xn avec   {=, ,,…} sont des formules Si F et G sont des formules et x une variable libre de F, alors (F), F, F  G, F  G, F  G x F, x F Bases de données - Yann Loyer

Bases de données - Yann Loyer Calcul relationnel Interprétation: la formule T(x1,…, xn) est vraie pour une valuation donnée si le n-uplet correspondant appartient à la relation (T) Requête: {(x1,…, xn) | F(x1,…, xn)} où (x1,…, xn) sont les variables libres de F Réponse: ensemble des valeurs de (x1,…, xn) pour lesquelles F est vraie Bases de données - Yann Loyer

Bases de données - Yann Loyer II.3.3 SQL SQL : langage de requêtes fondé sur le calcul relationnel Forme de base: SELECT A1,…, An FROM T1,…, Tm WHERE ; les Ai sont des attributs des tables T1,…, Tm  est une condition Bases de données - Yann Loyer

Bases de données - Yann Loyer SQL SELECT A1,…, An FROM T1,…, Tm WHERE ; est équivalent à A1,…, An ( (T1  …  Tm )) Toutes les expressions de l’algèbre et du calcul peuvent être écrite en SQL (union, diff, intersect, forall, exists, not, in…) Bases de données - Yann Loyer

SQL A1,…, An ( (T1  …  Tm ))  A1,…, An (’ (T’1  …  T’p )) équivaut à (SELECT A1,…, An FROM T1,…, Tm WHERE ) UNION (SELECT A1,…, An FROM T’1,…, T’p WHERE ’) Bases de données - Yann Loyer

II.3.4 Optimisation des requêtes Preuves d’équivalences entre expressions à l’aide de: Propriétés classiques (associativité, commutativité, …) Définitions des opérations Propriétés telles que : t  r || s  t(R)  r et t(S)  s t  X (r)  t’  r (t’(X) = t) t  r  X  R (t(X)  X (r)) Bases de données - Yann Loyer