Читайте также:
|
|
Цель обследования – оценить объем и цели проекта; выявить суть обследуемого бизнеса и перспективы развития; определить сущности и функции; определить требования к аппаратным средствам.
На этапе исследования необходимо тесное взаимодействие с основными пользователями, получение от них информации и представление ее в формализованном виде.
В процессе исследования необходимо оценить затраты на аппаратные средства, программное обеспечение (ПО) и разработку.
Результат обследования - четко сформулированное заявление о том, что получит заказчик, когда и сколько это будет стоить; должны быть охарактеризованы как затраты, так и выгоды; описаны ограничения, риски и критические факторы, влияющие на результат работы будущей системы; описаны элементы, которые не будут реализованы в рамках проекта. Необходимо оценить, сколько времени уйдет на создание приложения. Для этого нужно создать перечень модулей и выбрать средства их реализации, присвоить каждому модулю степень сложности (таблица 1).
Таблица 1
Степень сложности | Проектирование чел/дни | Генерация чел/дни | Автономный тест чел/дни |
Простой | |||
Средний | |||
Сложный | |||
Очень сложный | 6-10 | 11-15 | 8-20 |
Проектирование баз данных по принципам нормализации. Функциональные зависимости; транзитивные зависимости. Понятие эффективности баз данных и процессы нормализации. Нормальные формы. Определения и характеристики нормальных форм 1NF, 2NF, 3NF, BCNF. Понятие и виды денормализации.
Процесс нормализации был определен Е.Ф.Коддом при определении реляционной модели. Проводить нормализацию рекомендуется на ранней стадии проектирования БД: при разработке структур таблиц. Это может привести к появлению новых таблиц, но в последствии это окупится.
Нормализация – это процесс приведения структуры данных к реляционной форме; другими словами нормализация – это разбиение таблицы на две и более, обладающих лучшими свойствами при включении, изменении и удалении данных. Процесс нормализации имеет своей конечной целью устранение избыточности данных и функциональной зависимости.
Нормализация измеряется в терминах нормальных форм. Нормальные формы позволяют проектировать базы, в которых нет избыточных данных и противоречий, которые могут повлечь за собой потерю информации.
Теория нормализации основывается на наличии той или иной зависимости между полями таблицы. Нормализация является основой для удаления из сущностей нежелательных функциональных зависимостей. Функциональная зависимость подразумевается, если можно определить значение атрибута через значение другого (других) атрибутов. Атрибут, значение которого поддается определению, называют функционально зависимым от атрибута, который является определяющим. Тогда, по определению, все неключевые атрибуты будут функционально зависимы от первичного ключа в каждом отношении (поскольку первичный ключ однозначно определяет каждую строку). Существует вариант многозначной зависимости – это когда, зная значение одного атрибута, можно определить несколько значений другого атрибута. Например, зная страну, можно определить наименования ее аэропортов. Частичная зависимость существует, когда атрибут в отношении функционально зависим только от одного атрибута составного ключа. Транзитивные зависимости возникают, когда неключевой атрибут функционально зависим от одного или нескольких других неключевых атрибутов в отношении.
Определены два типа зависимостей:
- функциональная зависимость: поле «В» функционально зависит от поля «А» той же таблицы в том и только в том случае, когда в любой заданный момент времени для каждого из различных значений поля «А» обязательно существует только одно из различных значений поля «В». Полная функциональная зависимость – это когда поле «В» функционально зависит от поля «А», не зависит функционально от любого подмножества поля «А»;
- многозначная зависимость: поле «А» многозначно определяет поле «В» в той же таблице, если для каждого поля «А» существует хорошо определенное множество соответствующих значений поля «В». Например:
дисциплина преподавательучебник
Информатика Шипилов П.А. Форсайт, «Паскаль для всех»
Информатика Шипилов П.А. Уэйт, «Язык С»
Информатика Голованевский Форсайт, «Паскаль для всех»
Информатика Голованевский Уэйт, «Язык С»
Многозначная зависимость: «Дисциплина – Преподаватель» (дисциплина читается несколькими преподавателями). «Дисциплина – Учебник» (дисциплина читается по двум учебникам). Преподаватель и Учебники не связаны функционально. На лицо – избыточность информации, ее можно избежать, разделив таблицу на две.
Существует 5 этапов (форм) нормализации, каждый последующий этап включает предыдущий (на практике используются первые 3):
- 1 форма – каждое поле таблицы должно содержать неразделенную информацию и не должно содержать повторяющиеся группы; поле считается неделимым, если оно содержит только один элемент данных (например, поле ADDRES в общем случае может содержать и разделяемую информацию); повторяющаяся группа – это поля, которые совпадают по всем параметрам (кроме имени) и предназначены для хранения значений одного атрибута экземпляра объекта (например, один и тот же товар имеет разную отпускную цену и для этого созданы поля для хранения нескольких вариантов цен); повторяющиеся группы требуют дополнительного анализа данных внутри группы и нарушают принцип объектного подхода при формировании структуры данных;
Сущность находится в 1НФ, если значения всех ее атрибутов атомарные. Все повторяющиеся группы должны быть помещены в новую связанную сущность.
- Ограничение: груз не может состоять более чем из 4-х партий. Если удаляется строка, то теряется информация обо всех партиях.
- 2 форма – 1-ая + все поля записи, не входящие в первичный ключ, должны быть связаны полной функциональной зависимостью с первичным ключом (должны зависеть от первичных ключей, т.е. между значениями поля первичного ключа и каждым полем должно существовать однозначное соответствие);
Сущность находится во 2НФ, если она находится в 1НФ и каждый ее неключевой реквизит функционально полно зависит от ключа (если ключ составной, то от каждого компонента составного ключа, другими словами, не должно быть частичной зависимости). Например, грузоподъемность не зависит от даты отправления.
Такая схема не позволяет зарегистрировать корабль, не доставивший ни одного груза.
- 3 форма – 2-я + не одно из неключевых полей записи не должно функционально зависеть от любого другого неключевого поля (поле требует полной зависимости от первичных ключей и полной независимости неключевых полей друг от друга, т.е. не должно быть транзитивной зависимости).
Сущность находится в 3НФ, если она находится во 2НФ и не ключевые реквизиты зависят только от первичного ключа, т.е. они не должны зависеть от других не ключевых реквизитов.
К моменту этапа проектирования модель должна иметь третью нормальную форму (3НФ).
Нормализация имеет и недостатки: 1). При большом количестве таблиц и связей между ними затрудняется целостное восприятие БД; 2). При выполнении запросов к нескольким таблицам БД, связанным между собой, операции поиска выполняется медленнее, чем в ненормализованных таблицах, где вся информация находится в одном месте. Поэтому, при обработке данных большого объема приходится искать компромисс между требованиями нормализации и необходимости улучшения быстродействия.
Денормализация – это процесс достижения компромиссов в нормализованных таблицах посредством намеренного введения избыточности в целях увеличения производительности.
Необходимость денормализации становится очевидной лишь на этапе проектирования модуля. Рекомендуется принимать решение о денормализации в пользу критических процессов. Принимать решение о денормализации следует обдуманно, т.к. улучшение работы с одними таблицами приводит к ухудшению работ с другими.
Критические процессы обычно определяются по: высокой частоте (часто выполняются), большому объему (обрабатывается много данных), высокой изменчивости (данные часто меняются) или явному приоритету (по важности данных).
Как правило, денормализация уменьшает время запроса за счет DML-операций (вставки, обновления, удаления).
Принятые решения о денормализации фиксируются документально с полным обоснованием.
Дата добавления: 2015-11-14; просмотров: 40 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Клиент-сервер. | | | Типы денормализации |