Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УИС Лабораторные работы.doc
Скачиваний:
9
Добавлен:
06.12.2018
Размер:
377.86 Кб
Скачать

Этапы проектирования

Процесс проектирования БД является итерационным – допускающим возврат к предыдущим этапам для пересмотра ранее принятых решений и включает следующие этапы:

  • Выделение сущностей и связей между ними.

  • Построение ER-диаграмм с учетом всех сущностей и связей.

  • Формирование набора предварительных отношений на основе ER-диаграмм с указанием предполагаемого первичного ключа для каждого отношения.

  • Приведение предварительных отношений к БКНФ, например, с помощью метода нормальных форм.

  • Пересмотр ER-диаграмм в следующих случаях:

– некоторые отношения не приводятся к БКНФ;

– некоторым атрибутам не находится логически обоснованных мест в предварительных отношениях.

Правила формирования отношений

Правила формирования отношений основываются на учете степени связи между сущностями и класса принадлежности экземпляров сущностей.

Правило 1. Если степень бинарной связи 1 : 1 и класс принадлежностей обеих сущностей обязательный, то формируется одно отношение. Первичным ключом этого отношения может быть ключ любой из этих сущностей.

Правило 2. Если степень связи 1 : 1 и класс принадлежности одной из двух сущностей обязательный, а другой – необязательный, то под каждую из сущностей формируется по отношению с первичными ключами, являющимися первичными ключами соответствующих сущностей. Далее к отношению, сущность которого имеет обязательный КП, добавляется в качестве атрибута ключ сущности с необязательным КП.

Правило 3. Если степень связи 1 : 1 и класс принадлежности обеих сущностей необязательный, то необходимо использовать три отношения. Два отношения соответствуют связываемым сущностям, ключи которых являются первичными в этих отношениях. Третье отношение является связным между первыми двумя, поэтому ключевые атрибуты связываемых отношений должны быть атрибутами этого отношения.

Правило 4. Если степень связи между сущностями 1 : М или М : 1 и класс принадлежности М-связной сущности обязательный, то достаточно формирование двух отношений (по одному на каждую сущность). При этом первичными ключами этих отношений являются ключи их сущностей. Кроме того, ключ 1-связной сущности добавляется как внешний ключ в в отношение, соответствующее М-связной сущности.

Правило 5. Если степень связи 1 : М или М : 1 и класс принадлежности М-связной сущности необязательный, то необходимо формирование трех отношений. Два отношения соответствуют связываемым сущностям, ключи которых являются первичными в этих отношениях. Третье отношение является связным между двумя первыми, а их первичные ключи должны быть внешними ключами третьего отношения.

Правило 6. Если степень связи М : М, то независимо от класса принадлежности сущностей формируются три отношения. Два отношения соответствуют связываемым сущностям и их ключи являются первичными ключами этих отношений. Третье отношение является связным между первыми двумя, а их первичные ключи должны быть внешними ключами третьего отношения.

Правило 7. При наличии многосторонней связи необходимо создать свое отношение для каждой сущности, первичным ключом которого будет ключ этой сущности. Кроме того, необходимо создать еще одно отношение связи, которое будет содержать в качестве внешних ключей первичные ключи остальных отношений.

Пример логического проектирования БД

В качестве примера возьмем ту же исходную информацию, что и в Лабораторной работе № 1, т.е. данные о студентах университета.

Выделим следующие сущности: СТУДЕНТ, ПАСПОРТ, ПРОПИСКА, ДОМ_ТЕЛ, ГРУППА, ФАКУЛЬТЕТ.

Установим связи между сущностями:

СТУДЕНТ ПОЛУЧИЛ ПАСПОРТ

СТУДЕНТ ИМЕЕТ ПРОПИСКУ

по ПРОПИСКЕ ИМЕЕТСЯ ДОМ_ТЕЛ

СТУДЕНТ УЧИТСЯ_В ГРУППЕ

ГРУППА ОТНОСИТСЯ_К ФАКУЛЬТЕТУ

Построим ER-диаграмму.

Сформируем предварительные отношения, пользуясь ER-диаграммой.

  1. Для связи ПОЛУЧИЛ воспользуемся правилом 1

TStudent (ID, Паспорт, …)

  1. Для связи ИМЕЕТ используем правило 4

TSudent (ID, Паспорт, ID_Prop, …)

TPropiska (ID_Prop, …)

3. Для связи ИМЕЕТСЯ применим правило 2

TPropiska (ID_Prop, …)

TDT (ID_DT, ID_Prop, …)

  1. Для связи УЧИТСЯ снова используем правило 6

TObuchenie (ID_Ob, ID, ID_Gr, …)

TSudent (ID, Паспорт, ID_Prop, …)

TGruppa (ID_Gr, …)

  1. Наконец, для связи ОТНОСИТСЯ снова используем правило 4

TGruppa (ID_Gr, ID_Fak, …)

TFakultet (ID_Fak, …)

В полученные предварительные отношения введем неключевые атрибуты:

TObuchenie (ID_Ob, ID, ID_Gr)

TSudent (ID, ФИО, Дата_рожд, Пол, Паспорт, Дата_выдачи, ID_Prop)

TPropiska (ID_Prop, Прописка)

TDT (ID_DT, ID_Prop, Дом_тел)

TGruppa (ID_Gr, ID_Fak, Группа)

