Модели данных и языки запросов
Модели данных — это концептуальные основы, которые определяют, как данные структурируются, связываются и ограничиваются, а языки запросов — это формальные обозначения, используемые для извлечения и манипулирования данными в рамках этих моделей.
Definition
Модель данных — это набор концептуальных инструментов для описания данных, связей между данными, семантики данных и ограничений согласованности; язык запросов — это нотация для запроса информации из базы данных, выраженной в такой модели, и ее модификации.
Scope
Эта область охватывает абстракции, используемые для описания данных — реляционную модель, диаграммы «сущность-связь», а также полуструктурированные и документные модели — вместе с декларативными и алгебраическими языками, главным образом реляционной алгеброй и SQL, используемыми для выражения запросов и обновлений к ним. Она рассматривает, как модель определяет схемы, экземпляры, ключи и ограничения целостности, и как выразительная способность языка запросов связана с базовой моделью. Она исключает физическое хранение, индексирование и выполнение запросов (рассматриваемые в обработке и оптимизации запросов) и дисциплину проектирования по уточнению схем (рассматриваемую в проектировании баз данных и нормализации).
Sub-topics
Core questions
- Как модель данных представляет сущности, связи и ограничения?
- Какова связь между реляционной моделью, реляционной алгеброй и SQL?
- Как концептуальный дизайн «сущность-связь» отображается на логическую реляционную схему?
- Как полуструктурированные и документные модели обменивают жесткие схемы на гибкость?
- Что определяет выразительную мощность и ограничения языка запросов?
Key concepts
- отношение, кортеж и атрибут
- схема и экземпляр
- ключи и ограничения целостности
- реляционная алгебра
- SQL
- диаграмма «сущность-связь»
- полуструктурированные данные
- документные и JSON-модели
- независимость данных
Key theories
- Реляционная модель
- Реляционная модель Кодда представляет все данные как отношения (наборы кортежей по именованным атрибутам), отделяя логическое представление данных от их физического хранения и обеспечивая математическую основу, базирующуюся на теории множеств и предикатной логике.
- Реляционная полнота
- Язык запросов является реляционно полным, если он может выразить любой запрос, выразимый в реляционной алгебре; этот критерий, введенный Коддом, устанавливает базовый уровень для выразительной мощности практических языков, таких как SQL.
- Модель «сущность-связь»
- Модель «сущность-связь» Чена описывает мир в терминах сущностей, их атрибутов и связей между ними, предоставляя высокоуровневую нотацию концептуального проектирования, которая может быть систематически преобразована в реляционные схемы.
Clinical relevance
Модели данных и языки запросов являются основой практически всех информационных систем: реляционная модель и SQL лежат в основе корпоративных баз данных, финансовых систем и веб-бэкендов, в то время как моделирование «сущность-связь» структурирует анализ требований, а документные и полуструктурированные модели поддерживают гибкое хранение веб-данных, логов и конфигурационных данных.
History
Ранние базы данных использовали иерархические и сетевые (CODASYL) модели с навигацией, привязанной к физическому хранению. Реляционная модель Кодда 1970 года ввела независимость данных и декларативную алгебру; это привело к появлению System R и Ingres в 1970-х годах и к SQL, который стал стандартом ISO. Модель «сущность-связь» Чена 1976 года добавила концептуальный уровень проектирования, а полуструктурированные и документные модели появились с развитием веба и XML в конце 1990-х годов.
Key figures
- Edgar F. Codd
- Peter Chen
- Jeffrey D. Ullman
- Jennifer Widom
Related topics
Seminal works
- codd1970
- chen1976
- silberschatz2019
Frequently asked questions
- В чем разница между реляционной алгеброй и SQL?
- Реляционная алгебра — это процедурный математический язык операторов (выборка, проекция, соединение, объединение и т. д.) над отношениями, используемый для рассуждений о запросах и их оптимизации. SQL — это практический декларативный язык, используемый в реальных системах; он основан на реляционной алгебре и исчислении, но добавляет такие функции, как группировка, агрегация, обработка NULL-значений и семантика мультимножеств (мешков).
- Зачем моделировать данные концептуально перед проектированием таблиц?
- Концептуальные модели, такие как диаграммы «сущность-связь», фиксируют требования на языке, понятном пользователям — вещи и связи между ними — независимо от реализации. Преобразование проверенного концептуального дизайна в реляционные таблицы уменьшает избыточность и ошибки проектирования по сравнению с непосредственным созданием таблиц.