Вход

Автоматизация проектирования реляционных баз данных: синтез В-схемы

Курсовая работа* по программированию
Дата добавления: 10 января 2007
Язык курсовой: Русский
Word, rtf, 817 кб (архив zip, 60 кб)
Курсовую можно скачать бесплатно
Скачать
Данная работа не подходит - план Б:
Создаете заказ
Выбираете исполнителя
Готовый результат
Исполнители предлагают свои условия
Автор работает
Заказать
Не подходит данная работа?
Вы можете заказать написание любой учебной работы на любую тему.
Заказать новую работу
* Данная работа не является научным трудом, не является выпускной квалификационной работой и представляет собой результат обработки, структурирования и форматирования собранной информации, предназначенной для использования в качестве источника материала при самостоятельной подготовки учебных работ.
Очень похожие работы
Найти ещё больше


МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ



КРАСНОЯРСКАЯ ГОСУДАРСТВЕННАЯ АКАДЕМИЯ ЦВЕТНЫХ МЕТАЛЛОВ И ЗОЛОТА




Кафедра ПМ и АСУ

Группа ИС-01-1

Дисциплина Базы и банки знаний




Пояснительная записка

к курсовой работе





Тема: Автоматизация проектирования реляционных баз данных: синтез В-схемы











Студенты: __________________________________/Булахов А.С./

/Павлов К.А./

/Засыпалов И.Ю./

/Зырянов Д.Ф./

Руководитель работы:________________________ /Быкова В.В./






Красноярск 2004

СОДЕРЖАНИЕ

Введение…………………………………………………………..…………3

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

    1. Технологические аспекты работы……………………………5

    2. Требования к отладке программ. Распределение работ….…7

  2. Описание пакета программ…………………………………………..9

    1. Входные и выходные данные…………………………………9

    2. Состав и функции пакета программ…………………….……9

    3. Эксплутационные характеристики и особенности пакета….10

    4. Решение практической задачи вручную……………………..11

    5. Решение практической задачи с помощью разработанного пакета программ…………………………………………………16

Заключение…………………………………………………………………19

Список литературы………………………………………………………...20

Приложение. Текст программы









КГАЦМиЗ. УП000.069.ПЗ

Лист






2

Изм.

Лист

№ докум.

Подпись

Дата



ВВЕДЕНИЕ

Данная курсовая работа служит закреплением практических и теоретических знаний, полученных при изучении дисциплины “Базы и банки знаний”.

Цели работы:

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

  • Реализация алгоритмов в виде пакета программ, позволяющего осуществить синтез схемы реляционной базы данных с заданными свойствами, исходя из F-описания (описания предметной области на языке функциональных зависимостей).

  • Использование разработанного пакета программ для решения реальной практической задачи.

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








КГАЦМиЗ. УП000.069.ПЗ

Лист







3

Изм.

Лист

№ докум.

Подпись

Дата



  1. ПОСТАНОВКА ЗАДАЧИ

    1. ТЕНОЛОГИЧЕСКИЕ АСПЕКТЫ РАБОТЫ

Известно, что база данных (БД) – динамически обновляемая информационная модель предметной области, а процесс её проектирования – процесс моделирования предметной области.

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

  • сколько таблиц должно быть в БД,

  • какие атрибуты содержит каждая таблица,

  • каковы ключи таблиц?

Физическое проектирование БД – доводка логического проекта с учетом особенностей выбранной СУБД и требований к эксплуатационным характеристикам БД. Эта доводка включает в себя такие действия:

  • установление явных связей между таблицами,

  • определение индекса таблиц,

  • определение запоминающих устройств, методов доступа, способов защиты и т.д.

Ясно, что основная задача проектировщика БД – получение хорошего логического проекта БД. Исходными данными для решения этой задачи являются:

  • множество атрибутов, значения которых требуется хранить в БД;

  • множество связей между атрибутами.

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

Наиболее распространённые системы нотаций:

  • модель “сущность - связь” (ER-модель). Семантическая структура предметной области представляется ER-диаграммой;

  • язык функциональных зависимостей (ФЗ). Семантическая структура предметной области представляется F-описанием - множеством ФЗ F.

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

