Управление данными.
Часть 3.
Реляционная
модель данных
(©) Владислав Лавров, vlavrov.com
Современная технология реализации баз данных основана на реляционной
модели.
Принципы реляционной модели были изначально заложены в 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.com
Принципы организации данных в реляционной модели
1. Данные воспринимаются пользователем как таблицы.
2. В распоряжении пользователя имеются операторы
манипулирования данными (например, для выборки данных),
которые генерируют новые таблицы из старых.
ОТДЕЛ
СОТРУДНИКИ
(©) Владислав Лавров, vlavrov.com
Примеры операторов манипулирования данными
SELECT (RESTRICT): Выборка строк из таблицы «Отделы», где бюджет более 230
Результат:
PROJECT: Извлечение столбцов «Наименование» и «Бюджет» из таблицы «Отделы»
Результат:
JOIN: Соединение таблиц "Отделы" и "Сотрудники" на основе столбца "Номер отдела"
Результат:
(©) Владислав Лавров, vlavrov.com
1. Результат каждой из трех операций – это
еще одна таблица. Это реляционное
свойство замкнутости.
2. Операции применяются сразу ко всему
множеству строк, а не к отдельной строке
за один раз, т.е. операндами и
результатами являются не отдельные
строки, а целые таблицы, которые
содержат множество строк.
Важные следствия
(©) Владислав Лавров, vlavrov.com
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.com
Неформальные определения реляционных объектов данных
Формальный
реляционный
термин
Неформальный эквивалент
Отношение Таблица
Кортеж Строка или запись таблицы
Кардинальное число Количество строк
Атрибут Столбец или поле
Степень (арность) Количество столбцов
Первичный ключ Уникальный идентификатор
Домен
Общая совокупность допустимых значений
данных в столбце
(©) Владислав Лавров, vlavrov.com
3.3. Общая характеристика реляционной модели данных
Christopher J. Date (р. 1941) — специалист в области
реляционных баз данных,
автор классического учебника
«An Introduction to Database Systems»
(стандартный учебник по теме баз данных,
используется во многих университетах мира).
Работал над развитием реляционных СУБД
совместно с Эдгаром Коддом.
(©) Владислав Лавров, vlavrov.com
3.3. Общая характеристика реляционной модели данных
Структурная
часть
Манипуляционная
часть
Целостная
часть
Реляционная модель
(©) Владислав Лавров, vlavrov.com
Целостность по ссылкам
ОТДЕЛЫ (ОТД_НОМЕР, ОТД_КОЛ)
СОТРУДНИКИ (СОТР_НОМЕР, СОТР_ИМЯ, СОТР_ЗАРП, СОТР_ОТД_НОМ )
Требование целостности по ссылкам, или требование внешнего ключа,
состоит в том, что для каждого значения внешнего ключа, появляющегося в
ссылающемся отношении, в таблице, на которую ведёт ссылка, должен
найтись кортеж с таким же значением первичного ключа либо значение
внешнего ключа должно быть неопределённым, то есть ни на что не
указывать.
Пример:
(©) Владислав Лавров, vlavrov.com
Целостность по ссылкам
Что происходит при удалении кортежа из отношения,
на которое ведет ссылка?
1. Операция каскадируется – то есть удаление кортежей в
отношении приводит к удалению соответствующих
кортежей в связанном отношении.
2. Операция ограничивается – то есть удаляются лишь те
кортежи, для которых связанной информации в другом
отношении нет. Если такая информация имеется, то
удаление осуществить нельзя. В этом случае сначала
нужно либо удалить ссылающиеся кортежи, либо
соответствующим образом изменить значения их
внешнего ключа.
(©) Владислав Лавров, vlavrov.com
Целостность по ссылкам
Что происходит при попытке обновления первичного
ключа отношения, на которое ссылается некоторый
внешний ключ?
1. Операция каскадируется – то есть при обновлении
первичного ключа происходит обновление внешнего
ключа в связанном отношении.
2. Операция ограничивается – то есть обновляются лишь
те первичные ключи, для которых связанной информации
в другом отношении нет.
Если такая информация имеется, то обновление сделать
нельзя.
(©) Владислав Лавров, vlavrov.com
3.3. Реляционная алгебра
Набор алгебраических операций, предложенных
Э.Ф.Коддом, для манипулирования данными в реляционной
модели
теоретико-множественные операции;
• объединение отношений;
• пересечение отношений;
• разность отношений;
• декартово произведение отношений;
специальные операции.
• выборка отношения;
• проекция отношения;
• соединение отношений;
• деление отношений.
(©) Владислав Лавров, vlavrov.com
Теоретико-множественные операции
R1 - перечень
деталей,
изготавливаемых на
1-м участке цеха
R2 - перечень
деталей,
изготавливаемых
на 2-м участке цеха
Пример: заданы
(©) Владислав Лавров, vlavrov.com
Объединение отношений
R3 - общая
номенклатура цеха
Пример: результат
Операция моделирует некоторую ситуацию, которая
характеризуется словом «общее»
(©) Владислав Лавров, vlavrov.com
Пересечение отношений
R4 - перечень деталей,
которые выпускаются
одновременно на двух
участках цеха.
Пример: результат
Операция моделирует некоторую ситуацию, которая
характеризуется словом «одновременно»
(©) Владислав Лавров, vlavrov.com
Разность отношений
R5 - перечень деталей,
которые изготавливают
только на участке 1 .
Пример: результат
R6 - перечень деталей,
которые изготавливают
только на участке 2 .
Операция моделирует некоторую ситуацию, которая
характеризуется словом «только»
(©) Владислав Лавров, vlavrov.com
Декартово произведение
Операция моделирует некоторую ситуацию, которая
характеризуется словом «все»
(©) Владислав Лавров, vlavrov.com
Декартово произведение
R7 - обязательная
номенклатура выпуска
деталей для всех цехов
Пример: определить какие детали из обязательной
номенклатуры в каком цехе не выпускаются
R8 - перечень
цехов
Дополнительно заданы:
(©) Владислав Лавров, vlavrov.com
Декартово произведение
R9 - ситуация, когда
каждый цех изготавливает
все требуемые детали.
9 7 8R R R 
(©) Владислав Лавров, vlavrov.com
Декартово произведение
R10 - реальный выпуск
деталей в каждом цехе
Дополнительно задано:
(©) Владислав Лавров, vlavrov.com
Декартово произведение
R11 - какие детали в
каких цехах из общей
обязательной
номенклатуры
не выпускаются.
Итоговый результат: .RRR 10911 
(©) Владислав Лавров, vlavrov.com
Специальные операции
Выборка отношений
(©) Владислав Лавров, vlavrov.com
Выборка отношений
R12 = R10 [ Шифр детали = «11003» ]
Пример: выбрать из отношения R10 все детали с шифром «11003»
(©) Владислав Лавров, vlavrov.com
Проекция отношений
(©) Владислав Лавров, vlavrov.com
Проекция отношений
R13 = R10 [ Название детали = «Болт М1» ]
Пример: выбрать из отношения R10 все цеха, которые
изготавливают деталь «Болт М1»
R14 = R13 [ Цех ]
(©) Владислав Лавров, vlavrov.com
Соединение отношений
(©) Владислав Лавров, vlavrov.com
Соединение отношений
Пример: Получить перечень деталей, которые изготавливаются в цехе 1
из материала «Сталь-ст1»
R15 - перечень деталей с
указанием материалов, из
которых эти детали
изготавливаются
R16 = (R15 [ ( R15.Шифр детали = R10.Шифр детали) 
R10.Цех = «Цех 1» 
R15.Материал = «Сталь-ст1»] R10 )
[Название детали]
(©) Владислав Лавров, vlavrov.com
Деление отношений
Пример: Множество образов отношения R15 по материалу «Сталь-ст2»:
R15.Материал = {
<11075, Гайка М2, «Сталь-ст2»>,
< 11077, Гайка М4, «Сталь-ст2»> }
(©) Владислав Лавров, vlavrov.com
Деление отношений
Операция удобна тогда, когда требуется сравнить некоторое множество
характеристик отдельных атрибутов
(©) Владислав Лавров, vlavrov.com
Деление отношений
Пример: Определить перечень цехов R17, в которых выпускается вся
номенклатура деталей.
R7 - обязательная
номенклатура
выпуска деталей
для всех цехов
R10 - реальный выпуск
деталей в каждом цехе
R17 =
R10 [Шифр детали, Название детали :
Шифр детали, Название детали]
R7
(©) Владислав Лавров, vlavrov.com
Пример: Определить перечень цехов R17, в которых выпускается вся
номенклатура деталей.
Другой способ решения:
1. Построить отношение R9, которое моделирует ситуацию, когда в каждом
цехе изготавливается вся номенклатура (декартово произведение R7 и R8).
9 7 8R R R 
2. Найти R11 - перечень того, что из обязательной номенклатуры не выпускается
в некоторых цехах (разность R9 и R10).
11 9 10R R R
3. Найти R18 - те цеха, в которых не все детали выпускаются (отношение R11
спроектировать на столбец «Цех»).
 18 11 "Öåõ"R R
