2014-07-31 1GPA775 Bases de données LANGAGE SQL 1GPA775GPA775 Langage SQL Intro

2014-07-31 1GPA775 Bases de données LANGAGE SQL 1GPA775GPA775 Langage SQL Introduction  Le langage de consultation le plus utilisé par les SGBDR modernes est le SQL (Structured Query Langage).  SQL est fortement basé sur l’algèbre relationnelle et le calcul relationnel sur tuple. Néanmoins, il ne respecte pas entièrement les notions initiales présentées dans le modèle relationnel de Codd.  Il existe plusieurs différences qui peuvent sembler mineures à première vue, en voici quelques unes: le SQL permet la duplication des lignes d’une table alors que l’AR interdit la duplication de tuples; l‘AR stipule que chaque attribut d’une relation doit avoir un nom unique alors que le SQL permet la création de colonnes ayant le même nom et même des colonnes sans nom; formellement, plusieurs sens différents peut être donné à une valeur nulle : toutefois, il existe des différences majeures entre ce que permet l’AR et le SQL; … 2 2014-07-31 2GPA775GPA775 Langage SQL Introduction  Le langage a été standardisé en 1986 (ANSI).  Le langage a subit une révision majeure en 1992 et a été normalisé (ISO 9075).  En 2011, SQL subit sa 7e révision majeure – technologie de l’information incluant principalement la notion de base de données temporelle.  Malgré une norme bien établie, son implémentation varie de façon plus ou moins importante d’un SGBD à un autre.  Ainsi, les SGBD existants tels que Oracle, MySQL, MS Access, SQL Server et tous les autres respectent généralement la normes mais présentent plusieurs particularités qui sont souvent ennuyeuses. 3GPA775GPA775 Langage SQL Introduction  Le langage SQL permet une manipulation efficace de toutes les opérations liées à la base de données (n’est pas nécessairement lié directement aux opérations de gestion du SGBD).  SQL est un langage non procédural qui spécifie ce qui doit être fait au lieu de comment le faire. Il fait partie des langages de 4e génération.  En plus des manipulations conventionnelles, le langage SQL possède une multitude d’outils permettant de gérer les vues, les index, les fonctions, les déclencheurs, les transactions, les usagers, …  SQL est si répandu que tous les environnements de développement possèdent une implémentation d’outils supportant son usage (C, C++, Pascal, Python, Ruby, Excel, Matlab, web, …). 4 2014-07-31 3GPA775GPA775 Langage SQL Introduction  Avantages : langage standardisé indépendant du SGBD utilisé et de la complexité sous-jacente; langage de 4e génération simplifiant l’apprentissage et réduisant le temps de développement;  Impacts : les interfaces communes du langage facilitent le transfert d’applications sur les différentes plateformes, les différents environnements de développement et opérationnels; permet de réduire les coût de formation, de développement et de maintenance; augmentation significative de la durée de vie des projets. 5GPA775GPA775 Langage SQL Introduction  Inconvénients : SQL comporte des limitations technologiques qui ne permettent pas de réaliser le plein potentiel du modèle relationnel tel que présenté par Codd; les diverses implémentations du langage possèdent des variantes particulières qui apportent des irritants importants et réduits certains avantages annoncés; l‘optimisation des requêtes SQL n’est pas toujours claire et il est parfois difficile de connaître l’impact réelle d’écrire une requête d’une façon plutôt que d’une autre. 6 2014-07-31 4GPA775GPA775 Langage SQL Introduction  Malgré le fait que l’apprentissage des règles de base du langage SQL soit relativement aisé, la présentation stricte du langage peut être très ardu et surtout déroutante pour ceux qui débutent.  En effet, pour l’ensemble des commandes, il existe plusieurs options qui font souvent référence à des notions plus avancées. Nous ne présenterons ici qu’une version simplifiée des principales commandes en omettant les options plus avancées.  Pour plusieurs raisons, les différents SGBD commerciaux présentent des différences majeures quant aux objets disponibles et aux éléments syntaxiques pour les adresser. Nous verrons les grandes lignes des deux systèmes les plus utilisés dans le contexte du génie : Oracle et MySQL – noté O et M. 7GPA775GPA775 Langage SQL Nomenclature et objets d’un SGBD  Le langage SQL utilise cette nomenclature spécifique : objets : entités des SGBD telles que les tables, indexes, vues, usagers, … table : équivalent d’une relation du MR colonne : équivalent à un attribut du MR (structure verticale d’une table) ligne : équivalent à un tuple du MR (structure horizontale d’une table) déclaration : une commande SQL (écrite sous forme de script) 8 2014-07-31 5GPA775GPA775 Langage SQL Nomenclature et objets d’un SGBD  Il existe un très grande nombre d’objets pour les SGBD, voici les principaux à connaître et que nous verrons (de façon plus ou moins exhaustive) : base de données schémas tables indexes vues synonymes 9 séquences procédures Fonctions déclencheurs usagers …GPA775GPA775 Langage SQL Nomenclature et objets d’un SGBD  Base de données : pour un SGBD, le concept de base de données correspond à un espace logique regroupant un ensemble d’objets nécessaires à la gestion relative à un ensemble de données jointes logiquement (comme pour un projet par exemple); c‘est une couche d’abstraction qui permet une gestion plus efficace de plusieurs projets utilisant une base de données; ainsi, un SGBD peut faire la gestion de plusieurs bases de données à la fois. 10 2014-07-31 6GPA775GPA775 Langage SQL Nomenclature et objets d’un SGBD  Schéma : la notion de schéma est une extension du concept de base de données appliquée aux utilisateurs; plus précisément, un schéma est un regroupement logique des objets créés par un utilisateurs à l’intérieur d’une base de données; ainsi chaque utilisateur possède son propre schéma qu’il peut partager ou non; la notion de schéma est très utilisée dans Oracle alors qu’elle n’existe pas dans MySQL (d’ailleurs, pour MySQL, le terme SCHEMA est un synonyme de DATABASE). 11GPA775GPA775 Langage SQL Nomenclature et objets d’un SGBD  Table : les tables sont au cœur des SGBDR, elles correspondent aux relations du modèle relationnel; toutes les données manipulées par le SGBD sont stockées dans les tables; chaque table est constitué d’un nom, de colonnes et de contraintes; les contraintes définies par le concepteur sont des guides qui permettent au SGBD d’assurer l’intégrité des données. 12 2014-07-31 7GPA775GPA775 Langage SQL Nomenclature et objets d’un SGBD  Indexe : un indexe est une structure de données complémentaire et optionnelle servant à l’optimisation de la recherche de ligne (de tuple ou d’enregistrement) dans une table; il permet un accès beaucoup plus rapide aux données; l‘utilisation des indexes est très simple car leur création est facile et leur usage est implicite par le système lorsqu’ils sont définis (aucune modification aux requêtes écrites). 13GPA775GPA775 Langage SQL Nomenclature et objets d’un SGBD  Vue : une vue est une construction logique faites à partir de table(s) existante(s); elle ne contient aucune données en soit, elle n’est qu’une représentation indirecte de données contenues dans d’autres tables; les tables utilisées pour la construction d’une vue sont dites : tables de base; une vue peut servir de base à une autre vue; les vues sont très utilisées pour simplifier et optimiser l’usage de structures intermédiaires souvent sollicitées; elles sont constamment mises à jour par le SGBD. 14 2014-07-31 8GPA775GPA775 Langage SQL Nomenclature et objets d’un SGBD  Synonyme : un synonyme est un nom alternatif pour un objet existant; ils sont très utilisés pour facilité la gestion du système puisqu’ils présentent une indépendance face à la source des données (très utilisés pour une gestion efficace des usagers); comme pour la notion de schéma, le concept de synonyme est un outil puissant que possède Oracle mais qui n’existe pas dans MySQL (il existe des méthodes indirectes pour simuler les synonymes sous MySQL – mais ces artifices sont des équivalents incomplets). 15GPA775GPA775 Langage SQL Nomenclature et objets d’un SGBD  Séquence : une séquence est un objet qui permet de générer une suite de nombres automatiquement incrémentés; ces objets n’existent pas sous MySQL qui utilise un autre mécanisme pour permettre l’auto incrémentation d’une valeur (la contrainte AUTO_INCREMENT); les séquences sont disponibles sous Oracle et permettent une gestion plus flexible que la technique utilisée par MySQL. 16 2014-07-31 9GPA775GPA775 Langage SQL Nomenclature et objets d’un SGBD  Procédure et fonction : ces objets sont des sous-routine écrites par les développeurs afin de consolider plusieurs instructions en un ensemble facilement réutilisable; leur usage est avantageux et permettent une meilleur modularité du développement; un des désavantages importants de leur usage est que les SGBD rendent disponible des outils de programmation différents et que lors du passage d’un SGBD à un autre, il faut souvent réécrire le code existant; une procédure doit absolument être appelée avec l’utilisation de l’instruction CALL ou EXECUTE – de plus elle peut retourner plusieurs données et une table intermédiaire; une fonction peut être appelée directement à même n’importe quelle instruction – par contre, elle ne peut que retourner un scalaire. 17GPA775GPA775 Langage SQL Nomenclature et objets d’un SGBD  Déclencheur : le concept de déclencheur (TRIGGER) est un mécanisme permettant l’appel automatique d’une procédure en réaction à des évènements spécifiques (principalement lors de la manipulation des tables et des vues); le rôle des déclencheurs est très importants pour les systèmes un peu plus complexes et permet d’assurer uploads/Ingenierie_Lourd/ bases-de-donnees-langage-sql.pdf

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