Список литературы
1. Основные понятия БД 2. Модели данных
Основные понятия БД
Базы данных: термины
Базы данных: термины
Базы данных: термины
Базы данных: термины
Базы данных: термины
Базы данных: термины
Банк данных (БнД)
Компоненты системы баз данных
Компоненты системы баз данных
Уровни представления данных архитектуры ANSI/SPARC
Актуализация данных в БД
Этапы проектирования БД
Этапы проектирования БД
Этапы проектирования БД
Этапы проектирования БД
Этапы проектирования БД
Этапы проектирования БД
Этапы проектирования БД
Этапы проектирования БД
Этапы проектирования БД
Этапы проектирования БД
Модели данных
Модели данных
Типы структур
Типы структур
Типы структур
Типы структур
Типы структур
Типы структур
Типы структур
Типы структур
Типы структур
Типы структур
Типы структур
Операции над данными
Операции над данными
Операции над данными
Ограничение целостности
Ограничение целостности
Модели данных
Иерархическая модель данных
Иерархическая модель данных
Иерархическая модель данных
Иерархическая модель данных
Иерархическая модель данных
Иерархическая модель данных
Иерархическая модель данных
Иерархическая модель данных
Иерархическая модель данных
Сетевая модель данных
Сетевая модель данных
Сетевая модель данных
Сетевая модель данных
Сетевая модель данных
Сетевая модель данных
Сетевая модель данных
Реляционная модель данных
Реляционная модель данных
Реляционная модель данных
Реляционная модель данных
Реляционная модель данных
Реляционная модель данных
Реляционная модель данных
Реляционная модель данных
Реляционная модель данных
Реляционная модель данных
Реляционная модель данных
Реляционная модель данных
Реляционная модель данных
Реляционная модель данных
Реляционная модель данных
Реляционная модель данных
Реляционная модель данных
Реляционная модель данных
Реляционная модель данных
Реляционная модель данных
Реляционная модель данных
2.03M
Category: databasedatabase

Основные понятия БД. Модели данных

1. Список литературы

• Советов Б.Я. Базы данных: теория и практика: учеб. для
бакалавров: [Учеб. для вузов. Рекомендовано УМО]/ Б.Я. Советов,
В.В. Цехановский, В.Д. Чертовский.- 2-е изд., стер.- М.: Юрайт,
2012.- 462 с. - (Бакалавр. Базовый курс)
• Кузнецов С.Д. Основы баз данных: учеб. пособие/ С.Д.Кузнецов.2-е изд., испр.- М.: Интернет-Университет Информационных
Технологий: БИНОМ. Лаборатория знаний, 2010.- 484с.
• Бейли Л. Изучаем SQL/ Л.Бейли.- М. [и др.]: Питер, 2012.- 582с.
• Коннолли Т., Бегг К. Базы данных: проектирование, реализация,
сопровождение. Теория и практика, 3-е изд. : Пер. с англ. : Уч. пос.
– М.: Изд. дом "Вильямс", 2003. – 1440 с.
• Грабер М. SQL. (любое издание).

2. 1. Основные понятия БД 2. Модели данных

3. Основные понятия БД

4.

Предпосылки появления БД
Две основные предпосылки появления баз данных:
• Необходимость хранить и обрабатывать большое
количество данных.
• Разработка методов совместного использования
данных.
Эволюция технологий обработки данных:
код программы
программа
программа
сегмент данных
описание данных
данные
а)
б)
данные
БД
в)
Массив данных общего пользования в системах,
основанных на данных, называется базой данных.

5. Базы данных: термины

Информация – любые сведения о каком-либо
событии, объекте или процессе, являющиеся
объектом некоторых операций: восприятия,
передачи, преобразования, хранения или
использования.
Данные – это информация, зафиксированная в
некоторой форме, пригодной для
последующей обработки, передачи и
хранения, например, находящаяся в памяти
ЭВМ или подготовленная для ввода в ЭВМ.

6. Базы данных: термины

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

7. Базы данных: термины

Система обработки данных (СОД) – это набор
аппаратных и программных средств,
осуществляющих выполнение задач по
управлению данными.
Управление данными – совокупность функций
обеспечения требуемого представления
данных, их накопления и хранения,
обновления, удаления, поиска по заданному
критерию и выдачи данных. [ГОСТ 20886-85]
Предметная область – часть реального мира,
подлежащая изучению с целью организации
управления и, в конечном итоге,
автоматизации.

8.

Базы данных: термины
База данных (БД) – совокупность связанных
данных конкретной предметной области,
организованных по определенным
правилам, предусматривающим общие
принципы описания, хранения и
манипулирования данными, независимо от
прикладных программ.
Фактически база данных – это модель
предметной области (ПО).
Данные БД могут быть использованы для
решения многих задач многими
8
пользователями

9. Базы данных: термины

