Проектирование базы данных на языке 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))