База данных спортивных сооружений города

Автор работы: Пользователь скрыл имя, 01 Декабря 2013 в 23:23, курсовая работа

Описание работы

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

Содержание работы

Введение………………………………………………………...……………..4
Виды запросов в информационной системе .…………………………....…..5
Основная часть………………………….………….…………….…….…...…6
Проектирование БД ……………………….………………….…..…….. …..6
ER-схема, сущности и их атрибуты.….……………...……………….……7-9
Проверка таблиц БД на соответствие 3НФ ……………………....……..9-11
Структурная схема базы данных ………..………….…………….……….12
Разработка запросов в БД на языке SQL и их реализация……….……13-21
Заключение ………………………………………..……….……….…..…..22
Список использованных источников ……………………...…….……..…23

Файлы: 1 файл

Курсовик1.docx

— 578.99 Кб (Скачать файл)

 

Организаторы (ид_Организатора, Организатор)

1НФ – все значения  атомарные;

2НФ – все не ключевые  атрибуты функционально полностью  зависят от ключа;

3НФ – отсутствуют  транзитивные зависимости.

 

Все таблицы находятся  в 3НФ, следовательно БД находится в 3НФ. [1]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 2. Структурная схема базы данных

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

РАЗРАБОТКА  ЗАПРОСОВ В БД НА ЯЗЫКЕ SQL

 

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

При выполнении созданного запроса-выборки (который  отбирает информацию из таблиц и других запросов БД), в отличие от запроса-действия, при выполнении которого вставляются, обновляются или удаляются данные, создает набор записей, содержащий выбранные данные. В большинстве случаев можно работать с этим набором данных точно так же, как с таблицей: можно просматривать и выбирать информацию, печатать и даже обновлять данные. Однако в отличие от реальной таблицы, этот набор записей физически не существует в БД. Access создает набор записей из данных таблиц и других запросов только во время выполнения определенного запроса. Если изменять данные в наборе записей, то Access вносит соответствующие изменения в таблицы, на базе которых построен запрос.

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

Любой запрос в Microsoft Access реализуется с помощью языка SQL. Хотя большинство запросов можно создать, пользуясь графическими возможностями QBE (запроса по образцу), но и в этом случае каждый созданный запрос будет храниться в виде инструкции SQL.

 

РЕАЛИЗАЦИЯ  ЗАПРОСОВ В БД НА ЯЗЫКЕ SQL

 

Ниже представлена реализация запросов в виде словесного описания, листинга и иллюстрации  результата запроса. Всего запросов 13. Практически все словесные описания предполагают несколько вариантов каждого из 13 запросов, поэтому, в наименовании запроса, после его номера идет словесное описание варианта:

 

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

Запрос1_Бассейны по Кол-ву дорожек

Листинг 1.1:

SELECT ССооружения.Название, ТипСС.ТипСС, Бассейн.КолДорожек

FROM (ССооружения INNER JOIN ТипСС ON ССооружения.ид_ТипСС=ТипСС.ид_ТипСС) INNER JOIN Бассейн ON ССооружения.ид_ТипаТипа=Бассейн.ид_Бассейна

GROUP BY ССооружения.Название, ТипСС.ТипСС, Бассейн.КолДорожек

HAVING Бассейн.КолДорожек=[Введите_Кол_Дорожек:] AND ТипСС.ТипСС=[Введите_ТипСС:]

ORDER BY ССооружения.Название;

Результат:

 

Запрос1_ССооруженияУказТипа

Листинг 1.2:

SELECT ССооружения.Название, ТипСС.ТипСС

FROM ССооружения INNER JOIN ТипСС ON ССооружения.ид_ТипСС=ТипСС.ид_ТипСС

GROUP BY ССооружения.Название, ТипСС.ТипСС

HAVING ТипСС.ТипСС=[Введите тип СпортСооружения:]

ORDER BY ССооружения.Название;

Результат:

 

 

 

  1. Получить список спортсменов, занимающихся указанным видом спорта в целом либо не выше определенного разряда.

Запрос2_ВидСпортаСпортсмены

Листинг 2.1:

SELECT Спортсмены.ФИО, ВидыСпорта.ВидСпорта

FROM Спортсмены INNER JOIN ВидыСпорта ON Спортсмены.ид_ВидСпорта=ВидыСпорта.ид_ВидСпорта

GROUP BY Спортсмены.ФИО, ВидыСпорта.ВидСпорта

HAVING ВидыСпорта.ВидСпорта=[ВведитеВидСпортаСпортсменов]