Ведение базы данных – деятельность по
обновлению, восстановлению и изменению
структуры базы данных с целью обеспечения
её целостности, сохранности и эффективности
использования [ГОСТ 20886-85].
Система управления базами данных (СУБД) –
это совокупность программ и языковых
средств, предназначенных для управления
данными в базе данных, ведения базы данных
и обеспечения взаимодействия её с
прикладными программами [ГОСТ 20886-85].

10.

Базы данных: термины
Требования к СУБД
Эффективное выполнение функций ПО
Минимизация избыточности
Предоставление непротиворечивой
информации
Безопасность
Простота в эксплуатации
Простота в физической реорганизации
Возможность централизованного
управления
Упрощение приложений
10

11. Базы данных: термины

Автоматизированная информационная
система (АИС) – совокупность программноаппаратных средств, предназначенных для
автоматизации деятельности, связанной с
хранением, передачей и обработкой
информации

12. Базы данных: термины

Администратор БД (АБД) – это сотрудник (группа
лиц), выполняющих следующие функции:
Координация проектирования, реализации и
ведения БД
Обслуживание пользователей БД
Определение структуры данных и правила
доступа
Оценка перспективы и формирование
требований, исходя из особенностей ПО

13. Банк данных (БнД)

Компоненты системы баз данных
Прикладное программное обеспечение
Система управления базами данных
База
данных

14. Компоненты системы баз данных

• Основным принципом организации базы
данных является совместное хранение
данных и их описаний. Это отличает базу
данных от любого другого набора данных,
хранящихся в ЭВМ.
• Описание базы данных хранится в так
называемом словаре-справочнике данных
(ССД) или каталоге данных. Хранение
данных вместе с их описанием и позволяет
обеспечивать независимость данных от
программ, т.е. интерпретация данных
определяется не программой, а описанием
данных.

15. Компоненты системы баз данных

Этапы проектирования БД

16. Уровни представления данных архитектуры ANSI/SPARC

Предметная
область
Информационные
потребности
пользователей
Построение инфологической модели ПО
Этап
инфологического
проектирования
Выбор СУБД
Построение концептуальной модели
данных (ЛП)
Построение физической модели данных
(ФП)
Этап
датологического
проектирования

17. Актуализация данных в БД

Этапы проектирования БД
• Проектирование данных – процесс
перевода общих представлений о
данных, выраженных концептуальной
моделью, в конкретную логическую
модель.

18. Этапы проектирования БД

• На этапе инфологического проектирования
осуществляется построение семантической
модели, описывающей сведения из предметной
области которые могут заинтересовать
пользователей БД
Семантическая модель – представление
совокупности сведений о ПО в виде графа, в
вершинах которого расположены понятия, а дуги
представляют отношения между понятиями
Подобные модели называются моделями
«сущность-связь» (ER-model: Entity-Relationship)

19.

Этапы проектирования БД
• Реальные процессы и объекты предметной
области представлены в ER-моделях в виде
сущностей.
• Сущности: базовые и зависимые. Тип
сущности. Экземпляр сущности.
• Для каждого типа сущности необходимо
определить имя.

20. Этапы проектирования БД

• Атрибуты: характеристики сущностей.
Атрибуты бывают:
– Идентифицирующие и описательные.
– Составные и простые.
– Однозначные и многозначные.
– Основные и производные.
– Обязательные и необязательные.
• Для каждого атрибута необходимо определить
название, указать тип данных и описать
ограничения целостности – множество
значений, которые может принимать данный
атрибут.

21. Этапы проектирования БД

• Между сущностями ПО могут существовать
связи, имеющие различный содержательный
смысл(семантику). Например, студент учится в
группе
СТУДЕНТ
УЧИТСЯ
ГРУППА
• Связи характеризуются следующими атрибутами:
• Кардинальность
• Степень связи

22. Этапы проектирования БД

• Кардинальность связи:
– Один к одному (1:1)
– Один ко многим (1:М), многие к одному (М:1)
– Многие ко многим (M:N)
ПРЕПОДАВАТЕЛЬ
M
СТУДЕНТ
ВЕДЕТ
M
N
ДИСЦИПЛИНА
N
УЧИТСЯ
1
ГРУППА
M
ИЗУЧАЕТ

23. Этапы проектирования БД

• Степень связи – это количество сущностей,
которые входят в связь.
Бинарная связь
Унарная связь
ВРАЧ
СОТРУДНИК
Лечить
Руководить
ПАЦИЕНТ
Тернарная связь
ПРЕПОДАВАТЕЛЬ
СТУДЕНТ
Экзаменовать
ДИСЦИПЛИНА

24. Этапы проектирования БД

• Датологическое проектирование
подразделяется на логическое и
физическое проектирование
Логическое проектирование–преобразование
требований к данным в структуры данных (в
форматах, поддерживаемых выбранной СУБД).
Физическое проектирование – определение
особенностей хранения данных, методов
доступа и т. д.