Рассмотрим проблемы, возникающие при синтезе схемы БД и алгоритмические способы решения этих проблем.







КГАЦМиЗ. УП000.069.ПЗ

Лист






4

Изм.

Лист

№ докум.

Подпись

Дата



Проблема 1 – неизбыточность представления F-описания.

Для всякой предметной области можно построить несколько эквивалентных F-описаний. Можно ли, опираясь на некоторое исходное F-описание заданной предметной области, найти для F эквивалентное неизбыточное представление – представление, лишенное избыточных ФЗ и посторонних атрибутов? Ответ положительный, для этого существуют соответствующие алгоритмы «чистки» F-описания.

«Чистка» исходного F-описания выполняется в два этапа:

  1. вначале из F удаляются все избыточные ФЗ (они логически следуют из оставшихся). Полученное в результате множество ФЗ называют неизбыточным покрытием F и обозначают Fнеизб;

  2. далее из Fнеизб удаляются посторонние атрибуты. Этот процесс называется редуцированием, а полученное в результате множество ФЗ называется редуцированным покрытием и обозначается Fред.

Множество ФЗ Fред. не всегда является самым экономным (оптимальным) представлением семантической структуры предметной области. Тем не менее, использование Fред. для синтеза схемы БД обеспечивает в достаточной мере неизбыточность получаемой БД.

Проблема 2 – оценка качества проектных решений.

Известно, что к организации БД предъявляются три требования (правило «Три НЕ»): неизбыточность, непротиворечивость, независимость. Последнее из них – независимость данных от приложений достигается в основном средствами СУБД. Неизбыточность и непрворечивость БД можно обеспечить путём выбора подходящей схемы БД.

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

Пусть R – множество имен атрибутов, значения которых требуется хранить в БД, и F – множество ФЗ, описывающих связи между атрибутами.

Схема БД над R

называется эффективной относительно F, если

  1. она сохраняет F (разбиение R на R1, R2, …, Rm не приводит к потере зависимостей из F, а значит, связей между атрибутами);








КГАЦМиЗ. УП000.069.ПЗ

Лист






5

Изм.

Лист

№ докум.

Подпись

Дата


  1. обладает свойствами соединения без потерь информации (представления БД в виде одной таблицы r(R) или в виде совокупности таблиц r1(R1), r2(R2), …, rm(Rm) равносильны). Последнее означает, что любое допустимое состояние таблицы r(R) всегда можно получить из таблиц r1(R1), r2(R2), …, rm(Rm) с помощью операции естественного соединения

к(К) = к11) к22) кьь)

3) все подсхемы Ri? нормализованы, то есть находятся в НФБК(нормальной форме Бойса–Кодда). Это означает, что всякая ФЗ, действующая в рамках таблицы ri(Ri) в левой части имеет ключ таблицы ri(Ri), i =1, 2, …, m.

Теорема. Для любого множества ФЗ F, заданного на конечном множестве атрибутов R, всегда существует схема БД

обладающая свойством соединения без потерь, сохраняющая все ФЗ из F и находящаяся в 3НФ.

Схему БД, удовлетворяющую условиям данной теоремы, принято называть В-схемой. Свойства В-схемы вполне приемлемы для практики, так как они гарантируют непротиворечивость БД. 3НФ допускает определённое избыточное дублирование данных, но с этим приходится мириться и учитывать в программах ввода и редактирования данных.

Данная курсовая работа предполагает программную реализацию процесса синтеза В-схемы, указанного на рис. 1







КГАЦМиЗ. УП000.069.ПЗ

Лист






6

Изм.

Лист

№ докум.

Подпись

Дата


1.2. ТРЕБОВАНИЯ К ОТЛАДКЕ ПРОГРАММ. РАСПРЕДЕЛЕНИЕ РАБОТ


Все работы, связанные с разработкой пакета программ, решением практической задачи и оформлением результатов курсовой работы, были распределены между студентами – исполнителями:


Исполнитель 1 – Павлов Константин

Исполнитель 2 – Засыпалов Илья

