Panorama des Bases de Données



Documents pareils
Panorama des Bases de Données

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

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

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

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Introduction aux Bases de Données Relationnelles Conclusion - 1

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

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

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

TP Contraintes - Triggers

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

Bases de données avancées

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

Notes de cours : bases de données distribuées et repliquées

Les bases de données

Les Bases de Données et l Objet Introduction

Devoir Data WareHouse

Module BDR Master d Informatique (SAR)

OpenPaaS Le réseau social d'entreprise

Hala Skaf-Molli. Nancy-Université 14 mai 2007

BD réparties. Bases de Données Réparties. SGBD réparti. Paramètres à considérer

Bases de Données Avancées

A QUOI SERVENT LES BASES DE DONNÉES?

Chapitre Introduction : Notion de Bases de données. 2. Définition : BD Répartie. 3. Architecture des SGBD. 4. Conception des bases réparties

Bases de données relationnelles

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

//////////////////////////////////////////////////////////////////// Administration bases de données

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

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

Java DataBaseConnectivity

A QUOI SERVENT LES BASES DE DONNÉES?

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

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

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

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

CHAPITRE 1 ARCHITECTURE

Programmation d application Bases de données avec Java

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

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

Cours Bases de données

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

Java et les bases de données

Laboratoires de bases de données. Laboratoire n 6. Programmation SQL. par Danièle BAYERS et Louis SWINNEN

Administration des bases de données. Jean-Yves Antoine

INTRODUCTION AUX BASES de DONNEES

IFT3030 Base de données. Chapitre 1 Introduction

CREATION WEB DYNAMIQUE

Intégrité des données

1. Introduction. Introduction au langage SQL3 (SQL 99) Plan. Sources du cours. 1. Introduction La norme SQL3 et ses composants

TP Bases de données réparties

Configurer la supervision pour une base MS SQL Server Viadéis Services

Gestion de base de données

1. Introduction. Bases de données Réparties, Fédérées et Réplication. Plan. Bibliographie du cours

Systèmes d informations nouvelles générations. Répartition, Parallèlisation, hétérogénéité dans les SGBD. Exemple d application d un futur proche

SQL Historique

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

Intégrité sémantique dans les bases de données relationnelles

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Introduction à JDBC. Accès aux bases de données en Java

Cours Bases de données 2ème année IUT

PHP 4 PARTIE : BASE DE DONNEES

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

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

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing

La problématique de la Préservation des Bases de Données. Olivier ROUCHON CINES Groupe PIN Jeudi 7 Octobre

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

Module BD et sites WEB

Réplication E-maj Foreign Data Wrapper PostGIS PostgreSQL-f

Accès aux bases de données

Bases de Données Réparties Concepts et Techniques. Matthieu Exbrayat ULP Strasbourg - Décembre 2007

Attaques applicatives

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Licence Professionnelle Commerce Electronique. MySQL. Michel DUBOIS Michel Dubois : Support de cours SGBD N 1

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

Bases de données cours 1

Les bases de données Page 1 / 8

Olivier Mondet

Application web de gestion de comptes en banques

Bases de données réparties et fédérées

Introduction aux Bases de Données 2004/2005

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

1 Introduction et installation

Bases de Données Réparties

Bases de données relationnelles : Introduction

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

MS SQL Express 2005 Sauvegarde des données

Structure fonctionnelle d un SGBD

Bases de Données Avancées PL/SQL

Compte Rendu d intégration d application

Logiciel de création de badges personnalisés.

Présentation du PL/SQL

Comment booster vos applications SAP Hana avec SQLSCRIPT

Les Entrepôts de Données

LE LANGAGE SQL2 1. INTRODUCTION

Le langage SQL Rappels

Mysql avec EasyPhp. 1 er mars 2006

Bases de données distribuées et fédérées

Transcription:

Panorama des Bases de Données Didier Donsez 8QLYHUVLWp-RVHSK)RXULHU*UHQREOH,0$,0$*/65$'(/( 'LGLHU'RQVH]#LPDJIU Didier Donsez, 1998-2002, Panorama des BDs 1