25. Этапы проектирования БД

Различие уровней представления данных на каждом
этапе проектирования реляционной базы данных:
КОНЦЕПТУАЛЬНЫЙ УРОВЕНЬ — Представление
аналитика (используется модель «сущность-связь»)
термины: сущности, атрибуты, связи
ЛОГИЧЕСКИЙ УРОВЕНЬ — Представление
программиста
термины: записи, элементы данных,
связи между записями
ФИЗИЧЕСКИЙ УРОВЕНЬ — Представление
администраторов БД, СУБД, ЛВС, ...
термины: группирование данных, индексы,
методы доступа, распределенная БД, репликация,
28
производительность, надежность, кластеры…

26. Этапы проектирования БД

Независимость данных
Данные независимы, если существует
возможность нормального функционирования
БД при изменениях как со стороны
концептуальной, так со стороны физической
модели, т.е. обеспечивается логическая и
физическая независимость
29

27. Этапы проектирования БД

Модели данных

28. Этапы проектирования БД

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

29.

Типы структур
• Структурированная запись базируется
на использовании концепций
«агрегации» и «обобщения».
• Один из первых вариантов
структуризации данных был предложен
Ассоциацией по языкам обработки
данных (Conference of Data Systems
Languages, CODASYL)
Элемент
данных
Агрегат
данных
Запись
Набор
База
данных

30. Модели данных

Типы структур
• Элемент данных – наименьшая
поименованная единица данных, к
которой СУБД может обращаться
непосредственно и с помощью которой
выполняется построение всех
остальных структур.
• Для каждого элемента данных должен
быть определен его тип

31. Модели данных

Типы структур
• Агрегат данных – поименованная
совокупность элементов данных внутри
записи, которую можно рассматривать
как единое целое.
• Агрегат может быть простым (включает
только элементы данных) и составным
(включает элементы данных и другие
агрегаты)

32. Типы структур

• Агрегат данных .
А(предприятие)
А(дата)
число
месяц
А(название)
год
название
А(адрес)
индекс
город
улица
и дом

33. Типы структур

• Запись – поименованная совокупность
элементов и агрегатов данных.
• Запись – это агрегат, не входящий в
состав других агрегатов
• Различают понятия тип записи (ее
структура) и экземпляр записи (т.е.
запись с конкретными значениями
элементов данных)
• Одна запись описывает свойства одной
сущности ПО

34. Типы структур

• Запись.

А
Дата
Паспорт Пол
пропуска (ФИО) рождения
Должность
индекс
фамилия
имя
отчество
Оклад
А
(адрес)
город
улица
и дом

35. Типы структур

• Среди полей записи выделяются одно или
несколько ключевых полей.
• Значения ключевых полей позволяют
классифицировать сущность, к которой
относится конкретная запись.
• Потенциальный ключ – это любой из ключей
записи
• Один из ключей назначается первичным,
остальные являются вторичными.
• Значение первичного ключа должно быть
уникальным и обязательным для записей одного
типа

36. Типы структур

• Набор (групповое отношение)–
поименованная совокупность записей,
образующих двухуровневую структуру.
• Каждый тип набора представляет собой
связь между двумя или несколькими
типами записей.
• Для каждого типа набора один тип
записи объявляется владельцем
набора, остальные – членами набора.

37. Типы структур

• Набор (групповое отношение)–
• Каждый экземпляр набора должен
содержать только один экземпляр типа
владельца и столько экземпляров
записей типа членов набора, сколько их
связано с владельцем.
• Для группового отношения также
различают тип и экземпляр.

38. Типы структур

• Наборы (групповые отношения) удобно
изображать с помощью диаграммы Бахмана.
• Диаграмма Бахмана представляет собой
ориентированный граф: вершины – типы записей,
дуги – наборы (групповые отношения)
Поликлиники
Организации
работают
диспансеризация
Жители
проживают
Квартиры
Ремонтно-эксплуат.
управления
обслуживают

39. Типы структур

• База данных – поименованная совокупность
экземпляров групп и групповых отношений.
Это самый высокий уровень структуризации.
• Примечание: структуризация данных по
версии CODASYL используется в сетевой и
иерархической моделях данных. В
реляционной модели принята другая
структуризация, основанная на теории
множеств

40. Типы структур

Операции над данными
• Модель данных определяет множество
действий, которые допустимо производить
над некоторой реализацией БД для ее
перевода из одного состояния в другое.
• Это множество соотносят с языком
манипулирования данными (Data
Manipulation Language, DML)
• Любая операция над данными включает в
себя селекцию данных (select)
• Условие селекции – это некий критерий
отбора данных

41. Типы структур

