Сделай Сам Свою Работу на 5

Нормальная форма Бойса-Кодда





Задание

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

1. Концептуальное проектирование базы данных:

1.1. Определение типов сущностей;

1.2. Определение типов связей;

1.3. Определение атрибутов и связывание их с типами сущностей и связей;

1.4. Определение доменов атрибутов;

1.5. Определение атрибутов, являющихся потенциальными и первичными ключами;

1.6. Создание диаграммы «сущность-связь».

 

2. Логическое проектирование базы данных (для реляционной модели):

2.1. Преобразование концептуальной модели данных в логическую модель;

2.2. Определение набора отношений исходя из структуры логической модели данных;

2.3. Проверка модели с помощью правил нормализации;

2.4. Создание диаграмм «сущность-связь»;

2.5. Определение требований поддержки целостности данных.

3. Физическое проектирование базы данных (с использованием СУБД MS Access):

 

3.1. Проектирование основных таблиц в среде целевой СУБД;

3.2. Реализация бизнес-правил предприятия в среде целевой СУБД;

3.3. Определение вторичных индексов.


 

Определение типов сущностей



Заказы

Содержит данные о заказах клиентов.

Атрибуты:

1. Код заказа

2. Код товара

3. Код сотрудника

4. Дата размещения

5. Дата исполнения

6. Код клиента

 

Клиенты

Содержит данные о клиентах.

Атрибуты:

1.Код клиента

2.ФИО

3.Адрес

4.Телефон

 

Сотрудники

Содержит данные о сотрудниках магазина.

Атрибуты:

1. Код сотрудника

2. ФИО

3. Должность

4. Адрес

5. Телефон

 

Поставщики

Содержит информацию о поставщиках магазина.

Атрибуты:

1. Код поставщика

2. Название

3. Представитель

4. Адрес

5. Телефон

 

Поставки

Содержит информацию о поставках товара в магазин.

Атрибуты:

1. Код поставки

2. Код поставщика

3. Дата поставки

Товары

Содержит информацию о товарах магащина.

Атрибуты:

1. Код товара

2. Код поставки

3. Наименование товара

4. Стоимость закупки

5. Стоимость продажи

6. Количество

 

Описание типов связей

Тип сущности Тип связи Тип сущности Кардинальность
Клиент «совершает» (1:n), т.к. заказ не может иметь несколько клиентов, но клиенты могут совершать несколько заказов. Заказы (1,1)-(0,n), т.к заказ должен иметь одного консультирующего сотрудника, но сотрудник не обязательно должен иметь заказы.
Сотрудник «обслуживает» (1:n), т.к. один заказ не может быть обслужен несколькими сотрудниками, но сотрудники могут обслуживать несколько заказов Заказы (1,1)-(1,n), т.к. заказ обязательно должен иметь одного клиента, а клиент обязательно должен иметь хотя бы один заказ.
Поставщики «совершают» (1:n), т.к. одну поставку не могут совершать несколько поставщиков, но поставщик может совершать несколько поставок. Заказы (1,1)-(0,n), т.к. заказ должен иметь один товар, но товар не обязательно должен быть заказан.
Товары «принадлежат» (1,n) т.к один товар может иметь несколько заказов, но один заказ может содержать только один товар Поставки (1,1)-(0,1), т.к. поставка должна иметь одного поставщика, но поставщик может не иметь поставок.  
Товары «принадлежат» (n,1) т.к один товар не может иметь несколько поставок, но поставка может включать в себя несколько товаров. Поставки (1,n)-(1,1), т.к поставка может иметь несколько товаров, но товар должен иметь только одну поставку.

 



Описание атрибутов

Атрибут Тип данных Ограничения Значение по умолчанию Допустимость NULL
(Заказы) Код заказа Числовой >0 Вводится новое Нет
(Заказы) Код товара Числовой Автоматический Вводится новое Нет
(Заказы) Код сотрудника Числовой Автоматический Вводится новое Нет
(Заказы) Дата размещения Дата\время Автоматический Вводится новое Нет
(Заказы) Дата исполнения Дата\время Автоматический Всегда вводится новое Нет
(Заказы) Код клиента Числовой Автоматический Всегда вводится новое Нет
(Клиенты) Код клиента Числовой >0 Всегда вводится новое Нет
(Клиенты) ФИО Текстовый Нет Всегда вводится новое Нет
(Клиенты) Адрес Текстовый Нет Всегда вводится новое Нет
(Клиенты) Телефон Текстовый Маска ввода Всегда вводится новое Нет
(Сотрудники) Код сотрудника Числовой >0 Всегда вводится новое Нет
(Сотрудники) ФИО Текстовый Нет Всегда вводится новое Нет
(Сотрудники) Должность Текстовый На русском языке Всегда вводится новое Нет
(Сотрудники) Адрес Текстовый На русском языке Всегда вводится новое Нет
(Сотрудники) Телефон Текстовый Маска ввода Всегда вводится новое Нет
(Товары) Код товара Числовой >0 Всегда вводится новое Нет
(Товары) Код поставки Числовой Автоматический Вводится новое Нет
  (Товары) Наименование товара       Текстовый   Нет   Всегда вводится новое   Нет
