Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Новости ИТ Программы Книги Games   Обои   Экспорт RSS E-Books
 
Поиск по сайту

TOP-10 программ
Symantec Norton Ghost 9.0
Partition Magic 8.0.2 Pro
Xilisoft 3GP Video Converter v3.1.7.0616b
Norton AntiVirus 2005
Xilisoft 3GP Video Converter v2.1.52.831b
Антивирус Касперского Personal 5.0.303 beta 2
RAR Password Cracker 4.12
ABBYY PDF Transformer v1.00.820
MP3 To Ringtone Gold v3.02
Mobtime Cell Phone Manager v5.3.1
 
Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
 
 

  Раздел: Компьютерная документация -> Базы данных -> Разное

 

Задача проектирования базы данных методом нормализации

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

Введение.

Данная статья посвящена анализу проектирования базы данных частного предприятия. В качестве инструмента моделирования структуры данных использован метод нормализации. Этот метод считается фундаментальным и широко используется на практике.

Базы данных (БД) составляют в настоящее время основу компьютерного обеспечения информационных процессов, входящих практически во все сферы человеческой деятельности. Тематика СУБД поистине безгранична и многогранна.

Хотя многие считают, что реляционные СУБД, являясь наиболее распространенным современным аппаратом построения информационных систем, не представляют уже интереса в научном отношении, остается еще много не решенных или частично решенных проблем. Об этом свидетельствует поток статей, посвященных тематике чисто реляционных систем, а также активная деятельность компаний-производителей коммерческих реляционных систем, стремящихся улучшать свои продукты и придавать им новые качества. Продолжающая работа исследователей затрагивают вопросы оптимизации запросов, новых алгоритмов выполнения реляционных отношений, оптимизации структур данных и другие аспекты, непосредственно определяющие эффективность СУБД [1]

В предлагаемой статье сделана попытка решения вопроса оптимизации структур данных. Понятие «оптимизация структуры данных» обозначает спроектировать такую систему базы данных, структура данных которой должна быть предельно простой и понятной. А именно этот критерий является одним из самых важных критериев разработки коммерческих приложений (банковских систем, Интернет - магазинов, систем электронных платежей, и т.д.), поскольку позволяет программе занимать совсем малую память и выполнять запросы быстрее.

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

Одной из типичных задач проектирования коммерческих приложений может быть задача об организации работы предприятия (фирмы), занимающейся продажей компьютерной техники. Для этого, на мой взгляд, необходимо ответить на эти вопросы:

  1. Какие товары продает фирма, какова их цена, описание, и т.д.
  2. По выбранным товарам оформляются заказы. Кто (покупатели), когда и совершили заказ и какова общая сумма заказа?

Таким образом, схему организации фирмы можно представить в виде двух отношений:


Рис 1. Начальная схема отношений

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

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

Как нам известно, в теории реляционных баз данных существует пять нормальных форм [2]:

  • первая нормальная форма (1 NF);
  • вторая нормальная форма (2 NF);
  • третья нормальная форма (3 NF);
  • четвертая нормальная форма (4 NF);
  • пятая нормальная форма (5 NF).

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

Процесс проектирования.

1-ый шаг: 1 NF → 2 NF

Из схемы организации работы фирмы на рис. 1 определим схему отношений:

ТОВАРЫ-ЗАКАЗЫ

ТОВАРЫ {товарНом, товарНазв, товарОпис, товарРис, товарЦена, колНаСкладе, типНом, типНазв}

ЗАКАЗЫ {заказНом, заказДата, ПокупНом, ФИОПокуп, ЭлпочтаПокуп, адресПокуп, товарНом, количТовЗаказа, видДост, ценаДост, налогНДС, общСумма, заказСост}

В атрибутах «типНом» и «типНазв» содержится информация о типах товаров, например, название типа — Процессоры (типНом = 1), к которому относятся конкретные товары - Intel 386, Intel 486, AMD, и т.д. Атрибут «колНаСкладе» содержит общее количество товаров с данным номером на складе.

