www.dimaista.c.la 1 Technicien Spécialisé en Développement Informatique www.dim

www.dimaista.c.la 1 Technicien Spécialisé en Développement Informatique www.dimaista.c.la 2 Manipulation des données avec un langage de requêtes SQL Filière : TSDI I - L·ALGÈBRE RELATIONNELLE: /·algèbre relationnelle a été inventée par E. Codd comme une collection G·opérations formelles qui agissent sur des relations et produisent des relations en résultats [Codd7O]. On peut considérer que l·algèbre relationnelle est aux relations ce qu·est l·arithmétique aux entiers. Cette algèbre, qui constitue un ensemble G·opérations élémentaires associées au modèle relationnel, est sans doute une des forces essentielles du modèle. Codd a initialement introduit huit opérations, dont certaines peuvent être composées à partir d·autres. Dans cette section, nous allons introduire six opérations qui permettent de déduire les autres et qui sont appelées ici opérations de base. Nous introduirons ensuite quelques opérations additionnelles qui sont parfois utilisées. Des auteurs ont proposé d·autres opérations qui peuvent toujours se déduire des opérations de base [Delobel83. Maier83]. Les opérations de base peuvent être classées en deux types: les opérations ensemblistes traditionnelles (une relation étant un ensemble de tuples, elle peut être traitée comme tel) et les opérations spécifiques. Les opérations ensemblistes sont des opérations binaires, c·est-à-dire qu·à partir de deux relations elles en construisent une troisième. Ce sont l·union, la différence et le produit cartésien. Les opérations spécifiques sont les opérations unaires de projection et restriction qui, à partir d·une relation, en construisent une autre, et l·opération binaire de jointure. Nous allons définir toutes ces opérations plus précisément. 1. OPERATIONS DE BASE A - Opération PROJECTION Formalisme : R = PROJECTION (R1, liste des attributs) Exemples : CHAMPIGNONS Espèce Catégorie Conditionnement Rosé des prés Conserve Bocal Rosé des prés Sec Verrine Coulemelle Frais Boîte Rosé des prés Sec Sachet plastique www.dimaista.c.la 3 Manipulation des données avec un langage de requêtes SQL Filière : TSDI R1 = PROJECTION (CHAMPIGNONS, Espèce) Espèce Rosé des prés Coulemelle R2 = PROJECTION (CHAMPIGNONS, Espèce, Catégorie) Espèce Catégorie Rosés des prés Conserve Rosé des prés Sec Coulemelle Frais - Cet opérateur ne porte que sur 1 relation. - Il permet de ne retenir que certains attributs spécifiés d'une relation. - On obtient tous les n-uplets de la relation à l'exception des doublons. B - Opération SELECTION Formalisme : R = SELECTION (R1, condition) Exemple : CHAMPIGNONS Espèce Catégorie Conditionnement Rosé des prés Conserve Bocal Rosé des prés Sec Verrine Coulemelle Frais Boîte Rosé des prés Sec Sachet plastique R3 = SELECTION (CHAMPIGNONS, Catégorie = "Sec") Espèce Catégorie Conditionnement Rosé des prés Sec Verrine Rosé des prés Sec Sachet plastique www.dimaista.c.la 4 Manipulation des données avec un langage de requêtes SQL Filière : TSDI - Cet opérateur porte sur 1 relation. - Il permet de ne retenir que les n-uplets répondant à une condition exprimée à l'aide des opérateurs arithmétiques ( =, >, <, >=, <=, <>) ou logiques de base (ET, OU, NON). - Tous les attributs de la relation sont conservés. - Un attribut peut ne pas avoir été renseigné pour certains n-uplets. Si une condition de sélection doit en tenir compte, on indiquera simplement : nomattribut « non renseigné ». C ² Opération JOINTURE (équijointure) Formalisme : R = JOINTURE (R1, R2, condition d·égalité entre attributs) Exemple : PRODUIT DETAIL_COMMANDE CodePrd Libellé Prix unitaire N°cde CodePrd quantité 590A HD 1,6 Go 1615 97001 590A 2 588J Scanner HP 1700 97002 515J 1 515J LBP 660 1820 97003 515J 3 R = JOINTURE (PRODUIT, DETAIL_COMMANDE, Produit.CodePrd=Détail_Commande.CodePrd) A.CodePrd Libellé Prix unitaire N°cde B.CodePrd quantité 590A HD 1,6 Go 1615 97001 590A 2 515J LBP 660 1820 97002 515J 1 515J LBP 660 1820 97003 515J 3 - Cet opérateur porte sur 2 relations qui doivent avoir au moins un attribut défini dans le même domaine (ensemble des valeurs permises pour un attribut). - La condition de jointure peut porter sur l'égalité d'un ou de plusieurs attributs définis dans le même domaine (mais n'ayant pas forcément le même nom). - Les n-uplets de la relation résultat sont formés par la concaténation des n-uplets des relations d'origine qui vérifient la condition de jointure. Remarque : Des jointures plus complexes que l'équijointure peuvent être réalisées en généralisant l'usage de la condition de jointure à d'autres critères de comparaison que l'égalité (<,>, <=,>=, <>). www.dimaista.c.la 5 Manipulation des données avec un langage de requêtes SQL Filière : TSDI 2 - Les opérations ensemblistes a - Opération UNION Formalisme : R = UNION (R1, R2) Exemple : E1 : Enseignants élus au CA E2 : Enseignants représentants syndicaux n° enseignant nom_enseignant n°enseignant nom_enseignant 1 DUPONT 1 DUPONT 3 DURAND 4 MARTIN 4 MARTIN 6 MICHEL 5 BERTRAND On désire obtenir l'ensemble des enseignants élus au CA ou représentants syndicaux. R1 = UNION (E1, E2) n°enseignant nom_enseignant 1 DUPONT 3 DURAND 4 MARTIN 5 BERTRAND 6 MICHEL - Cet opérateur porte sur deux relations qui doivent avoir le même nombre d'attributs définis dans le même domaine (ensemble des valeurs permises pour un attribut). On parle de relations ayant le même schéma. - La relation résultat possède les attributs des relations d'origine et les n-uplets de chacune, avec élimination des doublons éventuels. www.dimaista.c.la 6 Manipulation des données avec un langage de requêtes SQL Filière : TSDI B - Opération INTERSECTION Formalisme : R = INTERSECTION (R1, R2) Exemple : E1 : Enseignants élus au CA E2 : Enseignants représentants syndicaux n° enseignant nom_enseignant n°enseignant nom_enseignant 1 DUPONT 1 DUPONT 3 DURAND 4 MARTIN 4 MARTIN 6 MICHEL 5 BERTRAND On désire connaître les enseignants du CA qui sont des représentants syndicaux. R2 = INTERSECTION (E1, E2) n°enseignant nom_enseignant 1 DUPONT 4 MARTIN - Cet opérateur porte sur deux relations de même schéma. - La relation résultat possède les attributs des relations d'origine et les n-uplets communs à chacune. C - Opération DIFFERENCE Formalisme : R = DIFFERENCE (R1, R2) Exemple : E1 : Enseignants élus au CA E2 : Enseignants représentants syndicaux n° enseignant nom_enseignant n°enseignant nom_enseignant 1 DUPONT 1 DUPONT 3 DURAND 4 MARTIN 4 MARTIN 6 MICHEL 5 BERTRAND www.dimaista.c.la 7 Manipulation des données avec un langage de requêtes SQL Filière : TSDI On désire obtenir la liste des enseignants du CA qui ne sont pas des représentants syndicaux. R3 = DIFFERENCE (E1, E2) n°enseignant nom_enseignant 3 DURAND 5 BERTRAND - Cet opérateur porte sur deux relations de même schéma. - La relation résultat possède les attributs des relations d'origine et les n-uplets de la première relation qui n'appartiennent pas à la deuxième. - Attention ! DIFFERENCE (R1, R2) ne donne pas le même résultat que DIFFERENCE (R2, R1) D - Opération PRODUIT CARTESIEN Formalisme : R = PRODUIT (R1, R2) Exemple : Etudiants Epreuves n°étudiant nom libellé épreuve coefficient 101 DUPONT Informatique 2 102 MARTIN Mathématiques 3 Gestion financière 5 Examen = PRODUIT (Etudiants, Epreuves) n°étudiant nom libellé épreuve coefficient 101 DUPONT Informatique 2 101 DUPONT Mathématiques 3 101 DUPONT Gestion financière 5 102 MARTIN Informatique 2 102 MARTIN Mathématiques 3 102 MARTIN Gestion financière 5 www.dimaista.c.la 8 Manipulation des données avec un langage de requêtes SQL Filière : TSDI - Cet opérateur porte sur deux relations. - La relation résultat possède les attributs de chacune des relations d'origine et ses n-uplets sont formés par la concaténation de chaque n-uplet de la première relation avec l'ensemble des n-uplets de la deuxième II - Présentation du langage SQL 1. Création d'une table La syntaxe élémentaire de création d'une table Oracle est: CREATE TABLE nom_de table (définition d'une colonne, ,«); Un nom de table doit être unique et ne doit pas être un mot clé SQL. Une table doit contenir au minimum une colonne et au maximum 254 colonnes. Définition de colonne La définition élémentaire d'une colonne consiste à lui attribuer un nom et un type. Les types de données gérés par Oracle sont: Données de type caractère de longueur fixe size octets. Le CHAR(size) VARCHAR2(size) ou VARCHAR(size) maximum de la valeur de size varie en fonction de la version d'oracle, pour la version 8i, il est de 2000 octets. Chaine de caractères ayant comme longueur maximale la valeur de size en caractères. Maximum de size est 4000, et le minimum est 1. NUMBER(p,s) p: nombre total de chiffres, p varie de 1 à 38 s : nombre de chiffres après la virgule (scale), s varie de -84 to 127. LONG Données de type caractère de taille variable allant jusqu'à 2 gigabytes (ou GO). DATE Donnée de type date. RAW(size) Données de type binaire ayant une longueur fixe de size bytes (ou octets) allant jusqu'à 2000 bytes. LONG RAW Données de type binaire ayant une longueur variable de size bytes (octets) allant jusqu'à 2 gigabytes. Chaine Hexadecimale representant l'adresse unique d'une ligne ROWID de la table. Sa valeur est retournée par la pseudo-colonne de même nom Un exemple de création d'une table de nom Departement : CREATE TABLE Departement (Dnum NUMBER(3),Dname VARCHAR2(15), DLoc VARCHAR2(25) ); www.dimaista.c.la 9 Manipulation des données avec un langage de requêtes SQL Filière : TSDI Nous allons regarder avec plus de détails le type NUMBER. Soit le nombre 7456123.89; pour chaque expression de NUMBER nous donnons le uploads/Industriel/courssql-1.pdf

  • 31
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager