Conception et création d'une base ORACLE
Concevoir une base de données
- En quoi consiste la démarche de conception d'une base de données ?
Vocabulaire et concepts (modèles relationnel et conceptuel)
A l'origine le MCD (Modèle Conceptuel de Données)
Règles de passage du MCD au MLD (Modèle Logique de Données)
Exemples de modèle de base mal conçue
La base de données pour le développeur SQL
- Du MLD au MPD (Modèle Physique de Données)
Que deviennent les relations entre les données (contraintes d'intégrité) ?
Principes des clés primaires et étrangères (primary key, foreign key).
Des données d'applications différentes dans une même base (schémas) ?
Disposer d'informations sur la base (dictionnaire de données)
TRAVAUX PRATIQUES
L'environnement utilisateur
- SQL*Plus et SQL DeveloperQue signifie le « Plus » dans SQL*Plus ?
Se connecter à une base Oracle
Quelques problèmes classiques (tnsnames.ora, base arrêtée, listener, ...)
Utiliser efficacement le buffer des commandes
Premières commandes SQL
Mise en forme des résultats
Stocker les résultats dans un fichier (spool)
Faire des scripts interactifs (accept, define)
Prise en main de SQL Developer
Retrouver des informations du dictionnaire de données (tables, contraintes, etc.)
TRAVAUX PRATIQUES
Le langage SQL pour gérer le contenu d'une base
Créer le schéma d'une base de données
- Création des tables (create table)
Modification du schéma des tables (alter, drop)
Protéger la cohérence des données avec les contraintes d'intégrité (primary key, foreign key, uniq)
Les contraintes de valeurs (not null, check)
Règles de nommage des contraintes d'intégrité
Retrouver les informations dans le dictionnaire de données
Mettre à jour les données
- Insérer des données (insert)
Modifier leurs valeurs (update)
Supprimer des données (delete)
Fusionner les données entre deux tables sans écrasement (merge)
TRAVAUX PRATIQUES
Le langage SQL pour extraire les données
Premières requêtes SQL pour interroger la base
- Structure générale (select ... from .... where ...)
Vocabulaire associé (sélections, projection, restrictions)
La gestion de la valeur NULL
Trier les données
Utiliser des alias pour simplifier les requêtes
Obtenir les données de plusieurs tables (jointure)
Utiliser des fonctions de groupe (count, sum, avg, ...)
Regrouper les données (group by) et les filtrer (having)
TRAVAUX PRATIQUES
Requêtes ensemblistes
Les opérateurs ensemblistes (union, intersection, différence).
Les requêtes imbriquées (opérateurs IN, EXISTS).
TRAVAUX PRATIQUES
Les fonctions
- Manipulations de chaînes de caractères (upper, lower, substr, instr, replace, ...)
Fonctions numériques (abs, round, trunc, ceil, ...)
Gestion du temps (next_day, add_mont, months_between, ...)
Fonctions de conversion (to_char, to_date, cast, ...)
TRAVAUX PRATIQUES
Sensibilisation aux performances des requêtes.
- Plusieurs façons d'écrire une même requête
Comment Oracle analyse une requête ?
Présentation des possibilités pour modifier les performances (statistiques, règles, ...)
Principes des index
Cas des clusters.
Les objets de schéma
Elements du quotidien autres que les tables
- Séquences et auto-incrementation (12c)
Intérêt des vues (view)
Exploiter les vues du dictionnaires de données
Présentation du PL/SQL (procédures, fonctions, packages et triggers).
TRAVAUX PRATIQUES
La notion de schéma, et la gestion des droits.
- Regrouper les données dans un schéma.
Qu'est-ce qu'un utilisateur pour Oracle ?
La gestion des autorisations (grant, revoke)
TRAVAUX PRATIQUES
La notion de transaction
- Qu'est-ce qu'une transaction ?
Les « garanties » d'ORACLE par rapport aux données
Les instructions COMMIT, ROLLBACK et SAVEPOINT.
La gestion des accès concurrents (verrou)
Exemples de blocages en SQL
Exemple de transaction trop volumineuse (rollback segment)