SQL
pour
Oracle
Applications avec Java, PHP et XML
Christian Soutou
SQL
pour
Oracle
Applications avec Java, PHP et XML
3èédition
3èédition
SQLpour Oracle
C. Soutou
Code éditeur : G12299 • ISBN : 978-2-212-12299-2
29 E
Christian Soutou est maître de conférences à l'université Toulouse Le Mirail et dirige le dépar-
tement Réseaux et Télécoms de l’IUT de Blagnac. Il intervient autour des bases de données et des
technologies de l'information (XML, services Web et SOA) en licence et master professionnels.
Il est également l'auteur des ouvrages
Apprendre SQL avec MySQL
et
UML 2 pour les bases de
données
, parus aux éditions Eyrolles.
Apprendre SQL par l’exemple
Tout particulièrement conçu pour les étudiants et les débutants, cet ouvrage permet d'acquérir les notions
essentielles du langage SQL par le biais d'Oracle, leader des systèmes de gestion de bases de données. Concis
et de difficulté progressive, il est émaillé de nombreux exemples et de 50 exercices corrigés qui illustrent tous
les aspects fondamentaux de SQL. Couvrant les versions 11
g
, 10
g
et 9
i
d'Oracle, il permet également de se
familiariser avec les principales fonctionnalités de ce logiciel, ainsi qu'avec les API les plus utilisées (JBDC et
PHP). Mise à jour et augmentée, la troisième édition de cet ouvrage consacre en outre un chapitre à l'interopé-
rabilité entre SQL et XML (documents et grammaires) et à la gestion de ressources avec XML DB Repository.
À qui s’adresse cet ouvrage ?
À tous ceux qui souhaitent s'initier à SQL, à Oracle ou à la gestion de bases de données
Aux développeurs C, C++, Java, PHP et XML qui souhaitent stocker leurs données
Installez vous-même Oracle !
Cet ouvrage décrit en détail la procédure d'installation des versions 11
g
, 10
g
, 10
g
Express et 9
i
d'Oracle.
Ces versions peuvent être téléchargées gratuitement sur le site d'Oracle : destinées à des fins non commerciales,
elles sont complètes et sans limitation de durée.
Au sommaire
Introduction. Installation d'Oracle. Les interfaces SQL *Plus. Partie I : SQL de base. Définition des don-
nées. Manipulation des données. Évolution d’un schéma. Interrogation des données. Contrôle des données. Partie II :
PL/SQL.Bases du PL/SQL. Programmation avancée. Partie III : SQL avancé. Le précompilateur
Pro*C/C++. L’interface JDBC. L’approche SQLJ. Procédures stockées et externes. Oracle et le Web (Web Toolkit, PSP,
API PHP). Oracle XML DB.
Sur le site www.editions-eyrolles.com
Téléchargez le code source des exemples et le corrigé des exercices
Consultez les mises à jour et les compléments
Dialoguez avec l’auteur
9 782212 122992
3e édition
3e édition
Avec 50
exercices
corrigés
soutou ok 29/01/08 11:13 Page 1
http://bibliolivre.com
Télécharger la version complète Sur http://bibliolivre.com
© Éditions Eyrolles 1
Introduction
Cette introduction présente tout d’abord le cadre général dans lequel cet ouvrage se positionne
(SQL, le modèle de données et l’offre d’Oracle). Viennent ensuite les procédures d’installation
des différentes éditions d’Oracle pour Windows actuellement sur le marché (9i, 10g Express
Edition, 10g et 11g). Enfin, l’utilisation des interfaces de commandes est abordée pour que
vous puissiez programmer avec SQL dès le chapitre 1.
SQL, une norme, un succès
C’est IBM, à tout seigneur tout honneur, qui, avec System-R, a implanté le modèle relationnel
au travers du langage SEQUEL (Stuctured English as QUEry Language) rebaptisé par la suite
SQL (Structured Query Language).
La première norme (SQL1) date de 1987. Elle était le résultat de compromis entre construc-
teurs, mais fortement influencée par le dialecte d’IBM. SQL2 a été normalisée en 1992. Elle
définit quatre niveaux de conformité : le niveau d’entrée (entry level), les niveaux intermédiai-
res (transitional et intermediate levels) et le niveau supérieur (full level). Les langages SQL
des principaux éditeurs sont tous conformes au premier niveau et ont beaucoup de caractéris-
tiques relevant des niveaux supérieurs. La norme SQL3 (intitulée initialement SQL:1999)
comporte de nombreuses parties : concepts objets, entrepôts de données, séries temporelles,
accès à des sources non SQL, réplication des données, etc. (chaque partie étant nommée ISO/
IEC 9075-i:2003, i allant de 1 à 13). La plus récente partie de la norme de 2006 (ISO/IEC
9075-14:2006) est consacré à XML.
Le succès que connaissent les grands éditeurs de SGBD relationnels (IBM, Oracle, Microsoft,
Sybase et Computer Associates) a plusieurs origines et repose notamment sur SQL :
Le langage est une norme depuis 1986 qui s’enrichit au fil du temps.
SQL peut s’interfacer avec des langages de troisième génération comme C ou Cobol, mais
aussi avec des langages plus évolués comme C++ et Java. Certains considèrent ainsi que le
langage SQL n’est pas assez complet (le dialogue entre la base et l’interface n’est pas
direct) et la littérature parle de « défaut d’impédance » (impedance mismatch).
Les SGBD rendent indépendants programmes et données (la modification d’une structure de
données n’entraîne pas forcément une importante refonte des programmes d’application).
Ces systèmes sont bien adaptés aux grandes applications informatiques de gestion (archi-
tectures type client-serveur et Internet) et ont acquis une maturité sur le plan de la fiabilité
et des performances.
SOUTOU Livre Page 1 Vendredi, 25. janvier 2008 1:08 13
SQL pour Oracle
2© Éditions Eyrolles
Ils intègrent des outils de développement comme les précompilateurs, les générateurs de
code, d’états et de formulaires.
Ils offrent la possibilité de stocker des informations non structurées (comme le texte,
l’image, etc.) dans des champs appelés LOB (Large Object Binary).
Les principaux SGBD Open Source (MySQL, Firebird, Berkeley DB, PostgreSQL) ont adop-
tés depuis longtemps SQL pour ne pas rester en marge.
Nous étudierons les principales instructions SQL d’Oracle qui sont classifiées dans le tableau
suivant.
Modèle de données
Le modèle de données relationnel repose sur une théorie rigoureuse bien qu’adoptant des prin-
cipes simples. La table relationnelle (relational table) est la structure de données de base qui
contient des enregistrements, également appelés « lignes » (rows). Une table est composée de
colonnes (columns) qui décrivent les enregistrements.
Tables et données
Considérons la figure suivante qui présente deux tables relationnelles permettant de stocker
des compagnies, des pilotes et le fait qu’un pilote soit embauché par une compagnie :
Tableau I-1 Classification des ordres SQL
Ordres SQL Aspect du langage
CREATE – ALTER – DROP COMMENT – RENAME – TRUNCATE Définition des données (LDD)
INSERT – UPDATE – DELETE – MERGE – LOCK TABLE Manipulation des données (LMD)
SELECT Interrogation des données (LID)
GRANT – REVOKE – COMMIT – ROLLBACK – SAVEPOINT –
SET TRANSACTION Contrôle des données (LCD)
Figure I-1 Deux tables
SOUTOU Livre Page 2 Vendredi, 25. janvier 2008 1:08 13
© Éditions Eyrolles 3
Introduction
Les clés
La clé primaire (primary key) d’une table est l’ensemble minimal de colonnes qui permet
d’identifier de manière unique chaque enregistrement.
Dans la figure précédente, les colonnes « clés primaires » sont notées en gras. La colonne
comp représente le code de la compagnie et la colonne brevet décrit le numéro du brevet.
Une clé est dite « candidate » (candidate key) si elle peut se substituer à la clé primaire à tout
instant. Une table peut contenir plusieurs clés candidates ou aucune.
Dans notre exemple, les colonnes nomComp et nom peuvent être des clés candidates si on
suppose qu’aucun homonyme n’est permis.
Une clé étrangère (foreign key) référence dans la majorité des cas une clé primaire d’une autre
table (sinon une clé candidate sur laquelle un index unique aura été défini). Une clé étrangère
est composée d’une ou plusieurs colonnes. Une table peut contenir plusieurs clés étrangères
ou aucune.
La colonne compa (notée en italique dans la figure) est une clé étrangère, car elle permet de
référencer un enregistrement unique de la table Compagnie via la clé primaire comp.
Le modèle relationnel est ainsi fondamentalement basé sur les valeurs. Les associations entre
tables sont toujours binaires et assurées par les clés étrangères. Les théoriciens considèrent
celles-ci comme des pointeurs logiques. Les clés primaires et étrangères seront définies dans
les tables en SQL à l’aide de contraintes.
Oracle
Il sera très difficile, pour ne pas dire impossible, à un autre éditeur de logiciels de trouver un
nom mieux adapté à la gestion des données que celui d’« Oracle ». Ce nom semble prédestiné
à cet usage ; citons Le Petit Larousse :
ORACLE n.m. (lat. oraculum) ANTIQ. Réponse d’une divinité au fidèle qui la consultait ;
divinité qui rendait cette réponse ; sanctuaire où cette réponse était rendue. LITT. Décision
jugée infaillible et émanant d’une personne de grande autorité ; personne considérée
comme infaillible.
Oracle représenterait ainsi à la fois une réponse infaillible, un lieu où serait rendue cette
réponse et une divinité. Rien que ça ! Tout cela peut être en partie vérifié si votre conception
est bien faite, vos données insérées cohérentes, vos requêtes et programmes bien écrits.
SOUTOU Livre Page 3 Vendredi, 25. janvier 2008 1:08 13
SQL pour Oracle
4© Éditions Eyrolles
Ajoutons aussi le fait que les ordinateurs fonctionnent bien et qu’une personne compétente se
trouve au support. C’est tout le mal que nous vous souhaitons.
Oracle Corporation, société américaine située en Californie, développe et commercialise un
SGBD et un ensemble de produits de développement. Oracle a des filiales dans un grand
nombre de pays. La filiale française (Oracle France) a été créée en 1986, elle est composée de
cinq départements (marketing, commercial, avant-vente, conseil et formation).
Un peu d’histoire
En 1977, Larry Ellison, Bob Miner et Ed Oates fondent la société Software Development
Laboratories (SDL). L’article de Edgar Frank Codd (1923-2003), « A Relational Model of
Data for Large Shared Data Banks », Communications of the ACM paru en 1970, fait devenir
le mathématicien et ancien pilote de la RAF durant la Seconde Guerre mondiale, inventeur du
modèle relationnel et de SQL. Les associés de SDL devinent le potentiel des concepts de Codd
et se lancent dans l’aventure en baptisant leur logiciel « Oracle ». En 1979, SDL devient Rela-
tional Software Inc. (RSI) qui donnera naisssance à la société Oracle Corp. en 1983. La
première version du SGBD s’appelle RSI-1 et utilise SQL. Le tableau suivant résume la chro-
nologie des versions.
Avec IBM, Oracle a fait un pas vers l’objet en 1997, mais cette approche ne compte toujours
pas parmi les priorités des clients d’Oracle. L’éditeur met plus en avant ses aspects transac-
tionnels, décisionnels, de partitionnement et de réplication. Les technologies liées à Java, bien
Tableau I-2 Chronologie des versions d’Oracle
1979 Oracle 2 Première version commerciale écrite en C/assembleur pour Digital – pas de mode
transactionnel.
1983 Oracle 3 Réécrit en C - verrous.
1984 Oracle 4 Portage sur IBM/VM, MVS, PC – transaction (lecture consistante).
1986 Oracle 5 Architecture client-serveur avec SQL*Net – version pour Apple.
1988 Oracle 6 Verrouillage niveau ligne – sauvegarde/restauration – AGL – PL/SQL.
1991 Oracle 6.1 Parallel Server sur DEC.
1992 Oracle 7 Contraintes référentielles – procédures cataloguées – déclencheurs – version
Windows en 1995.
1994 Serveur de données vidéo.
1995 Connexions sur le Web.
1997 Oracle 8 Objet-relationnel – partitionnement – LOB – Java.
1998 Oracle 8i i comme Internet, SQLJ – Linux – XML.
2001 Oracle9iServices Web – serveur d’applications – architectures sans fil.
2004 Oracle10g g comme Grid computing (ressources en clusters).
2007 Oracle11gAuto-configuration.
SOUTOU Livre Page 4 Vendredi, 25. janvier 2008 1:08 13
1 / 51 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !