Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс_FINAL.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
705.96 Кб
Скачать

2.2.Нормализация.

Нормализация – процесс уменьшения избыточности информации в таблицах реляционной БД и как следствие построение оптимальной структуры таблиц и связей.

Можно выделить 4 основных правила, которыми следует руководствоваться при проектировании и последующей нормализации таблиц базы данных:

1. Каждое поле любой таблицы должно быть уникальным.

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

3. Для каждого значения первичного ключа должно быть одно и только одно значение любого из столбцов данных, и это значение должно относиться к объекту таблицы.

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

1НФ (Нормальная Форма)

Название таблицы

Ключевой поле

Стадионы

Место (страна)

Спортсмены

Код спортсмена

Тренеры

Код тренера

Время_проведения_игр

-

Результаты

№ записи

2НФ:

Выполняются ограничения 1НФ, и каждый не ключевой атрибут функционально полно зависит от составного первичного ключа.

3 НФ:

Все неключевые атрибуты отношения взаимно независимы и полностью зависят от первичного ключа.

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

2.3.Схема данных.

Отношения – это правила, поддерживаемые на уровне механизма реализации СУБД. Различают три типа отношений:

  • Отношение «один-к-одному»: для каждой строки в одной таблице существует не более одной строки связанной таблицы.

  • Отношение «один-ко-многим»: одна таблица не содержит вообще или имеет набор связанных «дочерних» записей из другой таблицы.

  • Отношение «многие-ко-многим»: для каждой строки первой таблицы может существовать набор строк в другой таблице и наоборот. Такая связь организуется, как правило, при помощи третьей связующей таблицы, содержащей значения первичных ключей обеих таблиц в качестве внешних ключей.

При разработке БД необходимо принимать во внимание правила обеспечения целостности данных (обеспечивает каскадное обновление записей в связанных таблицах).

3. Создание пользовательского интерфейса.

3.1.Запросы.

В моей БД содержатся 13 запросов различных типов.

Запросы бывают:

  • запрос на обновление

  • запрос на удаление

  • запрос на выборку

  • запрос на создание.

Ниже я опишу каждый из своих запросов.

Запрос «Все спортсмены»

Данный запрос при выполнении дает основную информацию обо всех спортсменах – ФИО, дату рождения, пол.

Данные для этого запроса берутся из таблицы Спортсмены.

В режиме SQL запрос выглядит так:

SELECT Спортсмены.ФИО, Спортсмены.[Дата рождения], Спортсмены.Пол

FROM Спортсмены;

Запрос «Выбор спортсмена по стране»

Данный запрос выводит всех спортсменов из страны, которая необходима.

Данные для этого запроса берутся из таблицы Спортсмены.

В режиме SQL запрос выглядит так:

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

FROM Спортсмены

WHERE (((Спортсмены.[Страна]) Like [Введите страну]));

Запрос «Выбор спортсмена по женскому полу»

Данный запрос выводит всех спортсменов женского пола.

Данные для этого запроса берутся из таблицы Спортсмены.

В режиме SQL запрос выглядит так:

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

FROM Спортсмены

WHERE (((Спортсмены.[Пол]) Like 'Женский'));

Запрос «Выбор спортсмена по мужскому полу»

Данный запрос выводит всех спортсменов мужского пола.

Данные для этого запроса берутся из таблицы Спортсмены.

В режиме SQL запрос выглядит так:

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

FROM Спортсмены

WHERE (((Спортсмены.[Пол]) Like 'Мужской'));

Запрос «Сортировка спортсменов по дате рождения»

Данный запрос выводит всех спортсменов по дате рождения (по убыванию).

Данные для этого запроса берутся из таблицы Спортсмены.

В режиме SQL запрос выглядит так:

SELECT Спортсмены.[Дата рождения], Спортсмены.ФИО

FROM Спортсмены

ORDER BY Спортсмены.[Дата рождения];

Запрос «Все тренеры»

Данный запрос при выполнении дает основную информацию обо всех тренерах – ФИО, дату рождения, пол.

Данные для этого запроса берутся из таблицы Тренеры.

В режиме SQL запрос выглядит так:

SELECT Тренеры.ФИО, Тренеры.[Дата рождения], Тренеры.Пол

FROM Тренеры;

Запрос «Выбор тренера по стране»

Данный запрос выводит всех тренеров из страны, которая необходима.

Данные для этого запроса берутся из таблицы Тренеры.

В режиме SQL запрос выглядит так:

SELECT Тренеры.ФИО, Тренеры.Страна

FROM Тренеры

WHERE (((Тренеры.Страна) Like [Введите страну]));

Запрос «Выбор времени года по году»

Данный запрос выводит время года в определенный год.

Данные для этого запроса берутся из таблицы Время_проведения_игр.

В режиме SQL запрос выглядит так:

SELECT Время_проведения_игр.Год, Время_проведения_игр.[Время года]

FROM Время_проведения_игр

WHERE (((Время_проведения_игр.[Год]) Like [Введите год]));

Запрос «Все результаты»

Данный запрос выводит все занятые места спортсменами.

Данные для этого запроса берутся из таблицы Результаты.

В режиме SQL запрос выглядит так:

SELECT Результаты.Результат, Результаты.Спортсмен

FROM Результаты;

Запрос «Дисциплины»

Данный запрос выводит спортсменов и дисциплину в которой он участвует .

Данные для этого запроса берутся из таблицы Результаты.

В режиме SQL запрос выглядит так:

SELECT Результаты.Спортсмен, Результаты.Дисциплина

FROM Результаты;

Запрос «Проведение дисциплин»

Данный запрос выводит Дисциплины, места и дату их проведения.

Данные для этого запроса берутся из таблицы Результаты.

В режиме SQL запрос выглядит так:

SELECT Результаты.Дисциплина, Результаты.[Место(страна)], Результаты.[Место(город)], Результаты.Дата

FROM Результаты

ORDER BY Результаты.Дата;

Запрос «Поиск спортсмена по ФИО»

Данный запрос выводит спортсмена по ФИО вместе с результатом по итогам соревнований.

Данные для этого запроса берутся из таблицы Результаты.

В режиме SQL запрос выглядит так:

DELETE Результаты.Спортсмен, Результаты.Спортсмен, Результаты.Дисциплина, Результаты.Результат

FROM Результаты

WHERE (((Результаты.Спортсмен) Like [Введите ФИО спортсмена]));