Автор работы: Пользователь скрыл имя, 01 Декабря 2013 в 23:23, курсовая работа
Базы данных - совокупность данных, организованная по определенным правилам, предусматривающая общие принципы описания, хранения, манипулирования данными, независимыми от прикладных программ.
СУБД – система управления базами данных – совокупность программ, предназначенных для управления БД и возможности получения пользователями необходимой информации из базы.
Введение………………………………………………………...……………..4
Виды запросов в информационной системе .…………………………....…..5
Основная часть………………………….………….…………….…….…...…6
Проектирование БД ……………………….………………….…..…….. …..6
ER-схема, сущности и их атрибуты.….……………...……………….……7-9
Проверка таблиц БД на соответствие 3НФ ……………………....……..9-11
Структурная схема базы данных ………..………….…………….……….12
Разработка запросов в БД на языке SQL и их реализация……….……13-21
Заключение ………………………………………..……….……….…..…..22
Список использованных источников ……………………...…….……..…23
Организаторы (ид_Организатора, Организатор)
1НФ – все значения атомарные;
2НФ – все не ключевые
атрибуты функционально
3НФ – отсутствуют транзитивные зависимости.
Все таблицы находятся в 3НФ, следовательно БД находится в 3НФ. [1]
Рисунок 2. Структурная схема базы данных
РАЗРАБОТКА ЗАПРОСОВ В БД НА ЯЗЫКЕ SQL
Достаточно часто необходимо на основе данных, хранящихся в таблицах, проводить вычисления или просматривать данные из нескольких таблиц. Выбрать нужные данные можно с помощью запросов.
При выполнении созданного запроса-выборки (который отбирает информацию из таблиц и других запросов БД), в отличие от запроса-действия, при выполнении которого вставляются, обновляются или удаляются данные, создает набор записей, содержащий выбранные данные. В большинстве случаев можно работать с этим набором данных точно так же, как с таблицей: можно просматривать и выбирать информацию, печатать и даже обновлять данные. Однако в отличие от реальной таблицы, этот набор записей физически не существует в БД. Access создает набор записей из данных таблиц и других запросов только во время выполнения определенного запроса. Если изменять данные в наборе записей, то Access вносит соответствующие изменения в таблицы, на базе которых построен запрос.
Запросы являются наилучшим способом выделения именно тех данных, которые необходимы для решения определенной задачи. Удобно использовать запросы при создании форм и отчетов.
Любой запрос в Microsoft Access реализуется с помощью языка SQL. Хотя большинство запросов можно создать, пользуясь графическими возможностями QBE (запроса по образцу), но и в этом случае каждый созданный запрос будет храниться в виде инструкции SQL.
РЕАЛИЗАЦИЯ ЗАПРОСОВ В БД НА ЯЗЫКЕ SQL
Ниже представлена реализация запросов в виде словесного описания, листинга и иллюстрации результата запроса. Всего запросов 13. Практически все словесные описания предполагают несколько вариантов каждого из 13 запросов, поэтому, в наименовании запроса, после его номера идет словесное описание варианта:
Запрос1_Бассейны по Кол-ву дорожек
Листинг 1.1:
SELECT ССооружения.Название, ТипСС.ТипСС, Бассейн.КолДорожек
FROM (ССооружения
INNER JOIN ТипСС ON ССооружения.ид_ТипСС=ТипСС.ид_
GROUP BY ССооружения.Название, ТипСС.ТипСС, Бассейн.КолДорожек
HAVING Бассейн.КолДорожек=[Введите_
ORDER BY ССооружения.Название;
Результат:
Запрос1_ССооруженияУказТипа
Листинг 1.2:
SELECT ССооружения.Название, ТипСС.ТипСС
FROM ССооружения
INNER JOIN ТипСС ON ССооружения.ид_ТипСС=ТипСС.ид_
GROUP BY ССооружения.Название, ТипСС.ТипСС
HAVING ТипСС.ТипСС=[Введите тип СпортСооружения:]
ORDER BY ССооружения.Название;
Результат:
Запрос2_ВидСпортаСпортсмены
Листинг 2.1:
SELECT Спортсмены.ФИО, ВидыСпорта.ВидСпорта
FROM Спортсмены
INNER JOIN ВидыСпорта ON Спортсмены.ид_ВидСпорта=
GROUP BY Спортсмены.ФИО, ВидыСпорта.ВидСпорта
HAVING ВидыСпорта.ВидСпорта=[
ORDER BY Спортсмены.ФИО;
Результат:
Запрос2_
Листинг 2.2:
SELECT Спортсмены.ФИО, ВидыСпорта.ВидСпорта, Спортсмены.Разряд
FROM Спортсмены
INNER JOIN ВидыСпорта ON Спортсмены.ид_ВидСпорта=
WHERE (ВидыСпорта.ВидСпорта=[
Результат:
Запрос3_СпортсменыУказТренера
Листинг 3.1:
SELECT Спортсмены.ФИО, Тренеры.ФИО
FROM Спортсмены INNER JOIN Тренеры ON Спортсмены.ид_Тренера=Тренеры.
WHERE Тренеры.ФИО=[
Результат:
Запрос3_
Листинг 3.2:
SELECT Спортсмены.ФИО, Спортсмены.Разряд, Тренеры.ФИО
FROM Спортсмены INNER JOIN Тренеры
ON Спортсмены.ид_Тренера=Тренеры.
WHERE Тренеры.ФИО=[
Результат:
Запрос4_
Листинг 4.1:
SELECT Спортсмены.ФИО, count(ВидыСпорта.ВидСпорта)
FROM Спортсмены INNER JOIN ВидыСпорта
ON Спортсмены.ид_ВидСпорта=
GROUP BY Спортсмены.ФИО
HAVING count(*)>1;
Запрос5_ТренерыСпортсмена
Листинг 5.1:
SELECT Спортсмены.ФИО, Тренеры.ФИО
FROM Тренеры INNER JOIN Спортсмены
ON Спортсмены.ид_Тренера=Тренеры.
WHERE Спортсмены.ФИО=[
Результат:
Запрос6_СоревнованияПоВремени
Листинг 6.1:
SELECT Соревнования.Название, Соревнования.ДатаПроведения
FROM Соревнования
GROUP BY Соревнования.Название, Соревнования.ДатаПроведения
HAVING ДатаПроведения BETWEEN [ВведитеНачДату] AND [ВведитеКонДату];
Результат:
Запрос6_
Листинг 6.2:
SELECT Организаторы.Организатор, Соревнования.Название
FROM Организаторы INNER JOIN Соревнования
ON Организаторы.ид_Организатора=
WHERE Соревнования.ДатаПроведения BETWEEN [ВведитеНачДату] AND [ВведитеКонДату]
GROUP BY Организаторы.Организатор, Соревнования.Название
HAVING Организаторы.Организатор=[
Результат:
Запрос7_ПризерыСоревнования
Листинг 7.1:
SELECT Соревнования.Название, Спортсмены.ФИО
FROM Соревнования INNER JOIN Спортсмены ON Соревнования.ид_Участника=
WHERE Соревнования.Призер="Да"
GROUP BY Соревнования.Название, Спортсмены.ФИО
HAVING Соревнования.Название=[
Результат:
Запрос8_1_
Листинг 8.1:
SELECT Соревнования.Название, ССооружения.Название
FROM Соревнования INNER JOIN ССооружения
ON Соревнования.ид_СС=
WHERE ССооружения.Название=[
GROUP BY Соревнования.Название, ССооружения.Название;
Результат:
Запрос8_
Листинг 8.2:
SELECT Соревнования.Название, ССооружения.Название, ВидыСпорта.ВидСпорта
FROM (Соревнования INNER JOIN ВидыСпорта
ON Соревнования.ид_ВидСпорта=
WHERE ВидыСпорта.ВидСпорта=[
GROUP BY Соревнования.Название, ССооружения.Название, ВидыСпорта.ВидСпорта;
Результат:
Запрос9_
Листинг 9.1:
SELECT Спортклубы.Название, COUNT(Спортсмены.ФИО)
FROM (СпортКлубы INNER JOIN Спортсмены
ON СпортКлубы.ид_СпортКлуба=
WHERE Соревнования.ДатаПроведения BETWEEN [ВведитеНачПериода:] AND [ВведитеКонПериода:]
GROUP BY Спортклубы.Название;
Результат:
Запрос10_ТренерыПоВидуСпорта
Листинг 10.1:
SELECT Тренеры.ФИО, Тренеры.ДатаРождения
FROM Тренеры INNER JOIN ВидыСпорта
ON ВидыСпорта.ид_ВидСпорта=
WHERE ВидыСпорта.ВидСпорта=[
Результат:
Запрос11_СпортсменыНеУчВСорев
Листинг 11.1:
SELECT Спортсмены.ФИО
FROM Спортсмены INNER JOIN Соревнования
ON Спортсмены.ид_Спортсмена=
WHERE Соревнования.ДатаПроведения NOT BETWEEN [ВведитеНачПериода:] AND [ВведитеКонПериода:]
GROUP BY Спортсмены.ФИО;
Результат:
Запрос12_ОгранизИКол-воСорев
Листинг 12.1:
SELECT DISTINCT Организаторы.Организатор, Соревнования.Название
FROM Организаторы INNER JOIN Соревнования
ON Организаторы.ид_Организатора=
WHERE Соревнования.ДатаПроведения BETWEEN [ВведитеНачДату] AND [ВведитеКонДату]
GROUP BY Организаторы.Организатор, Соревнования.Название;
Результат:
Запрос13_
Листинг 13.1:
SELECT ССооружения.Название, Соревнования.ДатаПроведения
FROM Соревнования INNER JOIN ССооружения
ON Соревнования.ид_СС=
WHERE Соревнования.ДатаПроведения BETWEEN [ВведитеНачДату] AND [ВведитеКонДату]
GROUP BY ССооружения.Название, Соревнования.ДатаПроведения;
Результат:
ЗАКЛЮЧЕНИЕ
В результате анализа предметной области был составлен список необходимых атрибутов, построен набор необходимых отношений, выполнено их приведение к третьей нормальной форме, а также, построена схема базы данных, спроектированы запросы на языке SQL и, после заполнения спроектированной базы данных проверочными данными, произведена проверка правильности их выполнения.
Техническое задание к курсовой работе по разработке базы данных для информационной системы торговой организации оформлено в соответствии с [ГОСТ 7.32-2001] и выполнено в полном объёме.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
Информация о работе База данных спортивных сооружений города