I Christine Bonnet sources : divers et BASES DE DONNÉES RELATIONNELLES Introduction.
-
Upload
liliane-stephan -
Category
Documents
-
view
105 -
download
0
Transcript of I Christine Bonnet sources : divers et BASES DE DONNÉES RELATIONNELLES Introduction.
II
Christine Bonnet sources : divers et
BASES DE DONNÉES RELATIONNELLES
Introduction
BASES DE DONNÉES RELATIONNELLES
Introduction
I-2 Christine Bonnet sources : divers et
Cycle de vie du développement d’un système
Cycle de vie du développement d’un système
Stratégie etStratégie etAnalyseAnalyse
ConceptionConception
PrototypagePrototypageDocumentationDocumentation
TransitionTransition
ProductionProduction
I-3 Christine Bonnet sources : divers et
HISTORIQUE HISTORIQUE PREMIÈRES GÉNÉRATIONS DE SGBD
1ère GÉNÉRATION : Conception - 1960Niveau Opérationnel - 1970
SGBD Hiérarchique et Réseau (CODASYL) Exemples : IMS, IDSII, IDMS, etc.
2ème GÉNÉRATION : Conception - 1970 Niveau Opérationnel - 1980
SGBD Relationnel (Concept Mathématique de Relations)
Exemples : ORACLE, SYBASE, ACCESS, INGRES, INFORMIX, etc. SGBD conçus au départ pour des applications classiques de gestion.
I-4 Christine Bonnet sources : divers et
BASES DE DONNÉES AVANCÉES : TROISIÈME GÉNÉRATION
BASES DE DONNÉES AVANCÉES : TROISIÈME GÉNÉRATION
3ème GÉNÉRATION :Conception : 1980Niveau opérationnel : 1990…2000
OBJECTIFS : Lever les limites des SGBDRAugmenter la puissance de calcul des LMDAugmenter la richesse sémantique des modèles de BD
• Les BD Relationnelles Objets (ORACLE V.8i)
• Les BD déductives
APPROCHES IMPORTANTES :
I-5 Christine Bonnet sources : divers et
Concept de Base de Données Relationnelles
Concept de Base de Données Relationnelles
• Dr. E. F. Codd proposa le modèle relationnel en 1970.
• Base pour un Système de Gestion de Bases de Données Relationnelles (SGBDR).
• Le modèle relationnel consiste en:
– Collection d’objets ou de relations
– Ensemble d’opérateurs pour agir sur les relations
– L’intégrité des données pour l’exactitude et la cohérence
• Dr. E. F. Codd proposa le modèle relationnel en 1970.
• Base pour un Système de Gestion de Bases de Données Relationnelles (SGBDR).
• Le modèle relationnel consiste en:
– Collection d’objets ou de relations
– Ensemble d’opérateurs pour agir sur les relations
– L’intégrité des données pour l’exactitude et la cohérence
I-6 Christine Bonnet sources : divers et
BASES DE DONNÉES RELATIONNELLES : RAPPELSBASES DE DONNÉES RELATIONNELLES : RAPPELS
Gros volumes de donnéesDonnées persistantes partagées
Technologies : recherche efficace mises à jour fiables
CARACTÉRISTIQUES
Bases de données
Contraintes Exprimées dans le langage de définition de données.
Stockage et gestion de gros volumes de données
Requêtes Efficacité de l’accès
Accès à des données - persistantes, - partagées, - résistantes aux pannes, - pouvant être accédées et mises à jour de façon concurrente par d’autres applications.
Langage de définition et de manipulation de données orienté utilisateurs : SQL.
I-7 Christine Bonnet sources : divers et
Définition d’une Base de Données Relationnelle
Définition d’une Base de Données Relationnelle
Une BD relationnelle est une collection de Une BD relationnelle est une collection de relations ou de tables bi-dimensionnellesrelations ou de tables bi-dimensionnellesUne BD relationnelle est une collection de Une BD relationnelle est une collection de relations ou de tables bi-dimensionnellesrelations ou de tables bi-dimensionnelles
BDBD
DEPTNO DNAME LOC
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
DEPTNO DNAME LOC
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
Nom de table : Nom de table : DEPTDEPT
EMPNO ENAME JOB DEPTNO
7839 KING PRESIDENT 10
7698 BLAKE MANAGER 30
7782 CLARK MANAGER 10
7566 JONES MANAGER 20
EMPNO ENAME JOB DEPTNO
7839 KING PRESIDENT 10
7698 BLAKE MANAGER 30
7782 CLARK MANAGER 10
7566 JONES MANAGER 20
Nom de table : Nom de table : EMPEMP
I-8 Christine Bonnet sources : divers et
Stockage des données sur différents médias
Stockage des données sur différents médias
Feuille de calcul Feuille de calcul électroniqueélectronique ClasseurClasseur
Base de Base de donnéesdonnées
SALGRADESALGRADE GRADE LOSAL HISAL
--------- --------- ---------
1 700 1200
2 1201 1400
3 1401 2000
4 2001 3000
5 3001 9999
SALGRADESALGRADE GRADE LOSAL HISAL
--------- --------- ---------
1 700 1200
2 1201 1400
3 1401 2000
4 2001 3000
5 3001 9999
DEPTDEPT DEPTNO DNAME LOC
--------- -------------- ----------
10 ACCOUNTING NEW
YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
DEPTDEPT DEPTNO DNAME LOC
--------- -------------- ----------
10 ACCOUNTING NEW
YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
I-9 Christine Bonnet sources : divers et
STRUCTURE RELATIONNELLESTRUCTURE RELATIONNELLE
CONCEPTS DE BASE DU MODÈLE RELATIONNEL
Domaine : ensemble de valeurs. Exemples : Domaine produits = {aspirine, alcool, vitamine,…}
Domaine D1 = ensemble des entiers.
Attribut : variable prenant ses valeurs dans un domaine. Exemple : l'attribut "n° représentant" prend ses valeurs dans D1.
Relation : une relation R sur un ensemble d'attributs U={A1, A2, …, An} de domaines respectifs D1, D2, …, Dn est un sous-ensemble du produit cartésien D1D2 ... Dn. Exemple : commande(n° commande, date commande, date livraison, n° client).
I-10 Christine Bonnet sources : divers et
STRUCTURE RELATIONNELLESTRUCTURE RELATIONNELLE
Terminologie :
Chaque ligne d'une relation (table) est appelée n-uplet ou tuple.
L'ordre d'une relation est le nombre d'attributs (de colonnes) de la relation.
La cardinalité d'une relation est le nombre de tuples de la relation.
I-11 Christine Bonnet sources : divers et
Terminologie des BD relationnellesTerminologie des BD relationnelles
1
2 3 4
5
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
------------- ------------ --------------------- -------- ---------------- ----------- -------------- -----------
7839 KING PRESIDENT 17-NOV-81 5000 10
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7566 JONES MANAGER 7839 02-APR-81 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7900 JAMES CLERK 7698 03-DEC-81 950 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7369 SMITH CLERK 7902 17-DEC-80 800 20
7788 SCOTT ANALYST 7566 09-DEC-82 3000 20
7876 ADAMS CLERK 7788 12-JAN-83 1100 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10
6
I-12 Christine Bonnet sources : divers et
Dépendance Fonctionnelle (DF) : exprime une contrainte.
Soit X et Y deux sous-ensembles d'attributs de l'ensemble des attributsd'une relation R, il existe une dépendance fonctionnelle de X vers Y,notée XY, si pour une valeur donnée à chaque attribut de X, il correspondau plus une valeur pour chaque attribut de Y.
lorsque 2 n-uplets ont les mêmes valeurs pour les attributs de X, ils ont les mêmes valeurs sur les attributs de Y.
n° commande date commande, date livraison, n° client.
STRUCTURE RELATIONNELLESTRUCTURE RELATIONNELLE
Exemple :
I-13 Christine Bonnet sources : divers et
STRUCTURE RELATIONNELLESTRUCTURE RELATIONNELLEType de dépendance fonctionnelle :
quelconque.
élémentaire :U : ensemble d'attributsX, Y U, XY est élémentaire X' X tel que X' Y
Exemple : n° commande, n° produit n° client, n'est pas élémentaire.
directe :X, Y U, XY est directe Z U tel que XZ et Z Y.
Exemple : n° commande n° clientn° client nom clientn° commande nom client, n'est pas directe.
I-14 Christine Bonnet sources : divers et
STRUCTURE RELATIONNELLESTRUCTURE RELATIONNELLE
Contraintes :
D'unicité de la clé : il ne peut exister deux n-uplets ayant la même valeur pourune occurrence de relation.
D'intégrité référentielle : toute valeur d'une clé étrangère dans une relation doitexister dans une autre relation comme valeur de clé primaire (exemple : toute valeur de n° client dans la table commande doit exister dans la table client).
D'entité : tout attribut participant à une clé primaire ne doit pas avoir de valeur nulle.
Clé candidate, clé primaire, clé étrangère :
Une clé candidate est un sous-ensemble minimal d'attributs tel qu'il existeune dépendance fonctionnelle de ce sous-ensemble vers tout autre attributde la relation.Une clé primaire est une des clés candidate (exemple : n° commande).Une clé étrangère est un ensemble d'attributs, clé primaire d'une autre relation(exemple : n° client dans la table commande).
I-15 Christine Bonnet sources : divers et
STRUCTURE RELATIONNELLESTRUCTURE RELATIONNELLE
Forme normale d'une relation :
1FN : tous les attributs sont simples et la relation possède une clé primaire.
2FN : 1FN et tous les attributs non clé sont en DF élémentaire avec la clé.
3FN : 2FN et tous les attributs non clé sont en DF directe avec la clé.
I-16 Christine Bonnet sources : divers et
Modèles de donnéesModèles de données
Modèle du Modèle du système dans système dans
l’esprit du l’esprit du clientclient
Modèle EA du modèle Modèle EA du modèle du clientdu client
Modèle de tables du Modèle de tables du modèle EAmodèle EA
Tables sur Tables sur disquesdisques
ServeurServeur
I-17 Christine Bonnet sources : divers et
• Création d’un diagramme EA correspondant aux spécifications
• Scénario– “. . . Attribuer un ou plusieurs employés à un
département. . .”– “. . . Quelques départements n’ont pas encore
d’employé. . .”
• Création d’un diagramme EA correspondant aux spécifications
• Scénario– “. . . Attribuer un ou plusieurs employés à un
département. . .”– “. . . Quelques départements n’ont pas encore
d’employé. . .”
Modèle EAModèle EA
EMPLOYEEEMPLOYEE#* #* numbernumber** namenameoo job titlejob title
EMPLOYEEEMPLOYEE#* #* numbernumber** namenameoo job titlejob title
DEPARTMENTDEPARTMENT#* #* numbernumber** namenameoo locationlocation
DEPARTMENTDEPARTMENT#* #* numbernumber** namenameoo locationlocation
assigned toassigned toassigned toassigned to
I-18 Christine Bonnet sources : divers et
Lier plusieurs tablesLier plusieurs tables
• Chaque ligne dans une table est identifiée de façon unique par une clé primaire.
• Chaque ligne dans une table est identifiée de façon unique par une clé primaire.
Nom de la table : Nom de la table : EMPEMP Nom de la table : Nom de la table : DEPTDEPT
Clé primaireClé primaire Clé primaireClé primaire
• Vous pouvez lier logiquement des données de plusieurs tables en utilisant les clés étrangères
• Vous pouvez lier logiquement des données de plusieurs tables en utilisant les clés étrangères
Clé étrangèreClé étrangère
EMPNO ENAME JOB DEPTNO
7839 KING PRESIDENT 10
7698 BLAKE MANAGER 30
7782 CLARK MANAGER 10
7566 JONES MANAGER 20
DEPTNO DNAME LOC
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
I-19 Christine Bonnet sources : divers et
SQL> SELECT loc 2 FROM dept;
SQL> SELECT loc 2 FROM dept;
Un ordre SQL est Un ordre SQL est entréentré L’ordre est envoyé à L’ordre est envoyé à
la BDla BD
LOC
-------------
NEW YORK
DALLAS
CHICAGO
BOSTON
LOC
-------------
NEW YORK
DALLAS
CHICAGO
BOSTON
Les données sont Les données sont affichéesaffichées
Communiquer avec un SGBDR en utilisant SQL
Communiquer avec un SGBDR en utilisant SQL
BDBD
I-20 Christine Bonnet sources : divers et
SGBDRSGBDR
Tables Tables utilisateurutilisateur
Dictionnaire Dictionnaire des donnéesdes données
ServeurServeur
I-21 Christine Bonnet sources : divers et
Solution Oracle ComplèteSolution Oracle Complète
SQLSQLSQLSQL PL/SQLPL/SQLPL/SQLPL/SQL
Oracle 8/9/10Oracle 8/9/10
ApplicationsApplications FinanceFinance FabricationFabrication ......
ApplicationsApplications FinanceFinance FabricationFabrication ...... Oracle DesignerOracle DesignerOracle DesignerOracle Designer
Oracle DeveloperOracle DeveloperOracle DeveloperOracle Developer
Tables de Tables de donnéesdonnées
DatabaseDatabase
SQL* PlusSQL* PlusSQL* PlusSQL* Plus
Discoverer Discoverer Discoverer Discoverer
Dictionnaire Dictionnaire des donnéesdes données
I-22 Christine Bonnet sources : divers et
ORDRES SQLORDRES SQL
SELECT SELECT INSERTINSERTUPDATEUPDATEDELETEDELETE
CREATECREATEALTERALTERDROPDROPRENAMERENAMETRUNCATETRUNCATE
COMMITCOMMITROLLBACKROLLBACKSAVEPOINTSAVEPOINT
GRANTGRANTREVOKEREVOKE
Recherche de données Recherche de données
Langage de manipulation de Langage de manipulation de données (DML)données (DML)
Langage de définition deLangage de définition deDonnées (DDL)Données (DDL)
Contrôle des transactionsContrôle des transactions
Langage de contrôle des Langage de contrôle des données (DCL)données (DCL)
I-23 Christine Bonnet sources : divers et
Tables Utilisées dans le CoursTables Utilisées dans le Cours
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
--------- ---------- --------- --------- --------- --------- --------- ---------
7839 KING PRESIDENT 17-NOV-81 5000 10
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7566 JONES MANAGER 7839 02-APR-81 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7900 JAMES CLERK 7698 03-DEC-81 950 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7369 SMITH CLERK 7902 17-DEC-80 800 20
7788 SCOTT ANALYST 7566 09-DEC-82 3000 20
7876 ADAMS CLERK 7788 12-JAN-83 1100 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
--------- ---------- --------- --------- --------- --------- --------- ---------
7839 KING PRESIDENT 17-NOV-81 5000 10
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7566 JONES MANAGER 7839 02-APR-81 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7900 JAMES CLERK 7698 03-DEC-81 950 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7369 SMITH CLERK 7902 17-DEC-80 800 20
7788 SCOTT ANALYST 7566 09-DEC-82 3000 20
7876 ADAMS CLERK 7788 12-JAN-83 1100 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10
EMPEMP
DEPTDEPT
DEPTNO DNAME LOC
--------- -------------- ----------
10 ACCOUNTING NEW
YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
DEPTNO DNAME LOC
--------- -------------- ----------
10 ACCOUNTING NEW
YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
GRADE LOSAL HISAL
--------- --------- ---------
1 700 1200
2 1201 1400
3 1401 2000
4 2001 3000
5 3001 9999
GRADE LOSAL HISAL
--------- --------- ---------
1 700 1200
2 1201 1400
3 1401 2000
4 2001 3000
5 3001 9999
SALGRADESALGRADE
I-24 Christine Bonnet sources : divers et
Interaction entre SQL and SQL*Plus
Interaction entre SQL and SQL*Plus
SQL*PlusSQL*Plus
SQL StatementsSQL StatementsBufferBuffer
SQL StatementsSQL Statements
Server
Query ResultsQuery ResultsSQL*PlusSQL*Plus CommandsCommands
Formatted ReportFormatted Report
I-25 Christine Bonnet sources : divers et
Ordres SQL / Commandes SQL*PlusOrdres SQL / Commandes SQL*Plus
SQLSQLstatementsstatements
SQL SQL
• Un langageUn langage
• Standard ANSIStandard ANSI
• Mots clés : pas Mots clés : pas d’abréviationd’abréviation
• Les ordres manipulent Les ordres manipulent des définitions de des définitions de données et de tables données et de tables de la base de donnéesde la base de données
SQL*PlusSQL*Plus
• Un environnementUn environnement
• Propriété d’Oracle Propriété d’Oracle
• Abréviation possible des Abréviation possible des mots clésmots clés
• Les commandes ne Les commandes ne permettent pas la permettent pas la manipulation des valeurs manipulation des valeurs de la base de données.de la base de données.
SQLSQLbufferbuffer
SQL*PlusSQL*Pluscommandscommands
SQL*PlusSQL*Plusbufferbuffer
I-26 Christine Bonnet sources : divers et
• Ouvrir une session SQL*Plus.
• Décrire la structure de la table.
• Éditer vos ordres SQL.
• Exécuter SQL à partir de SQL*Plus.
• Sauvegarder des ordres SQL dans des fichiers et ajouter des ordres SQL aux fichiers.
• Exécuter des fichiers sauvegardés.
• Charger des commandes à partir d’un fichier vers un buffer pour les éditer.
• Ouvrir une session SQL*Plus.
• Décrire la structure de la table.
• Éditer vos ordres SQL.
• Exécuter SQL à partir de SQL*Plus.
• Sauvegarder des ordres SQL dans des fichiers et ajouter des ordres SQL aux fichiers.
• Exécuter des fichiers sauvegardés.
• Charger des commandes à partir d’un fichier vers un buffer pour les éditer.
Aperçu de SQL*PlusAperçu de SQL*Plus
I-27 Christine Bonnet sources : divers et
• A partir de l’environnement Windows :A partir de l’environnement Windows :
• A partir d’une ligne de commande:A partir d’une ligne de commande: connect [connect [usernameusername[/[/password password [@[@databasedatabase]]]]]]
Se connecter à SQL*PlusSe connecter à SQL*Plus
INVITE
INVITE
Lyon
ANTOINEBERMON
ANTOINEBERMON
Lyon
I-28 Christine Bonnet sources : divers et
Afficher la structure des tablesAfficher la structure des tables
Commande SQL*Plus : DESCRIBECommande SQL*Plus : DESCRIBECommande SQL*Plus : DESCRIBECommande SQL*Plus : DESCRIBE
DESC[RIBE] tablenameDESC[RIBE] tablename
I-29 Christine Bonnet sources : divers et
Afficher la structure des tablesAfficher la structure des tables
SQL> DESCRIBE deptSQL> DESCRIBE dept
Name Null? Type----------------- -------- ------------DEPTNO NOT NULL NUMBER(2)DNAME VARCHAR2(14)LOC VARCHAR2(13)
Name Null? Type----------------- -------- ------------DEPTNO NOT NULL NUMBER(2)DNAME VARCHAR2(14)LOC VARCHAR2(13)
I-30 Christine Bonnet sources : divers et
Commandes d’édition de SQL*Plus
Commandes d’édition de SQL*Plus
• A[PPEND] text
• C[HANGE] / old / new
• C[HANGE] / text /
• CL[EAR] BUFF[ER]
• DEL
• DEL n
• DEL m n
• A[PPEND] text
• C[HANGE] / old / new
• C[HANGE] / text /
• CL[EAR] BUFF[ER]
• DEL
• DEL n
• DEL m n
I-31 Christine Bonnet sources : divers et
Commandes d’édition de SQL*Plus
Commandes d’édition de SQL*Plus
• I[NPUT]
• I[NPUT] text
• L[IST]
• L[IST] n
• L[IST] m n
• R[UN]
• n
• n text
• 0 text
• I[NPUT]
• I[NPUT] text
• L[IST]
• L[IST] n
• L[IST] m n
• R[UN]
• n
• n text
• 0 text
I-32 Christine Bonnet sources : divers et
Commandes de fichiers de SQL*Plus
Commandes de fichiers de SQL*Plus
• SAVE filename
• GET filename
• START filename
• @ filename
• EDIT filename
• SPOOL filename
• SAVE filename
• GET filename
• START filename
• @ filename
• EDIT filename
• SPOOL filename
I-33 Christine Bonnet sources : divers et
EXEMPLEEXEMPLE
SQL> ed exo1SQL> ed exo1
-- sauvegarde sur le compte personnel-- sauvegarde sur le compte personnel
-- tests-- tests
SQL> sta exo1SQL> sta exo1
-- modification de exo1-- modification de exo1
SQL> ed -- ou Fichier-OuvrirSQL> ed -- ou Fichier-Ouvrir
-- impression des résultats dans un fichier-- impression des résultats dans un fichier
SQL> spo exo1impSQL> spo exo1imp
-- exécution de exo1-- exécution de exo1
SQL> spo offSQL> spo off
SQL> ed exo1SQL> ed exo1
-- sauvegarde sur le compte personnel-- sauvegarde sur le compte personnel
-- tests-- tests
SQL> sta exo1SQL> sta exo1
-- modification de exo1-- modification de exo1
SQL> ed -- ou Fichier-OuvrirSQL> ed -- ou Fichier-Ouvrir
-- impression des résultats dans un fichier-- impression des résultats dans un fichier
SQL> spo exo1impSQL> spo exo1imp
-- exécution de exo1-- exécution de exo1
SQL> spo offSQL> spo off