53
08/05/22 © Robert Godin. Tous droits réservés. 1 Dépendances entre les chapitres 1 Introduction aux systèm es de gestion de bases de données 7 G estion des données en m ém oire secondaire 8 O rganisations unidim ensionnelles : indexage ethachage 9 M éthodes m ultidim ensionnelles et représentation d'associations 3.1 et3.2 C oncepts de base et contraintes d'intégrité du m odèle relationnel 4 Le langage SQ L 6 C ontraintes d'intégrité en SQL 14 L'intégrité etla gestion des transactions 11 Théorie de la norm alisation 2 Analyse etm odélisation conceptuelle 3.3 C onception logique 5 Interface entre SQ L etun program m e 3.4 Algèbre relationelle 10 Evaluation des requêtes relationnelles 13 C onception dans un contexte relationnel 12 C as d'utilisation détaillés et processus d'élaboration du m odèle conceptuel de données 15 D éveloppem ent d'applications de bases de données en Java 16 Bases de données objet 17 R elationel-objet 18 B ases de données parallèles etréparties 19 Les entrepôts de données etl’analyse de données 20 D onnées sem i- structurées etX M L 21 R epérage de l’inform ation 22 Logique etbases de données

30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

Embed Size (px)

Citation preview

Page 1: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 1

Dépendances entre les chapitres1

Introduction auxsystèmes de gestion de

bases de données

7Gestion des données en

mémoire secondaire

8Organisations

unidimensionnelles :indexage et hachage

9Méthodes

multidimensionnelles etreprésentationd'associations

3.1 et 3.2Concepts de base et

contraintes d'intégrité dumodèle relationnel

4Le langage SQL

6Contraintes d'intégrité en

SQL

14L'intégrité et la gestion

des transactions

11Théorie de lanormalisation

2Analyse et modélisation

conceptuelle

3.3Conception logique

5Interface entre SQL et un

programme

3.4Algèbre relationelle

10Evaluation des requêtes

relationnelles

13Conception dans uncontexte relationnel

12Cas d'utilisation détaillés etprocessus d'élaboration du

modèle conceptuel dedonnées

15Développement

d'applications de bases dedonnées en Java

16Bases de données objet

17Relationel-objet

18Bases de données

parallèles et réparties

19Les entrepôts de

données et l’analyse dedonnées

20Données semi-

structurées et XML

21Repérage del’information

22Logique et bases de

données

Page 2: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 2

1 Introduction aux systèmes de gestion de bases de données

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

Page 3: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 3

1.1 Donnée et de type de donnée

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.

Page 4: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 4

1.2 Donnée et information

Information : donnée interprété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

Page 5: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 5

1.3 Donnée simple et complexe

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

Page 6: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 6

1.4 Différentes facettes du terme base de données 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

BD logique = une collection de BD physiques

Page 7: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 7

1.5 Système de gestion de base de données (SGBD) 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 système de gestion de bases de données

Système de gestion de base de données (SGBD, database management system - DBMS)

– Logiciel spécialisé pour la gestion de base de données

Page 8: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 8

Mémoire centrale/secondaire

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

Page 9: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 9

Langage de définition des données et schéma

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

Page 10: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 10

Environnement SGBD

Système de gestion de base dedonnées (SG BD)

Programmed'application

Utilitaire d'édition etd'interprétation de

commandes du LMD

Utilitaire convivialde manipulation

de données

Evaluateur de requête (LMD)Interprète du LDD

Utilitaire d'éditiondu schéma

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

Administrateur de base de données (ABD)

Utilisateur expert

Utilisateur

Programme sourceincorporant des appels à une

librairie spécialisée pour leSGBD

ProgrammeurProgramme source

avec LMD enchâssé

pré-compilateur

Compilateur

Page 11: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 11

Langage de manipulation de données/ de requête

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, OQL

Page 12: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 12

Contexte d ’utilisation du LMD

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 (e.g. C, C++, ADA, JAVA,…)

– syntaxe spéciale non reconnue par compilateur étape de pré-compilation

Interface programmatique (API)– e.g. ODBC, JDBC

– LMD passé en paramètre

Utilitaire GUI convivial

Page 13: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 13

Exécution des requêtes

É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

Page 14: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 14

Définition des données

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

Page 15: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 15

1.6Principales architectures des BD 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 ”)

Page 16: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 16

