0.
INTRODUCTION
Par rapport à notre cours d’Informatique et société, il a été donné à chaque groupe d’exposer sur un
sujet donné et le nôtre a consisté à parler des différences qui existent entre Oracle et SQLite, nous allons
de ce fait commencer par introduire le sujet…
Oracle et SQLite peuvent tous être considéré comme des bases de données mais ont bien des différences
et ce dans plusieurs domaines à savoir :
- Le type de gestion de bases de données
- La complexité et les fonctionnalités
- La performance
- Licence
- Taille de l’entreprise en fonction des spécificités des systèmes de gestion
- Coût
- Déploiement
- Applicabilité/Fluidité ou Rapidité
- Limites
- Robusticité
- Fonctionnalités
- Langage de programmation dans lesquels ils sont écrits
- Dernières versions émises par ces derniers
Sont des lignes de différenciation entre ces deux systèmes de gestion de base de données sans doute très
utilisés que nous exposerons.
1. MOTS CLES QUI INTERVIENNENT DANS CE DOMAINE
Base de données : Les bases de données sont des outils essentiels dans le domaine de
l’informatique et de la gestion de l’information. Elles permettent de stocker, organiser et
manipuler des données de manière structurée, ce qui facilite la gestion et l’accès aux
informations. Les bases de données jouent un rôle crucial dans la gestion efficace des
données et offrent une multitude d’options en fonction des besoins spécifiques d’un
projet ; il est important de choisir le bon type de base de données et le bon SGBD pour
garantir un stockage et une manipulation efficace des données.
Base de données relationnelle : Basées sur le modèle relationnel, elles utilisent des
tables pour stocker les données et des relations pour les lier entre elles.
Base de données orientée document : Une base de données orientée document est un
type de base conçu pour stocker, gérer et récupérer des documents semi-structurés, tels
que des fichiers JSON ou XML. Elle est bien adaptée aux applications nécessitant une
flexibilité dans les structures des données, comme le stockage de données non
relationnelles ou m’indexation de documents texte. MongDB est un exemple populaire
de système de gestion de base de données orientée documents.
Gdbm,GNU dbm : Est une bibliothèque de gestion de base de données orientée clé-
valeur. Elle fournit un mécanisme simple pour stocker et récupérer des paires clé-valeur
dans une base de données, avec un accès rapide aux données grâce à une indexation
efficace. GDBM est souvent utilisé pour des applications nécessitant une gestion de
données légère et rapide, bien qu’il soit moins robustes que d’autres systèmes de gestion
de base de données relationnelles ou orientées document.
MariaDb : Est un système de gestion de base données relationnelles open source, qui a
été développé comme une alternative compatible avec MySQL, suite à l’acquisition de
MySQL AB par Oracle Corporation. MariaDb est largement utilisé dans les applications
web et est apprécié pour sa performance, sa fiabilité et sa compatibilité avec les
applications existantes conçues pour MySQL. Il est soutenu par une communauté active
de développeurs et est utilisé par de nombreuses entreprises et organisations à travers le
monde.
Système embarquée : Système de base de données conçue pour être intégré
directement dans une application sans nécessiter de serveur externe, comme SQLite.
SGBD : Système de gestion de base de données
SGBDRO : Système de gestion de base de données relationnelle objet, se dit de système
de gestion de base de données qui introduisent de support de modèle objet ; tel est le
cas de Oracle Database à partir de sa version 8.
Langage SQL : ( Structured Query Language): Langage standard utilisé pour interagir avec
les bases de données relationnelles en effectuant des requêtes pour récupérer, modifier
ou supprimer des données.
PostgreSQL : Est un système de gestion de base de données Open source réputé pour sa
fiabilité, ses fonctionnalités avancées et sa conformité aux ANSI SQL. Connu pour sa
robustesse et sa capacité à gérer des charges de travail complexes, PostgreSQL est
largement utilisé dans diverses applications, allant des petites applications web aux
environnements d’entreprise à grande échelle. Il prend en charge des nombreuses
fonctionnalités avancées telles que les transactions ACID, les vues, les déclencheurs, les
fonctions stockées et la réplication.
MySQL : Est SGDBR Open source largement utilisé, souvent associé au développement
d’application web. Il est connu pour sa rapidité, sa fiabilité et sa facilité d’utilisation.
MySQL est souvent utilisé dans des environnements où la scalabilité et les performances
sont importantes, comme le site web à fort trafic et les applications d’entreprise. Il prend
en charge les fonctionnalités standards des bases de données relationnelles telles que les
requête SQL, les index ; les transactions ACID, ainsi que la réplication pur la haute
disponibilité et la sauvegarde.
NoSQL : Chaque base de données NoSQL peut avoir son propre langage de requête
spécifique en fonction de sa structure et de ses fonctionnalités.
UnQL : Unified Query Language est un terme générique qui fait référence à une
proposition pour une langue de requête unifiée pour les bases de données NoSQL.
AOL : Anciennement sous le nom d’America Online, était l’un des principaux fournisseurs
de services Internet dans les années1990 et au début des années 2000.
ACID : En informatique il fait référence aux propriétés ACID d’une base de données, cela
signifie Atomicité, Cohérence, Isolation et Durabilité. Ces propriétés garantissent que les
transactions dans une base de données sont exécutées de manière fiable, avec des
résultats prévisibles et cohérents, même en cas de défaillance de système.
XML: Signifie eXtensible Markup Language. C’est un langage de balisage utilisé pour
stocker et transporter des données de manière lisible par les humains et les machines.
CPU : Central Processing Unit
Schéma Client-serveur : C’est lorsqu’une bibliothèque logicielle cliente est intégrée et
utilisée dans une ou plusieurs applications alors que le moteur de base de données dans
un espace d’exécution qui lui est propre, voire une machine différente, en tant que
service informatique.
Open source : L’Open source fait référence à u logiciel librement disponible pour être
utilisé et distribué. Il permet aux utilisateurs d’accéder au code source d’un programme
et d’apporter des modifications en fonction de leurs besoins…
Extension: Suffixe identifiant le format d’un fichier ou d’un nom de domaine ; par
exemple .txt pour un document texte, .db pour une base de donnée…
Requête: Est une recherche dans une base de donnée
Licence: Contrat ou déclaration par lequel le titulaire des droits d’un logiciel autorise un
tiers vis-à-vis de l’usage.
Licence Processeur: En fonction de la puissance du serveur hébergeant les instances, un
certain de licences doit être acquis.
Il faut prendre en compte deux notions : Premièrement, la puissance est définie par un nombre
de processeurs CPU, et en nombre de cœurs par CPU. Deuxièmement un « core factor »
s’applique en fonction de la puissance que délivre le constructeur de processeurs. Exemple la
majorité des processeurs Intel possède un facteur de 0,5 (cf : puces « multi-core » (Intel, AMD,
SPARC, Power). Avec ces éléments on fait le calcul suivant : (Nombre de CPU x Nombre de cœurs
par CPU x core factor). Et on obtient le nombre de licence « licences processeurs » qu’il faut
acquérir. Cette option est directement dédiée aux architectures trois tiers, où les applications
positionnées au-dessus des bases de données, vont générer des requêtes par un nombre
inconnu d’utilisateur. C’est typiquement le cas lorsqu’une application est ouverte sur le web et
lorsque des milliers de personnes peuvent potentiellement accéder à la base (sites web).
2. HISTORIQUE
Faisons place à quelques lignes afin de parler sur l’historique de ces deus systèmes de gestion de base de
données.
A) SQLite
D. Richard Hipp et un collègue commencèrent la conception de SQLite en début 2000 lorsqu’ils
travaillaient chez General Dynamics, alors en contrat avec l’US Navy. SQLite devait être utilisée dans
des missiles guidés, dans le but de remplacer des bases données IBM Informix fonctionnant sur les
machines HP-UX. Le principal objectif était de pouvoir s’affranchir de toute installation ou la mise à
jour de la base de données Informix pouvait prendre une journée entière.
En août 2000, la première version de SQLite est publiée. Elle utilisait Gdbm( GNU Database Manager)
pour manipuler des arbres B
SQLite 2.0 supprime la dépendance à gdbm et ajoute la prise en charge des transactions.
SQLite 3.0, produite avec l’aide d’AOL, est publiée en 2004 et ajoute, entre autres, la régionalisation
(avec le support des collations et de l’unicode) et la déclaration des types de données.
En 2011, Hipp annonce souhaiter ajouter une interface NoSQL à SQLite, ainsi que UnQL, un sir-
ensemble fonctionnel de SQL, conçue pour les bases de données orientées document.
SQLite est l’un des quatre formats recommandés par la Bibliothèque du Congrès pour le stockage à
long terme des ensembles de données.
La majorité des SGBD sont construits selon le paradigme client-serveur, c’est-à-dire qu’une
bibliothèque logicielle cliente est intégrée et utilisée dans une ou plusieurs applications alors le
moteur de base de données fonctionne dans un espace d’exécution qui lui est propre, voire une
machine différente en tant que service informatique.
SQLite au contraire, est directement intégrée dans l’application qui utilise sa bibliothèque logicielle,
avec son moteur de base de données.
B) ORACLE DATABASE
Software Development Laboratories a été créé en 1977. En 1979, l’entreprise change de nom en
devenant Relational Software Inc. Et commercialise son produit Oracle V2 comme base de données
relationnelles.
La version 2 ne supportait pas les transactions mai gérait les fonctionnalités SQL basiques de requête
et jointure.
Il n’y a jamais eu de version 1, pour des raisons de marketing,et la version 2 a été la première version
proposée.
Celle-ci fonctionnait uniquement sur les systèmes Digital VAX/VMS.
En 1983, RSI devient Oracle Corporation pour être plus représentative de son produit phare.
La version 3 d’Oracle, entièrement ré-écrite ent langage C, est publiée.
Celle-ci supportait les transactions grâces aux fonctionnalités de commit et rollback.
C’est aussi à partir de cette version que la plateforme Unix est suportée.
En 1984, la version 4 supporte la cohérence en lecture (read consistency).
En 1985, la version 5 supporte les requêtes distribuées, dans le cadre de l’intégration du modèle
client-serveur avec l’arrivée des réseaux au milieu des années 1980.
En 1988 ,la version 6 supporte le PL/SQL,le verrouillage de lignes (row-level locking) et les
sauvegardes à chaud (Hot backups, lorsque la base de données et ouverte). Oracle met sur le marché
son ERP Oracle Financials basé sur la base de données relationnelle Oracle Database.
En 1992, la version 7 supporte les contraintes d’intégrité, les procédures stockées et les déclencheurs
(triggers).
En 2019, la version 19c est publiée
En 2021, paraît la version 21c.
3. QUELQUES LIGNES SUR LES DEUX SYSTEMES DE GESTION
SQLite
Développé par :Dwayne Richard Hipp
Première version : Aout 2000
Dernière version : 3.45.2 (12Mars 2024)
Ecrit en C
Système d’exploitation : Multiplateforme
Formats lus : SQLite database file format et SQLite rollbak journal
Formats écrits : SQLite database file format, SQLite Zipvfs compressed databse et SQLite
rollbak journal.
Type : Système de gestion de base de données embarqué.
Licence : Domaine public
Site web : SQLite.org
SQLite est une bibliothèque écrite en langage C qui propose un moteur de base de données
relationnelle accessible par le langage SQL.
SQLite implémente en grande partie le standard SQL 92 et des propriétés ACID.
Contrairement aux serveurs de bases de données traditionnels, tels que MySQL, Mariadb ou
PostgreSQL, sa particularité est de ne reproduire le schéma habituel client-serveur mais
d’être directement intégrée aux programmes.
L’intégralité de la base de données (déclarations tables, index et données) est stockée dans
UN fichier indépendant de la plateforme.
D. Richard Hipp, le créateur de SQLite, a choisi de mettre cette bibliothèque ainsi que son
code source dans le domaine public, ce qui permet son utilisation sans restriction aussi bien
dans les projets Open source que dans les projets propriétaires.
Le créateur ainsi qu’une partie des développeurs principaux de SQLite sont employés par la
société américaine Hawci.
SQLite est le moteur de base de données le plus utilisé au monde, grâce à son utilisation :
dans des nombreux logiciels grand public( Fireforce, Skype, Google Gears ; dans certains
produits Apple, d’Adobe et de McAfee …
ORACLE DATABASE
Développé par :Oracle corporation
Dernière version 23c (19 septembre 2023)
Ecrit en : Java, C et C++
Système d’exploitation multiplateforme
Formats lus :Oracle Trace Metadata
Formats écrits Oracle Trace Metadata
Type : SGBD
Licence : Commercial
Oracle Database est un système de gestion de base de données relationnelle qui depuis l’introduction du
support du modèle objet dans sa version 8 peut être aussi qualifié de système de gestion de base de
données relationnel-objet.
Fourni par Oracle Corporation, il a été développé par Larry Elison, accompagné entre autres, de Bob
Miner et Ed Oates.
Si un serveur Oracle est installé dans un environnement virtualisé (hors OracleVM) utilisant plusieurs
serveurs physiques, c’est le nombre de processeurs de l’ensemble des machines ^hyliques constituant le
cluster qu’il faut licencier, car Oracle considère que le SGBD peut utiliser tour à tour l’ensemble des
processeurs de l’infrastructure.
La plupart des personnes dans les entreprises moyennes ou grosses, ont une ferme de serveurs VMWare
ou Hyper-V.
Si des produits Oracle soumis à licence sont utilisés, il faut impérativement analyser les besoins et les
couts de licence.
Par exemple, une ferme de 4 serveurs composés chacun de 4 processeurs Intel (CPU), tous composés de
4 Cœurs sera « licenciée » pour 4x4x2x0,5= 16 licences CPU ; ce qui peut devenir prohibitif. C’est la raison
pour laquelle, la technologie OracleVM reste conseillée, d’autant plus qu’elle offre des fonctionnalités
égales.
Certaines technologies de virtualisation (IBM, SUN et même Microsoft depuis peu) sont bien supportées
par Oracle, mais il semble qu’il y ait un gros désaccord entre Oracle et VMWare.
4. LES DIFFERENCES QUI EXISTENT ENTRE CES DEUX SYSTEMES DE GESTION
SQLite
- Le type de gestion de bases de données : SQLite est une base de données embarquée légère, qui ne
nécessite pas de serveur distinct peut être intégrée directement dans des applications.
- La complexité et les fonctionnalités : SQLite est plus simple et léger, offrant des fonctionnalités de base
pour le stockage et la récupération des données.
- La performance : En raison de sa simplicité et de sa conception légère, SQLite peut offrir des
performances rapides pour les applications légères et les cas d’utilisation simple.
- Licence : SQLite est Open source et gratuit à utiliser, ce qui en fait un choix attrayant pour les
développeurs d’applications nécessitant une base de données simple et légère.
- Taille de l’entreprise en fonction des spécificités des systèmes de gestion : Si vous développez une petite
application mobile ou un site web personnel qui n’a pas besoin de fonctionnalités avancées et qui doit
simplement stocker des données localement, SQLite serait plus approprié en raison de sa légèreté et de
sa faciliter d’intégration.
- Coût : Si votre organisation a un budget limité et cherche une solution de base de données gratuite,
SQLite serait un choix économique car il est open source et gratuit à utiliser
- Déploiement : Si vous avez d’une base de données qui peut être facilement intégrée dans une
application mobile ou une application web légère sans nécessiter un serveur web distinct, SQLite serait
idéal car il est conçu pour être embarqué et ne nécessite pas de configurations complexe.
- Applicabilité/Fluidité ou Rapidité : SQLite est connu pour sa légèreté et sa rapidité, ce qui en fait un
choix populaire pour les applications mobiles, les applications de bureau et les petits projets.
- Limites : En raison de sa conception légère, SQLite peut ne pas être adapté pour des applications
nécessitant des performances élevées ou la gestion de gros volume de données.
- Langage de programmation dans lesquels ils sont écrits : SQLite est écrit en langage de programmation
C
- Dernières versions émises par ces derniers : La dernière version est 3.45.2 du 12 Mars 2004.
Oracle Database
- Le type de gestion de bases de données : Oracle est un système de gestion de base de données
relationnelle complet, conçu pour gérer des grandes quantités de données et adapté aux
environnements d’entreprise.
- La complexité et les fonctionnalités : Oracle offre une gamme complète des fonctionnalités avancées
pour la gestion de données, la sécurité, la haute disponibilité etc.
- La performance : En raison de sa complexité et de ses fonctionnalités avancées, Oracle peut offrir des
bonnes performances pour les applications nécessitant une grande capacité de traitement et une haute
disponibilité.
- Licence : Oracle Database est un logiciel commercial avec des coûts de licence associés, ce qui peut
rendre son utilisation couteuse pour certaines organisations.
- Taille de l’entreprise en fonction des spécificités des systèmes de gestion : Si vous travaillez pour une
grande entreprise avec des besoins complexes en matière de base de données, comme la gestion des
grandes quantités de données transactionnelles, la haute disponibilité et la sécurité avancée, Oracle
serait un choix plus adapté en raison de sa capacité à gérer ces exigences.
- Coût : En raison de sa puissance et de ses fonctionnalités avancées, Oracle peut être plus coûteux que
d’autres options de base de données, ce qui le rend généralement plus adapté aux grandes entreprises.
- Déploiement : D’autres part si vous avez besoin d’une base de données centralisée pour une grande
entreprise avec plusieurs utilisateurs accédant simultanément aux données, Oracle serait plus approprié
en raison de sa capacité ç gérer des charges de travail élevé et des environnements distribués.
- Robusticité : Oracle est réputé pour sa capacité à gérer des environnements d’entreprise critiques avec
des exigences élevées en matière de disponibilité, de performances et de sécurité.
- Fonctionnalités : Oracle offre une gamme étendue de fonctionnalités avancées telles que la haute
disponibilité, la réplication, la sauvegarde et la récupération avancées, ainsi que des outils de gestion
performants.
- Langage de programmation dans lesquels ils sont écrits : Ce système de gestion de base de données est
écrit en langages Java, C et C++
- Dernières versions émises par ces derniers : version 23c (19 septembre 2023)
VOICI QUELQUES EXEMPLES DE SYNTAXES DE REQUETES SQL QUI DIFFERENT ENTRE SQLITE ET ORACLE :
Création d’une table avec une clé primaire auto-incrémentée :
SQLite :
CREATE TABLE table Name (
Id INTEGER PRIMARY KEY AUTOINCREMENT,
Column_name VARCHAR(50)
);
Oracle :
CREATE TABLE table_name (
Id NUMBER PRIMARY KEY,
Column_name VARCHAR2(50)
);
Sélection des 5 premiers enregistrements d’une table :
SQLite :
SELECT * FROM table_name LIMIT 5 ;
Oracle :
SELECT * FROM table_name WHERE ROWNUM <= 5 ;
Obtenir la date et l’heure actuelles :
SQLite :
SELECT datetime(‘now’) ;
Oracle :
SELECT SYSDATE FROM DUAL ;
Jointures entre tables SQLite:
SELECT t1.colonne1, t2.colonne2
FROM table1 AS t1
JOIN table2 AS t2 ON t1.clé = t2.clé ;
Jointures entre tables Oracle SQL :
SELECT t1.colonne1, t2.colonne2
FROM table1 t1
JOIN table2 t2 ON t1.clé = t2.clé ;
5. CONCLUSION
En résumé, Oracle et SQLite sont deux bases données puissantes mais adaptés à des besoins
différents :
- Oracle est idéal pour les grandes entreprises avec des besoins complexes, tandis que SQLite
conc=vient mieux aux petites applications et aux projets personnels.
-Oracle une offre une scalabilité et des fonctionnalités avancées, tandis que SQLite et plus simple
à utiliser et plus léger.
Oracle est souvent préfère pour les applications d’entreprises critiques, tandis que SQLite est plus
adapté aux applications mobiles et aux petits projets.
Le choix entre Oracle et SQLite dépendra des exigences spécifiques du projet et des ressources
disponibles.