Реляционная модель данных. Ключи — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
м (rollbackEdits.php mass rollback)
 
Строка 1: Строка 1:
{| class="wikitable" align="center" style="color: red; background-color: black; font-size: 56px; width: 800px;"
 
|+
 
|-align="center"
 
|'''НЕТ ВОЙНЕ'''
 
|-style="font-size: 16px;"
 
|
 
24 февраля 2022 года российское руководство во главе с Владимиром Путиным развязало агрессивную войну против Украины. В глазах всего мира это военное преступление совершено от лица всей страны, всех россиян.
 
 
Будучи гражданами Российской Федерации, мы против своей воли оказались ответственными за нарушение международного права, военное вторжение и массовую гибель людей. Чудовищность совершенного преступления не оставляет возможности промолчать или ограничиться пассивным несогласием.
 
 
Мы убеждены в абсолютной ценности человеческой жизни, в незыблемости прав и свобод личности. Режим Путина — угроза этим ценностям. Наша задача — обьединить все силы для сопротивления ей.
 
 
Эту войну начали не россияне, а обезумевший диктатор. И наш гражданский долг — сделать всё, чтобы её остановить.
 
 
''Антивоенный комитет России''
 
|-style="font-size: 16px;"
 
|Распространяйте правду о текущих событиях, оберегайте от пропаганды своих друзей и близких. Изменение общественного восприятия войны - ключ к её завершению.
 
|-style="font-size: 16px;"
 
|[https://meduza.io/ meduza.io], [https://www.youtube.com/c/popularpolitics/videos Популярная политика], [https://novayagazeta.ru/ Новая газета], [https://zona.media/ zona.media], [https://www.youtube.com/c/MackNack/videos Майкл Наки].
 
|}
 
 
 
{{Определение
 
{{Определение
 
|definition =
 
|definition =

Текущая версия на 19:34, 4 сентября 2022

Определение:
Реляционная модель данных — это модель данных, построенная на логике первого порядка [1], где все данные представлены в виде кортежей, связанных отношениями.


Отношение

Определение и пример

Определение:
Отношение — это кортеж с именем, состоящий из (Заголовок, Тело), где:
  • Заголовок отношения — описание данных, представляющее собой множество пар {имя: тип},
  • Тело отношения — данные, представляющие собой множество множеств пар {имя: значение}.

Заданное отношение соответствует тому, что мы называли расширением предиката [2] в логике первого порядка.

Пример отношения

{id: int, name: string}
{{id: 10, name: Иванов},
 {id: 20}}

Отношения и математика

[math]
 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[/math]

Отношения и таблицы

Изоморфизму — нет, различиям — да!

Таблицы Отношения
Столбцы – список Атрибуты – множество
Строки – элемент расширенного декартова произведения Кортежи – элемент декартова произведения
Таблица – список строк Отношение – множество кортежей

Ключи

Надключи

Определения

Определение:
Пусть R — отношение. Будем говорить, что заданное множество атрибутов R обладает свойством уникальности, если в любой конкретный момент времени никакие два кортежа в R не являются дубликатами друг друга.

По определению, множество всех атрибутов R обладает свойством уникальности.

Определение:
Возьмем любое множество атрибутов отношения R, это множество является надключом для R тогда и только тогда, когда оно обладает одновременно двумя перечисленными ниже свойствами:
  • Обладает свойством уникальности.
  • В проекции на надключ нет повторяющихся кортежей.

Как следствия приходим к следующему определению надключа:

Определение:
Надключ является идентификатором кортежа.


Пример

Пример таблицы с паспортными данными
SId PassS PassNo LastName FirstName
1 0000 123456 Иванов Иван
2 0001 098765 Петров Петр
3 0001 654321 Сидоров Сидр
4 0007 567890 Плюшкин Иван

Сколько надключей в таблице с паспортными данными?

Очевидно, что [math]SId[/math] и [math]\{PassS, PassNo\}[/math] сами по себя являются надключами. Тогда рассмотрим все возможные множества, которые содержат любой из этих надключ:

  • Все для [math]SId[/math]: [math]1+C_4^1+C_4^2+C_4^3+C_4^4= 16[/math]
  • Все без [math]SId[/math] для [math]\{PassS, PassNo\}[/math]: [math]1+C_2^1+C_2^2= 4[/math]

Итого: [math]16 + 4 = 20[/math]

Ключи

Определения

Определение:
Ключ — минимальный по включению надключ.

Учитывая то, что у любого множества атрибутов отношения R существует надключ в виде множества всех атрибутов R, то ключ всегда можно найти, минимизировав этот надключ.

Как следствия приходим к следующему определению:

Определение:
Ключ является минимальным идентификатором кортежа.


Ключи для таблицы с паспортными данными:

  • [math]SId[/math]
  • [math]\{PassS, PassNo\}[/math]

Требования к ключам

Определение:
Пусть R — отношение. Будем говорить, что заданное множество атрибутов R обладает свойством неизменности, если в любой конкретный момент времени никакое строгое подмножество множества атрибутов не обладает свойством уникальности.

Ключи должны удовлетворять следующим свойствам:

  • Уникальность
  • Неизменность

Естественные и суррогатные ключи

Различия суррогатных и натуральных ключей (виды ключей [3]):

  • Натуральные – соответствуют бизнес-правилам, часто составные
  • Суррогатные – простые и эффективные

Примечания

Литература

  • Дейт К. : Введение в системы баз данных (Глава 9)
  • Уидом Д., Ульман Д. : Основы реляционных баз данных (Глава 3)
  • W.W. Armstrong : Dependency Structures of Data Base Relationships

Ссылки