SQLSQL
Base de DonnéesBase de Données
NormalisationNormalisation
Gestion de l’InformationGestion de l’Information
Cours de gestion des données : Jean-Antoine MoreauCours de gestion des données : Jean-Antoine Moreau
SQLSQL
Structured Query LanguageStructured Query Language
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 3
L ‘ INFORMATIONL ‘ INFORMATION
• La GestionLa Gestion
• Le TraitementLe Traitement
 Des informationsDes informations
– OrganisationsOrganisations
– EntreprisesEntreprises
– InternetInternet
 Système de ManagementSystème de Management
des Donnéesdes Données
 Système d’Information(s)Système d’Information(s)
 Système de Gestion desSystème de Gestion des
DonnéesDonnées
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 4
Le Langage SQLLe Langage SQL
 Langage de Requête
 Permet de Communiquer avec la Base de Données
 Répond à la Norme SQL ANSI
 Compatible avec la modélisation Objet
 Adaptable au traitement des gros volumes de données
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 5
Base de DonnéesBase de Données
• Collection de Données
• Mécanisme organisé pour stocker des
informations et permettre à un utilisateur de
les retrouver et de les utiliser efficacement.
• Exemples de Base de Données
Annuaires
Listes
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 6
Base de Données RelationnelleBase de Données Relationnelle
• Divisée en Unité Logiques
– Classe
– Objet
– Table
• Ces Unités sont reliées par des Relations
• Ces Relations sont
– Décomposables
– Utilisables
•Processus
•SéquencesPar / En
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 7
ArchitectureArchitecture
• Le SQL est compatible avec les Architectures :
– 2 Tier Client / Serveur
– 3 Tier Client léger
– Utiliser par les Architectures supports aux :
• ERP
• Application Internet et Intranet
• Big Data
• Compatible avec les Langages de Programmation
– Interprétés
– Compilés
– Objet
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 8
ConnexionConnexion
Pour Initialiser une Session SQL:
• Connexion à la Base de Données
– Instruction CONNECT
• Option nom de l’utilisateur
• Le serveur de base de donnée (où la base se trouve)
• Le nom de la base de donnée
• Déconnexion
– DISCONNECT
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 9
AdministrationAdministration
• Administration du Serveur de Base de Donnée
• Administration de la Base de Données
• Administration des Données
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 10
CLASSES / OBJETSCLASSES / OBJETS
InstanciationInstanciation
• Table
– Divisée en plusieurs entités appelé champs
• Champ
– Catégorise les informations spécifiques contenues dans la table
– À un champ est rattaché un type de donnée et un seul
• Enregistrement
– Ligne de données (enregistrement complet)
• Colonne
– Entête verticale appartenant à une table
• Clé Primaire (Primary Key)
 Règle d’Unicité
– Colonne qui fait que chaque ligne de la Table est unique
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 11
STRUCTURE de DONNEESSTRUCTURE de DONNEES
• Les Données stockées dans une base de données
– Deviennent des Informations
• Évolutives
• Traçables
• Ouvertes ou Confidentielles
• Types de Données
– Chaînes de caractères
– Chaînes numériques
– Valeurs date et heure
– Booléennes
– …
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 12
STRUCTURE de DONNEESSTRUCTURE de DONNEES
• Les Données stockées dans une base de données
– Deviennent des Informations
• Évolutives
• Traçables
• Ouvertes ou Confidentielles
• Types de Données
– Chaînes de caractères
– Chaînes numériques
– Valeurs date et heure
– Booléennes
– …
OpérationsOpérations
sur ces donnéessur ces données
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 13
VALEURS de DONNEESVALEURS de DONNEES
• Chaînes
– De caractères
• Longueur fixe
• Longueur variable
– Littéral
• Numériques
– Booléen
– Décimal
– Entier
– Flottant
– Réel
– Double Précision
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 14
Les OBJETSLes OBJETS
• Unicité logique <entité> de la base de
données
• Référence et stocke les données
• Interaction entre Objets
• Forme élémentaire de stockage de
données structurées dans la base
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 15
Le SCHEMALe SCHEMA
• Collection structurée d’Objet
• Le Schéma est Propriété d’un utilisateur
• Une Base de Données peut contenir
– Un Schéma
– Plusieurs Schémas
 Deux Tables de même noms sont différentes, si
elles appartiennent à des Schémas Différents
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 16
CREATION d’une TABLECREATION d’une TABLE
• Nom de la TABLE
• Les Données contenues
• Clé primaire
Règle d’unicité
• Nom des colonnes
• Longueur de chaque colonne
• Taille initiale de la TABLE
– Fournie par l’instanciation des diagrammes UML
de Classe et d’Objet
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 17
Exemples de CommandesExemples de Commandes
• Création
– CREAT TABLE <nom-de-la-table>
• Clause STORAGE pour taille initiale
• Modification
– ALTER TABLE <nom-de-la-table>
• Suppression
– DROP
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 18
CONTRAINTES d’INTEGRITECONTRAINTES d’INTEGRITE
• Concept d’Intégrité Référentielle
• Contrainte Clé Primaire <primary Key>
Unicité
– Identification d’une ligne de donnée unique
– Identification par colonne
– Assignation dès la création de la Table
– Contrainte explicite
– Si la clé primaire est définie par la combinaison de
plusieurs colonnes, la composition est définie lors de
la création
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 19
CONTRAINTES d’INTEGRITECONTRAINTES d’INTEGRITE
• Contrainte clé extérieure
• Clé étrangère <foreign Key>
– « Colonne » place dans un tableau < enfant > pour
référencer la clé primaire (notion d’héritage au sens
objet)
– L’Intégrité Référentielle entre les Tables se fait entre
autre par les mécanismes
• clé étrangère / clé étrangère
• clé étrangère clé primaire
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 20
CONTRAINTES d’INTEGRITECONTRAINTES d’INTEGRITE
• Contrainte NOT NULL
– Les valeurs NULL interdites
• Contrainte de vérifications
– CHK (check)
– Exemple :
• Présence obligatoire d’une donnée dans un champ
• Valeur minimum admise
• Suppression des contraintes
– Exemple Commande
• ALTER TABLE option DROP CONSTAINT
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 21
NORMALISATION DE LANORMALISATION DE LA
BASE DE DONNEEBASE DE DONNEE
• Processus qui a pour objectif de réduire la
redondance des données, dans la base de
données
• Sont normalisés
– Les noms
– Les noms des OBJETs
– Les noms des TABLEs
– Les RELATIONS
– Le noms des RELATIONS
– Etc.
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 22
NORMALISATION DE LANORMALISATION DE LA
BASE DE DONNEEBASE DE DONNEE
• Le Processus de Conception est Normalisé
• Le Processus de Modélisation est Normalisé
 Ils sont déclinés dans le Plan d’AssurancePlan d’Assurance
QualitéQualité
• Processus
– Modèle de Package
– Modèle de Classe
– Modèle Objet
– Modèle Logique
– Modèle Physique
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 23
NORMALISATION DE LANORMALISATION DE LA
BASE DE DONNEEBASE DE DONNEE
• Le Processus de Conception est Normalisé
• Le Processus de Modélisation est Normalisé
 Ils sont déclinés dans le Plan d’AssurancePlan d’Assurance
QualitéQualité
• Processus
– Modèle de Package
– Modèle de Classe
– Modèle Objet
– Modèle Logique
– Modèle Physique
•Méga
•Rational
•Objecteering
• …
OUTILSOUTILS
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 24
IMPACT de laIMPACT de la
NORMALISATIONNORMALISATION
• Le Modèle logique:
– Consiste à ordonnancer les données en
groupes alogiques, organisés, structurés,
standardisés; pour en permettre
l’évolutivité, l’adaptabilité, la performance.
– Le Modèle logique est issu du Modèle Objet
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 25
QUESTIONNEMENTQUESTIONNEMENT
• Comment l’utilisateur accèdera à la Base de Données ?
• Comment l’utilisateur accèdera-t-il aux Données ?
• Comment l’utilisateur mettra-t-il à jour les Données ?
• De quels Droits devra-t-il bénéficier ?
• Comment faut-il regrouper les données dans la Base ?
• Quelles sont les Données les plus fréquemment sollicitées ?
• Quelles sont les Relations les plus fréquemment sollicitées ?
• Quelles sont les relations entre données ?
• Quelles sont les Règles à mettre en œuvre pour assurer la
précision des Données ?
• Quelles sont les Règles à mettre en œuvre pour assurer la
traçabilité des Données ?
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 26
Les FORMES NORMALESLes FORMES NORMALES
• Niveaux de Normalisation d’une Base de Données
• Incluses dans le processus de Modélisation UML
• Définit dans le Plan d’Assurance Qualité
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 27
Les FORMES NORMALESLes FORMES NORMALES
• Première Forme Normale :
– Division de la Base de Données en Unités logiques,
nommées TABLEs
– Assignation de la Clé Primaire
– Décomposition des données en unités logiques
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 28
Les FORMES NORMALESLes FORMES NORMALES
• Seconde Forme Normale
– Données dépendant partiellement de la Clé Primaire
• Et mise en place dans une Autre Table
– Éclatement de TABLE en Sous Unités
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 29
Les FORMES NORMALESLes FORMES NORMALES
• Troisième Forme Normale
– Suppression des données qui ne dépendent
pas de la Clé Primaire, dans la TABLE
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 30
NORMALISATIONNORMALISATION
• Permet donc :
– L’Organisation globale de la Base de Donnée
– La Limitation des Données redondantes
– La Cohérence des Données de la Base
– La Souplesse de Conception d’évolution
– Traçabilité
• Des évolutions de Données
• Des évolutions des Règles de GestionRègles de Gestion
– Un Meilleur contrôle de la sécurité
– L’ Efficience de la Documentation
– L’Intégrité des Données
– Le Maintient en Conditions Opérationnelles
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 31
INTEGRITEINTEGRITE
REFERENTIELLEREFERENTIELLE
• Les valeurs des colonnes dépendent d’une valeur donnée d’une
autre TABLE
• Contrôle des valeurs par restriction du périmètre par plage de
valeur en lien avec:
• Méta-Données (type métier)
• Fonctionnel
• Technique
• Sur échange
• Contrôle par l’utilisation des Clés Primaires et étrangères
• Relations / Présence du couple :
• Clé primaire – clé étrangère
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 32
DENORMALISATIONDENORMALISATION
• Dénormaliser une Base de Données
– Réduire / Détruire les niveaux de regroupement
– Risque d’augmentation de Données redondantes
– Baisse de Performance
– Moins d’adaptabilité
– Perte de la traçabilité
– Facteurs de Maintient en Conditions Opérationnelles
sont alors réduits
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 33
OPERATION SUR LESOPERATION SUR LES
DONNEESDONNEES
• DATA MANIPULTATION LANGUAGE
Sélection d’une Donnée
• le <select>
Insérer un Donnée
• l’ <insert>
Mettre à jour un Donnée
• l’<update>
Suppression d’une Donnée
• le <delete>
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 34
INSERTION d’une DONNEEINSERTION d’une DONNEE
dans une TABLEdans une TABLE
• Pseudo-code :
 INSERER dans <nom-table>