(Товары) Стоимость закупки Денежный нет Всегда вводится новое Да
(Товары) Стоимость продажи Денежный нет Всегда вводится новое Да
(Товары) Количество Числовой >=0 Нет
(Поставки) Код поставки Числовой >0 Всегда вводится новое Нет
(Поставки) Код поставщика Числовой Автоматический Вводится новое Нет
(Поставки) Дата поставки Дата\время Автоматический Всегда вводится новое Нет
(Поставщики) Код поставщика Числовой >0 Всегда вводится новое Нет
(Поставщики) Название поставщика   Текстовый   Нет   Всегда вводится новое   Нет
(Поставщики) Представитель   Текстовый   Нет   Всегда вводится новое   Нет
(Поставщики) Адрес   Текстовый   Нет   Всегда вводится новое   Нет
(Поставщики) телефон   Текстовый   Маска ввода   Всегда вводится новое   Нет

 



Описание доменов

Значение Тип данных Размер Пример
Текстовый Текст или числа, не требующие проведения расчетов, например имена. Число знаков, не превышающее минимальное из двух значений:255 или значение свойства Размер поля (FieldSize). Ерхов Павел Павлович
Числовой Числовые данные, используемые для проведения расчетов. 1,2,4 или 8 байт Код клиента: 11
Денежный Денежные значения используемые с точностью до 15 знаков в целой и до 4 знаков в дробной части. 8 байт Стоимость продажи: 11000,00р.
Дата/время Даты и время, относящиеся к годам с 100 по 9999. 8 байт. Дата размещения: 19.02.2006

 

 

Описание потенциальных и первичных ключей

Заказы

Первичный ключ: Код заказа

Потенциальный ключ: нет

 

Клиенты

Первичный ключ: Код клиента

Потенциальный ключ: нет

 

Сотрудники

Первичный ключ: Код сотрудника

Потенциальный ключ: нет

 

Товары

Первичный ключ: Код товара

Потенциальный ключ: нет

 

Поставки

Первичный ключ: Код поставки

Потенциальный ключ: нет

 

Поставщики

Первичный ключ: Код поставщика

Потенциальный ключ: нет

Диаграмма «сущность-связь», отображающая концептуальную модель

Заказы
Сотрудники
Клиенты
Товары
Поставки
Совершают
Обслуживают
Принадлежат
Принадлежат
Поставляют
Поставщики
М
М

 


М

 

 


 


М
М

 

 


 

 

 

 


Описание процесса преобразования концептуальной модели данных в логическую модель

Концептуальная модель представляет общий взгляд на данные, представление о данных всего предприятия с точки зрения менеджеров высшего уровня. Но, проанализировав концептуальную модель базы данных, можно сделать вывод, что такое проектирование не достаточно удачно, хотя и обеспечивает наглядность информации, хранящейся в базе. В концептуальной модели часто может присутствовать избыточность данных (повторение информации), а это, в свою очередь может вызвать аномалию удаления (непреднамеренная потеря данных, вызванная удалением других данных) и аномалию добавления (невозможность ввести данные в таблицу, вызванная отсутствием других данных). Для решения этих проблем необходимо перейти от концептуальной модели к логической при помощи нормализации. Различают несколько нормальных форм (1-ая, 2-ая, 3-я нормальные формы, нормальная форма Бойса-Кодда). Нормализация проводится путём разбиения таблиц в том случае, если таблицы не удовлетворяют соответствующей нормальной форме. Когда все таблицы приведены к стандартному виду, необходимо изобразить диаграмму «сущность-связь».

 

 

Описание процесса нормализации отношений с приведением всех промежуточных отношений к форме Бойса-Кодда

Первая нормальная форма

Первая нормальная форма:

· Запрещает повторяющиеся столбцы (содержащие одинаковую по смыслу информацию);

· Запрещает множественные столбцы (содержащие значения типа списка и т.п.);

· Требует определить первичный ключ для таблицы, то есть тот столбец или комбинацию столбцов, которые однозначно определяют каждую строку.

 

Вторая нормальная форма

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

 

Третья нормальная форма

Чтобы таблица находилась в третьей нормальной форме, необходимо, чтобы неключевые столбцы в ней не зависели от других ключевых столбцов, а зависели только от первичного ключа. Самая распространенная ситуация в данном контексте – это расчетные столбцы, значения которых можно получить путем каких-либо манипуляций с другими столбцами таблицы. Для приведения таблицы в третью нормальную форму такие столбцы из таблицы надо удалить.

 

Нормальная форма Бойса-Кодда

Нормальная форма Бойса-Кодда требует, чтобы в таблице был только один потенциальный первичный ключ. Чаще всего у таблиц, находящихся в третьей нормальной форме, так и бывает, но не всегда. Если обнаружился второй столбец (комбинация столбцов), позволяющий однозначно идентифицировать строку, то для приведения к нормальной форме Бойса-Кодда такие данные надо вынести в отдельную таблицу.

 

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

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.