Programmation et administration des BD. Chapitre 1 Introduction aux BD Oracle.

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

TP Contraintes - Triggers

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

Les bases de données

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

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

Olivier Mondet

Devoir Data WareHouse

Bases de données et sites WEB

Compétences Business Objects

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

Auto-évaluation Oracle: cours de base

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

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

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

Bases de données relationnelles

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

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

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

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

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

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

Rappel sur les bases de données

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

Langage SQL : créer et interroger une base

Cours: Administration d'une Base de Données

I4 : Bases de Données

Gestion des utilisateurs et de leurs droits

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

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

CQP ADMINISTRATEUR DE BASES DE DONNÉES (ABD)

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

Jérôme FESSY. IUT de Paris 5. Base de Données. Cours Introductif. Base de Données

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

TP Bases de données réparties

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

CATALOGUE FORMATIONS DOMAINE Bases de données

DEVAKI NEXTOBJET PRESENTATION. Devaki Nextobjects est un projet sous license GNU/Public.

Bases de données avancées Introduction

CHAPITRE 4 POLITIQUES DE CONTRÔLES DES ACCÈS SOUS ORACLE ADMINISTRATION ET TUNING DE BASES DE DONNÉES 10/05/2015 RESPONSABLE DR K.

1 Introduction et installation

A QUOI SERVENT LES BASES DE DONNÉES?

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

Création et Gestion des tables

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

Bases de données élémentaires Maude Manouvrier

Encryptions, compression et partitionnement des données

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

INSIA Bases de données ORACLE Installation SQL*Plus SQL-Developer

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

CREATION WEB DYNAMIQUE

TP11 - Administration/Tuning

Présentation du PL/SQL

A QUOI SERVENT LES BASES DE DONNÉES?

Du 10 Fév. au 14 Mars 2014

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

Intégrité des données

Vincent Augusto

OpenPaaS Le réseau social d'entreprise

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

SQL Historique

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

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

16H Cours / 18H TD / 20H TP

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

Le Langage De Description De Données(LDD)

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

I/ Présentation. On considère une BD CIRQUE dont le schema conceptuel : PERSONNEL _CIRQUE (NOM, ROLE) ;

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

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

Master Exploration Informatique des données DataWareHouse

Bases de données avancées

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

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

Cours 6. Sécurisation d un SGBD. DBA - M1ASR - Université Evry 1

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

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

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Le langage SQL Rappels

Les BASES de DONNEES dans WampServer

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

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

I. MySQL : Serveur et SGBD

Information utiles. webpage : Google+ : digiusto/

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

Bases de Données. Plan

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

Les bases de données Page 1 / 8

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Bases de données et sites WEB Licence d informatique LI345

Bases de Données Avancées

Administration des bases de données relationnelles Part I

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

Structure fonctionnelle d un SGBD

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

Bases de Données Avancées PL/SQL

Dossier I Découverte de Base d Open Office

Transcription:

Programmation et administration des BD Chapitre 1 Introduction aux BD Oracle yannick.benezeth@iut-dijon.u-bourgogne.fr IUT Dijon IQ S2 2015/2016

2 Notion de base de données Définition Ensemble structuré d'informations non redondantes dont l'organisation est régie par un modèle de données BD

3 Notion de SGBD Définition Ensemble d outils logiciels qui assurent la gestion et l accès à une BD Les principaux objectifs des SGBD sont de masquer la représentation physique des données et d assurer la protection et la cohérence de ces données dans un environnement multi-utilisateurs impliquant des accès concurrents.

4 Le modèle de données le plus courant : Le modèle relationnel Une BD est un ensemble de Relations (tables) Chaque relation a un ensemble d attributs (colonnes) Chaque tuple (ligne, enregistrement) a une valeur pour chaque attribut Chaque donnée a un type (ou domaine) ETUDIANT ID Nom Moyenne bac 123 André 12,5 234 Sylvie NULL 345 Charlotte 15 Photo IUT NomIUT Région Frais d inscription IUT Bordeaux Aquitaine 1800 IUT Dijon Bourgogne 1500 IUT Lyon Rhône Alpes 2000

