Проектирование баз данных

Содержание

Слайд 2

Модели

ERM, ERD.
Чтение связей в ERD.
ERM по степени детализации
концептуальные
логические
ERD по способу графического отображения
Barker

Модели ERM, ERD. Чтение связей в ERD. ERM по степени детализации концептуальные
notation
Bachman notation
Information engineering

21.10.2017

Горбунов О.Е.

Слайд 3

Причины

Описание основных информационных потребностей;
Обсуждение предметной области на ранних стадиях;
Снижение вероятности ошибок и

Причины Описание основных информационных потребностей; Обсуждение предметной области на ранних стадиях; Снижение
недопонимания;
Основа для документирования системы;
Основа для построения физической (реляционной) модели базы данных.

21.10.2017

Горбунов О.Е.

Слайд 4

Бизнес-правила

Не все бизнес-правила могут быть представлены на ERM. Но все необходимо оформить

Бизнес-правила Не все бизнес-правила могут быть представлены на ERM. Но все необходимо
в виде документов для дальнейшей реализации.
Типы бизнес-правил:
Структурные;
Процедурные.

21.10.2017

Горбунов О.Е.

Слайд 5

Дуги (arcs)
Предназначены для моделирования исключающего ИЛИ между связями.
Отображаются на ERD.
Принадлежат одной сущности.
Охватывают

Дуги (arcs) Предназначены для моделирования исключающего ИЛИ между связями. Отображаются на ERD.
связи одинаковой обязательности (optionality).
Могут охватывать связи с разной cardinality (достаточно редко).

21.10.2017

Горбунов О.Е.

Слайд 6

Дуги. Пример

21.10.2017

Горбунов О.Е.

Дуги. Пример 21.10.2017 Горбунов О.Е.

Слайд 7

Дуги. Реализация.

21.10.2017

Горбунов О.Е.

Создаются FK на стороне “многие”.
Даже если связи обязательны на стороне

Дуги. Реализация. 21.10.2017 Горбунов О.Е. Создаются FK на стороне “многие”. Даже если
“многие”, соответствующие FK все равно будут необязательными, т.к. только один из них будет содержать значение.
Необходим программный код, чтобы гарантировать, что один из FK будет содержать значение в каждой строке таблицы (например, с помощью CHECK).

Слайд 8

Дуги. Реализация.

21.10.2017

Горбунов О.Е.

