Files
ObsidianWork/Subjects/Backend development.md

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