la valeur (…..) dans le champ … de la colonne..
• Instruction / Code | Principe :
INSERT INTO <nom-table>
VALUES (…..)
INSERT INTO table-client
(id-client, id-société, num-commande)
VALUES (….,’….’,’…..’)
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 35
SELECTIONNER DESSELECTIONNER DES
DONNEES d’une TABLEDONNEES d’une TABLE
• Pseudo-code :
 SELECTIONNER les valeurs PROVENANT de la TABLE
• Instruction / Code | Principe :
SELECT * from client
Sélectionne toutes les lignes des colonnes de la TABLE client
Donnera la liste du contenu, type listing / tableau
SELECT from client
id-client
VALUE ( … )
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 36
MISE A JOUR Des DONNEESMISE A JOUR Des DONNEES
EXISTANTESEXISTANTES
• Mettre à jour une ou plusieurs TABLEs (Objets):
– Table
– Colonne
– Ligne
– Champ
• Vérifier la cohérence des Données
• Instruction / Code | Principe :
update no-de-la-table
set nom-colonne = ‘value’
[where condition];
update nom-table
set colonne1 = ‘value’
[colonne2=‘value’,]
[colonne3=‘value’]
[where condition];
Modèle logique de données
Une seule colonne
Plusieurs colonnes de plusieurs champs
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 37
TRANSACTIONTRANSACTION
• Unité de Tâche qui se déroule dans une Base de Données
• Unité
• Séquence
• Déroulement
– Manuel
– Automatique
• Propagation de changement(s) dans la Base de Données
•Instruction
•Groupe d’Instructions
Un Ordre Logique
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 38
TRANSACTIONTRANSACTION
PROPRIETEs et CONTRAINTEsPROPRIETEs et CONTRAINTEs
• Toute TRANSACTION possède
– Un DEBUT et une FIN
• Une TRANSACTION peut être
– enregistrée ou annulée
 Si une TRANSACTION échoue
