- •1. Введение в базы и банки данных
- •1.1. Понятие базы и банка данных
- •1.2. Компоненты банка данных
- •1.2.1. Информационная база
- •1.2.2. Лингвистические средства
- •1.2.3. Программные средства
- •1.2.4. Технические средства
- •1.4. Типология баз данных
- •1.2.5. Организационно-административные подсистемы
- •1.3. Пользователи баз данных
- •1.4.1. Типология баз данных с точки зрения информационных процессов
- •1.5. Семантика баз данных
- •1.6. Типология моделей
- •2. Базовые технологии и основные этапы развития машинной обработки данных
- •2.1. Введение в технологии машинной обработки данных и основные определения
- •2.2. Примерная схема организации файлового ввода-вывода
- •2.3. Эволюция концепций обработки данных
- •2.3.1. Простые (линейные) файлы данных (начало 60-х гг.)
- •2.3.2. Методы доступа к записям (конец 60-х гг.)
- •2.3.3. Первые системы управления базами данных (начало 70-х гг.)
- •2.3.4. Системы управления базами данных
- •2.4. Схема управления данными в субд
- •2.5. Данные и управление их обработкой
- •2.5.1. Типы, форматы, структуры данных
- •2.5.2. Описание и обработка файлов
- •2.6. Особенности и компромиссы реализаций баз данных
- •3. Модели и структуры данных
- •3.1. Многоуровневые модели предметной области
- •3.2. Идентификация объектов и записей
- •3.3. Поиск записей
- •3.4. Представление предметной области и модели данных
- •3.5. Структуры данных
- •3.5.1. Линейные структуры
- •3.5.2. Нелинейные структуры
- •3.5.3. Сетевые структуры
- •3.6. Реляционная модель данных
- •3.6.1. Основные понятия реляционной модели данных
- •3.6.2. Основы реляционной алгебры
- •4. Физические модели баз данных
- •4.1. Организация данных на машинных носителях
- •4.1.1. Типы записей
- •4.1.2. Организация файлов — способ размещения записей
- •4.1.3. Способы адресации и методы доступа к записям
- •4.1.4. Схемы организации данных на внешних носителях
- •4.2. Физическое представление иерархических структур
- •4.2.1. Физически последовательное размещение
- •4.2.2. Левосписковые структуры с переполнениями
- •4.2.3. Использование указателей на «подобные» и «порожденные»
- •4.3. Физическое представление сетевых структур
- •4.3.1. Физически последовательное размещение
- •4.3.2. Использование указателей
- •4.3.3. Физическое представление с разделением данных и связей
- •4.4. Архитектура файловой организации баз данных
- •4.4.1. Файл-ориентированная организация данных
- •4.4.2. Страничная организация данных
- •4.5. Модели распределения данных по физическим носителям
- •5. Модели и этапы проектирования баз данных
- •5.1. Модели многоуровневой архитектуры систем баз данных
- •5.2. Стадии проектирования и объекты моделирования
- •5.3. Системный анализ предметной области
- •5.4. Модели и технологии инфологического проектирования реляционных бд
- •5.4.1. Инфологическое проектирование и семантическая модель
- •5.4.2. Модель «Сущность — связь»
- •5.4.3. Er диаграмма
- •5.4.4. Нормальные формы er-диаграмм
- •5.5. Даталогические модели
- •5.5.1. Получение реляционной схемы из er диаграммы
- •5.6. Физические модели
- •6. Проектирование реляционной базы данных
- •6.1. Универсальное отношение
- •6.2. Функциональная и многозначная зависимости
- •6.3. Нормальные формы
- •6.4. Процедура нормализации
- •6.5. Пример проектирования реляционной бд
- •6.5.1. Построение еr-диаграммы
- •6.5.2. Построение реляционной схемы
- •6.5.3. Нормализация таблиц
- •7. Транзакции и целостность бд
- •7.1. Модели транзакций
- •7.2. Журнал транзакций
- •7.3. Параллельное выполнение транзакций
- •7.3.1. Пропавшие обновления
- •7.3.2. Чтение «грязных» данных
- •7.3.3. Чтение несогласованных данных
- •7.3.4. Строки-призраки
- •7.4. Сериализация транзакций
- •7.5. Захват и освобождение объекта
6.5. Пример проектирования реляционной бд
Рассмотрим следующую задачу: пусть необходимо обеспечить сбор и обработку данных по результатам сдачи экзаменов и зачетов студентами факультета. Организация данных должна поддерживать:
выполнение текущего учебного плана;
формирование ведомостей по отдельным дисциплинам для групп студентов;
формирование листов зачетных книжек студентов;
формирование сводной ведомости курса;
расчет среднего балла по дисциплинам и т. п.
Приведем этапы построения инфологической и даталогической моделей (ЕR-диаграммы и реляционной схемы) для решения такой задачи.
6.5.1. Построение еr-диаграммы
Представим предметную область как взаимодействие двух сущностей – «Дисциплина учебного плана» и «Студент»: каждый студент сдает экзамен или зачет по некоторой дисциплине учебного плана и получает оценку, которая должна быть зафиксирована в модели данных.
«Дисциплина учебною плана» с точки зрения решаемой задачи должна быть представлена группой свойств, позволяющих характеризовать дисциплину в рамках каждою отдельного семестра: наименование дисциплины, семестр, количество часов, форма отчетности (экзамен или зачет) и данные о преподавателе, читающем дисциплину. Необходимость задания таких свойств обусловлена, с одной стороны, задачей организации хранения результатов сдачи экзаменов и зачетов (наименование дисциплины, семестр и форма отчетности), и с другой стороны задачей формирования листов зачетных книжек (количество часов и данные о преподавателе). Отдельный экземпляр такой сущности однозначно идентифицируется тройкой свойств — наименование дисциплины, семестр и форма отчетности.
Сущность «Студент» для обеспечения выполнения объявленных функций должна характеризоваться следующими свойствами: фамилия, имя, отчество и номер группы. Однако следует отметить, что даже набор значений всех этих свойств не может однозначно характеризовать экземпляр сущности, так как можно предполагать наличие в одной группе полных тезок. Таким образом, для идентификации отдельного экземпляра сущности необходимо ввести дополнительное (ключевое) свойство идентификационный номер студента.
Определим для сущности «Студент» еще два дополнительных свойства, которые не будут непосредственно обеспечивать решение поставленной задачи, но могут служить для реализации дополнительных (сервисных) функций (например, организации почтовой или телефонной связи): домашний адрес и номер телефона. Свойство «Домашний адрес», являясь по сути составным, будет на самом деле рассматриваться в контексте решаемых задач как простое, а свойство «Номер телефона» — как условное.
Взаимодействие сущностей реализуется связью «Сводная ведомость», т. е. Студент сдает экзамен (зачет) по Дисциплине учебного плана. Мощность связи — «многие ко многим» (М:М). Для идентификации связи отдельных экземпляров сущностей в этом случае необходимо наличие у связи следующих дополнительных свойств: оценка и дата сдачи экзамена (зачета).
ER-диаграмма рассматриваемой задачи представлена на рис 6.5.
Построенная ER-диаграмма находится в первой нормальной форме, так как сущности не имеют повторяющихся групп свойств (см. п. 5.4.4). Однако при рассмотрении свойств сущности «Дисциплина учебного плана» можно заметить, что свойство «Преподаватель» зависит только от части ключевых свойств, — а именно от свойств «Наименование дисциплины» и, возможно, «Форма отчетности». Следовательно, для того чтобы привести ER-диаграмму ко второй нормальной форме, необходимо выделить свойство «Преподаватель» в отдельную сущность.
Новая сущность «Преподаватель» характеризуется группой основных свойств — фамилия, имя, отчество, и группой дополнительных свойств — кафедра, должность, домашний адрес и телефон. Так же, как и для сущности «Студент», для сущности «Преподаватель» необходимо ввести дополнительное (ключевое) свойство — идентификационный номер преподавателя.
Рис. 6.5. ER-диаграмма рассматриваемой задачи
Взаимодействие новой сущности с сущностью «Дисциплина учебного плана» осуществляется посредством новой связи «Читает». Мощность связи – «Многие к одному» (М:1), т. е. несколько дисциплин учебного плана может читать один преподаватель.
Измененная ER-диаграмма представлена на рис. 6.6. Новый вариант ЕК диаграммы находится в третьей нормальной форме, так как сущности не имеют свойств, зависящих от неключевых.
Рис. 6.6. Нормализованная ER-диаграмма
