Смекни!
smekni.com

Информационная система компьютерного клуба (стр. 2 из 5)

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

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

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

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


3 РАЗРАБОТКА СХЕМЫ БАЗЫ ДАННЫХ

3.1 Описание логической схемы базы данных

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

Описание логической схемы базы данных:

Отношение «Данные» имеет атрибуты: Номер_компа, Дата_аренды, Время_аренды, Продолжительность, Код_услуги, Игрок, Цена, Админ.

Отношение «Услуги» имеет атрибуты: Номер_услуги, Название, Тариф.

Отношение «Инфо игрока» имеет атрибуты: Игрок, ФИО, Адрес, Команда.

Отношение «Админ» имеет атрибуты: Админ, ФИО, Адрес, Ставка.

Отношение «Девайс» имеет атрибуты: Устройство, Магазин, Фирма, Цена.

Отношение «Комп» имеет атрибуты: Номер_компа, Платформа, MHz, Monitor, Video, Hdd, Mouse, Keyboard, Headphones.

Схема данных в MicrosoftAccess изображена на Рис. 3.1


4 РАЗРАБОТКА ПРОЕКТА ПРИЛОЖЕНИЯ

4.1 Описание данных БД

В таблице 4.1 приведено описание данных БД «Работа клуба». Таблица 4.1 - Описание данных БД «Работа клуба»

Элемент данных Описание Объект Тип данных Условие на значеие
Номер_компа Номер компьютера Центр данных Текстовый Обязательное (ключ)
Дата_Аренды Дата аренды компьютера Центр данных Дата/Время Обязательное(ключ)
Время_Аренды Время аренды компьютера Центр данных Дата/Время Обязательное(ключ)
Продолжительность Часы аренды компьютера Центр данных Числовой Обязательное
Код_Услуги Код услуги Центр данных Текстовый Обязательное
Игрок Посетитель клуба Центр данных Текстовый Обязательное
Цена Стоимость Центр данных Денежный Обязательное
Админ Администратор Центр данных Текстовый Обязательное (ключ)
Номер_услуги Кодовый номер услуги Услуги Текстовый Обязательное (ключ)
Название Описание услуги Услуги Текстовый Обязательное
Тариф Стоимость услуги Услуги Денежный Обязательное(ключ)
Админ «Никнейм» администратора Админ Текстовый Обязательное(ключ)
ФИО ФИО Админ Текстовый Обязательное
Адрес Адрес Админ Текстовый Обязательное
Ставка Зарплата Админ Текстовый Обязательное
Игрок «Никнейм» игрока Инфо игрока Текстовый Обязательное(ключ)
ФИО ФИО игрока Инфо игрока Текстовый Обязательное
Адрес Адрес игрока Инфо игрока Текстовый Обязательное
Команда Команда игрока Инфо игрока Текстовый Необязательное

4.2 Создание отношений с помощью языка SQL

В языке SQL оператором создания таблиц является оператор CREATE TABLE.

Ниже приводится построение таблиц БД «Компьютерный клуб» с помощью оператора CREATE TABLE.

CREATE TABLE Админ

( АдминVARCHAR (50) NOT NULL,

ФИОVARCHAR (50) NOT NULL,

АдресVARCHAR (50) NOT NULL,

СтавкаNUMBER NOT NULL,

PRIMARY KEY (Админ),

FOREIGN KEY (Админ),

REFERENCES Центрданных,

ON DELETE CASCADE,

ON UPDATE CASCADE)

CREATE TABLE Инфоигрока

( ИгрокVARCHAR (50) NOT NULL,

ФИОVARCHAR (50) NOT NULL,

Адрес VARCHAR (50) NOT NULL,

Комманда VARCHAR (50) NOT NULL,

PRIMARY KEY (Игрок),

ON DELETE CASCADE,

ON UPDATE CASCADE)

CREATE TABLE Девайс

( УстройствоVARCHAR (50) NOT NULL,

МагазинVARCHAR (50) NOT NULL,

ФирмаVARCHAR (50)NOT NULL,

Цена VARCHAR (50)NOT NULL,

PRIMARY KEY (Устройство),

FOREIGN KEY (Устройство),

REFERENCESМодернизация,

ON DELETE CASCADE,

ON UPDATE CASCADE)

CREATE TABLE Услуги

(Номер_услуги VARCHAR (10) NOT NULL,

Название VARCHAR (50)NOT NULL,

ТарифMONEY NOT NULL,

PRIMARY KEY (Номер_услуги),

ON DELETE CASCADE,

ON UPDATE CASCADE)

CREATE TABLE Комп

(Номер_компа VARCHAR (50)NOT NULL,

Платформа VARCHAR (50)NOT NULL,

MHz VARCHAR (50)NOT NULL,Monitor

Video VARCHAR (50)NOT NULL,

Hdd VARCHAR (50)NOT NULL,

Mouse VARCHAR (50)NOT NULL,

Keyboard VARCHAR (50)NOT NULL,

Headphones VARCHAR (50)NOT NULL,

PRIMARY KEY (Номер_компа),

ON DELETE CASCADE,

ON UPDATE CASCADE)

CREATE TABLE Центрданных