CHECK((cpe_id IS NOT NULL AND cms_id IS NULL) OR (cpe_id

Дуги. Реализация. 21.10.2017 Горбунов О.Е. CHECK((cpe_id IS NOT NULL AND cms_id IS
IS NULL AND cms_id IS NOT NULL))

Слайд 9

Супертипы и подтипы

Общие для всех экземпляров атрибуты/связи относятся к супертипу.
Подтипы: наследуют все

Супертипы и подтипы Общие для всех экземпляров атрибуты/связи относятся к супертипу. Подтипы:
атрибуты и связи супертипа; могут иметь свои собственные атрибуты и связи; могут иметь вложенные подтипы.
Правила: полнота, взаимное исключение.
Как правило, подтип не один, их несколько. Рекомендуется выделять подтип OTHER.

21.10.2017

Горбунов О.Е.

Слайд 10

Пример

21.10.2017

Горбунов О.Е.


Пример 21.10.2017 Горбунов О.Е.

Слайд 11

Реализация. Single table

Создается одна таблица для всех подтипов.
Создаются столбцы для всех атрибутов

Реализация. Single table Создается одна таблица для всех подтипов. Создаются столбцы для
супертипа с соответствующими optionality.
Добавляются столбцы для всех атрибутов подтипов, но все они optional.
Добавляется дополнительный mandatory столбец для идентификации подтипов (будет содержать значения сокращенных названий подтипов). Он обычно называется [SupertypeShortName]_type.

21.10.2017

Горбунов О.Е.

Слайд 12

Реализация. Single table

UID преобразуется в PK и UK;
Связи супертипа преобразуются стандартно;
Связи подтипов

Реализация. Single table UID преобразуется в PK и UK; Связи супертипа преобразуются
преобразуются с помощью необязательных FK;
Добавляется CHECK, который проверяет, что для каждого подтипа mandatory-поля будут заполнены.

21.10.2017

Горбунов О.Е.

Слайд 13

Реализация. Single table
CHECK ((epe_type = ‘FTE’ AND salary IS NOT NULL AND

Реализация. Single table CHECK ((epe_type = ‘FTE’ AND salary IS NOT NULL
hourly_rate IS NULL AND agy_id IS NULL) OR (epe_type = ‘PTE’ AND salary IS NULL AND hourly_rate IS NOT NULL AND agy_id IS NOT NULL)

21.10.2017

Горбунов О.Е.

Слайд 14

Реализация. Two table

Создается таблица для каждого подтипа;
Каждая таблица содержит столбцы для соответствующих

Реализация. Two table Создается таблица для каждого подтипа; Каждая таблица содержит столбцы
атрибутов супертипа, включая optionality. Аналогично – для связей супертипа.
Каждая таблица содержит столбцы, уникальные для подтипа, включая optionality. Аналогично – для связей подтипов.
Primary UID супертипа соответствуют PK в таблицах, Secondary UID – UK в таблицах.

21.10.2017

Горбунов О.Е.

Слайд 15

Реализация. Two table

21.10.2017

Горбунов О.Е.

Реализация. Two table 21.10.2017 Горбунов О.Е.

Слайд 16

Реализация. Arcs

21.10.2017

Горбунов О.Е.

Сохраняется сущность супертипа.
Для подтипов создаются отдельные сущности, которые ограничены дугой

Реализация. Arcs 21.10.2017 Горбунов О.Е. Сохраняется сущность супертипа. Для подтипов создаются отдельные
(arc).
Связи между супертипом и подтипами – 1:1.
Реализация аналогична реализации дуг. Primary UID супертипа соответствует PK для всех таблиц. FKs в таблице супертипа: optional, UK, добавляется CHECK.

Слайд 17

Реализация. Arcs

21.10.2017

Горбунов О.Е.

Реализация. Arcs 21.10.2017 Горбунов О.Е.

Слайд 18

Реализация. Arcs

21.10.2017

Горбунов О.Е.

Реализация. Arcs 21.10.2017 Горбунов О.Е.

Слайд 19

Иерархические связи
В примере используются каскадные UID.

21.10.2017

Горбунов О.Е.

Иерархические связи В примере используются каскадные UID. 21.10.2017 Горбунов О.Е.

Слайд 20

Иерархические связи. Реализация

21.10.2017

Горбунов О.Е.

Иерархические связи. Реализация 21.10.2017 Горбунов О.Е.

Слайд 21

Рекурсивные связи

21.10.2017

Горбунов О.Е.

Рекурсивные связи 21.10.2017 Горбунов О.Е.

Слайд 22

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

Иерархические и рекурсивные связи Иерархические модели проще для понимания и отражают больше
На каждом уровне иерархии могут быть специфические атрибуты и связи вместо всех опциональных атрибутов и связей у рекурсивной модели; иерархические модели точнее отражают бизнес-правила.
Рекурсивные связи компактнее, однако они отражают меньше деталей.

21.10.2017

Горбунов О.Е.

Слайд 23

Исторические данные

Учет значений, которые меняются со временем.
Пример:

21.10.2017

Горбунов О.Е.

Исторические данные Учет значений, которые меняются со временем. Пример: 21.10.2017 Горбунов О.Е.

Слайд 24

Исторические данные

21.10.2017

Горбунов О.Е.

Исходная модель
Решение I (не позволяет звезде арендовать одно и то же украшение в разные даты)

Исторические данные 21.10.2017 Горбунов О.Е. Исходная модель Решение I (не позволяет звезде

Слайд 25

Исторические данные

21.10.2017

Горбунов О.Е.

Решение II (позволяет разным звездам арендовать одно и то же украшение одновременно)

Исторические данные 21.10.2017 Горбунов О.Е. Решение II (позволяет разным звездам арендовать одно

Слайд 26

Исторические данные

21.10.2017

Горбунов О.Е.

Решение III (не позволяет одной звезде арендовать более одного украшения в день)

Исторические данные 21.10.2017 Горбунов О.Е. Решение III (не позволяет одной звезде арендовать

Слайд 27

Исторические данные

21.10.2017

Горбунов О.Е.

Решение IV (каждое украшение может быть арендовано не более одного раза в сутки)

Исторические данные 21.10.2017 Горбунов О.Е. Решение IV (каждое украшение может быть арендовано