Исполнитель 3 – Зырянов Дмитрий

Исполнитель 4 – Булахов Александр




Объём всех работ разделён на четыре задания. Учитывая сложность алгоритмов, распределение работы по заданиям было выполнено согласно рис. 2









КГАЦМиЗ. УП000.069.ПЗ

Лист






7

Изм.

Лист

№ докум.

Подпись

Дата


Исполнитель 1

Задание 1

Разработка и отладка

  • модуля ввода,

  • модуля проверки выводимости,

  • модуля построения неизбыточного покрытия.

Решение вручную практической задачи согласно варианту.


Исполнитель 2

Задание 2

Разработка и отладка

  • модуля 1 редуцирования,

  • модуля 2 редуцирования.



Решение вручную практической задачи согласно варианту.


Исполнитель 3

Задание 3

Разработка и отладка:

  • модуля прогонки табло.

Решение вручную практической задачи согласно варианту.

Оформление пояснительной записки, материалы к которой предоставляют все другие исполнители.

Исполнитель 4

Задание 4

Разработка и отладка:

  • модуля синтеза,

  • головного модуля.

Решение вручную практической задачи согласно варианту.

Координация, планирование и контроль исполнения заданий.


























КГАЦМиЗ. УП000.069.ПЗ

Лист






8

Изм.

Лист

№ докум.

Подпись

Дата


НАЗВАНИЕ ПОЛЯ

ТИП ПОЛЯ

Атрибуты

ФЗ

Левая часть ФЗ

Правая часть ФЗ

Строковый

Массив множеств

Множество

Множество


  1. ОПИСАНИЕ ПАКЕТА ПРОГРАММ

2.1. ВХОДНЫЕ И ВЫХОДНЫЕ ДАННЫЕ

Входными данными в пакете программ являются:

  • Множество имён атрибутов;

  • Множество функциональных зависимостей.

Внутренне представление данных указано в табл. 1.









В процессе работы пакета программ формируется В – схема с указанием ключей для каждой таблицы БД.


2.2. СОСТАВ И ФУНКЦИИ ПАКЕТА ПРОГРАММ

Пакет реализован на языке Object Pascal в объектно-ориентированной среде Delphi 7.0, которая предоставляет широкий набор средств, позволяющих быстро и эффективно разрабатывать программы, предназначенные для создания и обслуживания Базы данных. Процедуры и функции пакета программ представлены в таблице 2.

Таблица 2

Наименование процедур и функций

Назначение процедур и функций

Procedure TForm1.But_AtrClick

Ввод атрибутов

Procedure TForm1.But_funcClick

Ввод ФЗ

Procedure TForm1.ProvercaClick

Проверка выводимости

Procedure TForm1.But_pos_izbClick

Построение неизбыточного покрытия

Procedure TForm1.But_pos_redClick

Построение редуцированного

покрытия

Procedure TForm1.But_keyClick

Нахождение ключа

Procedure TForm1.But_pos_tabloClick

Прогонка табло

Procedure TForm1.But_pos_sintezClick

Синтез B-схемы








КГАЦМиЗ. УП000.069.ПЗ

Лист






9

Изм.

Лист

№ докум.

Подпись

Дата



2.3. ЭКСПЛУТАЦИОННЫЕ ХАРАКТКРИСТИКИ И ОСОБЕННОСТИ ПАКЕТА

Для функционирования пакета программ требуются технические средства:

  • IBM PC на базе микропроцессора Pentium 200 и выше;

  • Видеоадаптер VGA;

  • Свободного дискового пространства не менее 600 Кб;

  • Клавиатура;

  • Манипулятор типа «мышь».








КГАЦМиЗ. УП000.069.ПЗ

Лист






10

Изм.

Лист

№ докум.

Подпись

Дата



2.3. РЕШЕНИЕ ПРАКТИЧЕСКОЙ ЗАДАЧИ ВРУЧНУЮ

Состав атрибутов практической задачи приведён в табл. 3

Таблица 3

Имя атрибута

Семантика

A

Номер рейса

N

Пункт назначения

S

Тип самолета

M

Количество посадочных мест

D1

Дата вылета

