Réponse très courte:
Différentes bases de données ont des utilisations différentes. Je ne suis pas un expert en bases de données. Règle générale:
- si vous faites des analyses (ex. agrégation de données historiques) utilisez OLAP
- si vous effectuez des transactions (par exemple, ajouter / supprimer des commandes sur un panier de commerce électronique), utilisez OLTP
Réponse courte:
Prenons deux exemples de scénarios:
Scénario 1:
Vous créez une boutique / un site Web en ligne et vous souhaitez pouvoir:
- stocker les données utilisateur, mots de passe, transactions précédentes ...
- stocker les produits réels, leurs prix associés
Vous voulez pouvoir trouver des données pour un utilisateur particulier, changer son nom ... essentiellement effectuer des opérations INSERT, UPDATE, DELETE sur les données utilisateur. Idem pour les produits, etc.
Vous voulez pouvoir effectuer des transactions, impliquant éventuellement un utilisateur achetant un produit (c'est une relation). Alors OLTP est probablement un bon choix.
Scénario 2:
Vous avez une boutique / un site Web en ligne et vous souhaitez calculer des choses comme
- le "montant total dépensé par tous les utilisateurs"
- "quel est le produit le plus vendu"
Cela relève du domaine de l'analyse / intelligence d'affaires, et donc OLAP est probablement plus adapté.
Si vous pensez en termes de "Ce serait bien de savoir comment / quoi / combien" ..., et cela implique tous les "objets" d'un ou plusieurs types (ex. Tous les utilisateurs et la plupart des produits total dépensé), alors OLAP est probablement mieux adapté.
Réponse plus longue:
Bien sûr, les choses ne sont pas si simples. C'est pourquoi nous devons utiliser des balises courtes comme OLTP
et OLAP
en premier lieu. Finalement, chaque base de données doit être évaluée indépendamment.
Alors, quelle pourrait être la différence fondamentale entre OLAP et OLTP?
Eh bien, les bases de données doivent stocker des données quelque part. Il n'est pas surprenant que la façon dont les données sont stockées reflète fortement l'utilisation possible de ces données. Les données sont généralement stockées sur un disque dur. Imaginons un disque dur comme une feuille de papier très large, où nous pouvons lire et écrire des choses. Il existe deux façons d'organiser nos lectures et écritures afin qu'elles soient efficaces et rapides.
Une façon consiste à créer un livre qui ressemble un peu à un annuaire téléphonique . Sur chaque page du livre, nous stockons les informations concernant un utilisateur particulier. Maintenant c'est bien, nous pouvons trouver les informations pour un utilisateur particulier très facilement! Accédez simplement à la page! Nous pouvons même avoir une page spéciale au début pour nous dire sur quelle page se trouvent les utilisateurs si nous le voulons. Mais d'un autre côté, si nous voulons trouver, disons, combien d'argent tous nos utilisateurs ont dépensé, nous devrons lire chaque page, c'est-à-dire tout le livre! Ce serait un livre / base de données en ligne (OLTP). La page facultative au début serait l'index.
Une autre façon d'utiliser notre grande feuille de papier est de faire un livre comptable . Je ne suis pas comptable, mais imaginons que nous aurions une page pour "dépenses", "achats" ... C'est bien parce que maintenant nous pouvons interroger des choses comme "donnez-moi le revenu total" très rapidement (il suffit de lire les "achats" "page). Nous pouvons également demander des choses plus impliquées comme «donnez-moi les dix meilleurs produits vendus» et avoir des performances acceptables. Mais considérons maintenant combien il serait douloureux de trouver les dépenses pour un utilisateur particulier. Vous devrez parcourir toute la liste des dépenses de chacun et filtrer celles de cet utilisateur particulier, puis les additionner. Ce qui revient essentiellement à "relire tout le livre". Ce serait une base de données basée sur des colonnes (OLAP).
Il s'ensuit que :
OLTP
les bases de données sont destinées à être utilisées pour effectuer de nombreuses petites transactions et servent généralement de "source unique de vérité".
OLAP
les bases de données, d'autre part, sont plus adaptées à l'analyse, à l'exploration de données, à moins de requêtes, mais elles sont généralement plus grandes (elles fonctionnent sur plus de données).
C'est un peu plus compliqué que cela bien sûr et c'est un aperçu de 20 000 pieds de la différence entre les bases de données, mais cela me permet de ne pas me perdre dans une mer d'acronymes.
En parlant d'acronymes:
- OLTP = Traitement des transactions en ligne
- OLAP = Traitement analytique en ligne
Pour lire un peu plus loin, voici quelques liens pertinents qui ont fortement inspiré ma réponse: