Структурная модель футбольного чемпионата информатика

Структурная модель футбольного чемпионата информатика

«Создание базы данных Чемпионат по футболу»

1. Постановка задачи.. 2

2. Проектирование базы данных.. 2

2.1. Основные понятия. 2

2.2. Нормализация баз данных. 3

3. Пояснения к проекту.. 6

4. Последовательность работы. 6

4.1. Создание таблиц.. 6

4.1.1. Средства для работы с базами данных. 6

4.1.2. Инструментальные средства. 7

4.1.3. Компоненты.. 7

4.1.4. Псевдоним базы данных. 7

4.1.5. Создание базы данных. 7

4.1.6. Создание псевдонима. 7

4.1.7. Создание таблиц. 9

4.2. Создание форм.. 11

4.3. Доступ к базе данных. 12

4.4. Использование модуля данных. 13

4.5. Навигация по таблицам базы данных. 14

4.5.1. Форма Список команд. 14

4.5.2. Перемещение по записям.. 15

4.5.3. Форма Список матчей. 16

4.5.4. Форма Список голов. 21

4.5.5. Задание для самостоятельной работы.. 21

5. Список литературы. 21

6. Приложение. Пример реализации поиска.. 22

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

2.1. Основные понятия

База Данных – организованная совокупность данных, предназначенная для длительного хранения во внешней памяти ЭВМ, постоянного обновления и использования. (Ершов словарь по информатике).

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

Реляционная база данных — совокупность данных состоящих из связанных двумерных таблиц.

Название произошло от английского слова «relation» — отношение.

Поле таблицы

Запись таблицы

Зеленая ул., 45-2-56

Киевская ул., 123

Основные понятия реляционных баз данных

Любые совокупности данных представляются в виде двумерных таблиц, каждая из которых содержит информацию об объектах определенного типа. Каждая таблица состоит из фиксированного числа столбцов и переменного числа строк. Запись – строка таблицы.
Каждая запись содержит информацию об отдельном экземпляре объекта. Поле – столбец таблицы.
Каждый столбец представляет собой конкретное данное – одну характеристику объекта (атрибут). Для каждого поля разработчик должен определить:

· уникальное имя поля;

· дополнительные характеристики (длину, формат) поля.

Ключ – одно или несколько полей для идентификации записей таблицы. Описание полей, определяемое разработчиком, называется структурой таблицы. Каждое поле может входить в несколько таблиц. Изменение количества полей и (или) их типов является особой операцией.

Основная идея реляционного подхода – представить произвольную структуру данных в виде простой двумерной таблицы. Такой процесс называется нормализацией структуры.

2.2. Нормализация баз данных

При проектировании структуры базы данных могут возникнуть проблемы:

    противоречивость информации; потеря целостности (взаимосвязь между данными).

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

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

Команда хозяев: название, город, тренер

Команда гостей: название, город, тренер

Игрок, забивший гол

Признак команды, к которой принадлежит игрок

Время (число минут от начала матча)

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

Правило 1: В таблице необходимо разделить составные поля на отдельные элементы данных. Каждое поле таблицы должно представлять уникальный тип информации. Т. е. необходимо избавиться от повторяющихся полей (групп).

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

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

1 шаг (Правило 1)

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

Команда хозяев: название

Команда хозяев: город

Команда хозяев: тренер

Команда гостей: название

Команда гостей: город

Команда гостей: тренер

Игрок, забивший гол

Признак команды, к которой принадлежит игрок

Время (число минут от начала матча)

Еще одно требование, которое мы должны учесть – это необходимость избавления от повторяющихся полей (групп). На первый взгляд может показаться, что в таблице 2 повторяющимися группами полей являются поля с информацией о командах хозяев и гостей. Но эти поля имеют различное функциональное значение.

2 шаг (Правило 2)

Записи таблицы 2 не содержат уникального ключа, по которому однозначно можно определить проводимый матч. Поэтому введем в таблицу 2 дополнительное поле ключа – код матча. У нас получится новая таблица 3.

Команда хозяев: название

Команда хозяев: город

Команда хозяев: тренер

Команда гостей: название

Команда гостей: город

Команда гостей: тренер

Игрок, забивший гол

Признак команды, к которой принадлежит игрок

Время (число минут от начала матча)

Для каждого гола в таблице 3 содержится повторяющаяся информация о дате матча, о командах. Поэтому разобьем эту таблицу на две таблицы, одна будет содержать данные о матчах, а другая – о голах, забитых в каждом конкретном матче. Структура этих таблиц приведена в таблицах 4 и 5.