D2

Время вылета

P1

Код пилота – командира экипажа

P2

Ф.И.О. пилота

T

Длительность полета


Описание предметной области на языке ФЗ приведено в табл. 4.

Таблица 4

Функциональная зависимость

Семантика

P1 ? P2

Код однозначно идентифицирует пилота

A ? ND2

Номер рейса однозначно определяет пункт назначения и время вылета

AD1D2 ? P1P2S

Для каждого рейса на определенный день вылета

назначается командир экипажа и тип самолета

SN ? TM

Длительность полета и количество посадочных мест

определяются типом самолета и пунктом назначения

D1D2P1 ? A

Пилот одновременно пилотирует только один рейс

AD1 ? T

Длительность полета зависит от номера рейса, даты вылета








КГАЦМиЗ. УП000.069.ПЗ

Лист






11

Изм.

Лист

№ докум.

Подпись

Дата

Заданы: множество атрибутов

R= {A, N, S, M, D1, D2, P1, P2, T}

с семантикой

A - номер рейса;

N - пункт назначения;

S - тип самолета;

M - количество посадочных мест;

D1 - дата вылета;

D2 - время вылета;

P1 - код пилота – командира экипажа;

P2 - Ф.И.О. пилота;

T - длительность полета;

множество функциональных зависимостей:

F={P1? P2, A? ND2, AD1D2 ? P1P2S, SN ? TM, D1D2P1 ? A, AD1 ? T}

с семантикой

P1? P2 – код однозначно идентифицирует пилота;

A? ND2 – номер рейса однозначно определяет пункт назначения и время

вылета;

AD1D2 ? P1P2S – для каждого рейса на определенный день вылета

назначается командир экипажа и тип самолета;

SN ? TM – длительность полета и количество посадочных мест

определяются типом самолета и пунктом назначения;

D1D2P1 ? A – пилот одновременно пилотирует только один рейс;

AD1 ? T – длительность полета зависит от номера рейса, даты вылета.

Решение:

  1. Построение неизбыточного покрытия.

Для построения неизбыточного покрытия необходимо удалить избыточные ФЗ. Для этого вычислим замыкания для каждой ФЗ:

(P1)+ = P1

(A)+ = A

(AD1D2)+ = AD1D2NT

(SN)+ = SN

(D1D2P1)+ = D1D2P1

(AD1)+ = AD1ND2P1P2STM

(AD1)+ = AD1ND2P1P2STM – данная ФЗ избыточна, т. к. она определяет атрибут Т через ФЗ AD1 ? T, следовательно, мы её удаляем из F.

Получаем:

F={P1? P2, A? ND2, AD1D2 ? P1P2S, SN ? TM, D1D2P1 ? A}








КГАЦМиЗ. УП000.069.ПЗ

Лист






12

Изм.

Лист

№ докум.

Подпись

Дата


  1. Построение редуцированного покрытия.

    A

    b1

    P1

    P2

    N

    D1

    D2

    S

    T

    M

    a1


    a2

    b8


    a3


    b9

    b2


    b3


    b4

    a4

    a6

    b5


    b6


    b7

    b11

    b12


    b13


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

Редуцирование левых частей:

Fлев. ред. = {P1? P2, A? ND2, AD1D2 ? P1P2S, SN ? TM, D1D2P1 ? A}.

Редуцирование правых частей:

Fправ. ред. = {P1? P2, A? ND2, AD1? P1P2S, SN ? TM, D1D2P1 ? A}.

В результате:

Fред. = {P1? P2, A? ND2, AD1? P1S, SN ? TM, D1D2P1 ? A}.

  1. Нахождение ключа.

Для этого в Fред. введём фиктивную ФЗ ANSMD1D2P1P2T ? X. После этого

Fред. редуцируем, просматривая ФЗ в произвольном порядке:

Fред = { P1? P2, A? ND2, AD1? P1S, SN ? TM, D1D2P1 ? A, ANSMD1D2P1P2T ? X }.

Следовательно, ключ - AD1D2. Здесь есть ещё один ключ: D1D2P1.

  1. Разложение множества атрибутов по функциональным зависимостям.

