Optimisation des systèmes de gestion des bases de données
Qu’est-ce qu’un SGBD ?
Un SGBD est un logiciel qui définit le modèle d’un système de base de données et constitue une composante indispensable à la création, à la gestion et à l’utilisation d’une base de données. L’utilisateur peut uniquement ajouter et lire l’ensemble de données désiré après avoir installé et paramétré le système de gestion de base de données correspondant.
Qu’est-ce qu’un SGBD en informatique ? |
Le SGBD peut être divisé en trois éléments fondamentaux :
- Dictionnaire de données (Data Dictionary)
- Langage de définition des données (LDD)
- Langage de manipulation des données (LMD)
ACID (atomicity, consistency, isolation et durability) couvre les principales exigences applicables à un SGBD :
- L’atomicité est la propriété du SGBD qui implique que la transaction complète ne peut être exécutée correctement que si les interrogations sont valides et arrivent dans le bon ordre.
- La cohérence implique que la base de données reste stable même en cas de transaction réussie ce qui nécessite une vérification constante de toutes les transactions.
- L’isolation est l’exigence imposant que les transactions soient indépendantes les unes des autres ce qui est souvent garanti par des fonctionnalités de blocage.
- La durabilité signifie que l’ensemble des données du SGBD doivent être enregistrées durablement, même après la réalisation d’une transaction avec succès. Cela s’applique tout particulièrement en cas d’erreur système ou de panne du SGBD. Cette durabilité est notamment assurée par des journaux de transaction qui documentent l’ensemble des processus dans le SGBD.
♦️ Application ou logiciel pour récupérer des fichiers/images supprimés
Types de SGBD
Le choix d’un SGBD implique le choix définitif d’un modèle de base de données. Il existe les bases de données suivantes :
- Relationnelles
- Hiérarchiques
- Orientées réseau
- Orientées objet
MSIIDE 24/25 BOULAJOUL FARIDA
Le modèle de base de données relationnel est le plus courant et le plus apprécié. Dans ce modèle, la structuration des données est effectuée dans des lignes de tableaux. L’avantage est de pouvoir établir des relations entre les différentes lignes et de pouvoir les présenter dans des colonnes.
- Exemples de SGBD
- Relationnel
- Relationnel et objet
- Hiérarchique
- Orienté réseau
- Oracle Database
- PostgreSQL
- IMS (IBM)
- IDMS
- MySQL
- InterSystems IRIS
- Microsoft SQL Server
- MariaDB
- Microsoft Access
L’optimisation des SGBD
Un système de gestion de bases de données s’évalue par ses performances et sa facilité d’usage.
L’optimisation dans les SGBD a pour objectif de fournir aux utilisateurs un système optimal en termes de coût et d’usage. Elle se situe à tous les niveaux : lors de la conception de l’application, où le choix de l’architecture du système, du modèle de données, des techniques de stockage et des méthodes d’accès aux données jouent un rôle important tant sur le plan de l’usage que sur celui de l’efficacité, et lors de l’utilisation où le temps de réponse aux requêtes et le nombre de transactions par seconde représentent les critères majeurs de performances.
L'optimisation de la base de données est le processus d'amélioration des performances d'une base de données en optimisant sa structure, sa configuration et ses requêtes. Cela implique d'identifier les goulots d'étranglement et les inefficacités dans la base de données et d'appliquer des techniques pour y remédier.
L'optimisation des requêtes consiste à analyser et à optimiser les requêtes de base de données pour réduire leur temps d'exécution. Il existe plusieurs techniques qui peuvent être utilisées pour optimiser votre base de données.
Éliminez les données redondantes
l'un des principaux objectifs de la rationalisation de votre schéma de base de données est d'éliminer les données redondantes. Les données redondantes peuvent entraîner des incohérences de données et augmenter les besoins de stockage de votre base de données. Pour éliminer les données redondantes, vous pouvez utiliser des techniques de normalisation telles que la création de tables distinctes pour les données associées et l'utilisation de clés étrangères pour les relier entre elles. Par exemple, au lieu de stocker les informations client dans plusieurs tables, vous pouvez créer une table
MSIIDE 24/25
distincte pour les informations client et la lier à d'autres tables à l'aide d'une clé étrangère.
Normalisez votre base de données
La normalisation est le processus d'organisation des données dans une base de données pour réduire la redondance et améliorer l'intégrité des données. Cela implique de diviser une grande table en tables plus petites et d'établir des relations entre elles à l'aide de clés étrangères. La normalisation permet de réduire la redondance des données et d'améliorer l'efficacité de vos requêtes de base de données. Il existe plusieurs niveaux de normalisation :
1NF (Première Forme Normale) : Garantit que la table de base de données est organisée de telle sorte que chaque colonne contienne atomvaleurs uniques (indivisibles), et chaque enregistrement est unique. Cela élimine les groupes répétitifs, structurant ainsi les données en tableaux et colonnes.
2NF (deuxième forme normale) : Construit sur 1NF par Nous devons supprimer les données redondantes d'une table appliquée à plusieurs lignes. et en les plaçant dans des tableaux séparés. Il nécessite que tous les attributs non clés soient entièrement fonctionnels sur la clé primaire.
3NF (Troisième Forme Normale) : Étend 2NF en garantissant que tous les attributs non-clés sont non seulement entièrement fonctionnels sur la clé primaire, mais également indépendants les uns des autres. Cela élimine la dépendance transitive.
BCNF (forme normale de Boyce-Codd) : Un raffinement de 3NF qui corrige les anomalies non gérées par 3NF. Cela nécessite que chaque déterminant soit une clé candidate, garantissant ainsi un respect encore plus strict des règles de normalisation.
4NF (quatrième forme normale) : Gère les dépendances à valeurs multiples. Cela garantit qu'il n'y a pas plusieurs faits indépendants à valeurs multiples sur une entité dans un enregistrement.
5NF (cinquième forme normale) : Également connu sous le nom de « forme normale de projection-jointure » (PJNF), il concerne la reconstruction d'informations à partir d'éléments de données plus petits et disposés différemment.
6NF (sixième forme normale) : Théorique et peu mis en oeuvre. Il traite les données temporelles (gestion des changements au fil du temps) en décomposant davantage les tables pour éliminer toute redondance non temporelle.
MSIIDE 24/25
Les chemins d'accès
Il s’agit des différents modes d'accès aux données :
Parcours complet (FULL TABLE SCAN).
Par adresse ou ligne (ACCESS BY ROWID).
Parcours de regroupement (CLUSTER SCAN).
Recherche par hachage (HASH SCAN).
Parcours d’index (INDEX SCAN).
Les index
On peut voir un index comme un glossaire, un sommaire. Avoir un glossaire basé sur le bon critère vous permet d'accéder rapidement à la page du livre traitant du sujet désiré.
Les différents types d'index
B-tree : les index b-tree sont le type d'index par défaut quand on ne précise rien. Comme son nom l'indique, l'index b-tree est organisé en arbre, les racines constituées par les valeurs précisées à gauche.
Bitmap : un mot binaire est créé, composé d'autant de bits que de possibilités de valeurs de l'index, ce type d'index est particulièrement efficace lorsque le nombre de valeurs est petit ainsi que pour les opérations AND et OR.
Les index à clefs inversées : c'est très simple : « 1234 » deviendra « 4321 » … La raison de cette inversion provient du fait que les index peuvent devenir un goulot d'étranglement quand un grand nombre d'insertions est fait.
Les index basés sur des fonctions : là on n'indexe plus un champ, mais le résultat d'une opération sur un champ.
Créer un index ordinaire
CREATE INDEX `index_nom` ON `table ;
Créer un index sur une seule colonne
CREATE INDEX `index_nom` ON `table` (`colonne1`) ;
Insérer un index sur plusieurs colonnes
CREATE INDEX `index_nom` ON `table` (`colonne1`, `colonne2`) ;
MSIIDE 24/25
Vues matérialisées
Les vues matérialisées sont des vues dont on stocke physiquement le résultat d’une requête. Mais qui dit résultat stocké dit résultat de la requête à un moment T, et quand la table change la vue matérialisée sera à jour.
Le problème c'est qu'entretenir ces vues en temps réel est couteux et pas souvent mis en oeuvre. Les vues matérialisées trouvent tout leur intérêt dans des cas où l'on n'a pas besoin des données en temps réel.
Partitionnement
Les partitions permettent de découper les objets de base en petites parties plus faciles à manipuler. C’est une approche de type « diviser pour mieux régner ». Les objets de base de données de type table, index et vue matérialisée peuvent être divisés en morceaux plus petits et plus gérables
Il existe plusieurs types de partitionnement :
Par Range
Par List
Par Hash
Composite (Range/Hash, Range/List List/Hash pour 9i et 10g et toutes les combinaisons en 11g)
SQL EXPLAIN
Dans le langage SQL, l’instruction EXPLAIN est à utiliser juste avant un SELECT et permet d’afficher le plan d’exécution d’une requête SQL. Cela permet de savoir de quelle manière le Système de Gestion de Base de Données (SGBD) va exécuter la requête et s’il va utiliser des index et lesquels, cette commande ne renverra pas les résultats du SELECT mais plutôt une analyse de cette requête. Le nom de cette instruction diffère pour certains SGBD :
MySQL : EXPLAIN
PostgreSQL : EXPLAIN
Oracle : EXPLAIN PLAN
SQLite : EXPLAIN QUERY PLAN
SQL Server :
SET SHOWPLAN_ALL : informations estimées d’une requête SQL, affiché au format textuel détaillé
SET SHOWPLAN_TEXT : informations estimées d’une requête SQL, affiché au format textuel simple
MSIIDE 24/25 BOULAJOUL FARIDA
SET SHOWPLAN_XML : informations estimées d’une requête SQL, affiché au format XML
SET STATISTICS PROFILE : statistiques sur l’exécution d’une requête SQL, affiché au format textuel
SET STATISTICS XML : statistiques sur l’exécution d’une requête SQL, affiché au format XML
Firebird : SET PLANONLY ON ; puis l’exécution de la requête SQL à analyser
SQL OPTIMIZE
Dans le langage SQL, la commande OPTIMIZE permet de réorganiser le stockage physique des données et reconstruit les index. Cette commande peut en conséquent améliorer les performances dans certains cas.
Cette commande fonctionne uniquement pour certains SGBD, tels que MySQL et MariaDB.
OPTIMIZE TABLE nom_table;
♦️ La liste de quelques combinaison clavier d'ordinateur WINDOWS, MAC IOS
♦️ Qu'est-ce que le root et pourquoi télécharger et rooter Android ?
Nous vous demandons de nous écrire via notre page de contact ou par commentaire afin d'obtenir toutes les informations sur les ordinateurs ou tout ce qui concerne la technologie moderne tel que les fréquences des canaux satellites, smartphone.
Vous pouvez également nous suivre sur notre page Facebook.
Enregistrer un commentaire