(Номер_компа VARCHAR (50)NOT NULL,

Дата_аренды DATE NOT NULL,

Время_аренды DATE NOT NULL,

Продолжительность NUMBER NOT NULL,

Код_услуги VARCHAR (50)NOT NULL,

Игрок VARCHAR (50)NOT NULL,

Цена MONEY NOT NULL,

Админ VARCHAR (50) NOTNULL,

PRIMARYKEY(Номер_компа, Дата_аренды, Время_аренды, Продолжительность, Админ),

FOREIGN KEY (Код_услуги),

REFERENCESУслуги,

ON DELETE CASCADE,

ON UPDATE CASCADE,

FOREIGN KEY (Игрок)

REFERENCESИнфоигрока,

ON DELETE CASCADE,

ON UPDATE CASCADE,

FOREIGN KEY (Номер_компа),

REFERENCESКомп,

ON DELETE CASCADE,

ON UPDATE CASCADE,

)

4.3 Заполнение базы данных

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

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

Особое внимание следует уделить занесению NULL-значений. В теоретическом плане NULL-значения запрещены (значения атрибута атомарны), однако требования практики обусловили их использование в коммерческих пакетах. Следует учитывать разницу в описании NULL-значений в каждом из них. В разрабатываемом проекте NULL-значения задавались средствами пакета ACCESS.


4.4 Создание запросов к базе данных компьютерный клуб

В основном запросы используются для анализа данных. В данной курсовой работе были созданы такие запросы:

1. Данные о дежурстве админа:

SELECT Данные.Дата_аренды, Данные.админ

FROM Комп INNER JOIN (Услуги INNER JOIN ([Инфо игрока] INNER JOIN Данные ON [Инфо игрока].Игрок=Данные.Игрок) ON Услуги.Номер_услуги=Данные.Код_услуги) ON Комп.Номер_компа=Данные.Номер_компа

WHERE (((Данные.Дата_аренды)=[ Введите дату аренды ]));

2.Доход в заданную дату.

SELECT Sum([Центр данных].Цена) AS Сумма

FROM [Центр данных]

WHERE ((([Центр данных].Дата_аренды)=[ Введите дату аренды ]));

3.Вывести игроков, которые не состоят в командах

SELECT [Инфо игрока].игрок, [Инфо игрока].фио, [Инфо игрока].адрес

FROM [инфо игрока]

WHERE [Инфо игрока].комманда Is Null;

4.Вывести информацию, если заработано более 5 грн.

SELECT [Центр данных].игрок, [Центр данных].Цена, [Центр данных].Номер_компа, [Центр данных].Дата_аренды, [Центр данных].Код_услуги, [Центр данных].Админ

FROM [Центр данных]

GROUP BY [Центр данных].игрок, [Центр данных].Цена, [Центр данных].Номер_компа, [Центр данных].Дата_аренды, [Центр данных].Код_услуги, [Центр данных].Админ

HAVING ((([Центр данных].Цена)>5));

5.Вывести данные о том, когда и на каком компьютере пользовались определённой услугй.

SELECT Услуги.Название, [Центр данных].Номер_компа, [Центр данных].Дата_аренды, [Центр данных].Время_аренды, [Центр данных].Продолжительность

FROM Комп INNERJOIN (Услуги INNERJOIN ([Инфо игрока] INNERJOIN [Центр данных] ON [Инфо игрока].Игрок=[Центр данных].Игрок) ON Услуги.Номер_услуги=[Центр данных].Код_услуги) ON Комп.Номер_компа=[Центр данных].Номер_компа

WHERE (((Услуги.Номер_услуги)=[ Код услуги ]))

ORDERBY [Центр данных].Дата_аренды;

6.Вывести сумму, заработанную определённым администратором

SELECT Sum([Центр данных].Цена) AS Сумма

FROM [Центр данных]

WHERE ((([Центр данных].админ)=[ Администратор ]));

7.Вывести данные о работе клуба, отсортировать по дате и игроку

SELECT [Центр данных].Номер_компа, [Центр данных].Дата_аренды, [Центр данных].Время_аренды, [Центр данных].Продолжительность, [Центр данных].Код_услуги, [Центр данных].Игрок, [Центр данных].Цена, [Центр данных].Админ

FROM [Центр данных]

ORDER BY [Центр данных].Дата_аренды, [Центр данных].Игрок;

8.Вывести информацию о самой поздней аренде компьютера

SELECT MAX([центр данных].время_аренды) AS Время

FROM [центр данных];

9.Вывести информацию о самой ранней аренде компьютера

SELECT MIN([центр данных].время_аренды) AS Время

FROM [центр данных];

10.Вывести данные об аренде компьютера в заданное время

SELECT [Центр данных].Время_аренды, [Центр данных].Код_услуги, [Центр данных].Игрок, [Центр данных].Номер_компа

FROM Комп INNER JOIN (Услуги INNER JOIN ([Инфо игрока] INNER JOIN [Центр данных] ON [Инфо игрока].Игрок=[Центр данных].Игрок) ON Услуги.Номер_услуги=[Центр данных].Код_услуги) ON Комп.Номер_компа=[Центр данных].Номер_компа

WHERE ((([Центр данных].Время_аренды)=[ Введите время аренды ]));

11.Вывести данные об аренде компьютера в заданную дату.

SELECT [Центр данных].Дата_аренды, [Центр данных].Код_услуги, [Центр данных].Игрок, [Центр данных].Номер_компа