Реляционная база данных
Введение
Требования к БД:
- разработка в среде Access;
- иерархическое меню с запрещением выбора
отдельных позиций при определённых условиях, например доступ по паролю;
- редактирование данных;
- запросы (формулировка запросов на русском
языке и на языке SQL;
- использование форм и форм с подчинёнными
результатами запросов;
- использование отчётов для вывода данных и
результатов запросов;
- реализация отношения 1 : М или М : М между
таблицами;
- обеспечение целостности данных с установкой
каскадного обновления и каскадного удаления данных;
выдавать на экран при необходимости не
системные, а собственные сообщения
обеспечить защиту данных от ошибочных действий
пользователя;
Постановка задачи:
Необходимо спроектировать СУБД независимого
концептуального представления данных и ориентированного реляционного
концептуального представления данных, после чего реализовать полученную БД в
среде MS
Access.
. Проектирование Базы Данных
Предметная Область: Автомобильные соревнования
Предметная область предполагает следующие
сущности:
Автомобили
Ø НазваниеАвтомобиля
Ø Страна
Ø Дата Выпуска
Ø Объём Двигателя, л
Ø Мощность, л/с
Ø Разгон до 100 км/ч
Соревнования
Ø Названиетурнира
Ø Страна
Ø Дата Начала
Ø Призовой Фонд
Ø Кол-во кругов
Ø Организатор
Ø website
Участники Заездов
Ø НазваниеАвтомобиля
Ø Название Турнира
Ø Место
Ø Максимальная скорость
Ø Минимальное время круга
Страны
Ø Страна
Ø Рейтинг Страны
Ø Адрес Федерации
Организаторы
Ø Организатор
Ø Деятельность
Ø Адрес
Пользовательские представления данных
Выбор Пользователей с разными правами Доступа:
В Данной Базе Данных имеются два пользователя:
Пользователь
- Может просматривать содержание таблиц, производить поиск, выаодить отчёты и
вводить данные в таблицы
Администратор
- При доступе к данным должен ввести пароль "555". Администратор
может: просматривать информацию об автомобилях, соревнованиях, странах,
участников заездов и организаторов; выводить отчёты по участникам заездов,
производить поиск информации в таблицах; редактировать информацию, что включает
в себя ввод данных, удаление данных и корректировку данных об автомобилях,
соревнованиях, странах, участниках заездов и организаторах.
. Проектирование реляционной реализации
Определение Входных данных
Множество атрибутов U:
A
-
НазваниеАвтомобиля
B - Дата Выпуска
C - Страна
D - Объём Двигателя
E - Мощность
F - Разгон до
100км/ч
G - НазваниеТурнира
I - Дата Начала
J - Призовой Фонд
K - Кол-во Кругов
L - Организатор
M - website
N - Место
O - Максимальная
Скорость
P - Минимальное
время круга
R - Рейтинг Страны
S - Деятельность
T - Адрес
Определим сущности и первичные ключи:
Автомобили (НазваниеАвтомобиля,…)
Соревнования (НазваниеТурнира,…)
Участники Заездов (НазваниеАвтомобиля,
НазваниеТурнира,…)
Страна (Страна,…)
Организатор (Органищатор,…)
Проектирование реляционной реализации
концептуальной схемы
Метод Синтеза:
U = {A
B C
D F
G I
J K
L M
N O
P Q
R S
T}
F = {A
à BCDEF,
G à
IJCKLM, AG
à NOP,
C à
QR, M
à ST}
Шаг 1: Построим Расширенное множество
A+=ABCDEFQR
AG+=AGNOPBCDEFIJKLMQRST
G+=GIJCKLMQRST C+=CQR+=MST
= {A à
BCDEFQR, G à IJCKLMQRST, AG à
NOPBCDEFKIJKLMQRST, C à
QR, M à ST}
Шаг 2: условно не избыточное расширенное
множество
{A
à BCDEFQR,
G à
IJCKLMQRST, AG
à NOPBCDEFKIJKLMQRST,
C à
QR, M
à ST}
Шаг 3: Есть зависимость с полным набором
атрибутов поэтому ничего не добавляем
Шаг 4: Все Зависимости элементарны
Шаг 5: Проранжируем полученные зависимости
X à
Y
|
XY
|
rang
|
A à
BCDEFQR
|
ABCDEFQR
|
3
|
G à
IJCKLMQRST
|
GIJCKLMQRST
|
2
|
AG à
NOPBCDEFKIJKLMQRST
|
AGNOPBCDEFIJKLMQRST
|
1
|
C à
QR
|
CQR
|
4
|
M à
ST
|
MST
|
5
|
Шаг 6: Построим ранжированную диаграмму
зависимостей:
Шаг 7: Выполним Транзитивную редукцию
зависимостей
Шаг 8: Определим Декомпозиционные подсхемы и их
первичные ключи
R1 = AGNOP,
c ключом К1=AG
R2 = GIJCKLM,
c ключом К2=G
R3 = ABCDEF,
c ключом К3=A
R4 = CQR,
c ключом К4=C
R5 = MST,
c ключом К5=M
Полученная Схема БД находиться в НФБК, так как,
по определению НФБК, необходимо чтобы в левой части каждой зависимости подсхемы
стоял первичный ключ или возможный ключ и она находилась в 3НФ, и это
требование выполняется:
F1 = π
AGNOP (F)
= ᴓ
F2 = π
GIJCKLM (F)
= {G à
IJCKLM}
F3 = π
ABCDF (F)
= {A à
BCDEF}
F4 = π
CQR (F)
= {C à
QR}
F5 = π
MST (F)
= {M à
ST}
Проверка свойства соединения без потерь:
U = {A B C D F G I J K L M N O P Q R
S T}= {A à BCDEF, G à
IJCKLM, AG à NOP, C à
QR, M à ST}= {AGNOP,
GIJCKLM, ABCDEF, CQR, MST}
|
A
|
B
|
C
|
D
|
E
|
F
|
G
|
I
|
J
|
K
|
L
|
M
|
O
|
P
|
Q
|
R
|
S
|
T
|
AGNOP
|
a
|
a
|
a
|
a
|
a
|
a
|
a
|
a
|
a
|
a
|
a
|
a
|
a
|
a
|
a
|
a
|
a
|
a
|
a
|
GIJCKLM
|
|
|
a
|
|
|
|
a
|
a
|
a
|
a
|
a
|
a
|
|
|
|
|
|
|
|
ABCDEF
|
a
|
a
|
a
|
a
|
a
|
a
|
|
|
|
|
|
|
|
|
a
|
a
|
a
|
|
|
CQR
|
|
|
a
|
|
|
|
|
|
|
|
|
|
|
|
|
a
|
a
|
|
|
MST
|
|
|
|
|
|
|
|
|
|
|
|
a
|
|
|
|
|
|
a
|
a
|
Перепишем подсхемы в терминах реальных данных:
R1: Участники
Заездов (НазваниеАвтомобиля, НазваниеТурнира, Место, Максимальная
Скорость, Минимальное Время Круга)
R2: Турнир (НазваниеТурнира,
Страна, Дата Начала, Призовой Фонд, Кол-во Кругов, Организатор, Вебсайт)
R3: Автомобиль (НазваниеАвтомобиля,
Дата Выпуска, Страна, Объём двигателя, Мощность, Разгон до 100 км/ч )
R4: Страна(Страна,
Рейтинг Страны, Адрес Федерации)
R5: Организатор(Организатор,
Деятельность, Адрес)
Метод ER-диаграмм:
Определим связи между сущностями, а также укажем
тип связи, класс принадлежности сущности и правила, по которым следует строить
отношения:
Автомобиль (М, О) выступает_за (1,Н) Страну
(правило 4)
Турнир (М,Н) организуется (1, Н) Организатором
(правило 5)
Турнир (М,О) проводится_в (1,Н) Стране (Правило
4)
Автомобиль (М,Н) участвует_в (М,Н) Турнире
(правило 6)
Формируем набор предварительных отношений,
руководствуясь указанными выше правилами:
. Для связи выступает_за:
Автомобиль (НазваниеАвтомобиля, Страна…)
Страна(Страна,…)
Отношение добавлено по правилу 4.
. Для связи организуется:
Организатор (Организатор,…)
Отношение добавлено по правилу 5.
. Для связи проводится_в:
Турнир (НазваниеТурнира, Страна,..)
Страна (Страна,..)
Отношение добавлено по правилу 4.
. Для связи участвует_в:
Автомобиль (НазваниеАвтомобиля, Страна,…)
Турнир (Название_Турнира, Страна, Организатор,…)
Автомобиль_Турнир (НазваниеАвтомобиля,
НазваниеТурнира,…)
Добавленно по правилу 6.
Получаем Предварительный Набор
Отношений:
Автомобиль (НазваниеАвтомобиля, Страна,…)
Турнир (НазваниеТурнира, Страна, Организатор,…)
Страна (Страна,…)
Организатор (Организатор,…)
Автомобиль_Турнир (НазваниеАвтомобиля,
НазваниеТурнира,…)
С неключевыми атрибутами:
Турнир (Название_Турнира, Страна, ДатаНачала,
Призовой Фонд, Кол-во Кругов, Организатор, Вебсайт)
Автомобиль (НазваниеАвтомобиля, Страна, Год
Выпуска, Объём двигателя, Мощность, Разгон до 100 км/ч)
Страна (Страна, Рейтинг Страны, Адрес Федерации)
Организатор (Организатор, Деятельность, Адрес )
Автомобиль_Турнир (НазваниеАвтомобиля,
НазваниеТурнира,…)
Проверим находиться ли, полученная схема БД в
Нормальной Форме Боеса-Кодда:
R1: GIJCKLM
R2: ABCDEF
R3: CQR
R4: MST
R5: AG
F1 = π
GICKLM (F) = {G à IJCKLM} = π
ABCDEF (F) = {A à BCDEF}= π
CQR (F) = {C à QR}= π
MST (F) = {M à ST}5
= π AG
(F) = ᴓ
Проверка Свойств Связности:
ABCDEFGIJKLMNOPQRST
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GIJCKLM
|
|
|
a
|
|
|
|
a
|
a
|
a
|
a
|
a
|
a
|
|
|
|
a
|
a
|
a
|
a
|
ABCDEF
|
a
|
a
|
a
|
a
|
a
|
a
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CQR
|
|
|
a
|
|
|
|
|
|
|
|
|
|
|
|
|
a
|
a
|
|
|
MST
|
|
|
|
|
|
|
|
|
|
|
|
a
|
|
|
|
|
|
a
|
a
|
AG
|
a
|
a
|
a
|
a
|
a
|
a
|
a
|
a
|
a
|
a
|
a
|
|
|
|
a
|
a
|
a
|
a
|
В Результате Проверки мы обнаружили что три
атрибута N, O,
P остались без связи
В Итоге, после проведения стадии Проектирования,
искомая База Данных была построена по Методу Синтеза
. Реализация базы данных на СУБД Microsoft
Office Access
реляционный пользовательский
интерфейс
Структура таблиц
Автомобили:
Соревнования:
Участники Заездов:
Организатор:
Страна:
Схема Данных:
Проектирование Пользовательского Интерфейса:
В Данной Базе Данных существует главная форма,
из которой, при вводе соответсвующих идентификаторов, можно попасть в области
различного доступа (Пользователь, Администратор). Доступ к пользовательской
записи осуществляется по нажатию кнопки. Также на форме расположена кнопка
выхода из БД.
Форма Выбор_Пользователя влечет за собой две
дочерние формы меню: Пользователь, Администратор.
Форма Пользователь имеет ограниченные права. Она
влечёт 2 формы: Поиск и Просмотр. Они предоставляют возможность на просмотр
таблиц и поиск информации. Все формы доступны из кнопочного меню родительской
формы.
Форма Администратор обеспечивает полный доступ к
данным. Она влечёт за собой 5 форм: Просмотр, Поиск, Удаление, Редактирование,
Добавление.
Рассмотрим Пример работы БД с пояснениями:
Здесь происходит Выбор режима, в котором в
дальнейшем будет вестись работа с базой данных
Далее перед нами открывается форма ввода пароля.
Правильно введя пароль мы перейдём к следующей
форме (кнопочной) Администратора
После открытия этой формы мы можем продолжить
нашу дальнейшую работу с БД исходя из предложенного меню.
Пример Запроса:
Пример Макроса:
Контрольный Пример:
. В Самом Начале открывается Форма
Выбор_Пользователя, в котором мы выбираем режим в котором будем работать.
. Предположим что мы выбрали режим
«Администратор» Перед Нами Открылась форма проверки Пароля Администратора.
. После того как мы ввели пароль перед
нами открылось меню Кнопочной Формы. Выбираем Пункт «Редактирование»
.
. После этого появилось меню
редактирование где пользователю предлагается выбрать параметр который подлежит
редактированию.
. Перед Нами Открылась Форма
Редактирования Таблицы «Автомобили». Выбираем автомобиль с названием BMW
M3 GTS
и меняем мощность с 600 л/с на 720 л/с. После внесения изменений нажимаем
кнопку НАЗАД и возвращаемся в меню просмотра чтобы проверить результат.
Руководство пользователя
. Начало работы с базой данных начинается с
открытия формы Выбор_Пользователя
. Далее следует выбрать пользователя.
· Если Вы хотите зайти как
Пользователь для поиска или просмотра параметров по базе, просмотра таблиц и
отчетов, то выбирайте «Пользователь»
· Если Вы хотите зайти для
редактирования любой информации в базе данных, то выбирайте «Администратор».
Потребуется ввести пароль («555»).
. После входа Вам доступно меню возможных
действий:
· Просмотр, Поиск, Удаление,
Редактирование, Добавление ( «администратор»)
· Просмотр и Поиск («покупатель»)
. Для смены пользователя или выхода из
базы необходимо нажать кнопку «Назад».
6. Для выхода из базы данных нажмите кнопку
«Выход». Все изменения автоматически сохраняются
. При закрытии формы все внесенные изменения
автоматически сохраняются.
Заключение