5 Le modèle relationnel Clé primaire : attribut dont la valeur est unique pour chaque tuple Ou ensemble d attributs dont la combinaison des valeurs est unique On peut choisir une propriété naturelle, artificielle ou composée de plusieurs propriétés ETUDIANT ID Nom Moyenne bac 123 André 12,5 234 Sylvie NULL 345 Charlotte 15 Photo IUT NomIUT Région Frais d inscription IUT Bordeaux Aquitaine 1800 IUT Dijon Bourgogne 1500 IUT Lyon Rhône Alpes 2000

6 Le modèle relationnel Clé étrangère : Attribut qui est clé primaire dans une autre table. IUT ETUDIANT CANDIDATER NomIUT Région FI IDEtu NomEtu Moy #IDEtu #NomIUT Décision

7 Le modèle relationnel Contrainte référentielle : L ensemble des valeurs d une clé étrangère est un sousensemble des valeurs de la clé primaire cible IUT ETUDIANT CANDIDATER NomIUT Région FI IDEtu NomEtu Moy #IDEtu #NomIUT Décision IUT Dijon Bourgogne 100 IUT Bordeaux Aquitaine 200 123 Jean 12 234 Lucie 14 345 Marie 18 123 IUT Dijon OK 123 IUT Bordeaux OK 678 IUT DIjon KO Contrainte référentielle non respectée

8 Le modèle relationnel Pour résumer Nom de relation ou nom de table ETUDIANT Une colonne est un attribut ou un champ ID Nom Moyenne bac Photo #Parain 123 André 12,5 012 Une ligne est un tuple, un n-uplet ou un enregistrement 234 Sylvie NULL 547 345 Charlotte 15 NULL 840 Schéma relationnel : ETUDIANT(ID, Nom, Moyenne bac, Photo, #Parain)

13 Conception d une BD Lorsque le problème est simple, on peut décrire directement la base en termes de Tables, Colonnes, Contraintes. Lorsque le domaine d activité est plus complexe complexe la conception est réalisée avec un modèle graphique, assez simple et dissocié de l implémentation du SGBD Modèle E/A ou UML Le modèle est traduit en un schéma dans le modèle de données du SGBD En général modèle relationnel Modèle haut niveau, graphique, user-friendly Traducteur SGBD Schéma dans le modèle de données du SGBD

14 Conception d une BD Exemple de modèle Entité-Association (E-A) ou Modèle Conceptuel des Données (MCD)

15 Conception d une BD Règles du passage du MCD au Modèle Relationnel (ou Modèle Logique des Données - MLD) 1. Chaque entité devient une table 2. Les identifiants des entités deviennent les clés primaires des tables 3. On examine chaque association, 2 cas : cardinalités (X,n) - (X,1) : La clé primaire de la table à la cardinalité (X,n) devient une clé étrangère dans la table à la cardinalité (X,1) cardinalités (X,n) - (X,n) : Il y a création d'une table supplémentaire ayant comme clé primaire une clé composée des identifiants des 2 entités. Exemple : Donnez le MLD correspondant à ce MCD MENU(NumMenu, Libellé, PrixDeVente) PLAT(NumPlat, LibelléPlat, PrixDeVente, #NumType) TYPEPLAT(NumType, Désignation) CONSTITUER(#NumMenu, #NumPlat)

