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

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

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

Java DataBaseConnectivity

Programmation d application Bases de données avec Java

OpenPaaS Le réseau social d'entreprise

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

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

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

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

TP Contraintes - Triggers

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

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

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

Bases de données avancées

Accès aux bases de données

A QUOI SERVENT LES BASES DE DONNÉES?

Java et les bases de données

Introduction aux Bases de Données Relationnelles Conclusion - 1

Les Bases de Données et l Objet Introduction

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

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)

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

TP Programmation Java / JDBC / Oracle

Devoir Data WareHouse

A QUOI SERVENT LES BASES DE DONNÉES?

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

Module BDR Master d Informatique (SAR)

Application BdD et JDBC. Introduction 1/28. I Dans tout les cas, une seule problématique. I Quelques alternatives :

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

Les bases de données

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

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

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

Bases de Données Avancées

Chapitre 10. Architectures des systèmes de gestion de 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

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

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

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

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

CHAPITRE 1 ARCHITECTURE

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

Mise en oeuvre d'une base de données mono-utilisateur avec SQLite

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

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

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

JDBC le langage Java XVI-1 JMF

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

Présentation du PL/SQL

Gestion de base de données

IFT3030 Base de données. Chapitre 1 Introduction

Intégrité des données

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

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

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

Bases de données relationnelles

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

Bases de Données Avancées PL/SQL

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

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

Application web de gestion de comptes en banques

INTRODUCTION AUX BASES de DONNEES

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

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

Attaques applicatives

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

SQL Historique

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

TP Bases de données réparties

Cours Bases de données

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

CREATION WEB DYNAMIQUE

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

APIs de table pour SQL Server

Module BD et sites WEB

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

PHP 4 PARTIE : BASE DE DONNEES

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

Les Entrepôts de Données

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

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

Programmer en JAVA. par Tama

MS SQL Express 2005 Sauvegarde des données

LE LANGAGE SQL2 1. INTRODUCTION

Introduction aux Bases de Données 2004/2005

PDO : PHP Data Object 1/13

Olivier Mondet

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

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

Corrigés détaillés des exercices

Gestion de données réparties. Cours 1

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Le Langage SQL version Oracle

Les bases de données Page 1 / 8

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

Transcription:

Panorama des Bases de Données Didier DONSEZ Université de Valenciennes Institut des Sciences et Techniques de Valenciennes e-mail : donsez@univ-valenciennes.fr

Le Modèle Relationnel Un modèle de données Simple Relation (Table) Tuple (Ligne) Attribut (Colonne) Buveurs NB Nom Prénom Type Abus NB NV Date Qte Vins NV Cru Millésime Degré Un langage de manipulation SQL SELECT BUVEURS.NOM, SUM(ABUS.QTE) FROM BUVEURS, ABUS WHERE BUVEURS.NB=ABUS.NB AND BUVEURS.VILLE= Valenciennes GROUP BY BUVEURS.NOM

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

Le modèle client-serveur Panorama des Bases de Données pour les SGBDs Relationnels Centralisé Terminaux passifs Client Serveur PC avec capacité de traitement émulation VT émulation 3270 ODBC, SQL*Net, SGBD SGBDn SGBD1 JDBC,...

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 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) SQL/CLI JDBC Java DataBase Connectivity (JavaSoft) SQL/CLI 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 Java DataBase Connectivity Panorama des Bases de Données class Employe { public static void main (String args [] ) throws SQLException, ClassNotFoundException { Class.forName ("oracle.jdbc.driver.oracledriver"); String dburl = "jdbc:oracle:oci8:@"; Connection conn = DriverManager.getConnection(dburl, "toto", "passemot"); Statement stmt = con.createstatement(); ResultSet rs = stmt.executequery ("SELECT numemp, name, salary FROM EMPLOYE"); while (rs.next()) { String s = rs.getstring(2); float f = rs.getfloat("salary"); if(rs.wasnull()) System.out.println (s + " n''a pas de salaire"); else System.out.println (s + " gagne "+ f +" $"); } rs.close(); } catch(exception e) { e.printstacktrace(); } }

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 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 #sql public iterator IterEmp (String, int); // déclaration d une classe d itérateur { IterEmp iter; // déclaration d un objet itérateur String nom; int sal; int c:=1; #sql iter = { SELECT name, salary FROM Employe }; while (true) { #sql { FETCH :iter INTO :nom, :sal }; if (iter.endfetch()) break; if(c++%2) System.out.println( nom + " est payé " + sal + " $" ); } iter.setrow(1); // se repositionne au premier résultat while(iter.next(2)) {// se positionne sur les résultats en position impaire System.out.println( iter.name() + " est payé " +iter.salary() + " $" ); } }

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

