Comprendre la terminologie du domaine des bases de données : Notion de bases de données

Documents pareils
Table des matières. Avant-propos

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

OpenPaaS Le réseau social d'entreprise

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

Cours Bases de données

CHAPITRE 1 ARCHITECTURE

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

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

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

CREATION WEB DYNAMIQUE

Information utiles. webpage : Google+ : digiusto/

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

Java DataBaseConnectivity

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

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

Les bases de données

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

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

TP Contraintes - Triggers

Java et les bases de données

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

Bases de Données Avancées

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

Olivier Mondet

TP Programmation Java / JDBC / Oracle

IFT3030 Base de données. Chapitre 1 Introduction

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

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

Programmation d application Bases de données avec Java

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

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

SQL Historique

Bases de Données Avancé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)

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

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

Création et Gestion des tables

Implémentation des SGBD

Bases de données Outils de gestion

Introduction aux Bases de Données Relationnelles Conclusion - 1

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

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

Mysql. Les requêtes préparées Prepared statements

Introduction aux Bases de Données

Introduction aux bases de données

PROJET 1 : BASE DE DONNÉES REPARTIES

1/ Présentation de SQL Server :

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

Bases de données relationnelles

Les BASES de DONNEES dans WampServer

PHP 5. La base de données MySql. A. Belaïd 1

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

Historisation des données

Pratique et administration des systèmes

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

Introduction aux SGBDR

Pour les débutants. langage de définition des données

A QUOI SERVENT LES BASES DE DONNÉES?

I4 : Bases de Données

Application web de gestion de comptes en banques

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

Bases de données avancées Introduction

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

Encryptions, compression et partitionnement des données

Vincent Augusto

Bases de données et sites WEB

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

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

Intégration de données hétérogènes et réparties. Anne Doucet

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

Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza

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

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

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

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

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

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

Développement de base de données Microsoft SQL Server Durée : 5 jours Référence : DPSQL12. Contenu

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

et les Systèmes Multidimensionnels

Accès aux bases de données

Intégrité des données

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

FileMaker 13. Guide ODBC et JDBC

UE 8 Systèmes d information de gestion Le programme

TP3 : Creation de tables 1 seance

Langage SQL : créer et interroger une base

Auto-évaluation Oracle: cours de base

Le Langage SQL version Oracle

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

Compétences Business Objects

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

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

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

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

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Introduction à la B.I. Avec SQL Server 2008

Transcription:

Séance de cours 1 TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 1 Comprendre la terminologie du domaine des bases de données : Notion de bases de données Systèmes de gestion de bases de données Langage de programmation SQL Architectures de bases de données Définition, manipulation et contrôle de données TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 2 Notion de bases de données Quelques définitions Systèmes de gestion de bases de données Langage de programmation SQL LDD, LMD, LCD Architectures de bases de données Définition, manipulation et contrôle de données TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 3 1

BD : composante essentielle des systèmes informatiques modernes systèmes d information de gestion ingénierie contrôle de processus bibliothèques électroniques... Données persistantes TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 4 Donnée (data) Une donnée au sens informatique est une représentation d'un fait à l'aide d'un code binaire stocké dans la mémoire de l'ordinateur. Type de données (data type) Le type de données détermine la nature du codage utilisé pour représenter la donnée et les opérations applicables à la donnée. TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 5 Information : donnée interprétée (agrégée) théorie de l information Shannon et Weaver (1959 ) mesure de la quantité d'information message d'une source à un destinataire diminution de l incertitude au niveau du destinataire information : relatif au destinataire du message Changement d état du destinataire Souvent synonymes TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 6 2

Donnée simple Donnée de type complexe, ou donnée complexe composée de données simples Donnée multimédia (multimedia data) texte, image, son, vidéo TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 7 Base de données (BD) Au sens large, collection de données Différentes interprétations fichier de texte ensemble de fichiers de textes un seul fichier d'enregistrements ensemble de fichiers d enregistrements plusieurs sous bases de données indépendantes les unes des autres Toile : base de données de nature hétérogène et répartie (distribuée) BD logique = une collection de BD physiques TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 8 Base de données (database) Sens plus strict, ensemble de données : 1. fortement structurées 2. persistantes 3. structure définie dans un schéma 4. gérées par un système de gestion de bases de données Système de gestion de base de données (SGBD, database management system - DBMS) spécialisé pour la gestion de base de données TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 9 3

