constitution d'une BDD Oracle
control file : où ce situe les fichiers (redondé sur plusieur disques)
data file : fichier de données (tables, vues, index, ...)
redo log file : log d'actions (commandes executées). permet de retrouver un etat stable après un crash par ex.
parameter file : paramètre de la base au démarrage
password file : user/password
archives : permet de sauvegarder les redo log file
tablespaces : contient les donnéés (espace de stockage logique ~= RAID0)
séparé en segment, extends, block (os block)
SGA : system global area
PGA : personal global area
(
(
fichiers obligatoires : control file (comment intégrer les données de A à Z) / input data files (données)
fichiers facultatifs : log file (log de l'opération) / bad files (ligne pas passé pour des raisons techniques) / discard files (ligne que l'on a choisi de ne pas intégrer pour des raions de règles)
direct path : charger des block de données (plus rapide, table non requetable, gros volumes)
conventionel : chargement pas insert (plus lent, commit obligatoire, génère du redo)
analyse de rapport amène à des décision stratégiques
les BDD relationelles ne sont pas faites pour générer des rapport suffisament important pour être utilisé rapidement
rendre la donnée visualisable, via des rapports
fournir de l'info à d'autre outils BI (ERP, ...)
ne produit pas de donnée (ne génère pas de nouvelles vente par exemple), contrairement à un ERP
"on transforme l'existant pour le rendre plus lisible"
Donnée interessante si fiable (unitée monétaire, ...)
olap : analyse de gros volumes de données (data warehouse), accès rapide aux données (peu de jointure)
oltp : modification fréquente (relationelle), pas de redondance
datamart : découpage logique des données
ad-hoc : rapport customisable par l'utilisateur (cube)
Cheminement logique :
Extraire données brutes (STA ou DPA) > ODS > load DWH (datawarehouse)
Data Preparation Area (ou Staging Area) : environnement virtuelle utilisé avant l'insertion dans le DW (base opérationelle)
contient uniquement les données brutes. L'ODS se chargera de nettoyer les données pour les rendres cohérentes.
Molap : cube (utile pour de la grosse volumétrie mais avec un niveau de détail faible)
Rolap : relationnel
Model en étoile : table de fait centrale, lié à des tables de dimensions (1 jointure max, requêtes rapides)
Model flocon : extension du model étoile, permet d'éviter la redondance (moins d'espace de stockage, plus de jointure donc moins performant)
Shared dimension : table de dimensions reliée à plusieurs table de fait (Dimension Temps : table préconstruite avec les année, jours, 1/4année, mois paire, ...)
table d'agréga : étape en plus dans l'ETL. requête sur une table contenant déjà des champs calculés
alimentée le soir pour être utilisé le matin par exemple
les besoins
les limites techniques
le model de base de donnée
spécification de l'utilisateur
= bien comprendre le besoin pour la mise en place d'un DW (pour le projet BI)
Queries Optimizer : composant d'oracle. Permet d'indiquer à Oracle quels données on veut, mais pas comment le faire
Rule Based Optimizer : deprecated
Cost Based Optimizer (CBO) : nouveau (plus efficace)
utilise des statistiques du DW pour générer la meilleur requête.
compute statistics
calcul les stat sur la table entière
estimate statistics
extrapole les statistiques à partir de X lignes
SQL hints : utilisé pour bypass l'optimiser, si on sait que les statistiques sont pas bonnes
(transport tablespace : méthode plus rapide pour export/import oracle)
External table : métadonnées dans la database, mais données sur le file système
multistage : plusieurs tables intermédiaires lors du chargement des données dans le DW (plus sécure)
pipeline : insertion directe dans le DW, une fois les données transformées (plus rapide)
Unconditional Insert : insert un jeu de données dans plusieurs table (données dupliquées)
Insert First : ordone le jeu de données (données non dupliquées)
Explain plan : utilisé pour comprendre l'execution d'une commande
explain plan for <query>
select * from table (dbms.xplan.display)
star transformation : réécrire une requette pour profiter des index bitmap (jointure sur booléens)
partitionnement : structurer la table (en fonction des champs) pour accélérer les performance des requêttes
en général, on partitionne sur les mois et les années
range : entre deux valeurs
list: liste explicite de valeurs
hash: partitionnement intéligent par oracle
Parallelisme utile sur de gros volumes de données.
DOP : degree of parallelism
(un parallel sur un SELECT implique d'utiliser SQL Hint)
parallélisme possible sur les Data Definition Language (create, alter, drop, ...)
PDML (insert, update, delete, merge) : nécéssite un commit/rollback pour utiliser l'objet à nouveau
vue matérialisé : correspond à peut près à une table d'agréga (vue contenant les données précalculées)
rafraichisement automatique
la vue peut être utilisé à la volée, pour répondre à des requêtes faisant des calculs déjà stockée dedans
(oracle peut réécrire les requêtes utilisateurs pour utilisée la vue si besoin)