Exemple de Curseur en PL/SQL Panorama des Bases de Données CREATE OR REPLACE PROCEDURE augmentationsalaire( seuil IN Employe.salary%TYPE, augmentation IN NUMBER(2) ) AS sal Employe.salary%TYPE; num Employe.numemp%TYPE; CURSOR c IS SELECT salary, numemp FROM Employe; BEGIN OPEN c; FETCH c INTO sal, num; -- attention à l ordre : types compatibles WHILE c%notfound LOOP IF sal IS NOT NULL AND sal < seuil THEN UDPATE Employe SET salary = salary*(augmentation + 100.0)/100 WHERE numemp = num; END IF; FETCH c INTO sal, num; END LOOP; CLOSE c; END;

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

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 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 TRIGGER tg_modifinterdit AFTER UPDATE OF prix, qte ON Vente BEGIN raise_application_error(-9998, Modification interdite ); END;

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 from Stock 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;

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

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 C++, Smalltalk, Java, OQL Produits ObjectStore, O2, GemStone, POET, Niche : applications ciblées Médicale, CAO / DAO, SIG...

Exemple Personne-Employé-Manager Panorama des Bases de Données Person IS-A Employee worksin/ employees Dept IS-A Manager manages/ manager

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(); }

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();

Exemple de Requêtes OQL Extent, Collection SELECT e.name, d.addrpost FROM Employees e, e.worksin d WHERE d.name="r&d" Requête imbriquée SELECT m.name, m.salary() FROM (SELECT d.manager FROM Depts d) m WHERE m.salary > 1000000 Groupage SELECT departement : d.name, massesal : SUM(e.salary) FROM Depts d, d.employees e GROUP BY d.name

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) Exemple de type avec des références 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 REF person_t ); Déclaration d une table CREATE TABLE Person OF person_t (SCOPE FOR conjoint IS Person) ; CREATE TABLE Ami ( ami1 REF person_t, ami2 REF person_t, SCOPE FOR ami1 IS Person, SCOPE FOR ami2 IS Person );

Le Modèle Objet-Relationnel (iii) Exemple de déréférenciation Ami ami1 ami2 Person nom prenom nais conjoint 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);

Les SGBDs Universels Capable de supporter tout type de donnée Texte plein, Image, Vidéo, Données Spatiales, Séries Temporelles, Empreintes Digitales,... Supporter c est Stocker Manipuler Chercher, Comparer, Retrouver 2 empreintes similaires Extension par UDT Objet Relationnel Data Cartridges vendus par des tiers

les SGBDs Multimédia Type de données multimédia Image, Son, Vidéo Indexation par le contenu Quel film contient dans la bande sonore la phrase «T as beaux yeux, tu sais!» Stockage et Distribution Temps Réel Vidéo à la Demande

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.

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

La réplication dans les SGBD Motivations Garantir la disponibilité du Système Rappelez vous de l incendie du Crédit Lyonnais! Performance pour la localité des accès Imaginez le taux de TVA sur un seul site!!! Modes de Réplication Asymétrique / Symétrique u(i) Primaire u(i) u(i) Secondaire1 Secondaire2 u1(i) Primaire1 u2(i) u1(i) u1(i) u3(i) Primaire2 u3(i) u2(i) Primaire3 u2(i) u3(i)

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) u1(i) u3(i) Primaire u2(i) u1(i) u2(i) Résolution conflit (u2,u3) u3(i) Secondaire u1(i) u3(i)

Les Systèmes Transactionnels Transaction propriétés ACID Exemple Débit - Crédit Moniteurs Transactionnels Tranfert(cptA,cptB,V) { A := READ(cptA); A := A-V; WRITE(cptB,B); B := READ(cptB); B := B+V; WRITE(cptB,B); } cdupont SGBD Paris 1000 900... Tranfert( cdupont,csmith, 100);... csmith 1000 1100 SGBD NY

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

les Entrepôts de Données Service Commercial BD Prod Service Financier BD Prod Clientèle Service Livraison BD Prod Data Warehouse Clientèle Historique

Benckmark 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»

Résultats attendus d un Benchmark Panorama des Bases de Données 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)

TPC (http://www.tpc.org ) Transaction Processing-performance Council corporation de 44 entreprises (San José, 1988) 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 Panorama des Bases de Données PC Interfaces & OS Applications NC Bases de Données @ NetPC Console de Jeux SetTop Box PDA Ladtop Téléphone Mobile