Читайте также:  Почему гугл камеры нет в плей маркете

Команда хозяев: название

Команда хозяев: город

Команда хозяев: тренер

Команда гостей: название

Команда гостей: город

Команда гостей: тренер

Игрок, забивший гол

Признак команды, к которой принадлежит игрок

Время (число минут от начала матча)

Таблицы 4 и 5 связаны по полю Код матча, которое для таблицы 4 является уникальным. Чтобы обеспечить уникальность записей таблицы 5, в нее введен ключ Код гола.

3 шаг (Правило 3)

Для выполнения Правила 3 необходимо выделить в отдельную таблицу те поля, которые не зависят от ключа Код матча. В таблице 4 такими полями являются поля, которые определяют команду. Разобьем таблицу 4 на две таблицы: первая – информация о матчах, вторая – информация о командах (см. таблицы 6 и 7).

Код команды хозяев

Код команды гостей

Код команды (ключ)

В результате наша база данных Чемпионат по футболу будет иметь структуру, показанную на рисунке 1.

Проект будет состоять из пяти форм:

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

4.1. Создание таблиц

4.1.1. Средства для работы с базами данных

Средства Delphi, предназначенные для работы с базами данных, можно разделить на два вида:

· Инструментальные средства – специальные программы, обеспечивающие обслуживание баз данных вне разрабатываемых приложений.

· Компоненты, предназначенные для создания приложений, осуществляющих операции с базами данных.

Дальше будут рассмотрены инструментальные средства и компоненты, которые будут использоваться в данном проекте.

4.1.2. Инструментальные средства

· Borland Database Engine (BDE) – процессор баз данных, который представляет собой набор динамических библиотек и драйверов, предназначенных для организации доступа к базам данных из Delphi-приложений.

· BDE Administrator – утилита для настройки различных параметров BDE.

· Database Desktop – программа создания и редактирования таблиц, SQL-запросов.

· SQL Explorer – Проводник баз данных, позволяющий просматривать и редактировать базы данных.

4.1.3. Компоненты

Приведем компоненты, которые будут использованы в данном проекте.

Table – набор данных, основанный на таблице базы данных (страница BDE);

DataSource – источник данных (страница Data Access);

DBGrid – таблица (страница Data Controls);

DBNavigator – навигационный интерфейс (страница Data Controls);

DBEdit – однострочный редактор (страница Data Controls).

4.1.4. Псевдоним базы данных

Разрабатывая программу, трудно сразу предусмотреть на каком диске, в каком каталоге будут находиться файлы базы данных во время их использования. Для решения этой проблемы в Delphi используется псевдоним (alias), который указывает место нахождение файлов базы данных. Псевдоним – это короткое имя, поставленное в соответствие реальному, полному имени каталога базы данных. Псевдонимы сохраняются в реестре, и потом все программы при запуске смогут по этим псевдонимам найти таблицу и прочитать необходимые настройки, которые надо использовать при доступе к данным.

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

4.1.5. Создание базы данных

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

1. Создание папки.

2. Создание псевдонима.

3. Создание таблиц.

Создадим папку для нашего проекта и подпапку для базы данных с помощью средств Windows. Имя папки – База Данных, имя папки – Данные.

4.1.6. Создание псевдонима

Псевдоним (alias) может быть создан при помощи утилиты BDE Administrator:

C:Program FilesCommon FilesBorland SharedBDEdeadmin. exe

На Рисунке 2 приведен вид диалогового окна BDE Administrator после запуска утилиты.

В левой части окна, на вкладке Databases, перечислены псевдонимы, зарегистрированные на данном компьютере. Для создания нового псевдонима необходимо выбрать команду меню Object – New. Откроется новое диалоговое окно New Database Alias (Рисунок 3) из списка Database Driver Name выберем драйвер (тип базы данных) STANDARD, который обеспечивает доступ к таблицам в формате Paradox.

Для подтверждения выбора драйвера кликнем на клавише OK. В результате в список псевдонимов будет добавлен новый элемент (см. Рисунок 4).

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

Имя псевдонима можно изменить, щелкнув правой кнопкой мыши на имени псевдонима (на вкладке Databases), в открывшемся контекстном меню выбрать команду Rename и ввести новое имя – SPORT.