Mémoire centrale, principale, vive, primaire, volatile (main memory, primary storage) directement accessible par le processeur central contient les instructions et les données d'un programme en exécution rapidité non persistance Mémoire secondaire (secondary storage), permamente, externe, stable, non volatile ou persistante indirectement via des opérations d'entrée/sortie lenteur persistance TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 10 Langage de définition des données (LDD, data definition language - DDL ) permet la définition des types des données de la BD Schéma de la base de données (database schema) structure des données définie à l'aide du LDD TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 11 Programme source avec LMD enchâssé Programmeur Utilisateur expert pré-compilateur Programme source incorporant des appels à une librairie spécialisée pour le SGBD Utilisateur Administrateur de base de données (ABD) Compilateur Utilitaire d'édition du schéma Utilitaire d'édition et d'interprétation de commandes du LMD Programme d'application Utilitaire convivial de manipulation de données Interprète du LDD Evaluateur de requête (LMD) Système de gestion de base de données (SGBD) Dictionnaire de données (contient le schéma ou méta-données) Base de données (contient les données) Mémoire secondaire permanente TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 12 4

Manipulation des données (data manipulation) lire (sélectionner) ajouter supprimer modifier Langage de manipulation des données (LMD, data manipulation language - DML) langage de requête (query language ) ex: SQL (Structured Query Language) TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 13 Langage de manipulation des données enchâssé (embedded data manipulation language), langage hôte (host language) LMD enchâssé un langage de programmation hôte (ex. C, C++, ADA, JAVA, ) syntaxe spéciale non reconnue par le compilateur étape de pré-compilation Interface programmatique (API) ex. ODBC, JDBC LMD passé en paramètre Utilitaire GUI convivial TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 14 Évaluateur de requête (query processor) composante du SGBD responsable de l'exécution des requêtes processus complexe Requête (query) opération de manipulation de données TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 15 5

Administrateur de la base de données (ABD, database administrator - DBA) responsable de la gestion d'une base de données maintien du schéma de la base de données utilitaire d édition du schéma Méta-données (metadata) le schéma sous forme de données Dictionnaire de données (métabase, data dictionary) BD, gérée par le SGBD, qui contient les méta-données TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 16 Architecture centralisée programme d application et SGBD sur même machine (même site) premiers systèmes Architecture du type client-serveur (client-server architecture) programme d application = client interface («GUI») + traitement du domaine d application SGBD = serveur (de données «data server») machines (sites) différentes deux couches, niveaux, strates ( two tier ) TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 17 Réseau BD Programme d'application Client SGBD Serveur TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 18 6

BD Réseau Réseau Interface Client mince Application Serveur d'application SGBD Serveur de données TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 19 SGBD réparti (distributed DBMS) répartition des données de manière transparente BD locale BD locale Réseau Réseau Programme d'application Client SGBD réparti Serveur de données SGBD réparti Serveur de données TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 20 Parallélisme à l intérieur d un site Unité de traitement Unité de traitement Unité de traitement Mémoire vive Disque Disque Disque Disque Disque TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 21 7

BD opérationnelle (OLTP) BD opérationnelle (OLTP) Extraction : filtrage, synthèse, transformation, fusion Entrepôt de données («data wharehouse») Analyse (OLAP), prospection Autre source de données TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 22 Base de données opérationnelle traitement des données quotidiennes et récentes OLTP ( On Line Transaction Processing ). Entrepôt de données (data wharehouse) grand volume de données historiques extraites de bases opérationnelles pour le support à la prise de décision OLAP ( On Line Analytical Processing ) Prospection de données, ou forage, fouille, exploration de données, ou découverte de connaissances dans les BD (data mining, analysis, dredging, archeology, knowledge discovery in databases - KDD) extraction non triviale d'informations implicites, inconnues et utiles apprentissage machine, statistiques TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 23 Système de gestion de fichier (SGF, file system) gestionnaire de fichiers (file manager) composante du système d exploitation abstraction des mémoires secondaires sous forme d un ensemble de fichiers TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 24 8

