Курсовая работа: Разработка программного обеспечения по управлению базой данных "График учета рабочего времени на шахте"
ID, NameGraphic, DateOfSave, LinkMonthNum, YearNum.
Сущность «Рабочие» имеет следующие атрибуты: ID, WokerName, TabNumber, LinkProfession, LinkStatus.
Сущность «Выходные» имеет атрибуты: ID, DateCelebrate, LinkName.
Таким образом в данной базе данных отношения находятся в третьей нормальной форме, т.к. все записи атомарные, значения одного атрибута одного и того же типа, порядок следования атрибутов в таблице не существенен, во всех отношениях первичный ключ состоит из одного атрибута, в отношениях нет транзитивных зависимостей.
5. Основная часть
На данной блок схеме представлен общий алгоритм составления графика учета рабочего времени. Для более детального изучения алгоритма можно посмотреть приложение Б в котором помещен исходный код с подробными комментариями. При запуске приложение проверяет, существует ли файл базы данных, если он не найден, происходит динамическое создание структуры базы данных с заполнением первоначальных значений в поля.
6. SQL запросы
Для базы данных «График учета рабочего времени на шахте им. Т. Кузембаева в цехе «Автоматика» » выполнены следующие запросы:
· Подсчет количества записей в таблице
Function SQL_CountRows(table:string;Connection:TADOConnection):integer;
var
str:_Recordset;
request:string;
begin
request := 'SELECT COUNT(ID) FROM ' + table;
STR := Connection.Execute(request);
result := integer(str.Fields.Item[0].Value);
end;
где table – передаваемый в функцию параметр – название таблицы;
· Получение значений атрибутов из таблицы «Отпуски», для заполнения массива, хранящего эти значения для последующих вычислений.
request := 'SELECT LinkWoker, DateBegin, Length FROM ОТПУСКИ';
STR := ADOConnection1.Execute(request);
· Получение значений атрибутов из таблицы «Рабочие», для заполнения массива, хранящего эти значения для последующих вычислений
request := 'SELECT WokerName, LinkStatus, TabNumber FROM РАБОЧИЕ';
STR := ADOConnection1.Execute(request);
· Пометка выходных дней в массиве дней месяца из таблицы, в которой хранятся данные о выходных днях «Выходные».
with sql_CreateQuery(ADOConnection1) do begin
SQL.Text := 'SELECT DateCelebrate FROM Выходные WHERE DateCelebrate BETWEEN :Date1 and :Date2';
with Parameters do begin