Путь к файлам базы данных вводится на вкладке Definition в поле Path с клавиатуры или с помощью стандартного диалогового окна Select Directory, которое открывается щелчком на кнопке с тремя точками, находящейся в конце поля Path (см. Рисунок 5).

Читайте также:  Устройство hid на шине i2c что это

Для того чтобы созданный псевдоним был зарегистрирован в файле конфигурации (idapi.cfg), необходимо выполнить команду в меню Object – Apple (Применить). В открывшемся диалоговом окне Confirm следует подтвердить необходимость сохранения изменений в файле конфигурации.

4.1.7. Создание таблиц

Приступим к созданию таблиц базы данных Чемпионат по футболу: таблица матчей – Match, таблица команд – Team и таблица голов – Goal. Структура этих таблиц приведена в таблицах 8, 9 и 10 соответственно.

Таблица матчей – Match Таблица 8

Код команды хозяев

Код команды гостей

Таблица команд – Team Таблица 9

Код команды (ключ)

Таблица голов – Goal Таблица 10

Игрок, забивший гол

Признак команды, к которой принадлежит игрок: 1 – хозяин, 2 – гость.

Время (число минут от начала матча)

Таблицы создаются с помощью входящей в состав Delphi утилиты Database Desktop. Эта утилита позволяет создавать, просматривать и модифицировать таблицы баз данных различных форматов. Вызвать утилиту Database Desktop можно:

C:Program FilesCommon FilesBorland SharedDatabase Desktopdbd32.exe

Для создания таблицы в окне Database Desktop выполните команду File-New-Table. Сначала в окне Create Table необходимо из раскрывающегося списка выбрать тип таблицы и нажать клавишу Ok. Пусть тип базы будет Paradox7. После этого открывается новое окно (см. рисунок 5), в котором необходимо создать структуру таблицы Match.

Для каждого поля таблицы необходимо указать имя, тип, если нужно размер поля. Имя поля используется для доступа к данным. В качестве имени используется последовательность букв латинского алфавита и цифр длиной не более 25 символов. Для определения типа поля используйте клавишу пробел или правую клавишу мыши. Тип Alpha означает текстовый (строковый) тип поля. Для этого поля необходимо указать его длину. Для полей с типом Number, Date длину не указывают. Необходимо отметить признак ключевого поля ID_M, установив символ «*» в графе Key.

Ключевые поля должны быть сгруппированы в верхней части таблицы.

После завершения заполнения таблицы сохраните ее, нажав кнопку Save as. В открывшемся окне Save Table As. в поле Имя файла введите имя таблицы Match, а в поле Alias выберите созданный ранее псевдоним SPORT. Для завершения работы нажмите клавишу Save.

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

1. Требование обязательного ввода значений (Required Field);

2. Минимальное значение (Minimum value);

3. Максимальное значение (Maximum value);

4. Значение по умолчанию (Default value);

5. Маска ввода (Picture).

На Рисунке 6 приведен пример заполнения поля PR_G (Признак команды), с указанием ограничений на значение поля.

Аналогично создайте и сохраните таблицы команд – Team и голов – Goal.

Таблицы базы данных созданы, и теперь их можно приступить к разработке программы, использующей эти таблицы.

4.2. Создание форм

Окно инспектора объектов

База данных СПОРТ

Сохраните модуль и проект под именами UnitGlavn и ProjectGlavn в папке База данных.

Создайте четыре формы с помощью команды File-New-Other. В открывшемся окне New Item выберите на вкладке New объект Form. Дайте имена формам и сохраните модули под именами, указанными в таблице.

На главную форму поместите пять кнопок:

Список матчей, Список команд, Список голов, Поиск, Выход.

Для каждой кнопки напишите соответствующую процедуру для открытия окна (см. таблицу 12).

База данных Access Футбольная Команда

База данных Access Футбольная Команда

Футбол — командный вид спорта, в котором целью является забить мяч в ворота соперника ногами или другими частями тела (кроме рук) большее количество раз, чем команда соперника. Является самым популярным видом спорта в мире. В качестве основы для базы данных Access Футбольная Команда был выбран футбольный клуб Спартак. Предметная область — футбольная команда. Цель – создание базы данных для хранения, поиска и ознакомления с информацией о игроках, играх, результатах игр, футбольных командах и т.д. В данной БД реализована возможность просмотреть бомбардиров клуба, вывести список легионеров ФК Спартак, выгрузить календарь игр, посмотреть статистику каждого игрока ФК Спартак, статистику игр. Также можно сформировать турнирную таблицу после каждого тура, просмотреть движение каждой команды в чемпионате РФПЛ в виде графика. При желании БД можно переделать под любой другой футбольный клуб.