TFakultet (ID_Fak, Факультет)

Приведение этих отношений к БКНФ даст нам почти тот же результат, что и метод нормальных форм. Отличие состоит в связи отношений TPropiska и TDT. Возникает вопрос: какой из вариантов этой связи лучше? Если внешний ключ указан в отношении TPropiska, то в случае отсутствия телефона в отношении TDT должно быть пустое поле или стоять слово «нет». Если внешний ключ стоит в отношении TDT, то данной записи просто не будет. Второй вариант чуть лучше.

Задание

Используя метод сущность-связь, получите логическую модель для своего варианта задания.

Лабораторная работа № 3

Создание БД в Microsoft Access

Цель работы: Освоить приемы создания БД в Microsoft Access.

Порядок выполнения работы

Microsoft Access 2002 является удобным визуальным средством создания и управления БД с интуитивно понятным интерфейсом и простотой использования. Программа входит в состав популярного OfficeXP и позволяет обмениваться данными со всеми его компонентами.

Начните работу с создания на диске С папки, озаглавленной вашей фамилией.

После запуска Microsoft Access открывается окно, в правой части которого имеется панель. Выберите на этой панели ссылку Создать файл. В открывшейся панели в разделе Создание выберите пункт Новая база данных... Создайте файл новой базы данных в созданной вами папке. Имя файла – ваша фамилия. Откроется окно <Имя файла>: база данных (формат Access 2000), в котором в разделе Таблицы выберите пункт Создание таблицы в режиме конструктора. Откроется окно для создания новой таблицы. Создайте таблицы, соответствующие нормальной форме Бойса-Кодда вашего варианта базы данных. В поле таблицы Имя поля введите имена полей одного из отношений. Переведите курсор в строку ключевого поля и нажмите правую кнопку мыши. Откроется меню, в котором выберите пункт Ключевое поле. В левом столбике таблицы в этой строке появится ключик. Задайте типы данных полей таблицы, выбирая их из раскрывающегося списка. Для первичных ключей, выберите тип Счетчик, для внешних ключей и числовых данных задайте тип Числовой, для дат – Дата/Время, для текстовых данных – Текстовый. Для текстовых и числовых данных надо задать размер поля во вкладке Общие в нижней панели. Для числовых данных примите размер Длинное целое. В столбце Описание введите краткое описание поля – смысл хранимой в данном поле информации.

Нажмите на кнопку Сохранить на панели инструментов – появится окно Сохранение, в котором надо задать имя таблицы.

Проделайте вышеописанную процедуру для всех таблиц вашей базы данных. При этом внешние ключи отношений надо ввести в таблицы, но отмечать их как ключевые поля не следует.

В результате этих действий в вашем распоряжении появились пустые, не связанные друг с другом таблицы.

Заполните таблицы данными. Для этого в окне База данных выберите объект Таблицы, выделите имя очередной таблицы и нажмите Enter (или сделайте двойной щелчок левой кнопки мыши). В зависимости от содержания таблицы введите 5 – 15 записей. В ряде таблиц значения в отдельных полях должны повторяться.

После заполнения таблиц данными установите связи между таблицами. Для этого в панели инструментов База данных нажмите кнопку Схема данных. При этом откроется одноименное окно, поверх которого появится окно Добавление таблицы. В последнем окне будут указаны имена всех таблиц вашей базы данных. Добавьте их в окно Схема данных. Мышью расположите таблицы в окне в требуемом положении. В паре связанных таблиц одна является главной, а другая – дочерней (первичный ключ главной таблицы входит в качестве внешнего ключа в список атрибутов дочерней таблицы). Установите связи между первичным ключом главной таблицы и внешним ключом дочерней, для чего поместите курсор на имени внешнего ключа в дочерней таблице, нажмите левую кнопку мыши и переместите курсор на имя первичного ключа главной таблицы. Откроется окно Изменение связей, в котором будут указаны имена связываемых полей ваших таблиц. Включите переключатели Обеспечение целостности данных, Каскадное обновление связанных полей, Каскадное удаление связанных записей, после чего нажмите кнопку Создать. Связь между двумя таблицами установлена. Повторите эту процедуру для всех связей вашей базы данных. Когда будут установлены все связи, нажмите кнопку Сохранить, после чего окно Схема данных закройте.

База данных создана. Предъявите полученную базу данных преподавателю. Проверьте функционирование базы данных путем создания запросов с помощью языка QBE, для чего в окне База данных выберите объекты Запросы и пункт Создание запроса в режиме конструктора. В окне Добавление таблицы выберите таблицы, информацию из которых вы хотите увидеть в результате выполнения запроса. В строке Поле в раскрывающемся списке выберите интересующие вас поля. Выберите в раскрывающемся списке способ сортировки данных. При необходимости введите условие отбора. Нажмите кнопку Сохранить. Появится окно Сохранение, в котором следует ввести имя запроса. В окне <Имя файла>: база данных (формат Access 2000) при выделенном пункте Запросы сделайте двойной щелчок на имени запроса. Если все сделано правильно, то вы увидите таблицу с его содержимы.

Создайте 2–3 простых однотабличных запроса и столько же многотабличных, использующих данные из разных таблиц.

Попробуйте удалить одну из записей в любой таблице. Как реагирует система?

Введите новую запись в базу данных. Каков должен быть порядок ввода данных?

Предъявите работу преподавателю.