4. Из перечня всех цехов R8 вычесть те, в которых выпускают не все детали R18.
Результат
(©) Владислав Лавров, vlavrov.com

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

  • 1.
    Управление данными. Часть 3. Реляционная модельданных (©) Владислав Лавров, vlavrov.com
  • 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.com
  • 3.
    Принципы организации данныхв реляционной модели 1. Данные воспринимаются пользователем как таблицы. 2. В распоряжении пользователя имеются операторы манипулирования данными (например, для выборки данных), которые генерируют новые таблицы из старых. ОТДЕЛ СОТРУДНИКИ (©) Владислав Лавров, vlavrov.com
  • 4.
    Примеры операторов манипулированияданными SELECT (RESTRICT): Выборка строк из таблицы «Отделы», где бюджет более 230 Результат: PROJECT: Извлечение столбцов «Наименование» и «Бюджет» из таблицы «Отделы» Результат: JOIN: Соединение таблиц "Отделы" и "Сотрудники" на основе столбца "Номер отдела" Результат: (©) Владислав Лавров, vlavrov.com
  • 5.
    1. Результат каждойиз трех операций – это еще одна таблица. Это реляционное свойство замкнутости. 2. Операции применяются сразу ко всему множеству строк, а не к отдельной строке за один раз, т.е. операндами и результатами являются не отдельные строки, а целые таблицы, которые содержат множество строк. Важные следствия (©) Владислав Лавров, vlavrov.com
  • 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.com
  • 7.
    Неформальные определения реляционныхобъектов данных Формальный реляционный термин Неформальный эквивалент Отношение Таблица Кортеж Строка или запись таблицы Кардинальное число Количество строк Атрибут Столбец или поле Степень (арность) Количество столбцов Первичный ключ Уникальный идентификатор Домен Общая совокупность допустимых значений данных в столбце (©) Владислав Лавров, vlavrov.com
  • 8.
    3.3. Общая характеристикареляционной модели данных Christopher J. Date (р. 1941) — специалист в области реляционных баз данных, автор классического учебника «An Introduction to Database Systems» (стандартный учебник по теме баз данных, используется во многих университетах мира). Работал над развитием реляционных СУБД совместно с Эдгаром Коддом. (©) Владислав Лавров, vlavrov.com
  • 9.
    3.3. Общая характеристикареляционной модели данных Структурная часть Манипуляционная часть Целостная часть Реляционная модель (©) Владислав Лавров, vlavrov.com
  • 10.
    Целостность по ссылкам ОТДЕЛЫ(ОТД_НОМЕР, ОТД_КОЛ) СОТРУДНИКИ (СОТР_НОМЕР, СОТР_ИМЯ, СОТР_ЗАРП, СОТР_ОТД_НОМ ) Требование целостности по ссылкам, или требование внешнего ключа, состоит в том, что для каждого значения внешнего ключа, появляющегося в ссылающемся отношении, в таблице, на которую ведёт ссылка, должен найтись кортеж с таким же значением первичного ключа либо значение внешнего ключа должно быть неопределённым, то есть ни на что не указывать. Пример: (©) Владислав Лавров, vlavrov.com
  • 11.
    Целостность по ссылкам Чтопроисходит при удалении кортежа из отношения, на которое ведет ссылка? 1. Операция каскадируется – то есть удаление кортежей в отношении приводит к удалению соответствующих кортежей в связанном отношении. 2. Операция ограничивается – то есть удаляются лишь те кортежи, для которых связанной информации в другом отношении нет. Если такая информация имеется, то удаление осуществить нельзя. В этом случае сначала нужно либо удалить ссылающиеся кортежи, либо соответствующим образом изменить значения их внешнего ключа. (©) Владислав Лавров, vlavrov.com
  • 12.
    Целостность по ссылкам Чтопроисходит при попытке обновления первичного ключа отношения, на которое ссылается некоторый внешний ключ? 1. Операция каскадируется – то есть при обновлении первичного ключа происходит обновление внешнего ключа в связанном отношении. 2. Операция ограничивается – то есть обновляются лишь те первичные ключи, для которых связанной информации в другом отношении нет. Если такая информация имеется, то обновление сделать нельзя. (©) Владислав Лавров, vlavrov.com
  • 13.
    3.3. Реляционная алгебра Наборалгебраических операций, предложенных Э.Ф.Коддом, для манипулирования данными в реляционной модели теоретико-множественные операции; • объединение отношений; • пересечение отношений; • разность отношений; • декартово произведение отношений; специальные операции. • выборка отношения; • проекция отношения; • соединение отношений; • деление отношений. (©) Владислав Лавров, vlavrov.com
  • 14.
    Теоретико-множественные операции R1 -перечень деталей, изготавливаемых на 1-м участке цеха R2 - перечень деталей, изготавливаемых на 2-м участке цеха Пример: заданы (©) Владислав Лавров, vlavrov.com
  • 15.
    Объединение отношений R3 -общая номенклатура цеха Пример: результат Операция моделирует некоторую ситуацию, которая характеризуется словом «общее» (©) Владислав Лавров, vlavrov.com
  • 16.
    Пересечение отношений R4 -перечень деталей, которые выпускаются одновременно на двух участках цеха. Пример: результат Операция моделирует некоторую ситуацию, которая характеризуется словом «одновременно» (©) Владислав Лавров, vlavrov.com
  • 17.
    Разность отношений R5 -перечень деталей, которые изготавливают только на участке 1 . Пример: результат R6 - перечень деталей, которые изготавливают только на участке 2 . Операция моделирует некоторую ситуацию, которая характеризуется словом «только» (©) Владислав Лавров, vlavrov.com
  • 18.
    Декартово произведение Операция моделируетнекоторую ситуацию, которая характеризуется словом «все» (©) Владислав Лавров, vlavrov.com
  • 19.
    Декартово произведение R7 -обязательная номенклатура выпуска деталей для всех цехов Пример: определить какие детали из обязательной номенклатуры в каком цехе не выпускаются R8 - перечень цехов Дополнительно заданы: (©) Владислав Лавров, vlavrov.com
  • 20.
    Декартово произведение R9 -ситуация, когда каждый цех изготавливает все требуемые детали. 9 7 8R R R  (©) Владислав Лавров, vlavrov.com
  • 21.
    Декартово произведение R10 -реальный выпуск деталей в каждом цехе Дополнительно задано: (©) Владислав Лавров, vlavrov.com
  • 22.
    Декартово произведение R11 -какие детали в каких цехах из общей обязательной номенклатуры не выпускаются. Итоговый результат: .RRR 10911  (©) Владислав Лавров, vlavrov.com
  • 23.
  • 24.
    Выборка отношений R12 =R10 [ Шифр детали = «11003» ] Пример: выбрать из отношения R10 все детали с шифром «11003» (©) Владислав Лавров, vlavrov.com
  • 25.
  • 26.
    Проекция отношений R13 =R10 [ Название детали = «Болт М1» ] Пример: выбрать из отношения R10 все цеха, которые изготавливают деталь «Болт М1» R14 = R13 [ Цех ] (©) Владислав Лавров, vlavrov.com
  • 27.
  • 28.
    Соединение отношений Пример: Получитьперечень деталей, которые изготавливаются в цехе 1 из материала «Сталь-ст1» R15 - перечень деталей с указанием материалов, из которых эти детали изготавливаются R16 = (R15 [ ( R15.Шифр детали = R10.Шифр детали)  R10.Цех = «Цех 1»  R15.Материал = «Сталь-ст1»] R10 ) [Название детали] (©) Владислав Лавров, vlavrov.com
  • 29.
    Деление отношений Пример: Множествообразов отношения R15 по материалу «Сталь-ст2»: R15.Материал = { <11075, Гайка М2, «Сталь-ст2»>, < 11077, Гайка М4, «Сталь-ст2»> } (©) Владислав Лавров, vlavrov.com
  • 30.
    Деление отношений Операция удобнатогда, когда требуется сравнить некоторое множество характеристик отдельных атрибутов (©) Владислав Лавров, vlavrov.com
  • 31.
    Деление отношений Пример: Определитьперечень цехов R17, в которых выпускается вся номенклатура деталей. R7 - обязательная номенклатура выпуска деталей для всех цехов R10 - реальный выпуск деталей в каждом цехе R17 = R10 [Шифр детали, Название детали : Шифр детали, Название детали] R7 (©) Владислав Лавров, vlavrov.com
  • 32.
    Пример: Определить переченьцехов R17, в которых выпускается вся номенклатура деталей. Другой способ решения: 1. Построить отношение R9, которое моделирует ситуацию, когда в каждом цехе изготавливается вся номенклатура (декартово произведение R7 и R8). 9 7 8R R R  2. Найти R11 - перечень того, что из обязательной номенклатуры не выпускается в некоторых цехах (разность R9 и R10). 11 9 10R R R 3. Найти R18 - те цеха, в которых не все детали выпускаются (отношение R11 спроектировать на столбец «Цех»).  18 11 "Öåõ"R R 4. Из перечня всех цехов R8 вычесть те, в которых выпускают не все детали R18. Результат (©) Владислав Лавров, vlavrov.com