Quelques aspects du Relationnel-Objet du SGBD Oracle



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

A QUOI SERVENT LES BASES DE DONNÉES?

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

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

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

Bases de données avancées

Devoir Data WareHouse

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

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

SQL Historique

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

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

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

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

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

Le Langage SQL version Oracle

Corrigés détaillés des exercices

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

A QUOI SERVENT LES BASES DE DONNÉES?

Partie 0 : Gestion des tablespace et des utilisateurs... 3

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

TP Contraintes - Triggers

Auto-évaluation Oracle: cours de base

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

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

Optimisation SQL. Quelques règles de bases

Langage SQL : créer et interroger une base

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

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

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

Bases de Données Avancées PL/SQL

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

Le langage SQL Rappels

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

OpenPaaS Le réseau social d'entreprise

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

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

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

Introduction aux Bases de Données 2004/2005

Bases de Données Réparties

Bases de données et sites WEB

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

Master Exploration Informatique des données DataWareHouse

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

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

Gestion des utilisateurs et de leurs droits

Les bases de données

Olivier Mondet

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

CREATION WEB DYNAMIQUE

Présentation Windows Azure Hadoop Big Data - BI

Intégrité des données

Bases de Données Avancées

PRÉAMBULE... 2 CRÉATION DE LA BASE DE DONNÉES...

TP11 - Administration/Tuning

CHAPITRE 1 ARCHITECTURE

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

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

Oracle Le langage procédural PL/SQL

Historisation des données

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

Compétences Business Objects

Partie II Cours 3 (suite) : Sécurité de bases de données

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

TP Bases de données réparties

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

Bases de données relationnelles

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

1 Introduction et installation

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)

Du 10 Fév. au 14 Mars 2014

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

Introduction au PL/SQL Oracle. Alexandre Meslé

420-PK6-SL Banques de données Avancées. UTILISATEURS (suite)

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

Bases de Données Avancées

Bases de données avancées Introduction

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

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

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

LE LANGAGE SQL2 1. INTRODUCTION

Cours SQL. Base du langage SQL et des bases de données

16H Cours / 18H TD / 20H TP

Administration des bases de données

Mejdi BLAGHGI & Anis ASSÈS

Table des matières. Avant-propos

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

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

Bases de données Cours 4 : Le langage SQL pour ORACLE

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

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

FileMaker 13. Guide de référence SQL

Les bases fondamentales du langage Transact SQL

Bases de données cours 1

Bases de Données Avancées

Présentation du PL/SQL

Gestion des transactions et accès concurrents dans les bases de données relationnelles

Structured Query Language

Transcription:

Département informatique de l IUT (de l université) de Bordeaux Cours de Bases de Données : présentation partielle d un SGBD RO 12 août 2015 Olivier Guibert Quelques aspects du Relationnel-Objet du SGBD Oracle Cf. 11g Release 2 (11.2) à http://download.oracle.com/docs/cd/e11882_01/appdev.112/e1183 0/toc.htm. Pour les exemples, cf. http://www.labri.fr/perso/guibert/documentsenseignemen t/oracle11g_exemple_jouet.pdf. Plan Quelques mots-clés du Relationnel Généralités Langage de Définition des Données (LDD) Langage de Contrôle des Données (LCD) Langage de Manipulation des Données (LMD) : interrogation et mises à jour (insertion, modification, suppression) PL/SQL Notions du Relationnel-Objet Type Table Relationnelle-Objet Types collection Dictionnaire des données 2 1

Quelques mots-clés du Relationnel Généralités (1/2) Conception d une BD : modèle relationnel[-objet] Dépendances Fonctionnelles (fermeture transitive et couverture minimale, DF/DF multivaluée/df de jointure) et Formes Normales (1FN, 2FN, 3FN, FNBC, 4FN, 5FN NF 2 = NF1) Schéma relationnel = schémas des relations (ex.) + contraintes d intégrité (clé primaire (ex.), référentielle (ex.), unicité (ex.), existentielle (ex.), domaine (ex.), valeur par défaut (ex.), sur un tuple, pré/post condition (ex.), etc. ; {[NOT] DEFERRABLE, INITIALLY {IMMEDIATE, DEFERRED}, {ENABLE (ex.), DISABLE (ex.)}, {VALIDATE, NOVALIDATE}} [EXCEPTIONS INTO]) Utilisation d une BD Algèbre relationnelle Calcul relationnel SQL Interactif (ex.) Programmé (intégré (ex.) ou dynamique) : curseur (ex.), gestion des erreurs, gestion des exceptions (ex.) 4 2