В одном заказе может заказываться несколько товаров с разными номерами. Атрибут «количТовЗаказа» содержит количество товаров данного типа, заказанных в данном заказе.

В атрибутах «ПокупНом», «ФИОПокуп», «ЭлпочтаПокуп», «адресПокуп» содержится информация о покупателе — номер, ФИО, Электронная почта и адрес.

В атрибутах «видДост», «ценаДост» хранится информация о доставке — номер, вид и цена доставки. Атрибут «заказСост» содержит состояние заказа, который может быть иметь значение «Сделка совершена» либо «Сделка выполнена неполно».

Для вычисления общей суммы заказа применяем формулу

общСумма = ТоварЦена*количТов + налогНДС + ценаДост.

На 1-м шаге проектирования форма 1NF приводится к виду 2NF. Для этого проверяем следующее определение:

Отношение R находится в второй нормальной форме (2NF) в том и только в том случае, когда находится в 1NF, и каждый неключевой атрибут полностью зависит от первичного ключа.

Рассмотрим отношение ЗАКАЗЫ. В этом отношении существует неполная функциональная зависимость от первичного ключа, поскольку все атрибуты, кроме товарНом и количТовЗаказа, зависят от ЗаказНом, а первичным ключом является заказНом, товарНом. И поэтому мы приводим отношение ко второй нормальной форме то есть, производим декомпозицию отношения ЗАКАЗЫ в два отношения ТИП ЗАКАЗА и ЗАКАЗЫ:

ТИП ЗАКАЗА {заказНом, товарНом, количТовЗаказа}

Первичный ключ:
заказНом, товарНом
Функциональные зависимости:
заказНом, товарНом → количТовЗаказа

ЗАКАЗЫ {заказНом, заказДата, ФИОПокуп, ЭлпочтаПокуп, адресПокуп, видДост, ценаДост, налогНДС, общСумма, заказСост}

Первичный ключ:
заказНом
Функциональные зависимости:
заказНом → заказДата
заказНом → ФИОПокуп
заказНом → ЭлпочтаПокуп
заказНом → адресПокуп
заказНом → видДост
заказНом → ценаДост
заказНом → налогНДС
заказНом → общСумма
заказНом → заказСост

Рассмотрим отношение ТОВАРЫ. В этом отношении первичным ключом является атрибут «товарНом», и оно уже находится во второй нормальной форме.

ТОВАРЫ {товарНом, типНом, товарНазв, товарОпис, товарЦена, товарРис, типНазв, колНаскладе}

Первичный ключ:
товарНом
Функциональные зависимости:
товарНом → типНом
товарНазв
товарНом → товарОпис
товарНом → товарЦена
товарНом → товарРис
товарНом → колНаСкладе
типНом → типНазв


Рис. 2. Схема отношений в виде 1NF

2-ой шаг: 2 NF → 3 NF

На 2-м шаге проектирования форма 2NF приводится к виду 3NF. Для этого проверяется следующее определение:

Отношение R находится в третьей нормальной форме (3NF) в том и только в том случае, когда находится в 2NF, и каждый неключевой атрибут нетранзитивно зависит от первичного ключа.

При проверке на транзитивность определяется существования зависимостей R.X → R.Z и R.Z → R.Y и отсутствие зависимости R.Z → R.X. То есть при отсутствии последнего требования мы имели бы «неинтересные транзитивные зависимости» в любом отношении, обладающем несколькими ключами.

Имея в виду выше рассмотренные ФЗ отношения ТОВАРЫ, где атрибут типНазв напрямую не зависит от первичного ключа товарНом, а непосредственно зависит от его составного атрибута типНом, мы заключаем, что здесь имеется транзитивная ФЗ товарНом → типНом → типНазв. Другими словами, название типа товара на самом деле является характеристикой не товара, а типа товара, к которому он относится. В результате сказанного, мы приводим отношение Товары к третьей нормальной форме.