Application de gestion des comptes Application de gestion des prêts Fichier des comptes Fichier des transactions Fichier des prêts Fichier des transactions Mise à jour en lot des comptes Mise à jour en lot des prêts Fichier des comptes mis à jour Fichier des prêts mis à jour TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 25 nocompte nomclient adresseclient notéléphone dateouverture solde 100 Hugh Paycheck Ottawa (999)999-9999 5/05/1999 1000.0 200 Dollard Cash Montréal (888)888-8888 10/10/1999 2000.0 300 Hugh Paycheck Ottawa (999)999-9999 10/10/1999 1000.0 400 Ye San Le Su Montréal (777)777-7777 20/7/2000 5.00 600 Ye San Le Su Montréal (777)777-7777 15/10/2000 10.00 noprêt nomclient adresse notéléphone montant datedébut taux fréquence Client Prêt Intérêt Paiement 12 1000 Hugh Ottawa (999)999-9999 10000.00 10/6/2000 10 Paycheck Ye San 2000 Le Montréal (777)777-7777 20000.00 20/7/2000 12 52 Su Hugh 3000 Ottawa (999)999-9999 5000.00 15/8/2000 12 12 Paycheck TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 26 Modifications anarchiques nocompte nomclient adresseclient notéléphone dateouverture solde 100 Hugh Paycheck Ottawa (999)999-9999 5/05/1999 1000.00 200 Dollard Cash Montréal (888)888-8888 10/10/1999 2000.00 300 Hugh Paycheck Québec (555)555-5555 10/10/1999 1000.00 400 Ye San Le Su Montréal (777)777-7777 20/7/2000 5.00 600 Ye San Le Su Montréal (777)777-7777 15/10/2000 10.00 noprêt nomclient adresse notéléphone montant datedébut taux fréquence Client Prêt Intérêt Paiement 1000 Hugh Paycheck Alma (444)444-4444 10000.00 10/6/2000 10 12 2000 Ye San Le Montréal (777)777-7777 20000.00 20/7/2000 12 52 Su 3000 Hugh Paycheck Ottawa (999)999-9999 5000.00 15/8/2000 12 12 TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 27 9

SGBD supporte Indexage Hachage Organisation par grappe Liens entre fichiers TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 28 Contrainte d'intégrité sémantique (semantic integrity constraint) ou simplement contrainte d'intégrité une règle qui doit toujours être respectée par les données de la BD ex: le solde d'un compte ne peut être négatif Supporté par SGBD (pas SGF) TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 29 Empêcher les interférences indésirables Temps Processus #1 Processus #2 État du fichier t 1 Lire(SoldeCompte, s) SoldeCompte = 8 {s = 8} t 2 Lire(SoldeCompte, s) {s = 8} t 3 s = s + 5 t 4 Écrire(s, SoldeCompte) SoldeCompte = 13 t 5 s = s + 2 t 6 Écrire(s, SoldeCompte) SoldeCompte = 10 t 7 Saperlipopette! SGBD : mécanismes raffinés TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 30 10

Exemple de panne SGBD : mécanismes de récupération Revenir à un état cohérent suite à une panne journal des transactions duplication des composantes et des données TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 31 SGF : lecture, écriture au niveau du fichier SGBD : contrôle plus fin types de données enregistrements champs type d opération cryptage TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 32 Transaction séquence d'opérations de manipulation de données exécutées par un programme délimitées par une opération de début et une opération de fin de transaction propriétés d'atomicité, de Consistance, d'isolation et de Durabilité (ACID). Depuis quelques années, on parle davantage des propriétés ACIDL. On ajoute la composante Légalité (respect des privilèges) TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 33 11

Indépendance entre : formulation d une requête (QUOI) langage non procédural façon d effectuer la requête par le SGBD (COMMENT) TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 34 Modèle de définition de données ( data definition model ) nature des types de données supportés par le SGBD. 1ère génération (années 70): réseau, hiérarchique (CODASYL, IMS,...) LMD navigationnel 2ième génération (années 80) :relationnel (Oracle, Ingres, DB2, SQL server, ) LMD non procédural 3ième génération (années 90) objet (Object Store, Versant, ) relationnel objet (Oracle8, DB2 UDS, Informix US) 4ième génération? déductif («Datalog»), entrepôt de données, data mining, support du WEB (XML, XMLQL) Modèles pour conception Entité-Association UML TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 35 Table Client noclient nomclient adresseclient notéléphone 10 Hugh Paycheck Ottawa (999)999-9999 20 Dollard Cash Montréal (888)888-8888 30 Ye San Le Su Montréal (777)777-7777 Table Compte nocompte solde dateouverture noclient 100 1000.00 5/05/1999 10 200 2000.00 10/10/1999 20 300 1000.00 10/10/1999 10 400 5.00 20/7/2000 30 600 10.00 15/10/2000 30 Table Prêt noprêt montantprêt datedébut tauxintérêt fréquence noclient Paiement 1000 10000.00 10/6/2000 10 12 10 2000 20000.00 20/7/2000 12 52 30 3000 5000.00 15/8/2000 12 12 10 TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 36 12