Généralités (2/2) Fonctionnement d un SGBDR[O] Indexation (ex.) Optimiseur de requête d interrogation : SET AUTOTRACE ON [TRACEONLY] [EXPLAIN] [STATISTICS] : plan d exécution et/ou statistiques d exécution, ANALYZE TABLE {VALIDATE STRUCTURE [CASCADE [{FAST, ONLINE}]], LIST CHAINED ROWS [INTO CHAINED_ROWS]}, indices (hint, ex. : /*+ ALL_ROWS */) Gestion des transactions (Langage de Contrôle des Transactions (LCT)) : COMMIT (ex.), ROLLBACK (ex.), SAVEPOINT SGBDRO (ex.) : identité d objet (ex.), encapsulation (ex.), héritage (ex.), polymorphisme (ex.) ; objet complexe stocké tel quel (ex.) ; etc. SGBD réparti, Client/Serveur, BD particulières SGBD déductif Entrepôt de données (data warehouse) et fouille de données (datamining) BD du World Wide Web (architecture à 3 niveaux (ex.)) et multimédia (géographique/spatiale (ex.), textuelle, images/vidéos (ex.), données semistructurées (ex.)) 5 SGBDO Langage de Définition des Données CREATE (ex.), ALTER (ex.), DROP (ex.) USER (ex.), ROLE TYPE (ex.) (et TYPE BODY (ex.)) TABLE (ex.) (et CONSTRAINT (ex.)) INDEX (ex.) VIEW (ex.) TRIGGER (ex.) PACKAGE (ex.) (et PACKAGE BODY (ex.)) FUNCTION (ex.) et PROCEDURE (ex.) CLUSTER, CONTEXT, DATABASE, DATABASE LINK, DIRECTORY (ex.), DIMENSION, DISKGROUP, INDEXTYPE, JAVA, LIBRARY, MATERIALIZED VIEW, MATERIALIZED VIEW LOG, OPERATOR, OUTLINE, PROFILE, RESTORE POINT, ROLLBACK SEGMENT, SCHEMA, SEQUENCE (ex.), SYNONYM (ex.), TABLESPACE 6 3

Langage de Contrôle des Données (gestion des droits) Privilèges Système (ex. : CREATE TABLE, DROP PROCEDURE) Objet (ex. : SELECT (ex.), INSERT, EXECUTE (ex.)) GRANT (ex.) REVOKE (ex.) 7 Langage de Manipulation des Données : interrogation (SELECT) 1/2 WITH (ex.) SELECT (ex.) [ALL, DISTINCT, UNIQUE] FROM (ex.) TABLE() (ex.) {CROSS, [NATURAL] [{FULL, LEFT (ex.), RIGHT} OUTER (ex.)]} JOIN (ex.) PARTITION BY WHERE (ex.) [START WITH (ex.)] CONNECT BY (ex.) [NOCYCLE] GROUP BY (ex.) [HAVING (ex.)] GROUPING SETS (ex.), CUBE (ex.), ROLLUP MODEL (ex.) DIMENSION BY () (ex.) MEASURES () (ex.) RULES() (ex.) ORDER BY (ex.) [{ASC (ex.), DESC (ex.)}] NULLS (ex.) {FIRST, LAST (ex.)} 8 4

