Héritage Flashcards
Quel est l’objectif principal du projet ‘Dressing’ présenté dans le cours ?
Concevoir et implanter une base de données et une application pour gérer un dressing et faire de l’aide à la décision pour le choix des tenues
Quels sont les principaux outils utilisés dans le projet ‘Dressing’ ?
PostgreSQL, Data Mapper/OrmLite, Java, JDBC
Qu’est-ce que JDBC ?
Java DataBase Connectivity, une bibliothèque d’interfaces et de classes pour communiquer avec un SGBDR et manipuler des requêtes SQL
Quel est l’objectif d’un ORM (Object Relational Mapping) ?
Cacher la façon dont sont stockées les données à la couche métier
Quelles sont les deux principales formes de mise en œuvre d’un ORM ?
Via un logiciel ORM ou “à la main”
Quelle est la principale différence entre la modélisation de l’héritage via les tables filles et via INHERITS en PostgreSQL ?
Avec INHERITS, on garde le concept général plus proche de la modélisation logique, alors qu’avec les tables filles, on perd certains concepts logiques
Quel est un avantage majeur de l’utilisation d’INHERITS en PostgreSQL pour l’héritage ?
La possibilité de récupérer l’ensemble de l’information des tables filles en une seule requête
Citez un inconvénient majeur de l’utilisation d’INHERITS en PostgreSQL pour l’héritage
Les contraintes d’intégrité (comme les clés primaires et étrangères) ne sont pas héritées automatiquement
Quelle commande SQL permet de créer une table héritant d’une autre table en PostgreSQL ?
CREATE TABLE NomTable (…) INHERITS(TableParente);
Comment peut-on accéder uniquement aux données de la table mère lors de l’utilisation d’INHERITS en PostgreSQL ?
En utilisant le mot-clé ONLY dans la requête SELECT, par exemple : SELECT * FROM ONLY TableMere;
Quel est le principal problème lié aux contraintes d’intégrité lors de l’utilisation d’INHERITS en PostgreSQL ?
Les contraintes de clé primaire et de clé étrangère ne sont pas héritées par les tables filles
Quelle est la première étape recommandée avant de se lancer dans l’implémentation d’un projet de base de données ?
Réaliser la logique métier de l’application, par exemple en créant un diagramme de classe
Quelle est l’importance de penser la logique métier indépendamment de la persistance des données ?
Cela permet une meilleure conception et une plus grande flexibilité dans l’implémentation
Quel est l’avantage d’implanter progressivement un projet de base de données ?
Cela permet de mieux gérer la complexité et de tester chaque partie au fur et à mesure
Quelle est la première étape du processus théorique pour réaliser une base de données ?
La récolte des informations réelles permettant de concevoir le schéma de très haut niveau
Qu’est-ce que la normalisation dans le contexte des bases de données ?
C’est le processus de décomposition des relations pour éliminer les redondances et les dépendances anormales
Pourquoi est-il important de considérer le volume de données à traiter lors de la conception d’une base de données ?
Pour déterminer s’il faut définir des index et optimiser les performances
Quel est le rôle des index dans une base de données ?
Ils permettent d’accélérer les requêtes fréquentes sur certains attributs
Pourquoi est-il important d’analyser les types de requêtes qui seront mises en œuvre sur la base ?
Pour optimiser la structure de la base et les index en fonction des accès les plus fréquents
Quelle est l’importance de considérer l’utilisation prévue de la base (consultation vs modification) lors de sa conception ?
Cela influence la gestion de la concurrence et les performances globales du système
Quelles sont les trois principales étapes du projet ‘Dressing’ mentionnées dans le cours ?
- Réalisation du modèle E-A, 2. Passage au modèle relationnel, 3. Discussion sur les contraintes d’intégrité
Qu’est-ce qu’un modèle E-A ?
Un modèle Entité-Association, utilisé pour représenter conceptuellement les données et leurs relations
Que signifie CIs dans le contexte du cours ?
Contraintes d’Intégrité
Quelle est la différence entre un modèle conceptuel et un modèle relationnel ?
Le modèle conceptuel (comme E-A) représente les concepts et leurs relations, tandis que le modèle relationnel traduit ces concepts en tables et relations pour une base de données
Qu’est-ce qu’un trigger dans une base de données ?
Un trigger est un mécanisme qui déclenche automatiquement une action en réponse à certains événements dans la base de données
Que signifie CRUD dans le contexte des bases de données ?
Create, Read, Update, Delete - les quatre opérations fondamentales sur les données
Quel est le rôle d’un Data Mapper dans l’architecture d’une application ?
Un Data Mapper fait le lien entre les objets de l’application et les tables de la base de données, facilitant la persistance des données
Quelle est la principale différence entre un ORM et un Data Mapper ?
Un ORM est généralement plus complet et automatisé, tandis qu’un Data Mapper offre plus de contrôle manuel sur le mapping entre objets et données
Pourquoi utiliser INHERITS en PostgreSQL peut poser des problèmes de contraintes d’intégrité ?
Les contraintes de clé primaire et de clé étrangère ne sont pas automatiquement héritées par les tables filles
Comment peut-on compenser les limitations de INHERITS en PostgreSQL ?
En utilisant des triggers pour vérifier manuellement les contraintes d’intégrité qui ne sont pas héritées
Qu’est-ce que le partitionnement dans le contexte des bases de données ?
C’est une technique qui divise une grande table en plusieurs parties plus petites pour améliorer les performances et faciliter la gestion
Pourquoi est-il important de réaliser un diagramme de classe avant d’implémenter une base de données ?
Pour avoir une vue d’ensemble claire de la logique métier et des relations entre les entités avant de les traduire en tables
Qu’est-ce qu’une vue dans une base de données ?
Une vue est une table virtuelle basée sur le résultat d’une requête SQL, utilisée pour simplifier les requêtes complexes ou limiter l’accès aux données
Que signifie la “dénormalisation” dans le contexte des bases de données ?
C’est le processus d’ajout de redondances contrôlées dans une base de données normalisée pour améliorer les performances de lecture
Pourquoi analyser le volume de données est-il important lors de la conception d’une base de données ?
Pour déterminer la nécessité d’index, optimiser les requêtes et choisir les bonnes stratégies de stockage et de partitionnement
Qu’est-ce qu’un index primaire dans une base de données ?
Un index créé sur la clé primaire d’une table pour accélérer les recherches basées sur cette clé
Qu’est-ce qu’un index secondaire dans une base de données ?
Un index créé sur des colonnes autres que la clé primaire pour accélérer certaines requêtes spécifiques
Pourquoi la gestion de la concurrence est-elle importante dans une base de données ?
Pour assurer l’intégrité des données lorsque plusieurs utilisateurs modifient simultanément la base de données
Que signifie “mapping” dans le contexte des bases de données et des applications ?
C’est le processus de liaison entre les structures de données de l’application (objets) et les structures de la base de données (tables)
Pourquoi est-il recommandé d’implanter progressivement un projet de base de données ?
Pour gérer la complexité, tester chaque partie au fur et à mesure, et faciliter la détection et la correction des erreurs