Слайд 1Базы данных. Проектирование БД по методологии "сущность-связь" (ER, IDEF1X)
БОГИН ИЛЬЯ
ВЛАДИМИРОВИЧ
Москва
2011
НИЯУ "МИФИ"
Слайд 21
Методология проектирования реляционных баз данных
Концептуальное представление базы данных с помощью
модели
Сущность — Связь (Entity-Relationship Model)
Свойства
Визуальный язык программирования.
Три стадии проектирования
с различным уровнем абстракции.
Средства автоматической генерации SQL кода для создания БД.
Методология, ориентированная на автоматическое получение схемы,
Удовлетворяющей 3 НФ.
Слайд 31
Методология проектирования реляционных баз данных
Визуальный язык программирования
Сотрудник
Сущность — отображение объекта
предметной области
Связь — отображение взаимодействия между двумя сущностями.
1
N
выполняет
Слайд 41
Методология проектирования реляционных баз данных
Пример использования сущностей и связей
для
отображения предметной области
Сотрудник
Задача
1
N
Выполняет /
Выполняется
Слайд 51
Методология проектирования реляционных баз данных
Стадии проектирования реляционной БД по методологии
сущность-связь
Построение схемы уровня сущностей
Построение схемы уровня ключей
Построение полноатрибутной схемы
Отображение полноатрибутной
схемы на конкретную СУБД
Формирование SQL скрипта создания БД и его исполнение
в заданной СУБД.
Слайд 61
Методология проектирования реляционных баз данных
1. Построение схемы уровня сущностей
Задачи
Составление словаря
предметной области. Выбор списка сущностей.
Расстановка связей между сущностями. Выбор типа
связей.
Выбор численных характеристик связей.
Результат
Концептуальная, максимально абстрагированная схема
предметной области в терминологии модели сущность-связь
Слайд 71
Методология проектирования реляционных баз данных
Характеристики связей
Каждая связь характеризуется 2-мя кардинальными
числами.
Кардинальное число характеризует один из концов связи. (Первая сущность —
сущность расположенная с того конца связи, который характеризуется кардинальным числом)
Кардинальное число задает количество экземпляров первой cyщности, которые могут взаимодействовать с одним экземпляром второй сущности
Группа
Студент
1
N
Состоит из /
Состоит в
Слайд 81
Методология проектирования реляционных баз данных
Типы связей
Связь типа категория (Кардинальные числа
1:1)
Клиент
Физ. лицо
Юр. лицо
является
1
1
1
Слайд 91
Методология проектирования реляционных баз данных
Типы связей
Связь один-ко-многим (Кардинальные числа 1:N)
Группа
Студент
1
N
Состоит
из /
Состоит в
Предмет
Студент
N
N
Изучается /
Изучает
Связь многие-ко-многим (Кардинальные числа N:N)
Слайд 101
Методология проектирования реляционных баз данных
Задача
Фирма «Рога и копыта», занимающаяся продажей
товаров.
Продажа товаров осуществляется в соответствии с ценами, задаваемыми прайслистом.
В
качестве клиентов могут выступать как физические, так и юридические лица.
При покупке оформляется товарная накладная со списком всех наименований и количества купленных товаров.
Слайд 111
Методология проектирования реляционных баз данных
Словарь сущностей ИС фирмы «Рога и
копыта»
Клиент. Физическое лицо. Юридическое лицо.
Товар.
Прайслист.
Накладная.
Слайд 121
Методология проектирования реляционных баз данных
Матрица связей
Слайд 131
Методология проектирования реляционных баз данных
2. Построение схемы уровня ключей
Задачи
Выбор первичных
ключей.
Разрешение связей один-ко-многим, многие-ко-многим, категория.
Результат
Схема предметной области с реализацией связей
согласно
реляционной модели данных.
Слайд 141
Методология проектирования реляционных баз данных
Правила выбора первичного ключа
Простой первичный ключ
лучше составного
Ключ на основе простого типа данных лучше ключа на
основе
сложного типа данных
Суррогатный (не имеющий отображения в предметной области)
целочисленный первичный ключ подходит для 95% случаев
Слайд 151
Методология проектирования реляционных баз данных
A. Разрешение связи типа один-ко многим.
Связь
один-ко-многим разрешается путем миграции первичного ключа
от родительской сущности (конец связи
с кардинальным числом 1)
к дочерней сущности (конец связи с кардинальным числом N).
№ Студента (PK)
Группа
Студент
1
№ Группы (PK)
N
Состоит из /
Состоит в
№ Студента (PK)
№ Группы (FK)
1
№ Группы (PK)
N
Состоит из /
Состоит в
Группа
Студент
Слайд 161
Методология проектирования реляционных баз данных
Свойства процесса миграции ключа
Составной первичный ключ
мигрирует целиком.
Имя внешнего ключа может отличаться от имени первичного ключа.
Если
первичный ключ родительской сущности мигрирует в область
первичных ключей дочерней сущности, то связь называется
идентифицирующей.
Если первичный ключ родительской сущности мигрирует в область
неключевых атрибутов дочерней сущности, то связь называется
неидентифицирующей.
№ Студента (PK)
№ Группы (FK) (PK)
1
№ Группы (PK)
N
Состоит из /
Состоит в
Группа
Студент
Слайд 171
Методология проектирования реляционных баз данных
Идентифицирующая и неидентифицирующая связи
Идентифицирующая:
№ Студента (PK)
№
Группы (FK) (PK)
1
№ Группы (PK)
N
Состоит из /
Состоит в
Группа
Студент
Неидентифицирующая:
№ Студента (PK)
№
Группы (FK)
1
№ Группы (PK)
N
Состоит из /
Состоит в
Студент
Группа
Слайд 181
Методология проектирования реляционных баз данных
Сравнение преимуществ идентифицирующей и неидентифицрующей связей.
№
E2 (PK)
№ E1 (FK)
1
№ E1 (PK)
N
E2
E1
№ E3 (PK)
№ E2 (FK)
N
E3
1
Неидентифицирующие
связи
№ E2 (PK)
№ E1 (FK) (PK)
1
№ E1 (PK)
N
E2
E1
№ E3 (PK)
№ E2 (FK) (PK)
№ E1 (FK) (PK)
N
E3
1
Идентифицирующие связи
Слайд 191
Методология проектирования реляционных баз данных
Сравнение преимуществ идентифицирующей и неидентифицрующей связей.
Идентифицирующие
связи VS Неидентифицирующие связи
- Каскадная миграция ключей
+ Более быстрый доступ
к удаленным по иерархии сущностям
Слайд 201
Методология проектирования реляционных баз данных
B. Разрешение связей многие-ко-многим
Предположим, что связь
многие-ко-многим
разрешается путем обоюдной миграции ключей
аналогично неидентифицирующей связи один-ко-многим,
.
№Студента
(PK)
№ Предмета (FK)
Предмет
Студент
N
№ Предмета (PK)
№ Студента (FK)
N
Изучается /
Изучает
Слайд 211
Методология проектирования реляционных баз данных
B. Разрешение связей многие-ко-многим
Предмет
Предмет
Студент
Слайд 221
Методология проектирования реляционных баз данных
B. Разрешение связей многие-ко-многим
Вывод
Связь многие-ко-многим не
может разрешаться путем
неидентифицирующей миграции первичных ключей из-за нарушения
условия уникальности первичного
ключа в результирующих сущностях.
Слайд 231
Методология проектирования реляционных баз данных
B. Разрешение связей многие-ко-многим
№Студента (PK)
№ Предмета
(FK) (PK)
Предмет
Студент
N
№ Предмета (PK)
№ Студента (FK) (PK)
N
Изучается /
Изучает
Предположим, что связь
многие-ко-многим
разрешается путем обоюдной миграции ключей
аналогично идентифицирующей связи один-ко-многим,
.
Слайд 241
Методология проектирования реляционных баз данных
B. Разрешение связей многие-ко-многим
Предмет
Предмет
Студент
Слайд 251
Методология проектирования реляционных баз данных
B. Разрешение связей многие-ко-многим
Вывод
Связь многие-ко-многим не
может разрешаться путем
идентифицирующей миграции первичных ключей из-за нарушения
второй нормальной формы.
Слайд 261
Методология проектирования реляционных баз данных
B. Разрешение связей многие-ко-многим
№ П (FK)
(PK)
№ С (FK) (PK)
1
№ П (PK)
N
№ C(PK)
1
N
Предмет
Студент
Предмет студента
является
изучает
№ПС(PK)
№ П (FK)
№ С (FK)
1
№ П (PK)
N
№ C(PK)
1
N
является
изучает
Предмет
Предмет студента
Студент
Слайд 271
Методология проектирования реляционных баз данных
С. Разрешение связей типа категория
№ Клиента
(PK)
№ Клиента (PK)
Клиент
Физ. лицо
№ Клиента (PK)
Юр. лицо
является
1
1
1
Слайд 281
Методология проектирования реляционных баз данных
3. Построение полноатрибутной схемы
Задачи
Выбор атрибутов
для всех сущностей.
Сохранение свойств семантической атомарности атрибутов.
Создание дополнительных сущностей справочников
для атрибутов с
потенциально расширяемыми списковыми значениями.
Результат
Полная модель предметной области построенная по правилам реляционной модели.
Слайд 291
Методология проектирования реляционных баз данных
3. Отображение полноатрибутной схемы на конкретную
СУБД
Задачи
SQL является строго типизированным языком. Выбор типа данных
для каждого
атрибута.
Построение дополнительных ограничений на атрибуты.
Результат
Физическая модель сущность-связь, использующая список типов данных специфичных для выбранной СУБД
Слайд 301
Методология проектирования реляционных баз данных
3. Отображение полноатрибутной схемы на конкретную
СУБД
Типы данных
INTEGER — целочисленный тип данных
FLOAT — число с
плавающей запятой
CHAR — символьный тип
CHAR(<размер>), VARCHAR(<размер>) - строковый тип
DATETIME — дата + время
TEXT — большой объем текста
BLOB — большой объем бинарных данных
Слайд 311
Методология проектирования реляционных баз данных
3. Отображение полноатрибутной схемы на конкретную
СУБД
Задачи
SQL является строго типизированным языком. Выбор типа данных
для каждого
атрибута.
Построение дополнительных ограничений на атрибуты.
Результат
Физическая модель сущность-связь, использующая список типов данных специфичных для выбранной СУБД
Слайд 321
Методология проектирования реляционных баз данных
4. Формирование SQL скрипта создания БД
и его исполнение в заданной СУБД.
Задачи
Формирование SQL скрипта.
Запуск и
отладка SQL скрипта.
Верификация созданной базы данных.
Результат
Реляционная база данных, описывающая заданную предметную область, построенная согласно правилам 3 НФ.
Слайд 331
Методология проектирования реляционных баз данных
Задача
Банк «Бета Банк».
Банк принимает вклады от
юридических и физических лиц.
Линейка вкладов может обновляться согласно решению руководства
банка.
На счет может быть оформлена дебетовая карта.
Информация о транзакциях по банковской карте сохраняется для построения отчетности