La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

7 Conception dans un contexte relationnel

Présentations similaires


Présentation au sujet: "7 Conception dans un contexte relationnel"— Transcription de la présentation:

1 7 Conception dans un contexte relationnel
Pourquoi ? Quoi ? Comment ? 20/09/2018 © Robert Godin. Tous droits réservés.

2 © Robert Godin. Tous droits réservés.
Architecture Matériel centralisé, 2-tier, 3-tier, réparti, entrepôt de données,... plate-formes (parallélisme) réseau Logiciel couches Interface, Contrôle, Domaine, Persistance, Réseau,… partition par sous-domaine classes d ’implantation/modules Diagrammes de composantes UML répartition des composantes Diagrammes de déploiement UML 20/09/2018 © Robert Godin. Tous droits réservés.

3 Réutilisation de composantes
Interface à l ’utilisateur X-Windows, Windows, SWING... Communication TCP/IP, CORBA, RMI, DCOM, ... Persistance ODBC, JDBC, SGBD,... 20/09/2018 © Robert Godin. Tous droits réservés.

4 Réalisation de la persistance
Constantes du programme d ’application Fichiers (API du SGF) Librairies spécialisées SGBD souplesse, robustesse, intégrité,… approche privilégiée dans ce chapitre SGBD relationnel SQL centralisé 20/09/2018 © Robert Godin. Tous droits réservés.

5 © Robert Godin. Tous droits réservés.
Forces du relationnel Accessibilité large Maturité de la technologie Fondements théoriques solides Standard répandu (SQL) Support solide de l'intégrité Outils de développement 20/09/2018 © Robert Godin. Tous droits réservés.

6 7.1 Conception du schéma relationnel au niveau conceptuel
Schéma relationnel : niveau conceptuel tables colonnes types, domaines, ... contraintes d ’intégrité clés primaires, étrangères, ... Input à la conception modèle conceptuel des données (persistantes) 20/09/2018 © Robert Godin. Tous droits réservés.

7 7.1.1 Première ébauche du schéma : une table par classe
20/09/2018 © Robert Godin. Tous droits réservés.

8 7.1.2 Traduction des attributs
Attribut de la classe -> colonne de la table 20/09/2018 © Robert Godin. Tous droits réservés.

9 7.1.2.1 TRADUCTION DES CONTRAINTES D'IDENTIFICATION (UNIQUE)
Contrainte UNIQUE -> clé candidate relationnelle clé primaire ? 20/09/2018 © Robert Godin. Tous droits réservés.

10 7.1.2.2 TRADUCTION DES TYPES DE DONNÉES
20/09/2018 © Robert Godin. Tous droits réservés.

11 Types de données déclarés
Domaine pas toujours supporté par le dialecte SQL 20/09/2018 © Robert Godin. Tous droits réservés.

12 © Robert Godin. Tous droits réservés.
TYPES ÉNUMÉRÉS Petit domaine invariant création d ’un domaine VARCHAR + CHECK 20/09/2018 © Robert Godin. Tous droits réservés.

13 © Robert Godin. Tous droits réservés.
Création d ’une table Gros domaine ou extensible création d ’une table à part utilisé comme liste de valeurs (LOV Designer) introduction d ’une clé primaire artificielle ? 20/09/2018 © Robert Godin. Tous droits réservés.

14 © Robert Godin. Tous droits réservés.
TYPES COMPLEXES 1. Représentation explicite des attributs du type complexe 20/09/2018 © Robert Godin. Tous droits réservés.

15 2. Création d'une nouvelle table
N.B. Pas de partage de la même adresse ! 20/09/2018 © Robert Godin. Tous droits réservés.

16 © Robert Godin. Tous droits réservés.
QUALIFICATEUR Colonne dans la table du rôle opposé voir 20/09/2018 © Robert Godin. Tous droits réservés.

17 © Robert Godin. Tous droits réservés.
DISCRIMINANT Redondant ? 20/09/2018 © Robert Godin. Tous droits réservés.

18 © Robert Godin. Tous droits réservés.
ATTRIBUT MULTIVALUÉ Table à part clé étrangère + colonne pour l ’attribut Petit tableau de taille fixe n colonnes (valeurs nulles) Encodage invisible au SGBD Oracle8 VARRAY, NESTED TABLE 20/09/2018 © Robert Godin. Tous droits réservés.

