Проектирование базы данных на языке SQL
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
ущности Турнир,
Дата матча сущности Матч,
Данный тип позволяет устанавливать и хранить календарную дату. Диапазон этого типа от 1 января 100 года до 27 февраля 32768 года.
.3 Создание таблиц базы данных на языке SQL
По разработанной концептуальной схеме логического и физического уровней в базе данных Учёт результатов футбольного турнира были созданы 5 таблиц (Приложение А).
Таблица 2.1 - Соответствие между объектами концептуальной схемы и базы данных
СущностьАтрибутыТаблицаНазвание полейФутболистНомер_футболиста Дата_рождения Рост Вес Позиция ФИОPLAYERPLAYER_NUMBER PLAYER_DATE ROST VES POSITION FIOТренерский штабНомер_тренера ФИО Дата_рождения Профессия COACHCOACH_NUMBER FIO COACH_DATE PROFESSIONКомандаНомер_команды Название Цвет_формы Информация TEAMTEAM_NUMBER TEAM_NAME TEAM_COLOUR INFORMATIONТурнирНомер_турнира Призовой_фонд Дата_старта Длительность TURNIRTURNIR_NUMBER PRIZE_FOND START_DATE DLITELNOST МатчНомер_матча Дата_матча Результат_матчаMATCHMATCH_NUMBER MATCH_DATE RESULT_MATCH
2.4 Запросы SQL на манипулирование данными
После создания таблиц базы данных была произведена её актуализация ? заполнение. При заполнении таблиц базы данных использовалось особое подмножество языка SQL ? язык манипуляции данными (DML). Наиболее часто пришлось использовать оператор INSERT, который позволяет написать запрос на заполнение полей таблиц соответствующими значениями.
Для примера приведем некоторые заполненные таблицы.
Рисунок 2.5 - Таблица Команда
Рисунок 2.6 - Таблица Футболисты
Рисунок 2.7 - Таблица Тренеры
Рисунок 2.8 - Таблица Турнир
Рисунок 2.9 - Таблица Матч
2.5 Запросы SQL на выборку информации из базы данных
Приведем пример некоторых запросов на выборку информации из базы данных. Представим данные запросы с помощью реляционной алгебры и реляционного исчисления кортежей.
.5.1 Простые запросы
1. Вывести информацию о матчах, которые были сыграны в июне 2012 года:
SELECT *MATCH WHERE (MATCH_DATE > 31.05.2012) AND (MATCH_DATE <= 31.06.2012)
Рисунок 2.10 - Результат выполнения запроса 1
Формула РА:
? MATCH_NUMBER, MATCH_DATE, RESULT_MATCH, FIRST_TEAM_FK, TURNIR_NUMBER_FK, TEAM_NUMBER_FK (? (MATCH_DATE > 31.05.2012)& (MATCH_DATE <=31.12.2011) (MATCH));
Формула РИК:
{m | m MATCH & $ m (MATCH) & m (MATCH_DATE > 31.05.2012) & (MATCH_DATE <= 31.06.2012)}
2. Вывести информацию о футболистах, рост которых не менее, чем 180
SELECT *PLAYER WHERE ROST >= 180
Рисунок 2.11 - Результат выполнения запроса 2
Формула РА:
?, PLAYER_NUMBER, PLAYER_DATE, ROST, VES, POSITION, FIO, TEAM_NUMBER_FK (? (ROST>=180) (PLAYER))
Формула РИК:
{p | p PLAYER & $ p (PLAYER ) & p (ROST >= 180)}
3. Удалить тренеров дата рождения, которых позже, чем 01.01.1986
DELETE FROM COACHCOACH_DATE > 01.01.1986
Рисунок 2.12 - Результат выполнения запроса 3
Формула РА:
? COACH_NUMBER, FIO, COACH_DATE, PROFESSION, TEAM_NUMBER_FK (? (COACH_DATE>31.12.1986) (COACH))
Формула РИК:
{c | c COACH & $ c ( COACH ) & c (COACH_DATE > 31.12.1986)}
4. Удалить турниры, призовой фонд которых меньше 80000
DELETE FROM TURNIRPRIZE_FOND < 80000
Рисунок 2.13 - Результат выполнения запроса 4
Формула РА:
? TURNIR_NUMBER, PRIZE_FOND, START_DATE, DLITELNOST (? (PRIZE_FOND<80000) (TURNIR))
Формула РИК:
{t | t TURNIR & $ t ( TURNIR ) & t (PRIZE_FOND < 80000)}
5. Вывести ФИО и дата рождения футболистов позиция которых полузащитник
SELECT FIO, PLAYER_DATEPLAYER WHERE POSITION=Полузащитник
Рисунок 2.14 - Результат выполнения запроса 5
Формула РА:
? FIO, PLAYER_DATE (? (POSITION<Полузащитник) (PLAYER))
Формула РИК:
{p | p PLAYER & $ p ( PLAYER ) & p (POSITION = Полузащитник)}
6. Вывести матчи, которые проходят в 4 турнире
SELECT *MATCH WHERE TURNIR_NUMBER=4
Рисунок 2.15 - Результат выполнения запроса 6
Формула РА:
? MATCH_NUMBER, MATCH_DATE, RESULT_MATCH (? (TURNIR_NUMBER=4) (MATCH))
Формула РИК:
{m | m MATCH & $ m ( MATCH ) & m (POSITION = Полузащитник)}
7. Вывести турниры, длительность которых от 8 до 15 дней
SELECT *TURNIR WHERE (DLITELNOST>=8) AND (DLITELNOST <= 15)
Рисунок 2.16 - Результат выполнения запроса 7
Формула РА:
? TURNIR_NUMBER, PRIZE_FOND, START_DATE, DLITELNOST (? (DLITELNOST >= 8)& ((DLITELNOST <= 8) (TURNIR));
Формула РИК:
{t | t TURNIR & $ t ( TURNIR ) & t (DLITELNOST>=8) & (DLITELNOST <= 15)}
8. Вывести ФИО и дата рождения футболистов которые выступают за ЦСКА.
SELECT FIO, PLAYER_DATEPLAYER WHERE TEAM_NUMBER_FK=1
Рисунок 2.17 - Результат выполнения запроса 8
Формула РА:
? FIO, PLAYER_DATE (? (TEAM_NUMBER_FK=1) (PLAYER))
Формула РИК:
{p | p PLAYER & $ p ( PLAYER ) & p (TEAM_NUMBER_FK=1)}
9. Вывести информацию о футболистах, родившихся в 1987 году
SELECT *PLAYER WHERE (PLAYER_DATE >31.12.1986) AND (PLAYER_DATE < 01.01.1988)
Рисунок 2.18 - Результат выполнения запроса 9
Формула РА:
?, PLAYER_NUMBER, PLAYER_DATE, ROST, VES, POSITION, FIO, TEAM_NUMBER_FK (? (PLAYER_DATE>= 31.12.1986) & (PLAYER_DATE < 01.01.1988) (PLAYER))
Формула РИК:
{p | p PLAYER & $ p (PLAYER ) & p (PLAYER_DATE >31.12.1986) & (PLAYER_DATE < 01.01.1988)}
10. Удалить футболистов выступающих за Реал
DELETE FROM PLAYER
WHERE TEAM_NUMBER_FK=4
Рисунок 2.19 - Результат выполнения запроса 10
Формула РА:
? PLAYER_NUMBER, PLAYER_DATE, ROST, VES, POSITION, FIO, TEAM_NUMBER_FK (? (TEAM_NUMBER=4) (PLAYER))