107 lines
2.1 KiB
Markdown
107 lines
2.1 KiB
Markdown
# 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
|
|
|