# Backend development --- ## Overview + Architecture serveur + Types de base de données + Base de données relationnelles --- ### Architecture Serveur ![[Pasted image 20250312154125.png]] -- ### Reverse proxy ![[Pasted image 20250312154343.png]] + Résoud les requêtes (routing) + Load balancing + Cryptographie et certificats -- ### Web server ![[Pasted image 20250312155058.png]] + Le moteur écoute les requête, sérialise les réponses, gère les imprévus, fait tourner le code de l'API + l'API est la partie programmable du serveur, la plaque tournant de la logique -- ### Stockage ![[Pasted image 20250312155847.png]] + Base de données + Permet une structuration efficace et performante des données + Peut être versionnée, backupé, migré -- ### BDD relationnelles (schemafull) ![[Pasted image 20250312155847.png]] + Extrêmement polyvalentes et performantes + ACID (atomicity, consistency, isolation, and durability) + difficiles à scale -- ### BDD Document (schemaless) ![[Pasted image 20250312161605.png]] + Données structurées de manière plus flexible + Manipulées comme du JSON, naturel à utiliser depuis l'OO + plus facile à aborder et à scale initialement + Non ACID -- ### BDD Clé-valeur ![[Pasted image 20250312161701.png]] + Un genre de gros dictionnaire en mémoire vive + Performance++ + Souvent utilisé comme cache pour les données fréquemment lues + Ou pour des usages répétés mais relativement simples -- ### BDD en graph ![[Pasted image 20250312161743.png]] + Données fortement interconnectées (type réseau social) + Les relations entre les éléements ont autant d'importance que les éléments eux-mêmes --- ## BDD Relationnelles ![[Pasted image 20250312162226.png]] + Polyvalence extrême + Toujours ce qu'il se fait de mieux depuis 1970 -- ### Tables ![[Pasted image 20250312162333.png]] + Une table représente généralement un genre d'entité (ici, Customer) + On divise la table en colonnes (columns, des attributs) et en lignes (rows, des entrées dans la BDD) + Chaque row doit avoir un moyen unique de la différencier du reste, ce qu'on appelle une Primary Key + une PK peut être composite