SQL Best Practice: voici à quoi servent les normes ANSI

Divulgation: Votre soutien aide à maintenir le site en marche! Nous gagnons des frais de référence pour certains des services que nous recommandons sur cette page.


SQL: normes ANSI pour l’administration des bases de données

Le langage de requête structuré, ou SQL, est le langage standard des administrateurs de base de données (DBA) pour accéder et gérer les bases de données.

Au fil des ans, SQL a évolué et de nombreuses versions et langages ont commencé à émerger. Pour unifier SQL pour les meilleures pratiques, l’American National Standards Institute (ANSI) a créé des normes spécifiques pour les langages de requête de base de données.

La chronologie SQL

  • 1970: Le Dr Edgar Frank Codd, un informaticien travaillant pour IBM publie son célèbre article, «Un modèle relationnel de données pour les grandes banques de données partagées» en juin 1970, dans le journal de l’Association of Computer Machinery (ACM). Le modèle du Dr Codd demeure le modèle définitif pour les systèmes de gestion de bases de données relationnelles (SGBDR).

  • 1978: IBM Corporation développe le système de base de données, System / R, ainsi qu’un langage de base de données, Structured English Query Language (SEQUEL) dans leur centre de recherche de San Jose en Californie. Ils le basent sur le modèle original du Dr Codd, et ils l’appellent SEQUEL.

  • 1979: Relational Software, Inc., lance le premier système de gestion de bases de données relationnelles, et nommez-le Oracle. Leur SGBDR fonctionne sur un mini-ordinateur utilisant SQL comme langage de requête principal. Le produit devient si populaire que la société change de nom pour Oracle.

  • 1982: IBM publie son premier SGBDR basé sur SQL commercial qu’ils nomment SQL / Data System, ou SQL / DS, et en 1985 ils lancent le système Database 2, ou DB2. Les deux systèmes fonctionnent sur un ordinateur central IBM. IBM a porté DB2 vers des systèmes supplémentaires ultérieurement, y compris ceux fonctionnant sur les systèmes d’exploitation Windows et UNIX.

Normes ANSI année par année

  • 1986: SQL-87 a été initialement officialisé par l’ANSI en 1986.

  • 1989: L’American National Standards Institute (ANSI) publie le premier ensemble de normes pour les langages de requête de base de données, connu sous le nom de SQL-89 ou FIPS 127-1.

  • 1992: ANSI publie ses normes révisées, ANSI / ISO SQL-92 ou SQL2, qui étaient plus strictes que SQLI, ajoutant de nouvelles fonctionnalités. Ces normes introduisent des niveaux de conformité qui indiquent dans quelle mesure un dialecte répond aux normes ANSI.

  • 1999: ANSI publie SQL3, ou ANSI / ISO SQL: 1999, avec de nouvelles fonctionnalités, comme la prise en charge des objets. Le a remplacé les niveaux de conformité aux spécifications de base, ainsi que des spécifications supplémentaires pour neuf autres packages.

  • 2003: ANSI publie SQL: 2003, introduisant des séquences normalisées, des fonctionnalités liées à XML et des colonnes d’identité. Le créateur du premier SGBDR, le Dr E.F.Codd, décède le 18 avril de la même année.

  • 2006: ANSI publie SQL: 2006, définissant comment utiliser SQL avec XML et permettant aux applications d’intégrer XQuery dans leur code SQL existant.

  • 2008: ANSI publie SQL: 2008, présentant les déclencheurs INSTEAD OF, ainsi que l’instruction TRUNCATE.

  • 2011: ANSI publie SQL: 2011 ou ISO / IEC 9075: 2011, la septième révision des normes ISO (1987) et ANSI (1986) pour le langage de requête de base de données SQL.