Операции над данными
По типу производимых действий различают
следующие операции:
• Идентификация данных и нахождение их
позиции в БД
• Выборка (чтение) данных из БД
• Включение (запись) данных в БД
• Удаление данных из БД
• Модификация данных БД

42. Типы структур

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

43. Операции над данными

Ограничение целостности
• Это правила, которым должны удовлетворять
значения элементов данных.
• Ограничения целостности (integrity constraint)
делятся на внутренние и явные.
Определение
• Ограничения, обусловленные возможностями
конкретной СУБД, называют «внутренними
ограничениями целостности»
Определение
• Ограничения, обусловленные особенностями
хранимых данных о конкретной ПО, называют
«явными ограничениями целостности»

44. Операции над данными

Ограничение целостности
• За выполнением целостности следит СУБД в
процессе своего функционирования: если какаялибо команда нарушает ограничение
целостности, она не будет выполнена и система
выдаст соответствующее сообщение об ошибке.
• Ограничения целостности обеспечивают
логическую непротиворечивость данных при
переводе БД из одного состояния в другое.

45. Операции над данными

Модели данных
• Модели первого поколения
– Иерархическая
– Сетевая
• Модели второго поколения
– Реляционная
• Модели третьего поколения
– Объектно-ориентированная
– Объектно-реляционная

46. Ограничение целостности

ИЕРАРХИЧЕСКАЯ МОДЕЛЬ
ДАННЫХ

47. Ограничение целостности

Иерархическая модель данных
• Организация данных в СУБД иерархического
типа определяется в терминах: элемент,
агрегат, запись (группа), групповое
отношение, база данных.
• Иерархическая модель реализуется
древовидной структурой, объекты которой
представлены узлами дерева

48. Модели данных

Иерархическая модель данных
1. Свойства иерархической модели
1. Существует корень
2. Узел содержит атрибуты
3. Исходный и зависимый узлы находятся в отношении
«непосредственный предок и потомок»
4. Потомок соединен единственной связью с предком
5. Предок может иметь несколько потомков
6. Доступ к данным производится через предка
7. Может существовать множество экземпляров узла
8. При удалении узла удаляется все его поддерево

49. Иерархическая модель данных

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

50. Иерархическая модель данных

Пример: Рассмотрим следующую модель данных
предприятия
• предприятие состоит из отделов, в которых работают
сотрудники. В каждом отделе может работать
несколько сотрудников, но сотрудник не может
работать более чем в одном отделе.
• Для автоматизации учета контрактов с заказчиками
необходимо создание еще одной иерархической
структуры : заказчик - контракты с ним - сотрудники,
задействованные в работе над контрактом.

51. Иерархическая модель данных

А
ОТДЕЛ
ЗАКАЗЧИК
Наименование
Наименование
Число работников
Адрес
B
СОТРУДНИК
СОТРУДНИК
КОНТРАКТ
КОНТРАКТ
Фамилия
Фамилия
Номер
Номер
Должность
Должность
Дата
Дата
Оклад
Оклад
Сумма
Сумма
ИСПОЛНИТЕЛЬ
ИСПОЛНИТЕЛЬ
ИСПОЛНИТЕЛЬ
Фамилия
Фамилия
Фамилия
Должность
Должность
Должность
Наименов_отдела
Наименов_отдела
Наименов_отдела
КОНТРАКТ
КОНТРАКТ
Номер
Номер
Дата
Дата
Сумма
Сумма
C

52. Иерархическая модель данных

2. Операции над данными:
– ДОБАВИТЬ в БД новую запись. Для корневой
записи обязательно формирование значения ключа
– ИЗМЕНИТЬ значение данных выбранной записи.
Ключевые данные не должны подвергаться
изменениям
– УДАЛИТЬ некоторую запись и все подчиненные ей
записи
– ИЗВЛЕЧЬ
• Корневую запись по ключу
• Следующую запись (в порядке левостороннего обхода
дерева)

53. Иерархическая модель данных

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

54.

Иерархическая модель данных
• При работе с иерархической БД возможны
нежелательные явления, которые называют
аномалиями.
– Аномалия включения: в варианте C нельзя
добавить новый контракт без добавления
исполнителей
– Аномалия удаления: при удалении отдела,
удаляются и данные о его сотрудниках

55. Иерархическая модель данных

• Достоинства:
– Простота в использовании и обслуживании
– Высокая скорость доступа
• Недостатки
– Невозможность реализации отношения «многие ко
многим» в рамках одной БД
– Возможны аномалии в работе с БД
Первая иерархическая СУБД IMS компании IBM (1969 г.)

56. Иерархическая модель данных

СЕТЕВАЯ МОДЕЛЬ ДАННЫХ

57. Иерархическая модель данных