Выполним синтаксическое разложение R по ФЗ из Fред.. В результате имеем:

?={R1 (P1 P2), R2 (A ND2), R3 (AD1 P1S), R4 (SN TM), R5 (AD1D2P1)}.

  1. Прогонка табло.

    P1 P2

    A ND2

    AD1P1S

    SN TM

    AD1D2P1

    a1

    b19

    a1


    a2


    b20


    a2


    b10

    b14

    a3


    b15

    a4


    a5

    b16

    a6

    a7

    b21

    a4


    b22

    b23

    b17

    a8


    b18

    a9


    a7

    a8


    a9


    b28

    a9



    b24

    a3



    b25

    a4


    a5


    a6


    b26

    a7


    b27

    a8


Проверим свойство соединения без потерь методом прогонки табло.







КГАЦМиЗ. УП000.069.ПЗ

Лист






13

Изм.

Лист

№ докум.

Подпись

Дата


Метод прогонки табло завершился успешно, т. к. в табло имеются две строки выделенных переменных (3 и 5 строки) .Это означает, что ? обладает свойством соединения без потерь и не будет ловушек соединений (ответы на запросы будут всегда верны).

код пилота – командира экипажа

Ф.И.О.

пилота

P1

P2

номер рейса

пункт назначения

время вылета

A

N

D2

6. Результаты синтеза.

Таким образом результатом синтеза является B- схема, которая имеет вид:

?={R1 (P1 P2), R2 (A ND2), R3 (AD1 P1S), R4 (SN TM), R5 (AD1D2P1)}.

Данная схема по построению сохраняет все ФЗ из F и обладает свойством соединения без потерь. Это гарантирует для БД ее непротиворечивость. Семантика таблиц базы данных со схемой ? такова:

r1(R1 ) – Список пилотов






r2(R2 ) – Характеристика рейсов







r3(R3 ) – График полётов


номер рейса

дата вылета

код пилота –

командира экипажа

тип самолета

A

D1

P1

S


r4(R4 ) –Характеристика маршрутов


тип самолета

пункт назначения

длительность полета

количество посадочных мест

S

N

T

M

r5(R5 )– График загрузки пилотов

номер рейса

дата вылета

время вылета


код пилота –

командира экипажа

A

D1

D2

P1








КГАЦМиЗ. УП000.069.ПЗ

Лист






14

Изм.

Лист

№ докум.

Подпись

Дата


Проверка нормальной формы для ?= {R1, R2, R3, R4, R5}

F1 ={P1? P2} ------------------------- r1(R1) – в НФБК.

F2 ={A? ND2}----------------------- r2 (R2) – в НФБК

F3 ={AD1? P1S } -------------------- r3(R3) – в НФБК.

F4 = {SN ? TM } -------------------- r4(R4) – в НФБК.

F5 = { D1D2P1 ? A, AD1? P1}----- r5(R5) – в 3 нормальной форме. Так как AD1? P1 частичная функциональная зависимость, AD1 – часть ключа AD1D2, в правой части данной зависимости имеется ключевой атрибут P1.

В таблице график загрузки пилотов r5(R5 ) возможно избыточное дублирование данных, так как она находится в 3 нормальной форме, в связи с этим её нужно аккуратно обновлять, чтобы не допустить избыточности. Все остальные таблицы в НФБК, следовательно, в них нет избыточного дублирования данных.










КГАЦМиЗ. УП000.069.ПЗ

Лист






15

Изм.

Лист

№ докум.

Подпись

Дата




ЗАКЛЮЧЕНИЕ

Группой студентов был разработан программный продукт для автоматизации проектирования реляционных баз данных. Он основан на применении алгоритмов построения схемы базы данных с использованием функциональных зависимостей, описывающих заданную предметную область. Данная программа может быть использована в учебном процессе по дисциплине «Базы и банки данных» для наглядного изучения способов и приёмов проектирования баз данных.







КГАЦМиЗ. УП000.069.ПЗ

Лист






19

Изм.

Лист

№ докум.

Подпись

Дата


© Рефератбанк, 2002 - 2024