Architecture client-serveur

Réseau

Logicielinterm édiaire

Pilote detélécom m unication

Program m ed'application

Logicielinterm édiaire

Pilote detélécom m unication

SGBD

Client Serveur

BD

Page 17: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 17

Architecture à trois niveaux (three tier)

Réseau

Logicielinterm édiaire

Pilote detélécom m unication

Application

Logicielinterm édiaire

Pilote detélécom m unication

SGBD

Serveurd 'application

Serveur dedonnées

Logicielinterm édiaire

Pilote detélécom m unication

Interface

Clientm ince

Réseau

BD

Page 18: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 18

Base de données répartie, distribuée (distributed database)

SGBD réparti (distributed DBMS)

– répartition des données de manière transparente

Réseau

Logicielinterm édiaire

Pilote detélécom m unication

SGBD réparti

Serveur dedonnées

Logicielinterm édiaire

Pilote detélécom m unication

Program m ed'application

Client

Réseau

Logicielinterm édiaire

Pilote detélécom m unication

SGBD réparti

Serveur dedonnées

BDlocale

BDlocale

Page 19: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 19

Base de données parallèle (parallel database) Parallélisme à l'intérieur d'un site

Disque Disque Disque Disque

Unité detraitement

Unité detraitement

Unité detraitement

Disque

Mémoire vive

Page 20: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 20

Entrepôt de données

Entrepôt de données(« data wharehouse »)

BDopérationnelle

(O LTP)

Autresource dedonnées

Extraction :f iltrage,

synthèse,transform ation,

fusion

BDopérationnelle

(O LTP)

Analyse(O LAP),

prospection

Page 21: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 21

Entrepôt de données 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

Page 22: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 22

1.7 Des systèmes de gestion de fichiers aux SGBD

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

Page 23: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 23

Utilisation d'un système de gestion de fichier

Fichier descomptes

Fichier destransactions

Fichier descomptes

mis à jour

M ise à jour en lo tdes comptes

Application de gestion des comptes

Fichier des prêtsFichier des

transactions

Fichier des prêtsmis à jour

M ise à jour en lo tdes prêts

Application de gestion des prêts

Page 24: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 24

Exemple de contenu des fichiers de comptes et de prêts (fichiers séquentiels triés)

noPrêt nomClient adresseClient

noTéléphone montantPrêt

dateDébut tauxIntérêt

fréquencePaiement

1000 HughPaycheck

Ottawa (999)999-9999 10000.00 10/6/2000 10 12

2000 Ye San LeSu

Montréal (777)777-7777 20000.00 20/7/2000 12 52

3000 HughPaycheck

Ottawa (999)999-9999 5000.00 15/8/2000 12 12

noCompte nomClient adresseClient noTéléphone dateOuverture solde100 Hugh Paycheck Ottawa (999)999-9999 5/05/1999 1000.00200 Dollard Cash Montréal (888)888-8888 10/10/1999 2000.00300 Hugh Paycheck Ottawa (999)999-9999 10/10/1999 1000.00400 Ye San Le Su Montréal (777)777-7777 20/7/2000 5.00600 Ye San Le Su Montréal (777)777-7777 15/10/2000 10.00

Page 25: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 25

1.7.1 Redondance et incohérence des données

noCompte nomClient adresseClient noTéléphone dateOuverture solde100 Hugh Paycheck Ottawa (999)999-9999 5/05/1999 1000.00200 Dollard Cash Montréal (888)888-8888 10/10/1999 2000.00300 Hugh Paycheck Québec (555)555-5555 10/10/1999 1000.00400 Ye San Le Su Montréal (777)777-7777 20/7/2000 5.00600 Ye San Le Su Montréal (777)777-7777 15/10/2000 10.00

noPrêt nomClient adresseClient

noTéléphone montantPrêt

dateDébut tauxIntérêt

fréquencePaiement

1000 HughPaycheck

Alma (444)444-4444 10000.00 10/6/2000 10 12

2000 Ye San LeSu

Montréal (777)777-7777 20000.00 20/7/2000 12 52

3000 HughPaycheck

Ottawa (999)999-9999 5000.00 15/8/2000 12 12

Modifications anarchiques

Page 26: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 26

1.7.2Mécanismes d'organisation de données limités des SGF

SGBD supporte– Indexage – Hachage– Organisation par grappe– Liens entre fichiers