Теперь можно произвести декомпозицию отношения ТОВАРЫ в два отношения ТИП ТОВАРА и ТОВАРЫ:

ТИП ТОВАРА {типНом, типНазв}

Первичный ключ:
типНом
Функциональные зависимости:
типНом → типНазв

ТОВАРЫ {товарНом, тип_Ном, товарНазв, товарОпис, товарЦена, товарРис, колНаСкладе}

Первичный ключ:
товарНом
Функциональные зависимости:
товарНом → типНом
товарНазв
товарНом → товарОпис
товарНом → товарЦена
товарНом → товарРис
товарНом → колНаСкладе

В результате из одного отношения (таблицы) ТОВАРЫ получается два отношения (две таблицы) ТИП ТОВАРА и ТОВАРЫ.

Отношение ТОВАРЫ разделяется на отношения — ТИП ТОВАРА и ТОВАРЫ, где ТИП ТОВАРА — основная таблица, а ТОВАРЫ — подчиненная таблица.

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


Рис 3. Схема отношений в виде 3NF

Техническое решение

Приложение базы данных было выполнена в среде Access 2003. Определив все взаимосвязи между отношениями, получим окончательную схему данных (структуру данных):

Рис 4. Схема данных БД

Из схемы видно, что между отношениями существуют связи:

  • «Тип товара» и «Товары» имеют связь 1:∞
  • «Товары» и «Тип заказа» имеют связь 1:∞
  • «Тип заказа» и «Заказы» имеют связь 1:∞

Типы данных для каждого отношения приведены в следующих таблицах:

а) для отношения «Тип товара»

б) для отношения «Товары»

в) для отношения «Типы заказа»

г) для отношения «Заказы»

Автор: Умаров Амантур Амангельдыевич
Источник: www.citforum.ru

Ссылки по теме
Особенности проектирования современных баз данных
Рынок СУБД: show must go on!
Проектирование баз данных
Информационная безопасность в современных СУБД
Основы проектирования реляционных баз данных
Новые технологии баз данных для интегрированных прикладных систем
 

Компьютерная документация от А до Я - Главная

 
Популярные книги

Windows XP для всех

Подробнее

Ремонт и обслуживание компьютера дома

Подробнее

Практикум по программированию на языке Си (+CD)

Подробнее

 

 
Новости ИТ
21.11.2008  Thunderbird 2.0.0.18
21.11.2008  Miranda IM 0.7.13
21.11.2008  Dr. Web 5 Beta
21.11.2008  KAV/KIS 2009 8.0.0.506
21.11.2008  avast! 4.8 (1290)
21.11.2008  Radmin 3.3
21.11.2008  DVR-X162J - новый внешний DVD-привод от Pioneer
21.11.2008  Дизайнерские системные блоки от Smooth Creations
21.11.2008  SPARKLE представляет Calibre P980X+, видеокарту с необычным дизайном
21.11.2008  Titan представляет куллер для Intel i7
21.11.2008  Компактный ПК для дома Acer Aspire X3200 - в России
21.11.2008  Hitachi Data Systems объявляет о новом плане инвестиций в России и странах СНГ
21.11.2008  Назначен новый президент Microsoft в России
21.11.2008  Mustek: новые цифровые видеокамеры начального уровня
21.11.2008  Серверные Core i7 - быстры ли они? Да, и очень, судя по тестам в SPECfp
21.11.2008  NETGEAR: акция для партнеров
21.11.2008  Персональные фотокарты на Яндексе
21.11.2008  Программа для стартапов Microsoft BizSpark анонсирована в России
21.11.2008  Средства защиты от утечек конфиденциальных данных Symantec DLP 8.1 теперь и в России
21.11.2008  Axis: первый 6-канальный IP-видеосервер с поддержкой H.264/M-JPEG
 
Полезно

 
Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.
 
Rambler's Top100