Ils ont divisé les nouvelles normes SQL ANSI en neuf parties, notamment:

  • Partie 1 – ISO / IEC 9075-1: 2011 SQL / Framework, qui propose des concepts logiques.

  • Partie 2 – ISO / IEC 9075-2: 2011 SQL / Foundation, comprend des éléments centraux SQL.

  • Partie 3 ISO / IEC 9075-3: 2008 SQL / Call-Level Interface (CLI), explique les composants d’interfaçage, comme les procédures, les structures et les liaisons de variables pour exécuter des instructions SQL dans divers langages de codage, comme COBOL et C ++, par exemple.

  • Partie 4 ISO / IEC 9075-4: 2011 SQL / Persistent Stored Modules (PSM), décrit les normes pour les extensions procédurales pour SQL, y compris la gestion des conditions et le flux de contrôle, ainsi que les signaux et les démissions de conditions des instructions, et les variables et curseurs locaux. Attribue des expressions aux paramètres et aux variables. Traite de la maintenance des routines de langage de base de données persistantes, comme les procédures stockées.

  • Partie 9 ISO / IEC 9075-9: 2008 SQL / Gestion des données externes (MED), comprend des extensions à SQL pour définir les types de liaison de données et des wrappers de données étrangères qui permettent à SQL de gérer les données externes. Les données externes sont accessibles, mais ne sont pas gérées par un SGBD basé sur SQL.

  • Partie 10 ISO / IEC 9075-10: 2008 SQL / Object Language Bindings (OLB), définit la sémantique et la syntaxe de SQLJ. SQLJ est l’intégration de SQL dans Java. La norme spécifie les mécanismes de portabilité binaire des applications SQLJ. Il définit également plusieurs packages Java ainsi que leurs classes contenues.

  • Partie 11 ISO / IEC 9075-11: 2011 SQL / Schémas d’information et de définition, spécifie le schéma d’information et le schéma de définition, offrant des outils pour rendre les objets SQL et les bases de données auto-descriptifs. Inclut l’identificateur d’objet SQL, les spécifications de sécurité et d’autorisation, ainsi que les contraintes de sécurité et d’intégrité. Prend en charge les fonctionnalités et packages ISO / IEC 9075, ainsi que les fonctionnalités fournies par les implémentations de SGBD basées sur SQL.

  • Partie 13 – ISO / IEC 9075-13: 2008 ISO / IEC 9075-13: 2008: routines et types SQL utilisant le langage de programmation Java (JRT), spécifie la capacité à utiliser des classes Java comme types définis par l’utilisateur structurés SQL, ainsi qu’à invoquer des méthodes Java statiques comme routines à partir d’un SQL application, appelée Java dans la base de données.

  • Partie 14 – ISO / IEC 9075-14: 2011 Spécifications relatives à SQL / XML, définit les extensions basées sur SQL lors de l’utilisation de XML avec SQL. Il décrit les types de données XML, les routines et les fonctions. Il décrit également les mappages de types de données XML à SQL pour le stockage et la gestion de XML dans une base de données SQL.

Les packages multimédias et d’applications SQL ISO / IEC 13249 fonctionnent aux côtés d’ISO / IEC 9075 en tant que norme distincte mais pertinente qui spécifie diverses interfaces et packages basés sur SQL..

L’objectif de ce package est de permettre un accès centralisé aux applications de base de données les plus courantes, telles que les images, le texte, les données spatiales et l’exploration de données.

Comment trouver une copie des normes

Des copies papier des spécifications des normes SQL ne sont disponibles à l’achat qu’en raison des restrictions de copyright ISO et ANSI. Vous pouvez trouver une copie électronique sur le site Web de l’ANSI, en sélectionnant «Normes d’accès – Boutique eStandards» et recherchez «Langage SQL».

Il existe deux variantes de chaque document, mais elles sont identiques:

  1. INCITS / ISO / IEC 9075 – * – 2011

  2. ISO / CEI 9075 – *: 2011

Chaque créateur de base de données vise à se conformer à ces normes, ce qui rend les différentes implémentations de SQL similaires; cependant, chaque implémentation a toujours un dialecte unique pour l’utilisation de SQL qui inclut des extensions ou des ajouts aux normes.

Mettre SQL à l’épreuve

Les commandes et instructions SQL fondamentales sont similaires pour tous les dialectes SQL, donc une fois qu’un DBA sait comment en utiliser un, il peut en apprendre facilement d’autres.

Bien que la plupart des programmes de base de données SQL aient leurs propres extensions propriétaires, afin de se conformer aux normes ANSI, ils doivent, à tout le moins, prendre en charge ces cinq commandes principales de la même manière:

  1. MISE À JOUR

  2. SUPPRIMER

  3. SÉLECTIONNER

  4. INSÉRER

