Реляционная модель данных. Ключи — различия между версиями
(Добавлены отличия таблиц от отношений.) |
(Добавлены знания по отношениям.) |
||
Строка 3: | Строка 3: | ||
'''Реляционная модель данных''' — это модель данных, тра-ля-ля логики первого порядка <ref>[https://en.wikipedia.org/wiki/First-order_logic First-order logic — Wikipedia]</ref>}} | '''Реляционная модель данных''' — это модель данных, тра-ля-ля логики первого порядка <ref>[https://en.wikipedia.org/wiki/First-order_logic First-order logic — Wikipedia]</ref>}} | ||
− | == | + | == Отношение == |
− | === | + | === Определение и пример === |
− | === | + | {{Определение |
− | = | + | |definition = |
− | === | + | '''Отношение''' — это кортеж с именем, состоящий из (Заголовок, Тело), где: |
+ | * Заголовок отношения — описание данных, представляющее собой множество пар <code>{имя: тип}</code>, | ||
+ | * Тело отношения — данные, представляющие собой множество множеств пар <code>{имя: значение}</code>.}} | ||
+ | Заданное отношение соответствует тому, что называется расширением предиката<ref>[https://en.wikipedia.org/wiki/Extension_(predicate_logic) Extension (predicate logic) — Wikipedia]</ref> в логике первого порядка. | ||
+ | |||
+ | ''' Пример отношения ''' | ||
+ | |||
+ | '''{id: int, name: string}''' | ||
+ | {{id: 10, name: Иванов}, | ||
+ | {id: 20}} | ||
+ | |||
+ | === Отношения и математика === | ||
+ | |||
+ | <tex> | ||
+ | R = (\{a_1:T_1,a_2:T_2,\dots,a_n:T_n\},\{\{a_1:v_1,a_2:v_2,\dots ,a_n:v_n\},\dots\}) \\ | ||
+ | R(a_1,a_2,\dots ,a_n)⊂T_1×T_2×\cdots×T_n \\ | ||
+ | \;\;(v_1,v_2,\dots ,v_n)∈T_1×T_2×\cdots×T_n</tex> | ||
+ | |||
+ | === Отношения и таблицы === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Строка 18: | Строка 36: | ||
| Таблица – список строк || Отношение – множество кортежей | | Таблица – список строк || Отношение – множество кортежей | ||
|} | |} | ||
− | |||
== Ключи == | == Ключи == |
Версия 11:26, 29 декабря 2020
Определение: |
Реляционная модель данных — это модель данных, тра-ля-ля логики первого порядка [1] |
Содержание
Отношение
Определение и пример
Определение: |
Отношение — это кортеж с именем, состоящий из (Заголовок, Тело), где:
|
Заданное отношение соответствует тому, что называется расширением предиката[2] в логике первого порядка.
Пример отношения
{id: int, name: string} {{id: 10, name: Иванов}, {id: 20}}
Отношения и математика
Отношения и таблицы
Таблицы | Отношения |
---|---|
Столбцы – список | Атрибуты – множество |
Строки – элемент расширенного декартова произведения | Кортежи – элемент декартова произведения |
Таблица – список строк | Отношение – множество кортежей |
Ключи
Надключи
Ключи
Требования к ключам
Естественные и суррогатные ключи
Выбор ключей
Примечания
Литература
- Дейт К. : Введение в системы баз данных (Глава 9)
- Уидом Д., Ульман Д. : Основы реляционных баз данных (Глава 3)
- W.W. Armstrong : Dependency Structures of Data Base Relationships