Сетевая модель данных
Сетевая модель данных определена в тех же
терминах, что и иерархическая модель данных
1. Отличия сетевой и иерархической моделей:
– Запись может быть членом более чем одного группового
отношения
– Каждое групповое отношение именуется
– Тип группового отношения определяет свойства общие
для всех экземпляров данного типа
– Экземпляр группового отношения представляется
записью-владельцем и множеством (возможно пустым)
подчиненных записей
– Экземпляр записи не может быть членом двух
экземпляров групповых отношений одного типа

58. Иерархическая модель данных

ОТДЕЛ
ЗАКАЗЧИК
Наименование
Наименование
Число работников
Адрес
СОТРУДНИК
СОТРУДНИК
КОНТРАКТ
КОНТРАКТ
Фамилия
Фамилия
Номер
Номер
Должность
Должность
Дата
Дата
Оклад
Оклад
Сумма
Сумма
СОТРУДНИК_КОНТРАКТ
СОТРУДНИК_КОНТРАКТ
СОТРУДНИК_КОНТРАКТ
СОТРУДНИК_КОНТРАКТ

59. Сетевая модель данных

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

60. Сетевая модель данных

2. Операции над данными:
– ДОБАВИТЬ в БД новую запись в зависимости от
режима включения, либо включить ее в групповое
отношение, где она объявлена подчиненного, либо
не включать ни в какое групповое отношение.
– ВКЛЮЧИТЬ В ГРУППОВОЕ ОТНОШЕНИЕ связать
существующую подчиненную запись с записьювладельцем
– ПЕРЕКЛЮЧИТЬ связать существующую
подчиненную запись с другой записью-владельцем
в том же групповом отношении.
– ОБНОВИТЬ изменить значение элементов
предварительно извлеченной записи

61.

Сетевая модель данных
• Операции над данными:
– ИЗВЛЕЧЬ извлечь записи последовательно по значению
ключа, а также использую групповые отношения – от
владельца перейти к записям-членам, а от подчиненной
записи к владельцу набора.
– УДАЛИТЬ убрать из БД запись. Если эта запись
является владельцем группового отношения, то
анализируется класс членства подчиненных записей.
• Обязательные члены должны быть предварительно исключены
из группового отношения
• Фиксированные удалены вместе с владельцем
• Необязательные останутся в БД.
– ИСКЛЮЧИТЬ ИЗ ГРУППОВОГО ОТНОШЕНИЯ
разорвать связь между записью-владельцем и записью –
членом.

62. Сетевая модель данных

3. Ограничения целостности
• Поддерживается только целостность связей
между владельцами и членами группового
отношения.

63. Сетевая модель данных

• Достоинства:
– Реализуется отношение «многие ко многим»
– Высокая производительность
• Недостатки
– Трудность реорганизации БД
– В процессе эксплуатации за счет некорректных удалений, сбоев и
т.д. накапливается мусор – данные к которым нет доступа
– Слабая выразительность языка запросов. Обычно он позволяет
манипулировать лишь одной запись одновременно, программист
во время работы должен хорошо представлять пути доступа к
данным
Первая сетевая СУБД IDMS компании Computer Associates
(1971 г.). Другой пример – СУБД IMAGE/1000 фирмы
Hewlett-Packard

64. Сетевая модель данных

РЕЛЯЦИОННАЯ МОДЕЛЬ
ДАННЫХ

65. Сетевая модель данных

Реляционная модель данных
1. Основные понятия
• Предложена сотрудником компании IBM Е.Ф.
Коддом в 1970 г.
• Кодд предложил использовать для обработки баз
данных аппарат теории множеств и теории
отношений.
• В реляционной модели данных достигается
гораздо более высокий уровень абстракции
данных, чем в иерархической или сетевой.

66. Сетевая модель данных

Реляционная модель данных
• В основу реляционной модели Кодд
положил три принципа (стремления):
– Независимость данных на логическом и
физическом уровнях – стремление к
независимости
– Создание структурно-простой модели –
стремление к коммуникабельности
– Использование концепции языков высокого
уровня для описания операций над порциями
информации – стремление к обработке
множеств.

67. Реляционная модель данных

• В качестве структурной единицы используется
отношение n-порядка.
• Отношение n-го порядка – представляет собой
математическое множество, в котором порядок
строк не имеет значения
• Способ выбора данных ассоциативный:
каждая единица информации ассоциируется с
уникальной тройкой:
– Имя отношения
– Значение ключа
– Имя атрибута

68. Реляционная модель данных

• Структурная часть модели состоит из следующих
компонент:






Домен
Отношение
Атрибут
Кортеж
Потенциальный ключ
Первичный ключ

69. Реляционная модель данных

Определение:
• Домен D – это совокупность (множество)
однотипных значений данных
Пример:
• Домен Возраст – [0..100]
• Домен Пол – [‘м’, ‘ж’]
• Домен Номер – [‘00001’..’99999’]
• и т.д.

70. Реляционная модель данных

