Главная страница

База данных-понятия. Классификация по


Скачать 0.55 Mb.
НазваниеКлассификация по
АнкорБаза данных-понятия.docx
Дата17.07.2018
Размер0.55 Mb.
Формат файлаdocx
Имя файлаБаза данных-понятия.docx
ТипДокументы
#21614
страница19 из 23
1   ...   15   16   17   18   19   20   21   22   23

5.6.Проектирование реляционной базы данных на основе декомпозиции универсального отношения.


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

В качестве примера построим универсальное отношение для базы данных publications:

PUBLICATIONS(AUTHOR, TITLE, YEARPUB, PUBLISHER, PUBL_URL, SITE, SITE_URL)


здесь

  • AUTHOR - имя автора

  • TITLE - название книги

  • YEARPUB - год издания книги

  • PUBLISHER - наименование издательства

  • PUBL_URL - ссылка на веб-сервер издательства

  • SITE - наименование Internet-ресурса

  • SITE_URL - указатель на Internet-ресурс

Фунциональные зависимости, имеющиеся в полученном отношении, представлены на следующей схеме:

(1) TITLE --> YEARPUB

|

(2) -----> PUBLISHER --> PUB_URL
(3) SITE ---> SITE_URL

Для устранения избыточной функциональной зависимости (3) декомпозируем исходное отношение на два:

PUBLICATIONS(AUTHOR, TITLE, YEARPUB, PUBLISHER, PUBL_URL, SITE)

WWWSITES(SITE,SITE_URL)

Приняв во внимание, что атрибут SITE требует типа данных "строка" и следовательно его использование в качестве первичного ключа не очень удобно, введем в отношении WWWSITES первичный ключ SITE_ID, основанный на целом типе данных. (Такая подстановка, хотя и ведет к избыточности с точки зрения теории, на практике позволяет ускорить обработку данных. Поэтому, в дальнейшем примем за правило заменять подобным образом строковые первичные ключи, не оговаривая это в каждом отдельном случае). Теперь наши отношения примут вид:

PUBLICATIONS(AUTHOR, TITLE, YEARPUB, PUBLISHER, PUBL_URL, SITE_ID)

WWWSITES(SITE_ID,SITE,SITE_URL)

Устраним функциональную зависимость (2):

PUBLICATIONS(AUTHOR, TITLE, YEARPUB, PUB_ID, SITE_ID)

PUBLISHERS(PUB_ID,PUBLISHER,PUBL_URL)

WWWSITES(SITE_ID,SITE,SITE_URL)

Теперь мы имеем следующие избыточные функциональные зависимости в отношении PUBLICATIONS:

TITLE --> YEARPUB

|

-----> PUB_ID

Для их устранения необходимо вынести атрибуты TITLE, YEARPUB и PUB_ID в отдельное отношение:

PUBLICATIONS(AUTHOR, TITLE_ID, SITE_ID)

TITLES(TITLE_ID,TITLE,YEARPUB,PUB_ID)

PUBLISHERS(PUB_ID,PUBLISHER,PUBL_URL)

WWWSITES(SITE_ID,SITE,SITE_URL)

Теперь наша база данных находится в третьей нормальной форме, однако мы видим, что полученный набор отношений не совпадает с набором, полученным из модели "сущность-связь". Для того, чтобы разобраться в причинах этого противоречия, рассмотрим отношение PUBLICATIONS вместе с его данными. Добавим автора, который имеет две книги и две web-страницы:

| AUTHOR | TITLE_ID | SITE_ID |

|--------|----------|---------|

| J.Doe | 1 | 1 |

| J.Doe | 2 | 1 |

| J.Doe | 1 | 2 |

| J.Doe | 2 | 2 |

Из этой таблицы становится ясно, что в рассматриваемом отношении существует многозначная зависимость AUTHOR ->> TITLE_ID | SITE_ID. Для ее устранения приведем отношение к четвертой нормальной форме, для чего разобъем его на три.

AUTHORS(AU_ID,AUTHOR)

PUBLICATIONS(AUTHOR,TITLE_ID,SITE_ID) -> TITLEAUTHORS(TITLE_ID,AU_ID)

