Contenu connexe Similaire à SQL Jean-Antoine Moreau (20) Plus de Jean-Antoine Moreau (20) SQL Jean-Antoine Moreau1. 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
3. © 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
4. © 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
5. © 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
6. © 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
7. © 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
8. © 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
10. © 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
11. © 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
– …
12. © 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
15. © 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
16. © 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
18. © 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
19. © 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
20. © 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
21. © 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.
22. © 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
23. © 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
24. © 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
25. © 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 ?
30. © 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
31. © 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
32. © 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
33. © 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>
34. © 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 (….,’….’,’…..’)
35. © 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 ( … )
36. © 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
37. © 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
38. © 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
39. © 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
44. © 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
47. © 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
49. © 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
50. © 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
52. © 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
53. © 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
56. © 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)
60. © 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
62. © 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
63. © 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
64. © 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
66. © 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
67. © 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’]
68. © 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)
69. © 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])
70. © 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’)
71. © 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)
72. © 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
73. © 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
76. © 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
77. © 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
79. © 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
81. © 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
83. © 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[(+)]
85. © 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
86. © 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]
87. © 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
88. © 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
89. © 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
90. © 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
91. © 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
92. © 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
95. © 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
– …
96. © 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
97. © 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
98. © 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)
99. © 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
101. © 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
102. © 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 { }
103. © 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
104. © 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)
105. © 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é
106. © 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
107. © 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
108. © 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
109. © 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
110. © 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
111. © 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