Administration des Bases de Données Index Fonction Utilité Table

publicité
Index
Administration des Bases de Données
Performance
Louis-Claude Canon
[email protected]
Bureau 429C
I
Principal mécanisme pour améliorer les performances d’une base de
données.
I
Structure de données persistante, stockée dans la base de données.
I
Beaucoup de spécifités propres à chaque implémentation.
Point de vue de l’application ou de l’utilisateur.
Licence 3 informatique – Semestre 6
Louis-Claude Canon
ABD – Performance
Fonction
1
2
3
4
5
6
7
A
’chat’
’chien’
’vache’
’chien’
’chat’
’chat’
’vache’
...
ABD – Performance
2 / 12
Utilité
B
2
5
1
9
2
8
6
...
Louis-Claude Canon
C
...
...
...
...
...
...
...
...
I
Index sur T.A
I
I
I
I
I
I
T.B = 2
T.B < 6
4 < T.B <= 8
I
I
T.A = ’chat’ AND T.B > 5
T.A > ’c’ AND T.B = 1
ABD – Performance
I
Plusieurs ordres de grandeurs.
Cas d’utilisation :
I
Index sur T.(A,B)
I
Index = différence entre une recherche intégrale sur la table et une
localisation immédiate des tuples.
I
Index sur T.B
I
I
I
T.A = ’vache’
T.A = ’chat’
Sélections sur un ensemble d’attributs.
Jointures sur plusieurs tables (création automatique d’index sur les clés
primaires).
Structures de données sous-jacentes.
I
I
Table de hachage.
Arbre équilibré (arbres B et B+).
Louis-Claude Canon
3 / 12
Table de hachage
ABD – Performance
4 / 12
Arbre équilibré
I
Accélère les sélections avec une contrainte d’égalité (T.A = V).
I
Améliore les performances des jointures.
I
Coût constant.
Louis-Claude Canon
Louis-Claude Canon
1 / 12
ABD – Performance
5 / 12
I
Prend en compte l’égalité et les comparaisons (T.A < V et V1 <= T.A
<= V2).
I
Accélère la recherche de minimum (MIN) ou le tri de l’affichage (ORDER
BY).
I
Coût logarithmique.
Louis-Claude Canon
ABD – Performance
6 / 12
Exemples
1
2
Inconvénients
SELECT id FROM É tudiant
WHERE nom = ’ Marie ’ AND moyenne > 15
I
I
I
1
2
Index sur nom (table de hachage ou arbre).
Index sur moyenne (arbre).
Index sur (nom, moyenne).
I
Coût mémoire (marginal).
I
Coût lors de la création de l’index (médium).
I
Coût d’indirection pour accéder aux données (peut dépasser le gain).
I
Coût de maintenance (peut dépasser le gain).
SELECT nom , nomUniv FROM É tudiant , C a n d i d a t u r e
WHERE É tudiant . id = C a n d i d a t u r e . id
I
Index sur Étudiant.id ou Candidature.id.
Louis-Claude Canon
ABD – Performance
Louis-Claude Canon
7 / 12
Choix des index à créer
ABD – Performance
8 / 12
Conception physique assistée
Entrées Base de données (statistiques) et accès.
Sorties Recommandations de création d’index (les avantages
compensent-ils les inconvénients ?).
Le gain dépend de :
I
La taille de la table (et de sa structure).
I
La distribution des données.
I
Le rapport lecture/écriture.
Louis-Claude Canon
ABD – Performance
Optimisateur de requêtes
Identifie le meilleur plan d’exécution avec un coût estimé à partir de :
I
Statistiques de la base de données.
I
Accès en lecture et écriture.
I
Index.
Louis-Claude Canon
9 / 12
Syntaxe SQL
ABD – Performance
10 / 12
Index
CREATE INDEX nomIndex ON T(A) AS
CREATE INDEX nomIndex ON T(A1,A2,...,An) AS
CREATE UNIQUE INDEX nomIndex ON T(A) AS
DROP INDEX nomIndex
I
Principal mécanisme pour améliorer les performances d’une base de
données.
I
Structure de données persistante, stockée dans la base de données.
I
Beaucoup de spécifités propres à chaque implémentation.
Point de vue de l’application ou de l’utilisateur.
Louis-Claude Canon
ABD – Performance
11 / 12
Louis-Claude Canon
ABD – Performance
12 / 12
Introduction
Administration des Bases de Données
Sécurité
Louis-Claude Canon
[email protected]
Bureau 429C
I
Garantir que les utilisateurs ne voient que les données qu’ils sont
supposés voir.
I
Protéger la base de données des modifications d’utilisateurs
malveillants.
Licence 3 informatique – Semestre 6
Louis-Claude Canon
ABD – Sécurité
1 / 11
Contrôle des accès
Louis-Claude Canon
ABD – Sécurité
2 / 11
Exemples de droits nécessaires
Les utilisateurs ont des droits et ne peuvent accéder qu’aux données pour
lesquelles ils en ont l’autorisation.
I
SELECT ON T ou SELECT(A1, ..., An) ON T
I
INSERT ON T ou INSERT(A1, ..., An) ON T
I
UPDATE ON T ou UPDATE(A1, ..., An) ON T
I
DELETE ON T
1
2
UPDATE C a n d i d a t u r e SET d é cision = ’O ’
WHERE id IN ( SELECT id FROM É tudiant WHERE moyenne > 1 5 )
Candidature UPDATE(décision), SELECT(id)
Étudiant SELECT(id,moyenne)
1
2
DELETE FROM É tudiant
WHERE id NOT IN ( SELECT id FROM C a n d i d a t u r e )
Étudiant DELETE, SELECT(id)
Candidature SELECT(id)
Louis-Claude Canon
ABD – Sécurité
3 / 11
Louis-Claude Canon
ABD – Sécurité
4 / 11
Exemple d’accès restreints aux données (1)
Exemple d’accès restreints aux données (2)
Limiter les accès en lecture aux étudiants candidatant pour l’université de
Franche-Comté uniquement.
Limiter les suppressions aux candidatures pour l’université de Bourgogne.
1
2
3
CREATE VIEW UFC É tudiant AS
SELECT ∗ FROM É tudiant WHERE id IN
( SELECT id FROM C a n d i d a t u r e WHERE nomUniv = ’ UFC ’ )
CREATE VIEW U B C a n d i d a t u r e AS
SELECT ∗ FROM C a n d i d a t u r e WHERE nomUniv = ’ UB ’
UBCandidature DELETE
Nécessite des vues modifiables.
UFCÉtudiant SELECT
Louis-Claude Canon
1
2
ABD – Sécurité
5 / 11
Louis-Claude Canon
ABD – Sécurité
6 / 11
Obtenir des droits
Diagramme d’attribution de droits
I
Le créateur d’une table en est le propriétaire.
I
Chaque propriétaire possède tous les droits sur leurs tables et peuvent
attribuer des droits.
I
Chaque utilisateur possédant des droits sur une table peut attribuer
certains de ces droits à d’autres utilisateurs (WITH GRANT OPTION).
I
Un utilisateur peut avoir obtenu des droits de plusieurs utilisateurs.
U1
Syntaxe SQL
GRANT droits ON T TO utilisateurs
[ WITH GRANT OPTION ]
U2
Exemple
1
U3
GRANT SELECT ( id ) , DELETE ON É tudiant TO PUBLIC
U4
Louis-Claude Canon
ABD – Sécurité
7 / 11
Révoquer des droits
Louis-Claude Canon
U5
ABD – Sécurité
8 / 11
Niveaux où se situent les droits
Syntaxe SQL
REVOKE droits ON T FROM utilisateurs
[ CASCADE | RESTRICT ]
CASCADE Révoque les droits attribués transitivement sauf si attribués
par un autre utilisateur : le diagramme d’attribution doit
rester cohérent (fonctionne toujours).
I
Les développeurs d’applications accèdant à la base de données ont
besoin de droits d’écriture.
I
Les utilisateurs finaux accèdant aux données par l’intermédiaire
d’applications n’ont que des droits limités.
RESTRICT S’arrête si CASCADE aurait révoqué d’autres attribution
(défaut) : une seule arrête doit être retirée en laissant le
diagramme d’attribution cohérent.
Louis-Claude Canon
ABD – Sécurité
9 / 11
Conclusion
I
Garantir que les utilisateurs ne voient que les données qu’ils sont
supposés voir.
I
Protéger la base de données des modifications d’utilisateurs
malveillants.
I
Les utilisateurs ont des droits et ne peuvent accéder qu’aux données
pour lesquelles ils en ont l’autorisation.
I
Instructions GRANT et REVOKE.
I
Pour dépasser les droits d’accès sur les tables uniquement : utiliser les
vues.
Louis-Claude Canon
ABD – Sécurité
11 / 11
Louis-Claude Canon
ABD – Sécurité
10 / 11
Téléchargement