19 7.1.2.8 COMPRESSION DES VALEURS DES ATTRIBUTS DE GRANDE TAILLE
Supporté par le SGBD ? Multimédia 20/09/2018 © Robert Godin. Tous droits réservés.

20 © Robert Godin. Tous droits réservés.
CRÉATION DE TABLES SUPPLÉMENTAIRES POUR LES ATTRIBUTS DE CLASSE 20/09/2018 © Robert Godin. Tous droits réservés.

21 7.1.3 Réalisation de l'identité par les clés primaires
20/09/2018 © Robert Godin. Tous droits réservés.

22 7.1.3.1 CRÉATION D'UNE CLÉ PRIMAIRE ARTIFICIELLE
De manière systématique ? Mécanisme de SEQUENCE Oracle 20/09/2018 © Robert Godin. Tous droits réservés.

23 7.1.3.2 UTILISATION D'UN IDENTIFIANT NATUREL COMME CLÉ PRIMAIRE
1. Utilisation d'un identifiant naturel (UNIQUE) Si identifiant naturel trop lourd introduire clé primaire artificielle 20/09/2018 © Robert Godin. Tous droits réservés.

24 2. Utilisation du qualificateur
20/09/2018 © Robert Godin. Tous droits réservés.

25 7.1.3.3 IDENTIFIANT NATUREL POUR UNE SPÉCIALISATION
Éviter de changer de clé primaire dans le contexte d ’une hiérarchie de généralisation Si la table du parent est omise considérer identifiant naturel de la spécialisation 20/09/2018 © Robert Godin. Tous droits réservés.

26 7.1.4 Traduction des associations
20/09/2018 © Robert Godin. Tous droits réservés.

27 7.1.4.1 CAS GÉNÉRAL : TRADUCTION D'UNE ASSOCIATION PAR UNE TABLE
20/09/2018 © Robert Godin. Tous droits réservés.

28 7.1.4.2 TRADUCTION D'UN RÔLE ORDONNÉ POUR UNE ASSOCIATION
20/09/2018 © Robert Godin. Tous droits réservés.

29 © Robert Godin. Tous droits réservés.
CLASSE ASSOCIATIVE 20/09/2018 © Robert Godin. Tous droits réservés.

30 © Robert Godin. Tous droits réservés.
CAS UN À PLUSIEURS 1. Traduction par une table ? 20/09/2018 © Robert Godin. Tous droits réservés.

31 2. Traduction par l'ajout d'une clé étrangère à privilégier
Navigation plus performante 20/09/2018 © Robert Godin. Tous droits réservés.

32 Renommer la clé étrangère au besoin
20/09/2018 © Robert Godin. Tous droits réservés.

33 © Robert Godin. Tous droits réservés.
CAS UN À UN 1. Une clé étrangère (du côté obligatoire) 20/09/2018 © Robert Godin. Tous droits réservés.

34 © Robert Godin. Tous droits réservés.
2. Une nouvelle table 20/09/2018 © Robert Godin. Tous droits réservés.

35 © Robert Godin. Tous droits réservés.
3. Fusion Cas 1-1 obligatoire 20/09/2018 © Robert Godin. Tous droits réservés.

36 © Robert Godin. Tous droits réservés.
CAS DE L'AGRÉGATION Comme une association normale 20/09/2018 © Robert Godin. Tous droits réservés.

37 © Robert Godin. Tous droits réservés.
Composition Cas 1-1 ~ attribut complexe Mode SQL CASCADE Oracle8 VARRAY, NESTED TABLE 20/09/2018 © Robert Godin. Tous droits réservés.

38 7.1.5 Traduction des relations de généralisation/spécialisation
Délégation Fusion Concaténation 20/09/2018 © Robert Godin. Tous droits réservés.

39 © Robert Godin. Tous droits réservés.
DÉLÉGATION 20/09/2018 © Robert Godin. Tous droits réservés.

40 Changement de clé primaire ?
Extraire le téléphone résidence d'un Membre possédant l'idUtilisateur 12345 20/09/2018 © Robert Godin. Tous droits réservés.

41 Traduction de la contrainte {disjointe, complète}
20/09/2018 © Robert Godin. Tous droits réservés.