Langage de Manipulation des Données : interrogation (SELECT) 2/2 UNION (ex.) [ALL], INTERSECT (ex.), MINUS (ex.) FOR UPDATE (ex.) fonctions analytiques : AVG, CORR, COUNT (ex.), COVAR{_POP, SAMP}, CUME_DIST, [{DENSE (ex.), PERCENT_}]RANK, FIRST, {FIRST, LAST}_VALUE, LAG, LEAD, MAX, MIN (ex.), NTILE (ex.), PERCENTILE_{CONT, DISC}, RATIO_TO_REPORT, REGR_{AVGX, AVGY, COUNT, INTERCEPT, R2, SLOPE, SXX, SXY, SYY}, ROW_NUMBER, STDDEV[_{POP, SAMP}], SUM, VAR_{POP, SAMP}, VARIANCE N. B. : [{DENSE (ex.), PERCENT_}]RANK() (ex.) et ROW_NUMBER() (ex.) avec OVER ([PARTITION BY (ex.)] [ORDER BY (ex.)]) (ex.) fonctions de fouille de données : CLUSTER_{ID, PROBABILITY, SET}, FEATURE_{ID, SET, VALUE}, PREDICTION, PREDICTION_{BOUNDS, COST, DETAILS, PROBABILITY, SET}) sous-requête corrélative (ex.) ou non (ex.), dans FROM (ex.) WHERE (ex.) HAVING (ex.) 9 Langage de Manipulation des Données : mises à jour (insertion, modification, suppression) INSERT (ex.) (VALUES (ex.) ou SELECT) UPDATE (ex.) DELETE (ex.) 10 5

PL/SQL -- (ex.) ou /* */ [DECLARE] BEGIN [EXCEPTION] END (ex.) NULL := (ex.) IF THEN [ELSIF] [ELSE] END IF (ex.) CASE WHEN ELSE END CASE (ex.) [{WHILE, FOR}] LOOP [EXIT WHEN] END LOOP (ex.) RETURN (ex.) [FOR] CURSOR (%FOUND, %NOTFOUND (ex.), %ISOPEN et %ROWCOUNT) et OPEN FETCH [INTO] CLOSE (ex.) RAISE (ex.) ou exceptions prédéfinies (ex. : ACCESS_INTO_NULL, CASE_NOT_FOUND, COLLECTION_IS_NULL, NO_DATA_FOUND (ex.), SELF_IS_NULL, TOO_MANY_ROWS, VALUE_ERROR, ZERO_DIVIDE) 11 Notions du Relationnel-Objet Cf. Oracle Database Object-Relational Developer's Guide 11g Release 2 (11.2) http://download.oracle.com/docs/cd/e11882_01/appdev.11 2/e11822/toc.htm 6

Type (1/2) CREATE TYPE [OID] {AS OBJECT, AS TABLE OF, UNDER} (ex.) Spécification (1/2) (ex.) Attributs avec leurs types (sauf ROWID, UROWID, LONG RAW) (ex.) Type SQL (ex.) ou SQLJ Types de données internes (built-in) : NUMBER (ex.), [N]VARCHAR2 (ex.), [N]CHAR (ex.), RAW, DATE, TIMESTAMP, INTERVAL, [N]CLOB, BLOB (ex.), BFILE, URITYPE (ex.), XMLTYPE (ex.) Type utilisateur (ex.) Type référence (pointeur logique vers un objet d une table objet) : REF (ex.) Type tableau variable (varying array) VARRAY (ex.) Type d une table imbriquée (nested table) : AS TABLE OF (ex.) 13 Type (2/2) Spécification (2/2) (ex.) Méthodes (ex.) Comparaisons : position d un objet parmi tous MAP ou entre deux objets (SELF (instance de l objet ayant appelé la méthode) (ex.) et celui passé en paramètre) ORDER (ex.) Applicable à un objet MEMBER (ex.) ou au type STATICS FUNCTION (et RETURN {SELF AS RESULT, type (ex.)}) (ex.) ou PROCEDURE (ex.) Éventuels paramètres IN (ex.), INOUT, OUT Héritage de types (UNDER) : [NOT (ex.)] FINAL (ex.), FINAL par défaut Instantiation : [NOT] INSTANTIABLE (ex.), INSTANTIABLE par défaut Surcharge = polymorphisme sur le nombre et le type des paramètres (ex.) Corps (body) (ex.) : PL/SQL (ex.) ou classe Java (pour un type SQLJ) 14 7