База данных Access Футбольная Команда содержит 7 таблиц, 12 запросов, 8 форм + главная кнопочная форма, 7 отчетов. Данная база данных Access является учебной, подходит для дальнейшей оптимизации и доработки под собственные нужды.

Пояснительная записки нет!

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

Читайте также:  Как вставить градусы цельсия в ворде

Таблица «Календарь 2016-2017» — База данных Access Футбольная Команда

Форма «Расписание игр» — БД Access Футбольная Команда

Форма «Игроки» — База данных Access Футбольная Команда

Форма «Итоги тура» — База данных Access Футбольная Команда

Отчет «Статистика игр команды» — База данных Access Футбольная Команда

Отчет «Статистика игроков 2016-2017» — БД Access Футбольная Команда

Отчет «Список легионеров» — База данных Access Футбольная Команда

Отчет «Турнирная таблица после N тура» — База данных Access Футбольная Команда

Отчет «Календарь 2016-2017» — База данных Access Футбольная Команда

Отчет «Движение по турам команды Спартак» — БД Access Футбольная Команда

Отчет «Движение по турам команды Ростов» — База данных Access Футбольная Команда

Готовая база данных БД Access Футбольная Команда доступна для скачивания по ссылке ниже.

На днях прочитал пост об автоматизированном формирование футбольных чемпионатов и решил поделится своим решением данной задачи, которое использовал для небольшой игры. Реализация жеребьевки сделана не стандартным подходом, при помощи хранимых процедур MS SQL Server.

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

Таблица игр чемпионата

Основная хранимая процедура — это процедура формирования игр чемпионата между командами. При формировании я придерживался основных правил турнира:

  • Количество команд участвующих в турнире должно быть четным;
  • Каждая команда должна сыграть с другой 2 раза — на своем стадионе и на стадионе соперников;
  • В одном туре одна и та же команда может играть лишь один раз;
  • За победу в матче команда получает — 2 очка, за ничью — 1 очко, а за проигрыш соответственно — 0.

Давайте поэтапно рассмотрим алгоритм формирования таблицы игр. Логику буду стараться описывать детально, не скучно и с демонстрацией схем. Как пример давайте возьмем чемпионат в котором участвуют 4 команды, хотя алгоритм может работать с любым четным количеством команд. Условно давайте обозначим наши команды под номерами 1, 2, 3 и 4, которые в моей реализации являются их прямыми ID.

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


После этого мы формируем список пар команд для всех игр чемпионата. Для этого можно считать что у нас есть 2 списка с идентичными номерами всех команд чемпионата.


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


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

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


По окончанию выполнения алгоритма список всех пар команд чемпионата будет пустым, игры будут сформированы и все туры заполнены играми — все соответствует правилам проведения чемпионата.

Основной алгоритм, которым я хотел поделится описан, в подробности синтаксиса хранимых процедур SQL я не вдавался, поскольку это уже другая тема и другой пост. Все скрипты с реализацией примера можно найти в репозитории на github. На данный момент скрипты работают и проверены на MS SQL Server, если для вас это интересно, то перепишу под СУБД, которую вы используете. В проекте также находятся хранимые процедуры для вычисления лучшего голкипера, бомбардира, «Путь чемпиона» и несколько других для взаимодействия с данными чемпионата.

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

Ссылка на основную публикацию
Смазка для газовых колонок
Ремонт газовой колонки Нева 3208 своими руками ВНИМАНИЕ! Тема актуальна для газовых колонок Нева 3208, Нева 3010, Нева 3110, Нева...
Сбой при удалении файла андроид
При использовании смартфона можно столкнуться с ситуацией, когда удаляемые данные самопроизвольно восстанавливаются. Ситуация особенно печальна, если необходимо срочно уничтожить какое-то...
Свяжитесь с владельцем сервера мультимедиа чтобы разрешить
Прежде всего о том, что такое домашний DLNA сервер и зачем он нужен. DLNA — это стандарт потоковой передачи мультимедиа,...
Создать оглавление в пдф
У PDF-документов стандартом предусматривается возможность размещения содержания (bookmark в терминах PDF). Содержание ссылается на страницы книги. Узнать, есть у PDF-документа...
Adblock detector