Page 27: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 27

1.7.3 Intégrité sémantique

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)

Page 28: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 28

1.7.4 Contrôle de concurrence

Empêcher interférences indésirables

SGBD : mécanismes raffinés

Temps Processus #1 Processus #2 État du fichiert1 Lire(SoldeCompte, s)

{s = 8}SoldeCompte = 8

t2 Lire(SoldeCompte, s){s = 8}

t3 s = s + 5t4 Écrire(s, SoldeCompte) SoldeCompte = 13t5 s = s + 2t6 Écrire(s, SoldeCompte) SoldeCompte = 10t7 Saperlipopette!

Page 29: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 29

1.7.5 Fiabilité

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

Page 30: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 30

1.7.6 Sécurité

SGF : – lecture, écriture au niveau fichier

SGBD : contrôle plus fin– types de données– enregistrements– champs– type d ’opération– cryptage

Page 31: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 31

1.7.7 Gestion des transactions

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).

Page 32: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 32

1.7.8Indépendance des données

Indépendance entre :

– formulation d'une requête (QUOI)

langage non procédural

– façon d'effectuer la requête par le SGBD (COMMENT)

Page 33: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 33

1.8 Perspective historique

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

– E/R, UML

Page 34: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 34

1.9 Exemple introductif : Banque SansIntérêts

Table ClientnoClient nomClient adresseClient noTéléphone10 Hugh Paycheck Ottawa (999)999-999920 Dollard Cash Montréal (888)888-888830 Ye San Le Su Montréal (777)777-7777

Table ComptenoCompte solde dateOuverture noClient100 1000.00 5/05/1999 10200 2000.00 10/10/1999 20300 1000.00 10/10/1999 10400 5.00 20/7/2000 30600 10.00 15/10/2000 30

Table PrêtnoPrêt montantPrêt dateDébut tauxIntérêt fréquence

PaiementnoClient

1000 10000.00 10/6/2000 10 12 102000 20000.00 20/7/2000 12 52 303000 5000.00 15/8/2000 12 12 10

Page 35: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 35

Code du schéma avec le LDD SQL(script Oracle)

CREATE TABLE Client (noClient INTEGER PRIMARY KEY, nomClient VARCHAR(15), adresseClient VARCHAR(20), noTéléphone 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 INTEGER PRIMARY KEY, montantPrêt DECIMAL(10,2), dateDébut DATE, tauxIntérêt DECIMAL(8,2), fréquencePaiement INTEGER, noClient INTEGER REFERENCES Client)

Page 36: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 36

Création du schéma avec l'outil SQL*plus d'Oracle

Page 37: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 37

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.

Création du schéma

Page 38: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 38

Manipulation de donnéesSQL> INSERT INTO Client 2 VALUES(10,'Luc Sansom','Ottawa','(999)999-9999') 3 /

1 row created.

SQL> SELECT * 2 FROM Client 3 /

NOCLIENT NOMCLIENT ADRESSECLIENT NOTÉLÉPHONE---------- ------------------ -------------------- --------------- 10 Luc Sansom Ottawa (999)999-9999

Page 39: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 39

Transaction (COMMIT)

-- Session parallèle avec Oracle (multiversion) :

SQL> SELECT * 2 FROM Client 3 /

no rows selected

SQL> COMMIT 2 /

Commit complete.

Session parallèle :

SQL> SELECT * 2 FROM Client 3 /

NOCLIENT NOMCLIENT ADRESSECLIENT NOTÉLÉPHONE---------- ------------------ -------------------- --------------- 10 Luc Sansom Ottawa (999)999-9999

Page 40: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 40

Insertion d ’un lot en une transaction

SQL> INSERT INTO Client 2 VALUES(20,'Dollard Tremblay','Montréal','(888)888-8888') 3 /

1 row created.

SQL> INSERT INTO Client 2 VALUES(30,'Lin Bô','Montréal','(777)777-7777') 3 /

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) 3 /

1 row created.

SQL> INSERT INTO Prêt 2 VALUES(3000,5000,'15/8/2000',12,12,10) 3 /

1 row created.

SQL> COMMIT 2 /

Commit complete.

Page 41: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 41

Respect des contraintes d’intégrité

