Академический Документы
Профессиональный Документы
Культура Документы
Отчет по лабораторной работе №7 18ИТд
Отчет по лабораторной работе №7 18ИТд
Выполнил:
Проверил:
Полоцк, 20
1
Вариант задания №14 – Соревнования по футболу
Пусть требуется создать программную систему, предназначенную для
организаторов соревнований по футболу в рамках первенства страны. Такая
система должна обеспечивать хранение сведений о командах, участвующих в
первенстве, об игроках команд, о расписании встреч и их результатах, о цене
билетов на игры.
Сведения о команде – название команды, город, где она базируется, имя
главного тренера, место в таблице прошлого сезона, расписание встреч. . В один
день команда может участвовать только в одной встрече. Сведения об игроке
включают в себя фамилию и имя игрока, его возраст, номер и амплуа в команде.
Сведения о стадионе, на котором происходит встреча содержат город, в котором
он находится, название стадиона, и его вместимость.
Цена билета на матч зависит от вместимости стадиона и положения
встречающихся команд в турнирной таблице прошлого сезона (наибольшая –
при игре тройки призеров, наименьшая – при игре тройки аутсайдеров).
Организаторы соревнований должны иметь возможность внести изменения в
данные о составе команд, перенести встречу.
Ход работы.
Рассмотрим типы данных и ограничения, примененные в данной работе.
2
Тип DATE сохраняет только значения дат за период с 1 января 1 года по 31
декабря 9999 года. Даты не предусматривают сохранения времени (т.к. такие
даты, как дата проведения матча и т.п. время не учитывают). Следовательно, для
всех дат выбран тип DATE.
Тип NVarChar – символьные данные в кодировке Unicode переменной
длины. Значения данных с длиной короче заданной не дополняются пробелами.
Для символьных данных выбран именно этот тип, так как данные могут очень
отличаться по длине (например, имена «Бо» и «Скрытоколокольчик»). Для
каждого отдельного столбца подбирается своя длина. Максимальное заданное
значение длины может составлять 4 000 символов, но для обозначения длины
можно использовать ключевое слово max, что фактически позволяет определять
столбцы с символьными данными, имеющими чрезвычайно большой объем (до
231 байтов данных). Поэтому для таких описаний деятельности, которые могут
быть очень подробными, используется ключевое слово max.
3
Таблица 1
Таблица Поле Ключ Тип данных Ограничения
PLAYER PK_Player PK int UNIQUE NOT NULL
Surname nvarchar(50) NOT NULL
Name nvarchar(50) NULL
Role nvarchar(20) NOT NULL
DateBirth date NOT NULL
TEAM PK_Team PK int UNIQUE NOT NULL
Name nvarchar(50) NOT NULL
Hometown nvarchar(50) NULL
COACH PK_Coach PK int UNIQUE NOT NULL
Name nvarchar(50) NOT NULL
Surname nvarchar(50) NULL
TEAMCOACHES FK_Team int NOT NULL
references TEAM (PK_Team)
FK_Coach int NOT NULL
references COACH (PK_Coach)
SQUADLIST FK_Team int NOT NULL
references TEAM (PK_Team)
FK_Player int NOT NULL
references PLAYER (PK_Player)
PlayerNumber int
Малый преподавателю:
Прошу подсказать, как еще можно решить задачу учета матча между двумя командами.
Изначально я хотел хранить в таблице «TEAMMEETINGS» по две записи: для каждой
команды.
Потом я решил, что будет ситуация, когда постоянно надо держать в голове, что у меня
должно быть 2 записи. Тогда потребовалось бы реализовать проверку кодом на наличие
НЕ более 2 записей на одну дату и помнить про эту особенность во всех запросах к
таблице, что не является корректным на мой взгляд.
Я решил хранить одну запись на один стадион и дату – реализовано в коде в базе
4
данных.
Можно лично на сессии, если запомните мой вопрос 😊
Ход работы.
Построение скрипта базы данных средствами языка Transact SQL.
5
USE master
GO
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
USE FootballMatches
GO
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
6
constraint FK_Team_Team foreign key (FK_Team) references TEAM (PK_Team),
constraint FK_Coach_Coach foreign key (FK_Coach) references COACH (PK_Coach)
)
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
7
create table PLAYERSRATING (
FK_Player int NOT NULL,
FK_Team int NOT NULL, -- Надо знать, в какой команде был игрок
FK_Stadium int NOT NULL,
MeetingDate date NOT NULL, -- Стадион и дата встречи позволят
однозначно идентифицировать конкретный матч
GoalsNumber int NOT NULL,
MissedBallsNumber int NOT NULL, -- Если это был вратарь. Это позволит вести
статистику одновременно по игроку и по команде
8
3. Построение диаграммы в базы данных в MS SQL Server 2014.