Articles

Guerres de bases de données : MSSQL Server, Oracle PL/SQL et MySQL

Posted on

Avec autant de bases de données sur le marché, la guerre des esprits a commencé et c’est le bon moment pour comprendre la différence et l’importance des 3 principales bases de données relationnelles du marché – Microsoft SQL Server, Oracle PL/SQL et MySQL. Les systèmes de gestion de bases de données relationnelles sont actuellement devenus l’épine dorsale de l’industrie et avec tant d’options disponibles, il est difficile de savoir lequel choisir.

Les systèmes de gestion de bases de données relationnelles ont été introduits dans les années 1980. Cet article se concentre sur l’exploration de l’histoire et des caractéristiques de trois SGBDR populaires dans l’industrie : Microsoft SQL Server, Oracle et MySQL. Microsoft SQL Server et Oracle étant les logiciels commerciaux, MySQL est le SGBDR open-source.

Oracle a été la première entreprise à sortir des SGBDR à usage commercial dans les années 1980. Au milieu des années 1990, Microsoft est entré sur le marché avec SQL Server, un concurrent sérieux pour Oracle. MySQL, quant à lui, a été développé et distribué à l’origine en tant que logiciel open-source. MySQL a été publié pour la première fois en 1995, et la version Windows est sortie en 1998. En 2008, il a été acquis par SUN et par la suite par Oracle.

Le langage – cœur de la communication

L’épine dorsale de tout SGBDR est le langage utilisé pour exécuter les requêtes et c’est ainsi que leurs performances et leur mise en œuvre sont impactées. Bien que les trois systèmes de gestion de base de données utilisent une version du langage de requête structuré, ou SQL. Microsoft SQL Server utilise Transact-SQL, ou T-SQL, qui est une extension de SQL développée à l’origine par Sybase et utilisée par Microsoft. Tandis qu’Oracle, lui, utilise PL/SQL, ou Procedural Language/SQL.

Les deux sont des « saveurs » ou des dialectes différents de SQL et les deux langages ont une syntaxe et des capacités légèrement différentes. La principale différence entre les deux langages est la façon dont ils gèrent les variables, les procédures stockées et les fonctions intégrées. PL/SQL dans Oracle peut également regrouper des procédures en packages, ce qui n’est pas possible dans MS SQL Server. PL/SQL peut être un peu plus complexe et potentiellement plus puissant, tandis que T-SQL est beaucoup plus simple et plus facile à mettre en œuvre.

MySQL, quant à lui, utilise la version allégée de T-SQL et combine également un langage procédural étroitement lié à SQL/PSM. Cependant, les objets de code stockés de MySQL sont proches des normes ANSI, mais encore une fois, ils n’ont pas l’ampleur et la profondeur de T-SQL, l’extension propriétaire de Microsoft et Sybase à SQL.

Contrôle des transactions

On peut dire qu’une transaction est un groupe d’opérations qui sont exécutées comme une seule unité. Par exemple, si l’utilisateur essaie d’exécuter certaines requêtes SQL, alors soit toutes sont exécutées, soit aucune. C’est l’une des principales différences entre Oracle et MS SQL Server en référence au contrôle des transactions.

Par défaut, MS SQL Server exécutera et commettra chaque commande/tâche individuellement, et il sera difficile, voire impossible, de revenir en arrière sur les modifications si des erreurs surviennent en cours de route. La commande « BEGIN TRANSACTION » est utilisée pour regrouper correctement les instructions et déclarer le début d’une transaction, et une instruction COMMIT peut être utilisée à la fin. Cette instruction COMMIT écrira les données modifiées sur le disque et mettra fin à la transaction. Au sein d’une transaction, ROLLBACK annule toutes les modifications apportées dans le bloc de transaction. Après l’émission d’un COMMIT, il n’est pas possible de revenir en arrière plus loin, que la commande COMMIT.

Alors que dans Oracle, chaque nouvelle connexion à la base de données est prise comme une nouvelle transaction. Au fur et à mesure que les requêtes s’exécutent et que les commandes sont émises, les modifications sont effectuées uniquement dans la mémoire de la base de données et restent dans le cache. Rien n’est validé tant qu’une instruction COMMIT explicite n’est pas donnée. Après le COMMIT, la prochaine commande émise initie essentiellement une nouvelle transaction, et le processus recommence. Cela offre une plus grande flexibilité et aide également au contrôle des erreurs, car aucune modification n’est engagée sur le disque tant que la commande COMMIT n’est pas explicitement exécutée.

Dans le cas de MySQL, le support des transactions est facilement compatible avec InnoDB. InnoDB est un moteur de stockage pour MySQL et est disponible par défaut avec MySQL. Il fournit les fonctionnalités de transaction standard conformes à la norme ACID, ainsi que le support des clés étrangères.

Organisation des objets de la base de données

L’organisation des objets de la base de données est également un grand différenciateur dans ces 3 bases de données. MS SQL Server organise tous les objets, tels que les tables, les vues et les procédures, par noms de bases de données. Les utilisateurs de MS SQL sont affectés à un login, qui se voit accorder des accès aux bases de données spécifiques et également à ses objets. Dans Microsoft SQL Server, chaque base de données possède un fichier disque privé et non partagé sur le serveur.

Alors que dans Oracle, tous les objets de la base de données sont regroupés par schémas. Les schémas ne sont rien d’autre que les structures de base de données qui constituent une collection de sous-ensembles d’objets de base de données. Tous les objets de la base de données sont partagés entre tous les schémas et tous les utilisateurs. Même si tout est partagé, les rôles et les autorisations de chaque utilisateur sont définis et les mêmes peuvent être limités à certains schémas et tables.

En bref, les trois, MySQL, Oracle et SQL Server sont des options de SGBDR puissantes. Bien qu’il existe un certain nombre d’autres différences dans la façon dont ils fonctionnent « sous le capot » et mis en œuvre, ils peuvent être utilisés de manière à peu près équivalente. Chacun peut être utilisé avec un objectif différent dans un environnement différent. L’objectif peut être le même, mais la mise en œuvre varie.

raja

Publié le 16-Jan-2020 12:26:19

Publicités

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *