Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
control_work.doc
Скачиваний:
5
Добавлен:
23.09.2019
Размер:
1.04 Mб
Скачать
  1. Преобразование инфологической модели в реляционную модель данных.

Так как степень связи между всеми сущностями 1:М и класс принадлежности М-связных сущностей обязательный, то достаточно формирования двух отношений (ИГРОКИ и КОМАНДА, КОМАНДА и ГОРОД, КОМАНДА и АРЕНА, КОМАНДА и ДИВИЗИОН). При этом первичными ключами этих отношений являются ключи их сущностей. Кроме того, ключи 1-связных сущностей добавляются как атрибуты (внешние ключи) в отношение, соответствующее М-связной сущности.

Рис. 2 Схема БД полученная на основе инфологической модели

  1. Нормализация отношений бд.

Описание полей отношений.

Игроки: Имя – имя игрока, Откуда – родной город игрока, № - закрепленный номер за игроком (номер на футболке).

Клуб: Назв_Ком – название клуба, Основана – дата основания баскетбольного клуба, в НБА – дата регистрации в НБА.

Город: Назв_Города – название города, Страна – страна, которой принадлежит данный город, Штат – штат, в котором находится город, Округ – округ, в котором находится штат.

Арена: Назв_Арены – название арены, Вместимость – вместимость арены, Владелец – владелец данной арены.

Дивизион: Назв_Див – название дивизиона, Число команд – число команд в дивизионе.

Конференция – Назв_Конф – название конференции, Число игр – число игр в сезоне, Кол_команд – количество команд в каждой конференции, Действ_победитель – действующий победитель. Основание – дата основания конференции.

БКНФ

Клуб

Игроки

Арена

Дивизион

Город

Конференция

Нормализованная реляционная модель

Рис. 3 Схема БД полученная на основе нормализованной реляционной модели

6. Запросы

Запрос 1.

SELECT Игроки.Имя, Игроки.Рост, Игроки.Вес

FROM Игроки;

Запрос 2.

SELECT Арена.Назв_Арены, Арена.Вместимость

FROM Арена

WHERE (((Арена.Вместимость)>"19000"));

Запрос 3.

SELECT Арена.Назв_Арены, Арена.Вместимость

FROM Арена

WHERE (((Арена.Вместимость)>"20000"));

Запрос 4.

SELECT Арена.Назв_Арены AS Назв_Арены

FROM Арена

WHERE (((Арена.Назв_Арены) In (SELECT Назв_Города FROM Город)));

Запрос 5.

SELECT Арена.Назв_Арены AS Назв_Арены

FROM Арена

WHERE (((Арена.Назв_Арены) Not In (SELECT Назв_Города FROM Город)));

Запрос 6.

SELECT Назв_Арены

FROM Арена

UNION SELECT Назв_Города

FROM Город;

Запрос 7.

SELECT Клуб.Назв_ком, Игроки.Имя

FROM Клуб, Игроки;

Запрос 8.

SELECT Клуб.Назв_ком, Город.Назв_Города

FROM Клуб, Город;

Запрос 9.

SELECT Клуб.Назв_Ком, Арена.Назв_Арены

FROM Клуб INNER JOIN Арена ON Клуб.Назв_Арены = Арена.Назв_Арены;

Запрос 10.

SELECT Клуб.Назв_Ком, Арена.Назв_Арены

FROM Клуб LEFT JOIN Арена ON Клуб.Назв_Арены = Арена.Назв_Арены;

Запрос 11.

SELECT Клуб.Назв_Ком, Город.Назв_ГородаFROM Клуб LEFT JOIN Город ON Клуб.Назв_Города = Город.Назв_Города;

Запрос 12.

SELECT Назв_Арены AS [Название Арены]

FROM Арена;

Запрос 13.

SELECT Конференция.Назв_Конф, DateDiff("d",Now(),[Дата_финала]) AS [До финала осталось дней]

FROM Конференция;

Запрос 14.

SELECT Игроки.Назв_Ком, Count(Игроки.Код) AS [Количесивр игроков]

FROM Игроки

GROUP BY Игроки.Назв_Ком;

Запрос 15.

SELECT Игроки.Назв_Ком, Count(Игроки.Код) AS [Количество игроков]

FROM Игроки

GROUP BY Игроки.Назв_Ком

HAVING (((Count(Игроки.Код))>1));

Запрос 16.

SELECT Count(Игроки.Код) AS [Количестов игроков]

FROM Игроки

WHERE (((Игроки.[№])=7) And ((Игроки.Вес)>"100 kg" And (Игроки.Вес)<"150 kg"));

Запрос 17.

INSERT INTO [Самые высокие игроки] ( Имя, Рост )

SELECT Игроки.Имя, Игроки.Рост

FROM Игроки

WHERE ((Игроки.Рост)>"210 sm");

Запрос 18.

INSERT INTO [Самые высокие игроки]

VALUES (1, "Kirill Fesenko", "216 sm");

Запрос 19.

UPDATE Конференция SET Конференция.Кол_команд = Конференция.Кол_команд + 5

WHERE (Конференция.Кол_команд = 15);

Запрос 20.

DELETE *

FROM [Самые высокие игроки]

WHERE Рост is NULL;

Запрос 21

а) DELETE *

FROM [Самые высокие игроки];

б) INSERT INTO [Самые высокие игроки] ( Имя, Рост )

SELECT Имя, Рост

FROM Игроки;

Дата финала

UPDATE Конференция SET Конференция.Дата_финала = [Введите дату];

Кол_Игроков

SELECT Count(Игроки.Код) AS [Количество игроков]

FROM Игроки;

Новый игрок

INSERT INTO Игроки ( Имя, Рост, Вес )

VALUES ([Введите имя], [Введите Рост], [Введите вес]);

Найти арену

SELECT Арена.Назв_Арены, Арена.Вместимость, Арена.Владелец

FROM Арена

WHERE (((Арена.Назв_Арены)=[Введите название арены]));

Список арен

SELECT Арена.Назв_Арены, Арена.Вместимость, Арена.Владелец

FROM Арена;

Список клубов

SELECT Клуб.Назв_Ком, Клуб.Назв_Див

FROM Клуб;

Структура

SELECT Дивизион.Назв_Конф, Конференция.Кол_команд, Дивизион.Назв_Див, Клуб.Назв_Ком, Клуб.Назв_Города

FROM Конференция INNER JOIN (Дивизион INNER JOIN Клуб ON Дивизион.Назв_Див = Клуб.Назв_Див) ON Конференция.Назв_Конф = Дивизион.Назв_Конф;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]