16 Conception d une BD Diagramme de classes UML ETUDIANT(NumEtu, Nom, MoyenneBac, #NomIUT) IUT(NomIUT, Région, FI) ETUDIANT(NumEtu, Nom, MoyenneBac) IUT(NomIUT, Région, FI) CANDIDATER(#NumEtu, #NomIUT, Date, Décision)

17 Notion de schéma Définition : Avec Oracle un schéma rassemble tous les objets qui appartiennent à un utilisateur (tables, vues, indexes, procédures, synonymes, etc.). Avec Oracle, un USER est sensiblement la même chose qu un SCHEMA. La notion de schéma est différente entre MySQL et Oracle Une BD dans MySQL est un schéma dans Oracle Le serveur MySQL contient plusieurs BD, ces BD n ont pas de lien avec les Users Le serveur Oracle contient une seul BD. Lorsqu on crée un User Oracle, on crée un schéma du même nom que l User.

18 Le dictionnaire des données définition Structure centralisée, un ensemble de tables qui donne des informations sur tous les objets d une BD. On accède au dictionnaire des données par l intermédiaire de vues

19 Le dictionnaire des données contient :... La définition des tables, vues, index, clusters, synonymes, séquences, procédures, fonctions, paquetages, déclencheurs, etc. Description de l espace disque alloué et occupé pour chaque objet Les valeurs par défaut des colonnes La description des contraintes de vérification et d intégrité référentielle Les noms des utilisateurs de la BD Les privilèges et rôles de chaque utilisateur Toutes les tables du dictionnaires des données sont accessibles en lecture seule. Elles appartiennent à l utilisateur SYS. On utilise des requêtes (SELECT) pour accéder aux vues de ces tables.

20 Le dictionnaire des données Les différentes classes de vues : permettent de filtrer les informations du dictionnaire des données en fonction des droits des utilisateurs. USER_% : informations sur les objets qui appartiennent à l utilisateur. ALL_% : informations sur tous les objets accessibles à l utilisateur. DBA_% : informations sur tous les objets de la BD. Accessibles aux DBA. Par exemple : USER_TABLES, ALL_TABLES, DBA_TABLES On accède à ces vues avec des requêtes

22 Les principales vues du dictionnaire des données qui concernent un utilisateur ( USER_% ) Les objets d un schéma (USER_OBJECTS)

23 Les principales vues du dictionnaire des données qui concernent un utilisateur ( USER_% ) La structure d une table (USER_TAB_COLUMNS) cf. DESC FACTURE;

24 Les principales vues du dictionnaire des données qui concernent un utilisateur ( USER_% ) Les contraintes d une table (USER_CONSTRAINTS)

25 La table DUAL C est une table spéciale d'une seule colonne présente par défaut dans toutes les installations du SGBD Oracle. Utile pour écrire des requêtes qui ne portent pas sur une table, faire des opérations, tester des fonctions SELECT 10+12 FROM DUAL; SELECT substr( juste un test de substr,5) FROM DUAL;

26 Pour afficher la structure d une table DESC[RIBE] <nom_table>

27 Les différents clients SQL*Plus SQL Developper

28 SQL*Plus est un outil d Oracle qui permet : d utiliser les commandes du langage standard SQL Interrogation, insertion, mise à jour, etc.

29 SQL*Plus est un outil d Oracle qui permet : d utiliser les commandes du langage standard SQL d utiliser les commandes du langage procédural PL/SQL SET SERVEROUTPUT ON; DECLARE l_nom VARCHAR2(32); l_moy NUMBER(4,2); BEGIN SELECT NomEtu, Moy INTO l_nom, l_moy FROM ETUDIANT WHERE Moy = (SELECT MAX(Moy) FROM ETUDIANT); DBMS_OUTPUT.PUT_LINE('Meilleur étudiant : ' l_nom ' ' l_moy ); END;

30 SQL*Plus est un outil d Oracle qui permet : d utiliser les commandes du langage standard SQL d utiliser les commandes du langage procédural PL/SQL d utiliser des commandes propres à SQL*Plus De saisir, stocker, retrouver et exécuter des commandes SQL et des blocs PL/SQL, stockées temporairement dans un Buffer, De formater des sorties, d effectuer des calculs, de stocker les résultats, de lister les descriptions de tables ou de colonnes D accéder et échanger des données entre différentes BD De générer des rapports TP1!

31 SQL Developper est un outil d Oracle qui permet : d utiliser les commandes du langage standard SQL d utiliser les commandes du langage procédural PL/SQL d utiliser la plupart des commandes SQL*Plus SQL Developper vs. SQL*Plus GUI vs. lignes de commandes SQL*PLUS est utile pour exécuter des scripts, automatiser des tâches, formater des rapports, client léger. SQL Developper affiche le contenu de la BD, permet d éditer les données

32 Définition de variables utilisateur et requêtes paramétrées DEFINE définit une variable utilisateur et lui affecte une valeur Crée une variable et lui affecte une valeur DEFINE <variable> = <valeur> Affiche la variable, sa valeur et son type DEFINE <variable> Affiche toutes les variables DEFINE UNDEFINE permet de libérer une variable

33 Définition de variables utilisateur et requêtes paramétrées DEFINE définit une variable utilisateur et lui affecte une valeur Exemple

34 Définition de variables utilisateur et requêtes paramétrées ACCEPT permet de saisir une variable utilisateur. Si elle n a pas été définie, elle est créée. Affiche un message personnalisé et récupère une valeur saisie par l'utilisateur. On peut définir le type de donnée (CHAR, NUMBER et DATE) On peut masquer la saisie avec HIDE (utile pour les mots de passe) Syntaxe ACCEPT <nom_variable> [<type>] [PROMPT <texte à afficher>] [HIDE] Exemple

35 Définition de variables utilisateur et requêtes paramétrées On utilise le caractère & pour faire référence aux variables utilisateur Exemple &varnumerique ou &varchar Si la variable n existe pas, une saisie est demandée. Equivalent à une requête paramétrée. Les critères des requêtes sont saisis pendant l exécution. Exemple : Afficher le nom et la moyenne d un étudiant dont l identifiant est saisi par l'utilisateur ETUDIANT IDEtu NomEtu Moy TailleLycee

36 Définition de variables utilisateur et requêtes paramétrées On utilise le caractère && pour écrire une requête paramétrée et sauvegarder la valeur de la variable utilisateur. Exemple

37 Les séquences : SEQUENCE Une séquence est un objet Oracle partageable entre plusieurs utilisateurs. Permet de générer une suite d entiers. Les séquences sont souvent utilisées pour générer des clés primaires. Syntaxe {CREATE ALTER} SEQUENCE <nomsequence> [START WITH <m>] [INCREMENT BY <n>] [MAXVALUE <max>] [MINVALUE <min>] [{CYCLE NOCYCLE}]; Par défaut, les séquences commencent à 1 et s incrémentent de 1 en 1. Exemple CREATE SEQUENCE masequence1 START WITH -1 INCREMENT BY -1; CREATE SEQUENCE masequence2; CREATE SEQUENCE masequence3 MAXVALUE 100 CYCLE;

38 Les séquences : SEQUENCE On peut consulter toutes les séquences d un utilisateur grâce à la vue USER_SEQUENCES

39 Les séquences : SEQUENCE Une séquence est composée de 2 pseudo-colonnes NEXTVAL : Incrémente la séquence et donne la nouvelle valeur. CURRVAL : Donne la valeur courante de la séquence Exemple CREATE SEQUENCE seq_etudiant MAXVALUE 1000; -- La séquence est utilisée pour générer la clé primaire INSERT INTO ETUDIANT VALUES (seq_etudiant.nextval, Bob, 12.5, 800); -- On utilise la table DUAL pour avoir la valeur courante de la séquence SELECT seq_etudiant.currval FROM DUAL; ETUDIANT IDEtu NomEtu Moy TailleLycee

40 Les séquences : SEQUENCE Pour utiliser la séquence d un autre utilisateur, il faut préciser son schéma. Exemple : Afficher la valeur courante de la séquence seqamichel du schéma Michel SELECT Michel.seqAMichel.CURRVAL FROM DUAL; Il faut avoir les privilèges objet SELECT ou le privilège système SELECT ANY SEQUENCE Modification d une séquence (ALTER), Il faut en être propriétaire ou avoir le privilège Objet ALTER. ALTER SEQUENCE ne modifie que les numéros de séquence à venir Il faut supprimer la séquence puis la recréer pour modifier le premier numéro (START WITH) Pour supprimer une séquence DROP SEQUENCE <nomsequence> ;