Автор: Пользователь скрыл имя, 05 Ноября 2011 в 21:54, курсовая работа
Систематическая организация данных и способов их обработки осуществляется в банках данных. Банк данных = база данных + СУБД.
База данных - это некоторая структурированная совокупность данных, описывающая некоторую предметную область решаемых задач.
Элемент описания - наименьшая единица описания в базе данных. Совокупность элементов описания, объединенных отношением принадлежности к одному объекту называется записью.
СОДЕРЖАНИЕ 3
1. ПРОЕКТИРОВАНИЕ БАЗ ДАННЫХ 4
1.1. ОБЩИЕ ТЕОРЕТИЧЕСКИЕ ПОЛОЖЕНИЯ 4
1.1.1. Основные определения 4
1.1.2. Понятие “Ключ” 4
1.1.3. Понятие «нормализации» 5
1.1.4. Понятие "сущность" и "связь" 5
1.2. ОБЩЕСИСТЕМНЫЙ РАЗДЕЛ 6
1.2.1. Модели данных. 6
1.2.2. Иерархические системы 6
1.2.3. Сетевые системы 7
1.2.4. Реляционная модель данных. 8
1.3. ПРЕДСТАВЛЕНИЕ ДАННЫХ С ПОМОЩЬЮ МОДЕЛИ СУЩНОСТЬ-СВЯЗЬ (ER- МОДЕЛЬ). 9
1.3.1. Нормальные формы ER-схем 9
1.3.2. Получение реляционной схемы из ER-схемы 10
1.4. ПРОЕКТИРОВАНИЕ РЕЛЯЦИОННЫХ БД 11
1.5. НОРМАЛИЗАЦИЯ. 12
2. СПЕЦИАЛЬНАЯ ЧАСТЬ 14
2.1. ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ 14
2.2. ИССЛЕДОВАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ И РАЗРАБОТКА МОДЕЛИ 15
2.3. РЕАЛИЗАЦИЯ МОДЕЛИ 22
3. ЗАКЛЮЧЕНИЕ. 30
4. СПИСОК ЛИТЕРАТУРЫ: 32
В случае реляционных баз данных трудно представить какие-либо общие рецепты по части физического проектирования. Здесь слишком много зависит от используемой СУБД.
Дело в том, что при использовании СУБД с развитыми механизмами ограничений целостности (например, SQL-ориентированных систем) трудно предложить какой-либо общий подход к определению ограничений целостности. Эти ограничения могут иметь очень общий вид, и их формулировка пока относится скорее к области искусства, чем инженерного мастерства. Самое большее, что предлагается по этому поводу в литературе, это автоматическая проверка непротиворечивости набора ограничений целостности.
Так что будем считать, что проблема проектирования реляционной базы данных состоит в обоснованном принятии решений о том, из каких отношений должна состоять БД и
какие атрибуты должны быть у этих отношений.
Проектирование реляционных баз данных с использованием нормализации.
Процесс проектирования представляет собой процесс нормализации схем отношений, причем каждая следующая нормальная форма обладает свойствами лучшими, чем предыдущая.
Каждой
нормальной форме соответствует
некоторый определенный набор ограничений,
и отношение находится в
В теории реляционных баз данных обычно выделяется следующая последовательность нормальных форм:
Основные свойства нормальных форм:
В основе процесса проектирования лежит метод нормализации, декомпозиция отношения, находящегося в предыдущей нормальной форме, в два или более отношения, удовлетворяющих требованиям следующей нормальной формы.
Наиболее важные на практике нормальные формы отношений основываются на фундаментальном в теории реляционных баз данных понятии функциональной зависимости.
Таблица, находится в 1НФ тогда и только тогда, когда ни одна из ее записей:
Таблица, находящаяся во 2НФ должна удовлетворять следующим требованиям:
Таблица, находящаяся в 3НФ должна удовлетворять следующим требованиям:
Таблица, находится в НФБК (нормальной форме Бойса-Кодда), если любая функциональная зависимость между полями сводится к полной функциональной зависимости от возможного ключа.
Таблица, находится в 4НФ, если полная декомпозиция должна быть получена соединением ровно двух проекций.
Редакция газеты «К» занимается выпуском частных объявлений, принимаемых от населения. Для ускорения процесса выпуска объявлений и упрощения их вёрстки, информация об объявлениях должна храниться в базе данных.
Первоначально объявления разделены на несколько крупных тематических разделов. Затем каждый раздел разделён на несколько рубрик. Каждая рубрика включает в себя несколько подрубрик. Объявление подается заказчиком для печати в определенном номере газеты. Предполагается также, что объявление может повторно выходить в некоторых из последующих выпусков. Каждое объявление содержит один или несколько видов связи. Некоторые из видов связей могут быть указаны только для связи редакции с заказчиком, например, для уточнений. Вид связи включает в себя имя, фамилию и отчество контактного лица, информацию об удобном времени связи, а также контактный телефон и/или адрес. Адрес может быть почтовым или электронным. Не может быть вида связи без указаний какого-либо вида связи. Некоторые из предоставленных способов связи указываются в качестве способа ответа на объявление. Объявления без способа связи не публикуются.
Разделы, рубрики и подрубрики имеют свое наименование и обладают номером или кодом. Каждая рубрика имеет номер, кратный, например, десяти, а все подрубрики, входящие в рубрику, имеют коды в пределах этого десятка. Аналогично, разделы имеют «базовый» номер, кратный ста. Не допускается существование пустых (без рубрик) разделов и рубрик (без подрубрик), пустые же подрубрики (без объявлений) допускаются.
Как правило, в определённых подрубриках встречаются одни и те же слова. Для ускорения набора объявлений для каждой рубрики имеется список наиболее употребимых слов, ввод которых производится одним щелчком мыши.
Каждый выпуск характеризуется номером и датой выхода. Выпуск может быть обычным, праздничным или специальным.
Каждый клиент может временно или постоянно заблокировать свой способ связи. Для этого он должен указать причину, по которой способ связи блокируется.
Объявление имеет текст. Оно может быть платным или бесплатным. Для платных объявлений указывается способ оплаты.
Итак, рассмотрим подробнее предметную область и перейдём к построению модели. Для представления данных предметной области в реляционной базе данных удобнее сначала построить модель «сущность-связь» (далее ER-модель). Построим её используя нотацию IDEF1X. Для этого выделим в предметной области сущности и связи.
Выделение сущностей может быть произведено следующим образом:
Сущность | Описание |
Объявления | Данная сущность отражает сам объект предметной области – частное объявление. Оно характеризуется текстом. |
Подрубрики | Каждое объявление
принадлежит некоторой |
Рубрики | Все подрубрики включены в рубрики. |
Разделы | Основная сущность, по которой делятся объявления. Содержит рубрики. |
Часто используемые слова | Слова, характерные для использования в данной подрубрике. |
Способы оплаты | У каждого объявления указывается способ оплаты: бесплатное, бартер, служебное, коммерческое и т.д. |
Способы связи | Эта сущность включает в себя один элемент из списка контактной информации. Для него указывается информация об удобном времени контактов (когда можно звонить, например), признак того, что данный вид всязи используется только для связи редакции с клиентом (не публикуется), признак блокировки данного вида связи и причина блокировки. |
Контактные лица | Контактные лица это конкретные люди, на которых ссылается способ связи. Так, у контактного лица может быть указана фамилия, имя и отчество. |
Адреса | Данная сущность представляет собой структуру почтового адреса. |
Телефоны | Сущность, содержащая номера телефонов. Выделена для потому, что, как правило, контингент клиентов, подающих объявления в газету, меняется медленно, т.е. часто объявления подаёт владелец одного и того же телефона. Для сокращения размеров базы данных было решено выделить номера телефонов в отдельную сущность. |
Электронные адреса | Сущность, являющаяся одним из видов связи. Имеет специфичные атрибуты для хранения адресов электронной почты и номеров ICQ. |
Выпуски | Сущность, олицетворяющая номер газеты, в котором выходят объявления. У выпуска есть номер и дата выхода |
Типы выпусков | Выпуски могут быть разных типов: обычные, праздничные, специальные и т.д. Данная сущность и определяет этот тип. |
Далее стоит определиться со связями. По предметной области определим, какие сущности связаны между собой, каков тип связи и её кардинальность.
Итак, иерархия сущностей такова:
Рассмотрим теперь тип каждой связи. Итак, выделены виды связи: содержат, имеют, включают, определены для, хранят/принадлежат, указаны для, ссылаются на. Они различаются типом и кардинальностью.
Так, например, связи 1 и 2 имеют вид «содержат». Это очевидно из предметной области, так как разделы не могут существовать без одной или нескольких рубрик, а рубрики, в свою очередь – без подрубрик. Аналогичный вид применён для связи 7, так как для каждого объявления обязательно указывается один или несколько способов связи. Таким образом, данный вид связи будет идентифицирующей связью с кардинальностью 1,M.
Связи 3 «имеют» и «включают» будут иметь фактически один вид. Это происходит потому, что для данной подрубрики могут не существовать (или быть неуказанными) часто встречаемые слова. В свою очередь, подрубрика может как не содержать ни одного объявления, так и содержать их множество. Таким образом, это будут идентифицирующие связи с кардинальностью 0,M.
Связи 4 и 5 «определены для» подразумевают, что родительские сущности используются как справочники. Поскольку элемент справочника может существовать без указания его где-либо, то родительская сущность будет независимой, а, следовательно, и связь – неидентифицирующая. Каждый элемент справочника может быть указан в нескольких записях, каждая запись должна ссылаться на один, и только на один элемент справочника. Связь – неидентифицирующая с кардинальностью 1,M.
Связь
6 имеет вид «хранят/принадлежат»
Связь 8 является иерархической, т.к. адреса, телефоны и электронные адреса являются взаимоисключающими подкатегориями одной сущности. Связь является отношением полной категоризации.
Связь 9 «ссылаются на» является необязательной ссылкой способа связи на справочник контактных лиц. Справочник контактных лиц содержит информацию об абонентах, запись в нём может быть не привязана к существующему способу связи (например, если он был удалён). Таким образом, данная сущность – независимая, а связь – неидентифицирующая. Так как контактное лицо может быть не указано для способа связи, а может быть указано несколько контактных лиц, в то же время для контактного лица может быть не привязан способ связи, то кардинальность – 0,M.
Данную модель для наглядности удобно представить графически. Существует множество нотаций графического изображения моделей «сущность-связь». Придерживаясь нотации IDEF1X удобно нарисовать схему модели в редакторе AllFusion ERWin 4.1, который является удобным средством для проектирования баз данных, интеграции их с существующими СУБД (редактор поддерживает все популярные современные серверы баз данных), а также создания документации. Нотация IDEF1X является базовой для редактора, поэтому работа с ним при использовании данной нотации при проектировании интуитивно понятна.
Итак,
графическое представление
Теперь в модель нужно добавить атрибуты каждой сущности. Исходя из предметной области, определим в каждую сущность следующие атрибуты:
Сущность | Атрибут |
Адреса | Населённый пункт |
Улица | |
Дом | |
Квартира | |
Выпуски | Номер выпуска |
Дата выхода | |
Тип выпуска | |
Контактные лица | Фамилия контактного лица |
Отчество контактного лица | |
Имя контактного лица | |
Объявления | текст объявления |
Подрубрики | Имя подрубрики |
Номер подрубрики | |
Разделы | Имя раздела |
Базовый номер раздела | |
Рубрики | Имя рубрики |
Базовый номер рубрики | |
Способы оплаты | Название способа оплаты |
Выделение в тексте | |
Способы связи | Информация о времени контактов |
Признак служебного вида связи | |
Признак блокировки | |
Причина блокировки | |
Вид способа связи | |
Телефоны | Номер телефона |
Типы выпусков | Название типа выпуска |
Часто используемые слова | Слово |
Электронные адреса | Адрес электронной почты |
Номер ICQ |