– ALORS
• Aucune portion de la TRANSACTION n’est enregistrée dans
la Base de Données
 FIN de SI
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 39
CONTRÔLECONTRÔLE
TRANSACTIONNELTRANSACTIONNEL
• Capacité à gérer plusieurs transaction pouvant se produire dans le
SGBDR
• Les transactions prennent en compte les commandes, leur
combinatoire, leurs options:
– INSERT
– UPDATE
– DELETE
• Lorsque la transaction s’exécute, s’achève avec succès, la table
cible n’est pas immédiatement modifiée, même si le résultat le laisse à
penser.
– Il existe des commandes de transaction, qui finalise la transaction en:
– Enregistrement les modifications
– En annulant les modifications
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 40
COMMANDES de CONTROLECOMMANDES de CONTROLE
TRANSACTIONNELTRANSACTIONNEL
• COMMIT
– Pour la VALIDATION
• ROLLBACK
– Pour l’ANNULATION
• SAVEPOINT
– Pour l’annulation partielle
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 41
EXEMPLESEXEMPLES
• COMIT
delete from produit
where prix <5€
COMIT;
Les produits dont le prix est inférieur à 5€ sont supprimer
<COMIT> - validation
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 42
• ROLLBACK
update produit
set prix = 350.00
where id-produit = ‘1245’
La ligne est mise à jour
ROLLBACK;
Annulation de la mise à jour
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 43
• SAVEPOINT
< label> point-instantané de la transaction à
partir duquel, on pourra annuler la transaction
• Utilisation avec ROLLBACK donne
– ROLLBACK TO nom-du-savepoint
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 44
• Création d’un SAVEPOINT
SAVEPOINT étiquette1
delete from produit where id=‘1234’
SAVEPOINT étiquette2
delete from produit where id=‘12589’
SAVEPOINT étiquette3
delete from produit where id=‘1367910’
ROLLBACK to étiquette2
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 45
• RELEASE SAVEPOINT
– suppression d’un SAVEPOINT existant
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 46
INITIALISATION d’uneINITIALISATION d’une
TRANSACTIONTRANSACTION
• SET TRANSACTION
SET TRANSACTION READ WRITE;
SET TRANSACTION READ ONLY;
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 47
LES REQUETESLES REQUETES
• Demande adressée à la Base de Données
• Extraction des Données dans un format, exploitable en fonction
des Besoins d’utilisation
• INSTRUCTION SELECT
– Fait partie du Data Query Language
– Cette INSTRUCTION n’est pas autonome, elle est accompagnée :
• D’une CLAUSE obligatoire
• D’une CLAUSE optionnelle
• Mots clés de cette instruction
• SELECT
• FROM
• WHERE
• ORDER BY
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 48
SYNTAXESSYNTAXES
• Avec clause Obligatoire
SELECT [ALL | * DISTINCT COLONE1, COLONE2]
FROM TABLE1 [,TABLE2];
FROM : clause obligatoire
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 49
SYNTAXESSYNTAXES
• Avec clause Optionnelle
SELECT [ALL | * DISTINCT COLONE1, COLONE2]
FROM TABLE1 [,TABLE2];
WHERE [CONDITION1 | EXPRESSION1]
[AND CONDITION1 | CONDITION2 ]
FROM : clause obligatoire
WHERE: clause optionnelle
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 50
SYNTAXESSYNTAXES
• Tri des Résultats
SELECT [ALL | * DISTINCT COLONE1, COLONE2]
FROM TABLE1 [,TABLE2];
WHERE [CONDITION1 | EXPRESSION1]
[AND CONDITION1 | CONDITION2 ]
ORDER BY COLONNE1 | INTEGER [ASC @ DESC]
FROM : clause obligatoire
WHERE: clause optionnelle
ORDER BY: clause optionnelle de tri
• Comptage des Enregistrements contenus dans une
table
– SELECT COUNT(x) FROM nom-table
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 51
SYNTAXESSYNTAXES
• Sélection des Données sur un autre Schéma
SELECT Identifiant
FROM nom-schéma.nom-table
Formulation – syntaxe de type objet
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 52
Le CASSE SENSITIVELe CASSE SENSITIVE
• Les commandes SQL ne sont pas « casse
sensitive »
• Elles peuvent donc être saisies en
majuscules ou en minuscules
• Il est souhaitable de définir des règles
d’écriture :
• Des requêtes
• Des programmes
Dans le Plan d’Assurance
Qualité Logiciel de chaque projetIncéréesIncérées
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 53
Les OPERATEURSLes OPERATEURS
• Un Opérateur
– Permet de spécifier des conditions dans une instruction SQL
– Sert de conjonction à plusieurs conditions
• Types d’Opérateur
– Opérateur de comparaison
– Opérateur logique
– Opérateur utilisé pour nier des conditions
– Opérateur arithmétique
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 54
OPERATEUR deOPERATEUR de
COMPARAISONCOMPARAISON
• Utilisé pour Tester
– L’ Égalité
• Signe =
– La non-égalité
• signe < >
– La valeur inférieure
• signe <
– La valeur supérieures
• signe >
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 55
ExempleExemple
• Pseudo – Code
SELECTIONNER dans la TABLE produit
le produit dont le prix est inférieur à 10
• Syntaxe
SELECT
FROM produit
WHERE price < 10
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 56
OPERATEURS LOGIQUESOPERATEURS LOGIQUES
• Ils sont utilisés comme des mots clés pour effectuer des
comparaisons
• Liste d’opérateur logiques
– IS Null (comparaison à la valeur nulle)
– BEETWEEN (entre deux valeurs, dans une plage)
– IN (une valeur dans une liste de valeur)
– LIKE (comme – similitude)
– EXISTS (existence – Présence dans une liste)
– UNIQUE (permet de vérifier l’unicité)
– ALL (compare la valeur à toutes valeurs)
– ANY (compare la valeur à toutes les valeurs applicable d’une liste)
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 57
OPERATEURS CONJONCTIFSOPERATEURS CONJONCTIFS
• AND
– le ET logique
– Utilisation de plusieurs conditions en clause
where
• OR
– Le ou logique
– Combinaison de plusieurs conditions dans
une clause where
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 58
NEGATIONNEGATION
• Opérateur NOT
– Cet opérateur inverse la signification de l’opérateur
logique
– Ce qui donne
• Différent de …
• NOT BETWEEN
• NOT IN
• NOT LIKE
• IS NOT NULL
• NOT EXISTS
• NOT UNIQUE
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 59
OPERATEURSOPERATEURS
ARITHMETIQUESARITHMETIQUES
• Effectuent des Opérations mathématiques avec
le SQL
– Adition
+
– Soustraction
_
– Multiplication
* ou x
– Division
/
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 60
ExempleExemple
• Pseudo – code
Sélectionner dans la Table Produit
Les produits pour lesquels le (prix - la remise fidélité)
+
nouvelle augmentation < 10
• Syntaxe
SELECT (prix-remise)+ nouvelle augmentation < 10
FROM Produit
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 61
FONCTION d’AGREGATIONFONCTION d’AGREGATION
• Fourni des informations de synthèse
– Comptage
– Totaux
– Moyennes
– …
• Quelques fonctions d’agrégation
– COUNT
– SUM
– MAX
– MIN
– AVG
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 62
Description de FonctionDescription de Fonction
d’Agrégationd’Agrégation
• COUNT
– Compte les lignes ou les colonnes ne contenant pas de valeur NULL
• SUM
– Retourne le total des valeurs d’une colonne sur un groupe de ligne
• AVG
– Calcul la moyenne d’un groupe de ligne
• MAX
– Retourne la valeur maximale des champs d’une colonne pour un
groupe de lignes
• MIN
– Retourne la valeur minimale d’une colonne dans un groupe de ligne
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 63
TRIER et REGROUPERTRIER et REGROUPER
des DONNEESdes DONNEES
• Regroupement de Données
• Processus consistant à combiner dans un ordre
logique des lignes de données, dont une ou
plusieurs colonnes prennent une valeur
identique
• Clauses
– GROUP BY
• Regroupement de données
– ORDER BY
• Tri des données
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 64
Fonctions de RegroupementFonctions de Regroupement
• Incluent les fonctions
– AVG
– MAX
– MIN
– SUM
– COUNT
• Clauses de complémentarité
• Clause HAVING
– Indique à la clause GROUP BY le groupe à inclure
dans le résultat
– Place des conditions sur des groupes générés par la
clauses GROUP BY
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 65
AGENCEMENT des DONNEESAGENCEMENT des DONNEES
• Fonctions de caractères ANSI
• Représentent des chaînes de caractères dans les
formats du langage SQL
• Fonctions
– Concaténation
– TRANLATE
– REPLACE
– UPPER
– LOWER
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 66
Explicitation des FonctionsExplicitation des Fonctions
• Concaténation
|| ORACLE
Ou suivant les SGBDR SQL server
+ MySQL
• Exemple (Pseudo code)
sélectionner dans la Table des clients
le nom et le prénom
pour définir le non complet
par une concaténation
SELECT nom || ‘,’ || prénom nom_complet
FROM CLIENT
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 67
FONCTIONS suiteFONCTIONS suite
• TRANSLATE
– Recherche une chaîne de caractères
– Vérifié la présence d’un caractère spécifique
– Recherche la chaîne de substitution correspondante
– Remplace le caractère
• Syntaxe
• TRANSLATE (jeu de caractère, valeur1, valeur2)
• REPLACE
– Remplace chaque occurrence d’un ou de plusieurs caractères par
un ou des caractères spécifiques
• Syntaxe
• REPLACE (‘valeur1’,’valeur2’,[NULL] ‘valeur’]
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 68
FONCTIONS suiteFONCTIONS suite
• UPPER
– Convertit les minuscules d’une chaîne de caractère en majuscules
• Syntaxe
• UPPER (chaîne de caractère)
• LOWER
– Convertit en minuscule, les majuscules d’une chaîne de caractères
• Syntaxe
• LOWER (chaîne de caractère)
• SUBSTR
– Extraction d’une partie de chaîne de caractère (sous chaîne de
caractère) d’une chaîne de caractère
• Syntaxe
• SUBSTR (nom de colonne, position de départ, longueur)
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 69
FONCTIONS suiteFONCTIONS suite
• INSTR
– Cherche une chaîne de caractère dans un jeux de caractère
– En indique la position
• Syntaxe
• INSTR (nom de colonne, ‘jeux de caractère’ [position de départ
[,occurrence]]);
• LTRIM
– Élimine les caractères situés à gauche de la chaîne
• Syntaxe
• LTRIM (chaîne de caractère [,jeux de caractères’])
• RTRIM
– Élimine les caractères à droite de la chaîne
• Syntaxe
• RTRIM (chaîne de caractères (,’jeux de caractères])
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 70
FONCTIONS de CARACTERESFONCTIONS de CARACTERES
• LENGHT
– Donne la longueur d’une chaîne
• Syntaxe
• LENGHT (chaîne de caractères)
• NVL
– Récupère les valeurs nulles d’une colonne pour les
remplacer par une expression donnée
• Syntaxe
• NVL (‘valeur’,’substitution’)
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 71
FONCTIONS de CARACTERESFONCTIONS de CARACTERES
• LPAD
– Ajout de caractères ou d’espace à gauche de la chaîne
• Syntaxe
• LPAD (jeux de caractères)
• RPAD
– Ajout de caractères ou d’espace à droite de la chaîne
• Syntaxe
• RPAD (jeux de caractère)
• ASCII
– Retourne la représentation (code) ASCII du caractère situé le plus à
gauche de la chaîne
• Syntaxe
• ASCII (jeux de caractères)
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 72
FONCTIONS MATHEMATIQUESFONCTIONS MATHEMATIQUES
• Syntaxe
– FONCTION (expression)
• FONCTIONS :
– ABS
• Valeur absolue
– ROUND
• Arrondi
– SQRT
• Racine carré
– SIGN
• Valeur signée
– POWER
• À la puissance …
– CEIL
• Valeur plafond
– FLOOR
• Valeur planché
– EXP
• Exponentielle
– SIN
• Sinus
– COS
• Cosinus
– TAN
• Tangente
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 73
FONCTIONS DE CONVERSIONFONCTIONS DE CONVERSION
• Conversion d’un type en au autre type de données
– Caractère en Numérique
– Numérique en Caractère
– Caractère en Date
– Date en Caractère
• Conversion Nombre en Chaîne de Caractères
– STR ( float_expression [ , length [ , decimal ] ] )
– TO_CHAR
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 74
DATE et HEUREDATE et HEURE
• DATE valeur littérale de Date
• TIME valeur littérale d’heure
• TIMESTAMP valeur littérale de date et
d’heure
• Date en cours ou Date Système GETDATE
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 75
DATE et HEUREDATE et HEURE
• Fuseaux horaires
– AST,ADT
– CST,CDT
– GMT
– HST,HDT
– MST,MDT
– PST,PDT
• Comparaison de DATE
– Opérateur OVERLAP(s)
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 76
DATE et HEUREDATE et HEURE
• Image de date
– Composée d’élément de mise en forme
– Exemple
• yy année
• dy jour de l’année
• dw jour de la semaine
• mm mois
• hh heure
• mi minute
• ss seconde
• Sur ORACLE
– DAY le nom du jour de la semaine
– MONTH le mois
– yyyy l’année
– HH l’heure
– MI minute de l’heure
– SS seconde de la minute
– DATENAME > conversion en chaîne de caractère
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 77
JOINTURE de TABLEsJOINTURE de TABLEs
Sélection de données dans plusieurs TABLEs
• Jointure jointure combine deux ou plusieurs tables
pour en extraire une ou plusieurs données
• Types de jointures
– Jointure d’égalité
– Jointure naturel(le)
– Jointure de non-égalité
– Jointure externe
– Jointure réflexive
– Jointure croisée
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 78
JOINTURE d’ EGALITEJOINTURE d’ EGALITE
• Sert à joindre deux tables à l’aide d’une
colonne commune
– Exemple: Primary Key
• noms
– EQUIJOIN
– INNER JOIN
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 79
QUALIFICATIONQUALIFICATION
du nom d’une colonnedu nom d’une colonne
• Pour Qualifier le nom d’une colonne dans une
requête, il faut faire précéder le nom de la colonne
par le nom de la table propriétaire
• Utilisation de la notation OBJET
– Compatible avec la modélisation UMLmodélisation UML et les outils de
modélisation
nom-table.nom-colonne
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 80
JOINTURE NATURELLEJOINTURE NATURELLE
• Permet d’élimer les valeurs dupliquées dans
les colonnes jointes (par la jointure)
• nom
– NATURAL JOINT
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 81
ALIAS de TABLEALIAS de TABLE
• Renomage d’une Table dans une instruction SQL
(lien d’une table sur elle même, portant un autre nom)
• Il s’agit d’un changement temporaire, le nom réel
de la table dans la Base de Donnée ne change pas.
• Utilisé dans le cas de
– Jointure de non égalité
– Jointure externe
– Jointure réflexive
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 82
JOINTURE de NON EGALITEJOINTURE de NON EGALITE
• Jointure de deux tables, à partir de
valeur(s) d’une colonne différente, de la
valeur de la colonne spécifiée de l’autre
table
• non
– NON-EQUOJOINT
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 83
JOINTURE EXTERNEJOINTURE EXTERNE
• Retourne toutes les lignes d’une Table, même si
elles ne possèdent pas de correspondance dans
la Table jointe (par la jointure)
• exemple
FROM TableA, TableB [,TableC]
where TableA.Nom-Colonne[(+)]=
TableB.Nom-Colonne[(+)]
[AND TableA.Nom-Colonne[(+)]=
TableD.Nom-Colonne[(+)]
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 84
JOINTURE REFLEXIVEJOINTURE REFLEXIVE
• Joindre une Table à elle même, comme s’il
y avait deux tables
• Cela implique l’utilisation d’un ALIAS
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 85
JOINTURE CROISSEEJOINTURE CROISSEE
• C’est un Produit CartésienProduit Cartésien
• Sélection des Données d’une ou de plusieurs
Tables
• Le Résultat renvoie toutes les lignes possibles
issues de toutes les Tables sélectionnées
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 86
JOINTURE METHODOLOGIEJOINTURE METHODOLOGIE
• Vérifiez l’existence d’une colonne ayant la capacité à être
‘jointe’ facilement
• Pouvoir utiliser une Table ayant des Champs communs à une
ou plusieurs Tables
– Définir qui sera la Table principale
– Définir qui sera ou seront la(les) Table cliente(s)
• Modéliser (UML), les Objets, les relations, instanciation,
hiérachisation, séquencement,
• Bien spécifier les attentes les décliner en Pseudo-Code
• Puis transcrire le pseudo-code en langage SQL
• Tester par requêteur
• Insertion au programme, qui sera testé sur données de test
[résultat et performance]
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 87
OPERATEURS ENSEMBLISTESOPERATEURS ENSEMBLISTES
• Utilisation d’opérateur ensembliste
– UNION
• Combine le résultat de deux instructions select
– UNION ALL
• Combine les résultats de deux instructions select, y compris les lignes
dupliquées
– INTERSECT
• Combine deux instructions select et retourne les lignes de la première
instruction identique à la seconde
– EXCEPT
• Combine les lignes de deux instructions et retourne les lignes de la première
instruction non retournée par la seconde
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 88
Les INDEXsLes INDEXs
• Un IndexIndex est un ensemble de PointeurPointeur vers les
données d’une table
• L’Index est stocké séparément de la table, pour
la quelle il a été créé
• La création, la modification, la suppression
d’un index n’affecte pas les données
• Objectif: Améliorer les performances de laAméliorer les performances de la
recherche des donnéesrecherche des données
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 89
CREATION d’un INDEXCREATION d’un INDEX
CREATE INDEX ON TABLE
Types d’index
– Index sur colonne unique
CREAT INDEX nom-index
ON nom-table (nom-colonne)
– Index unique
CREAT UNIQUE INDEX nom-index
ON nom-table (nom-colonne)
• Optimisation des performances
• Garantir l’intégrité des données
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 90
CREATION d’un INDEXCREATION d’un INDEX
Types d’index (suite)
– Index composé
• Indexe plusieurs colonne d’une table
CREATE INDEX nom-inde
ON nom-table (colone1, colonne2)
• Utilisé pour des colonnes souvent sollicitées par une
ou des clauses where
– Index explicite
• Créer par le serveur de base de données lors de la
création d’un objet
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 91
INDEXATIONINDEXATION
• Pour, lorsque, en fonction :
– De tables de grandes tailles
– Sollicitation d’objets par clause <where, …>
– Des Relations ou liens entre objets (utilisation du
modèle objet UML)
– Table(s) sollicitée par des traitements fréquents et/ou
lourds
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 92
Éviter l’IndexationÉviter l’Indexation
• Pour ou sur :
– Des colonnes vides
– Des colonnes ayant une proportion importantes de
valeur nulle
– Des colonnes dont les valeurs sont souvent modifiées
– Des colonnes utilisées comme conditions d’une
requête ou de valeurs similaires ou peu différentes
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 93
Une Base de Données mal IndexéeUne Base de Données mal Indexée
verra ses performances baisséesverra ses performances baissées
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 94
SUPPRESSION DES INDEXsSUPPRESSION DES INDEXs
• On supprime les Indexs pour améliorer les
performances
• Un Index supprimé, pourra être recréé.
DROP INDEX nom-de-l-index
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 95
OPTIMISATION des PERFORMANCESOPTIMISATION des PERFORMANCES
• Comprend
– Optimisation de la Base de Données
– Optimisation du Code
– Optimisation des données
– Optimisation du Moteur de Base de Donnée
– Optimisation des services utilisés par le SGBDR et l’application
– Optimisation du ou des Serveurs supports
– Optimisation du traffic / Transfert de données (réseaux supports [internes , externes]
– Optimisation, adaptation, implémentation des règles de sécurité dès le pseudo-code
– …
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 96
OPTIMISATION des PERFORMANCESOPTIMISATION des PERFORMANCES
• Optimisation de la Base de données
– Optimisation des Modèles
– Classe, Objets, Logique, Physique
– Indexation
– Allocation mémoire
– Surveillance utilisation
– Disque
– Processeur (principal, secondaire(s))
– Input / Output
– Tuning de base et Tuning Système en CohérenceCohérence
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 97
OPTIMISATION des PERFORMANCESOPTIMISATION des PERFORMANCES
• Optimisation du Code
– Règles de codage décrites dans le Plan d’Assurance Qualité Logiciel
– Structuration du Code
– Utilisation d’un Pseudo-Code
– Implémentation des règles de sécurité dès le pseudo code
– Ordonnancement du code en tenant compte des Relations entre
Objets
– Prendre en compte l’ordre des tables dans la succession des requêtes
– Position des conditions de jointures, dans les requêtes
– Dans une jointure:
• Aller de la plus petite table à la plus grande
• Faire en sorte que l’optimiseur SQL évalue en premier la condition la plus
restrictive
– Éviter le balayage de table complète
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 98
LISIBILITE du CODELISIBILITE du CODE
• Code documenté
• Utilisation du Pseudo code
• Code structuré
– En lien avec les opération sur les objets (modèle objet UML)
• Débuter une nouvelle ligne à chaque clause d’instruction
• Utiliser des espaces, pour marquer l’indentation sur l’argument
d’une clause de requête
• Être cohérent avec le Plan d’Assurance Qualité Logiciel,
– Règles d’écriture
– Règles de nomage
– Structure de code en cohérence avec la modélisation (objet)
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 99
LISIBILITE du CODELISIBILITE du CODE
• Utiliser les ALIAS de Table, lorsque plusieurs tables sont référées dans une
instruction
• Utiliser les commentaires en amont de vos requêtes, pas dans vos requêtes
• Commencer une nouvelle ligne pour chaque nom de colonne déclarée dans un
SELECT
• Commencer une nouvelle ligne pour chaque nom de table déclaré dans
FROM
• Commencer une nouvelle ligne pour chaque condition de la clause where
• Dans une clause FROM, il est préférable de commencer par les plus petites
Tables
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 100
INDEXATIONINDEXATION
• Les colonnes
– Clé primaire
– Clé extérieure ou Clé étrangère
– De jointure
– En condition de requête
– Avec un nombre important de valeur unique
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 101
AMELIORATIONAMELIORATION
• Préférer l’utilisation de l’opérateur LIKE
• Éviter
– OR préférer IN
– la clause HAVING
– Les opérations de tri lourdes
– Les opérations de tri imbriquées
• Utiliser les Procédures StockéesProcédures Stockées
– Procédures SQL compilées stockées dans la base
• Ou leur équivalent en langage objet
• Désactiver les Index(s) lors des chargements par lots
• Utiliser l’outil de suivi et d’optimisation (un de base est fourni)
– SQL serveur
– ORACLE
– MySQL
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 102
Le SCHEMALe SCHEMA
• Création d’un Schéma
CREATE SCHEMA
• Syntaxe
CREAT SCHEMA [nom-schema] [id-utilisateur]
[path nom-schema] [,nom-schema]
[List-element-schema]
• Suppression d’un Schéma
DROP SCHEMA nom-schema { }
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 103
SECURITE de la BASE deSECURITE de la BASE de
DONNEEDONNEE
• La Politique de Sécurité est explicitée dans le Plan Sécurité du SystèmePlan Sécurité du Système
d’Informationd’Information,
Ici seront plus spécifiquement utilisé les règles sur les objets métiers et les
processus intégrés
• Politique de Défense et de Prévention contre les tentatives
– d’intrusion
– de copie
– de perturbation de l’intégrité des donnée ou de leurs règles de gestion
• Les niveaux de Sécurité font appel à la gestion des :
– Utilisateurs
– Schémas
– Objets
– Fichiers d’arrière plan
– Processus internes et liens avec le Dictionnaire des Données de la Base
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 104
PRIVILEGESPRIVILEGES
Droits d’ Usage des DonnéesDroits d’ Usage des Données
• La sécurité fait appelle à des privilèges
– Niveaux d’Autorisation
• Privilèges Systèmes
• Privilèges et droits sur Objets
• Privilèges et droits sur les Processus
• Le contrôle opérationnel des privilèges se fait par des
rôlesrôles
• Les rôles pertinents sont induits par les rôlesrôles des acteursacteurs
issus de la modélisation UML (Acteurs / Objets / Processus)
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 105
VUES et SYNONYMESVUES et SYNONYMES
• Vues
– Table virtuelle
– Table constituée sous la forme d’une requête prédéfinie,
stockée dans la base de donnée
– Une table consomme de l’espace physique; la Vue étant
l’image, ne consomme que l’espace nécessaire à sa définition,
elle est stockée en mémoire.
– Elle est crée à partir d’une ou de plusieurs tables
– On peut aussi créer une table à partir d’une vue
• Synonymes
– Un autre nom pour
– Une table
– Une vue
• Public ou privé
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 106
DICTIONNAIRE DES DONNEESDICTIONNAIRE DES DONNEES
DATA DICTIONARY LANGAGEDATA DICTIONARY LANGAGE
• Il existe pour toute Base de données applicatives
• Il est définit dans le Plan d’Assurance Qualité
• Composé
– D’un groupe qui contient les définitions
– Des autres objets de la Base de Données
– De la Structure de la Base de Données
• Création
– à partir de la modélisation UML (objet)
– Puis consolidation lors de la création de la Base de Données (par le
modèle réel)
– Soit par le DBA après la création de la Base
• Pour la mise en œuvre d’une documentation inexistante
• Pour faire du Reverse engineering
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 107
DICTIONNAIRE DES DONNEESDICTIONNAIRE DES DONNEES
DATA DICTIONARY LANGAGEDATA DICTIONARY LANGAGE
• Informations contenues
– Les utilisateurs
– Les segments et leur stockage
– Les contrainte
– Les vues
– Les objets
– Les tables
– Les colonnes
– Les macros
– Les requêtes
– Les relations
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 108
DICTIONNAIRE DES DONNEESDICTIONNAIRE DES DONNEES
DATA DICTIONARY LANGAGEDATA DICTIONARY LANGAGE
• Informations contenues
– Les vues
– Les synonymes
– Les clés primaires
– Les clés étrangères
– Les triggers
– Les messages d’erreur du serveur
– L’appartenance des tables
– Les rôles
– Les droits d’accès
– Les sessions
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 109
FONCTIONSFONCTIONS
SUPPLEMENTAIRESSUPPLEMENTAIRES
• Les Curseurs
– Zone mémoire de la base de données dans laquelle est stockée les
dernières instructions SQL – valeur en cours – ligne en cours
• Syntaxe
DECLARE CURSOR nom-curseur
IS { }
– Ouvrir le curseur
OPEN nom-curseur
– Récupérer le curseur
FETCH nom-curseur
– Fermer le curseur
CLOSE nom-curseur
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 110
FONCTIONSFONCTIONS
SUPPLEMENTAIRESSUPPLEMENTAIRES
• Procédure Stockée
– Fonction
– Sous fonction
– Sous programme
– Instruction SQL
– Indique à la Base de donnée ce qu’elle doit faire ( type
instruction SQL), et aussi COMMENT elle doit le faire
(procédurale)
– Stockée dans la base de donnée
• Syntaxe
– CREATE PROCEDURE nom-procédure
© Jean-Antoine
Moreau
copying and
reproduction
prohibited
Contact http://jeanantoine.moreau.free.fr JAM 111
FONCTIONSFONCTIONS
SUPPLEMENTAIRESSUPPLEMENTAIRES
• Trigger
– Procédure SQL compilée dans la Base de données
– Forme de Procédure Stockée, qui s’exécute lorsqu’une
action spécifique est prédéfinie, s’accomplit sur un
objet, une table.
– Utilisé pour vérifier l’intégrité des données
• Syntaxe
– CREAT TRIGGER

SQL Jean-Antoine Moreau

  • 1.
    SQLSQL Base de DonnéesBasede Données NormalisationNormalisation Gestion de l’InformationGestion de l’Information Cours de gestion des données : Jean-Antoine MoreauCours de gestion des données : Jean-Antoine Moreau
  • 2.
  • 3.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 3 L ‘ INFORMATIONL ‘ INFORMATION • La GestionLa Gestion • Le TraitementLe Traitement  Des informationsDes informations – OrganisationsOrganisations – EntreprisesEntreprises – InternetInternet  Système de ManagementSystème de Management des Donnéesdes Données  Système d’Information(s)Système d’Information(s)  Système de Gestion desSystème de Gestion des DonnéesDonnées
  • 4.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 4 Le Langage SQLLe Langage SQL  Langage de Requête  Permet de Communiquer avec la Base de Données  Répond à la Norme SQL ANSI  Compatible avec la modélisation Objet  Adaptable au traitement des gros volumes de données
  • 5.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 5 Base de DonnéesBase de Données • Collection de Données • Mécanisme organisé pour stocker des informations et permettre à un utilisateur de les retrouver et de les utiliser efficacement. • Exemples de Base de Données Annuaires Listes
  • 6.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 6 Base de Données RelationnelleBase de Données Relationnelle • Divisée en Unité Logiques – Classe – Objet – Table • Ces Unités sont reliées par des Relations • Ces Relations sont – Décomposables – Utilisables •Processus •SéquencesPar / En
  • 7.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 7 ArchitectureArchitecture • Le SQL est compatible avec les Architectures : – 2 Tier Client / Serveur – 3 Tier Client léger – Utiliser par les Architectures supports aux : • ERP • Application Internet et Intranet • Big Data • Compatible avec les Langages de Programmation – Interprétés – Compilés – Objet
  • 8.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 8 ConnexionConnexion Pour Initialiser une Session SQL: • Connexion à la Base de Données – Instruction CONNECT • Option nom de l’utilisateur • Le serveur de base de donnée (où la base se trouve) • Le nom de la base de donnée • Déconnexion – DISCONNECT
  • 9.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 9 AdministrationAdministration • Administration du Serveur de Base de Donnée • Administration de la Base de Données • Administration des Données
  • 10.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 10 CLASSES / OBJETSCLASSES / OBJETS InstanciationInstanciation • Table – Divisée en plusieurs entités appelé champs • Champ – Catégorise les informations spécifiques contenues dans la table – À un champ est rattaché un type de donnée et un seul • Enregistrement – Ligne de données (enregistrement complet) • Colonne – Entête verticale appartenant à une table • Clé Primaire (Primary Key)  Règle d’Unicité – Colonne qui fait que chaque ligne de la Table est unique
  • 11.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 11 STRUCTURE de DONNEESSTRUCTURE de DONNEES • Les Données stockées dans une base de données – Deviennent des Informations • Évolutives • Traçables • Ouvertes ou Confidentielles • Types de Données – Chaînes de caractères – Chaînes numériques – Valeurs date et heure – Booléennes – …
  • 12.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 12 STRUCTURE de DONNEESSTRUCTURE de DONNEES • Les Données stockées dans une base de données – Deviennent des Informations • Évolutives • Traçables • Ouvertes ou Confidentielles • Types de Données – Chaînes de caractères – Chaînes numériques – Valeurs date et heure – Booléennes – … OpérationsOpérations sur ces donnéessur ces données
  • 13.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 13 VALEURS de DONNEESVALEURS de DONNEES • Chaînes – De caractères • Longueur fixe • Longueur variable – Littéral • Numériques – Booléen – Décimal – Entier – Flottant – Réel – Double Précision
  • 14.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 14 Les OBJETSLes OBJETS • Unicité logique <entité> de la base de données • Référence et stocke les données • Interaction entre Objets • Forme élémentaire de stockage de données structurées dans la base
  • 15.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 15 Le SCHEMALe SCHEMA • Collection structurée d’Objet • Le Schéma est Propriété d’un utilisateur • Une Base de Données peut contenir – Un Schéma – Plusieurs Schémas  Deux Tables de même noms sont différentes, si elles appartiennent à des Schémas Différents
  • 16.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 16 CREATION d’une TABLECREATION d’une TABLE • Nom de la TABLE • Les Données contenues • Clé primaire Règle d’unicité • Nom des colonnes • Longueur de chaque colonne • Taille initiale de la TABLE – Fournie par l’instanciation des diagrammes UML de Classe et d’Objet
  • 17.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 17 Exemples de CommandesExemples de Commandes • Création – CREAT TABLE <nom-de-la-table> • Clause STORAGE pour taille initiale • Modification – ALTER TABLE <nom-de-la-table> • Suppression – DROP
  • 18.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 18 CONTRAINTES d’INTEGRITECONTRAINTES d’INTEGRITE • Concept d’Intégrité Référentielle • Contrainte Clé Primaire <primary Key> Unicité – Identification d’une ligne de donnée unique – Identification par colonne – Assignation dès la création de la Table – Contrainte explicite – Si la clé primaire est définie par la combinaison de plusieurs colonnes, la composition est définie lors de la création
  • 19.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 19 CONTRAINTES d’INTEGRITECONTRAINTES d’INTEGRITE • Contrainte clé extérieure • Clé étrangère <foreign Key> – « Colonne » place dans un tableau < enfant > pour référencer la clé primaire (notion d’héritage au sens objet) – L’Intégrité Référentielle entre les Tables se fait entre autre par les mécanismes • clé étrangère / clé étrangère • clé étrangère clé primaire
  • 20.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 20 CONTRAINTES d’INTEGRITECONTRAINTES d’INTEGRITE • Contrainte NOT NULL – Les valeurs NULL interdites • Contrainte de vérifications – CHK (check) – Exemple : • Présence obligatoire d’une donnée dans un champ • Valeur minimum admise • Suppression des contraintes – Exemple Commande • ALTER TABLE option DROP CONSTAINT
  • 21.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 21 NORMALISATION DE LANORMALISATION DE LA BASE DE DONNEEBASE DE DONNEE • Processus qui a pour objectif de réduire la redondance des données, dans la base de données • Sont normalisés – Les noms – Les noms des OBJETs – Les noms des TABLEs – Les RELATIONS – Le noms des RELATIONS – Etc.
  • 22.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 22 NORMALISATION DE LANORMALISATION DE LA BASE DE DONNEEBASE DE DONNEE • Le Processus de Conception est Normalisé • Le Processus de Modélisation est Normalisé  Ils sont déclinés dans le Plan d’AssurancePlan d’Assurance QualitéQualité • Processus – Modèle de Package – Modèle de Classe – Modèle Objet – Modèle Logique – Modèle Physique
  • 23.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 23 NORMALISATION DE LANORMALISATION DE LA BASE DE DONNEEBASE DE DONNEE • Le Processus de Conception est Normalisé • Le Processus de Modélisation est Normalisé  Ils sont déclinés dans le Plan d’AssurancePlan d’Assurance QualitéQualité • Processus – Modèle de Package – Modèle de Classe – Modèle Objet – Modèle Logique – Modèle Physique •Méga •Rational •Objecteering • … OUTILSOUTILS
  • 24.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 24 IMPACT de laIMPACT de la NORMALISATIONNORMALISATION • Le Modèle logique: – Consiste à ordonnancer les données en groupes alogiques, organisés, structurés, standardisés; pour en permettre l’évolutivité, l’adaptabilité, la performance. – Le Modèle logique est issu du Modèle Objet
  • 25.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 25 QUESTIONNEMENTQUESTIONNEMENT • Comment l’utilisateur accèdera à la Base de Données ? • Comment l’utilisateur accèdera-t-il aux Données ? • Comment l’utilisateur mettra-t-il à jour les Données ? • De quels Droits devra-t-il bénéficier ? • Comment faut-il regrouper les données dans la Base ? • Quelles sont les Données les plus fréquemment sollicitées ? • Quelles sont les Relations les plus fréquemment sollicitées ? • Quelles sont les relations entre données ? • Quelles sont les Règles à mettre en œuvre pour assurer la précision des Données ? • Quelles sont les Règles à mettre en œuvre pour assurer la traçabilité des Données ?
  • 26.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 26 Les FORMES NORMALESLes FORMES NORMALES • Niveaux de Normalisation d’une Base de Données • Incluses dans le processus de Modélisation UML • Définit dans le Plan d’Assurance Qualité
  • 27.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 27 Les FORMES NORMALESLes FORMES NORMALES • Première Forme Normale : – Division de la Base de Données en Unités logiques, nommées TABLEs – Assignation de la Clé Primaire – Décomposition des données en unités logiques
  • 28.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 28 Les FORMES NORMALESLes FORMES NORMALES • Seconde Forme Normale – Données dépendant partiellement de la Clé Primaire • Et mise en place dans une Autre Table – Éclatement de TABLE en Sous Unités
  • 29.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 29 Les FORMES NORMALESLes FORMES NORMALES • Troisième Forme Normale – Suppression des données qui ne dépendent pas de la Clé Primaire, dans la TABLE
  • 30.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 30 NORMALISATIONNORMALISATION • Permet donc : – L’Organisation globale de la Base de Donnée – La Limitation des Données redondantes – La Cohérence des Données de la Base – La Souplesse de Conception d’évolution – Traçabilité • Des évolutions de Données • Des évolutions des Règles de GestionRègles de Gestion – Un Meilleur contrôle de la sécurité – L’ Efficience de la Documentation – L’Intégrité des Données – Le Maintient en Conditions Opérationnelles
  • 31.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 31 INTEGRITEINTEGRITE REFERENTIELLEREFERENTIELLE • Les valeurs des colonnes dépendent d’une valeur donnée d’une autre TABLE • Contrôle des valeurs par restriction du périmètre par plage de valeur en lien avec: • Méta-Données (type métier) • Fonctionnel • Technique • Sur échange • Contrôle par l’utilisation des Clés Primaires et étrangères • Relations / Présence du couple : • Clé primaire – clé étrangère
  • 32.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 32 DENORMALISATIONDENORMALISATION • Dénormaliser une Base de Données – Réduire / Détruire les niveaux de regroupement – Risque d’augmentation de Données redondantes – Baisse de Performance – Moins d’adaptabilité – Perte de la traçabilité – Facteurs de Maintient en Conditions Opérationnelles sont alors réduits
  • 33.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 33 OPERATION SUR LESOPERATION SUR LES DONNEESDONNEES • DATA MANIPULTATION LANGUAGE Sélection d’une Donnée • le <select> Insérer un Donnée • l’ <insert> Mettre à jour un Donnée • l’<update> Suppression d’une Donnée • le <delete>
  • 34.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 34 INSERTION d’une DONNEEINSERTION d’une DONNEE dans une TABLEdans une TABLE • Pseudo-code :  INSERER dans <nom-table> la valeur (…..) dans le champ … de la colonne.. • Instruction / Code | Principe : INSERT INTO <nom-table> VALUES (…..) INSERT INTO table-client (id-client, id-société, num-commande) VALUES (….,’….’,’…..’)
  • 35.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 35 SELECTIONNER DESSELECTIONNER DES DONNEES d’une TABLEDONNEES d’une TABLE • Pseudo-code :  SELECTIONNER les valeurs PROVENANT de la TABLE • Instruction / Code | Principe : SELECT * from client Sélectionne toutes les lignes des colonnes de la TABLE client Donnera la liste du contenu, type listing / tableau SELECT from client id-client VALUE ( … )
  • 36.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 36 MISE A JOUR Des DONNEESMISE A JOUR Des DONNEES EXISTANTESEXISTANTES • Mettre à jour une ou plusieurs TABLEs (Objets): – Table – Colonne – Ligne – Champ • Vérifier la cohérence des Données • Instruction / Code | Principe : update no-de-la-table set nom-colonne = ‘value’ [where condition]; update nom-table set colonne1 = ‘value’ [colonne2=‘value’,] [colonne3=‘value’] [where condition]; Modèle logique de données Une seule colonne Plusieurs colonnes de plusieurs champs
  • 37.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 37 TRANSACTIONTRANSACTION • Unité de Tâche qui se déroule dans une Base de Données • Unité • Séquence • Déroulement – Manuel – Automatique • Propagation de changement(s) dans la Base de Données •Instruction •Groupe d’Instructions Un Ordre Logique
  • 38.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 38 TRANSACTIONTRANSACTION PROPRIETEs et CONTRAINTEsPROPRIETEs et CONTRAINTEs • Toute TRANSACTION possède – Un DEBUT et une FIN • Une TRANSACTION peut être – enregistrée ou annulée  Si une TRANSACTION échoue – ALORS • Aucune portion de la TRANSACTION n’est enregistrée dans la Base de Données  FIN de SI
  • 39.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 39 CONTRÔLECONTRÔLE TRANSACTIONNELTRANSACTIONNEL • Capacité à gérer plusieurs transaction pouvant se produire dans le SGBDR • Les transactions prennent en compte les commandes, leur combinatoire, leurs options: – INSERT – UPDATE – DELETE • Lorsque la transaction s’exécute, s’achève avec succès, la table cible n’est pas immédiatement modifiée, même si le résultat le laisse à penser. – Il existe des commandes de transaction, qui finalise la transaction en: – Enregistrement les modifications – En annulant les modifications
  • 40.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 40 COMMANDES de CONTROLECOMMANDES de CONTROLE TRANSACTIONNELTRANSACTIONNEL • COMMIT – Pour la VALIDATION • ROLLBACK – Pour l’ANNULATION • SAVEPOINT – Pour l’annulation partielle
  • 41.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 41 EXEMPLESEXEMPLES • COMIT delete from produit where prix <5€ COMIT; Les produits dont le prix est inférieur à 5€ sont supprimer <COMIT> - validation
  • 42.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 42 • ROLLBACK update produit set prix = 350.00 where id-produit = ‘1245’ La ligne est mise à jour ROLLBACK; Annulation de la mise à jour
  • 43.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 43 • SAVEPOINT < label> point-instantané de la transaction à partir duquel, on pourra annuler la transaction • Utilisation avec ROLLBACK donne – ROLLBACK TO nom-du-savepoint
  • 44.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 44 • Création d’un SAVEPOINT SAVEPOINT étiquette1 delete from produit where id=‘1234’ SAVEPOINT étiquette2 delete from produit where id=‘12589’ SAVEPOINT étiquette3 delete from produit where id=‘1367910’ ROLLBACK to étiquette2
  • 45.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 45 • RELEASE SAVEPOINT – suppression d’un SAVEPOINT existant
  • 46.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 46 INITIALISATION d’uneINITIALISATION d’une TRANSACTIONTRANSACTION • SET TRANSACTION SET TRANSACTION READ WRITE; SET TRANSACTION READ ONLY;
  • 47.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 47 LES REQUETESLES REQUETES • Demande adressée à la Base de Données • Extraction des Données dans un format, exploitable en fonction des Besoins d’utilisation • INSTRUCTION SELECT – Fait partie du Data Query Language – Cette INSTRUCTION n’est pas autonome, elle est accompagnée : • D’une CLAUSE obligatoire • D’une CLAUSE optionnelle • Mots clés de cette instruction • SELECT • FROM • WHERE • ORDER BY
  • 48.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 48 SYNTAXESSYNTAXES • Avec clause Obligatoire SELECT [ALL | * DISTINCT COLONE1, COLONE2] FROM TABLE1 [,TABLE2]; FROM : clause obligatoire
  • 49.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 49 SYNTAXESSYNTAXES • Avec clause Optionnelle SELECT [ALL | * DISTINCT COLONE1, COLONE2] FROM TABLE1 [,TABLE2]; WHERE [CONDITION1 | EXPRESSION1] [AND CONDITION1 | CONDITION2 ] FROM : clause obligatoire WHERE: clause optionnelle
  • 50.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 50 SYNTAXESSYNTAXES • Tri des Résultats SELECT [ALL | * DISTINCT COLONE1, COLONE2] FROM TABLE1 [,TABLE2]; WHERE [CONDITION1 | EXPRESSION1] [AND CONDITION1 | CONDITION2 ] ORDER BY COLONNE1 | INTEGER [ASC @ DESC] FROM : clause obligatoire WHERE: clause optionnelle ORDER BY: clause optionnelle de tri • Comptage des Enregistrements contenus dans une table – SELECT COUNT(x) FROM nom-table
  • 51.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 51 SYNTAXESSYNTAXES • Sélection des Données sur un autre Schéma SELECT Identifiant FROM nom-schéma.nom-table Formulation – syntaxe de type objet
  • 52.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 52 Le CASSE SENSITIVELe CASSE SENSITIVE • Les commandes SQL ne sont pas « casse sensitive » • Elles peuvent donc être saisies en majuscules ou en minuscules • Il est souhaitable de définir des règles d’écriture : • Des requêtes • Des programmes Dans le Plan d’Assurance Qualité Logiciel de chaque projetIncéréesIncérées
  • 53.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 53 Les OPERATEURSLes OPERATEURS • Un Opérateur – Permet de spécifier des conditions dans une instruction SQL – Sert de conjonction à plusieurs conditions • Types d’Opérateur – Opérateur de comparaison – Opérateur logique – Opérateur utilisé pour nier des conditions – Opérateur arithmétique
  • 54.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 54 OPERATEUR deOPERATEUR de COMPARAISONCOMPARAISON • Utilisé pour Tester – L’ Égalité • Signe = – La non-égalité • signe < > – La valeur inférieure • signe < – La valeur supérieures • signe >
  • 55.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 55 ExempleExemple • Pseudo – Code SELECTIONNER dans la TABLE produit le produit dont le prix est inférieur à 10 • Syntaxe SELECT FROM produit WHERE price < 10
  • 56.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 56 OPERATEURS LOGIQUESOPERATEURS LOGIQUES • Ils sont utilisés comme des mots clés pour effectuer des comparaisons • Liste d’opérateur logiques – IS Null (comparaison à la valeur nulle) – BEETWEEN (entre deux valeurs, dans une plage) – IN (une valeur dans une liste de valeur) – LIKE (comme – similitude) – EXISTS (existence – Présence dans une liste) – UNIQUE (permet de vérifier l’unicité) – ALL (compare la valeur à toutes valeurs) – ANY (compare la valeur à toutes les valeurs applicable d’une liste)
  • 57.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 57 OPERATEURS CONJONCTIFSOPERATEURS CONJONCTIFS • AND – le ET logique – Utilisation de plusieurs conditions en clause where • OR – Le ou logique – Combinaison de plusieurs conditions dans une clause where
  • 58.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 58 NEGATIONNEGATION • Opérateur NOT – Cet opérateur inverse la signification de l’opérateur logique – Ce qui donne • Différent de … • NOT BETWEEN • NOT IN • NOT LIKE • IS NOT NULL • NOT EXISTS • NOT UNIQUE
  • 59.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 59 OPERATEURSOPERATEURS ARITHMETIQUESARITHMETIQUES • Effectuent des Opérations mathématiques avec le SQL – Adition + – Soustraction _ – Multiplication * ou x – Division /
  • 60.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 60 ExempleExemple • Pseudo – code Sélectionner dans la Table Produit Les produits pour lesquels le (prix - la remise fidélité) + nouvelle augmentation < 10 • Syntaxe SELECT (prix-remise)+ nouvelle augmentation < 10 FROM Produit
  • 61.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 61 FONCTION d’AGREGATIONFONCTION d’AGREGATION • Fourni des informations de synthèse – Comptage – Totaux – Moyennes – … • Quelques fonctions d’agrégation – COUNT – SUM – MAX – MIN – AVG
  • 62.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 62 Description de FonctionDescription de Fonction d’Agrégationd’Agrégation • COUNT – Compte les lignes ou les colonnes ne contenant pas de valeur NULL • SUM – Retourne le total des valeurs d’une colonne sur un groupe de ligne • AVG – Calcul la moyenne d’un groupe de ligne • MAX – Retourne la valeur maximale des champs d’une colonne pour un groupe de lignes • MIN – Retourne la valeur minimale d’une colonne dans un groupe de ligne
  • 63.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 63 TRIER et REGROUPERTRIER et REGROUPER des DONNEESdes DONNEES • Regroupement de Données • Processus consistant à combiner dans un ordre logique des lignes de données, dont une ou plusieurs colonnes prennent une valeur identique • Clauses – GROUP BY • Regroupement de données – ORDER BY • Tri des données
  • 64.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 64 Fonctions de RegroupementFonctions de Regroupement • Incluent les fonctions – AVG – MAX – MIN – SUM – COUNT • Clauses de complémentarité • Clause HAVING – Indique à la clause GROUP BY le groupe à inclure dans le résultat – Place des conditions sur des groupes générés par la clauses GROUP BY
  • 65.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 65 AGENCEMENT des DONNEESAGENCEMENT des DONNEES • Fonctions de caractères ANSI • Représentent des chaînes de caractères dans les formats du langage SQL • Fonctions – Concaténation – TRANLATE – REPLACE – UPPER – LOWER
  • 66.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 66 Explicitation des FonctionsExplicitation des Fonctions • Concaténation || ORACLE Ou suivant les SGBDR SQL server + MySQL • Exemple (Pseudo code) sélectionner dans la Table des clients le nom et le prénom pour définir le non complet par une concaténation SELECT nom || ‘,’ || prénom nom_complet FROM CLIENT
  • 67.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 67 FONCTIONS suiteFONCTIONS suite • TRANSLATE – Recherche une chaîne de caractères – Vérifié la présence d’un caractère spécifique – Recherche la chaîne de substitution correspondante – Remplace le caractère • Syntaxe • TRANSLATE (jeu de caractère, valeur1, valeur2) • REPLACE – Remplace chaque occurrence d’un ou de plusieurs caractères par un ou des caractères spécifiques • Syntaxe • REPLACE (‘valeur1’,’valeur2’,[NULL] ‘valeur’]
  • 68.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 68 FONCTIONS suiteFONCTIONS suite • UPPER – Convertit les minuscules d’une chaîne de caractère en majuscules • Syntaxe • UPPER (chaîne de caractère) • LOWER – Convertit en minuscule, les majuscules d’une chaîne de caractères • Syntaxe • LOWER (chaîne de caractère) • SUBSTR – Extraction d’une partie de chaîne de caractère (sous chaîne de caractère) d’une chaîne de caractère • Syntaxe • SUBSTR (nom de colonne, position de départ, longueur)
  • 69.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 69 FONCTIONS suiteFONCTIONS suite • INSTR – Cherche une chaîne de caractère dans un jeux de caractère – En indique la position • Syntaxe • INSTR (nom de colonne, ‘jeux de caractère’ [position de départ [,occurrence]]); • LTRIM – Élimine les caractères situés à gauche de la chaîne • Syntaxe • LTRIM (chaîne de caractère [,jeux de caractères’]) • RTRIM – Élimine les caractères à droite de la chaîne • Syntaxe • RTRIM (chaîne de caractères (,’jeux de caractères])
  • 70.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 70 FONCTIONS de CARACTERESFONCTIONS de CARACTERES • LENGHT – Donne la longueur d’une chaîne • Syntaxe • LENGHT (chaîne de caractères) • NVL – Récupère les valeurs nulles d’une colonne pour les remplacer par une expression donnée • Syntaxe • NVL (‘valeur’,’substitution’)
  • 71.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 71 FONCTIONS de CARACTERESFONCTIONS de CARACTERES • LPAD – Ajout de caractères ou d’espace à gauche de la chaîne • Syntaxe • LPAD (jeux de caractères) • RPAD – Ajout de caractères ou d’espace à droite de la chaîne • Syntaxe • RPAD (jeux de caractère) • ASCII – Retourne la représentation (code) ASCII du caractère situé le plus à gauche de la chaîne • Syntaxe • ASCII (jeux de caractères)
  • 72.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 72 FONCTIONS MATHEMATIQUESFONCTIONS MATHEMATIQUES • Syntaxe – FONCTION (expression) • FONCTIONS : – ABS • Valeur absolue – ROUND • Arrondi – SQRT • Racine carré – SIGN • Valeur signée – POWER • À la puissance … – CEIL • Valeur plafond – FLOOR • Valeur planché – EXP • Exponentielle – SIN • Sinus – COS • Cosinus – TAN • Tangente
  • 73.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 73 FONCTIONS DE CONVERSIONFONCTIONS DE CONVERSION • Conversion d’un type en au autre type de données – Caractère en Numérique – Numérique en Caractère – Caractère en Date – Date en Caractère • Conversion Nombre en Chaîne de Caractères – STR ( float_expression [ , length [ , decimal ] ] ) – TO_CHAR
  • 74.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 74 DATE et HEUREDATE et HEURE • DATE valeur littérale de Date • TIME valeur littérale d’heure • TIMESTAMP valeur littérale de date et d’heure • Date en cours ou Date Système GETDATE
  • 75.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 75 DATE et HEUREDATE et HEURE • Fuseaux horaires – AST,ADT – CST,CDT – GMT – HST,HDT – MST,MDT – PST,PDT • Comparaison de DATE – Opérateur OVERLAP(s)
  • 76.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 76 DATE et HEUREDATE et HEURE • Image de date – Composée d’élément de mise en forme – Exemple • yy année • dy jour de l’année • dw jour de la semaine • mm mois • hh heure • mi minute • ss seconde • Sur ORACLE – DAY le nom du jour de la semaine – MONTH le mois – yyyy l’année – HH l’heure – MI minute de l’heure – SS seconde de la minute – DATENAME > conversion en chaîne de caractère
  • 77.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 77 JOINTURE de TABLEsJOINTURE de TABLEs Sélection de données dans plusieurs TABLEs • Jointure jointure combine deux ou plusieurs tables pour en extraire une ou plusieurs données • Types de jointures – Jointure d’égalité – Jointure naturel(le) – Jointure de non-égalité – Jointure externe – Jointure réflexive – Jointure croisée
  • 78.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 78 JOINTURE d’ EGALITEJOINTURE d’ EGALITE • Sert à joindre deux tables à l’aide d’une colonne commune – Exemple: Primary Key • noms – EQUIJOIN – INNER JOIN
  • 79.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 79 QUALIFICATIONQUALIFICATION du nom d’une colonnedu nom d’une colonne • Pour Qualifier le nom d’une colonne dans une requête, il faut faire précéder le nom de la colonne par le nom de la table propriétaire • Utilisation de la notation OBJET – Compatible avec la modélisation UMLmodélisation UML et les outils de modélisation nom-table.nom-colonne
  • 80.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 80 JOINTURE NATURELLEJOINTURE NATURELLE • Permet d’élimer les valeurs dupliquées dans les colonnes jointes (par la jointure) • nom – NATURAL JOINT
  • 81.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 81 ALIAS de TABLEALIAS de TABLE • Renomage d’une Table dans une instruction SQL (lien d’une table sur elle même, portant un autre nom) • Il s’agit d’un changement temporaire, le nom réel de la table dans la Base de Donnée ne change pas. • Utilisé dans le cas de – Jointure de non égalité – Jointure externe – Jointure réflexive
  • 82.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 82 JOINTURE de NON EGALITEJOINTURE de NON EGALITE • Jointure de deux tables, à partir de valeur(s) d’une colonne différente, de la valeur de la colonne spécifiée de l’autre table • non – NON-EQUOJOINT
  • 83.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 83 JOINTURE EXTERNEJOINTURE EXTERNE • Retourne toutes les lignes d’une Table, même si elles ne possèdent pas de correspondance dans la Table jointe (par la jointure) • exemple FROM TableA, TableB [,TableC] where TableA.Nom-Colonne[(+)]= TableB.Nom-Colonne[(+)] [AND TableA.Nom-Colonne[(+)]= TableD.Nom-Colonne[(+)]
  • 84.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 84 JOINTURE REFLEXIVEJOINTURE REFLEXIVE • Joindre une Table à elle même, comme s’il y avait deux tables • Cela implique l’utilisation d’un ALIAS
  • 85.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 85 JOINTURE CROISSEEJOINTURE CROISSEE • C’est un Produit CartésienProduit Cartésien • Sélection des Données d’une ou de plusieurs Tables • Le Résultat renvoie toutes les lignes possibles issues de toutes les Tables sélectionnées
  • 86.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 86 JOINTURE METHODOLOGIEJOINTURE METHODOLOGIE • Vérifiez l’existence d’une colonne ayant la capacité à être ‘jointe’ facilement • Pouvoir utiliser une Table ayant des Champs communs à une ou plusieurs Tables – Définir qui sera la Table principale – Définir qui sera ou seront la(les) Table cliente(s) • Modéliser (UML), les Objets, les relations, instanciation, hiérachisation, séquencement, • Bien spécifier les attentes les décliner en Pseudo-Code • Puis transcrire le pseudo-code en langage SQL • Tester par requêteur • Insertion au programme, qui sera testé sur données de test [résultat et performance]
  • 87.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 87 OPERATEURS ENSEMBLISTESOPERATEURS ENSEMBLISTES • Utilisation d’opérateur ensembliste – UNION • Combine le résultat de deux instructions select – UNION ALL • Combine les résultats de deux instructions select, y compris les lignes dupliquées – INTERSECT • Combine deux instructions select et retourne les lignes de la première instruction identique à la seconde – EXCEPT • Combine les lignes de deux instructions et retourne les lignes de la première instruction non retournée par la seconde
  • 88.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 88 Les INDEXsLes INDEXs • Un IndexIndex est un ensemble de PointeurPointeur vers les données d’une table • L’Index est stocké séparément de la table, pour la quelle il a été créé • La création, la modification, la suppression d’un index n’affecte pas les données • Objectif: Améliorer les performances de laAméliorer les performances de la recherche des donnéesrecherche des données
  • 89.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 89 CREATION d’un INDEXCREATION d’un INDEX CREATE INDEX ON TABLE Types d’index – Index sur colonne unique CREAT INDEX nom-index ON nom-table (nom-colonne) – Index unique CREAT UNIQUE INDEX nom-index ON nom-table (nom-colonne) • Optimisation des performances • Garantir l’intégrité des données
  • 90.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 90 CREATION d’un INDEXCREATION d’un INDEX Types d’index (suite) – Index composé • Indexe plusieurs colonne d’une table CREATE INDEX nom-inde ON nom-table (colone1, colonne2) • Utilisé pour des colonnes souvent sollicitées par une ou des clauses where – Index explicite • Créer par le serveur de base de données lors de la création d’un objet
  • 91.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 91 INDEXATIONINDEXATION • Pour, lorsque, en fonction : – De tables de grandes tailles – Sollicitation d’objets par clause <where, …> – Des Relations ou liens entre objets (utilisation du modèle objet UML) – Table(s) sollicitée par des traitements fréquents et/ou lourds
  • 92.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 92 Éviter l’IndexationÉviter l’Indexation • Pour ou sur : – Des colonnes vides – Des colonnes ayant une proportion importantes de valeur nulle – Des colonnes dont les valeurs sont souvent modifiées – Des colonnes utilisées comme conditions d’une requête ou de valeurs similaires ou peu différentes
  • 93.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 93 Une Base de Données mal IndexéeUne Base de Données mal Indexée verra ses performances baisséesverra ses performances baissées
  • 94.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 94 SUPPRESSION DES INDEXsSUPPRESSION DES INDEXs • On supprime les Indexs pour améliorer les performances • Un Index supprimé, pourra être recréé. DROP INDEX nom-de-l-index
  • 95.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 95 OPTIMISATION des PERFORMANCESOPTIMISATION des PERFORMANCES • Comprend – Optimisation de la Base de Données – Optimisation du Code – Optimisation des données – Optimisation du Moteur de Base de Donnée – Optimisation des services utilisés par le SGBDR et l’application – Optimisation du ou des Serveurs supports – Optimisation du traffic / Transfert de données (réseaux supports [internes , externes] – Optimisation, adaptation, implémentation des règles de sécurité dès le pseudo-code – …
  • 96.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 96 OPTIMISATION des PERFORMANCESOPTIMISATION des PERFORMANCES • Optimisation de la Base de données – Optimisation des Modèles – Classe, Objets, Logique, Physique – Indexation – Allocation mémoire – Surveillance utilisation – Disque – Processeur (principal, secondaire(s)) – Input / Output – Tuning de base et Tuning Système en CohérenceCohérence
  • 97.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 97 OPTIMISATION des PERFORMANCESOPTIMISATION des PERFORMANCES • Optimisation du Code – Règles de codage décrites dans le Plan d’Assurance Qualité Logiciel – Structuration du Code – Utilisation d’un Pseudo-Code – Implémentation des règles de sécurité dès le pseudo code – Ordonnancement du code en tenant compte des Relations entre Objets – Prendre en compte l’ordre des tables dans la succession des requêtes – Position des conditions de jointures, dans les requêtes – Dans une jointure: • Aller de la plus petite table à la plus grande • Faire en sorte que l’optimiseur SQL évalue en premier la condition la plus restrictive – Éviter le balayage de table complète
  • 98.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 98 LISIBILITE du CODELISIBILITE du CODE • Code documenté • Utilisation du Pseudo code • Code structuré – En lien avec les opération sur les objets (modèle objet UML) • Débuter une nouvelle ligne à chaque clause d’instruction • Utiliser des espaces, pour marquer l’indentation sur l’argument d’une clause de requête • Être cohérent avec le Plan d’Assurance Qualité Logiciel, – Règles d’écriture – Règles de nomage – Structure de code en cohérence avec la modélisation (objet)
  • 99.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 99 LISIBILITE du CODELISIBILITE du CODE • Utiliser les ALIAS de Table, lorsque plusieurs tables sont référées dans une instruction • Utiliser les commentaires en amont de vos requêtes, pas dans vos requêtes • Commencer une nouvelle ligne pour chaque nom de colonne déclarée dans un SELECT • Commencer une nouvelle ligne pour chaque nom de table déclaré dans FROM • Commencer une nouvelle ligne pour chaque condition de la clause where • Dans une clause FROM, il est préférable de commencer par les plus petites Tables
  • 100.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 100 INDEXATIONINDEXATION • Les colonnes – Clé primaire – Clé extérieure ou Clé étrangère – De jointure – En condition de requête – Avec un nombre important de valeur unique
  • 101.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 101 AMELIORATIONAMELIORATION • Préférer l’utilisation de l’opérateur LIKE • Éviter – OR préférer IN – la clause HAVING – Les opérations de tri lourdes – Les opérations de tri imbriquées • Utiliser les Procédures StockéesProcédures Stockées – Procédures SQL compilées stockées dans la base • Ou leur équivalent en langage objet • Désactiver les Index(s) lors des chargements par lots • Utiliser l’outil de suivi et d’optimisation (un de base est fourni) – SQL serveur – ORACLE – MySQL
  • 102.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 102 Le SCHEMALe SCHEMA • Création d’un Schéma CREATE SCHEMA • Syntaxe CREAT SCHEMA [nom-schema] [id-utilisateur] [path nom-schema] [,nom-schema] [List-element-schema] • Suppression d’un Schéma DROP SCHEMA nom-schema { }
  • 103.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 103 SECURITE de la BASE deSECURITE de la BASE de DONNEEDONNEE • La Politique de Sécurité est explicitée dans le Plan Sécurité du SystèmePlan Sécurité du Système d’Informationd’Information, Ici seront plus spécifiquement utilisé les règles sur les objets métiers et les processus intégrés • Politique de Défense et de Prévention contre les tentatives – d’intrusion – de copie – de perturbation de l’intégrité des donnée ou de leurs règles de gestion • Les niveaux de Sécurité font appel à la gestion des : – Utilisateurs – Schémas – Objets – Fichiers d’arrière plan – Processus internes et liens avec le Dictionnaire des Données de la Base
  • 104.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 104 PRIVILEGESPRIVILEGES Droits d’ Usage des DonnéesDroits d’ Usage des Données • La sécurité fait appelle à des privilèges – Niveaux d’Autorisation • Privilèges Systèmes • Privilèges et droits sur Objets • Privilèges et droits sur les Processus • Le contrôle opérationnel des privilèges se fait par des rôlesrôles • Les rôles pertinents sont induits par les rôlesrôles des acteursacteurs issus de la modélisation UML (Acteurs / Objets / Processus)
  • 105.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 105 VUES et SYNONYMESVUES et SYNONYMES • Vues – Table virtuelle – Table constituée sous la forme d’une requête prédéfinie, stockée dans la base de donnée – Une table consomme de l’espace physique; la Vue étant l’image, ne consomme que l’espace nécessaire à sa définition, elle est stockée en mémoire. – Elle est crée à partir d’une ou de plusieurs tables – On peut aussi créer une table à partir d’une vue • Synonymes – Un autre nom pour – Une table – Une vue • Public ou privé
  • 106.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 106 DICTIONNAIRE DES DONNEESDICTIONNAIRE DES DONNEES DATA DICTIONARY LANGAGEDATA DICTIONARY LANGAGE • Il existe pour toute Base de données applicatives • Il est définit dans le Plan d’Assurance Qualité • Composé – D’un groupe qui contient les définitions – Des autres objets de la Base de Données – De la Structure de la Base de Données • Création – à partir de la modélisation UML (objet) – Puis consolidation lors de la création de la Base de Données (par le modèle réel) – Soit par le DBA après la création de la Base • Pour la mise en œuvre d’une documentation inexistante • Pour faire du Reverse engineering
  • 107.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 107 DICTIONNAIRE DES DONNEESDICTIONNAIRE DES DONNEES DATA DICTIONARY LANGAGEDATA DICTIONARY LANGAGE • Informations contenues – Les utilisateurs – Les segments et leur stockage – Les contrainte – Les vues – Les objets – Les tables – Les colonnes – Les macros – Les requêtes – Les relations
  • 108.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 108 DICTIONNAIRE DES DONNEESDICTIONNAIRE DES DONNEES DATA DICTIONARY LANGAGEDATA DICTIONARY LANGAGE • Informations contenues – Les vues – Les synonymes – Les clés primaires – Les clés étrangères – Les triggers – Les messages d’erreur du serveur – L’appartenance des tables – Les rôles – Les droits d’accès – Les sessions
  • 109.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 109 FONCTIONSFONCTIONS SUPPLEMENTAIRESSUPPLEMENTAIRES • Les Curseurs – Zone mémoire de la base de données dans laquelle est stockée les dernières instructions SQL – valeur en cours – ligne en cours • Syntaxe DECLARE CURSOR nom-curseur IS { } – Ouvrir le curseur OPEN nom-curseur – Récupérer le curseur FETCH nom-curseur – Fermer le curseur CLOSE nom-curseur
  • 110.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 110 FONCTIONSFONCTIONS SUPPLEMENTAIRESSUPPLEMENTAIRES • Procédure Stockée – Fonction – Sous fonction – Sous programme – Instruction SQL – Indique à la Base de donnée ce qu’elle doit faire ( type instruction SQL), et aussi COMMENT elle doit le faire (procédurale) – Stockée dans la base de donnée • Syntaxe – CREATE PROCEDURE nom-procédure
  • 111.
    © Jean-Antoine Moreau copying and reproduction prohibited Contacthttp://jeanantoine.moreau.free.fr JAM 111 FONCTIONSFONCTIONS SUPPLEMENTAIRESSUPPLEMENTAIRES • Trigger – Procédure SQL compilée dans la Base de données – Forme de Procédure Stockée, qui s’exécute lorsqu’une action spécifique est prédéfinie, s’accomplit sur un objet, une table. – Utilisé pour vérifier l’intégrité des données • Syntaxe – CREAT TRIGGER