Les Bases de Données et le SQL

Le Concept

Les Bases de données servent à stocker et organiser des données. Aujourd’hui tous les domaines ont recours à des base de données. Pour leurs gestion, les base de données nécessite un moteur de gestion que l’on appelle, SGBD (soit Système de Gestion de Bases de Données). Ces données sont stockées dans des data center. Ce sont de grandes pièces où sont disposé de nombreux serveurs.

Les Base de Données doivent être bien conceptualiser afin d’avoir un fonctionnement optimal et prendre le moins de place mémoire possible. Pour cela, il existe des méthodes et les règle de conception pour le bases de données.

Une base de données est d’abord composée de tables appelées entités. Ces tables sont nommées et sont composées d’attributs, obligatoirement d’un ou plusieurs identifiants et potentiellement une ou plusieurs clés étrangères. Les tables sont reliés entre elles par des associations qui précisent les cardinalities. Les cardinalités servent à préciser, dans le cas ci-dessous,  combien la table Ville peut posséder au maximum d’instances de table Personne. Ici Ville peut posséder entre 0 et l’infini de Personne. Dans le code, les tables sont reliées en elles grâce aux identifiants et aux clés étrangères. On peut voir ces liaisons dans le modèle relationnel. La clé étrangère des entités Personne pointent donc vers une instance de Ville.

MCD

Pour savoir quelle entité doit pointer sur une autre, il faut regarder les cardinalités. Il y quatres différentes cardinalité possible. OneToMany (1 – *) ou ManyToOne (* – 1) et ManyToMany (* – *).

Dans le cas ci dessous, Pour la relation entre Article et Auteur, c’est Article qui va pointer vers l’Auteur. En effet Article ne peut avoir qu’un Auteur et on ne peut pas prévoir combien l’Auteur va écrire d’Article.

Or pour la relation entre Article et Categorie, Article peut contenir plusieurs Categorie et Categorie peut appartenir à plusieur articles. Pour remédier à ce problème, on va changer l’association entre les deux Entités en une nouvelle Entité virtuelle qui va contenir, en clés primaires et étrangères, les clés primaires des deux tables autour.Liasions
Pour une conception plus optimisée, on doit impérativement ne pas avoir de redondance. Pour cela il faut utiliser des contraintes d’intégrités. Ces contraintes peuvent permettent de faire héritage entre entités ou bien de préciser des détails. Ils y à plusieurs type de contraintes qui peuvent être traduit en calcul booléen par des AND, OR ou XOR …

 

  • Contrainte d’exclusion

 

Le rond rempli d’une croix signifie XOR. Les pointillés dans les contraintes désigne l’entité qu’elle concerne. Ici, on a donc un salarié qui peut soit suivre, soit animer une formation, soit rien du tout mais Personne ne peut pas et suivre et animer une formation.

remarque : les associations partant de salariés ne pointent pas forcément vers la même entité.Exclu

 

  • Contrainte de totalité

 

Le rond rempli d’un T signifie OR. Les pointillés dans les contraintes désigne l’entité qu’elle concerne. Ici, on a donc une Personne qui peut être soit Etudiant, soit Salarie ou bien les deux.Total

 

  • Contrainte de partition

 

Le rond rempli d’un plus signifie également XOR or ici, on est obligé d’être l’un ou l’autre. Les pointillés dans les contraintes désigne l’entité qu’elle concerne. Ici, on a donc une personne qui doit soit vivre en France, soit à l’étranger.Partition

 

  • Contrainte d’égalité

 

Le rond rempli d’un égale signifie AND. Les pointillés dans les contraintes désigne l’entité qu’elle concerne. Ici, on a donc une personne qui pratique un Sport_Co donc appartient à une Equipe.Egale

 

SQL

Le Sql est un langage de requête utilisé par le Système de gestion de base de données, ou sgbd, mySql.

Les Commandes de bases

Les requêtes sql sont généralement composées d’un SELECT d’un FROM et d’un WHERE. Select sert à définir quoi aller chercher dans les BDD. From sert à désigner dans quelle table aller chercher les données et enfin Where sert à conditionner la récupération de données.

Sélection de données

Select
Création de Table

Create Table
Insertion dans une table

Insert
Suppression d’une colonne

Delete
Les Procédures stockées

Une autre fonctionnalités de SQL, les procédures stockées, elle servent enregistrer des fonctions qui peuvent être appelées dans une requête sql ou des programmes en php par exemple. Cela permet une meilleure modularité pour des appels de requêtes compliqués ou très redondantes. On peut les enregistrer directement dans mySql donc elle sera rappelable quand des tables sur le même MySql. Ou sinon on peut les initialiser et appeler pendant l’exécution d’un PHP.Proc

Avec cette petite procédure d’exemple on peut voir plusieurs points important de cette fonctionnalité de sql.

D’abord, Pour créer une procédure il faut:

  • Déclarer un nom. ici c’est ma_Procedure.
  • Déclarer des paramètres. Il faut préciser s’ils sont entrants IN, sortants OUT ou les deux INOUT. il faut préciser leurs noms. Et enfin leurs types. Les paramètres sont facultatifs MAIS PAS LES PARENTHÈSES.
  • Enfin on peut y ajouter une valeur de retours. Il suffit de donner le type de ce que l’on va retourner.CreateProc

Ensuite on peut déclarer des variables :

  • Pour cela, il fait seulement donner le nom puis le type de la variables après avoir écrit le mot clé DECLARE.
  • Après un declaration on peut également set sa valeur avec le mot clé SET suivi de la variables à set et sa nouvelle valeur.Declare

L’Exécution du programme doit être entourée de :

BeginEnd

Evidemment on peut faire appel à des requêtes dans les bases de données. Pour cela il faut utiliser les mêmes commande que en sql classique (SELECT … FROM … WHERE …)Select

On peut aussi mettre des conditions dans notre programmeConditionProcCaseProc

On peut également faire des boucles :Loop

Pour ces boucles, il faut mettre au moins une condition de sortie. Sinon elle ne s’arrêtera jamais.

Dans la boucle ci-dessous la condition de sortie est inclus dans la syntaxeRepeat

Les boucles while un fonctionnement similaire au repeat. Sauf que elle peut ne jamais s’exécuter si la condition de sortie n’est jamais fausse.While

Enfin, si l’on a dit à la déclaration de fonction qu’il y a une valeur de retour, il faut donner obligatoirement une valeur de retour.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *