- •Содержание
- •1. Основные понятия баз данных
- •1.1. Проектирование баз данных
- •1.2. Индексы и ключи в базах данных
- •2. Функциональные зависимости
- •2.1. Понятие функциональной зависимости
- •2.2. Метод синтеза
- •2.3. Аксиомы вывода
- •2.4. Применение аксиом вывода
- •2.5. Замыкание множества атрибутов относительно множества функциональных зависимостей
- •2.6. Эквивалентность двух систем функциональных зависимостей
- •2.7 Метод синтеза
- •2.8. Классы эквивалентности функциональных зависимостей с эквивалентными левыми частями
- •2.9. Составные функциональные зависимости и кольцевые покрытия
- •3. Нормализация баз данных
- •3.1. Декомпозиция таблицы на две таблицы без потери информации и с потерей информации
- •4. Иерархия в базах данных
- •4.1. Использование иерархии в базах данных
- •4.2. Инклюзивная и эксклюзивная иерархии
- •5. Сортировка и поиск записей в базах данных
- •5.1.Многофазная сортировка
- •7. Оптимизация запросов
- •7.1. Основные операции реляционной алгебры и их обозначения
- •8. Статистические данные, используемые для минимизации запросов
- •8.1. Анализ стоимости операций
- •8.2. Оценка размеров промежуточных отношений
- •8.2.1. Оценка размера результата операции объединения
- •8.2.2. Оценка размера результата операции пересечения
- •8.2.3. Оценка размера результата оператора проекции
- •8.2.4. Оценка размера результата оператора выбора
- •8.3. Выборка с условием равенства двух атрибутов
- •8.4. Выборка при условии неравенства двух атрибутов
- •8.5. Естественное соединение отношений с несколькими общими атрибутами
- •8.6. Соединение нескольких отношений
- •8.7. Оценка размеров результатов выполнения других операторов
- •8.7.1. Объединение
- •8.7.2. Пересечение
- •8.7.3. Разность
- •8.7.4. Удаление кортежей-дубликатов
- •8.7.5. Группирование и агрегирование
- •8.8. Свод формул для сравнительного расчета количества записей результата выполнения операций реляционной алгебры
- •8.9. Тождественные преобразования для операций реляционной алгебры
- •8.10. Алгебраические законы и планы запросов
- •8.10.1. Коммутативный и ассоциативный законы
- •8.11. Законы для "множественных" и "мультимножественных" версий операторов
- •8.11.1. Законы выбора
- •8.11.2. Некоторые тривиальные законы
- •8.11.3. Законы проекции
- •8.11.4. Законы соединения и декартова произведения
- •8.11.5. Законы, касающиеся удаления кортежей-дубликатов
- •8.11.6. Законы группирования и агрегирования
- •8.11.7. Закон деления
Содержание
1.1. Проектирование баз данных 1
8.2.1. Оценка размера результата операции объединения 41
1. Основные понятия баз данных
1.1. Проектирование баз данных
Модель – заместитель действительности.
База данных (БД) задает:
модель состава, набор и перечень информационных объектов.
Информационный объект – понятие, выраженное через слово, обозначающее множество однотипных экземпляров объекта (синоним – слово «понятие»).
модель структуры предметной области.
Структура – объекты и связи между ними.
Связи в БД задаются также информационными объектами.
БД отражает модель динамики предметной области путем фиксации фактов о состояниях объектов и связей между ними на определенный момент времени и в определенной точке пространства.
Ключ – минимальный набор атрибутов, который однозначно определяет каждый экземпляр объекта.
В данном методическом пособии будут приведены примеры проектирования баз данных с использованием case-средства Erwin.
Рассмотрим отношение в Erwin (Рисунок 1.1).
Рис.1.1 - Пример отношения в Erwin
Над чертой записываются атрибуты первичного ключа, под чертой все остальные атрибуты.
Первичный ключ назначается для организации связей между таблицами и поддержания ссылочной целостности.
Ключи-кандидаты записываются при помощи специального обозначения атрибутов этого ключа.
Kp={A,B,C} – первичный ключ.
K1={A,B,F,L} – первый альтернативный ключ.
K2={A,F,K} – второй альтернативный ключ.
Две таблицы связаны между собой, если в них есть одноименное поле. Связь правильная, если в одной из таблиц это поле будет ключом или входит в состав ключа.
Рассмотрим пример проектирования БД. Предметная область – хирургическая поликлиника.
Неформализованное описание
Таблицы:
Хирург (Hir),
Операция (Op),
Пациент (Pac).
Таблица 1.1 - Список атрибутов таблицы Хирург
Краткое наименование |
Полное наименование |
Примеры значений |
Nph |
номер патента хирурга |
ZFK367/85 |
Ah |
город, в котором живет хирург |
Курск |
Ih |
имя хирурга |
Владлен |
Dh |
дата рождения |
17.10.1970 |
Nph – первичный ключ.
Ah, Ih, Dh – альтернативный ключ.
Таблица 1.2 - Список атрибутов таблицы Операция
Краткое наименование |
Полное наименование |
Примеры значений |
Nop |
номер операции |
15 |
Dop |
дата операции |
17.10.2003 |
Nameop |
имя операции |
удаление аппендицита |
Top |
время операции |
11.00 |
Np |
номер палаты |
45 |
Nоp – первичный ключ.
Dop, Nameop, Np, Top – первый альтернативный ключ.
Dop, Nameop, Top, Nph – второй альтернативный ключ.
Таблица 1.3 - Список атрибутов таблицы Пациент
Краткое наименование |
Полное наименование |
Примеры значений |
Np |
номер пациента |
10 |
Ip |
имя пациента |
Марат |
Ap |
город, в котором живет пациент |
Льгов |
Dp |
дата рождения пациента |
17.10.1983 |
Np – первичный ключ.
Ip, Ap, Dp – альтернативный ключ.
Рис.1.2 - Пример реализации предметной области хирургическая поликлиника
в ERwin
Таблица 1.4 – Частный случай таблицы Hir
Nph |
Ih |
Ah |
Dh |
365 |
Иван |
Курск |
01.01.1968 |
851 |
Петр |
Рыльск |
01.02.1971 |
971 |
Иван |
Хомутовка |
01.03.1975 |
972 |
Иван |
Курск |
01.01.1968 |
В данном примере (Таблица 1.4) возникло нарушение альтернативного ключа, так как у одного хирурга не может быть двух патентов.
Таблица 1.5 – Частный случай таблицы Op
Nop |
Nph |
Np |
Dop |
Nameop |
Top |
Npal |
12 |
365 |
532 |
29.09.07 |
апендицит |
13:00 |
6 |
13 |
365 |
533 |
29.09.07 |
поджел |
13:00 |
8 |
14 |
851 |
532 |
29.09.07 |
сустав |
13:00 |
9 |
15 |
971 |
534 |
29.09.07 |
ребро |
13:00 |
9 |
В первых двух строчках (Таблица 1.5) наблюдается нарушение второго альтернативного ключа, так как один и тот же хирург в одно и то же время не может проводить операцию, находясь в двух разных кабинетах.
Во втором случае наблюдается нарушение первого альтернативного ключа, потому что в одно и то же время в одном и том же кабинете не могут проводиться две разные операции.
Таблица 1.6 – Частный случай таблицы Pac
Np |
Ip |
Ap |
Dp |
532 |
Коля |
Курск |
01.02.1978 |
533 |
Алена |
Фатеж |
01.02.1981 |
534 |
Света |
Рыльск |
02.02.1978 |
799 |
Света |
Рыльск |
02.02.1978 |
В данном примере (Таблица 1.6) наблюдается нарушение альтернативного ключа, так как одна и та же пациентка не может иметь два разных номера.