Определение:
• Декартово произведение множеств
D1 D2 … Dn – это новое множество,
состоящее из всех возможных комбинаций
элементов исходных множеств
Пример:
Даны множества: D1 = {1,2} , D2 = {5,6,7}
D1 D2 = {(1,5), (1,6), (1,7), (2,5), (2,6), (2,7)}

71. Реляционная модель данных

Определение:
• Отношением R, определенным на множествах
(доменах) D1, D2, …, Dn называется
подмножество декартово произведения
D1 D2 … Dn
Пример: Даны множества: D1 = {1,2} , D2 = {5,6,7}
D1 D2 ={(1,5), (1,6), (1,7), (2,5), (2,6), (2,7)}
R D1 D2 = {(1,5), (1,7), (2,6)}

72. Реляционная модель данных

Определение:
• Атрибут A – атомарное данное, определяющее
один из столбцов (полей) отношения.
• Атрибут есть подмножество некоторого домена,
на котором определено отношение
Пример:

1
Атрибуты
Дата рождения
Домены
Дата
2
3
Непрерывный стаж работы
Общий стаж работы
Стаж
Стаж

73. Реляционная модель данных

Определение:
• Кортеж – строка (элемент) отношения,
представляет собой некоторый элемент
декартово произведения.
Пример: Отношение R = {(1,5), (1,7), (2,6)}
Кортежи: (1,5)
(1,7)
(2,6)

74. Реляционная модель данных

Определение:
• Степень отношения – количество атрибутов
отношения (унарные, бинарные, …, n-арные).
• Мощность отношения – количество кортежей
отношения.
Пример: Отношение R = {(1,5), (1,7), (2,6)}
Степень R = 2
Мощность R = 3

75. Реляционная модель данных

Определения:
• Ключевой атрибут (ключ) – атрибут (набор
атрибутов), значение которого однозначно
идентифицирует кортежи.
• Значения первичного ключа изменить нельзя.

76. Реляционная модель данных

Определения:
• Схема отношения – именованное множество пар
«имя атрибута – имя домена».
• Схема БД – набор именованных схем отношений.

77. Реляционная модель данных

Целое
Строка Строка
Целое
Номер
Имя
Деньги
Табельный
Имя
номер
Должность
Должность Оклад
Премия
2934
Иванов Инженер
1120
400
2935
Петров Вед.
инженер
1440
500
2936
Климов Бухгалтер
920
350
Ключ
ОТНОШЕНИЕ
Типы
данных
Домены
Атрибуты
Кортежи

78. Реляционная модель данных

• Объектом реляционной модели могут быть
только нормализованные отношения.
• Отношение нормализовано, если каждый его
атрибут атомарен (т.е. не заменим другим
отношением).

79. Реляционная модель данных

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

80. Реляционная модель данных

Пример: Модель данных предприятия
• предприятие состоит из отделов, в которых работают
сотрудники. В каждом отделе может работать
несколько сотрудников, но сотрудник не может
работать более чем в одном отделе.
• Для автоматизации учета контрактов с заказчиками
необходимо создание еще одной иерархической
структуры : заказчик - контракты с ним - сотрудники,
задействованные в работе над контрактом.

81. Реляционная модель данных

А
ОТДЕЛ
ЗАКАЗЧИК
Наименование
Наименование
Число работников
Адрес
B
СОТРУДНИК
СОТРУДНИК
КОНТРАКТ
КОНТРАКТ
Фамилия
Фамилия
Номер
Номер
Должность
Должность
Дата
Дата
Оклад
Оклад
Сумма
Сумма
ИСПОЛНИТЕЛЬ
ИСПОЛНИТЕЛЬ
ИСПОЛНИТЕЛЬ
Фамилия
Фамилия
Фамилия
Должность
Должность
Должность
Наименов_отдела
Наименов_отдела
Наименов_отдела
КОНТРАКТ
КОНТРАКТ
Номер
Номер
Дата
Дата
Сумма
Сумма
C
Иерархическая
модель
данных

82.

ОТДЕЛ
ЗАКАЗЧИК
Наименование
Наименование
Число работников
Адрес
СОТРУДНИК
СОТРУДНИК
КОНТРАКТ
КОНТРАКТ
Фамилия
Фамилия
Номер
Номер
Должность
Должность
Дата
Дата
Оклад
Оклад
Сумма
Сумма
СОТРУДНИК_КОНТРАКТ
СОТРУДНИК_КОНТРАКТ
СОТРУДНИК_КОНТРАКТ
СОТРУДНИК_КОНТРАКТ
Сетевая
модель
данных

83. Реляционная модель данных

ОТДЕЛ
СОТРУДНИК
Номер_отдела
Табельный_номер
Наименование
Номер_отдела
ИСПОЛНИТЕЛИ
Фамилия
Табельный_номер
Должность
Номер_контракта
Оклад
ЗАКАЗЧИК
КОНТРАКТ
Номер_заказчика
Номер_контракта
Наименование
Номер_заказчика
Адрес
Дата
Сумма
Реляционная
модель
данных