ORDER BY Спортсмены.ФИО;

Результат:

 

Запрос2_ВидСпортаРазрядСпортсмена

Листинг 2.2:

SELECT Спортсмены.ФИО, ВидыСпорта.ВидСпорта, Спортсмены.Разряд

FROM Спортсмены INNER JOIN ВидыСпорта ON Спортсмены.ид_ВидСпорта=ВидыСпорта.ид_ВидСпорта

WHERE (ВидыСпорта.ВидСпорта=[ВведитеВидСпортаСпортсменов:]) AND (Спортсмены.Разряд<=[ВведитеРазрядСпортсмена:]);

Результат:

 

 

  1. Получить список спортсменов, тренирующихся у некого тренера в целом либо не ниже определенного разряда.

 

Запрос3_СпортсменыУказТренера

Листинг 3.1:

SELECT Спортсмены.ФИО, Тренеры.ФИО

FROM Спортсмены INNER JOIN Тренеры ON Спортсмены.ид_Тренера=Тренеры.ид_Тренера

WHERE Тренеры.ФИО=[ВведитеФИОТренера:];

Результат:

 

Запрос3_СпортсменыТренераНеНижеРазряда

Листинг 3.2:

SELECT Спортсмены.ФИО, Спортсмены.Разряд, Тренеры.ФИО

FROM Спортсмены INNER JOIN Тренеры  ON Спортсмены.ид_Тренера=Тренеры.ид_Тренера

WHERE Тренеры.ФИО=[ВведитеФИОТренера:] AND Спортсмены.Разряд>=[ВведитеНеНижеРазряд];

Результат:

 

 

  1. Получить список спортсменов, занимающихся более чем одним видом спорта.

 

Запрос4_СпортсменыБольшОдногоСпорта

Листинг 4.1:

SELECT Спортсмены.ФИО, count(ВидыСпорта.ВидСпорта)

FROM Спортсмены INNER JOIN ВидыСпорта ON Спортсмены.ид_ВидСпорта=ВидыСпорта.ид_ВидСпорта

GROUP BY Спортсмены.ФИО

HAVING count(*)>1;

 

  1. Получить список тренеров указанного спортсмена.

Запрос5_ТренерыСпортсмена

Листинг 5.1:

SELECT Спортсмены.ФИО, Тренеры.ФИО

FROM Тренеры INNER JOIN Спортсмены ON Спортсмены.ид_Тренера=Тренеры.ид_Тренера

WHERE Спортсмены.ФИО=[ВведитеФИОСпортсмена:];

Результат:

 

 

 

 

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

Запрос6_СоревнованияПоВремени

Листинг 6.1:

SELECT Соревнования.Название, Соревнования.ДатаПроведения

FROM Соревнования

GROUP BY Соревнования.Название, Соревнования.ДатаПроведения

HAVING ДатаПроведения BETWEEN [ВведитеНачДату] AND [ВведитеКонДату];

Результат:

 

 

Запрос6_СоревнованияДатаОрганизатор

Листинг 6.2:

SELECT Организаторы.Организатор, Соревнования.Название

FROM Организаторы INNER JOIN Соревнования ON Организаторы.ид_Организатора=Соревнования.ид_Организатора

WHERE Соревнования.ДатаПроведения BETWEEN [ВведитеНачДату] AND [ВведитеКонДату]

GROUP BY Организаторы.Организатор, Соревнования.Название

HAVING Организаторы.Организатор=[ВведитеОрганизатора];

 

Результат:

 

 

 

 

 

 

 

 

 

  1. Получить список призеров указанного соревнования.

Запрос7_ПризерыСоревнования

Листинг 7.1:

SELECT Соревнования.Название, Спортсмены.ФИО

FROM Соревнования INNER JOIN Спортсмены ON Соревнования.ид_Участника=Спортсмены.ид_Спортсмена

WHERE Соревнования.Призер="Да"

GROUP BY Соревнования.Название, Спортсмены.ФИО

HAVING Соревнования.Название=[ВведитеСоревнование:];

Результат:

 

 

 

 

  1. Получить   перечень   соревнований,   проведенных   в   указанном   спортивном сооружении в целом либо по определенному виду спорта.

Запрос8_1_СоревнованияПоСооружению

Листинг 8.1:

SELECT Соревнования.Название, ССооружения.Название

FROM Соревнования INNER JOIN ССооружения ON Соревнования.ид_СС=ССооружения.ид_СС

