Реляционная структура данных

Содержание

Слайд 2

СОДЕРЖАНИЕ Отношение в математике Определение отношения Домены, атрибуты, схемы и экземпляры

СОДЕРЖАНИЕ

Отношение в математике
Определение отношения
Домены, атрибуты, схемы и экземпляры реляционных отношений
Отношения

и таблицы
Ключи отношений
Слайд 3

Неформальное введение в отношения Форма представления: табличная С помощью условия Отношение

Неформальное введение в отношения

Форма представления:
табличная
С помощью условия

Отношение – это ассоциация между

различным количеством сущностей.

Нравится предм. Явл. больше Поставка Кому Какой Первое Второе Кто Кому Что Сколько
Иван СУБД 5 3 П1 К7 винт 200
Петр С 17 5 П3 К14 гайка 150
Игнат XML 2 1 П18 К9 скрепка 1000

Слайд 4

Определение отношения Пусть дана совокупность множеств D1, D2,…, Dn (не обязательно

Определение отношения

Пусть дана совокупность множеств D1, D2,…, Dn (не обязательно различных).

Отношение R, определенное на этих множествах, есть множество упорядоченных n-ок или кортежей (d1, d2,…, dn), таких, что d1 ∈ D1, …, dn ∈ Dn

Пусть дана совокупность множеств D1, D2,…, Dn (не обязательно различных). Декартовым произведением этих множеств (записывается как D1 × D2 ×…× Dn) является множество всех возможных упорядоченных n-ок кортежей (d1, d2,…, dn), таких, что d1 ∈ D1, …, dn ∈ Dn. R является отношением на D1, D2,…, Dn, если:
R ⊆ D1 × D2 ×…× Dn

Слайд 5

Сопутствующие понятия Множества D1, D2,…, Dn называются доменами отношения R .

Сопутствующие понятия

Множества D1, D2,…, Dn называются доменами отношения R .
Величина

n называется степенью отношения R или его арностью
Количество кортежей в отношении называется его кардинальным числом (кардинальность). Кортеж – строка отношения.

D1 D2 … Dn
R a11 a12 … a1n a21 a22 … a2n . . . ak1 ak2 … akn

Домены

Степень, арность

Кардинальность

Имя отношения

Отношение

Кортеж

Слайд 6

Представление бинарных отношений Матричное Табличное Графическое Логическое условие: R(x,y,...,z) = {(x,y,...,z) | φ(x,y,...,z)}

Представление бинарных отношений

Матричное Табличное Графическое

Логическое условие: R(x,y,...,z) = {(x,y,...,z) | φ(x,y,...,z)}

Слайд 7

Основные операции над отношениями Объединение: R ∪ S = {t |

Основные операции над отношениями

Объединение: R ∪ S = {t | t

∈ R ∨ t ∈ S}
Пересечение: R ∩ S = {t | t ∈ R & t ∈ S}
Дополнение: ¬R = {t | t ∉ R}
Декартово произведение: R × S = {(r,s) | r ∈ R & s ∈ S }
Слайд 8

Свойства бинарных отношений Рефлексивность: Отношение R рефлексивно, если: ∀a R(a, a).

Свойства бинарных отношений

Рефлексивность: Отношение R рефлексивно, если:
∀a R(a, a).
Симметричность: Отношение R

симметрично, если: ∀a∀b (R(a, b) ⇒ R(b, a))
Транзитивность: Отношение R транзитивно, если: ∀a∀b∀с (R(a, b) & R(b, с) ⇒ R(a, c)).
Антисимметричность: Отношение R антисимметрично, если:
∀a∀b (R(a, b) & R(b, a) ⇒ a = b).
Слайд 9

Примеры бинарных отношений Отношение Быть-похожим(x,y) является рефлексивным (любой индивид похож сам

Примеры бинарных отношений

Отношение Быть-похожим(x,y) является рефлексивным (любой индивид похож сам

на себя), симметричным (если некто b похож на d, то и d похож на b), но не транзитивным (вполне возможна такая цепочка похожих индивидов, что крайние в этой цепочке индивиды совершенно не похожи).
Отношение Быть-выше(x,y) является транзитивным, но не рефлексивным и симметричным.
Отношение Быть равным (=) является рефлексивным, симметричным и транзитивным.
Отношение Преподавать(x,y) не является ни симметричным, ни рефлексивным, ни транзитивным.
Слайд 10

Схема реляционного отношения В математике порядок «столбцов» отношения существенен Является больше

Схема реляционного отношения

В математике порядок «столбцов» отношения существенен

Является больше Является

больше 5 3 3 5 17 5 5 17

В реляционной структуре данных порядок следования «столбцов» не существенен. Это достигается за счет введения понятия атрибута.

Атрибут – это поименованный столбец отношения

Слайд 11

Свойства атрибутов и схемы Свойства атрибутов в реляционной модели данных: Любой

Свойства атрибутов и схемы

Свойства атрибутов в реляционной модели данных:
Любой атрибут

в отношении имеет имя
Множество допустимых значений каждого из атрибутов называется его доменом
Различные атрибуты могут быть определены на одном и том же домене
Значения атрибутов должны быть атомарными

Свойства схемы реляционного отношения:
Каждая схема отношения имеет имя
Имена атрибутов в схеме должны быть уникальными
Порядок атрибутов в схеме отношения не существенен

Слайд 12

Экземпляр отношения Экземпляр отношения – это то, что называется отношением в

Экземпляр отношения

Экземпляр отношения – это то, что называется отношением в математике.

Как только мы ввели понятие атрибута, становится несущественным порядок столбцов в отношении.

Свойства экземпляра отношения:
Порядок значений атрибутов в кортеже не фиксирован (он определен схемой отношения)
Порядок кортежей в экземпляре произволен
Кортежи должны быть уникальными в экземпляре отношения

Слайд 13

Реляционная структура данных Реляционная структура должна удовлетворять следующим требованиям: Все имена

Реляционная структура данных

Реляционная структура должна удовлетворять следующим требованиям:
Все имена отношений должны

быть различными

Реляционной структурой данных называется совокупность реляционной схемы и ее состояния.

Реляционная схема – это совокупность схем (реляционных) отношений): R1(A1,…,An)
R2(B1,…,Bk)

Rn(K1,…,Km)

Состояние реляционной схемы – это совокупность экземпляров отношений схемы.

Слайд 14

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

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

Слайд 15

Соответствие терминов Формальный термин Неформальный эквивалент домен область допустимых значений атрибут

Соответствие терминов

Формальный термин Неформальный эквивалент
домен область допустимых значений атрибут столбец, поле отношение таблица кортеж строка, запись кардинальность количество строк степень, арность, количество столбцов ключ уникальный

идентификатор
Слайд 16

Ключи Ключ – это один или несколько атрибутов отношения, значения которых

Ключи

Ключ – это один или несколько атрибутов отношения, значения которых (атрибутов)

однозначно идентифицируют кортежи отношения.

Утверждение. Любое отношение с обладает ключом.

Пример: В отношении СТУДЕНТ(Номер, ФИО, Курс) совокупность атрибутов Номер, ФИО, Курс составляют ключ, так как кортежи отношения не могут повторяться.

Утверждение. В отношении может быть много ключей.

Слайд 17

Простые и составные ключи Ключ является простым, если он состоит из

Простые и составные ключи

Ключ является простым, если он состоит из одного

атрибута.

Ключ является составным, если он состоит из двух или более атрибутов.

Пример. В отношении:
СТУДЕНТ(Ном_ЗК, ФИО, Сер_пасп, Ном_пасп, Курс)
Ном_ЗК является простым атрибутом, а Сер_пасп, Ном_пасп – составной ключ.

Слайд 18

Избыточные и минимальные ключи Составной ключ является избыточным, если некоторое подмножество

Избыточные и минимальные ключи

Составной ключ является избыточным, если некоторое подмножество его

атрибутов также является ключом. Избыточный ключ также называется суперключом.

Пример. В отношении:
СТУДЕНТ(Ном_ЗК, ФИО, Сер_пасп, Ном_пасп, Курс) ключ Сер_пасп,Ном_пасп,Курс является избыточным, так как от содержит в себе ключ: Сер_пасп,Ном_пасп

Неизбыточный ключ называется минимальным.

Слайд 19

Первичный ключ Отношение в общем случае может содержать множество минимальных ключей,

Первичный ключ

Отношение в общем случае может содержать множество минимальных ключей,

которые получили название возможных ключей.

Пример. В отношении:
СТУДЕНТ(Ном_ЗК, ФИО, Сер_пасп, Ном_пасп, Курс) имеется два минимальных (а значит и возможных) ключа:
Ном_ЗК
Сер_пасп, Ном_пасп

Среди множества возможных ключей выбирается единственный ключ отношения, который называется первичным.

Слайд 20

Свойства первичного ключа Основные свойства (ограничения целостности): Значения первичного ключа не

Свойства первичного ключа

Основные свойства (ограничения целостности):
Значения первичного ключа не могут повторяться,

но допускается повторение частей составного первичного ключа.
Значения всех атрибутов первичного ключа не могут принимать значения NULL.
Дополнительные свойства:
В реляционном отношении может быть определено не более одного первичного ключа.
Первичный ключ не влияет на порядок расположения кортежей в отношении.
Первичный ключ не влияет на доступ к кортежам, который можно произвести по значениям любого набора атрибутов, а не только по атрибутам первичного ключа.
Слайд 21

Пример первичного ключа Первичный ключ Сотрудники: Ном Фамилия Сер_пасп Ном_пасп 1

Пример первичного ключа

Первичный ключ

Сотрудники: Ном Фамилия Сер_пасп Ном_пасп
1 Сидорчук СН 951945

2 Петренко СН 917327 3 Бутенко СК 917327 4 Иванчук ВО 111223
5 Грищук ВО 111223 6 Деркач МК NULL 7 Иванов NULL 457328

Значения атрибутов, составляющих первичный ключ, могут повторяться

Этот кортеж нарушает ограничение первичного ключа, так как повторяет значение уже существующего ключа

Последние два кортежа нарушают ограничение первичного ключа, так как содержат значения NULL

Слайд 22

Внешний ключ В реляционной модели связь между отношениями определяется «по значению».

Внешний ключ

В реляционной модели связь между отношениями определяется «по значению».

Внешний ключ

– это один или несколько атрибутов одного отношения, значения которых используются для ссылки на кортежи другого отношения.
Отношение, из которого делается ссылка, - дочернее.
Отношение, на которое делается ссылка, - родительское.

Ссылаться можно только на первичный (или уникальный) ключ родительского отношения.

Слайд 23

Пример внешнего ключа

Пример внешнего ключа

Слайд 24

Свойства внешнего ключа Основное свойство (ограничение целостности): Значение внешнего ключа не

Свойства внешнего ключа

Основное свойство (ограничение целостности):
Значение внешнего ключа не может ссылаться

на отсутствующее значение первичного ключа родительского отношения. Это так называемое ссылочное (или референциальное) ограничение целостности внешнего ключа.
Дополнительные свойства:
Значения внешнего ключа могут повторяться.
Внешний ключ может принимать значение NULL.
Слайд 25

Поддержание ссылочной целостности Манипулирование кортежами дочернего отношения: При вставке и замене

Поддержание ссылочной целостности

Манипулирование кортежами дочернего отношения:
При вставке и замене проверяется

ссылочная целостность и в случае ее нарушения действие не производится.
При удалении ничего не проверяется.
Манипулирование кортежами родительского отношения:
При вставке ничего не проверяется.
При удалении и замене:
Запретить удаление/замену, если имеется ссылка в дочерней таблице, приводящая к нарушению ссылочной целостности.
Удаляя/заменяя родительский кортеж, также удалить/заменить все ссылающиеся на него кортежи дочернего отношения.
Удаляя/заменяя родительский кортеж, разорвать связь с ним кортежей дочерней таблицы и вместо ссылки поставить NULL.
Удаляя/заменяя родительский кортеж, разорвать связь с ним кортежей дочерней таблицы и вместо ссылки поставить значение по умолчанию.
Слайд 26

Поддержания ссылочной целостности в SQL Описание поддержания целостности в стандарте SQL:

Поддержания ссылочной целостности в SQL

Описание поддержания целостности в стандарте SQL:

ON DELETE

{RESTRICT | CASCADE | SET NULL | SET DEFAULT}
ON UPDATE {RESTRICT | CASCADE | SET NULL | SET DEFAULT}

Описание поддержания целостности в SQL Oracle:

[ON DELETE {CASCADE | SET NULL}]

Слайд 27

Поддержание ссылочной целостности - RESTRICT

Поддержание ссылочной целостности - RESTRICT

Слайд 28

Поддержание ссылочной целостности – CASCADE

Поддержание ссылочной целостности – CASCADE

Слайд 29

Поддержание ссылочной целостности – SET NULL

Поддержание ссылочной целостности – SET NULL

Слайд 30

Поддержание ссылочной целостности – SET DEFAULT

Поддержание ссылочной целостности – SET DEFAULT

Слайд 31

Рекурсивный внешний ключ Внешний ключ называется рекурсивным, если он ссылается на

Рекурсивный внешний ключ

Внешний ключ называется рекурсивным, если он ссылается на первичный

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

Преподават.: Ном Фамилия Сер_пасп Ном_пасп РукНом
1 Сидорчук СН 951945 4 2 Петренко СН 917327 4 3 Бутенко СК 917327 7 4 Иванчук ВО 111223 7 5 Грищук ВО 111224 4 6 Деркач МК NULL 7 7 Иванов NULL 457328 NULL

Позволяет представлять иерархию на одном отношении

Слайд 32

Перекрестные внешние ключи FACULTY(ID, Name, DID) DEPARTMENT(ID,Name, FID) Входит в состав Включен в учебный план

Перекрестные внешние ключи

FACULTY(ID, Name, DID)
DEPARTMENT(ID,Name, FID)

Входит в состав

Включен в учебный план