Traitement transactionnel en ligne ou aide à la prise de décision
La plupart des applications de base de données peuvent être classées en deux catégories :
traitement des transactions en ligne (OLTP) ;
aide à la décision.
Les caractéristiques propres à l'un et l'autre type d'applications ont une incidence importante sur la conception d'une base de données.
Traitement des transactions en ligne
Les applications de base de données avec traitement des transactions en ligne sont idéales pour gérer les données évolutives. Dans ces applications, il y a généralement de nombreux utilisateurs qui exécutent des transactions en même temps, ce qui modifie les données en temps réel. Bien que chaque demande de données individuelle effectuée par les utilisateurs ne fasse généralement référence qu'à quelques enregistrements, de nombreuses demandes sont faites simultanément. Les systèmes de réservation des compagnies aériennes et les systèmes de transactions bancaires sont deux exemples courants de ce type de bases de données. Avec ce type d'application, la simultanéité et l'atomicité sont les deux principaux paramètres à prendre en considération.
Dans un système de base de données, le contrôle de la simultanéité garantit que deux utilisateurs ne peuvent pas modifier les mêmes données en même temps. Par exemple, lorsque vous vous entretenez avec une hôtesse d'une compagnie aérienne pour qu'elle réserve le dernier siège disponible d'un vol et que celle-ci commence la procédure de réservation, une autre hôtesse ne doit pas pouvoir dire à un autre passager que ce siège est encore disponible.
L'atomicité garantit que toutes les étapes d'une transaction sont effectuées avec succès en tant que groupe. Si une étape échoue, aucune autre ne doit pouvoir être effectuée. Par exemple, une transaction bancaire peut comporter deux étapes : le prélèvement des fonds sur votre compte de chèques et le dépôt sur votre compte d'épargne. Si l'étape de prélèvement des fonds a réussi, vous voudrez avoir la garantie que la somme a bien été déposée sur votre compte d'épargne ou qu'elle a été remise sur votre compte de chèques.
Considérations relatives à la conception de traitement de transactions en ligne
Les bases de données avec système de traitement transactionnel doivent être conçues de façon à privilégier les facteurs suivants :
Placement adéquat des données
Les goulots d'étranglements dans les opérations d'entrée/sortie sont un des principaux problèmes des systèmes OLTP ; ils sont dus au grand nombre d'utilisateurs qui modifient simultanément des données réparties dans toute la base de données. Lors de la conception d'une base de données, vous devez donc déterminer des modèles probables d'accès aux données et rassembler les données auxquelles il est fait le plus fréquemment appel. Vous devez utiliser les systèmes de groupes de fichiers et RAID pour vous aider dans cette démarche.
Transactions courtes pour minimiser les verrouillages prolongés et pour améliorer la simultanéité
Évitez les interactions entre les utilisateurs durant les transactions. Autant que possible, exécutez une seule procédure stockée pour traiter toute la transaction. L'ordre dans lequel vous référencez les tables dans vos transactions peut affecter la simultanéité. Placez les références aux tables soumises à des accès fréquents à la fin de la transaction, afin de réduire la durée des verrouillages.
Sauvegarde en ligne
Les systèmes OLTP sont souvent caractérisés par des opérations continuelles ; dans ce cas, les temps d'inactivité sont réduits au minimum. Autrement dit, ils sont opérationnels 24 heures sur 24, 7 jours sur 7. Bien que le Moteur de base de données SQL Server soit en mesure de sauvegarder une base de données pendant qu'elle est en cours d'utilisation, planifiez le processus de sauvegarde pour qu'il soit effectué à une période de faible activité, afin de gêner le moins possible les utilisateurs.
Forte normalisation de la base de données
Réduisez autant que possible les informations redondantes pour accélérer les mises à jour et améliorer la simultanéité. Une réduction du volume de données accélère par ailleurs les sauvegardes, puisqu'il y a moins de données à sauvegarder.
Peu ou pas de données historiques ou agrégées
Les données auxquelles il est rarement fait référence peuvent être archivées dans des bases de données séparées ou transférées vers des tables fréquemment mises à jour ou ne contenant que des données historiques. En procédant ainsi, vous maintiendrez les tables à leur taille minimale et vous améliorerez de fait les temps de sauvegarde et les performances des requêtes.
Usage modéré des index
Les index doivent être mis à jour chaque fois qu'une ligne est ajoutée ou modifiée. Pour éviter que les tables mises à jour ne soient trop abondamment indexées, essayez de faire en sorte que les index soient étroits. Utilisez l'Assistant Paramétrage du moteur de base de données pour créer les index.
Configuration matérielle optimale pour prendre en charge les nombreux accès simultanés des utilisateurs et pour offrir les temps de réponse les plus rapides requis par un système OLTP
Aide à la prise de décision
Les applications de base de données d'aide à la prise de décision sont les mieux adaptées aux requêtes qui ne modifient pas les données. Par exemple, une société peut régulièrement faire un récapitulatif de ses ventes par date, par région ou par produit, et stocker ces informations dans une base de données séparée, où elles pourront être consultées et analysées par la direction. Les utilisateurs doivent avoir les moyens d'identifier rapidement les tendances des ventes en interrogeant la base de données sur différents critères, et cela afin de prendre des décisions commerciales adaptées. Cependant, ils n'ont pas besoin de modifier ces données. Dans une base de données d'aide à la prise de décision, les tables sont fortement indexées et les données brutes souvent prétraitées et organisées de façon à pouvoir prendre en charge les différents types de requêtes utilisés. Les utilisateurs ne modifient pas les données. De ce fait, les questions de simultanéité et d'atomicité ne se posent pas : les données ne sont modifiées que lors des sauvegardes en blocs réalisées régulièrement, pendant les périodes creuses.
Considérations relatives à la conception d'aide à la prise de décision
Les bases de données avec système décisionnel doivent être conçues de façon à privilégier les facteurs suivants :
Forte indexation
Les systèmes d'aide à la prise de décision ont des besoins réduits en matière de mise à jour, mais ils contiennent d'importants volumes de données. Utilisez de nombreux index pour améliorer les performances des requêtes.
Dénormalisation de la base de données
Introduisez des données préagrégées ou de synthèse pour répondre aux requêtes les plus fréquentes et pour améliorer les temps de réponse.
Utilisation d'un schéma en étoile ou en flocon pour organiser les données dans la base.