WWWSITEAUTHORS(AU_ID,SITE_ID)

Окончательно получим:

AUTHORS(AU_ID,AUTHOR)

TITLEAUTHORS(TITLE_ID,AU_ID)

WWWSITEAUTHORS(AU_ID,SITE_ID)

TITLES(TITLE_ID,TITLE,YEARPUB,PUB_ID)

PUBLISHERS(PUB_ID,PUBLISHER,PUBL_URL)

WWWSITES(SITE_ID,SITE,SITE_URL)

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

5.7.Обзор некоторых CASE-систем.


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

Список производителей CASE - инструментов и ряд полезных ссылок можно найти по адресу http://sunny.aha.ru/belikov/index.htm, вопросам использования CASE посвящена русскоязычная конференция news://fido7.su.dbms.case, в Internet также доступна книга Вендрова А.М. CASE-технологии. Современные методы и средства проектирования информационных систем..

5.7.1.Power Designer компании Sybase.


В состав Power Designer входят следующие модули:

  • Process Analyst - средство для функционального моделирования, поддерживает нотацию Йордона - ДеМарко, Гейна - Сарсона и несколько других. Имеется возможность описать элементы данных (имена, типы, форматы), связанные с потоками данных и хранилищами данных. Эт элементы передаются на следующий этап проектирования, причем хранилища данных могут быть автоматически преобразованыв сущности.

  • Data Analyst - инструмент для построения модели "сущность-связь" и автоматической генерации на ее основе реляционной структуры. Исходные данные для модели "сущность-связь" могут быть получены из DFD-моделей, созданных в модуле Process Analyst. В ER-диаграммах допускаются только бинарные связи, задание атрибутов у связей не поддерживается. Поддерживаются диалекты языка SQL примерно для 30 реляционных СУБД, при этом могут быть сгенерированы таблицы, представления, индексы, триггеры и т.д. В результате порождается SQL-сценарий (последовательность команд CREATE), выполнение которого создает спроектированную схему базы данных. Имеется также возможность установить соединение с СУБД через интерфейс ODBC. Другие возможности: автоматическая проверка правильности модели, расчет размера базы данных, реинжиниринг (построение модельных диаграмм для уже существующих баз данных) и т.д.

  • Application Modeler - инструмент для автоматической генерации прототипов программ обработки данных на основе реляционных моделей, построенных в Data Analyst. Может быть получен код для Visual Basic, Delphi, а также для таких систем разработки в архитектуре "клиент-сервер" как PowerBuilder, Uniface, Progress и др. Генерация кода осуществляется на основе шаблонов, соответственно управлять генерацией можно за счет изменения соответствующего шаблона.

Ознакомительную версию Power Designer, в которой заблокированы функции сохранения построенных моделей, можно получить с российского web-сервера комании Sybase.

5.7.2.Silverrun компании Silverrun Technologies Ltd.


CASE-система Silverrun состоит из следующих инструментов:

  • BPM - построение DFD-диаграмм. Поддерживает нотации Йордона-ДеМарко, Гейна - Сарсона, Уорда-Меллора и многие другие. Данный инструмент позволяет автоматически проверить целостность построенной модели, причем список критериев проверки определяется пользователем (например: отсутствие имен у элементов модели, потоки данных типа "хранилище - хранилище" или "внешняя сущность - внешняя сущность" и т.д.)

  • ERX - построение диаграмм "сущность-связь". Поддерживаются не только бинарные связи, но и связи более высоких порядков, имеется возможность определения атрибутов у связей. Построенные ER-модели с помощью внешней утилиты могут быть сконвертированы в реляционный структуры (в той версии, с которой я работал, при этом, к сожалению, терялись атрибуты связей).

  • RDM - инструмент реляционного моделирования, позволяет генерировать SQL-скрипты для создания таблиц и индексов примерно для 25 целевых СУБД.

Следует отметить, что компания Silverrun Technologies Ltd является не только разработчиком CASE - инструментария, но также создала собственную методологию создания информационных систем, получившую название Datarun. Эта методология включает описание всех этапов жизненного цикла информационной системы, перечень и последовательность работ, требования к содержанию и оформлению документов и многое другое.