84.

Реляционная модель данных
Свойства отношений
• Нормализованные отношения представляются в
виде табличной структуры
• Каждый кортеж отношения является уникальным,
т.е. в отношении не может быть повторяющихся
строк
• Упорядоченность кортежей теоретически
несущественна
• Количество атрибутов и их порядок в отношении
должно быть фиксированным (т.е. кортежи
должны иметь одинаковую длину и формат)

85.

Реляционная модель данных
2. Операции над данными:
• Обрабатывающая часть модели определяется
операциями реляционной алгебры:






Выборка
Проекция
Объединение
Пересечение
Соединение
и др.

86.

Реляционная модель данных
3. Ограничения целостности
Существуют два ограничения, которые должны
выполняться в любой реляционной базе данных.
Это:
Целостность сущностей.
Целостность внешних ключей.
Прежде, чем говорить о целостности сущностей,
опишем использование null-значений в
реляционных базах данных.

87. Реляционная модель данных

3.1. Null-значения
• Null-значение – это некий маркер,
показывающий, что значение неизвестно.
• Любые алгебраические операции (сложение,
умножение, конкатенация строк и т.д.),
содержащие неизвестное значение должны
давать также неизвестное значение, т.е. null.
• При сравнении выражений, содержащих nullзначения, результат также может быть
неизвестен.

88. Реляционная модель данных

3.2. Трехзначная логика (3VL)
• Таким образом, определение истинности
логических выражений базируется на
трехзначной логике (three-valued logic,
3VL), в которой кроме значений T - ИСТИНА
и F - ЛОЖЬ, введено значение U НЕИЗВЕСТНО.
• Логическое значение U - это то же самое, что
и null-значение.

89. Реляционная модель данных

Таблицы истинности в трехзначной логике
(3VL)
NOT
AND F T U
OR F T
U
F
F F F
F
F T
U
F
T
T
F T U
T
T T
T
T
F
U
F U U
U
U T
U
U
U
92

90. Реляционная модель данных

Имеется несколько парадоксальных следствий
применения трехзначной логики.
Парадокс 1. Неверно, что Null-значение равно
самому себе. Значит выражение не обязательно
ИСТИНА!
Парадокс 2. Неверно также, что null-значение
не равно самому себе! Значит также, что
выражение не обязательно ЛОЖЬ!
Парадокс 3. a or (not a) не обязательно
ИСТИНА. Значит, в трехзначной логике не
работает принцип исключенного третьего (любое
высказывание либо истинно, либо ложно).
93

91. Реляционная модель данных

Целостность сущностей
Т.к. потенциальные ключи фактически служат
идентификаторами объектов предметной
области (т.е. предназначены для различения
объектов), то значения этих идентификаторов
не могут содержать неизвестные значения.
правило целостности сущностей:
Атрибуты, входящие в состав некоторого
потенциального ключа не могут
принимать null-значений.

92.

3.3. Внешние ключи
Внешние ключи отражают взаимосвязи
между отношениями реляционной модели
данных.
Пример.
Требуется хранить информацию о
наименовании поставщиков фильмов,
наименовании поставляемых дисков, причем
каждый поставщик может поставлять разные
фильмы и каждый фильм может поставляться
несколькими поставщиками.

93.

Номер
товара
Товар
Кол-во
Номер
пост-ка
Поставщик
1
«Герцогиня»
100
1
ООО «Премьер-Видео»
2
«Герой»
200
2
ООО «Ди Ви Ди Клуб»
2
«Герой»
130
3
ООО «Диск ПРО»
3
«Белый плен»
150
1
ООО «Премьер-Видео»
4
«Турист»
200
3
ООО «Диск ПРО»
Потенциальный ключ – (Номер товара, Номер поставщика).
Проблемы:
1. При изменении наименования поставщика – необходимо
внести изменение во все строки таблицы
2. При удалении информации о поставках, удаляется и
информация о поставщике.
3. Нельзя представить товар, не поставляемый никем.
Причина: смешана разнородная информация

94.

Связи: «Поставщики выполняют Поставки»
– (1:M)
«Товары поставляются через Поставки» – (1:M)
Эти две взаимосвязи косвенно определяют новую
взаимосвязь между "Поставщиками" и «Товаром":
«Товары поставляются Поставщиками» – (M:N)
Взаимосвязи типа "многие-ко-многим" реализуются в
РБД использованием нескольких взаимосвязей типа "одинко-многим".
Отношение, входящее в связь со стороны "один"
("Поставщики"), называют родительским отношением.
Отношение, входящее в связь со стороны "много"
("Поставки"), называется дочернем отношением.

95.