42 7.1.5.1.1 Cas de la multi-classification et de l'héritage multiple
1. Créer une table de jointure 20/09/2018 © Robert Godin. Tous droits réservés.

43 © Robert Godin. Tous droits réservés.
Alternatives 2. Identité commune sans table de jointure 3. Identité séparée et redondance de données 20/09/2018 © Robert Godin. Tous droits réservés.

44 7.1.5.2 ANALOGIE AVEC UNE ASSOCIATION UN À UN
Clé étrangère dans l ’enfant dans le parent ??? Approche Arc de Designer Fusion vers le parent (approche par fusion) vers l ’enfant (approche par concaténation) Nouvelle table ??? 20/09/2018 © Robert Godin. Tous droits réservés.

45 © Robert Godin. Tous droits réservés.
FUSION 20/09/2018 © Robert Godin. Tous droits réservés.

46 © Robert Godin. Tous droits réservés.
CONCATÉNATION Conserver une table pour le parent ? 20/09/2018 © Robert Godin. Tous droits réservés.

47 Cas d ’une référence au parent
20/09/2018 © Robert Godin. Tous droits réservés.

48 7.1.5.5 TRADUCTION DES GÉNÉRALISATIONS POUR SYLERAT
20/09/2018 © Robert Godin. Tous droits réservés.

49 7.1.6 Traduction des autres contraintes
20/09/2018 © Robert Godin. Tous droits réservés.

50 © Robert Godin. Tous droits réservés.
7.1.7 Niveau de mise en œuvre des contraintes d'intégrité : client ou serveur de BD ? Robustesse Interactivité Performance 20/09/2018 © Robert Godin. Tous droits réservés.

51 7.1.8 Représentation des contraintes d'intégrité en SQL
Voir chap.7, volume I Deux catégories Contrainte d'intégrité statique respectée pour chacun des états de la BD Contrainte d'intégrité dynamique contrainte sur changements d'états 20/09/2018 © Robert Godin. Tous droits réservés.

52 7.1.8.1 CONTRAINTES STATIQUES
Mécanismes déclaratifs (à privilégier) PRIMARY KEY, UNIQUE, NOT NULL, DOMAIN, FOREIGN KEY, CHECK, ASSERTION Procédural TRIGGER (SQL3) plus complexe à coder plus sujet à erreur parfois plus performant parfois inévitables (limite des mécanismes déclaratifs) 20/09/2018 © Robert Godin. Tous droits réservés.

53 Contrainte sur le domaine d'une colonne
20/09/2018 © Robert Godin. Tous droits réservés.

54 Contrainte de clé primaire
20/09/2018 © Robert Godin. Tous droits réservés.

55 Contrainte de clé candidate
20/09/2018 © Robert Godin. Tous droits réservés.

56 Contrainte d'intégrité référentielle
Politique NO ACTION par défaut 20/09/2018 © Robert Godin. Tous droits réservés.

57 Contrainte intra-ligne
20/09/2018 © Robert Godin. Tous droits réservés.

58 © Robert Godin. Tous droits réservés.
Autres cas CHECK complexes non supporté par Oracle ASSERTION TRIGGER 20/09/2018 © Robert Godin. Tous droits réservés.