Table Relationnelle-Objet (1/2) CREATE TABLE table OF type [OBJECT IDENTIFIER IS {SYSTEM GENERATED, PRIMARY KEY}] [OIDINDEX index ( )] ( contraintes d intégrité ) tables imbriquées (ex.) Tables imbriquées à un (ex.) ou deux niveaux CREATE TYPE type1 AS OBJECT ( ) ; CREATE TYPE type_table_type1 AS TABLE OF type1 ; CREATE TYPE type2 AS OBJECT ( ) ; CREATE TYPE type_table_type2 AS TABLE OF type2 ; CREATE TYPE type3 AS OBJECT ( attrib2 type_table_type2 ) ; CREATE TYPE type_table_type3 AS TABLE OF type3 ; CREATE TABLE table13 ( attrib1 type_table_type1, attrib3 type_table_type3 ) NESTED TABLE attrib1 STORE AS table_imbriq, NESTED TABLE attrib3 STORE AS table_imbriq_externe ( NESTED TABLE attrib2 STORE AS table_imbriq_interne ) ; 15 table13 attrib1 table_imbriq attrib3 table_imbriq_externe attrib2 table_imbriq_interne attrib2 table_imbriq_interne 16 8

Table Relationnelle-Objet (2/2) Attribut implicite NESTED_TABLE_ID (ex.) permettant d identifier les éléments de la table imbriquée Limitation de la portée des références : SCOPE FOR ( attribut REF ) IS table (ex.) Attribut implicite ROWID (ex.) correspondant à l identifiant de ligne (unique pour la table) 17 Types collection (1/2) Tableaux variables (ex.) & Tables imbriquées (ex.) Instanciation (constructeur) : type ( [valeurs] ) (ex.) NULL Utilisation : requêtes d interrogation (ex.) et de mises à jour (insertion (ex.), modification (ex.), suppression (ex.)) Désimbrication (unnesting) (ex.) : [SELECT CURSOR ( SELECT (ex.) ] FROM TABLE ( {un attribut collection (ex.), SELECT un attribut collection FROM (ex.)} ) (ex.) SELECT t13.*, t1.* FROM table13 t13, TABLE(t13.attrib1) t1 ; SELECT t13.*, t3.*, t2.* FROM table13 t13, TABLE(t13.attrib3) t3, TABLE(t3.attrib2) t2 ; Attribut implicite COLUMN_VALUE (ex.) correspondant à la 18 colonne retournée 9

Types collection (2/2) Fonctions et opérateurs sur les objets : CAST (ex.), CURSOR (ex.), IS OF type, REF (ex.) et DEREF (ex.), SYS_TYPEID, TABLE() (ex.), TREAT, VALUE (ex.) Teste une référence pendante suite à la suppression de l'objet référencé : IS [NOT] DANGLING (ex.) Méthodes (PL/SQL) : EXISTS (ex.), COUNT (ex.), LIMIT (ex.), FIRST (ex.) et LAST (ex.), PRIOR et NEXT, EXTEND (ex.), TRIM (ex.) ou DELETE Opérations sur des multiensembles de tables imbriquées : CARDINALITY (ex.), COLLECT, MULTISET (ex.) {UNION, INTERSECT, EXCEPT}, POWERMULTISET[_BY_CARDINALITY], SET Comparaisons de tables imbriquées : SUBMULTISET, MEMBER OF, IS [NOT] EMPTY, IS [NOT] A SET 19 Dictionnaire des données sur les informations Relationnelles-Objets ALL_OBJECTS (ex.) ALL_TYPES (ex.) ALL_TYPE_METHODS (ex.) ALL_DEPENDENCIES (ex.) ALL_REFS (ex.) ALL_OBJECT_TABLES (ex.) ALL_NESTED_TABLES (ex.) ALL_VARRAYS (ex.) et non ALL_TABLES (ex.) 20 10