Реляционная модель данных. Ключи — различия между версиями
(Изменена структура.) |
|||
| Строка 102: | Строка 102: | ||
=== Ключи === | === Ключи === | ||
| − | ==== Определения ===== | + | ==== Определения ==== |
| + | {{Определение | ||
| + | |definition = | ||
| + | '''Ключ''' — минимальный по включению надключ. | ||
| + | }} | ||
| + | Учитывая то, что у любого множества атрибутов отношения R существует надключ в виде множества всех атрибутов R, то ключ всегда можно найти, минимизировав этот надключ. | ||
| + | |||
| + | Ключ является '''минимальным идентификатором''' кортежа. | ||
| + | |||
| + | Ключи для таблицы с паспортными данными: | ||
| + | * <tex>SId</tex> | ||
| + | * <tex>\{PassS, PassNo\}</tex> | ||
| + | |||
==== Требования к ключам ==== | ==== Требования к ключам ==== | ||
| + | {{Определение | ||
| + | |definition = | ||
| + | Пусть R — отношение. Будем говорить, что заданное множество атрибутов R обладает свойством '''неизменности''', если в любой конкретный момент времени никакое строгое подмножество множества атрибутов не обладает свойством уникальности. | ||
| + | }} | ||
| + | |||
| + | Ключи должны удовлетворять следующим свойствам: | ||
| + | * Уникальность | ||
| + | * Неизменность | ||
| + | |||
==== Естественные и суррогатные ключи ==== | ==== Естественные и суррогатные ключи ==== | ||
| − | + | Натуральные ключи vs. суррогатные: | |
| + | * Натуральные – соответствуют бизнес-правилам, часто составные | ||
| + | * Суррогатные – простые и эффективные | ||
== Примечания == | == Примечания == | ||
Версия 14:31, 29 декабря 2020
| Определение: |
| Реляционная модель данных — это модель данных, построенная на логике первого порядка [1], где все данные представлены в виде кортежей, связанных отношениями. |
Содержание
Отношение
Определение и пример
| Определение: |
Отношение — это кортеж с именем, состоящий из (Заголовок, Тело), где:
|
Заданное отношение соответствует тому, что мы называли расширением предиката [2] в логике первого порядка.
Пример отношения
{id: int, name: string}
{{id: 10, name: Иванов},
{id: 20}}
Отношения и математика
Отношения и таблицы
Изоморфизму — нет, различиям — да!
| Таблицы | Отношения |
|---|---|
| Столбцы – список | Атрибуты – множество |
| Строки – элемент расширенного декартова произведения | Кортежи – элемент декартова произведения |
| Таблица – список строк | Отношение – множество кортежей |
Ключи
Надключи
Определения
| Определение: |
| Пусть R — отношение. Будем говорить, что заданное множество атрибутов R обладает свойством уникальности, если в любой конкретный момент времени никакие два кортежа в R не являются дубликатами друг друга. |
По определению, множество всех атрибутов R обладает свойством уникальности.
| Определение: |
Возьмем любое множество атрибутов отношения R, это множество является надключом для R тогда и только тогда, когда оно обладает одновременно двумя перечисленными ниже свойствами:
|
Надключ является идентификатором кортежа.
Пример
| SId | PassS | PassNo | LastName | FirstName |
|---|---|---|---|---|
| 1 | 0000 | 123456 | Иванов | Иван |
| 2 | 0001 | 098765 | Петров | Петр |
| 3 | 0001 | 654321 | Сидоров | Сидр |
| 4 | 0007 | 567890 | Плюшкин | Иван |
Сколько надключей в таблице с паспортными данными?
Очевидно, что и сами по себя являются надключами. Тогда рассмотрим все возможные множества, которые содержат любой из этих надключ:
- Все для :
- Все без SId для :
Итого:
Ключи
Определения
| Определение: |
| Ключ — минимальный по включению надключ. |
Учитывая то, что у любого множества атрибутов отношения R существует надключ в виде множества всех атрибутов R, то ключ всегда можно найти, минимизировав этот надключ.
Ключ является минимальным идентификатором кортежа.
Ключи для таблицы с паспортными данными:
Требования к ключам
| Определение: |
| Пусть R — отношение. Будем говорить, что заданное множество атрибутов R обладает свойством неизменности, если в любой конкретный момент времени никакое строгое подмножество множества атрибутов не обладает свойством уникальности. |
Ключи должны удовлетворять следующим свойствам:
- Уникальность
- Неизменность
Естественные и суррогатные ключи
Натуральные ключи vs. суррогатные:
- Натуральные – соответствуют бизнес-правилам, часто составные
- Суррогатные – простые и эффективные
Примечания
Литература
- Дейт К. : Введение в системы баз данных (Глава 9)
- Уидом Д., Ульман Д. : Основы реляционных баз данных (Глава 3)
- W.W. Armstrong : Dependency Structures of Data Base Relationships