Разработка и создание удаленной базы данных для автоматизации учета и отчетности в гостиничном комплексе “Ирина” на основе клиент-серве
Курсовая работа, 21 Февраля 2013, автор: пользователь скрыл имя
Краткое описание
Часто ли пользователю нужен полный доступ к базе? В большинстве случаев запрашивается только та информация, которая напрямую относится к его сфере деятельности. Лучшим решением может являться перенос части базы ближе к пользователям. При решении этой задачи подобным способом получается территориально распределенная (удаленная) база данных.
Организация удаленных баз данных дает ряд преимуществ: снижается время отклика системы, повышается надежность хранения данных, уменьшается стоимость аппаратной части за счет снижения объемов данных, хранящихся на одном сервере.
Содержание
Введение
Глава1 Основные подходы к проектированию удаленных баз данных
1.1 Основные понятия теории реляционных баз данных
1.2 Сервер базы данных
1.2.1 Технология и модели "клиент-сервер"
Глава 2 Технологии, исползуемые в работе
Глава 3 Реализация модели учета доходов Магазина и продаваемого товара»
3 Постановка задачи
3.1 Общие технические характеристики технологии InterBase
ЗАКЛЮЧЕНИЕ
Список используемой литературы
ПРИЛОЖЕНИЯ
Схема данных
Экранные формы
Листинги программы
Прикрепленные файлы: 1 файл
klient.doc
— 493.50 Кб (Скачать документ)Уровни изоляции данных: чтение подтвержденных данных, воспоизводимое чтение и стабильность таблиц..
Разделяемые, защищенные и монопольные блокировки для обеспечения уровн изоляции "стабильность таблиц"
Общие возможности:
- Резервирование данных без остановки сервера (backup)
- Немедленное автоматическое восстановление базы данных при сбоях
- Неограниченное число подсоединяемых баз данных
- Автоматическое управление двухфазным завершением транзакций
- Оптимальное хранение символьной информации (упаковка и сжатие) и BLOb-полей
Типы данных:
- Символьные (фиксированной и произвольной длины): до 32Кб на поле
- Целочисленные (короткое и длинное целое)
- Вещественные: простой и двойной точности
- Дата/Время: от 1 Января 100 года до 11 декабря 5491 года
- Многомерные массивы: до 16 измерений на одно поле
BLOB: неограниченная длина, возможность определения пользовательских подтипов
Импорт и экспорт ASCII данных
Фильтры BLOB для сжатия или преобразования данных BLOB
Ограничения базы данных:
Максимальное количество записей в одной таблице: 2 миллиарда
Максимальный размер таблицы: ограничивается ресурсами системы
Количество баз данных в системе: ограничивается ресурсами системы
Количество активных пользователей: ограничивается ресурсами системы
Количество таблиц в базе данных: 64K
Количество индексов в базе данных: 64K
Максимальный размер записи (не включая BLOB: 64Kb)
Требования к системе:
Минимум оперативной памяти (необходимый минимум для операционной системы) и дискового пространства зависит от операционной системы конкретной платформы
Сетевой протокол: для всех платформ TCP/IP, другие протоколы в зависимости от конкретной платформы.
ЗАКЛЮЧЕНИЕ
Разработанная автоматизированная система предназначена для хранения информации о проданных товарах и о расходах клиентов.
Информация из данной базы будет использоваться продавцом, а также его директором.
Наиболее существенные преимущества разработанной АС:
- Поддержка наиболее распространенных сетевых операционных систем (Windows XP, Windows 2000, Windows ME); “прозрачная” переносимость между платформами;
- Основана на клиент-серверной технологии, что резко уменьшает загрузку сети, и увеличивает производительность труда менеджеров гостиничного комплекса;
- В приложении отсутствует программный код, связанный с базой данных. Поэтому приложение упрощается.
- Данная программа разработана под универсальное решение проблемы учета расходах клиентов, свободных и занятых номеров, поэтому содержит общие черты, характерные для работы магазина. Так же программа содержит графический интерфейс, удобный и интуитивно понятный;
- Данная программа – является базой для последующего модифицирования и наращивания функций.
В заключение отметим, что
автоматизация различных
В основу формализации положен событийный подход. Различаются следующие типы существенных событий.
- Начало работы.
- Заполнение таблицы классов номеров и соответствующих им номеров
- Регистрация клиента.
- Добавление расходов к клиентам.
- Изменение данных.
- Поиск необходимой информаций.
- Просмотр отчетов по продажам и товару.
- Окончание работы.
Список используемой литературы
- Хаббард Дж. Автоматизированное проектирование баз данных. – М.: Мир, 1984. – 294 с.
- Borland InterBase Workgroup Server. DataDefinition Guide. - Borland International Inc, 1995 - 212 c.
- Фаронов В. «Delphi 7» - Санкт-Петербург, Питер, 2002 год.
- Хансен Д., Хансен Г. «Базы данных. Разработка и управление» - Москва, Бином, 2000 год.
- Чекалов А. «Базы данных: от проектирования до разработки приложений» - Москва, 2003г.
- Мартин Грубер «Понимание SQL», Издательство Феникс, 1998 г, Москва
- В.А.Жигалов, Е.Г.Соколова «IntеrBase:Технология построения интерфейсов к базам данных» Москва, 2000г.
ПРИЛОЖЕНИЯ
Схема данных
Экранные формы
Рис 1. Форма с параметрами подключения для последующего соединения с базой
Рис 2. Форма для заполнения списка товаров
Рис 3 Форма для заполнения типов товаров, а также их видов и марок
Рис 4. Форма кассового модуля
Рис 5.Форма выбора и продажи товара
Рис 6. Форма проданного товара с учетом его количества, времени его продажи, и кем он был продан
Рис 7. Отчет по продажам
Листинги программы
SQL скрипт для создания базы данных на InterBase:
CREATE DATABASE 'KODAK.GDB' ;
CREATE TABLE "TOVAR" /*создание таблицы товаров */
(
"ID_TOVAR" INTEGER NOT NULL,
"VID" INTEGER NOT NULL,
"TYPE_T" INTEGER,
"MARKA" INTEGER NOT NULL,
"NAIM" VARCHAR(150) NOT NULL,
"MODEL" VARCHAR(20),
"XARAKTER" VARCHAR(50),
"STOIMOST" FLOAT NOT NULL,
CONSTRAINT "PK_TOVAR" PRIMARY KEY ("ID_TOVAR"), /* первичный ключ */
CONSTRAINT "TOVAR_NAIM" UNIQUE ("NAIM") /* уникальное поле */
);
ALTER TABLE "TOVAR" ADD CONSTRAINT "FK_TOVAR_1" FOREIGN KEY ("VID") REFERENCES VID_TOVARA ("ID_VID") ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE "TOVAR" ADD CONSTRAINT "FK_TOVAR_2" FOREIGN KEY ("TYPE_T") REFERENCES TYPES ("ID_TYPE") ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE "TOVAR" ADD CONSTRAINT "FK_TOVAR_3" FOREIGN KEY ("MARKA") REFERENCES MARKS ("ID_MARKA") ON UPDATE CASCADE ON DELETE CASCADE;
CREATE TABLE "KASSA" /*создание таблицы касса */
(
"ID_KASSA" INTEGER NOT NULL,
"DATA" DATE NOT NULL,
"VREMA" TIME NOT NULL,
"PRINATO" FLOAT NOT NULL,
"SDACHA" FLOAT NOT NULL,
"PRIB" FLOAT NOT NULL,
"RABOT" INTEGER NOT NULL,
CONSTRAINT "PK_KASSA" PRIMARY KEY ("ID_KASSA")
);
ALTER TABLE "KASSA" ADD CONSTRAINT "FK_KASSA_1" FOREIGN KEY ("RABOT") REFERENCES RABOTNIKI ("ID_RAB") ON UPDATE CASCADE ON DELETE CASCADE;
CREATE TABLE "PRODAJA" /*создание таблицы продажа*/
(
"ID_PRODAJA" INTEGER NOT NULL,
"DATA" DATE NOT NULL,
"VREMA" TIME NOT NULL,
"TOVAR" INTEGER NOT NULL,
"KOL_VO" FLOAT NOT NULL,
"SUMMA" FLOAT NOT NULL,
CONSTRAINT "PK_PRODAJA" PRIMARY KEY ("ID_PRODAJA")/* первичный ключ */
CREATE TABLE "MARKS" /*создание таблицы марка */
(
"ID_MARKA" INTEGER NOT NULL,
"NAIM" VARCHAR(50) NOT NULL,
"VID" INTEGER NOT NULL,
CONSTRAINT "MARKA_NAIM" UNIQUE ("NAIM"), /* уникальное поле */
CONSTRAINT "PK_MARKS" PRIMARY KEY ("ID_MARKA") /* первичный ключ */
CREATE TABLE "TYPES" /*создание таблицы тип */
(
"ID_TYPE" INTEGER NOT NULL,
"NAIM" VARCHAR(50) NOT NULL,
"VID" INTEGER NOT NULL,
CONSTRAINT "PK_TYPES" PRIMARY KEY ("ID_TYPE"), /* первичный ключ */
CONSTRAINT "TYPE_NAIM" UNIQUE ("NAIM")); /* уникальное поле */
CREATE TABLE "RABOTNIKI" /*создание таблицы работники */
(
"ID_RAB" INTEGER NOT NULL,
"POLZ" VARCHAR(30),
"PASS" VARCHAR(30),
"FIO" VARCHAR(50),
CONSTRAINT "PK_RABOTNIKI" PRIMARY KEY ("ID_RAB")/* первичный ключ */
);
CREATE TABLE "PRODANOE" /*создание таблицы проданое */
(
"ID_PRODAN" INTEGER NOT NULL,
"DATA" DATE NOT NULL,
"NAIM" VARCHAR(150),
"KOL_VO" FLOAT NOT NULL,
"SUMMA" FLOAT NOT NULL,
"VREMA" TIME NOT NULL,
"RABOT" INTEGER NOT NULL,
CONSTRAINT "PK_PRODANOE" PRIMARY KEY ("ID_PRODAN")/* первичный ключ */
);
ALTER TABLE "PRODANOE" ADD CONSTRAINT "FK_PRODANOE_1" FOREIGN KEY ("RABOT") REFERENCES RABOTNIKI ("ID_RAB") ON UPDATE CASCADE ON DELETE CASCADE;
CREATE TABLE "VID_TOVARA" /*создание таблицы вид товара */
(
"ID_VID" INTEGER NOT NULL,
"NAIM" VARCHAR(50) NOT NULL,
CONSTRAINT "PK_VID_TOVARA" PRIMARY KEY ("ID_VID"),
CONSTRAINT "VID_TOVARA_NAIM" UNIQUE ("NAIM") /* уникальное поле */
);
Cоздание внешних ключей и ограничения ссылочной целостности:
ALTER TABLE "KASSA" ADD CONSTRAINT "FK_KASSA_1" FOREIGN KEY ("RABOT") REFERENCES RABOTNIKI ("ID_RAB") ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE "PRODANOE" ADD CONSTRAINT "FK_PRODANOE_1" FOREIGN KEY ("RABOT") REFERENCES RABOTNIKI ("ID_RAB") ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE "TOVAR" ADD CONSTRAINT "FK_TOVAR_1" FOREIGN KEY ("VID") REFERENCES VID_TOVARA ("ID_VID") ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE "TOVAR" ADD CONSTRAINT "FK_TOVAR_2" FOREIGN KEY ("TYPE_T") REFERENCES TYPES ("ID_TYPE") ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE "TOVAR" ADD CONSTRAINT "FK_TOVAR_3" FOREIGN KEY ("MARKA") REFERENCES MARKS ("ID_MARKA") ON UPDATE CASCADE ON DELETE CASCADE;
Создание генераторов для создания автоинкрементных полей в таблицах:
CREATE GENERATOR "GEN_KASSA_ID";
CREATE GENERATOR "GEN_MARKS_ID";
CREATE GENERATOR "GEN_PRODAJA_ID";
CREATE GENERATOR "GEN_PRODANOE_ID";
CREATE GENERATOR "GEN_TOVAR_ID";
CREATE GENERATOR "GEN_TYPES_ID";
CREATE GENERATOR "GEN_VID_TOVARA_ID";
Исходный код обработчика базы данных:
Модуль main:
object frmMain: TfrmMain
Left = 283
Top = 184
BorderIcons = [biSystemMenu]
BorderStyle = bsSingle
ClientHeight = 250
ClientWidth = 453
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
FormStyle = fsStayOnTop
OldCreateOrder = False
OnClose = FormClose
PixelsPerInch = 96
TextHeight = 13
object GroupBox1: TGroupBox
Left = 0
Top = 0
Width = 233
Height = 249
Caption = #1054#1089#1085#1086#1074#
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -19
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
TabOrder = 0
object spT: TSpeedButton
Left = 8
Top = 32
Width = 217
Height = 49
Caption = #1058#1054#1042#1040#1056#1067
Enabled = False
Flat = True
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -19
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
OnClick = spTClick
end
object spP: TSpeedButton
Left = 8
Top = 81
Width = 217
Height = 49
Caption = #1055#1056#1054#1044#1040#
Enabled = False
Flat = True
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -19
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
OnClick = spPClick
end
object spK: TSpeedButton
Left = 8
Top = 130
Width = 217
Height = 49
Caption = #1050#1040#1057#1057#1040
Enabled = False
Flat = True
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -19
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
OnClick = spKClick
end
object SpPr: TSpeedButton
Left = 8
Top = 179
Width = 217
Height = 49
Caption = #1055#1056#1054#1044#1040#
Enabled = False
Flat = True
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -19
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
OnClick = SpPrClick
end
end
object tuser: TLabeledEdit
Left = 248
Top = 80
Width = 201
Height = 32
CharCase = ecUpperCase
EditLabel.Width = 134
EditLabel.Height = 24
EditLabel.Caption = #1055#1086#1083#1100#1079#