Aller au contenu

Introduction au SQL


Pirkoa
 Share

Recommended Posts

Bonjour à vous,

Je me lance dans une petite série de plusieurs tutoriels qui, je l'espère, serviront à beaucoup d'entre vous.

 

Pour ne rien vous cacher, j'utilise mes cours comme support en essayant de rester clair, et concis dans tout ce que j'explique.

Dans ce sujet, je vais vous présenter le SQL en général, ses principes, son historique, et aussi les SGBD, nous verrons ce que c'est, et à quoi ça sert. De plus, je vous donnerai des pistes afin de choisir le SGBD qui vous correspond.

 

Vous êtes prêts ? C'est parti !

 

I - Définition :

 

SQL signifie Structured Query Language, ou langage structuré de requêtes.

C'est un langage pseudo-informatique (de type requête) standard et normalisé. C'est à dire que l'on peut l'utiliser sur plusieurs systèmes différents, la syntaxe sera toujours (à peu près) la même.

 

Le SQL est destiné à interroger où à manipuler une base de données relationnelle.

 

II - Principes :

 

Le SQL est fondé sur la logique des prédicats, et le modèle relationnel. De plus, c'est un langage non procédural, il permet d'avoir un résultat sans spécifier l'ordre d'exécution des différentes opérations, comme on pourrait le faire en PHP par exemple. C'est un langage ensembliste, c'est à dire qu'il travaille sur des ensembles de données.

Au final, une requête SQL est équivalente à une suite d'opérations qui sont en relation.

Il faut aussi noter que SQL est une norme depuis 1986.

 

Pour rentrer un peu plus dans le sujet, le SQL se compose de 5 parties :

  • Les ordres LDD (langage de définition des données) : Ce sont tous les ordres qui permettent de modifier la structure de la base de données.
  • Les ordres LMD (langage de manipulation des données) : Ce sont les ordres qui permettent de consulter, ou de modifier le contenu de la base de données
  • Les ordres LCD (langage de contrôle des données) : Ce sont tous les ordres qui servent à gérer les utilisateurs et les privilèges, ainsi que les actions qu'ils peuvent entreprendre
  • Les ordres LCT (langage de contrôle des transactions) : C'est ce qui permet de gérer les transactions, c'est à dire rendre automatiques certains ordres enchaînés (des séquences, si vous préférez)
  • Le SQL procédural : Ensemble d'outils pour que le SQL s'interface correctement avec des langages hôtes (PSM , CLI, Embedded SQL, ... )

III - Historique :

Je ne vous aurai pas laissé filer dans un petit bout d'historique voyons !

Voici les différents stades du langage SQL, qui sont importants à connaître :

  • SQL86 - SQL89 ou encore SQL1 :  C'est la référence de base,
    • Requêtes compilées puis exécutées depuis un programme d'application
    • 4 types de données simples (entiers, réels, chaînes de taille fixes)
    • Opérations ensemblistes restreintes (uniquement le UNION)
  • SQL92 ou SQL2 : Le standard actuel
    • Requêtes dynamiques
    • Types de données plus riches (intervalles, dates, chaînes de traille variables, ...)
    • Différents types de jointures (naturelle et externe) contre le produit cartésien uniquement en SQL1
    • Opérations ensemblistes : différence (EXCEPT), Intersection (INTERSECT)
    • Renommage des attributs dans un SELECT
  • SQL99 ou SQL3 : SQL devient un langage de programmation
    • Extensions orientées-objet
    • Types structurés
    • BLOB, CLOB
    • Récusrivité

Il faut savoir que je parlerai dans mes différents tutos uniquement de SQL2, qui reste le SQL le plus utilisé (non orienté-objet).

 

Maintenant que nous savons tout ça, c'est bien, mais comment choisir le système qui gérera ma base de données ?

 

IV - Les SGBD :

  • Un SGBD (Système de Gestion de Bases de Données) est un outil informatique permettant de définir, stocker, consulter, modifier et protéger les données de la base.

Il existe de nombreux SGBD, comment choisir le bon ? Que peut-on attendre d'un bon SGBD ?

  • Assurer un accès simple, rapide et uniforme aux données de chaque utilisateur
  • Faciliter les tâches d'administration des données
  • Garantir l'intégrité, la sécurité, la confidentialité des données stockées
  • Diminuer le temps de développement des applications qui utilisent ces données
  • Être tolérant aux pannes matérielles et logicielles

Voila les principaux points. Je vais vous donner maintenant les principaux SGBD relationnels :

  • MySQL (libre)
  • Oracle (payant, mais beaucoup utilisé)
  • PostgreSQL (libre)
  • Microsoft SQL Server
  • Ingres
  • IBM DB2 (Un peu vieux)
  • SQLite (libre)
  • Microsoft Access (Soyons fous !)
  • ...

Pour donner mon avis perso sur quel est le meilleur SGBD, je dirai que tout dépend de votre besoin.

Beaucoup se précipitent sur MySQL, pensant que c'est LA solution. A ceux-ci, je leur dirai que non, car MySQL est loin d'être le plus complet des SGBD, il y a beaucoup d'instrucitons que MySQL ne gère pas directement (il faut réfléchir un petit peu pour avoir ce qu'on veut). PostgreSQL est très bien et très complet. Il a aussi l'avantage d'être gratuit et fidèle à SQL2.

 

Sinon, si vous êtes une entreprise (sait-on jamais), Oracle reste la meilleure solution.

 

Voila, j'ai fini cette petite introduction au SQL relationnel, n'hésitez pas à réagir, commenter, critiquer...

Le prochain chapitre portera sur le SELECT, sous toutes les formes (en passant par les jointures ! :) )

A très vite,

Pirkoa !

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Invité
Répondre à ce sujet…

×   Vous avez collé du contenu avec mise en forme.   Supprimer la mise en forme

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Chargement
 Share

×
×
  • Créer...