II. Проектирование базы данных.

Методические рекомендации

По выполнению лабораторной работы №3,4

Анализ предметной области проектируемой базы данных(БД). Нормализация проектируемой базы данных

Цель: Научиться проводить анализ предметной области проектируемой (БД) выделяя объекты предметной области, свойства объектов и устанавливать связи между объектами. Научиться выполнять проектирование базы данных предметной области, формируя таблицы, приводя таблицы к третьей нормальной форме и устанавливая связь между таблицами.

Ход работы

I. Выделить объекты предметной области и их атрибуты (согласно Вашего варианта).

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

III. Построить ER –диаграмму спроектированной базы данных.

IV. Оформить отчет по выполнению лабораторной работы. Отчет должен включать следующие разделы:

1. Постановка задачи.

2. Концептуальная модель предметной области.

3. Структуры таблиц базы данных.

4. ER – диаграмма базы данных.

5. Вывод.

Пример выполнения лабораторной работы

I. Выделение объектов предметной области.

Постановка задачи:

Рассмотрим предметную область, связанную с работой организации по разработке программного обеспечения. В рамках этой предметной области и в зависимости от предполагаемых запросов нам будет необходима следующая информация:

1. Сотрудники организации: Фамилия сотрудника; должность; квалификация; отдел, в котором работает сотрудник (номер отдела и наименование отдела).

Учитывать:

× Квалификация сотрудника представляет собой список сред и приложений, по которым сотрудник имеет квалификационный сертификат.

× В одном отделе работает несколько сотрудников;

× Один сотрудник организации может работать только в одном отделе;

2. Клиенты организации: Фамилия; адрес; телефон.

3. Проекты: Тема проекта, руководитель проекта, клиент, для которого разрабатывается проект; дата заключения договора; срок выполнения проекта; стоимость проекта; сотрудники, занятые в реализации проекта с указанием доли сотрудника в общем гонораре за проект.

Учитывать:

Один сотрудник может быть руководителем нескольких проектов, но каждый проект имеет одного руководителя;

Один сотрудник может принимать участие в разработке нескольких проектов и в одном проекте участвует несколько сотрудников.

Концептуальная схема информационной системы:

На основе анализа предметной области строим концептуальную схему разрабатываемой информационной системы:

СОТРУДНИК
Фамилия  
Должность  
Квалификация  
Отдел  
КЛИЕНТ
Фамилия  
Адрес  
Телефон  
ПРОЕКТ
Дата_начала  
Дата_конца  
Стоимость  
Тема  
Руководитель  
Клиент  

Проведем дальнейшее уточнение построенной концептуальной модели:

1. Для однозначной идентификации сотрудника, клиента и проекта и для дальнейшей реализации связей в объекты СОТРУДНИК, КЛИЕНТ и ПРОЕКТ введем атрибуты Код_сотрудника, Код_клиента, и Код_проекта соответственно.

2. Разорвём связь «многие-ко-многим» между объектами СОТРУДНИК и ПРОЕКТ. Для этого введём промежуточный объект ПРОЕКТ_СОТРУДНИК с атрибутами Код_проекта, Код_сотрудника и Доля_гонорара.

Окончательная концептуальная схема примет вид:

СОТРУДНИК
Фамилия  
Должность  
Квалификация  
Отдел  
КЛИЕНТ
Фамилия  
Адрес  
Телефон  
ПРОЕКТ
Дата_начала  
Дата_конца  
Стоимость  
Тема  
Руководитель  
Клиент  
Код_сотрудника  
Код_клиента  
Код_проекта  
ПРОЕКТ_СОТРУДНИК
Код_проекта  
Код_сотрудника  
Доля_гонорара  

II. Проектирование базы данных.

На основе концептуальной схемы создадим таблицы базы данных и проведём их нормализацию до третьей нормальной формы (3НФ).

1. Информацию о сотрудниках организации поместим в таблицу Empl (Сотрудник), имеющую следующую структуру:

Empl:

e_id e_name job skill department
d_id d_name
Drovko Administrator DB MySQL, Linux, Java, UML Projecting department
Ivanov System admin Windows, Linux, Java, NT Administrative department
Konov Program’s Linux, Java, NT, C++, Peri Testing department
Kornienko Program’s NT, C++, Peri Testing department
Koval Program’s Java, NT, C++, Peri Realization department
Palkin Program’s C++, MySQL, UML Testing department
Petrov Program’s Linux, Java, NT, C++, Peri Realization department
Sidorov Administrator DB MySQL, Linux, Java, NT Projecting department
Turov System admin Linux, Java, NT, UML Administrative department
Vertko Program’s Java, C++, Peri, UML Realization department

В этой таблице:

e_id– кодовый номер сотрудника;

e_name –фамилия сотрудника;

job – должность;

skill – квалификация;

department – отдел (номер отдела - d_id и наименование отдела - d_name)

Наши рекомендации