Base de données 2

Base de données 2


1- Laboratoire 1

2- Laboratoire 2

3- Analyse préliminaire

Les concepts de base de données sont transférables d'un écosystème à l'autre, mais il est important de se familiariser avec leur implémentation spécifique dans la plateforme utilisée. Vous aurez l'occasion d'expérimenter les mécaniques de quelques enjeux de base de données dans l'écosystème Rails/MariaDB. À partir du projet fourni, vous devez:

👉 Projet de départ

Assurez-vous de respecter les configurations du projet pour mettre en place votre environnement de développement

đź‘€ MariaDB

Instrumentation

Par défaut, Rails affiche les requêtes SQL dans la console du serveur

Il existe également un utilitaire s'intégrant directement à la page web (attention! entre en conflit avec prettifier)

Un utilitaire Ruby permet de mesurer les performances lors de l'exécution

Une autre approche consiste à analyser le code via un outil qui repère certains patterns d'implémentation

ou de rédaction

👉 Expérimentez!

Ces outils sont pratiques pour vous donner de la visibilité sur le comportement de votre application et constater l'impact des changements effectués.

Schéma sommaire

Comparez différents mécanismes permettant de constater la structure de la base de données

Élaborez le schéma sommaire des entités applicatives en combinant les informations de la base de données et des modèles.

Exemple

âś… Livrable

Intégrité

La base de données est le dernier rempart de l'intégrité(relationnelle ET données), toutefois, les mécanismes logiciels facilitent grandement l'implémentation des fonctionnalités applicatives. Pour offrir une rétroaction pertinente, il faut implémenter les mécanismes dans la couche applicative de façon exhaustive.

âś… Livrable

Failles

Lorsqu'on accepte des données externes(url, formulaire, etc.), on doit faire preuve d'une grande prudence en les traitant dans le code applicatif, et ce peut-importe la technologie.

Les traitements en lien avec la base de données représentent une porte d'entrée permettant aux acteurs malicieux de récupérer des données qu'il ne devrait pas voir ou d'introduire des valeurs indésirables dans le système.

Rails offre des mécanismes permettant de prévenir ces vulnérabilités, mais ils doivent être utilisé de façon délibérée.

âś… Livrable

Données de test

Pour permettre une analyse exhaustive des interactions d'une application avec la base de données, il est judicieux de reproduire un environnement de test représentatif des données réelles, ou à tout le moins du même ordre de grandeur.

âś… Livrable

SQL brut

Élaborez un rapport présentant des statistiques pertinentes des données de l'application en explorant l'implémentation en SQL brut via les méthodes

âś… Livrable

N + 1

Les requêtes N + 1 peuvent être une source de ralentissement majeur dans la récupération des données. Rails offre plusieurs mécanismes pour résoudre cette problématique

On peut appliquer des notions de dénormalisation pour accélérer certaines récupérations de données, Rails fourni un raccourci pour les compteurs

âś… Livrable

Remise

Avant vendredi 30 janvier @ 17h30

Base de données 2

Nom

Rapport
PDF 0     -0.5     -1
Mise en page, prĂ©sentation, clartĂ© 0     -0.5     -1
Schéma sommaire
Schemas: ruby, sql 1     0.5     0
mariadb-dump: structure, sans bd, sans donnĂ©es 1     0.5     0
Diagramme: tables applicatives, multiplicitĂ©s, polymorphisme 2     1.5     1     0
Intégrité
ImplĂ©mentation 4     3.5     3     2     1     0
Failles
Correctifs SQLi, IDOR, Mass Assign 3     2.5     2     1     0
Documentation SQLi, IDOR, Mass Assign 2     1.5     1     0
Données de test
ImplĂ©mentation 1     0.5     0
Documentation 2     1.5     1     0
SQL Brut
ImplĂ©mentation, pertinence des statistiques 2     1.5     1     0
Documentation 1     0.5     0
N + 1
ImplĂ©mentation, n + 1, counter cache 3     2.5     2     1     0
Documentation itĂ©rative 2     1.5     1     0