Ознакомительную версию Silverrun, можно скачать с сервера комании Argussoft. В этой версии имеются ограничения на количество элементов в создаваемых моделях.

5.7.3.BPWin и ERWin компании LogicWorks.


LogickWorks выпускает два взаимнодополняющих инструмента проектирования информационных систем:

  • BPWin - функциональное моделирование на основе методологии IDEF0. Допускается также использовние нотации IDEF3 и DFD в нотации Йордона - ДеМарко. Имеется возможность экспорта построенных моделей в системы функционально-стоимостного анализа (ABC - Activity Based Costing) и информационного моделирования ERWin.

  • ERWin - средство информационного моделирования, используется нотация IDEF1X. Поддерживаются свыше 20 целевых СУБД, имеется возможность генерации прототипов прикладных программ для Visual Basic, Delphi и т.д.



5.7.4.Designer/2000 компании Oracle.


Данный продукт компании Oracle, возможно, наиболее полно поддерживает все этапы создания приложений обработки данных. Однако, следует оговориться, что, в отличие от других средств, он поддерживает практически одну целевую СУБД - Oracle Server (имеется еще возможность генерации скриптов на ANSI SQL). То же самое касается и средств создания пользовательсокго интерфейса. Хотя возможна генерация прототипов программ для языков Visual Basic, C, Java, полностью все возможности Designer/2000 реализуются только при использовании его вместе со средством разработки Oracle Developer/2000.

В состав Oracle Designer/2000 включены следующие модули:

  • инструментарий анализа предметной области:

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

    • Dataflow Diagrammer - в этом инструменте на базе DFD - диаграм детализуются функции, описаные в Process Modeler. Используется нотация Йордона - Де Марко.

    • Function Hierarchy Diagrammer - этот модуль автоматически выстраивает иерархии функций, определенных в двух предыдущих инструментах, имеется также возможность создавать прототипы функций.

    • Entity Relationships Diagrammer - инструмент моделирования данных (диаграмы "сущность-связь"), которыми оперируют функции, определенные в Dataflow Diagrammer. Используется нотация Баркера.

    • Matrix Diagrammer - инструмент для исследования связей между функциями и данными.

  • генераторы структур:

    • Database Wizard - генерирует реляционные структуры из ER-диаграм.

    • Application Wizard - генерирует иерархию программных модулей конечного приложения обработки данных на основе иерархии функций. При этом может одновременно генерироваться несколько взаимосвязанных подсистем для различных подразделений одной организации. Во время генерации автоматически обнаруживаются одинаковые с точки зрения использования информационных объектов функции, которые согут быть объединены в одном модуле.

  • инструментарий проектирования приложения:

    • Data Diagrammer - инструмент для доработки реляционных структур данных на основе нотации Баркера

    • Module Structure Diagrammer - инструмент для управления структурой программных модулей готового приложения. Здесь определяются типы модулей (меню, экранная форма, отчет) и их иерархии вызовов.

    • Module Data Diagrammer - средство для проектирования экранного интерфейса программного модуля на основе используемых им данных. Позволяет без программирования весьма гибко управлять внешним видом и поведением генерируемого модуля.

  • генераторы данных и кода:

    • Server Generator - генерирует базу данных на основе реляционных моделей.

    • генераторы кода - на основе моделей, построенных в Module Data Diagrammer, позволяет создать исходный код для Visual Basic, C, Java а также инструментов среды Oracle Developer/2000 (Oracle Forms, Oracle Reports). В последнем случае возможна циклическая доработка приложения: в сгенерированный прототип приложения в Developer/2000 вносятся изменения, которые видны для Designer/2000 и не теряются при повторной перегенерации.

    • Preferences Navigator - средство управления предпочтениями при генерации программных модулей. Плзволяет устанавливать многочисленные опции (например, внешний вид элементов экранного интерфейса) как для проекта в целом, так и для каждого модуля в отдельности.

Также в Oracle Designer/2000 имеется ряд других инструментов: утилита для интерактивного выполнения SQL-запросов, средства управления проектом и т.д. Следующая глава: 6.1.Ограничения реляционных баз данных.
1   ...   15   16   17   18   19   20   21   22   23


написать администратору сайта