3.9 KiB
3.9 KiB
Backend development
Overview
- Architecture serveur
- Types de base de données
- Base de données relationnelles
Architecture Serveur
--
Reverse proxy
- Résoud les requêtes (routing)
- Load balancing
- Cryptographie et certificats
--
Web server
- 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
- Base de données
- Permet une structuration efficace et performante des données
- Peut être versionnée, backupé, migré
--
BDD relationnelles
- Extrêmement polyvalentes et performantes
- ACID (atomicity, consistency, isolation, and durability)
- difficiles à scale
--
BDD Document
- 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
- 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
- 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
- Polyvalence extrême
- Toujours ce qu'il se fait de mieux depuis 1970
--
Tables
- 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 (PK)
- une PK peut être simple ou composite
--
Relations
- Les tables peuvent être mises en relation
- Quand une PK est référencée dans une autre table comme un attribut, on parle alors de Foreign Key (FK)
--
One to one
- On peut avoir deux tables différentes qui se référencent par une FK dont on force l'unicité
- On s'assure ainsi qu'un pays a un seul représentant et que ce représentant ne soit pas associé à d'autres pays
--
One to many
- Quand la FK n'est pas unique, on peut avoir plusieurs rows qui ont la même valeur en FK
- Une classe n'aura qu'un seul professeur, mais un professeur peut enseigner plusieurs classes différentes
--
Many to many
- Quand on décrit une représentation many-to-many, on utilise une table de jointure pour s'assurer de la cohérence des entrées
- La PK de la table de jointure peut-être simple (ID) mais souvent composite (les deux FK couplées)
- Un étudiant accède à plusieurs classes, et les classes ont plusieurs étudiants qui y viennent
--
Schema
- La représentation de ces tables et de leurs relations forme le schema
--
Interactions
- On interagis avec la BDD en SQL (Structured Query Language)
- On décrit ce qu'on veut, d'ou on le veut, on filtre sous quelles conditions on le veut et on traverse ainsi les relations de la BDD
--
Jointures
- On a plusieurs moyen de traverser et combiner les relations de notre BDD
--
ORM
- On aime bien utiliser des ORM pour représenter et interagir plus naturellement avec la BDD dans un langage OO















