Управление данными (реляционная модель)

32
Управление данными. Часть 3. Реляционная модель данных (©) Владислав Лавров, vlavrov.professorjournal.ru

Category:

Education


2 download

TRANSCRIPT

Page 1: Управление данными (реляционная модель)

Управление данными.

Часть 3.

Реляционная

модель данных(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 2: Управление данными (реляционная модель)

Современная технология реализации баз данных основана на реляционной

модели.

Принципы реляционной модели были изначально заложены в 1969 году

доктором Э.Ф.Коддом, в то время исследователем, работавшим в

корпорации IBM.

В конце 1968 года Кодд, математик по образованию, впервые осознал, что

математические дисциплины можно использовать, чтобы привнести в

область управления базами данных строгие принципы и точность.

3.1. Общие понятия реляционного подхода к организации данных

В 1970 году была опубликована статья (Codd E.F. A Relational Model of Data for Large Shared Data Banks //

CACM. – 1970. – 13, №6), где Э.Ф.Кодд впервые сформулировал основные понятия и ограничения

реляционной.

Предложения Кодда были настолько эффективны для систем баз данных, что за эту модель он был удостоен

престижной премии Тьюринга в области теоретических основ вычислительной техники.

Первые реляционные программные продукты начали появляться в конце 70-х –

начале 80-х годов. С тех пор почти все созданные коммерческие СУБД основываются на реляционном

подходе.

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 3: Управление данными (реляционная модель)

Принципы организации данных в реляционной модели

1. Данные воспринимаются пользователем как таблицы.

2. В распоряжении пользователя имеются операторы манипулирования данными (например, для выборки данных), которые генерируют новые таблицы из старых.

ОТДЕЛ

СОТРУДНИКИ

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 4: Управление данными (реляционная модель)

Примеры операторов манипулирования даннымиSELECT (RESTRICT): Выборка строк из таблицы «Отделы», где бюджет более 230

Результат:

PROJECT: Извлечение столбцов «Наименование» и «Бюджет» из таблицы «Отделы»

Результат:

JOIN: Соединение таблиц "Отделы" и "Сотрудники" на основе столбца "Номер отдела"

Результат:

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 5: Управление данными (реляционная модель)

1. Результат каждой из трех операций – это

еще одна таблица. Это реляционное

свойство замкнутости.

2. Операции применяются сразу ко всему

множеству строк, а не к отдельной строке

за один раз, т.е. операндами и

результатами являются не отдельные

строки, а целые таблицы, которые

содержат множество строк.

Важные следствия

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 6: Управление данными (реляционная модель)

3.2. Основные понятия реляционных баз данных • тип данных;• домен;• атрибут;• кортеж;• схема отношения, схема базы данных;• отношение;• первичный ключ.

Номер сотрудника

Имя сотрудника

Номер отдела

Зарплата Дата рождения

152 Веселов 2 580 12/05/65 563 Ступин 3 620 04/08/58 245 Кораблев 6 700 27/03/42 255 Нестеров 3 700 25/11/59

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

Номера пропусков

Имена сотрудников

Номера отделов

Размеры выплат

Даты рождения

Целые

Строковые переменные Деньги Переменные

типа даты Типы данных

Атрибуты

Домены

Кортежи

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 7: Управление данными (реляционная модель)

Неформальные определения реляционных объектов данных

Формальный

реляционный

термин

Неформальный эквивалент

Отношение Таблица

Кортеж Строка или запись таблицы

Кардинальное число Количество строк

Атрибут Столбец или поле

Степень (арность) Количество столбцов

Первичный ключ Уникальный идентификатор

ДоменОбщая совокупность допустимых значений

данных в столбце

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 8: Управление данными (реляционная модель)

3.3. Общая характеристика реляционной модели данных

Christopher J. Date (р. 1941) — специалист в области

реляционных баз данных,

автор классического учебника

«An Introduction to Database Systems»

(стандартный учебник по теме баз данных,

используется во многих университетах мира).

Работал над развитием реляционных СУБД

совместно с Эдгаром Коддом.

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 9: Управление данными (реляционная модель)

3.3. Общая характеристика реляционной модели данных

Структурная часть

Манипуляционная часть

Целостнаячасть

Реляционная модель

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 10: Управление данными (реляционная модель)

Целостность по ссылкам

ОТДЕЛЫ (ОТД_НОМЕР, ОТД_КОЛ)

СОТРУДНИКИ (СОТР_НОМЕР, СОТР_ИМЯ, СОТР_ЗАРП, СОТР_ОТД_НОМ )

Требование целостности по ссылкам, или требование внешнего ключа,

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

ссылающемся отношении, в таблице, на которую ведёт ссылка, должен

найтись кортеж с таким же значением первичного ключа либо значение

внешнего ключа должно быть неопределённым, то есть ни на что не

указывать.

Пример:

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 11: Управление данными (реляционная модель)

Целостность по ссылкамЧто происходит при удалении кортежа из отношения, на которое ведет ссылка?

1. Операция каскадируется – то есть удаление кортежей в

отношении приводит к удалению соответствующих

кортежей в связанном отношении.

2. Операция ограничивается – то есть удаляются лишь те

кортежи, для которых связанной информации в другом

отношении нет. Если такая информация имеется, то

удаление осуществить нельзя. В этом случае сначала

нужно либо удалить ссылающиеся кортежи, либо

соответствующим образом изменить значения их

внешнего ключа.

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 12: Управление данными (реляционная модель)

Целостность по ссылкам

Что происходит при попытке обновления первичного

ключа отношения, на которое ссылается некоторый

внешний ключ?

1. Операция каскадируется – то есть при обновлении

первичного ключа происходит обновление внешнего

ключа в связанном отношении.

2. Операция ограничивается – то есть обновляются лишь

те первичные ключи, для которых связанной информации

в другом отношении нет.

Если такая информация имеется, то обновление сделать

нельзя.

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 13: Управление данными (реляционная модель)

3.3. Реляционная алгебраНабор алгебраических операций, предложенных

Э.Ф.Коддом, для манипулирования данными в реляционной

модели

теоретико-множественные операции;• объединение отношений;• пересечение отношений;• разность отношений;• декартово произведение отношений;

специальные операции.• выборка отношения;• проекция отношения;• соединение отношений;• деление отношений.

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 14: Управление данными (реляционная модель)

Теоретико-множественные операции

R1 - перечень

деталей,

изготавливаемых на

1-м участке цеха

R2 - перечень

деталей,

изготавливаемых

на 2-м участке цеха

Пример: заданы

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 15: Управление данными (реляционная модель)

Объединение отношений

R3 - общая

номенклатура цеха

Пример: результат

Операция моделирует некоторую ситуацию, которая характеризуется словом «общее»

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 16: Управление данными (реляционная модель)

Пересечение отношений

R4 - перечень деталей,

которые выпускаются

одновременно на двух

участках цеха.

Пример: результат

Операция моделирует некоторую ситуацию, которая характеризуется словом «одновременно»

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 17: Управление данными (реляционная модель)

Разность отношений

R5 - перечень деталей,

которые изготавливают

только на участке 1 .

Пример: результат

R6 - перечень деталей,

которые изготавливают

только на участке 2 .

Операция моделирует некоторую ситуацию, которая характеризуется словом «только»

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 18: Управление данными (реляционная модель)

Декартово произведение

Операция моделирует некоторую ситуацию, которая характеризуется словом «все»

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 19: Управление данными (реляционная модель)

Декартово произведение

R7 - обязательная

номенклатура выпуска

деталей для всех цехов

Пример: определить какие детали из обязательной номенклатуры в каком цехе не выпускаются

R8 - перечень

цехов

Дополнительно заданы:

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 20: Управление данными (реляционная модель)

Декартово произведение

R9 - ситуация, когда

каждый цех изготавливает

все требуемые детали.

9 7 8R R R

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 21: Управление данными (реляционная модель)

Декартово произведение

R10 - реальный выпуск

деталей в каждом цехе

Дополнительно задано:

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 22: Управление данными (реляционная модель)

Декартово произведение

R11 - какие детали в

каких цехах из общей

обязательной

номенклатуры

не выпускаются.

Итоговый результат: .R\RR 10911

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 23: Управление данными (реляционная модель)

Специальные операцииВыборка отношений

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 24: Управление данными (реляционная модель)

Выборка отношений

R12 = R10 [ Шифр детали = «11003» ]

Пример: выбрать из отношения R10 все детали с шифром «11003»

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 25: Управление данными (реляционная модель)

Проекция отношений

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 26: Управление данными (реляционная модель)

Проекция отношений

R13 = R10 [ Название детали = «Болт М1» ]

Пример: выбрать из отношения R10 все цеха, которые

изготавливают деталь «Болт М1»

R14 = R13 [ Цех ]

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 27: Управление данными (реляционная модель)

Соединение отношений

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 28: Управление данными (реляционная модель)

Соединение отношенийПример: Получить перечень деталей, которые изготавливаются в цехе 1

из материала «Сталь-ст1»

R15 - перечень деталей с

указанием материалов, из

которых эти детали

изготавливаются

R16 = (R15 [ ( R15.Шифр детали = R10.Шифр детали)

R10.Цех = «Цех 1»

R15.Материал = «Сталь-ст1»] R10 )

[Название детали]

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 29: Управление данными (реляционная модель)

Деление отношений

Пример: Множество образов отношения R15 по материалу «Сталь-ст2»:

R15.Материал = {

<11075, Гайка М2, «Сталь-ст2»>,

< 11077, Гайка М4, «Сталь-ст2»> }

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 30: Управление данными (реляционная модель)

Деление отношений

Операция удобна тогда, когда требуется сравнить некоторое множество характеристик отдельных атрибутов

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 31: Управление данными (реляционная модель)

Деление отношенийПример: Определить перечень цехов R17, в которых выпускается вся

номенклатура деталей.

R7 - обязательная

номенклатура

выпуска деталей

для всех цехов

R10 - реальный выпуск

деталей в каждом цехе

R17 =

R10 [Шифр детали, Название детали :

Шифр детали, Название детали]

R7

(©) Владислав Лавров, vlavrov.professorjournal.ru

Page 32: Управление данными (реляционная модель)

Пример: Определить перечень цехов R17, в которых выпускается вся

номенклатура деталей.

Другой способ решения:

1. Построить отношение R9, которое моделирует ситуацию, когда в каждом

цехе изготавливается вся номенклатура (декартово произведение R7 и R8).

9 7 8R R R

2. Найти R11 - перечень того, что из обязательной номенклатуры не выпускается

в некоторых цехах (разность R9 и R10).

11 9 10\R R R3. Найти R18 - те цеха, в которых не все детали выпускаются (отношение R11

спроектировать на столбец «Цех»).

18 11 "Öåõ"R R

4. Из перечня всех цехов R8 вычесть те, в которых выпускают не все детали R18.

Результат

(©) Владислав Лавров, vlavrov.professorjournal.ru