WHERE ССооружения.Название=[ВведитеССооружение:]

GROUP BY Соревнования.Название, ССооружения.Название;

Результат:

 

 

Запрос8_2СоревПоСооружИВидуСпорта

Листинг 8.2:

SELECT Соревнования.Название, ССооружения.Название, ВидыСпорта.ВидСпорта

FROM (Соревнования INNER JOIN ВидыСпорта ON Соревнования.ид_ВидСпорта=ВидыСпорта.ид_ВидСпорта) INNER JOIN ССооружения ON Соревнования.ид_СС=ССооружения.ид_СС

WHERE ВидыСпорта.ВидСпорта=[ВведитеВидСпорта:] AND ССооружения.Название=[ВведитеССооружение:]

GROUP BY Соревнования.Название, ССооружения.Название, ВидыСпорта.ВидСпорта;

 

Результат:

 

  1. Получить  перечень  спортивных  клубов  и  число  спортсменов  этих  клубов, участвовавших в спортивных соревнованиях в течение заданного интервала времени.

Запрос9_ЧислоКлубовИСпортсменовПоДатеСоревнований

Листинг 9.1:

SELECT Спортклубы.Название, COUNT(Спортсмены.ФИО)

FROM (СпортКлубы INNER JOIN Спортсмены ON СпортКлубы.ид_СпортКлуба=Спортсмены.ид_СпортКлуба) INNER JOIN Соревнования ON Спортсмены.ид_Спортсмена=Соревнования.ид_Участника

WHERE Соревнования.ДатаПроведения BETWEEN [ВведитеНачПериода:] AND [ВведитеКонПериода:]

GROUP BY Спортклубы.Название;

Результат:

 

 

  1. Получить список тренеров по определенному виду спорта.

Запрос10_ТренерыПоВидуСпорта

Листинг 10.1:

SELECT Тренеры.ФИО, Тренеры.ДатаРождения

FROM Тренеры INNER JOIN ВидыСпорта ON ВидыСпорта.ид_ВидСпорта=Тренеры.ид_ВидСпорта

WHERE ВидыСпорта.ВидСпорта=[ВведитеВидСпорта];

Результат:

 

 

 

 

 

 

  1. Получить список спортсменов, не участвовавших ни в каких соревнованиях в течение определенного периода времени.

Запрос11_СпортсменыНеУчВСорев

Листинг 11.1:

SELECT Спортсмены.ФИО

FROM Спортсмены INNER JOIN Соревнования ON Спортсмены.ид_Спортсмена=Соревнования.ид_Участника

WHERE Соревнования.ДатаПроведения NOT BETWEEN [ВведитеНачПериода:] AND [ВведитеКонПериода:]

GROUP BY Спортсмены.ФИО;

Результат:

 

 

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

 

Запрос12_ОгранизИКол-воСорев

Листинг 12.1:

SELECT DISTINCT Организаторы.Организатор, Соревнования.Название

FROM Организаторы INNER JOIN Соревнования ON Организаторы.ид_Организатора=Соревнования.ид_Организатора

WHERE Соревнования.ДатаПроведения BETWEEN [ВведитеНачДату] AND [ВведитеКонДату]

GROUP BY Организаторы.Организатор, Соревнования.Название;

Результат:

 

 

 

 

 

  1. Получить   перечень   спортивных   сооружений   и   даты   проведения   на   них соревнований в течение определенного периода времени.

Запрос13_СооруженияПоДатамСоревнований

Листинг 13.1:

SELECT ССооружения.Название, Соревнования.ДатаПроведения

FROM Соревнования INNER JOIN ССооружения ON Соревнования.ид_СС=ССооружения.ид_СС

WHERE Соревнования.ДатаПроведения BETWEEN [ВведитеНачДату] AND [ВведитеКонДату]

GROUP BY ССооружения.Название, Соревнования.ДатаПроведения;

Результат:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ЗАКЛЮЧЕНИЕ

 

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

Техническое задание к курсовой работе по разработке базы данных для информационной системы торговой организации оформлено в соответствии с [ГОСТ 7.32-2001] и выполнено в полном объёме.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СПИСОК  ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

 

 

 

  1. Конспект лекций  по предмету "Базы данных", преподаватель Толмачев С. Г., БГТУ "Военмех" 2011 г.
  2. ГОСТ 7.32-2001 Система стандартов по информации, библиотечному и издательскому делу. Отчет о научно-исследовательской работе. Структура и правила оформления.

 


Информация о работе База данных спортивных сооружений города