CREATE TABLE Client (noclient nomclient adresseclient notéléphone INTEGER PRIMARY KEY, VARCHAR(15), VARCHAR(20), VARCHAR(15)) CREATE TABLE Compte (nocompte INTEGER PRIMARY KEY, solde DECIMAL(10,2) CHECK (solde >= 0), dateouverture DATE, noclient INTEGER REFERENCES Client) CREATE TABLE Prêt (noprêt montantprêt datedébut tauxintérêt fréquencepaiement noclient INTEGER PRIMARY KEY, DECIMAL(10,2), DATE, DECIMAL(8,2), INTEGER, INTEGER REFERENCES Client) TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 37 TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 38 SQL> CREATE TABLE Client 2 (noclient INTEGER PRIMARY KEY, 3 nomclient VARCHAR(18), 4 adresseclient VARCHAR(20), 5 notéléphone VARCHAR(15)) 6 / Table created. SQL> CREATE TABLE Compte 2 (nocompte INTEGER PRIMARY KEY, 3 solde DECIMAL(10,2) CHECK (solde >= 0), 4 dateouverture DATE, 5 noclient INTEGER REFERENCES Client) 6 / Table created. SQL> CREATE TABLE Prêt 2 (noprêt INTEGER PRIMARY KEY, 3 montantprêt DECIMAL(10,2), 4 datedébut DATE, 5 tauxintérêt DECIMAL(8,2), 6 fréquencepaiement INTEGER, 7 noclient INTEGER REFERENCES Client) 8 / Table created. TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 39 13

SQL> INSERT INTO Client 2 VALUES(10,'Luc Sansom','Ottawa','(999)999-9999') 1 row created. SQL> SELECT * 2 FROM Client NOCLIENT NOMCLIENT ADRESSECLIENT NOTÉLÉPHONE ---------- ------------------ -------------------- --------------- 10 Luc Sansom Ottawa (999)999-9999 TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 40 -- Session parallèle avec Oracle (multiversion) : SQL> SELECT * 2 FROM Client no rows selected SQL> COMMIT 2 / Commit complete. Session parallèle : SQL> SELECT * 2 FROM Client NOCLIENT NOMCLIENT ADRESSECLIENT NOTÉLÉPHONE ---------- ------------------ -------------------- --------------- 10 Luc Sansom Ottawa (999)999-9999 TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 41 SQL> INSERT INTO Client 2 VALUES(20,'Dollard Tremblay','Montréal','(888)888-8888') 1 row created. SQL> INSERT INTO Client 2 VALUES(30,'Lin Bô','Montréal','(777)777-7777') 1 row created. SQL> ALTER SESSION SET NLS_DATE_FORMAT = 'DD/MM/YYYY' 2 / Session altered. SQL> INSERT INTO Compte 2 VALUES(100,1000.0,'5/5/1999',10) 1 row created. SQL> INSERT INTO Prêt 2 VALUES(3000,5000,'15/8/2000',12,12,10) 1 row created. SQL> COMMIT 2 / Commit complete. TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 42 14

SQL> INSERT INTO Client 2 VALUES(10,'Jean Leconte','Montréal','(666)666-6666') INSERT INTO Client * ERROR at line 1: ORA-00001: unique constraint (IDUTIL1.SYS_C001737) violated TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 43 SQL> SELECT nocompte, solde 2 FROM Compte 3 WHERE noclient = 10 4 / NOCOMPTE SOLDE ---------- ---------- 100 1000 300 1000 nocompte solde dateouverture noclient 100 1000.00 5/05/1999 10 200 2000.00 10/10/1999 20 300 1000.00 10/10/1999 10 400 5.00 20/7/2000 30 600 10.00 15/10/2000 30 SELECT nocompte, solde FROM Compte WHERE noclient = 10 nocompte solde 1000.00 100 300 1000.00 TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 44 // Exemple de programme JAVA qui utilise le pilote JDBC thin d'oracle // pour effectuer un SELECT et itérer sur les lignes du résultat // Il faut importer le paquetage java.sql pour utiliser JDBC package ExemplesJDBC; import java.sql.*; import java.math.bigdecimal; class ExempleSelectCompte { public static void main (String args []) throws SQLException, ClassNotFoundException, java.io.ioexception { // Charger le pilote JDBC d'oracle Class.forName ("oracle.jdbc.driver.oracledriver"); // Connection à une BD avec un pilote thin Connection uneconnection = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ora817i", "idutil1", "oracle"); // Création d'un énoncé associé à la Connection Statement unenoncésql = uneconnection.createstatement (); // Exécution d'un SELECT // Le code du SELECT est passé en paramètre sous forme d'un String ResultSet résultatselect = unenoncésql.executequery ("SELECT nocompte, solde FROM Compte WHERE noclient = 10"); // Itérer sur les lignes du résultat du SELECT et extraire les valeurs // des colonnes dans des variables JAVA while (résultatselect.next ()){ int nocompte = résultatselect.getint ("nocompte"); BigDecimal solde = résultatselect.getbigdecimal ("solde"); System.out.println ("Numéro du compte:" + nocompte); System.out.println ("Solde:" + solde); } // Fermeture de l'énoncé et de la connexion unenoncésql.close(); uneconnection.close(); } } TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 45 15

