Base de données

Bonjour,
quelles sont les différences entre les différentes bases de données? Je vois qu’il en existe plusieurs:

  • Realm
  • Firebase
  • SQLite

Merci

Salut,

Alors pour commencer, il y a actuellement deux grandes familles de bases de données, SQL et NoSQL.

SQL qui sont des bases de données relationnelles alors que NoSQL ne l’est pas.

SQL, utilise un format de Table pour organiser les données, alors que NoSQL, utilise le format clé/valeur comme du JSON.

Chacun a des avantages et des inconvénients.

Par exemple : SQL, doit être sur une seule machine (Vertical Scaling) alors, que NoSQL peut être divisé sur plusieurs machines (Horizontal Scaling). C’est pour cette raison que les gros groupes comme Facebook ou Google utilisent NoSQL. Ils ont tellement de données à traiter qu’un serveur, même avec la meilleure configuration n’arriverait pas à suivre, donc ils divisent pour avoir plusieurs serveurs qui font le travail.

Pour ceux que tu as cités :

SQLite, utilise SQL comme son nom l’indique, par contre il est lite. Tu peux l’utiliser pour une base de données locale et les tests, mais dès que tu voudras synchroniser plusieurs utilisateurs. Tu devras utiliser MySQL ou PostgreSQL.

Firebase est un web service fait par Google, il n’y a pas que la base de données.

Mais concernant la base de données de celui-ci, elle est faite en NoSQL.

Realm est un peu spécial, car les informations sont représentées sous forme d’objets et donc, ne peuvent être utilisées que dans la programmation orientée objet.

L’avantage c’est que c’est très facile à mettre en place vu que tu programmes orientée objet, donc tu as juste à envoyer ton objet et il se charge de faire le reste. (un peu près.)

2 « J'aime »

Bravo Anthony pour ce résumé, surtout que la question était assez large et tu l’as bien couverte :+1:

2 « J'aime »

Merci à toi Anthony,
par exemple si on veut interagir avec des utilisateurs qui laissent des commentaires comme sur facebook ou d’autres appli de ce style, quelle base de données utiliser?

Pour faire une app avec des interactions entre plusieurs utilisateurs en même temps, tu peux oublier toutes les bases de données locales. (RealmDB et SQLite.)

Donc, tu as le choix entre les bases SQL, NoSQL et Realm Platform Cloud dans ce dernier cas, il faut payer pour utiliser le service, ça ressemble à Firebase.

Mais personnellement, si tu débutes je te conseille les bases en SQL qui sont plus stricts et ça va te permettre de prendre de bonnes habitudes dans la construction de tes bases.

Même si SQL, pose problème quand il y a trop d’utilisateurs, tu as quand même le temps de voir venir et de migrer vers une base NoSQL le moment venu.

1 « J'aime »

merci à toi ! je vais check tout ça!

Firebase peut aussi répondre à ce besoin mais, comme l’a très bien dit Anthony, c’est une solution beaucoup plus globale qu’une simple base de données.

1 « J'aime »

@PeterParker sinon, tu as aussi la possibilité de prendre le cours de Maxime sur Vapor pour créer un web service.

Un web service, c’est ce qui va te permettre de lier toutes les plateformes ensemble, iOS, Android ou le un site web. Bien sûr, tu peux l’utiliser pour un seul service.

Ce qui est bien avec Vapor, c’est qu’il inclut un ORM (Object-Relational Mapping) qui fait la liaison entre web service et base de données. Tu n’as donc pas besoin d’apprendre comment faire.

1 « J'aime »

merci anthony c’est ce que je vais faire mais d’abord je continue à apprendre les bases de android kotlin, puis petit à petit vu qu’il faut aussi que j’apprenne le swift je passerai par ce cours également.

1 « J'aime »

Bonsoir,
Lorsque l’on débute, je trouve que Firebase est assez pratique.
En effet, comme l’a dit @schtipoun, Firebase est une solution globale. Elle propose une BDD NoSQL (Cloud Firestore) mais également tout ce qu’il faut pour gérer les authentifications, le storage, les Push notifications et l’analytics.
En plus il y a vraiment bcp de ressources sur le web.
En fait il faut créer un projet, relier son app, et ensuite tout est dispo.

1 « J'aime »

Imaginons que j’ai 1000 visiteurs qui se connectent en même temps sur l’appli, ( un genre de messenger) quel serait la base de données à utiliser? Est ce que firebase suffit?