SQL permet à un DBA d’effectuer les actions suivantes dans une base de données:

  • Exécuter des requêtes

  • Récupérer des données

  • Insérer, mettre à jour et supprimer des enregistrements

  • Créer de nouvelles tables et vues

  • Construisez de nouvelles bases de données

  • Produire des procédures stockées

  • Définir des autorisations pour les vues, les tables et les procédures.

Pour produire un site Web qui peut accéder aux données d’une base de données, un programme de base de données Relational Database Management System (RDBMS) est nécessaire. Certains programmes SGBDR populaires incluent:

  • serveur SQL

  • MS Access

  • MySQL

  • Postgre SQL

  • Base de données Oracle.

Pour créer une base de données, l’administrateur de la base de données devra également utiliser les éléments suivants:

  • Un langage de balisage standard comme CSS / HTML

  • Un langage de script côté serveur, comme ASP ou PHP.

  • Comprendre comment utiliser SQL pour récupérer les données que vous demandez.

L’anatomie d’une base de données

Le système de gestion de base de données relationnelle (SGBDR) constitue le fondement de la base de données. L’utilisation de RDBMS permet à un DBA de stocker des données dans des objets de base de données, appelés tables. Les tableaux sont constitués de colonnes et de lignes de données associées organisées en sections.

Identification des tables de base de données

La plupart des bases de données contiennent plusieurs tables, le DBA doit donc identifier chaque table avec un nom. Chaque table contiendra des lignes d’enregistrements contenant des informations et des données.

Par exemple, une entreprise utiliserait une base de données avec une table client contenant les données suivantes pour chaque client:

  1. Nom du client

  2. Nom du contact

  3. N ° de client

  4. Adresse du client – rue, ville, code postal et pays

  5. Coordonnées du client

Dans ce cas, le tableau contient cinq enregistrements – un pour chaque client – et huit colonnes, une pour chaque bloc de données: nom du client, nom du contact, identifiant du client, adresse du client, y compris la ville, le code postal et le pays, et informations de contact du client.

Communiquer avec une base de données SQL

Les administrateurs de base de données effectuent toutes les actions nécessaires dans une base de données à l’aide d’instructions SQL. Les résultats sont ensuite stockés dans une table de résultats, appelée l’ensemble de résultats.

SQL n’est généralement pas sensible à la casse, et certains systèmes de base de données nécessitent l’utilisation d’un point-virgule à la fin de chaque instruction SQL. Un point-virgule est devenu la méthode standard de séparation des instructions SQL les unes des autres dans un système de base de données.

Cela permet à un DBA d’exécuter plusieurs instructions SQL en un seul appel au serveur.

Certaines des commandes SQL incluent:

  • MODIFIER TABLE Modifie les tables.

  • ALTER DATABASE Modifie les bases de données.

  • CRÉER UNE BASE DE DONNÉES Crée de nouvelles bases de données.

  • CRÉER UN INDICE Crée des clés d’index / recherche.

  • CRÉER UNE TABLE Crée de nouvelles tables.

  • SUPPRIMER Supprime les données des bases de données.

  • DROP INDEX Supprime les index.

  • TABLE DROP Supprime les tables

  • INSÉRER DANS Insère de nouvelles données dans les bases de données.

  • SÉLECTIONNER Extrait les données des bases de données.

  • MISE À JOUR Met à jour les données dans les bases de données.

Les 12 règles de Codd

Lorsqu’il a créé le premier système de gestion de bases de données relationnelles, le Dr Codd a inclus 13 règles, suggérant que si un système de gestion de bases de données répond à toutes ces règles, il s’agit d’un véritable système de gestion de bases de données relationnelles..

