- •Одно из применений связи «один ко многим»- использование справочников
- •Таблица находится в 3НФ, но имеется избыточность: многократно повторяются одни и те же
- •Вводим в БД таблицы- справочники «Города» и «Собственность»:
- •Справочник «Собственность»
- •Исходная таблица примет вид:
- •Таблицы- справочники:
- •Связь «Многие ко многим»
- •Реализация связей для примера
- •Таблица «препараты»
- •Таблица « Поступление лекарств»
- •Связи таблиц (схема данных)
- •ССЫЛОЧНАЯ
- •Требование ссылочной целостности
- •Для наших примеров:
- •Средства поддержания ссылочной
- •Каскадное обновление связанных полей
- •Код аптеки
- •Каскадное удаление связанных записей
- •Например, закрылась аптека по ул.Артема 53
- •Языковые средства СУБД
- •К языковым средствам СУБД относятся:
- •Язык описания данных (ЯОД)
- •Язык манипулирования данными
- •Язык запросов
- •Языки запросов
- •Конечная цель пользователя- выборка необходимой информации из БД для последующей обработки. Эта цель
- •Операции реляционной алгебры
- •Множество операций, предложенное Э.Коддом, избыточно, часть операций в нем выражается через другие
- •Теоретико-множественные операции
- •Пример объединения отношений
- •Пересечением двух отношений называется отношение, которое содержит множество кортежей, принадлежащих одновременно и первому,
- •Пример пересечения отношений
- •R4- студенты, изучающие английский язык и получающие стипендию
- •Разностью отношений R1 и R2называется отношение, которое содержит множество кортежей, принадлежащих R1 и
- •Примеры разности отношений
- •Примеры построения запросов с использованием указанных операций
- •Абитуриенты, не поступившие в университет:
- •Назовем
- •Расширенным декартовым произведением отношения R1 степени n со схемой
- •Самостоятельного значения результат выполнения этой операции в базах данных обычно не имеет. Используется
- •R7- Таблица «Факультеты»
- •R8- Таблица «Кафедры»
- •Специальные операции реляционной алгебры
- •Селекция (фильтрация)
- •Операция удаляет из таблицы строки, для которых не выполняется условие α.
- •Проекция
- •Например,
- •Э.Кодд в 1985 году сформулировал 12 правил, которым должна соответствовать любая реляционная СУБД
- •1. Явное представление данных (The Information Rule):
- •2. Гарантированный доступ к данным
- •3. Полная обработка неизвестных значений (Systematic Treatment of Null Values):
- •4. Доступ к словарю данных в терминах реляционной модели (Active On-Line Catalog Based
- •5. Полнота подмножества языка (Comprehensive Data Sublanguage Rule):
- •6. Возможность модификации представлений (View Updating Rule):
- •7. Наличие высокоуровневых операций управления данными (High-Level Insert, Update, and Delete):
- •8. Физическая независимость данных (Physical Data Independence):
- •9. Логическая независимость данных (Logical Data Independence):
- •10. Независимость контроля целостности
- •11. Дистрибутивная независимость
- •12. Согласование языковых уровней (The Nonsubversion Rule):
- •Ограничения целостности
- •Целостность сущностей.
- •Целостность ссылок
Одно из применений связи «один ко многим»- использование справочников
Поставщик |
Город |
Тип |
|
|
|
собственности |
|
Альфа |
Петропавловск- |
Частный |
|
|
Камчатский |
|
|
Гамма |
Санкт-Петербург |
Государственный |
|
Омега |
Петропавловск- |
Акционерный |
|
|
Камчатский |
|
|
Сигма |
Каменец- |
Государственный |
|
|
Подольский |
|
|
Эпсилон |
Каменец- |
Частный |
1 |
|
Подольский |
|
Таблица находится в 3НФ, но имеется избыточность: многократно повторяются одни и те же значения в полях «Город» и «Тип собственности»
2
Вводим в БД таблицы- справочники «Города» и «Собственность»:
Справочник «Города»
Код |
Город |
города |
|
1 |
Ростов-на-Дону |
2 |
Петропавловск-Камчатский |
3 |
Санкт-Петербург |
4 |
Каменец-Подольский |
3
Справочник «Собственность»
Код |
Тип |
собственности |
собственности |
а |
Акционерный |
ч |
Частный |
г |
государственный |
4
Исходная таблица примет вид:
Поставщик |
Код города |
Код |
|
|
Собственности |
Альфа |
2 |
Ч |
Гамма |
3 |
Г |
Омега |
2 |
А |
Сигма |
4 |
Г |
Эпсилон |
4 |
Ч |
5
Таблицы- справочники:
•Содержат небольшое количество полей
•Основная операция для них- добавление
•Редко редактируются
•Из них почти никогда не удаляются записи
6
Связь «Многие ко многим»
Явно в РМД реализована быть не может. Разбивается на две связи «один ко многим» Например, объекты «Аптеки» и «Лекарства»:
Одно и то же лекарство может продаваться в нескольких аптеках по разной цене, с разным сроком годности. С другой стороны, в каждой аптеке в продаже имеется несколько различных препаратов
7
Реализация связей для примера
Таблица «Аптеки»
Код |
адрес |
телефон |
График работы |
аптеки |
|
|
|
1 |
Ул. Артема, |
335-09-09 |
8.00-20.00 |
|
53 |
|
|
2 |
Ул. Артема |
336-00-12 |
круглосуточно |
|
48 |
|
|
8
Таблица «препараты»
Код |
Препарат |
Форма |
препарата |
|
выпуска |
1 |
Лазолван |
сироп |
2 |
Лазолван |
таблетки |
3 |
валидол |
таблетки |
4 |
Корвалол |
капли |
Фармакол.
группа
Муколитиче
ские
Муколитиче
ские Сердечные
сердечные
9
Таблица « Поступление лекарств»
(таблица пересечений)
Код |
Код преп. |
Дата поступления |
Цена |
|
аптеки |
|
|
|
|
1 |
1 |
01.09.05 |
10.00 |
|
1 |
3 |
12.09.05 |
0.90 |
|
1 |
4 |
10.09.05 |
1.00 |
|
2 |
2 |
01.09.05 |
5.65 |
|
2 |
3 |
01.09.05 |
1.20 |
|
2 |
1 |
01.09.05 |
12.00 |
|
2 |
4 |
10.09.05 |
0.95 |
10 |
|
|
|
|