Chapitre 1 : Oracle - Premières notions 1.1 - Présentation (Voir "Oracle 7" de
Chapitre 1 : Oracle - Premières notions 1.1 - Présentation (Voir "Oracle 7" de A. Abdellatif, M. Limane, A. Zeroual p.9-11) L'historique d'Oracle commence avec la création d'Oracle corporation en 1977. La première version est commercialisée en 1979. C'était l'un des premiers SGBD Relationnels. Une version PC voit le jour en 1984. Les versions Unix se succèdent. Actuellement Oracle est un véritable environnement de travail avec des outils pouvant être classés en outils de développement d'applications (seul point qui nous intéresse ici), en outils de gestion de données réparties (accès à des données situées sur un site distant, partage de données entre plusieurs bases de données) et en outils d'administration des données. • Oracle est un SGBDr (Système de Gestion d'une Base de Données Relationnel) (DBMS : DataBase Management System) Architecture ANSI/SPARC : groupe de normalisation qui en 1975 a proposé 3 niveaux de description des données (interne, conceptuel, externe). (voir "Oracle 7" pages 9-11) • Les Objectifs d'un SGBDr - Définition des données, - Manipulation des données, - Intégrité et Sécurité des données, - Transactions, accès concurrents - Reprises après panne. • Les notions importantes : o les schémas de relations Les relations sont des tables. La table est un objet de la Base de Données (BD). Elle a - un nom, - une structure définie par le nom des colonnes (les propriétés de la relation) et, pour chaque colonne, le domaine des valeurs - un contenu : les lignes correspondent aux occurrences (ou n-uplets ou tuples) de la relation. Les structures et les données sont manipulables par des opérations. o les opérations de définition ou manipulation des données Ce sont des actions permettant aux utilisateurs de manipuler les données et les structures tout en respectant un ensemble de contraintes d'intégrité. o les contraintes d'intégrité Ce sont des règles, dites règles de gestion. Elles protègent les données et les structures. • Architecture fonctionnelle d'Oracle (voir schéma dans "Oracle 7" p.33) o les couches de base Le noyau : stockage physique des données, différents accélérateurs ou optimiseurs d'accès aux données, fonctions de vérification des contraintes d'intégrité et de cohérence des données, contrôle des accès concurrents, gestion de la confidentialité des données, reprise après panne. Le dictionnaire des données est une "méta-base" qui décrit dynamiquement la base de données : . les objets (tables, colonnes, vues, index, ...) . les utilisateurs (nom, mots de passe) . les privilèges et les droits des utilisateurs sur les objets. La couche SQL : langage de commandes . langage de définition des données . langage de manipulation des données La couche PL/SQL : extension procédurale du langage SQL qui ne l'est pas. Avec SQLplus on peut : - Entrer, éditer, mémoriser, exécuter des commandes SQL et des blocs de commandes en PL/SQL - Mettre en forme des résultats de requêtes - Afficher la structure d'une table (définitions des colonnes, contraintes) - Saisir des valeurs au clavier - Faire des copies de tables entre différentes bases. o les outils Nous n'en citerons que quelques-uns : - Les outils de développement d'applications : SQL*Plus, PRO* - Les utilitaires : SQL*Loader, SQL*dba - Les outils de communication - Les outils d'aide à la décision 1.2 - Connexion et accès à SQL*Plus • Connexion à SQL*plus : prompt>. oraenv (Entrée) prompt>sqlplus (Entrée) login (entrer votre login) (Entrée) password (entrer votre mot de passe) (Entrée) SQL> • Déconnexion de SQL*plus : SQL>exit (Entrée) prompt> 1.3 - Manipulations de base • Aide en ligne help <nom-commande> : aide sur la commande citée (ex. : help exit) • Dialogue avec le système hôte host <commande> : lance la commande qui doit être une commande du système d'exploitation. ex. : host ls (Entrée) • Travail sous sqlplus 1) Travail en direct : a) La plupart des commandes sql peuvent être tapées sur une ou plusieurs lignes et doivent être terminées par ; SQL ne fait pas la différence entre minuscules et majuscules. Il est toutefois recommandé de mettre les mots SQL en majuscules, d'aller à la ligne et d'indenter les lignes de commande. b) Oracle interprète la commande et l'exécute immédiatement. Les résultats sont affichés. 2) Travail à partir d'un script a) On écrit une suite de commandes (terminées par un ;) à l'aide d'un éditeur de texte (vi, emacs, xemacs, ...), bien qu'il y ait un buffer SQL et l'on sauvegarde le fichier dans le répertoire de travail, le nom du fichier devant avoir pour extension .sql b) On exécute les commandes soit en faisant du "couper/coller" de l'éditeur vers SQL, soit en dialogant avec le système hôte de la manière suivante : start <nomprog> : charge le fichier et lance les commandes contenues dans le fichier nomprog.sql (inutile de taper .sql) @ <nomprog> : charge le fichier et lance les commandes contenues dans le fichier nomprog.sql (ne pas taper .sql) • Exercice o Sous un éditeur taper : o PROMPT Bonjour a tous! o -- ceci est une remarque se terminant à la fin de la ligne o REM c'est encore une remarque se terminant à la fin de la ligne o /* o ceci est un bloc de remarques o pouvant s'étendre sur plusieurs lignes */ o Sauvegerder, puis exécuter. o Attention! Pour simplifier le travail, sauvegarder dans le répertoire dans lequel on a lancé Oracle (sqlplus). 1.4 - Tables : création, modification, suppression Les principales notions concernant ces opérations sont décrites dans un aide-mémoire auquel on peut accéder en cliquant ici . Remarque : Les opérations Ajout, Modification, Suppression ne sont pas effectives automatiquement. La commande COMMIT rend effectives les opérations faites précédemment (automatique lorsqu'on quitte Oracle). La commande ROLLBACK permet de restaurer les tables dans l'état antérieur. 1.5 - Types de données CHAR(n) Chaîne de n caractères (0 < n < 256) Longueur par défaut 1 Longueur fixe : ajout de blancs ou troncature. VARCHAR2(n) Chaîne de caractères de longueur variable n. (0 < n < 2001) VARCHAR(n) Synonyme de VARCHAR2(n) LONG Chaîne d'au plus 231-1 caractères (~2 Go) Cela permet de mémoriser de longs textes. Mais : - une seule colonne de type LONG par table, - problème dans les requêtes NUMBER(p,s) Entier relatif ou réel la valeur absolue entre 1.0*10-130 et 9,9...9*10125 au plus 38 chiffres de précision p : nombre total de chiffres => précision s : nombre de décimales (-85 < s < 128) => échelle (scale) . si s est absent, c'est un entier . s peut être négatif, on a alors un arrondi ex. : si NUMBER(7,-3), 4253,56 devient 4000 DATE Date entre le 1er janvier -4712 et le 1er décembre +4712 Sont stockés : siècle, année, mois, jour, heure, minute, seconde Une date est saisie sous forme de chaîne de caractères (conversion) En standard : 'DD-MON-YY' (en Anglais : 2 chiffres pour le jour, 3 pour le mois et 2 pour l'année) LONGRAW Donnée de type binaire de longueur variable pouvant aller jusqu'à 2 Go ROWID Chaîne hexadécimale représentant l'adresse unique d'une ligne de la table. Cette valeur est stockée dans la pseudo-colonne de même nom. 1.6 - Tables : Contraintes d'intégrité Une contrainte d'intégrité est une règle qui permet de contrôler la validité et la cohérence des valeurs entrées dans les tables. • Contrainte de colonne : Cette contrainte est ainsi nommée parce qu'elle concerne une colonne, elle est déclarée sur la ligne de définition de la colonne à laquelle elle se rapporte. Pas de virgule entre la définition de la colonne et celle de la contrainte [CONSTRAINT nom_contrainte] la_contrainte [option] Exemple : AGE NUMBER(3,0) CONSTRAINT T oujours NOT NULL, [CONSTRAINT nom_contrainte] : permet de donner un nom à la contrainte ; ce nom est sauvegardé dans le dictionnaire des données. la_contrainte : NOT NULL : spécifie que pour toute occurrence la colonne doit être valorisée UNIQUE : toutes les valeurs de la colonne sont nécessairement distinctes PRIMARY KEY : la colonne est une clé primaire pour la table. peut être remplacé par UNIQUE NOT NULL REFERENCES table(colonne) : il s'agit d'une contrainte d'intégrité fonctionnelle par rapport à une clé ; chaque valeur de la colonne doit exister dans la table et la colonne référencées. On utilise cette contrainte pour les clés étrangères. Dans une table COMMANDE, code_client VARCHAR2(8) CONSTRAINT fk_client REFERENCES CLIENT(code_client), A chaque entrée d'une valeur code_client dans la table COMMANDE, Oracle vérifie l'existence de cette valeur dans la table CLIENT. CHECK : mot-clé associé à une condition qui doit être vérifiée par toutes les valeurs de la colonne (domaine des valeurs de l'attribut). age NUMBER(3,0) CONSTRAINT T oujours NOT NULL CHECK (age BETWEEN 0 AND 150), [option] ON DELETE CASCADE : En sa présence, lorsqu'une occurrence est supprimée (suppression d'une instanciation de la clé primaire), dans chaque table ayant une clé étrangère associée, il y a suppression des occurrences correspondantes (même valeur de clé étrangère que la valeur de la clé primaire) Dans l'exemple précédent, la suppression d'un client (à partir de son code) entraînera la suppression de toutes les commandes de ce client Remarque : L'utilisation des contraintes d'intégrité fonctionnelle impose un uploads/Voyage/ pl-sql.pdf
Documents similaires
-
20
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jan 16, 2022
- Catégorie Travel / Voayage
- Langue French
- Taille du fichier 0.4300MB