Parce qu’il les a numérotés de zéro à 12, ils sont appelés les 12 règles de Codd:

  • Règle zéro: fondements Déclare qu’un système de base doit répondre à trois exigences de base: Il doit être relationnel et comprendre une base de données et un système de gestion. Il doit également tirer parti des installations relationnelles exclusivement pour gérer la base de données pour être considéré comme un véritable SGBDR.

  • Règle 1: Représentation des informations Représentez toutes les informations de la base de données de manière singulière, en particulier en plaçant des valeurs aux positions des colonnes dans les lignes des tableaux.

  • Deuxième règle: accès garanti Toutes les données doivent être accessibles, comme l’exigence fondamentale pour les clés primaires. Chaque valeur scalaire individuelle dans une base de données doit être raisonnablement adressable en définissant le nom de la table et de la colonne contenant, ainsi que la valeur de clé primaire pour la ligne contenant.

  • Règle trois: Gestion des valeurs nulles Le SGBD doit laisser chaque champ vide ou nul. Cela signifie qu’il doit prendre en charge la manipulation d’une représentation de toute information inapplicable ou manquante d’une manière systématique différente de toutes les valeurs normales, ainsi qu’indépendamment du type de données.

  • Règle quatre: Catalogue en ligne actif Le système doit prendre en charge une structure ou un catalogue en ligne, en ligne, relationnel accessible aux utilisateurs autorisés en utilisant leur langage de requête normal. Les utilisateurs doivent pouvoir accéder au catalogue de la base de données en utilisant le même modèle relationnel et langage de requête qu’ils ont utilisé pour accéder aux données à l’intérieur de la base de données.

  • Règle cinq: sous-langage de données complet Le système doit prendre en charge au moins un langage relationnel avec une syntaxe linéaire. Les utilisateurs devraient pouvoir en tirer parti dans les programmes d’application et de manière interactive également. Il doit également prendre en charge les opérations de manipulation de données, comme la mise à jour et la récupération, et les opérations de définition de données, comme les définitions de vue, ainsi que les opérations de gestion des transactions comme la validation, le début et la restauration. Il devrait également avoir des contraintes d’intégrité et de sécurité en place.

  • Règle six: mise à jour Toutes les vues qui peuvent être mises à jour théoriquement doivent être mises à jour par le système.

  • Règle sept: mise à jour, insertion et suppression de haut niveau Le système doit prendre en charge les opérateurs de mise à jour, d’insertion et de suppression définis à la fois, afin que les utilisateurs puissent récupérer les données d’une base de données relationnelle dans des ensembles constitués de données provenant de plusieurs tables et / ou lignes. Les opérations de mise à jour, d’insertion et de suppression doivent être activées pour tout ensemble récupérable plutôt que pour une seule ligne dans une seule table.

  • Règle huit: Indépendance des données physiques Les mises à jour au niveau physique ne doivent pas nécessiter de mise à jour d’une application basée sur la structure. Par exemple, les changements dans la façon dont les données sont stockées, comme le fait de les placer dans des tableaux ou des listes liées.

  • Règle n ° 9: indépendance logique des données Les mises à jour au niveau logique, telles que les colonnes, les tables et les lignes, ne doivent pas nécessiter de mise à jour d’une application basée sur la structure. Il est plus difficile d’atteindre l’indépendance des données logiques que l’indépendance des données physiques.

  • Règle 10: Indépendance d’intégrité Spécifiez les contraintes d’intégrité doivent être stockées séparément des programmes d’application et dans le catalogue. Il doit être possible de mettre à jour ces contraintes le cas échéant sans affecter les applications existantes.

  • Règle 11: Indépendance de distribution La distribution de parties de la base de données à divers emplacements ne doit pas être visible pour les utilisateurs de la base de données. Toutes les applications existantes doivent pouvoir fonctionner en continu et efficacement face à l’introduction d’une version distribuée du SGBD ou lorsque les données distribuées actuelles sont redistribuées dans tout le système.

  • Règle 12: Non Subversion Si le système fournit une interface à un enregistrement à la fois ou de bas niveau, il ne peut pas être utilisé pour réduire un autre système. Un exemple de ceci serait le fait de contourner une intégrité relationnelle ou une contrainte de sécurité.

Le langage de requête structuré ou SQL a parcouru un long chemin, mais les fondements utilisés pour le créer sont toujours solides. Les administrateurs de base de données peuvent découvrir plus de façons et d’endroits pour l’utiliser, car le cloud computing devient la norme; cependant, ANSI restera en place pour spécifier les normes d’unification des langages de requête de base de données.

Ressources:

ANSI.org

Histoire de SQL

W3Resource

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me

About the author

Adblock
detector