59 {Un Editeur ne peut exister sans qu'un Livre y fasse référence}
Ne peut être réalisée par TRIGGER seulement ! 20/09/2018 © Robert Godin. Tous droits réservés.

60 Exemple avec ASSERTION
20/09/2018 © Robert Godin. Tous droits réservés.

61 Réalisation avec TRIGGER
20/09/2018 © Robert Godin. Tous droits réservés.

62 © Robert Godin. Tous droits réservés.
20/09/2018 © Robert Godin. Tous droits réservés.

63 Par TRIGGER : forcer le changement de statut
20/09/2018 © Robert Godin. Tous droits réservés.

64 © Robert Godin. Tous droits réservés.
20/09/2018 © Robert Godin. Tous droits réservés.

65 © Robert Godin. Tous droits réservés.
{CatégorieUtilisateur doit être cohérente avec la table d'appartenance} par TRIGGER 20/09/2018 © Robert Godin. Tous droits réservés.

66 {Exclusives et une des deux est nécessaire} par CHECK
Impossible avec TRIGGER non DEFERRABLE 20/09/2018 © Robert Godin. Tous droits réservés.

67 7.1.8.2 CONTRAINTES DYNAMIQUES
Interdit de faire un prêt à un Membre qui possède un retard 20/09/2018 © Robert Godin. Tous droits réservés.

68 © Robert Godin. Tous droits réservés.
{le statut de l'Exemplaire doit être disponible avant qu'un prêt ne soit effectué} 20/09/2018 © Robert Godin. Tous droits réservés.

69 Archivage des prêts lors d'un retour
20/09/2018 © Robert Godin. Tous droits réservés.

70 7.1.9 Exemple de schéma SQL pour SyLeRat
Eviter la circularité des définitions 20/09/2018 © Robert Godin. Tous droits réservés.

71 Utilisation du ALTER TABLE
20/09/2018 © Robert Godin. Tous droits réservés.

72 Combinaison de TRIGGER
Contrôler l'ordre d'exécution Améliorer la performance 20/09/2018 © Robert Godin. Tous droits réservés.

73 © Robert Godin. Tous droits réservés.
Une seule fois ! N.B. Contrôle plus fin avec PL/SQL 20/09/2018 © Robert Godin. Tous droits réservés.

74 7.2 Conception du schéma relationnel au niveau externe
Ce que l ’utilisateur voit Sécurité utilisateurs, rôles, privilèges partir des cas d ’utilisation Tables virtuelles 20/09/2018 © Robert Godin. Tous droits réservés.

75 © Robert Godin. Tous droits réservés.
7.2.1 Tables virtuelles Mécanisme d ’encapsulation isoler l ’utilisateur des détails du schéma indépendance logique des données Mécanisme de sécurité privilège d ’accès à la table virtuelle seulement 20/09/2018 © Robert Godin. Tous droits réservés.

76 Exemple d ’encapsulation
20/09/2018 © Robert Godin. Tous droits réservés.

77 Exemple de mécanisme de sécurité
20/09/2018 © Robert Godin. Tous droits réservés.

78 7.2.2 Réalisation des contraintes de sécurité
Acteur (cas d ’utilisation) : ROLE SQL ROLE RôleAdministrateurSystème accès à tout ROLE RôleCommisAuPrêt tout en lecture (SELECT) Membre, Utilisateur, PrêtEnCours, PrêtArchivé, Exemplaire en écriture (INSERT, DELETE, UPDATE) ROLE RôleMembre ... GRANT ROLE xxx to authorizationID 20/09/2018 © Robert Godin. Tous droits réservés.

79 Utilisation de TRIGGER
Le prêt est interdit 1h00 et 7h00 20/09/2018 © Robert Godin. Tous droits réservés.

80 7.3 Niveau interne du schéma relationnel : conception physique
Input schéma (niveau conceptuel) initial estimations des volumes de données architecture contraintes SGBD contraintes plate-forme charge de travail exigences de performance Output le « meilleur » schéma interne solution approchée 20/09/2018 © Robert Godin. Tous droits réservés.

81 7.3.1 Conception physique dans un contexte centralisé
Organisations primaires Organisations secondaires 20/09/2018 © Robert Godin. Tous droits réservés.

82 Organisation primaire
Fichiers et paramètres d'allocation d'espace quel disque/site architectures RAID taille de bloc taille de fichier fixe allocation dynamique taille des granules 20/09/2018 © Robert Godin. Tous droits réservés.

83 Organisation primaire (suite)
Paramètres d'allocation d'espace aux tables quels fichiers ? taille des granules homogène / hétérogène colonne externe ? (multimédia) chemin vers fichier externe URL 20/09/2018 © Robert Godin. Tous droits réservés.

84 Organisation primaire (suite)
Paramètres du mécanisme d'allocation d'espace aux lignes position dans le fichier allocation sérielle, grappe, index primaire, hachage réservation d ’espace paramètres spécifiques à l ’organisation enregistrements taille fixe/variable chevauchant ou non compression cryptage gestion des identifiants d ’enregistrement (IDE) 20/09/2018 © Robert Godin. Tous droits réservés.

85 Organisations secondaires
Chemins d ’accès supplémentaires référence par IDE Index secondaire Organisation multidimensionnelle Listes SGBD réseau Collections de références SGBD objet 20/09/2018 © Robert Godin. Tous droits réservés.

86 7.3.2 Le processus de conception
Intrants schéma relationnel au niveau conceptuel volume des tables estimation difficile charge de travail partir des cas d ’utilisation Sortie schéma interne « optimal » 20/09/2018 © Robert Godin. Tous droits réservés.

87 Problème d ’optimisation complexe
Enjeux conflictuels lecture/écriture, espace/temps Grande quantité de paramètres Mesures approximatives Evolution des paramètres Solution approchée heuristiques Surveillance et mise au point 20/09/2018 © Robert Godin. Tous droits réservés.

88 7.3.3 Heuristiques de conception
Sous-ensemble des opérations en ordre d ’ importance Négliger le coût des mises à jour Négliger le coût en espace mémoire Méthode gloutonne 20/09/2018 © Robert Godin. Tous droits réservés.

89 © Robert Godin. Tous droits réservés.
Méthode gloutonne Initialiser schémaInterne e.g. organisation sérielle pour chacune des tables Pour chacune des opérationi (en ordre de priorité) trouver meilleur plan P pour opérationi selon schémaInterne chercher amélioration de schémaInterne qui permet de produire un meilleur plan P ’ sans pénaliser opération1 … opérationi-1 si P ’ meilleur que P schémaInterne := schémaInterne amélioré Comment améliorer ? heuristiques d ’amélioration 20/09/2018 © Robert Godin. Tous droits réservés.

90 © Robert Godin. Tous droits réservés.
7.3.4 Sélection par égalité SELECT ... FROM T WHERE X = uneValeurDeX Heuristique Si bonne sélectivité de X volume de données suffisant 1. Hachage sur X 2. Index primaire ou index groupant sur X 3. Index secondaire sur X N.B. Conditions particulières 20/09/2018 © Robert Godin. Tous droits réservés.

91 © Robert Godin. Tous droits réservés.
Exemple glouton >>> sélectivité de ISBN >>> volume de données TempsES (S=H) = 11ms volume assez stable TempsES (S=IP) = 44ms sélection par intervalle non pertinente TempsES (S=IS) = 55ms 20/09/2018 © Robert Godin. Tous droits réservés.

92 © Robert Godin. Tous droits réservés.
Exemple Meilleur plan P avec schéma interne précédent TempsES (BAL) > ms (meilleur cas) sélectivité de code = 1/4000 volume de données suffisant TempsES (S=H) = 143ms conflit avec hachage sur ISBN TempsES (S=IP) = 242ms conflit ... TempsES (S=IS) = 2827ms seule possibilité pour éviter de pénaliser 1 20/09/2018 © Robert Godin. Tous droits réservés.

93 Glouton : temps moyen sous-optimal
Hypothèse sélection par ISBN : 50 fois par jour sélection par code : 30 fois par jour moyenne : (50* *2827)/80 = 1067ms Pénaliser un peu opération 1… moyenne : (50* *143)/80 = 88ms 20/09/2018 © Robert Godin. Tous droits réservés.

94 © Robert Godin. Tous droits réservés.
Meilleur plan P avec schéma interne précédent TempsES (S=IS sur code) = 2827ms TempsES (S=IS sur la clé composée {code, annéeParution} ) = 99ms N.B. Index sur {code, annéeParution} utilisé pour : 20/09/2018 © Robert Godin. Tous droits réservés.

95 Indexer les colonnes individuelles ?
TempsES(S) = 3 509ms 20/09/2018 © Robert Godin. Tous droits réservés.

96 © Robert Godin. Tous droits réservés.
Meilleur plan P avec schéma interne précédent TempsES (BAL) > ms (meilleur cas) TempsES (S=IS sur annéeParution ) = ms 20/09/2018 © Robert Godin. Tous droits réservés.

97 Méthode d ’accès multidimensionnelle
Ex: accès par titre, code, annéeParution et nomEditeur seule ou en combinaison Indexer toutes les combinaisons ? Un index pour chacune des colonnes Organisation multidimensionnelle 20/09/2018 © Robert Godin. Tous droits réservés.

98 Maintenance des contraintes d ’intégrité
Contrainte PRIMARY KEY(ISBN) hachage ou indexage sur ISBN Heuristique hachage ou indexage sur PRIMARY KEY et UNIQUE Oracle : index secondaire automatique 20/09/2018 © Robert Godin. Tous droits réservés.

99 7.3.5 Sélection par intervalle
Index sur titre Préfixe ~ intervalle 20/09/2018 © Robert Godin. Tous droits réservés.

100 7.3.6 Tri du résultat (ORDER BY)
Index primaire sur datePrêt Index secondaire inutile dans ce cas 20/09/2018 © Robert Godin. Tous droits réservés.

101 7.3.7 Calcul du minimum (MIN) et du maximum (MAX)
Index sur noSequence 20/09/2018 © Robert Godin. Tous droits réservés.

102 7.3.8 Calcul d'agrégat (GROUP BY)
Index primaire, grappe ou hachage sur idUtilisateur 20/09/2018 © Robert Godin. Tous droits réservés.

103 © Robert Godin. Tous droits réservés.
7.3.9 Jointure par égalité Jointure sur la clé de jointure X bonne sélectivité de X volume de données suffisant Heuristique 1. Organisation hétérogène sur X grappe, hachage ou index primaire (pré-jointure) 2. Organisation homogène sur X table interne ( boucle imbriquée ) 20/09/2018 © Robert Godin. Tous droits réservés.

104 Organisation hétérogène
TempsES (PJ) = TempsES (BALLivre) + TempsES (BALCatégorie) = ms Pénalise TempsES (BAL pour Catégorie) 20/09/2018 © Robert Godin. Tous droits réservés.

105 Organisation homogène
Livre ou Catégorie ? organisation sur code pour Livre ne pénalise pas TempsES (BAL pour Catégorie) organisation sur code pour Catégorie faible sélectivité de la jointure... 20/09/2018 © Robert Godin. Tous droits réservés.

106 Cas d ’une jointure sélective
Organisation hétérogène à éviter jointure sélective pour Exemplaire 20/09/2018 © Robert Godin. Tous droits réservés.

107 7.3.10 Impact du plan d'exécution de l'optimiseur de requête
Heuristiques précédentes pas toujours pertinentes Cas de requêtes complexes plusieurs sélections, jointures, ... Tenter de prévoir le plan d ’exécution utiliser modèles de coût 20/09/2018 © Robert Godin. Tous droits réservés.

108 © Robert Godin. Tous droits réservés.
Exemple Heuristique : index primaire sur datePrêt ? 20/09/2018 © Robert Godin. Tous droits réservés.

109 © Robert Godin. Tous droits réservés.
Exemple Ne peut faire mieux que BIM avec organisation homogène voir estimations 20/09/2018 © Robert Godin. Tous droits réservés.

110 © Robert Godin. Tous droits réservés.
Schéma 1 (privilégie sélection) Organisation sur code de Livre ??? 20/09/2018 © Robert Godin. Tous droits réservés.

111 © Robert Godin. Tous droits réservés.
Schéma 2 (privilégie jointure) 20/09/2018 © Robert Godin. Tous droits réservés.

112 © Robert Godin. Tous droits réservés.
Schéma 3 (index secondaires seulement) 20/09/2018 © Robert Godin. Tous droits réservés.

113 © Robert Godin. Tous droits réservés.
Cas complexe 20/09/2018 © Robert Godin. Tous droits réservés.

114 © Robert Godin. Tous droits réservés.
20/09/2018 © Robert Godin. Tous droits réservés.

115 © Robert Godin. Tous droits réservés.
Plan générique 20/09/2018 © Robert Godin. Tous droits réservés.

116 © Robert Godin. Tous droits réservés.
Schéma 1 Variante : index secondaires 20/09/2018 © Robert Godin. Tous droits réservés.

117 Plan correspondant au schéma 1
20/09/2018 © Robert Godin. Tous droits réservés.

118 © Robert Godin. Tous droits réservés.
Raffinement Organisation hétérogène 20/09/2018 © Robert Godin. Tous droits réservés.

119 © Robert Godin. Tous droits réservés.
Autre possibilité 20/09/2018 © Robert Godin. Tous droits réservés.

120 7.3.11 Techniques sophistiquées de conception et mise au point
Enjeu important Simulation Banc d ’essais Dernier recours surveillance mise au point 20/09/2018 © Robert Godin. Tous droits réservés.

121 7.3.12 Modification du schéma conceptuel
Dernier recours Introduction de redondance dénormaliser introduction d ’éléments dérivés Favoriser lecture (SELECT) Pénaliser écriture traitements de maintien de la cohérence 20/09/2018 © Robert Godin. Tous droits réservés.

122 7.3.12.1 ALTERNATIVES DE TRADUCTION
Attributs multivalués Associations Généralisations ... 20/09/2018 © Robert Godin. Tous droits réservés.

123 © Robert Godin. Tous droits réservés.
DÉNORMALISATION Inclure Editeur dans Livre Évite jointure coûteuse Maintien de la cohérence nomEditeur  ville dans Livre (modifiée) ajout de TRIGGER 20/09/2018 © Robert Godin. Tous droits réservés.

124 7.3.12.3 INTRODUCTION D'ÉLÉMENTS DÉRIVÉS
Index sur noSequence Nouvelle table PrêtEnCoursGénéral(maxNoSequence) 20/09/2018 © Robert Godin. Tous droits réservés.

125 © Robert Godin. Tous droits réservés.
Oracle et Designer Code Control Sequence de Designer maximum dans une table Code Control blocage du au verrouillage SEQUENCE Oracle CREATE SEQUENCE nomSequence ... INSERT INTO …(nomSequence.NEXTVAL,…) série de valeurs en antémémoire pas de blocage problème de trous dans la SEQUENCE 20/09/2018 © Robert Godin. Tous droits réservés.

126 7.3.12.4 FRAGMENTATION HORIZONTALE
Cas des données archivées table pour données récentes (e.g. PrêtEnCours) table pour historique (e.g. PrêtArchivé) VIEW pour cacher la fragmentation Oracle8 fragmentation transparente de table clause PARTITION fragmentation d ’index 20/09/2018 © Robert Godin. Tous droits réservés.

127 7.3.12.5 FRAGMENTATION VERTICALE
Cas des colonnes volumineuses (LOB) 20/09/2018 © Robert Godin. Tous droits réservés.

128 7.3.12.6 CONCEPTION D'UN ENTREPÔT DE DONNÉES
20/09/2018 © Robert Godin. Tous droits réservés.

129 © Robert Godin. Tous droits réservés.
Caractéristiques Entrepôt de données = redondance contrôlée Requêtes d ’analyse de données (OLAP) complexes imprévisibles grand volume Relational OLAP - ROLAP schéma en étoile Multidimensional OLAP -MOLAP cube de données Table virtuelle matérialisée Parallélisme Organisations multidimensionnelles 20/09/2018 © Robert Godin. Tous droits réservés.

130 Schéma en étoile (star schema)
Table de faits Dimensions : cube de données Tables de dimensions : hiérarchie de granularité 20/09/2018 © Robert Godin. Tous droits réservés.

131 7.4 Paramètres du mécanisme d'allocation d'espace : cas de Oracle
DATABASE fichiers de données (DATAFILE) fichiers de journalisation (REDO LOG) fichiers de contrôle (control file) utilisé par un serveur (instance) 20/09/2018 © Robert Godin. Tous droits réservés.

132 © Robert Godin. Tous droits réservés.
Démarrage du serveur Installation d'un serveur Oracle DATABASE automatiquement créée Démarrage d ’un serveur Oracle ouvre fichier de configuration e.g. C:\orawin\DATABASE\initorcl.ora (si SID = orcl) ouvre fichier de contrôle e.g. C:\orawin\DATABASE\ctl1orcl.ora ouvre fichiers de données/journal la DATABASE est montée (mounted) 20/09/2018 © Robert Godin. Tous droits réservés.

133 © Robert Godin. Tous droits réservés.
TABLESPACE DATABASE = ensemble de TABLESPACE minimum 1 (SYSTEM TABLESPACE) contient le dictionnaire de données peut ajouter des TABLESPACE TABLESPACE espace pour TABLE (et autres objets) = ensemble de DATAFILE 20/09/2018 © Robert Godin. Tous droits réservés.

134 Clauses TABLESPACE et STORAGE
Taille des EXTENTS 20/09/2018 © Robert Godin. Tous droits réservés.

135 © Robert Godin. Tous droits réservés.
EXTENT, SEGMENT EXTENT granule d'allocation d'espace ensemble de blocs contigus dans un DATAFILE du TABLESPACE Clause STORAGE de défaut niveau TABLESPACE niveau DATABASE SEGMENT ensemble de EXTENT d ’un objet (DATA, INDEX, ROLLBACK, TEMPORARY SEGMENTS) 20/09/2018 © Robert Godin. Tous droits réservés.

136 Conception des TABLESPACE
1. Unité de base de prise de copie 2. Sélectivement désactivés (offline) 3. TABLESPACE sur des disques différents réduire congestion 4. EXTENT de même taille ensemble 5. Limiter fragmentation TABLESPACE de défaut associé au authorizationID 20/09/2018 © Robert Godin. Tous droits réservés.

137 Allocation sérielle par défaut
Enregistrements de taille variable adressage structuré par bloc ROWID gestion des débordements par chaînage voir volume 1, chap.2 PCTFREE réservé pour UPDATE PCTUSED seuil pour retour dans FREE LIST INITRANS entrée de transaction MAXTRANS 20/09/2018 © Robert Godin. Tous droits réservés.

138 Organisation par grappe (CLUSTER INDEX ou HASH)
Homogène ou hétérogène Clé de grappe (CLUSTER KEY) INDEX index groupant HASH hachage satique 20/09/2018 © Robert Godin. Tous droits réservés.

139 © Robert Godin. Tous droits réservés.
CLUSTER INDEX Allocation sérielle + index Réservation d ’espace (SIZE) 20/09/2018 © Robert Godin. Tous droits réservés.

140 © Robert Godin. Tous droits réservés.
CLUSTER HASH SIZE taille d ’un paquet HASHKEYS nombre minimal de paquets h(clé) = expression contenant la clé MOD HASHKEYS arrondi à nombre premier HASH IS fonction de hachage 20/09/2018 © Robert Godin. Tous droits réservés.

141 © Robert Godin. Tous droits réservés.
Index BITMAP Version 7.3 et + petit domaine données peu volatiles DATAWHAREHOUSE 20/09/2018 © Robert Godin. Tous droits réservés.

142 © Robert Godin. Tous droits réservés.
Index primaire Version 8 Interdit index secondaire 20/09/2018 © Robert Godin. Tous droits réservés.

143 Partition des tables et des index
Fragmentation horizontale Clé de partition Clause PARTITION BY RANGE (clé) partie->TABLESPACE Partition d ’un index secondaire 20/09/2018 © Robert Godin. Tous droits réservés.

144 © Robert Godin. Tous droits réservés.
Index secondaire Arbre-B+ secondaire variante B* pour division Entrée d ’une feuille clé, ROWID clés non uniques répétées PCTFREE taux de remplissage au chargement PCTUSED non applicable INITRANS, MAXTRANS idem table La table peut contenir des données au moment du CREATE INDEX 20/09/2018 © Robert Godin. Tous droits réservés.

145 © Robert Godin. Tous droits réservés.
Exemple 20/09/2018 © Robert Godin. Tous droits réservés.

146 7.5 Mise au point de la configuration du SGBD : cas de Oracle
Espace RAM Processus SGBD Journal Option parallèle plusieurs instances 20/09/2018 © Robert Godin. Tous droits réservés.

147 © Robert Godin. Tous droits réservés.
Organisation RAM System Global Area espace mémoire partagé Paramètres du fichier de configuration INITxxxx.ORA Database Buffer Cache Redo Log Buffer Dictionary Cache Shared Pool un shared SQL area par opération SQL 20/09/2018 © Robert Godin. Tous droits réservés.

148 © Robert Godin. Tous droits réservés.
Processus du SGBD Processus serveur (dédié-Snnn ou multi-fils) Database Writer (DBWn) Log Writer (LGWR) Checkpoint (CKPT) System Monitor (SMON) Process Monitor (PMON) Archiver (ARCH) Recoverer (RECO) Dispatcher (Dnnn) Lock (LCKn) Job Queue (SNPn) 20/09/2018 © Robert Godin. Tous droits réservés.

149 Configuration du journal
ROLLBACK SEGMENTS portion défaire répartition cyclique dans n SEGMENT problème des longues transactions BEGIN_DISCRETE_TRANSACTION pas de défaire REDO LOG écriture circulaire dans n fichiers archivage (MODE ARCHIVELOG) point de synchronisation duplication (MIRRORED) pour meilleure fiabilité 20/09/2018 © Robert Godin. Tous droits réservés.


Télécharger ppt "7 Conception dans un contexte relationnel"

Présentations similaires


Annonces Google