Базы данных
|
Проектирование реляционных баз данных
Содержание
1. Цель работы
Целью выполнения курсовой работы по курсу “Базы данных” является:
2. Задание:
По заданному в варианте описанию предметной области разработать и реализовать проект реляционной базы данных
Последовательность выполнения задания
Примечание: пункты 3 и 4 задания выполняются на лабораторном практикуме. Для их выполнения используйте методические указания к лабораторному практикуму.
3.Краткие теоретические сведения.
3.1. Этапы разработки базы данных. Многоуровневое представление данных.
Целью разработки любой базы данных является хранение и использование информации о какой-либо предметной области.
При разработке базы данных обычно выделяется несколько уровней моделирования, при помощи которых происходит переход от предметной области к реализации базы данных средствами конкретной СУБД. Можно выделить следующие уровни:
Предметная область - это часть реального мира, данные о которой необходимо отразить в базе данных. Например, в качестве предметной области можно выбрать бухгалтерию какого-либо предприятия, отдел кадров, банк, магазин и т.д. Предметная область бесконечна и содержит как существенно важные понятия и данные, так и малозначащие или вообще не значащие данные. Так, если в качестве предметной области выбрать учет товаров на складе, то понятия "накладная" и "счет-фактура" являются существенно важными понятиями, а то, что сотрудница, принимающая накладные, имеет двоих детей - это для учета товаров неважно. Однако, с точки зрения отдела кадров данные о наличии детей являются существенно важными. Таким образом, важность данных зависит от выбора предметной области.
Модель предметной области. Модель предметной области - это наши знания о ней. Знания могут быть как в виде неформальных знаний в мозгу эксперта, так и выражены формально при помощи каких-либо средств. В качестве таких средств могут выступать текстовые описания предметной области, наборы должностных инструкций, правила ведения дел в компании и т.п. Опыт показывает, что текстовый способ представления модели предметной области неэффективен. Гораздо более информативными и полезными при разработке баз данных являются описания предметной области, выполненные при помощи специализированных графических схем. Модель предметной области описывает скорее процессы, происходящие в предметной области и данные, используемые этими процессами. От того, насколько правильно смоделирована предметная область, зависит успех дальнейшей разработки приложений.
Концептуальная модель данных. На следующем, более низком уровне находится концептуальная модель данных предметной области. Концептуальная модель описывает понятия предметной области, их взаимосвязь, а также ограничения на данные, налагаемые предметной областью. Примеры понятий - "сотрудник", "отдел", "проект", "зарплата". Примеры взаимосвязей между понятиями - "сотрудник числится ровно в одном отделе", "сотрудник может выполнять несколько проектов", "над одним проектом может работать несколько сотрудников". Примеры ограничений - "возраст сотрудника не менее 16 и не более 60 лет".
Концептуальная модель данных является начальным прототипом будущей базы данных. Эта модель строится в терминах информационных единиц, но без привязки к конкретной СУБД. Основным средством разработки концептуальной модели данных в настоящий момент являются различные варианты ER-диаграмм (Entity-Relationship, диаграммы сущность-связь).
Логическая
модель данных – это данные, представленные на языке описания данных
конкретной СУБД.
Логическая модель
данных включает в себя следующие составляющие:
Одну и ту же ER-модель можно преобразовать как в реляционную модель данных, так и в модель данных для иерархических и сетевых СУБД, или в постреляционную (объектно- ориентированную модель данных.
Наиболее распространённая модель данных, используемая большинством СУБД – реляционная модель. Поэтому можно считать, что логическая модель данных для нас формулируется в терминах реляционной модели данных.
Физическая модель данных. На еще более низком уровне находится физическая модель данных. Физическая модель данных описывает хранение данных средствами конкретной СУБД. Ограничения, имеющиеся в логической модели данных, реализуются различными средствами СУБД. При этом решения, принятые на уровне логического моделирования определяют некоторые границы, в пределах которых можно развивать физическую модель данных. Качество физической модели во многом зависит от выбора СУБД.
Собственно база данных и приложения. И, наконец, как результат предыдущих этапов появляется собственно сама база данных. База данных реализована на конкретной программно-аппаратной основе, и выбор этой основы позволяет существенно повысить скорость работы. Например, можно выбирать различные типы компьютеров, менять количество процессоров, объем оперативной памяти, дисковые подсистемы и т.п. Очень большое значение имеет также настройка СУБД в пределах выбранной программно-аппаратной платформы.
Многоуровневая архитектура (концептуальный, логический и физический уровни) позволяет обеспечить независимость хранимых данных от использующих их программ. При необходимости можно переписать хранимые данные на другие носители информации и (или) реорганизовать их физическую структуру, изменив лишь физическую модель данных. Можно подключить к системе любое число новых пользователей (новых приложений), дополнив, если надо, логическую модель. Указанные изменения физической и логической моделей не будут замечены существующими пользователями системы (окажутся "прозрачными" для них), так же как не будут замечены и новые пользователи. Следовательно, независимость данных обеспечивает возможность развития системы баз данных без разрушения существующих приложений.
Решения, принятые на каждом этапе моделирования и разработки базы данных, будут сказываться на дальнейших этапах. Поэтому особую роль играет принятие правильных решений на ранних этапах проектирования.
3.2. Концептуальное моделирование данных
. Одна из наиболее распространённых концептуальных моделей данных - модель "Сущность-Связь" (часто ее называют кратко ER-моделью). На использовании разновидностей ER-модели основано большинство современных подходов к проектированию реляционных баз данных. Основными понятиями ER-модели являются сущность, связь и атрибут.
Сущность – это класс однотипных объектов, информация о котором должна сохраняться и быть доступна. Каждая сущность должна иметь имя, выраженное существительным в единственном числе. Примерами сущностей могут быть такие классы объектов как "Поставщик", "Сотрудник", "Накладная". В ER-диаграммах сущность изображается в виде прямоугольника, содержащего имя сущности (рисунок 1).
Рисунок 1 – Изображение сущности в ER-диаграмме
Экземпляр сущности – это конкретный представитель данной сущности. Например, представителем сущности "Сотрудник" может быть "Сотрудник Иванов". Экземпляры сущностей должны быть различимы, т.е. сущности должны иметь некоторые свойства, уникальные для каждого экземпляра этой сущности.
Атрибут сущности – это именованная независимая характеристика, являющаяся некоторым свойством сущности. Наименование атрибута должно быть выражено существительным в единственном числе (возможно, с характеризующими прилагательными). Примерами атрибутов сущности "Сотрудник" могут быть такие атрибуты как "Табельный номер", "Фамилия", "Имя", "Отчество", "Должность", "Зарплата" и т.п. . Атрибут изображается в виде эллипса, содержащего имя атрибута (рисунок 2).
Рисунок 2 – Изображение атрибутов сущности на ER-диаграмме
Связь – это ассоциация, поясняющая отношения между сущностями. Например, связи между сущностями могут выражаться следующими фразами – "СОТРУДНИК может иметь несколько ДЕТЕЙ", "каждый СОТРУДНИК обязан числиться ровно в одном ОТДЕЛЕ", и т.д. Графически связь изображается линией, соединяющей две сущности. Каждая связь имеет два конца и одно или два наименования, например "иметь", "принадлежать" и т.п. Каждое из наименований относится к своему концу связи. Иногда наименования не пишутся ввиду их очевидности.
Каждая
связь может иметь один из следующих типов связи по значности:
Связь один к одному означает, что одному экземпляру первой сущности соответствует один экземпляр второй сущности (рисунок 3).
Связь один ко многим (1:m) означает, что одному экземпляру первой сущности со- ответствует несколько экземпляров второй сущности, но не наоборот (рисунок 4).
Связь многие ко многим (m:m) означает, что одному экземпляру первой сущности соответствует несколько экземпляров второй сущности и наоборот (рисунок 5).
Каждая связь может иметь один из следующих типов связи по членству:
При разработке ER-моделей необходимо получить следующую информацию о предметной области:
Пример: Необходимо разработать информационную систему по заказу оптовой торговой фирмы, которая должна выполнять следующие действия:
Каждый покупатель является юридическим лицом и имеет наименование, адрес, банковские реквизиты. Каждый товар имеет наименование, цену, а также характеризуется единицами измерения. Каждая накладная имеет уникальный номер, дату выписки, список товаров с количествами и ценами, а также общую сумму накладной. Накладная выписывается с определенного склада и на определенного покупателя. Каждый склад имеет свое наименование. Исходя из этих данных, выпишем атрибуты сущностей:
Поскольку список товаров
в накладной не может быть атрибутом, выделим его в отдельную сущность:
Список товаров
в накладной: Наименование товара, Цена товара в накладной, Количество товара
в накладной.
Сумма накладной
равна сумме стоимостей всех товаров, входящих в накладную. Эта характеристика
не является независимой, и не может считаться атрибутом
Определим связи между сущностями. Покупатели могут покупать много товаров, и товары могут продаваться многим покупателям. Если фирма имеет несколько складов, то каждый товар может храниться на нескольких складах. Покупатели покупают товары, получая при этом накладные, в которые внесены данные о количестве и цене купленного товара. Каждый покупатель может получить несколько накладных. Каждая накладная обязана выписываться на одного покупателя. Каждая накладная обязана содержать не менее одного товара (не бывает пустых накладных). Каждый товар может быть продан нескольким покупателям через несколько накладных. Кроме того, каждая накладная должна быть выписана с определенного склада, и с любого склада может быть выписано много накладных. Один из вариантов ER-диаграммы приведён на рисунке 6.
3.2.Логическое моделирование данных
Наиболее распространённой логической моделью на сегодняшний день является реляционная модель.Основы реляционной модели данных были впервые изложены в статье Е.Кодда [43] в 1970 г. Наиболее распространенная трактовка реляционной модели данных принадлежит К.Дейту. []. Согласно Дейту, реляционная модель состоит из трех частей:
3.2.2. Структура реляцинных данных
Единственной структурой данных, используемой в реляционной модели, является отношение (relation). Отношение представляет собой связь между элементами нескольких множеств атомарных однотипных значений, именуемых доменами. Говорят, что значения принадлежат к одному и тому же домену, если имеет смысл их сравннение. Например, фамилию сотрудника можно сравнить с фамилией другого человека, но нет смысла сравнивать её с наименованием товара. Атрибутом отношения называют набор значений, принадлежащих к одному и тому же домену. Например: атрибут “Фамилия сотрудника” взят из домена фамилий.
Сотрудник
Фамилия сотрудника |
Имя сотрудника |
Отчество сотрудника |
Должность |
Оклад |
Иванов Петров |
Иван Петр |
Иванович Петрович |
Слесарь Электрик |
1000 2000 |
Рисунок 7 – Пример реализации отношения “Сотрудник”
Реляционная база данных представляет собой совокупность взаимосвязанных таблиц, содержащий всю информацию, которую необходимо хранить и обрабатывать Схемой базы данных называют список, содержащий имена таблиц, имена атрибутов таблиц, ключевые атрибуты и внешние ключи.
3.2.3. Ограничения целостности
Во второй части реляционной модели данных определяются два ограничения, которые должны выполняться в любой реляционной базе данных. Это:
Определение 1.
Пусть дано отношение . Подмножество
атрибутов
отношения
будем
называть потенциальным ключом, если
обладает
следующими свойствами:
Любое отношение
имеет по крайней мере один потенциальный ключ. Действительно, если никакой атрибут
или группа атрибутов не являются потенциальным ключом, то, в силу уникальности
кортежей, все атрибуты вместе образуют потенциальный ключ. Потенциальный
ключ, состоящий из одного атрибута, называется простым, а состоящий
из нескольких атрибутов - составным. Отношение
может иметь несколько потенциальных ключей. Традиционно, один из потенциальных
ключей объявляется первичным, а остальные - альтернативными.
Т.к. потенциальные ключи служат идентификаторами объектов предметной области
(т.е. предназначены для различения объектов), то значения этих идентификаторов
не могут содержать неизвестные значения. Действительно, если бы идентификаторы
могли содержать null-значения, то мы не могли бы дать ответ "да" или "нет" на
вопрос, совпадают или нет два идентификатора.
Это определяет следующее
правило целостности сущностей:
Правило целостности
сущностей. Атрибуты, входящие в состав некоторого потенциального ключа не
могут принимать неопределённых (null)-значений.
Различные объекты
предметной области, информация о которых хранится в базе данных, всегда взаимосвязаны
друг с другом. Такие взаимосвязи отражаются в реляционных базах данных при помощи
внешних ключей, связывающих несколько отношений.
Т.к. внешние ключи
фактически служат ссылками на строки в другом (или в том же самом) отношении,
то эти ссылки не должны указывать на несуществующие объекты. Это определяет
следующее правило целостности внешних ключей:
Правило целостности
внешних ключей. Внешние ключи не должны быть несогласованными, т.е. для
каждого значения внешнего ключа таблицы должно существовать соответствующее
значение первичного ключа в связанной с ней таблице.
3.2.4. Способы построения логической модели данных
При разработке
логической модели данных возникают вопросы: хорошо ли спроектированы отношения?
Правильно ли они отражают модель предметной области, а следовательно и саму
предметную область?
Рассмотрим некоторые
из таких критериев, которые являются безусловно важными с точки зрения получения
качественной базы данных:
При разработке схемы базы данных необходимо выполнить следующие условия:
Очевидно, что эти условия не будут выполняться, если разместить в одной таблице разнородную информацию о нескольких объектах сразу. На рисунке 8 приведён пример универсального отношения “Сотрудник”.
Сотрудник
Код сотрудника |
Фамилия сотрудника |
Возраст детей сотрудников |
Название Отдела |
Должность |
Оклад |
1 1 2 3 4 |
Иванов Иванов Петров Сидоров Васильев |
10 12 3 8 |
ОГЭ ОГЭ ОГЭ ОГМ ОГМ
|
Слесарь Слесарь Слесарь Электрик Электрик |
1000 1000 1000 3000 3000 |
Рисунок 8– Пример универсального отношения, содержащего аномалии
Поскольку в одном отделе может числиться несколько сотрудников, наименование отдела приходится повторить несколько раз. Кроме того, повторяются фамилии сотрудников, имеющих более одного ребёнка. Не все сотрудники имеют детей, поэтому атрибут “Возраст детей сотрудников” может принимать неопределённые значения. Избыточность и неопределённость данных приводят к проблемам при их вводе, обновлении и удалении. Например, при переводе сотрудника Иванова на другую должность необходимо изменить значения атрибутов “Должность” и “Оклад” дважды. При удалении данных о последнем сотруднике отдела ОГЭ будет удалена и информация о том, что такой отдел существует. Ошибки в структуре данных, приводящие к проблемам при их обработке, называют аномалиями. Решением проблемы будет разделение таблицы “Сотрудник” на несколько таблиц. При этом атрибуты, содержащие повторяющиеся или неопределёные значения, выносятся в отдельные таблицы, связанные с исходной таблицей при помощи внешних ключей (рисунок 10).
Сотрудник Дети
Код сотрудника |
Фамилия |
Код должности |
Код отдела |
Код сотрудника |
Возраст детей |
|
1 |
Иванов |
1 |
1 |
1 |
10 |
|
2 |
Петров |
1 |
1 |
1 |
12 |
|
3 |
Сидоров |
2 |
2 |
2 |
3 |
|
4 |
Васильев |
2 |
2 |
4 |
8 |
Отдел Должность
Код отдела |
Название отдела |
Код должности |
Должность |
Оклад |
|
1 |
ОГЭ |
1 |
Слесарь |
1000 |
|
2 |
ОГМ |
2 |
Электрик |
3000 |
Рисунок 9 – Примеры нормализованных таблиц
Процесс
разделения таблиц с целью улучшения их свойств называется декомпозицией, или
нормализацией, а полученные в результате таблицы – нормализованными.
Заметим, что после
завершения нормализации большинство таблиц содержит информацию только об одном
объекте или явлении (сущности). Поэтому наиболее простым способом создания системы
нормализованных таблиц является получение её из диаграммы “Сущность – связь”.
Перехода от ER-диаграммы
к таблицам состоит из следующих шагов:
1. Преобразование сущностей.
2. Преобразование связей
Сотрудник Дети
Код сотрудника |
Фамилия сотрудника |
Код сотрудника |
Имя ребёнка |
Возраст ребёнка |
|
Рисунок 10 – Реализация связи типа 1:m
Связи
типа m:m и необязательные связи реализуются при помощи промежуточной таблицы,
содержащей ключевые атрибуты связываемых таблиц в качестве внешних ключей
(рисунок 11).
Поставщик Товар
Код поставщика |
Наименование организации |
№ счета |
Код товара |
Наименование товара |
Единицы Измерения |
|
Поставки
Код поставщика |
Код товара |
Дата поставки |
Оптовая цена |
Рисунок 11 – Реализация связи типа m:m
4. Содержание отчёта.
В пояснительную записку к курсовой работе необходимо включить:
Приложение 1. Варианты заданий
Вариант
1. Универмаг
База данных должна
содержать сведения о следующих объектах:
Выходные документы: Сводка о наличии товаров в отделах и на складе на конец рабочего дня.
Вариант.
2. Бюро по найму
База данных должна
содержать сведения о следующих объектах:
Выходные документы: Для клиента и работодателя(выборочно и для всех) - список согласованных предложений-заявок.
Вариант
3. Агенство недвижимости
База данных должна
содержать сведения о следующих объектах:
Выходные документы: список предложений, удовлетворяющих желаниям клиента.
Вариант
4.Торгово-посредническое предприятие
База данных должна
содержать сведения о следующих объектах:
Выходные документы: счет-фактура.
Вариант
5. ГИБДД (Государственная автоинспекция)
База данных должна
содержать сведения о следующих объектах:
Выходные документы: Cписок ДТП по сезонам, по месту происшествия
Вариант
6. Библиотека
База данных должна
содержать сведения о следующих объектах:
Выходные документы: гистограмма читательского спроса.
Вариант
7. Автохозяйство
База данных должна
содержать сведения о следующих объектах:
Выходные документы: квитанция в приеме заказа.
Вариант
8. Журналистский архив
База данных должна
содержать сведения о следующих объектах:
Выходные документы: Подборки по темам - автор(ы), издание, дата, страницы.
Вариант
9. Реестр предприятий
База данных должна
содержать сведения о следующих объектах:
Выходные документы: список поставщиков, удовлетворяющих заданным требованиям.
Вариант
10. Отдел кадров
База данных должна
содержать сведения о следующих объектах:
Выходные документы:
Вариант
11. Телеателье
База данных должна
содержать сведения о следующих объектах:
Выходные документы: Гистограммы распределения неисправностей по типам телевизоров
Вариант
12. Абоненты ГТС
База данных должна содержать сведения о следующих объектах:
Выходные
документы:
Извещение об уплате
абонементной платы, извещение об оплате междугороднего разговора, повторные
извещения.
Вариант
13. Сеть магазинов
База данных должна содержать сведения о следующих объектах:
Выходные документы: распределение выручки по магазинам и продавцам по месяцам
Вариант
14. Питомник
База данных должна содержать сведения о следующих объектах:
Выходные документы: Сертификат на животное, акт о выбраковке.
Вариант
15. Поликлиника
База данных должна содержать сведения о следующих объектах:
Выходные документы:
Вариант
16. Справочная аптеки
База данных должна содержать сведения о следующих объектах:
Выходные документы: Гистограмма запросов на конкретное лекарство по месяцам
Вариант
17. Гостиница
База данных должна содержать сведения о следующих объектах:
Выходные документы : Счет, предъявляемый при выписке гостя
Вариант
18. Пароходство
База данных должна содержать сведения о следующих объектах:
Выходные документы: Сводка о задержке судов в портах захода,сводка о распределении координат судов на текущий час.
Вариант 19. Журнал
успеваемости
База данных должна
содержать сведения о следующих объектах:
Выходные документы:
Вариант 20. Строительная
фирма
База данных должна
содержать сведения о следующих объектах:
Выходные документы:. Список необходимых материалов, отсутствующих на складе
Возможны и другие варианты тем на выбор студентов,
согласованные с преподавателем, ведущим занятия.
Список литературы