Автор работы: Пользователь скрыл имя, 28 Декабря 2011 в 11:16, дипломная работа
В дипломном проекте рассмотрены общие подходы к реализации распределенных систем обработки данных на базе технологии клиент-сервер, а также задача создания действующей информационной системы на примере системы автоматизации расчетов с теплоснабжающими организациями предприятия ООО Альтернатива. Актуальность построения этой системы обусловлена резким ростом количества абонентов на информационное обслуживание предприятия ООО Альтернатива
Введение 4
1 Анализ технического задания 5
1.1 Техническое задание 5
1.2 Общие выводы из технического задания 5
2 Подходы к проектированию баз данных 6
2.1 Основные понятия теории реляционных баз данных 6
2.2 Сервер базы данных 10
2.2.1 Технология и модели "клиент-сервер" 10
2.2.2 Механизмы реализации активного ядра 18
2.2.3 Хранимые процедуры 19
2.2.4 Правила (триггеры) 20
2.2.5 Механизм событий 21
2.3 Обработка распределенных данных 21
2.4 Взаимодействие с PC-ориентированными СУБД 28
2.5 Обработка транзакций 31
2.6 Средства защиты данных в СУБД 35
2.7 Применение CASE-средств для информационного моделирования в системах обработки данных. 39
3 Реализация базы данных 40
3.1 Анализ существующей системы 41
3.2 Новая схема обмена информацией 42
3.3 Выбор операционной системы 42
3.4 Выбор сервера баз данных 43
3.5 Выбор средств разработки 44
3.6 Проектирование структуры базы данных 44
4 Реализация клиентского приложения 45
4.1 Назначение и состав клиентского приложения 45
4.2 Безопасность доступа к данным 45
4.2.1 Идентификация 45
4.2.2 Авторизация 46
4.2.3 Управление доступом на основе ролей 47
4.3 Алгоритм работы приложения 48
5 Разработка таблиц 48
5.1 Структура таблицы “nodes_prolog” 49
5.2 Структура таблицы “nodes_elektro” 50
5.3 Структура таблицы “ elektro_pokaz” 50
5.4 Структура таблицы “t943_name” 51
5.5 Структура таблицы “t942_name” 52
5.6 Структура таблицы “t943_name_totals” 52
5.7 Структура таблицы “t942_name_totals” 53
6 Руководство оператора 54
6.1 Запуск приложения 54
6.2 Начало работы 55
7 Экономическая часть 60
7.1 Особенности программного продукта как товара 60
7.2 Расчет затрат на изготовление подсистемы 60
7.3 Расчет экономической эффективности 69
8 Безопасность жизнедеятельности. Природопользование и охрана окружающей среды. 71
8.1 Краткое содержание дипломного проекта 71
8.2 Безопасность проекта 72
8.2.1 Вредные и опасные производственные факторы при работе с ПЭВМ 72
8.2.2 Электро- и пожаробезопасность на рабочем месте оператора ПЭВМ 73
8.2.2.1 Электробезопасность на рабочем месте 74
8.2.2.2 Пожарная безопасность на рабочем месте 76
8.2.3 Обеспечение микроклимата на рабочем месте. Освещенность, шум, вибрация 78
8.2.4 Расчет освещенности на рабочем месте оператора 79
8.2.4.1 Вводная часть 79
8.2.4.2 Описание помещения, в котором располагается рабочее место 79
8.2.4.3 Расчет освещенности на рабочем месте 80
8.2.4.4 Особенности освещения рабочих мест с видеотерминальными устройствами 82
8.2.4.5 Заключение 82
8.3 Эргономичность проекта 83
8.4 Природопользование проекта. Работа с видеодисплейными терминалами ПЭВМ. 85
8.5 Выводы по разделу 87
9 Выводы по выполненной работе 88
10 Список использованных источников 89
{
TreeListNodes tln = treeList1.Nodes[t].Nodes;
//Проходим по Parent нодам
for (int u = 0; u < tln.Count; u++)
{
//если нод выделен для отчета, запускаем процедуру отчета
if ((bool)tln[u]["CheckOtch"] == true)
{
// MessageBox.Show(tln[u].Tag.
CreateOtch(tln[u].Tag.
}
}
}
conn.Close();
}
private void treeList1_DoubleClick(object sender, EventArgs e)
{
if
(Convert.ToInt32(treeList1.
{
Form
Edit_Device = new Edit_Device(treeList1.
Edit_Device.ShowDialog();
}
}
private void
barSubItem4_ItemClick(object sender, DevExpress.XtraBars.ItemClickE
{
Form Setting = new Setting();
Setting.ShowDialog();
}
private void
repositoryItemCheckEdit1_
{
if
((bool)treeList1.Selection[0][
{
for
(int y = 0; y < treeList1.Selection[0].Nodes.
{
treeList1.Selection[0].Nodes[
}
}
else
{
for
(int y = 0; y < treeList1.Selection[0].Nodes.
{
treeList1.Selection[0].Nodes[
}
}
}
public void Nodes_elektro()
{
PgConnection conn = new PgConnection("Server=" + Properties.Settings.Default.
conn.Open();
PgCommand pg_db = new PgCommand("SELECT COUNT(*) FROM nodes_elektro", conn);
PgDataAdapter pg_da = new PgDataAdapter("SELECT id,abon_id,name_node FROM nodes_elektro", conn);
PgDataReader dr = pg_db.ExecuteReader();
dr.Read();
pg_da.Fill(ds_elektro);
dt_elektro = ds_elektro.Tables[0];
FillTreeView_Elektro(dt_
conn.Close();
}
public void FillTreeView_Elektro(DataTable dt_el)
{
DataRow[]
rows = dt_el.Select("abon_id
= 0");
foreach (DataRow row in rows)
{
TreeListNode parentNode = treeList2.AppendNode(new object[]
{ row["id"], row["abon_id"], row["name_node"], false }, null);
parentNode.Tag = row["id"];
FillNode_Elektro(parentNode, dt_el);
}
}
public void FillNode_Elektro(TreeListNode parentNode, DataTable dt_el)
{
DataRow[]
rows = dt_el.Select(string.Format("
foreach (DataRow row in rows)
{
TreeListNode parent_Node = treeList2.AppendNode(new object[] { row["id"], row["abon_id"], row["name_node"], false }, parentNode);
parent_Node.Tag = row["id"];
}
}
private void treeList2_Click(object sender, EventArgs e)
{
}
private void LoadData_Elektro(int node_id)
{
PgConnection conn = new PgConnection("Server=" + Properties.Settings.Default.
conn.Open();
PgCommand pg_da = new PgCommand("SELECT * FROM nodes_elektro WHERE id = " + node_id, conn);
PgDataReader dr = pg_da.ExecuteReader();
if (dr.Read())
{
name_elektro.Text = dr["name_node"].ToString();
name_elektro.Tag = dr["id"].ToString();
address_elektro.Text = dr["addres"].ToString();
type_elektro.Text = dr["type"].ToString();
device_id_elektro.Text = dr["device_id"].ToString();
device_id_elektro.Properties.
}
pg_da = new PgCommand("SELECT name_node FROM nodes_elektro WHERE id = " + dr["abon_id"].ToString(), conn);
dr = pg_da.ExecuteReader();
if (dr.Read())
{
kategory_elektro.Text = dr["name_node"].ToString();
kategory_elektro.Tag = dr["abon_id"].ToString();
kategory_elektro.Properties.
}
conn.Close();
}
private void treeList2_DoubleClick(object sender, EventArgs e)