Le Modèle Relationnel 2 Un modèle de données Simple Relation Tuple (Ligne) Attribut (Table) (Colonne) Buveurs NB Nom Prénom Type Abus NB NV Date Qte Vins NV Cru Millésime Degré Un langage de manipulation SQL 6(/(&7 %89(856120680$%8647( )520 %89(856$%86 :+(5( %89(8561% $%861% $1'%89(8569,//( 9DOHQFLHQQHV *5283%<%89(856120

les SGBDs Relationnels 3 Des produits murs ORACLE SYBASE INFORMIX IBM DB/2 OPEN INGRES (CA) MICROSOFT SQL SERVER Des produits Open Sources MySQL PostGres HyperSonic Buveurs NB Nom Prénom Type Abus NB NV Date Qte Vins NV Cru Millésime Degré

Le modèle d accès aux SGBDs (Relationnels) 4 Centralisé Terminaux passifs Client Serveur PC avec capacité de traitement émulation VT émulation 3270 ODBC, SQL*Net, JDBC,... SGBD SGBDn SGBD1 Web Multi-Tiers Navigateur Web Terminal nomade HTML/XML/WML HTTP/WAP Web Server + Application Server ODBC, JDBC,... SGBDn SGBD1

5 Programmation Procédurale et SQL SQL : langage déclaratif optimisation de la requête par le SGBD Mais besoin de programme procéduraux boucle, test, affichage, enchainement, curseur sur une table résultat Solutions Middleware ODBC, JDBC Embedded SQL C, Java P/SQL

Les Middlewares SQL/CLI 6 Ordre SQL dans un langage général pas de précompilation indépendance aux SGBDs (et autres sources de données) Normalisation SQL/CLI (Call Level Interface) ODBC Open DataBase Connectivity (MicroSoft) 64/&/, JDBC Java DataBase Connectivity (JavaSoft) 64/&/, IDAPI Integrated Database Application Interface (Borland)... U T I L I S A T E U R A P P L I C A T I O N S API Outils Interactif I D A P I Adapteur IDAPI pour DBase Adapteur IDAPI pour SQL*Net Adapteur IDAPI pour ODBC Driver ODBC pour Oracle Driver ODBC pour MSAccess TCP/IP fichiers locaux fichiers locaux Serveur ORACLE

Exemple JDBC -DYD'DWD%DVH&RQQHFWLYLW\ 7 FODVV (PSOR\H ^ SXEOLFVWDWLFYRLG PDLQ6WULQJ DUJV >@ WKURZV 64/([FHSWLRQ &ODVV1RW)RXQG([FHSWLRQ ^ &ODVVIRU1DPH RUDFOHMGEFGULYHU2UDFOH'ULYHU 6WULQJ GEXUO MGEFRUDFOHRFL# &RQQHFWLRQFRQQ 'ULYHU0DQDJHUJHW&RQQHFWLRQGEXUOWRWRSDVVHPRW 6WDWHPHQWVWPW FRQFUHDWH6WDWHPHQW 5HVXOW6HWUV VWPWH[HFXWH4XHU\ 6(/(&7 QXPHPS QDPH VDODU\ )520(03/2<( ZKLOH UVQH[W^ 6WULQJV UVJHW6WULQJIORDW I UVJHW)ORDWVDODU\ LIUVZDV1XOO 6\VWHPRXWSULQWOQ VQDSDVGHVDODLUH HOVH 6\VWHPRXWSULQWOQ VJDJQHI `UVFORVH `FDWFK([FHSWLRQH^ HSULQW6WDFN7UDFH``

8 Embedded SQL Syntaxe plus concise que SQL/CLI Analyse statique Contrôle de la Syntaxe et du Typage Typage curseur dépendant de la Métabase Précompilation : Pro*C d Oracle, JSQL Source PL + ordres SQL imbriqués PréCompilateur E-SQL dans PL Source PL + ordres SQL/CLI imbriqués ou ordres natifs Compilateur PL Exécutable Base MetaBase

Exemple de Curseur en Pro*C 9 EXEC SQL BEGIN DECLARE SECTION; char nom[21]; float salaire; EXEC SQL END DECLARE SECTION;... EXEC SQL DECLARE c CURSOR FOR SELECT name, salary FROM Employe WHERE salary > 10000; EXEC SQL OPEN CURSOR c; while(1) { EXEC SQL FETCH c INTO :nom, :salaire; if(not FOUND) break else printf ("%s gagne %d $\n", nom, salaire); } EXEC SQL CLOSE CURSOR c;

Exemple SQLJ 10 VTO SXEOLF LWHUDWRU,WHU(PS 6WULQJ LQWGpFODUDWLRQG XQHFODVVHG LWpUDWHXU ^,WHU(PSLWHUGpFODUDWLRQG XQREMHW LWpUDWHXU 6WULQJQRPLQW VDOLQWF VTOLWHU ^6(/(&7QDPHVDODU\ )520(PSOR\H ` ZKLOH WUXH^ VTO ^)(7&+LWHU,172QRPVDO` LILWHUHQG)HWFKEUHDN LIF6\VWHPRXWSULQWOQQRPHVWSD\pVDO ` LWHUVHW5RZVHUHSRVLWLRQQHDXSUHPLHUUpVXOWDW ZKLOHLWHUQH[W^VHSRVLWLRQQHVXUOHVUpVXOWDWVHQSRVLWLRQLPSDLUH 6\VWHPRXWSULQWOQ LWHUQDPHHVWSD\pLWHUVDODU\ ` `

11 Motivations PL/SQL Begin For i=1 to 4 End Select... Client SQL SQL SQL SQL Serveur SQL Exécution de la procédure par le serveur BDR Begin For i=1 to 4 End Client SQL/Proc Moteur SQL/Proc Appel de procédure stockée par le serveur Begin Select... call proc End Client RPC Moteur SQL/Proc Procédure Stockée SQL/Proc Serveur SQL Serveur SQL BDR BDR

Exemple de Curseur en PL/SQL 12 CREATE OR REPLACE PROCEDURE augmentationsalaire( seuil INEmploye.salary%TYPE, augmentation IN NUMBER(2) ) AS sal Employe.salary%TYPE; num Employe.numemp%TYPE; &85625F,66(/(&7 VDODU\ QXPHPS )520 (PSOR\H; BEGIN 23(1F; )(7&+F,172VDO QXP; DWWHQWLRQjO RUGUHW\SHVFRPSDWLEOHV WHILE F127)281' LOOP IF sal IS NOT NULL AND sal < seuil THEN UDPATE Employe SET salary = salary*(augmentation + 100.0)/100 WHERE numemp = num; END IF; )(7&+F,172VDO QXP; END LOOP; &/26(F END;

13 Les Déclencheurs SQL (i) Base de Données Active réagit aux changements d état de la base de données Déclencheur = Evénement-Condition-Action Evénement dans la base Condition Déclenchement d une action Trigger SQL Evénement = INSERT, DELETE, UPDATE dans une relation Action = un ou plusieurs ordres SQL, SQL procédural

14 Les Déclencheurs SQL (ii) Pourquoi faire? valider les données entrées créer un audit de la base de données dériver des données additionnelles maintenir des règles d intégrité complexes implanter des règles de métier supporter des alertes (envoi de e-mails par exemple) Gains développement plus rapide les triggers sont stockées dans la base maintien global des règles d intégrité

Exemple de Trigger Ordre 15 Vente(gencod, qte, prix) VolumeAffaire(total,date) CREATE TRIGGER tg_modifvolume AFTER INSERT ON Vente DECLARE s number; BEGIN select sum(prix*qte) into s from Vente; insert into VolumeAffaire value(s,current); END; CREATE TRIGGERtg_modifInterdit AFTER UPDATE OF prix, qte ON Vente BEGIN raise_application_error(-9998, Modification interdite ); END;

16 Exemple de Trigger Ligne Vente(gencod, qte, prix) Stock(gencod, qte) CREATE TRIGGER tg_nouvvente AFTER INSERT ON Vente FOR EACH ROW BEGIN if :new.qte > (select qte fromstock where gencod = :new.gencod) then raise_application_error(-9997, Stock insuffisant ); else update Stock set qte := Stock.qte - :new.qte where gencod = :new.gencod; END;

17 Les concepts objets dans les BD Concepts Orienté Objet Classe, Objet, Méthode Encapsulation, Héritage De nouvelles applications avec des données complexes Médicale, CAO / DAO, SIG Une autre charge de travail reflète l activité de conception Transactions longues Workflow, Coopération

18 les SGBDs Objets Purs (i) Né d un constat SQL inadéquat aux types complexes et au navigationnel Normalisation ODMG : Object Data Management Group Définition d un Modèle de données pivot ODL pour des langages généraux Produits C++, Smalltalk, Java, OQL ObjectStore, O2, GemStone, POET, Niche : applications ciblées Médicale, CAO / DAO, SIG...

Exemple Personne-Employé-Manager 19 Person,6$ Employee ZRUNVLQ HPSOR\HHV Dept,6$ Manager PDQDJHV PDQDJHU

20 Exemple d ODL interface Person{ attribute string name; attribute date_t birthday attribute Addr addr; } int age(); interface Manager : Employee{ attribute int bonus; relationship Dept manages inverse Dept::manager; float salary(); } interface Employee : Person{ attribute int numemp; attribute int basesalary; relationship Dept worksin inverse Dept::employees; float salary(); }

21 Exemple d ODL interface Dept { attribute string name; attribute Addr postaddr; } relationship Set<Employee> employees inverse Employee::worksin relationship Manager manager inverse Manager::manages int allsalaries();

22 Exemple de Requêtes OQL Extent, Collection SELECT HQDPHGDGGUSRVW FROM(PSOR\HHV HHZRUNVLQ G WHERE GQDPH 5 ' Requête imbriquée Groupage SELECT m.name, m.salary() FROM 6(/(&7GPDQDJHU)520 'HSWV GP WHERE m.salary > 1000000 SELECT departement : d.name, massesal : SUM(e.salary) FROM Depts d, d.employees e GROUP BY d.name

23 Le Modèle Objet-Relationnel (i) Extension du modèle relationnel aux concepts objets Définition de User Defined data Type (UDT) Données + Méthodes, Structuration, Héritage, N1NF Values, Références... Normalisation dans SQL 3 Intérêt : Systèmes patrimoniaux (Legacy Systems) Conserve la compatibilité des applications relationnelles Evolutivité douce Structurations plus complexes (i.e. riches) Définition d Object View sur Base Relationnelle

Le Modèle Objet-Relationnel (ii) ([HPSOHGHW\SHDYHFGHVUpIpUHQFHV 24 Déclaration d un UDT CREATE TYPE person_t; CREATE OR REPLACE BODY TYPE person_t ( nom VARCHAR(20), prenom VARCHAR(10), nais DATE, conjoint 5() person_t ); Déclaration d une table CREATE TABLE Person OF person_t (SCOPE FOR conjoint IS Person) ; CREATE TABLE Ami ( ami1 5() person_t, ami2 5() person_t, SCOPE FOR ami1 IS Person, SCOPE FOR ami2 IS Person );

Le Modèle Objet-Relationnel (iii) ([HPSOHGHGpUpIpUHQFLDWLRQ 25 $PL DPL DPL 3HUVRQ QRP SUHQRP QDLV FRQMRLQW Dupont Jean 10/01/69 Dupont Marie 12/09/73 Martin Patrick 27/02/68 NULL Dupuis Pascal 1/04/69 NULL SELECT a.ami2->conjoint->nom FROM Ami a WHERE a.ami1->nom = Martin ; équivalent à SELECT x.nom FROM Ami a, Person x, Person y, Person z WHERE z.nom = Martin AND REF(z)=a.ami1 AND a.ami2=ref(y) AND y.conjoint=ref(x);

26 Les SGBDs Universels Capable de supporter tout type de données Texte plein, Texte semi structuré, Image, Vidéo, Données Spatiales, Séries Temporelles, Empreintes Digitales, Séquences génomiques... Supporter c est Stocker Manipuler Chercher, Comparer, Retrouver Exemples des empreintes digitales similaires select S.Nom, I.AffaireId from Suspects S, Indices I where S.Empreinte Similar I.Empreinte Extension par UDT Objet Relationnel «Data Cartridges» vendus par des tiers

27 les SGBDs Multimédia Type de données multimédia Image, Son, Vidéo, 3D Indexation par le contenu Quel film contient dans la bande sonore la phrase «T as beaux yeux, tu sais!» Données des index : RDF, MPEG7, Stockage et Distribution Temps Réel Vidéo à la Demande (VOD, Near VOD, PreFetch VOD, )

28 Les SGBDs Parallèles Le problème des Systèmes d Information Les entreprises dépendent de l'information à jour disponible à temps. augmentation du volume d'information : 30% par an augmentation du volume des transactions : x 10 dans 5 ans La charge de travail change : simple OLTP (transactionnel) transactions complexes (e.g., comme support au décisionnel) Le Besoin : des serveurs bases de données qui fournissent à haut débit et avec de bons temps de réponse des charges de travail variées sur des très grosses bases de données.

29 les SGBDs Parallèles 3 Capacité accrue Temps de Réponse plus court VSHHGXS Débit élevé de Transactions VFDOHXS 3 3 3 3 3 3 3

30 Speed-up et Scale-up Speed-up Diminution du temps de réponse en augmentant le nombre de nœuds Scale-up Accroissement linéaire de la Charge de Travail

les SGBDs Distribués Fragments et réplicas sur N sites distantes 31

La réplication dans les SGBD 32 Motivations Garantir la disponibilité du Système 5DSSHOH]YRXVGHO LQFHQGLHGX&UpGLW/\RQQDLV Performance pour la localité des accès,pdjlqh]ohwdx[gh79$vxuxqvhxovlwh Modes de Réplication Asymétrique / Symétrique u(i) Secondaire1 u(i) Primaire u1(i) Primaire1 u(i) Secondaire2 u2(i) u1(i) u1(i) u3(i) Primaire2 u3(i) u2(i) Primaire3 u2(i) u3(i)

33 Exemple de réplication Hot Stanby d Oracle u1(i) u2(i) Primaire u2(i)u1(i) u2(i) File persistante u1(i) Secondaire Primaire u2(i) Primaire u3(i) u2(i)u1(i) Primaire u2(i) u1(i) u2(i) Résolution conflit (u2,u3) u3(i) u1(i) u3(i) Secondaire u1(i) u3(i)

Les Systèmes Transactionnels 34 Transaction propriétés ACID Exemple Débit - Crédit Moniteurs Transactionnels 7UDQIHUWFSW$FSW%9^ $ 5($'FSW$ $ $9 :5,7(FSW%% % 5($'FSW% % %9 :5,7(FSW%% ` 7UDQIHUWF'XSRQWF6PLWK F'XSRQW 6*%'3DULV F6PLWK 6*%'1<

les SGBDs Hétérogènes 35 IMS ORACLE SYBASE O2 Buveurs NB Nom Prénom Type Buveurs NB Nom Prénom Type Abus NB NV Date Qte Vins NV Cru Millésime Degré Abus NB NV Date Qte Vins NV Cru Millésime Degré

les Entrepôts de Données 36 Service Commercial %' 3URG Service Financier %' 3URG Clientèle Service Livraison %' 3URG 'DWD :DUHKRXVH Clientèle Historique

37 Benchmark Bases de Données Banc de Performances Mesurer les performances d un système (matériel / logiciel) sous une charge de travail caractérisant une application modèle. Intérêt: Comparer avec d acheter Dimensionner son système en fonction de ses besoins MAIS ATTENTION à l écart entre Application Réelle et Application «Modèle»

38 Résultats attendus d un Benchmark Indicateurs Performance sur un système donnée Nb de Transactions réalisées par seconde Coût du système complet (matériel+logiciel+maintenance) Prix par 1 tps Exemple : le TPC-D Machine Sequent NUMA Q2000 + Base de 300 Go + ORACLE 8 Puissance : 3232,3 TPC (soit 19700 F / tps) + INFORMIX XPS Puissance : 2667,7 TPC (soit 20800 F / tps)

39 TPC (http://www.tpc.org ) Transaction Processing-performance Council corporation de 44 entreprises 6DQ-RVp But: Définir des benchmarks pour des SGBDs pour des Moniteurs Transactionnels 5 benchmarks BD TPC/A et TPC/B Transactionnel (OLTP) TPC/C et Draft TPC/E New Order TPC/D Décisionnel (OLAP) d autres benchmarks TPC-W Web et Commerce Electronique

le Système d Information d une entreprise 40 3&,QWHUIDFHV 26 $SSOLFDWLRQV 1& %DVHVGH'RQQpHV # 1HW3& &RQVROHGH -HX[ 6HW7RS %R[ 3'$ /DGWRS 7pOpSKRQH 0RELOH

Le Futur (i) 41 6L]H US Population Genomic Size Yota 10^24 Zeta 10^21 Exa 10^18 Peta 10^15 Persistency Reliability Querying )XQFWLRQV Structured Semi structured ' DSUqV&&ROOHW No structured 0RGHOV

Le Futur (ii) 42 $UFKLWHFWXUHV Peer To Peer Web Multi Tiers Client-Server Centralized Embedded Memories Disks RAID, Cluster, SMP 0HGLD Multi TR ' DSUqV&&ROOHW Component $SSOLFDWLRQ