Номер
поставщика
Поставщик
Номер
товара
1
ООО «Премьер-Видео»
1
«Герцогиня»
2
ООО «Ди Ви Ди Клуб»
2
«Герой»
3
ООО «Диск ПРО»
3
«Белый плен»
4
«Турист»
Отношение «Поставщики»
Товар
Отношение «Товары»
Номер
поставщика
(FK)
Номер
товара (FK)
Кол-во
1
1
100
2
2
200
3
2
130
1
3
150
3
4
200
Отношение «Поставки»

96.

Определение .
Пусть дано отношение R. Подмножество
атрибутов FK отношения R будем называть
внешним ключом, если:
1) Существует отношение S (R и S не
обязательно различны) с потенциальным
ключом K.
2) Каждое значение FK в отношении R всегда
совпадает со значением K для некоторого
кортежа из S, либо является null-значением.
Отношение S – родительское отношение
Отношение R – дочернее отношение.

97.

Замечание. Внешний ключ, как правило, не
обладает свойством уникальности. Это,
собственно, и дает тип отношения 1:N.
Замечание. Хотя каждое значение внешнего
ключа обязано совпадать со значениями
потенциального ключа в некотором кортеже
родительского отношения, то обратное, вообще
говоря, неверно. Например, могут существовать
поставщики, не поставляющие никаких деталей.
Замечание. Для внешнего ключа не требуется,
чтобы он был компонентом некоторого
потенциального ключа.

98.

Целостность внешних ключей
Т.к. внешние ключи фактически служат ссылками
на кортежи в другом (или в том же) отношении, то
они не должны указывать на несуществующие
объекты.
Правило целостности внешних ключей:
Внешние ключи не должны быть
несогласованными, т.е. для каждого значения
внешнего ключа должно существовать
соответствующее значение первичного ключа в
родительском отношении.

99.

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

100.

Нарушение целостности для
родительского отношения
Вставка кортежа в родительском отношении.
• При вставке кортежа в родительское отношение
возникает новое значение потенциального ключа.
• Т.к. допустимо существование кортежей в
родительском отношении, на которые нет ссылок из
дочернего отношения, то вставка кортежей в
родительское отношение не нарушает ссылочной
целостности.
103

101.

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

102.

Нарушение целостности для
родительского отношения
Удаление кортежа в родительском
отношении.
• При удалении кортежа в родительском
отношении удаляется значение потенциального
ключа.
• Если есть кортежи в дочернем отношении,
ссылающиеся на удаляемый кортеж, то значения
их внешних ключей станут некорректными.
• Удаление кортежей в родительском отношении
может привести к нарушению ссылочной
105
целостности.

103.

Нарушение целостности для дочернего
отношения
Вставка кортежа в дочернее отношение. Нельзя
вставить кортеж в дочернее отношение, если вставляемое
значение внешнего ключа некорректно. Вставка кортежа в
дочернее отношение может привести к нарушению
ссылочной целостности.
Обновление кортежа в дочернем отношении. При
обновлении кортежа в дочернем отношении можно
попытаться некорректно изменить значение внешнего
ключа. Обновление кортежа в дочернем отношении
может привести к нарушению ссылочной целостности.
Удаление кортежа в дочернем отношении. При
удалении кортежа в дочернем отношении ссылочная
целостность не нарушается.
106

104.

Нарушение целостности отношений
Таким образом, ссылочная целостность в
принципе может быть нарушена при выполнении
одной из четырех операций:
• Обновление кортежа в родительском
отношении.
• Удаление кортежа в родительском отношении.
• Вставка кортежа в дочернее отношение.
• Обновление кортежа в дочернем отношении.
107

105.

Стратегии поддержания ссылочной
целостности
RESTRICT (ОГРАНИЧИТЬ) – не разрешать
выполнение операции, приводящей к нарушению
ссылочной целостности. Это самая простая
стратегия, требующая только проверки, имеются
ли кортежи в дочернем отношении, связанные с
некоторым кортежем в родительском отношении.
CASCADE (КАСКАДИРОВАТЬ) – разрешить
выполнение требуемой операции, но внести при
этом необходимые поправки в других отношениях
так, чтобы не допустить нарушения ссылочной
целостности и сохранить все имеющиеся связи.108

106.

Стратегии поддержания ссылочной
целостности
Стратегии RESTRICT и CASCADE являются
стандартными и присутствуют во всех СУБД, в
которых имеется поддержка ссылочной
целостности.
109

107.

Стратегии поддержания ссылочной
целостности
Дополнительные стратегии:
• SET NULL (установить в NULL) – все
некорректные значения внешних ключей изменять
на NULL-значения
• SET DEFAULT (установить по умолчанию)– все
некорректные значения внешних ключей изменять
на некоторое значение, принятое по умолчанию
• IGNORE (игнорировать) – выполнять операции,
не обращая внимания на нарушения ссылочной
целостности
110
English     Русский Rules