- •Информационные системы
- •1.Место курса "Информационные Системы" в цикле дисциплин информатики
- •Место "ис" в учебном процессе:
- •1.2 Двупрофильная квалификация информатиков
- •2.Ит и ис: соотношение понятий
- •3. Классификация ис (таб. 3)
- •4.Этапы развития ит:
- •Структура и состав ис
- •Каскадная модель ( 1970-1985 гг.) (Waterfall). На каждой стадии - законченный набор проектной документации, логическая последовательность действий, возможность планирования затрат.
- •2. Спиральная модель (с 90-х годов до н.В.)
- •Содержание жц ис
- •Формирование требований к ис (предпроектная стадия)
- •2. Проектирование ис
- •Типы ис
- •У ровни управления организацией (предприятием)
- •Методы проектирования Процесс проектирования. Общие понятия.
- •Технология проектирования
- •Стандарты Группировка стандартов и схожих мет. Документов.
- •Польза применения стандартов
- •Международный стандарт iso
- •Стандарты комплекса гост 34. Общая структура.
- •Методология
- •Структурный подход к проектированию ис Сущность структурного подхода
- •Idef0 –стандарт функционального моделирования
- •Объектно- ориентированный подход к проектированию систем.
- •Язык uml
- •Диаграмма использования
- •Логическое представление
- •Предпроектное обследование Методы обследования Общие понятия
- •Дерево целей
- •Дерево целей
- •Состав и содержание работ Объекты обследования
- •Этапы обследования
- •Универсумы
- •Вопросы к интервьюируемым
- •Анализ материалов
- •Составление тз
- •Пример Предпроектное обследования ис «склад»
- •Определить классы объектов и дать характеристику класса
- •База данных Определение. Характеристика. Требования к базе данных
- •Типы структур
- •Способы организации бд
- •Требования к бд
- •Структурные элементы бд
- •Проектирование бд. Уровни проектирования бд
- •Уровни проектирования
- •Реляционная модель данных Организация данных в связанных таблицах. Аномалии. Таблицы объектов (справочные; uml – класс сущность) и таблицы связей (подчиненные; uml – класс управляющий)
- •Аномалии обновления
- •Типы связей в таблицах
- •Структура данных в таблице: поля и записи, ключи и характеристики
- •Нормализация отношений. Типы связей
Нормализация отношений. Типы связей
Нормализация – аппарат ограничений на формирование таблиц (устранение аномалий).
Правила нормализованных данных:
Не должно быть повторяющихся полей и составных значений.
Каждое неключевое поле должно однозначно определяться первичным ключом таблицы.
Ни одно из неключевых полей не должно однозначно определяться частью первичного ключа таблицы.
1 NF – Первая нормальная форма
Первая нормальная форма не должна содержать повторяющихся полей и составных значений. Это значит, что каждое поле должно представлять одно значение, а не их комбинацию.
КодЗаказа |
ДатаЗаказа |
КодТовара1 |
КодТовара2 |
КодТовара3 |
КодТовара4 |
СуммаЗаказа |
00006 |
08/04/94 |
А3426 |
В8483 |
С398 |
|
59,34 |
Первая нормальная форма заменяет повторяющие поля одним полем, создавая при этом несколько записей (по одной на каждый вид товара).
КодЗаказа |
ДатаЗаказа |
КодТовара |
СуммаЗаказа |
00006 |
08/04/94 |
А3426 |
59,34 |
00006 |
08/04/94 |
В8483 |
59,34 |
00006 |
08/04/94 |
С398 |
59,34 |
Первая нормальная форма иначе называется структурной нормализацией. Предложенное решение дублирует одно и то же значение для даты заказа и кода покупки в нескольких записях. А при наличии повторяющихся значений возможна и неоднозначность результатов. Эта проблема решается последующими нормальными формами.
2 NF – Вторая нормальная форма
Вторая нормальная форма требует зависимость каждого неключевого поля от полного набора полей первичного ключа. Таблица 1 является первой нормальной формой.
Таблица 1
КодЗаказа |
ДатаЗаказа |
КодТовара |
СуммаЗаказа |
00006 |
08/04/94 |
А3426 |
59,34 |
00006 |
08/04/94 |
В8483 |
59,34 |
00006 |
08/04/94 |
С398 |
59,34 |
00007 |
08/05/94 |
В8483 |
9,18 |
Из-за преобразования, выполненного первой нормальной формой, поле КодЗаказа перестало быть уникальным, поскольку его значение теперь повторяется в нескольких записях. А вот сочетание КодЗаказа и КодТовара нигде не повторяется, поэтому его можно принять за новый индекс. После этого необходимо проверить, все ли остальные поля зависят от комбинации КодЗаказа и КодТовара.
ДатаЗаказа не зависит от кода товара, хотя зависит от кода заказа. Это также является справедливым для суммы заказа. Поэтому эти два поля надо поместить в отдельную таблицу вместе с полем КодЗаказа, от которого они зависят. Это приведет к образованию двух таблиц (2, 3).
Таблица 2
КодЗаказа |
ДатаЗаказа |
СуммаЗаказа |
00006 |
08/04/94 |
59,34 |
00007 |
08/05/94 |
9,18 |
Таблица 3
КодЗаказа |
КодПродукта |
СчетчикТовара |
00006 |
А3426 |
0001 |
00006 |
В8483 |
0002 |
00006 |
С398 |
0003 |
00007 |
В8483 |
0001 |
Путем простого соблюдения правил нормализации была разработана структура, состоящая из двух таблиц, одна из которых содержит информацию о заказе в целом, а другая включает в себя детали по каждому заказу. В таблице 3 появилось новое поле СчетчикТовара. Это просто счетчик товаров для каждого заказа.
Чтобы связать информацию в таблице 2 с таблицей 3 нужно определить отношение между ними. Отношение будет основано на поле КодЗаказа. Такое отношение называется «один-ко-многим», поскольку каждый заказ, описанный в таблице 2, может быть описан несколькими записями в таблице 3.
3NF – Третья нормальная форма
Для получения третьей нормальной формы таблица должна удовлетворять требованиям первой и второй нормальных форм. Далее для каждой таблицы определяют первичный ключ, состоящий из одного поля или комбинации полей. Для данного примера в таблице заказов в качестве ключевого поля можно использовать КодЗаказа.
Таблица с деталями заказов не имеет поля, однозначно определяющего запись. В ней может быть более одной записи с одинаковыми значениями кода заказа, да и Код продукта может появляться несколько раз – как в одном заказе, так и в разных. Поле СчетчикТовара повторяет свои значения начиная с 1 для каждого заказа. А вот сочетание полей КодЗаказа и СчетчикТовара уникально для каждой записи. Поэтому говорят, что таблица имеет составной первичный ключ.
Добавим к таблице еще одно поле с наименованием товара ИмяТовара. Таблица примет следующий вид.
Таблица 4
КодЗаказа |
КодТовара |
СчетчикТовара |
ИмяТовара |
00006 |
А3426 |
0001 |
Стриммер |
00006 |
В8483 |
0002 |
Модем |
00006 |
С398 |
0003 |
Мышь |
00007 |
В8483 |
0001 |
Модем |
Для третьей нормальной формы все неключевые поля должны зависеть только от полного набора ключевых полей. Вначале проверим, зависит ли КодТовара от сочетания КодЗаказа и СчетчикТовара. Ответ будет положительным, поскольку для каждого из сочетаний КодЗаказа и СчетчикТовара может быть только один КодТовара.
Зависит ли ИмяТовара только от ключевых полей? Нет, вместо них оно однозначно завитсит от КодаТовара. Поэтому поле ИмяТовара не удовлетворяет условию третьей нормальной формы.
В качестве решения можно поместить название товара и его код в отдельный файл Товар, где код товара будет индексным полем. Получится структура, показанная в табл. 5.
Таблица 5
КодТовара |
ИмяТовара |
А3426 |
Стриммер |
В8483 |
Модем |
С398 |
Мышь |
Подобный анализ надо произвести для всех таблиц, используемых в приложении. По окончании анализа приложение можно считать нормализованным.
