ISO/IEC 9075:1989
(Main)Information processing systems — Database Language SQL with integrity enhancement
Information processing systems — Database Language SQL with integrity enhancement
Systèmes de traitement de l'information — Langage de bases de données SQL avec intégrité accrue
General Information
Relations
Standards Content (Sample)
NORME
ISOICEI
I N T E R NAT I O NA LE
9075
Deuxième édition
1989-04-01
~
Systèmes de traitement de l'information -
Langage de bases de données SOL contenant
l'amélioration sur l'intégrité
Information processing systems - Database Language SOL with integrity
enhancement
---------------------- Page: 1 ----------------------
ISO/CEI 9075 : 1989 (FI
Avant-propos
L'ISO (Organisation internationale de normalisation) et la CE1 (Commission électro-
technique internationale) forment ensemble un système consacré à la normalisation
internationale considérée comme un tout. Les organismes nationaux membres de I'ISO
ou de la CE1 participent au développement de Normes internationales par I'intermé-
diaire des comités techniques créés par l'organisation concernée afin de s'occuper des
différents domaines particuliers de l'activité technique. Les comités techniques de
I'ISO et de la CE1 collaborent dans des domaines d'intérêt commun. D'autres organisa-
tions internationales, gouvernementales ou non gouvernementales, en liaison avec
I'ISO et la CE1 participent également aux travaux.
Dans le domaine des technologies de l'information, I'ISO et la CE1 ont créé un comité
technique mixte, I'ISO/CEI JTC 1. Les projets de Normes internationales adoptés par
le comité technique mixte sont soumis aux organismes nationaux pour approbation,
avant leur acceptation comme Normes internationales. Les Normes internationales
sont approuvées conformément aux procédures qui requièrent l'approbation de 75 %
au moins des organismes nationaux votants.
La Norme internationale ISO/CEI 9075 a été élaborée par le comité technique
mixte ISO/CEI JTC 1, Technologies de I'information.
Cette deuxième édition annule et remplace la première édition (IS0 9075 : 1987). qui
comprend désormais l'additif 1.
L'attention des utilisateurs est attirée sur le fait que toutes les Normes internationales
sont de temps en temps soumises à révision et que toute référence faite à une autre
Norme internationale dans le présent document implique qu'il s'agit, sauf indication
contraire, de la dernière édition.
Les annexes A, B, C, D, E et F de la présente Norme internationale sont données uni-
quement à titre d'information.
0 ISO/CEI 1989
Droits de reproduction réservés. Aucune partie de cette publication ne peut être reproduite ni
utilisée SOUS quelque forme que ce soit et par aucun procédé, électronique OU mécanique,
y compris la photocopie et les microfilms, sans l'accord écrit de l'éditeur.
ISO/CEI Copyright Office 0 Case postale 56 O CH-1211 Genève 20 0 Suisse
Version française tirée en 1990
Imprimé en Suisse
---------------------- Page: 2 ----------------------
ISO/CEI 9075 : 1989 (FI
SOMMAIRE
Page
Domaine et champ d'application .
1 1
Références . : .
2 3
Généralités .
3 5
Organisation .
3.1 5
Notation .
3.2 5
Conventions .
3.3 5
Conformité . 6
3.4
Concepts . 7
4
Ensembles . 7
4.1
Types de données . 7
4.2
Colonnes .
4.3 8
Tables .
4.4 8
Contraintes d'intégrité' .
4.5 8
Schémas . 9
4.6
La base de données . 9
4.7
Modules .
9
4.8
Procédures . 9
4.9
Paramètres . IO
4.1 O
Langages de programmation normalisés .
4.1 1 10
Curseurs .
4.12 10
Instructions .
4.13 11
Syntaxe d'incrustation . ' .
4.14 11
Privilèges .
4.15 11
Transactions .
4.16 12
Eléments communs . 13
5
.
5.1 13
. 14
5.2
. 16
5.3
Noms .
5.4 18
. 20
5.5
et . 22
5.6
. 24
5.7
. 25
5.8
5.9 . 27
5.10 . 29
5.1 1 . 30
.
5.12
31
.
5.13 32
...
111
---------------------- Page: 3 ----------------------
5.14 cprédicat comme> . 33
cprédicat nub . 35
5.1 5
cprédicat quantifié> . 36
5.16
37
5.17 .
38
5.18 .
40
5.19 .
41
5.20 .
43
5.21 .
44
5.22 .
5.23 . 45
.
5.24 46
5.25 . 48
Langage de définition de schéma . 51
6
. 51
6.1
6.2
6.3 . 53
. 54
6.4
. 55
6.5
. 56
6.6
. 57
6.7
. 59
6.8
.
60
6.9
.
62
6.10
Langage de Module . 65
7
. 65
7.1
. 66
7.2
. 67
7.3
Langage de manipulation de données .
8 71
cinstruction fermetures .
8.1 71
.
8.2 72
.
8.3 73
.
8.4 76
cinstruction suppression après recherches .
8.5 77
.
8.6 78
cinstruction insertion> .
8.7 80
ci nstruction ouverture> .
8.8 82
cinstruction retour arrière> .
8.9 83
.
8.10 84
cinstruction mise à jour après positionnement> .
8.1 1 86
.
8.12 88
Niveaux .
91
9
ANNEXE A - .
94
ANNEXE B - .
98
ANNEXE C - cinstruction SQL dans un programme COBOL> .
100
ANNEXE D - cinstruction SQL dans un programme FORTRAN, .
102
ANNEXE E - cinstruction SOL dans un programme Pascab . 104
ANNEXE F -
105
Index .
107
iv
---------------------- Page: 4 ----------------------
NORME INTERNATIONALE
ISOKEI 9075 : 1989 (FI
Systèmes de traitement de l’information - Langage de
bases de données SQL contenant l’amélioration sur
l’intégrité
I Domaine et champ d’application
La présente norme définit la syntaxe et la sémantique de deux langages de base de données :
a) un langage de définition de schéma (SQL-LDD), pour la déclaration des structures et des contraintes
SQL ;
d’intégrité d’une base de données
b) un langage de définition de modules et un langage de manipulation de données (SQL-LMD), pour la
déclaration des procédures de la base de données et des instructions exécutables d’un programme
0
d’application base de données spécifique.
La présente norme définit les structures logiques de données et les opérations de base pour une base
de données SOL. Elle fournit les fonctions nécessaires pour concevoir, accéder à, maintenir, contrôler et
protéger la base de données.
La présente norme constitue un moyen de rendre portable les définitions de base de données et de pro-
grammes d’application entre mises en oeuvre conformes.
La présente norme spécifie deux niveaux et une caractéristique d’amélioration de l’intégrité. Le niveau 2
est le langage SQL complet sauf la caractéristique d‘amélioration de l‘intégrité. Le niveau 1 est le sous
ensemble du niveau 2 définit à l’article 9.
NOTE - II est prévu de développer des additifs à cette norme. Ces additifs porteront en particulier sur la
gestion des transactions, la spécification de certaines règles définies par le réalisateur, les pos-
sibilités de manipulation des caractères et la prise en compte de jeux de caractères nationaux.
La caractéristique d’amélioration de l’intégrité est un moyen de spécifier :
les contraintes référentielles entre les tables qui doivent être appliquées,
1)
les contraintes de contrôle à appliquer aux lignes d’une table,
2)
une valeur par défaut pour une colonne quand une ligne est insérée dans une table.
0 3)
Les annexes de la présente norme définissent la syntaxe d’incrustation pour inclure des instructions du
langage de manipulation de données SOL dans un autre programme d‘application lui aussi normalisé.
Une telle syntaxe d’incrustation est définie pour être une notation abrégée d‘un programme d’applica-
tion standardisé dans lequel les instructions SQL incrustées ont été remplacées par des «appels» expli-
cites à des procédures base de données contenant les instructions SQL.
La présente norme s‘applique aux réalisations existant dans un environnement pouvant inclure des lan-
gages de programmation d’application, des langages de requête utilisateur, des générateurs de rapport,
des dictionnaires de données, des bibliothèques de programmes, des systèmes de communication dis-
tribués ainsi que des outils variés de conception de base de données, d’administration de données et
d ’0 pt i mi sat io n de pe rfo rma n ces.
1
---------------------- Page: 5 ----------------------
ISO/CEI 9075 : 1989 (FI
2 Références
Langages de programmation -FORTRAN, (reprise par I’ISO de la norme ANSI X3.9).
IS0 1539,
IS0 1989, Langages de programmation - COBOL, (reprise par I’ISO de la norme ANSI X3.23).
Langages de programmation - PL//, (reprise par I’ISO de la norme ANSI X3.53).
IS0 6’160,
IS0 7185, Langages de programmation - Pascal, (reprise par I‘ISO de la norme britannique
6192 pour le texte anglais).
---------------------- Page: 6 ----------------------
ISO/CEI 9075 : 1989 (FI
4
---------------------- Page: 7 ----------------------
ISO/CEI 9075 : 1989 (FI
3 Généralités
3.1 Organisation
Les articles 3.2, ((Notation)) et 3.3, ((Conventions)) définissent les notations et conventions utilisées dans
~
la présente norme.
I
L’article 3.4, ((Conformité)) définit les critères de conformité.
L’article 4, «Concepts» définit les termes et présente les concepts utilisés dans la définition de SQL.
L’article 5, ((Eléments communs)) définit les éléments du langage apparaissant dans plusieurs parties du
langage SQL.
L’article 6, ((Langage de définition de schéma)) définit les possibilités SQL de spécification de base de
données.
L‘article 7, ((Langage de module)) définit les modules et procédures SOL.
L‘article 8, ((Langage de manipulation de données)) définit les instructions de manipulation de données
SQL.
L’article 9, «Niveaux» définit les deux niveaux de SQL et la caractéristique d’amélioration de l’intégrité.
0
3.2 Notation
La notation syntaxique utilisée dans la présente norme est la BNF (((Forme normale de Backus)) ou
((forme Backus-Naur))), avec les extensions suivantes :
a) les crochets ([I) indiquent un élément optionnel ;
b) les (.I indiquent un élément qui peut être répété une ou plusieurs fois ;
c) les accolades (U) regroupent des séquences d’éléments.
Dans la syntaxe BNF, un symbole de production est déclaré ((contenir)) un symbole de production
cB> si apparaît quelque part dans l’expansion de . Si contient , alors est ((contenu
dans)) . Si contient , alors est le ((contenant)) , symbole de production de cB>.
3.3 Conventions
Les éléments syntaxiques de la présente norme sont spécifiés en termes de :
I 0
a) fonction : une courte déclaration sur l’objet de l’élément ;
b) format : une définition en BNF de la syntaxe de l’élément ;
c) règles syntaxiques : les contraintes syntaxiques additionnelles non exprimées dans la BNF et
~
auxquelles l‘élément devra satisfaire ;
d) règles générales : la spécification en séquence de l’effet à l’exécution de l’élément sur la base de
I
données.
Dans les règles syntaxiques, le terme ((doit)) définit les conditions qui doivent être vérifiées, du point de
vue de la syntaxe, par les éléments conformes du langage SOL. Le traitement du langage SOL non
conforme au format ou aux règles syntaxiques est défini par le réalisateur.
Dans les règles générales, le terme ((doit)) définit les conditions testées au cours de l’exécution des
instructions SOL. Si toutes les conditions sont vérifiées, alors l‘instruction est exécutée avec succès et le
paramètre SQLCODE est mis à un nombre positif défini. Si une au moins des conditions n’est pas
vérifiée, alors l’instruction n‘est pas exécutée avec succès et n’a pas d’effet sur la base de données ; le
paramètre SQLCODE est mis à un nombre négatif défini par le réalisateur.
Une réalisation conforme n’est pas supposée exécuter la séquence exacte des actions définies par les
règles générales, mais doit produire le même effet que cette séquence sur la base de données.
5
---------------------- Page: 8 ----------------------
ISO/CEI 9075 : 1989 (FI
Le terme ((effectivement)) est utilisé dans les règles générales pour souligner les actions dont les effets
peuvent être obtenus par d'autres moyens dans le cadre d'une réalisation.
Le terme ((objet persistant)) est utilisé pour caractériser des objets tels que s et s
crées et détruits par des mécanismes définis par le réalisateur.
3.4 Conformité
La présente norme définit le langage SQL et les réalisations SOL conformes. Un langage SQL conforme
doit se soumettre au format BNF ainsi qu'aux règles syntaxiques associées. Une réalisation SQL
conforme doit exécuter le langage SOL conforme en respectant les règles générales.
Une réalisation déclarant la conformité SQL-LDD doit prendre en compte le SQL-LDD () au
niveau 1 ou au niveau 2.
Une réalisation déclarant la conformité SQL-LMD doit prendre en compte soit au niveau 1, soit au
niveau 2 :
a) l'invocation directe des instructions du langage de manipulation de données SQL (
SOL>) ; et/ou
b) le langage de définition de modules () ; et/ou
c) une ou plusieurs :
incrustation SQL dans COBOL (),
1)
incrustation SQL dans FORTRAN (),
2)
incrustation SOL dans Pascal (
3)
incrustation SQL dans PL/I ().
4)
Une réalisation déclarant la conformité SQL totale doit fournir une conformité SQL-LDD et SQL-LMD,
soit au niveau 1, soit au niveau 2.
Une réalisation conforme peut fournir des facilités additionnelles ou des options non spécifiées par la
présente norme. Une réalisation reste conforme même si elle prévoit des options de l'utilisateur pour
exécuter un langage SQL non conforme ou si elle prévoit d'exécuter un langage SQL conforme d'une
manière non conforme.
Une déclaration de conformité à la présente norme doit établir :
a) quels types de conformité sont pris en compte parmi les suivants
à SOL, au niveau 1,
1) conformité totale
conformité totale à SOL, au niveau 2,
2)
conformité au SQL-LDD, au niveau 1,
3)
conformité totale au SQL-LDD, au niveau 2,
4)
conformité au SQL-LMD, au niveau 1,
5)
conformité au SQL-LMD, au niveau 2 ;
6)
b) lesquelles des facilités suivantes sont mises en oeuvre :
exécution directe des instructions du langage de manipulation de données SOL,
1)
2) modules langage (),
incrustations SOL dans COBOL (),
3)
incrustations SOL dans FORTRAN (),
4)
incrustations SOL dans Pascal (
5)
PU1 () ;
incrustations SOL dans
6)
c) si la caractéristique d'amélioration de l'intégrité est mise en oeuvre.
la méthode ou le moment de la liaison entre les programmes
La présente norme ne définit pas
d'application et les composants du système de gestion de la base de données.
6
---------------------- Page: 9 ----------------------
ISO/CEI 9075 : 1989 (FI
4 Concepts
4.1 Ensembles
L
Un ensemble est une collection non ordonnée d’objets distincts.
Un multi-ensemble est une collection non ordonnée d‘objets non nécessairement distincts.
Une séquence est une collection ordonnée d’objets non nécessairement distincts.
La cardinalité d’une collection est le nombre d‘objets de cette collection. A moins que l’inverse soit
précisé, toute collection peut être vide.
4.2 Types de données
Un type de données est un ensemble de valeurs représentables. La représentation logique d’une valeur
est un . La représentation physique d‘une valeur est laissée à la discrétion du réalisateur.
Une valeur est primitive, du fait qu’elle n‘a aucune subdivision logique dans le cadre de cette norme.
Une valeur est une valeur nulle ou une valeur non nulle.
Une valeur nulle est une valeur spéciale d’un type de donnée, définie par le réalisateur et est distincte
de toutes les valeurs non nulles de ce type.
Une valeur non nulle est une chaîne de caractères ou un nombre. Une chaîne de Caractères et un
nombre ne sont pas des valeurs comparables.
4.2.1 Chaînes de caractères
Une chaîne de caractères est composée d‘une séquence de caractères pris dans un ensemble de
caractères défini par le réalisateur. Une chaîne de caractère a une longueur, qui est un entier positif
définissant le nombre de caractères de la séquence.
Toutes les chaînes de caractères sont comparables. Une chaîne de caractères est identique à une autre
si et seulement si elle est égale à cette chaîne de caractère en accord avec les règles de comparaison
définies en 5.1 1, .
4.2.2 Nombres
Un nombre est soit une valeur numérique exacte soit une valeur numérique approchée. Tous les
nombres sont des valeurs comparables.
0
Une valeur numérique exacte a une précision et une graduation. La précision est un entier positif qui
détermine le nombre de chiffres décimaux significatifç. La graduation est un entier non négatif. Une
graduation de O indique que le nombre est un entier. Pour la graduation N, la valeur exacte est la valeur
entière de la partie significative multipliée par 10 à la puissance N.
Une valeur approchée est constituée d’une mantisse et d‘un exposant. La mantisse est une valeur
numérique signée et l‘exposant est un entier signé précisant la magnitude de la mantisse. Une valeur
numérique approchée a une précision. La précision est l’entier positif qui définit le nombre de chiffre
décimaux significatifs de la mantisse.
Quand une valeur numérique exacte est assignée à un élément de donnée ou à un paramètre
représentant une valeur numérique exacte, une approximation de sa valeur préservant les premiers
chiffres significatifs est représentée dans le type de donnée cible. La valeur est convertie pour avoir la
précision et la graduation de la donnée cible.
Quand une valeur exacte ou approchée est assignée à un élément de donnée ou à un paramètre
représentant une valeur approchée, une approximation de sa valeur est représentée dans le type de
donnée cible. La valeur est convertie pour avoir la precision de la donnée cible.
7
---------------------- Page: 10 ----------------------
isO/CEI 9075 : 1989 (FI
4.3 Colonnes
Une colonne est un multi-ensemble de valeurs pouvant varier dans le temps. Toutes les valeurs d'une
même colonne appartiennent au même type de donnée et sont des valeurs d'une même table. La valeur
d'une colonne est le plus petit élément de donnée pouvant être choisi dans une table et le plus petit
élément de donnée pouvant être mis à jour.
Une colonne a une description et une position ordinale dans une table. La description de la colonne
inclut son type de donnée et une indication précisant si la colonne est contrainte à contenir uniquement
des valeurs non nulles. La description d'une colonne chaîne de caractères définit son attribut de
longueur. La description d'une colonne numérique approchée définit la précision de ses nombres. La
description d'une colonne numérique exacte définit la précision et la graduation de ses nombres.
Une colonne nommée est une colonne d'une table nommée ou une colonne qui hérite de la description
d'une colonne nommée. La description d'une colonne nommée inclut son nom.
4.4 Tables
Une table est un multi-ensemble de lignes. Une ligne est une séquence non vide de valeurs. Chaque
ligne d'une même table a la même cardinalité et contient une valeur pour chaque colonne de cette
table.
La nième valeur de chaque ligne d'une table est la valeur de la nième colonne de cette table. La ligne
est le plus petit élément de donnée pouvant être ajouté à ou supprimé d'une table.
Le degré d'une table est le nombre de colonnes de cette table. A tout moment, le degré de la table est
le même que la cardinalité de chacune de ses lignes et la cardinalité d'une table est la même que la
cardinalité de chacune de ses colonnes.
Une table a une description. Cette description comprend une description de chacune de ses colonnes.
Une table de base est une table nommée définie par une cdéfinition de table>. La description d'une
table de base comprend son nom.
Une table dérivée est une table dé
...
Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.