Bases de données avancées ENSEIRB

Documents pareils
Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Introduction au Système de Gestion de Base de Données et aux Base de Données

Les bases de données

1 Introduction et installation

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

16H Cours / 18H TD / 20H TP

IT203 : Systèmes de gestion de bases de données. A. Zemmari zemmari@labri.fr

Bases de données - Modèle relationnel

Bases de données relationnelles

Introduction aux Bases de Données

Bases de Données. Plan

Cours Bases de données

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Information utiles. webpage : Google+ : digiusto/

Bases de données avancées Introduction

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

I4 : Bases de Données

Bases de données relationnelles : Introduction

INFORMATIQUECOMMUNE CPGE. Introduction aux Bases de Données Relationnelles

Le langage SQL Rappels

COURS de BASES de DONNEES

Introduction aux bases de données. Généralités sur les bases de données. Fonctions d'un SGBD. Définitions. Indépendance par rapport aux traitements

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

INTRODUCTION AUX BASES de DONNEES

Rappel sur les bases de données

Patrice BOURSIER. Professeur, Univ. de La Rochelle. Bases de Données. Notes de cours

Bases de données cours 1

Présentation du module Base de données spatio-temporelles

Vincent Augusto

Le langage SQL (première partie) c Olivier Caron

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

A QUOI SERVENT LES BASES DE DONNÉES?

IFT3030 Base de données. Chapitre 2 Architecture d une base de données

Bases de données élémentaires Maude Manouvrier

Le Langage SQL version Oracle

CREATION WEB DYNAMIQUE

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

Évaluation et optimisation de requêtes

Langage SQL : créer et interroger une base

Modélisation de bases de données : Le modèle relationnel

Structure fonctionnelle d un SGBD

Cours SGBD 1. Concepts et langages des Bases de Données Relationnelles

UE 8 Systèmes d information de gestion Le programme

TP Contraintes - Triggers

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

INTRODUCTION AU DATA MINING

BASES DE DONNÉES CONCEPTS ET PROGRAMMATION. Antoine Cornuéjols. AgroParisTech, Spécialité Informatique ( ) Version du 19 octobre 2009

Bases de données cours 4 Construction de requêtes en SQL. Catalin Dima

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Base de Données et Langage SQL

UML et les Bases de Données

Bases de données réparties: Fragmentation et allocation

Le Langage De Description De Données(LDD)

Bases de données Outils de gestion

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Bases de données relationnelles & SQL

SOMMAIRE. Travailler avec les requêtes... 3

Premiers Pas en Programmation Objet : les Classes et les Objets

Master I Génie Logiciel

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Systèmes d information et bases de données (niveau 1)

Initiation à SQL. Le langage de communication avec une base de données relationnelles. Application avec PostgreSQL. Nathalie Camelin 2011/2012

Chapitre 1 Généralités sur les bases de données

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Bases de données. Yamine AIT AMEUR. INPT-ENSEEIHT DIMA 2 Rue Charles Camichel Toulouse Cedex 7

Bases de Données relationnelles et leurs systèmes de Gestion

Introduction aux SGBDR

Java et les bases de données

Bases de données et sites WEB

DESS CCI Formation Continue. Février Université Louis-Pasteur de Strasbourg Département d'informatique

PostgreSQL. Formations. SQL avancé Calendrier... 18

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

SQL Historique

Chapitre 10. Architectures des systèmes de gestion de bases de données

BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

Système de Gestion de Bases de Données Relationnelles. MySQL. Youssef CHAHIR

Introduction aux Bases de Données Relationnelles Conclusion - 1

Introduction aux Systèmes de Gestion de Bases de Données Relationnelles. Olivier Losson

TP Bases de données réparties

1ère partie Nadine Cullot. Bases de données déductives. Bases de données déductives Introduction et Motivation

Les bases de données. Historique

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

Introduction aux Bases de Données

SQL MAP. Etude d un logiciel SQL Injection

Programme détaillé BTS INFORMATIQUE DE GESTION DIPLÔME D ETAT. Objectifs de la formation. Les métiers. Durée de la formation

A QUOI SERVENT LES BASES DE DONNÉES?

Bases de données Cours 1 : Généralités sur les bases de données

Introduction aux bases de données Cours 1 : Généralités sur les bases de données

MODE OPERATOIRE OPENOFFICE BASE

Bases de données. PTSI Lycée Eiffel. 28 février 2014

Techniques d optimisation des requêtes dans les data warehouses

Méthode d analyse Merise

Java DataBaseConnectivity

SQL Serveur Programme de formation. France Belgique Suisse - Canada. Formez vos salariés pour optimiser la productivité de votre entreprise

Transcription:

ENSEIRB LaBRI - Université de Bordeaux 2009-2010

Plan du cours Rappels : algébre relationnelle, stockage, etc Optimisation Transactions

Fonctionnalités d un SGBD Objectifs : Stocker et centraliser des données (BD) et les mettre à disposition des utilisateurs. Manipuler (de manière transparente pour l utilisateur) des données (SGBD). Gestion du stockage : Tailles énormes de données, éviter (dans la limite du possible) les redondances. Persistance : Les données survivent aux programmes qui les créent Fiabilité : Mécanismes de reprise sur pannes (logiciel ou matériel) Sécurité - Confidentialité : Contrôle des utilisateurs et des droits d accès aux données

Fonctionnalités d un SGBD (suite) Cohérence : Contraintes d intégrité Contrôle de concurrence : Conflits d accès (notion de transaction) Répercussions sur la cohérence Interfaces homme-machine : Convivialité + différents types d utilisateurs Distribution : Données stockées sur différents sites Optimisation : Transferts MC-MS

Architecture fonctionnelle d un SGBD

Modèle relationnel

Plan Structure d une BD relationnelle Algèbre relationnelle Calcul relationnel

Structure d une BD relationnelle Les données sont structurées en tables (relations) Etant donnés les ensembles A 1,... A n, une relation r est un sous ensemble de A 1 A 2 A n. Une relation est un ensemble de n-uplets (ou tuples) de la forme a 1,... a n avec a i A i.

Structure d une BD relationnelle Exemple : On a trois ensembles : Nom, Num Cte et Rue avec Nom = {Durand, Dupont, Dupond} Num Cte = {123, 124, 235, 226} Rue = {Neuve, vieille, Courte } Alors { Dupont, 123, Neuve, Dupont, 124, Neuve, Dupond, 235, Neuve, Durand, 123, Vieille } est une relation sur Nom Num Cte Rue

Schéma de relation Une table est une relation (au sens mathématique) qui a un nom A 1,...,A n sont des attributs R(A 1,...,A n ) est un schéma de relation. R est le nom du schéma de la relation. On note Att(R) pour désigner l ensemble des attributs de R L arité de R est la cardinalité de Att(R) Le domaine de A i (noté dom(a i )) est l ensemble des valeurs associées à A i. Cet ensemble peut être fini ou non

Instance de relation Emp Nom Num Cte Rue Dupont 124 Neuve Dupond 235 Neuve Durand 123 Vieille Att(Emp) = {Nom,Num Cte,Rue} Arité(Emp) = 3 Dom(Num Cte) = les entiers naturels (infini) Dom(Nom) = chaînes de moins de 20 caractères (fini)

Langages de requête Langages qui permettent d interroger la BD (i) Langages relationnels purs Algèbre relationnelle Calcul relationnel par n-uplet Calcul relationnel par domaine (ii) Langages pratiques SQL (Structured Query Language) QUEL (Query Language) SEQUEL (Structured English as a Query Language) QBE (Query By Example)

Algèbre relationnelle Six opérations de base 1 Projection 2 Sélection 3 Union 4 Différence 5 Produit cartésien 6 Renommage Certaines sont unaires d autres sont binaires

Projection Notation : π A1,...,A k (r) où : r : nom de relation et 1 i k A i Att(r). Le résultat de cette opération est une relation avec k colonnes

Projection (Exemple) On veut extraire les noms des employés de la relation <<Emp>> ci-dessous Emp Nom Num Cte Rue Dupont 124 Neuve Dupont 235 Neuve Durand 123 Vieille Nom π Nom (Emp) = Dupont Durand

Sélection Notation : σ Cond (r) où r est le nom d une relation Cond est une condition de la forme 1 Att i θ Att j ou Att i θ constante avec θ {<,, =,, >, }, ou bien 2 une conjonction ( ) ou une disjonction ( ) de conditions Le résultat est une relation qui contient tous les n-uplets de r qui satisfont la condition Cond

Sélection (Exemple) On veut avoir les informations concernant les employés dont le nom est Dupont Emp Nom Num Cte Rue Dupont 124 Neuve Dupont 235 Neuve Durand 123 Vieille σ (Nom=Dupont) = Nom Num Cte Rue Dupont 124 Neuve Dupont 235 Neuve

Union, Différence et Intersection Opérations ensemblistes classiques Notation : r s; r s; r s r s = {t t r ou t s} r s = {t t r et t s} r s = {t t r et t s} Opérations binaires Il faut que Att(r) = Att(s)

Union, Différence et Intersection r s = A B α 1 β 1 A B α 1 r s = α 2 β 1 β 3 r s = A B α 2 r A B α 1 α 2 β 1 s A B α 2 β 3

Produit cartésien Notation : r s r s = {tv t r et v s} tv est la concaténation des tuples t et v Cette opération n est pas définie si Att(r) Att(s) Att(r s) = Att(r) Att(s)

Produit cartésien (Exemple) r A B α 1 β 2 s C D E α 10 + β 10 r s = A B C D E α 1 α 10 + α 1 β 10 β 2 α 10 + β 2 β 10

Renommage Notation : ρ Atti Att i (r) Permet de renommer l attribut Att i par Att i Le résultat est la relation r avec un nouveau schéma

