Choix de la base de données
NoSQL vs SQL
Dans notre application nous avons des données d'utilisateur à stocker. Ces informations sont quasi inchangés ou du moins sont modifiées très peu souvent. Nous devons donc trouver un moyen de les stocker. Deux choix s'offrent donc à nous :
- NoSQL
- SQL
NoSQL
NoSQL signifie « Not only SQL », car certains langages NoSQL comprennent le langage SQL en plus de leur propre capacité, et « Non-relationnel » parce qu’il ne peut pas stocker facilement des données relationnelles.
La particularité des bases de données NoSQL est qu’elles n’utilisent pas le modèle relationnel. Il n’y a donc pas de tableau avec des caractéristiques et nombres d’attributs fixes. Elle permet de regrouper des données ayant des structures différentes. Les bases de données NoSQL peuvent également être distribuées, c’est-à-dire qu’elles peuvent être stockées sur plusieurs systèmes, plusieurs serveurs par exemple.
Il existe quatre types de bases de données NoSQL : paire clé / valeur, orientée colonne, orientée graph, et orientée document. Chacune de ces catégories a un attribut unique et des limites spécifiques.
Elles sont donc adaptées pour des gros stockage de données qui ne nécessitent pas de relations entre elles.
SQL
Il s’agit de bases de données dans lesquelles l’information est organisée avec des tableaux à deux dimensions. Les lignes correspondent aux enregistrements. Chaque enregistrement contient un groupe d’informations – les attributs – relatives à un sujet.
Le SQL a pour but de stocker, de manipuler et de retrouver des données qui ont des liens/relations entres elles. Le SQL permet également d’effectuer des requêtes, de mettre à jour les données ou de les réorganiser, de créer et de modifier le schéma et la structure d’un système de base de données.
Les jointures sont des atouts majeurs du SQL.
Postgres
Nous avons choisi d'utiliser PostgreSql pour les raisons suivantes :
- Site maintenu par la communauté francophone avec une très bonne documentation
- Open Source
- Utilisé en cours