Заключение
Итак, в данной курсовой работе, мы получили базу данных учета работников угледобывающего предприятия. В ней содержится следующая информация:
Основные данные о работнике (ТН, ФИО, место прописки и т.д.);
Список подразделений на предприятии;
Список участков по каждому подразделению на предприятии;
Журнал карьерных движений работников.
Следующими этапами на пути развития данной информационной системы будут:
доработка схемы базы данных;
создание приложения клиент/сервер;
разработка графического интерфейса;
разработка системы автоматического учета работников.
Основной задачей системы автоматического учета (САУР – комплекс считывающих устройств) будет, отслеживание спуска/подъема работников в шахту, учета ламп. Эти параметры позволят: рассчитать время проведенное работником на рабочем месте, а затем и заработную плату с учетом почасовой ставки, либо должностного оклада, составить табель выходов.
Приложение клиент/сервер, опираясь на информацию, получаемую от САУР, свяжет различные отделы поверхностной группы предприятия, с целью автоматического расчета заработной платы работников.
Список использованной литературы
1. Браун С. Visual Basic 6: Учебный курс. – СПб.: «Питер», 2002. – 576 с.
2. Голицина О.Л. Базы данных: Учебное пособие. – М.: «ФОРУМ: ИНФРА-М», 2003. – 352 с.
3. Дейт К. Дж. Введение в системы баз данных. – СПб.: Издательский дом «Вильямс», 2000. – 848 с.
4. Карпова Т.С. Базы данных: модели, разработка, реализация. – СПб.: «Питер», 2002. – 304 с.
5. Хомоненко А.Д. Базы данных: Учебник для вузов. – М.: «Корона», 2000. – 421 с.
6. Кузнецов С. Д. Основы баз данных. — 2-е изд. — М.: Интернет-университет информационных технологий; БИНОМ. Лаборатория знаний, 2007. — 484 с. — ISBN 978-5-94774-736-2
7. Туманов В.Е. Основы проектирования реляционных баз данных. – М.: Интернет-университет информационных технологий; БИНОМ. Лаборатория знаний, 2011 г. – 424с.
8. Грабер М. SQL. Справочное руководство. – London: Лори, 2006 г. – 368с. - ISBN 5-85582-117-X, 0-7821-2538-7
9. Ризаев И.С., Яхина З.Т. Базы данных. Учебное пособие. Казань.: КГТУ. 2002.
10. Ризаев И.С., Яхина З.Т. Базы данных. Лабораторный практикум. – Казань, КГТУ, 2002.
11. Захарова З.Х., Ризаев И.С., Яхина З.Т. Методические указания к курсовой работе по дисциплине «Базы данных». – Казань, КГТУ, 2006.
12. Карпова Т.С. Базы данных: Модели, разработка, реализация. Учебник. – СПб: Питер, 2001.
13. Бен – Ган И. Microsoft SQL Server 2012. Высокопроизводительный код T-SQL. Оконные функции. – СПб.: Русская редакция, 2013г. – 256 с. - ISBN 978-5-7502-0416-8, 978-5-9775-0901-5
14. Петкович Д. Microsoft SQL Server 2008. Руководство для начинающих. – СПб.: БХВ-Петербург, 2009 г. – 752 с. - ISBN 978-0-07-154638-6, 978-5-9775-0149-1
15. Moroney L. Introducing Microsoft WebMatrix. Microsoft, 2011 г. – 320 с. – ISBN 978-0-73-5649705
Приложение а
Листинг 1
@{
var db = Database.Open("Worker");
var selectQueryString = "SELECT" +
" id_profession ID, tb_podrazdeleniye.Name PODR,tb_uchastok.Name NAMEU,tb_occupation.Name NAMEPROF,kategori,stavka," +
" Status" +
" FROM [Worker].[dbo].[tb_occupation]" +
" JOIN tb_uchastok ON tb_occupation.id_uchastok = tb_uchastok.id_uchastok" +
" JOIN tb_podrazdeleniye ON tb_uchastok.id_podrazdeleniye = tb_podrazdeleniye.id_podrazdeleniye";
var data = db.Query(selectQueryString);
var grid = new WebGrid(source: data, defaultSort: "ID", rowsPerPage: 14);
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Отображение данных при помощи WebGrid</title>
<style type="text/css">
.grid { margin: 4px; border-collapse: collapse; width: auto;}
.head {background-color: #E8E8E8; font-weight: bold; color: #FFF;}
.grid th,.grid td { border: 1px solid #C0C0C0; padding: 5px;}
.alt { background-color: #E8E8E8; color: #000;}
.product { width: auto; font-weight:bold;text-align: center; }
.stav { width: auto;text-align: right; }
</style>
</head>
<body>
<h1>GridOccupation List</h1>
<div id="grid">
@grid.GetHtml(
tableStyle: "grid",
headerStyle: "head",
alternatingRowStyle: "alt",
columns: grid.Columns(
grid.Column("ID","№", style:"product"),
grid.Column("PODR","Подразделение",format:@<text>@item.PODR</text>),
grid.Column("NAMEU","Участок",format:@<text>@item.NAMEU</text>),
grid.Column("NAMEPROF","Должность",format:@<text>@item.NAMEPROF</text>),
grid.Column("kategori","Разряд",style:"product"),
grid.Column("stavka","Ставка",format:@<text>₴@item.stavka</text>,style:"stav"),
grid.Column("Status","Статус",format:@<text>@item.Status</text>)
)
)
</div>
</body>
</html>
Листинг 2
@{
var db = Database.Open("Worker");
var selectQueryString = "SELECT id_worker ID, tableNumber TN, FirstName FN, MiddleName MN," +
" LastName LN, convert(char(10),date_of_birth,102) as date, tb_gender.value GN,series, pasnumber,INN, INNsafe, phoneNumber" +
" FROM tb_worker LEFT JOIN tb_passport ON tb_worker.id_passport=tb_passport.id_passport" +
" JOIN tb_gender ON tb_passport.id_gender=tb_gender.id_gender";
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Worker List</title>
<style>
table, th, td {
border: solid 1px #bbbbbb;
border-collapse: collapse;
padding: 2px;
}
</style>
</head>
<body>
<h1>Worker List</h1>
<h2>tb_worker</h2>
<table><thead><tr>
<th>Id</th>
<th>TN</th>
<th>Фамилия</th>
<th>Имя</th>
<th>Отчество</th>
<th>Пол</th>
<th>Дата рождения</th>
<th>Серия</th>
<th>Номер</th>
<th>ИНН</th>
<th>Код соц. страхования</th>
<th>Телефонный номер</th></tr></thead>
<tbody>@foreach(var row in db.Query(selectQueryString))
{<tr> <td>@row.ID</td>
<td>@row.TN</td>
<td>@row.FN</td>
<td>@row.MN</td>
<td>@row.LN</td>
<td>@row.GN</td>
<td>@row.date</td>
<td>@row.series</td>
<td>@row.pasnumber</td>
<td>@row.INN</td>
<td>@row.INNsafe</td>
<td>@row.phoneNumber</td></tr>}
</tbody>
</table>
</body>
</html>
Листинг 3
@{
var db = Database.Open("Worker");
string tn="8508";
var selectQueryString = "SELECT id_worker, tableNumber, FirstName, MiddleName, LastName," +
" tb_worker.id_passport IDPAS,series,pasnumber,CONVERT(char(10),date_of_birth,102) as date1,tb_gender.value GV,TBPD.Name IDPD, tb_country.value IDCN," +
" tb_region.value IDRN, tb_city.value IDCCN, CONVERT(char(10),date,102) as date2 FROM tb_worker " +
" JOIN tb_passport ON tb_worker.id_passport=tb_passport.id_passport" +
" JOIN tb_pas_department AS TBPD ON tb_passport.id_pas_department=TBPD.id_pas_department" +
" JOIN tb_country ON tb_country.id_country=TBPD.id_country" +
" JOIN tb_region ON tb_region.id_region=TBPD.id_region" +
" JOIN tb_city ON tb_city.id_city=TBPD.id_city" +
" JOIN tb_gender ON tb_passport.id_gender=tb_gender.id_gender" +
" WHERE tableNumber=" + tn;
var selectQueryString2 = "SELECT phoneNumber,tb_country.value TBCV,tb_region.value TBRV, tb_city.value TBCCV," +
" tb_district.value TBDV, zipCode, street, house_number, flat_number FROM tb_worker" +
" JOIN tb_passport ON tb_worker.id_passport=tb_passport.id_passport" +
" JOIN tb_country ON tb_country.id_country=tb_passport.id_country" +
" JOIN tb_region ON tb_region.id_region=tb_passport.id_region" +
" JOIN tb_city ON tb_city.id_city=tb_passport.id_city" +
" JOIN tb_district ON tb_district.id_district=tb_passport.id_district" +
" WHERE tableNumber=" + tn;
var selectQueryString3 = "SELECT tableNumber, tb_priznak.Value TBV,"+
" tb_occupation.Name TOPO, CONVERT(char(10),date_dvizeniya,102) as date,"+
" tb_uchastok.Name NU,tb_podrazdeleniye.Name NP FROM tb_worker" +
" RIGHT JOIN tb_dvizeniye ON tb_dvizeniye.id_worker=tb_worker.id_worker" +
" JOIN tb_priznak ON tb_priznak.id_priznak=tb_dvizeniye.id_priznak" +
" JOIN tb_occupation ON tb_occupation.id_profession=tb_dvizeniye.id_profession" +
" JOIN tb_uchastok ON tb_uchastok.id_uchastok=tb_occupation.id_uchastok" +
" JOIN tb_podrazdeleniye ON tb_podrazdeleniye.id_podrazdeleniye=tb_uchastok.id_podrazdeleniye" +
" WHERE tableNumber=" + tn;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Worker info</title>
<style>
table, th, td {
border: solid 1px #bbbbbb;
border-collapse: collapse;
padding: 2px;
}
</style>
</head>
<body>
<h1>Worker info</h1>
<h2>Работник</h2>
<table>
<thead>
<tr>
<th>ID</th>
<th>TN</th>
<th>Фамилия</th>
<th>Имя</th>
<th>Отчество</th>
<th>Дата рождения</th>
<th>Пол</th>
</tr>
</thead>
<tbody>
@foreach(var row in db.Query(selectQueryString))
{
<tr>
<td>@row.id_worker</td>
<td>@row.tableNumber</td>
<td>@row.FirstName</td>
<td>@row.MiddleName</td>
<td>@row.LastName</td>
<td>@row.date1</td>
<td>@row.GV</td>
</tr>
}
</tbody>
</table>
<h3>Пасспортные данные</h3>
<table>
<thead>
<tr>
<th>Серия</th>
<th>Номер</th>
<th colspan="4">Место получения</th>
<th>Дата получения</th>
</tr>
</thead>
<tbody>
@foreach(var row in db.Query(selectQueryString))
{
<tr>
<td>@row.series</td>
<td>@row.pasnumber</td>
<td>@row.IDCN</td>
<td>@row.IDRN</td>
<td>@row.IDCCN</td>
<td>@row.IDPD</td>
<td>@row.date2</td>
</tr>
}
</tbody>
</table>
<h3>Данные о прописке</h3>
<table>
<thead>
<tr>
<th colspan="8">Место прописки</th>
<th>Телефон</th>
</tr>
</thead>
<tbody>
@foreach(var row in db.Query(selectQueryString2))
{
<tr>
<td>@row.TBCV</td>
<td>@row.TBRV</td>
<td>@row.TBCCV</td>
<td>@row.TBDV</td>
<td>@row.zipCode</td>
<td>@row.street</td>
<td>@row.house_number</td>
<td>@row.flat_number</td>
<td>@row.phoneNumber</td>
</tr>
}
</tbody>
</table>
<h3>Движения</h3>
<table>
<thead>
<tr>
<th>TN</th>
<th>Признак</th>
<th>Подразделение</th>
<th>Участок</th>
<th>Должность</th>
<th>Дата движения</th>
</tr>
</thead>
<tbody>
@foreach(var row in db.Query(selectQueryString3))
{
<tr>
<td>@row.tableNumber</td>
<td>@row.TBV</td>
<td>@row.NP</td>
<td>@row.NU</td>
<td>@row.TOPO</td>
<td>@row.date</td>
</tr>
}
</tbody>
</table>
</body>
</html>
