Modèles de données et langages de requête
Les modèles de données sont les cadres conceptuels qui spécifient la manière dont les données sont structurées, liées et contraintes, et les langages de requête sont les notations formelles utilisées pour récupérer et manipuler les données au sein de ces modèles.
Definition
Un modèle de données est une collection d'outils conceptuels pour décrire les données, les relations entre données, la sémantique des données et les contraintes de cohérence ; un langage de requête est une notation permettant de demander des informations à, et de modifier, une base de données exprimée dans un tel modèle.
Scope
Ce domaine couvre les abstractions utilisées pour décrire les données — le modèle relationnel, les diagrammes entité-association, et les modèles semi-structurés et de documents — ainsi que les langages déclaratifs et algébriques, principalement l'algèbre relationnelle et SQL, utilisés pour exprimer des requêtes et des mises à jour sur ces modèles. Il traite de la manière dont un modèle définit les schémas, les instances, les clés et les contraintes d'intégrité, et comment l'expressivité d'un langage de requête est liée au modèle sous-jacent. Il exclut le stockage physique, l'indexation et l'exécution des requêtes (couverts dans le traitement et l'optimisation des requêtes) et la discipline de conception de l'affinage des schémas (couverte dans la conception de bases de données et la normalisation).
Sub-topics
Core questions
- Comment un modèle de données représente-t-il les entités, les relations et les contraintes ?
- Quelle est la relation entre le modèle relationnel et l'algèbre relationnelle et SQL ?
- Comment une conception conceptuelle entité-association est-elle mappée à un schéma relationnel logique ?
- Comment les modèles semi-structurés et de documents échangent-ils des schémas rigides contre de la flexibilité ?
- Qu'est-ce qui détermine la puissance expressive et les limites d'un langage de requête ?
Key concepts
- relation, tuple et attribut
- schéma et instance
- clés et contraintes d'intégrité
- algèbre relationnelle
- SQL
- diagramme entité-association
- données semi-structurées
- modèles de documents et JSON
- indépendance des données
Key theories
- Le modèle relationnel
- Le modèle relationnel de Codd représente toutes les données comme des relations (ensembles de tuples sur des attributs nommés), séparant la vue logique des données de leur stockage physique et fournissant une base mathématique fondée sur la théorie des ensembles et la logique des prédicats.
- Complétude relationnelle
- Un langage de requête est relationnellement complet s'il peut exprimer toute requête exprimable dans l'algèbre relationnelle ; ce critère, introduit par Codd, établit une base pour la puissance expressive des langages pratiques tels que SQL.
- Le modèle entité-association
- Le modèle entité-association de Chen décrit le monde en termes d'entités, de leurs attributs et des relations entre elles, fournissant une notation de conception conceptuelle de haut niveau qui peut être systématiquement traduite en schémas relationnels.
Clinical relevance
Les modèles de données et les langages de requête sont le fondement de pratiquement tous les systèmes d'information : le modèle relationnel et SQL sous-tendent les bases de données d'entreprise, les systèmes financiers et les back-ends web, tandis que la modélisation entité-association structure l'analyse des exigences, et les modèles de documents et semi-structurés prennent en charge le stockage flexible des données web, de journalisation et de configuration.
History
Les premières bases de données utilisaient des modèles hiérarchiques et réseau (CODASYL) avec une navigation liée au stockage physique. Le modèle relationnel de Codd de 1970 a introduit l'indépendance des données et une algèbre déclarative ; cela a conduit à System R et Ingres dans les années 1970 et à SQL, qui est devenu une norme ISO. Le modèle entité-association de Chen de 1976 a ajouté une couche de conception conceptuelle, et les modèles semi-structurés et de documents ont émergé avec le web et XML à la fin des années 1990.
Key figures
- Edgar F. Codd
- Peter Chen
- Jeffrey D. Ullman
- Jennifer Widom
Related topics
Seminal works
- codd1970
- chen1976
- silberschatz2019
Frequently asked questions
- Quelle est la différence entre l'algèbre relationnelle et SQL ?
- L'algèbre relationnelle est un langage mathématique procédural d'opérateurs (sélection, projection, jointure, union, etc.) sur des relations, utilisé pour raisonner sur et optimiser les requêtes. SQL est le langage déclaratif pratique utilisé dans les systèmes réels ; il est basé sur l'algèbre et le calcul relationnels mais ajoute des fonctionnalités telles que le regroupement, l'agrégation, la gestion des valeurs nulles et la sémantique multi-ensemble (sac).
- Pourquoi modéliser les données de manière conceptuelle avant de concevoir les tables ?
- Les modèles conceptuels, tels que les diagrammes entité-association, capturent les exigences dans des termes que les utilisateurs comprennent — les choses et les relations entre elles — indépendamment de l'implémentation. La traduction d'une conception conceptuelle validée en tables relationnelles réduit la redondance et les erreurs de conception par rapport à l'invention directe de tables.