Similar presentations:
ER-моделирование баз данных
1. Лекция ER-моделирование баз данных
2. Основные свойства таблиц в реляционных БД
• Каждое значение, содержащееся напересечении строки и колонки, должно
быть атомарным (то есть не
расчленяемым на несколько значений).
3. Основные свойства таблиц в реляционных БД
• Каждое значение, содержащееся напересечении строки и колонки, должно
быть атомарным (то есть не
расчленяемым на несколько значений).
• Значения данных в одной и той же
колонке должны принадлежать к одному
и тому же типу, доступному для
использования в данной СУБД.
4. Основные свойства таблиц в реляционных БД
• Каждое значение, содержащееся напересечении строки и колонки, должно быть
атомарным (то есть не расчленяемым на
несколько значений).
• Значения данных в одной и той же колонке
должны принадлежать к одному и тому же
типу, доступному для использования в данной
СУБД.
• Каждая запись в таблице уникальна, то есть в
таблице не существует двух записей с
полностью совпадающим набором значений
ее полей.
5. Основные свойства таблиц в реляционных БД
• Каждое значение, содержащееся напересечении строки и колонки, должно быть
атомарным (то есть не расчленяемым на
несколько значений).
• Значения данных в одной и той же колонке
должны принадлежать к одному и тому же
типу, доступному для использования в данной
СУБД.
• Каждая запись в таблице уникальна, то есть в
таблице не существует двух записей с
полностью совпадающим набором значений
ее полей.
• Каждое поле имеет уникальное имя.
6. Основные свойства таблиц в реляционных БД
• Каждое значение, содержащееся на пересечениистроки и колонки, должно быть атомарным (то
есть не расчленяемым на несколько значений).
• Значения данных в одной и той же колонке должны
принадлежать к одному и тому же типу, доступному
для использования в данной СУБД.
• Каждая запись в таблице уникальна, то есть в
таблице не существует двух записей с полностью
совпадающим набором значений ее полей.
• Каждое поле имеет уникальное имя.
• Последовательность полей в таблице
несущественна.
7. Основные свойства таблиц в реляционных БД
• Каждое значение, содержащееся на пересечениистроки и колонки, должно быть атомарным (то есть
не расчленяемым на несколько значений).
• Значения данных в одной и той же колонке должны
принадлежать к одному и тому же типу, доступному
для использования в данной СУБД.
• Каждая запись в таблице уникальна, то есть в
таблице не существует двух записей с полностью
совпадающим набором значений ее полей.
• Каждое поле имеет уникальное имя.
• Последовательность полей в таблице несущественна.
• Последовательность записей также несущественна.
8. Пример. Постановка задачи
• Предметная область - Интернет-магазин• У магазина есть товары, которые
поставляются поставщиками и покупаются
покупатели.
9. Концептуальная модель - это отражение предметной области, для которой разрабатывается база данных.
Может быть представлена диаграммой с принятымиобозначениями элементов:
• все объекты, обозначающие объекты,
представлены в виде прямоугольника;
• атрибуты, характеризующие объект - в виде
овала;
• связи между объектами – ромбами;
• мощность связи обозначаются стрелками (в
направлении, где мощность равна многим двойная стрелка, а со стороны, где она равна
единице - одинарная).
10.
11. Учтем как поставщик поставляет товары, а покупатель покупает
12. Учтем как поставщик поставляет товары, а покупатель покупает
Две связи "многие ко многим" (для связи Поставка – Товар каждая поставка можетсодержать несколько товаров, а один и тот же товар может содержаться в нескольких
поставках, аналогично и для связи Покупка - Товар
13.
Используем в ER-диаграмме нотацию «вороньи лапки». Связи «один комногим».
Обратите внимание, в сильных сущностях Покупатель, Тавар, Поставщик один
экземпляр сущности (на схеме один штришок) соответствует многим
экземплярам связанных с ними слабых сущностей (на схеме «воронья лапка»).
14. Концептуальная модель интернет-магазина
15. Преобразование концептуальной модели в реляционную модель
• Построить набор предварительных таблици указать первичные ключи.
• Провести процесс нормализации.
16. 1 Построение набора таблиц: каждой сущности соответствует одна таблица. В таблицах Журнал покупок и Журнал поставок составной
В таблицах Журнал покупок и Журнал поставок составнойпервичный ключ из атрибутов, каждый из которых является
внешним ключом к таблицам Товар, Покупка или Поставка.
В таблицах Покупка и Поставка внешние ключи к таблицам
Покупатель и Поставка.
PK – первичный ключ, FR – внешний ключ
17. Первичный ключ (сокращенно РК - primary key) - столбец, значения которого во всех строках различны.
Первичный ключ (сокращенно РК primary key) - столбец, значениякоторого во всех строках различны.
Колонка, указывающая на запись в
другой таблице, связанную с данной
записью, называется внешним
ключом (foreign key).
18. Ищем неатомарные поля
19. Если будем учитывать поставки в определенные города, то из атрибута Адрес надо выделить Город в отдельный атрибут
20.
Поле ФИО.Если мы собираемся поздравлять покупателей с
именинами (которые, как известно, зависят от имени),
то это поле пришлось бы разбить на три:
• Фамилию,
• Имя
• Отчество.
Если магазин этого делать не собирается, то поле ФИО
можно считать атомарным,
а таблицу Покупатели можно считать приведенной к
1НФ.
21. Все таблицы находятся во 2НФ. Так как в таблицах Покупатель, Поставщик, Покупка, Поставка, Товар первичный ключ простой. А в
Так как в таблицах Покупатель, Поставщик, Покупка,Поставка, Товар первичный ключ простой.
А в таблицах Журнал поставок и Журнал покупок
единственные неключевые атрибуты Количество
функционально полно зависят от составных первичных
ключей. (Количество зависит и от товара, и от того, в какой
он покупке или поставке)
22.
Таблица Товар.• Добавим поле Дата (когда изменилась цена).
• Цена зависит от неключевого поля Дата, нужно избавиться от
функциональной зависимости неключевых атрибутов.
• Преобразуем в 3НФ, введя дополнительную таблицу Цена.