SQL> INSERT INTO Client 2 VALUES(10,'Jean Leconte','Montréal','(666)666-6666') 3 /INSERT INTO Client*ERROR at line 1:ORA-00001: unique constraint (IDUTIL1.SYS_C001737) violated

Page 42: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 42

SELECT SQLSQL> SELECT noCompte, solde 2 FROM Compte 3 WHERE noClient = 10 4 /

NOCOMPTE SOLDE---------- ---------- 100 1000 300 1000

SELECT noCompte, soldeFROM CompteWHERE noClient = 10

noCompte solde100 1000.00300 1000.00

noCompte solde dateOuverture noClient100 1000.00 5/05/1999 10200 2000.00 10/10/1999 20300 1000.00 10/10/1999 10400 5.00 20/7/2000 30600 10.00 15/10/2000 30

Page 43: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 43

Exécution d'un SELECT dans une application client-serveur Java// 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 JDBCpackage 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(); }}

Page 44: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 44

Pilote JDBC

Réseau

Program m ed'application (Java)

Client

Serveur

BD

Logicielinterm édiaire(P ilote JDBC)

Pilote detélécom m unication

(TCP/IP)

SG BD(O racle)

Client

Logicielinterm édiaire

(NET8)Pilote de

télécom m unication(TCP/IP)

Client

Page 45: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 45

SELECT sur plusieurs tables

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 2000Luc Sansom 300 1000

Page 46: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 46

suite

Requête complexenoCompte solde dateOuverture noClient100 1000.00 5/05/1999 10200 2000.00 10/10/1999 20300 1000.00 10/10/1999 10400 5.00 20/7/2000 30600 10.00 15/10/2000 30

SELECT nomClient, noCompte, soldeFROM Client, CompteWHERE Client.noClient = Compte.noClient AND dateOuverture = '10/10/1999'

noClient nomClient adresseClient noTéléphone10 Hugh Paycheck Ottawa (999)999-999920 Dollard Cash Montréal (888)888-888830 Ye San Le Su Montréal (777)777-7777

nomClient noCompte soldeDollard Cash 200 2000.00Hugh Paycheck 300 1000.00

Page 47: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 47

UPDATE SQLSQL> 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

Page 48: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 48

DELETE SQLSQL> 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

Page 49: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 49

Organisation physique des données

SQL> CREATE INDEX indexNoClientCompte ON Compte(noClient) 2 /

Index created.

Page 50: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 50

Dictionnaire de données

SQL> SELECT TABLE_NAME 2 FROM USER_TABLES 3 /

TABLE_NAME------------------------------CLIENTCOMPTEPRÊT

SQL> SELECT COLUMN_NAME 2 FROM USER_TAB_COLUMNS 3 WHERE TABLE_NAME = 'CLIENT' 4 /

COLUMN_NAME------------------------------NOCLIENTNOMCLIENTADRESSECLIENTNOTÉLÉPHONE

Page 51: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 51

Allocation d ’espace

SQL> SELECT TABLESPACE_NAME, EXTENTS, BLOCKS 2 FROM USER_SEGMENTS 3 WHERE SEGMENT_NAME = 'CLIENT' 4 /

TABLESPACE_NAME EXTENTS BLOCKS------------------------------ ---------- ----------USERS 1 16

Page 52: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 52

1.10 Conception du schéma d'une base de données

Prêt

noPrêtmontantPrêtdateDébuttauxIntérêtfréquencePaiement

<<entity>>

Compte

noComptesoldedateOuverture

<<entity>>

Client

noClientnomClientadresseClientnoTéléphone

<<entity>>

1

0..*

1

0..*

0..*

1

0..*

1

Prêt

{CléPrimaire : noPrêt}noPrêtmontantPrêtdateDébuttauxIntérêtfréquencePaiementnoClient

<<Table>>

Compte

{Clé primaire : noCompte}noComptesoldedateOuverturenoClient

<<Table>>

Client

{Clé primaire : noClient}noClientnomClientadresseClientnoTéléphone

<<Table>>

Modèleconceptuel

Schémarelationnel

Page 53: 30/05/2014© Robert Godin. Tous droits réservés.1 Dépendances entre les chapitres

11/04/23 © Robert Godin. Tous droits réservés. 53

1.11 Architecture à trois niveaux des schémas (ANSI/SPARC)

Schémaexterne

Schémaexterne

Schémaexterne

...

Schémaconceptuel

Schémainterne