МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
КРАСНОЯРСКАЯ ГОСУДАРСТВЕННАЯ АКАДЕМИЯ ЦВЕТНЫХ МЕТАЛЛОВ И ЗОЛОТА
Кафедра ПМ и АСУ
Группа ИС-01-1
Дисциплина Базы и банки знаний
Пояснительная записка
к курсовой работе
Тема: Автоматизация проектирования реляционных баз данных: синтез В-схемы
Студенты: __________________________________/Булахов А.С./
/Павлов К.А./
/Засыпалов И.Ю./
/Зырянов Д.Ф./
Руководитель работы:________________________ /Быкова В.В./
Красноярск 2004
СОДЕРЖАНИЕ Введение…………………………………………………………..…………3
Заключение…………………………………………………………………19 Список литературы………………………………………………………...20 Приложение. Текст программы
|
||||||
|
|
|
|
|
КГАЦМиЗ. УП000.069.ПЗ |
Лист |
|
|
|
|
|
2 |
|
Изм. |
Лист |
№ докум. |
Подпись |
Дата |
ВВЕДЕНИЕ Данная курсовая работа служит закреплением практических и теоретических знаний, полученных при изучении дисциплины “Базы и банки знаний”. Цели работы:
|
||||||
|
|
|
|
|
КГАЦМиЗ. УП000.069.ПЗ |
Лист |
|
|
|
|
|
3 |
|
Изм. |
Лист |
№ докум. |
Подпись |
Дата |
Известно, что база данных (БД) – динамически обновляемая информационная модель предметной области, а процесс её проектирования – процесс моделирования предметной области. Результатом моделирования предметной области является, прежде всего, логический проект БД – схема БД. В рамках реляционного подхода схема БД дает ответы на следующие вопросы:
Физическое проектирование БД – доводка логического проекта с учетом особенностей выбранной СУБД и требований к эксплуатационным характеристикам БД. Эта доводка включает в себя такие действия:
Ясно, что основная задача проектировщика БД – получение хорошего логического проекта БД. Исходными данными для решения этой задачи являются:
Прежде чем приступить к выработке проектных решений по структуризации данных требуется выразить (описать) семантическую структуру предметной области. Для этих целей существует несколько систем нотаций (систем условных обозначений, языков). Наиболее распространённые системы нотаций:
Научиться синтезировать схему реляционной БД, исходя из F – описания – основная цель данной курсовой работы. Рассмотрим проблемы, возникающие при синтезе схемы БД и алгоритмические способы решения этих проблем.
|
||||||
|
|
|
|
|
КГАЦМиЗ. УП000.069.ПЗ |
Лист |
|
|
|
|
|
4 |
|
Изм. |
Лист |
№ докум. |
Подпись |
Дата |
Проблема 1 – неизбыточность представления F-описания. Для всякой предметной области можно построить несколько эквивалентных F-описаний. Можно ли, опираясь на некоторое исходное F-описание заданной предметной области, найти для F эквивалентное неизбыточное представление – представление, лишенное избыточных ФЗ и посторонних атрибутов? Ответ положительный, для этого существуют соответствующие алгоритмы «чистки» F-описания. «Чистка» исходного F-описания выполняется в два этапа:
Множество ФЗ Fред. не всегда является самым экономным (оптимальным) представлением семантической структуры предметной области. Тем не менее, использование Fред. для синтеза схемы БД обеспечивает в достаточной мере неизбыточность получаемой БД. Проблема 2 – оценка качества проектных решений. Известно, что к организации БД предъявляются три требования (правило «Три НЕ»): неизбыточность, непротиворечивость, независимость. Последнее из них – независимость данных от приложений достигается в основном средствами СУБД. Неизбыточность и непрворечивость БД можно обеспечить путём выбора подходящей схемы БД. В теории нормализации доказано, что БД будет неизбыточной и средствами СУБД можно достичь её непротиворечивого состояния, если её схема будет эффективной относительно заданного F-описания предметной области. Пусть R – множество имен атрибутов, значения которых требуется хранить в БД, и F – множество ФЗ, описывающих связи между атрибутами. Схема БД над R называется эффективной относительно F, если
|
||||||
|
|
|
|
|
КГАЦМиЗ. УП000.069.ПЗ |
Лист |
|
|
|
|
|
5 |
|
Изм. |
Лист |
№ докум. |
Подпись |
Дата |
к(К) = к1(К1) к2(К2) … кь(Кь) 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 Разработка и отладка
Решение вручную практической задачи согласно варианту.
Исполнитель 3 Задание 3 Разработка и отладка:
Решение вручную практической задачи согласно варианту. Оформление пояснительной записки, материалы к которой предоставляют все другие исполнители. Исполнитель 4 Задание 4 Разработка и отладка:
Решение вручную практической задачи согласно варианту. Координация, планирование и контроль исполнения заданий.
|
||||||
|
|
|
|
|
КГАЦМиЗ. УП000.069.ПЗ |
Лист |
|
|
|
|
|
8 |
|
Изм. |
Лист |
№ докум. |
Подпись |
Дата |
НАЗВАНИЕ ПОЛЯ ТИП ПОЛЯ Атрибуты ФЗ Левая часть ФЗ Правая часть ФЗ Строковый Массив множеств Множество Множество
2.1. ВХОДНЫЕ И ВЫХОДНЫЕ ДАННЫЕ Входными данными в пакете программ являются:
Внутренне представление данных указано в табл. 1.
В процессе работы пакета программ формируется В – схема с указанием ключей для каждой таблицы БД.
2.2. СОСТАВ И ФУНКЦИИ ПАКЕТА ПРОГРАММ Пакет реализован на языке Object Pascal в объектно-ориентированной среде Delphi 7.0, которая предоставляет широкий набор средств, позволяющих быстро и эффективно разрабатывать программы, предназначенные для создания и обслуживания Базы данных. Процедуры и функции пакета программ представлены в таблице 2. Таблица 2
|
||||||||||||||||||
|
|
|
|
|
КГАЦМиЗ. УП000.069.ПЗ |
Лист |
||||||||||||
|
|
|
|
|
9 |
|||||||||||||
Изм. |
Лист |
№ докум. |
Подпись |
Дата |
2.3. ЭКСПЛУТАЦИОННЫЕ ХАРАКТКРИСТИКИ И ОСОБЕННОСТИ ПАКЕТА Для функционирования пакета программ требуются технические средства:
|
||||||
|
|
|
|
|
КГАЦМиЗ. УП000.069.ПЗ |
Лист |
|
|
|
|
|
10 |
|
Изм. |
Лист |
№ докум. |
Подпись |
Дата |
2.3. РЕШЕНИЕ ПРАКТИЧЕСКОЙ ЗАДАЧИ ВРУЧНУЮ Состав атрибутов практической задачи приведён в табл. 3 Таблица 3
Описание предметной области на языке ФЗ приведено в табл. 4. Таблица 4
|
||||||||||||||||||||||||||||||||||
|
|
|
|
|
КГАЦМиЗ. УП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 – длительность полета зависит от номера рейса, даты вылета. Решение:
Для построения неизбыточного покрытия необходимо удалить избыточные ФЗ. Для этого вычислим замыкания для каждой ФЗ: (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 |
|||||||||||||||||||||||||||||
Изм. |
Лист |
№ докум. |
Подпись |
Дата |
Для построения редуцированного покрытия необходимо из левых и правых частей ФЗ удалить посторонние атрибуты. Редуцирование левых частей: 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}.
Для этого в Fред. введём фиктивную ФЗ ANSMD1D2P1P2T ? X. После этого Fред. редуцируем, просматривая ФЗ в произвольном порядке: Fред = { P1? P2, A? ND2, AD1? P1S, SN ? TM, D1D2P1 ? A, ANSMD1D2P1P2T ? X }. Следовательно, ключ - AD1D2. Здесь есть ещё один ключ: D1D2P1.
Выполним синтаксическое разложение R по ФЗ из Fред.. В результате имеем: ?={R1 (P1 P2), R2 (A ND2), R3 (AD1 P1S), R4 (SN TM), R5 (AD1D2P1)}.
Проверим свойство соединения без потерь методом прогонки табло. |
||||||
|
|
|
|
|
КГАЦМиЗ. УП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 ) – График полётов
r4(R4 ) –Характеристика маршрутов
r5(R5 )– График загрузки пилотов
|
||||||||||||||||||||||||
|
|
|
|
|
КГАЦМиЗ. УП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 |
|
Изм. |
Лист |
№ докум. |
Подпись |
Дата |