BD Réseau Programme d'application (Java) (Pilote JDBC) Client (TCP/IP) Client SGBD (Oracle) (NET8) Client (TCP/IP) Serveur TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 46 SQL> SELECT nomclient, nocompte, solde 2 FROM Client, Compte 3 WHERE Client.noClient = Compte.noClient AND 4 dateouverture = '10/10/1999' 5 / NOMCLIENT NOCOMPTE SOLDE ------------------ ---------- ---------- Dollard Tremblay 200 2000 Luc Sansom 300 1000 TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 47 Requête complexe noclient nomclient adresseclient notéléphone 10 Hugh Paycheck Ottawa (999)999-9999 20 Dollard Cash Montréal (888)888-8888 30 Ye San Le Su Montréal (777)777-7777 nocompte solde dateouverture noclient 100 1000.00 5/05/1999 10 200 2000.00 10/10/1999 20 300 1000.00 10/10/1999 10 400 5.00 20/7/2000 30 600 10.00 15/10/2000 30 SELECT FROM WHERE nomclient, nocompte, solde Client, Compte Client.noClient = Compte.noClient AND dateouverture = '10/10/1999' nomclient nocompte solde Dollard Cash 200 2000.00 Hugh Paycheck 300 1000.00 TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 48 16

SQL> UPDATE Compte 2 SET solde = solde - 100 3 WHERE nocompte = 100 4 / 1 row updated. SQL> UPDATE Compte 2 SET solde = solde + 100 3 WHERE nocompte = 300 4 / 1 row updated. SQL> COMMIT 2 / Commit complete. SQL> SELECT nocompte, solde 2 FROM Compte 3 WHERE noclient = 10 4 / NOCOMPTE SOLDE ---------- ---------- 100 900 300 1100 TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 49 SQL> DELETE FROM Compte WHERE nocompte = 100 2 / 1 row deleted. SQL> COMMIT 2 / Commit complete. SQL> SELECT * FROM Compte 2 / NOCOMPTE SOLDE DATEOUVERT NOCLIENT ---------- ---------- ---------- ---------- 200 2200 10/10/1999 20 300 1000 10/10/1999 10 400 5 20/07/2000 30 600 10 15/10/2000 30 TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 50 SQL> CREATE INDEX indexnoclientcompte ON Compte(noClient) 2 / Index created. TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 51 17

SQL> SELECT TABLE_NAME 2 FROM USER_TABLES TABLE_NAME ------------------------------ CLIENT COMPTE PRÊT SQL> SELECT COLUMN_NAME 2 FROM USER_TAB_COLUMNS 3 WHERE TABLE_NAME = 'CLIENT' 4 / COLUMN_NAME ------------------------------ NOCLIENT NOMCLIENT ADRESSECLIENT NOTÉLÉPHONE TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 52 SQL> SELECT TABLESPACE_NAME, EXTENTS, BLOCKS 2 FROM USER_SEGMENTS 3 WHERE SEGMENT_NAME = 'CLIENT' 4 / TABLESPACE_NAME EXTENTS BLOCKS ------------------------------ ---------- ---------- USERS 1 16 TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 53 Modèle conceptuel CLIENT NoClient NomClient AdresseClient passe (0,N) est passée par (1,1) COMMANDE NoCommande DateCommande Schéma relationnel CLIENT NoClient NomClient No Rue Ville Code postal Pays COMMANDE NoCommande DateCommande NoClient (FK) TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 54 18

Schéma externe Schéma externe... Schéma externe Schéma conceptuel Schéma interne TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 55 Godin, R. (2012). Systèmes de gestion de bases de données par l exemple. 3ième édition, Montréal, Canada: Loze Dion, Chapitre 1. Rivard, S. (2013). Le développement de systèmes d information: une méthode intégrée à la transformation des processus. 4ième édition, Québec, Québec: Presses de l Université du Québec, Annexe 7. TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 56 Processus de conception de bases de données TCH054 Bases de données Robert Godin, Lévis Thériault, Hiver 2016. 57 19