Renommage (Exemple) r A 10 20 ρ A B (r) = r B 10 20

Composition des opérateurs On peut appliquer un opérateur de l algèbre au résultat d une autre opération ) Exemple : π A (σ B=20 (r) On dit que l algèbre relationnelle est un langage fermé car chaque opération prend une ou deux relations et retourne une relation. Soient les schémas de relation Tit(Id,Nom,Adresse) et Cte(Num, Solde, Id Tit). Le compte de numéro Num appartient au client identifié par Id Tit. On veut avoir (i) le numéro, (ii) le solde et (iii) le nom du titulaire de chaque compte débiteur. Num Solde Id Tit Id Nom Adresse 120 25234.24 A25 A25 Dupond rue neuve 135-100 A25 B212 Durand rue vieille 275 230 B212 Tit Cte

Composition des opérateurs (Suite) 1 Cte Tit retourne une relation qui associe à chaque tuple de Cte, tous les tuples de Tit 2 σ Id=Id Tit (Cte Tit) élimine les tuples où le compte n est pas associé au bon titulaire ) 3 σ Solde<0 (σ Id=Id Tit (Cte Tit) retient les comptes débiteurs ( )) 4 π Nom,Num,Solde σ Solde<0 (σ Id=Id Tit (Cte Tit) élimine les attributs non demandés Comment aurait-on pu faire si dans Cte on avait Id au lieu de Id Tit comme nom d attribut?

Jointure Notation : r s Att(r s) = Att(r) Att(s) Résultat : Soient t r r et t s s. t r t s r s ssi A Att(r) Att(s)t r.a = t s.a

Jointure (Exemple) r A B α 10 α 15 β 1 s B C 10 + 1 r s = A B C α 10 + β 1

Jointure (Exemple) Noter que le même résultat peut être obtenu comme suit : 1 temp 1 := ρ B B1 (s) 2 temp 2 := r temp 1 3 temp 3 := σ B=B1 (temp 2 ) 4 res := π A,B,C (temp 3 ) La jointure n est pas une opération de base de l algèbre relationnelle

Calcul relationnel par n-uplet Les requêtes sont de la forme {t P(t)} C est l ensemble des n-uplets tels que le prédicat P(t) est vrai pour t t est une variable n-uplet et t[a] désigne la valeur de l attribut A dans t t r signifie que t est un n-uplet de r P est une formule de la logique de premier ordre

Rappel sur le calcul des prédicats Des ensembles d attributs, de constantes, de comparateurs {<,... } Les connecteurs logiques et, ou et la négation Les quantificateurs et : ( ) t r Q(t) : Il existe un tuple t de r tel que Q est vrai ( ) t r Q(t) : Q est vrai pour tout t de r

Exemples de requêtes Considérons les schémas de relations suivants : Film(Titre, Réalisateur, Acteur) instance f Programme(NomCiné, Titre, Horaire) instance p f contient des infos sur tous les films et p concerne le programme à Bordeaux Les films réalisés par Bergman {t t f t[réalisateur] = Bergman } Les films où Jugnot ( et Lhermite jouent ensembles {t t f s f t[titre] = s[titre] ) t[acteur] = Jugnot s[acteur] = Lhermite }

Exemples de requêtes(suite) Les titres des films programmés à Bordeaux : ( ) {t s p t[titre] = s[titre] } Les films programmés ( à l UGC mais pas au Trianon : {t s p s[titre] = t[titre] s[nomciné] = UGC ( )) u p u[nomciné] = Trianon u[titre] = t[titre] } Les titres de ( films qui ( passent à l UGC ainsi que leurs réalisateurs : {t s p u f s[nomciné] = UGC )) s[titre] = u[titre] = t[titre] t[réal] = u[réal] }

Expressions non saines Il est possible d écrire des requêtes en calcul qui retournent une relation infinie. Exemple : Soit NumCte(Num) avec l instance n et la requête {t t n} i.e les numéros de compte non recensés. Si on considère que le Dom(Num) = N, alors la réponse à cette requête est infinie. Une requête est saine si quelle que soit l instance de la base dans laquelle on l évalue, elle retourne une réponse finie. Dépendance du domaine.

Calcul relationnel par domaine Les requêtes sont de la forme : { x 1,...,x n P(x 1,...,x n )} Les x i représentent des variables de domaine. P(x 1,...,x n ) est une formule similaire à celles qu on trouve dans la logique des prédicats. Exemple : Les titres de films programmés à l UGC de Bordeaux { t nc,t,h p(nc = UGC )}

Relation entre les 3 langages Toute requête exprimée en algèbre peut être exprimée par le calcul. Toute requête saine du calcul peut être exprimée par une requête de l algèbre. Les 3 langages sont donc équivalents d un point de vue puissance d expression. L algèbre est un langage procédurale (quoi et comment) alors que le calcul ne l est pas (seulement quoi)