Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Построение ленточного графика выполнения работы

 

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

Продолжительность каждой работы Tn определяется по формуле:

где Ti    - трудоемкость работ (чел./дн.)

       Ci   - численность исполнителей (чел.)

 

Таб.4.3. Ленточный график выполнения работ.

№ n/n Этап и содержание работы Трудоемкость (чел./дн.) Численность (чел.) Длит-ть работы (дн.)
1 2 3 4 5
1 Постановка задачи и составление технического задания 5 3 1,67
2 Составление плана и календарного графика работы 1 2 0,5
3 Подбор и изучение технической документации и литературы 14 2 7
4 Написание вводной части и литературного обзора 5 1 5
5 Информационное моделирование системы 28 2 14
6 Разработка коммуникационного сервера 12 1 12
7 Отладка коммуникационного сервера 18 2 9
8 Написание теоретической части работы 15 2 7,5
9 Выводы по теоретической части проекта 2 2 1
10 Подбор данных и расчет экономической части проекта 4 2 2
11 Анализ проделанной работы 2 1 2
12 Составление пояснительной записки к дипломному проекту 12 1 12
13 Оформление графической части работы 12 1 12

 

1 2 3 4 5
14 Оформление приложений к дипломному проекту 5 1 5
15 Сдача работы на отзыв руководителю 2 1 2
16 Сдача работы на рецензирование 2 1 2
17 Сдача дипломного проекта на кафедру 1 1 1
  ИТОГО: 140   94,67

 

3.4 Определение плановой себестоимости НИР

 

       Целью расчета себестоимости НИР является экономически обоснованной определение величины затрат на её выполнение. В плановую себестоимость включают все затраты, связанные с выполнением работы, независимо от источника финансирования. Определение затрат производится путем составления затрат на НИР.

       Смета затрат на НИР должна быть представлена по следующим статьям калькуляции:

 

1. Материалы, покупные изделия и полуфабрикаты;

2. Спецоборудование для научных исследований;

3. Расходы на силовую электроэнергию.

4. Основная заработная плата производственного персонала;

5. Отчисления на социальное страхование;

6. Косвенные (накладные) расходы отдела(кафедры);

7. Производственные командировки;

8. Контрагентные работы, которые включают стоимость работ, выполняемых для темы другими организациями.

9. Оплата услуг опытного производства, находящегося на самостоятельном балансе;

10. Общеуниверситетские косвенные расходы;

11. Расходы на научно-техническую информацию;

12. Расходы на зарубежные лицензии и патенты;

13. Отчисления в пенсионный фонд;

14. Отчисления в фонд занятости;

15. Отчисления на медицинское страхование;

16. Затраты на эксплуатацию оборудования (амортизацию).

 

1. Расчет стоимости покупных изделий представлен в таблице.

 

Таб.4.3. Стоимость покупных изделий.

Изделие Количество Цена за единицу, руб Сумма, руб
Дискета 3.5’’ 1 5500 5500
Ватман 5 5000 25000
Бумага 1 30000 30000
ИТОГО:     60500

 

2. Спецоборудование для работ не применялось, расходы отсутствуют.

3. Работы с использованием силовой электроэнергии не проводились, расходы отсутствуют.

4. В качестве базы для расчета заработной платы принимается месячный оклад кандидата наук в размере 345000 руб. (13 разряд), что составляет в пересчете на 1 учебный час работы при 800-часовой годовой нагрузке:

       (345000 * 12) / 800 = 5175 (руб./час)

Руководство дипломным проектированием оценивается преподавателем в 6 учебных часов. Таким образом, получим основную заработную плату производственного персонала в размере:

5175 * 26 = 134550 (руб.)

5. Отчисление на социальное страхование. По условию договора составляют 5,4% от заработной платы (п.4). Сумма расходов по статье 7265 руб.

6. Косвенные (накладные) расходы кафедры условиями договора не предусмотрены.

7. Производственные командировки условиями договора не предусмотрены.

8. Контрагентные работы не проводились, расходы отсутствуют.

9. Оплата услуг опытного производства, находящегося на самостоятельном балансе не проводилась.

10. Общевузовские расходы. По условиям договора берутся 15% от заработной платы (от п.4) и составляют 20183 руб.

11. Расходы на научно-техническую информацию отсутствуют.

12. Расходы на зарубежные лицензии и патенты отсутствуют.

13. Отчисления в пенсионный фонд. Данные расходы берутся в размере 1% от основной заработной платы производственного персонала (п.4) и составляют 1345 руб.

14. Отчисления в фонд занятости. Расходы по данной статье 2% от основной заработной платы производственного персонала (п.4) или 2691 руб.

15. Отчисления на медицинское страхование. На эти нужды отчисляется 3,6% от основной заработной платы производственного персонала (п.4) или 4844 руб.

16. Затраты на эксплуатацию оборудования (амортизацию). В процессе работы над проектом использовались персональный компьютер IBM PC Pentium 133 и принтер. Отчисления на амортизацию данной техники составляют 3200 руб. за 1 час работы и составляют при 300-часовой эксплуатации компьютера и 5-часовой принтера

   3200 * (300 + 5) = 976000 руб.

 

Результаты калькуляции по статьям сведены в таблицу

 

Таб.4.4. Калькуляция по статьям расходов.

Статья расходов Сумма, руб.
Материалы, покупные изделия и полуфабрикаты 60500
Основная заработная плата производственного персонала 134550
Отчисления на социальное страхование (5,4% от зарплаты) 7265
Отчисления в фонд занятости (2% от зарплаты) 2691
Отчисления на медицинское страхование (3,6 % от зарплаты) 4844
Налог на содержание МВД (1% от минимальной заработной платы) 835
Общеуниверситетские косвенные расходы (15% от зарплаты) 20183
Отчисления в пенсионный фонд (1% от зарплаты) 1345
Затраты на эксплуатацию оборудования (амортизацию) 976000
ИТОГО: 1207213

 


Заключение

 

       За время работы над дипломным проектом по теме «Организация удаленного доступа к распределенным базам данных» были изучены теоретические основы построения распределенных информационных систем с возможностью оперативного удаленного доступа к данным.

       Результатом дипломного проектирования является информационная система для автоматизации расчетов с абонентами АО «Связьинформ» РМ. В ходе работы было проведено информационное моделирование объекта, построена структура баз данных, отвечающая предъявляемым требованиям, а также разработана архитектура информационной системы. Кроме того, было разработано программное обеспечение для автоматизации администрирования и решения задач удаленного доступа, удаленного управления и репликации данных.

       Отдельная глава посвящена технико-экономическому обоснованию данного дипломного проекта.

           

           


Список литературы

 

1. Borland InterBase Workgroup Server. API Guide. - Borland International Inc, 1995 - 330 c.

2. Borland InterBase Workgroup Server. DataDefinition Guide. - Borland International Inc, 1995 - 212 c.

3. Borland InterBase Workgroup Server. Language Reference. - Borland International Inc, 1995 - 234 c.

4. Borland InterBase Workgroup Server. Programmer’s Guide. - Borland International Inc, 1995 - 340 c.

5. Microsoft Online Documentation: Win32 Programmers Reference.

6. R.Barker "CASE* Method - Entity Relationship Modelling". - Oracle Inc., 1990 - 243 c.

7. Биллиг В.А., Мусикаев И.Х. «Visual C++ 4. Книга для программистов». - М.: Издательский отдел «Русская редакция» ТОО «Channel Trading Ltd.», 1996. - 352 с. ил.

8. Галатенко В. «Информационная безопасность - обзор основных положений: Ч1»: - Информационный бюллетень Jet Info №1/1996.

9. Галатенко В. «Информационная безопасность - обзор основных положений: Ч2»: - Информационный бюллетень Jet Info №2/1996.

10. Галатенко В. «Информационная безопасность - обзор основных положений: Ч3»: - Информационный бюллетень Jet Info №3/1996.

11. Грабер Мартин. “Введение в SQL”. Пер. с англ. - М.: Издательство “ЛОРИ”, 1996. - 375 с., ил.

12. Зубанов Ф. «Windows NT - выбор «профи»». - М.: Издательский отдел «Русская редакция» ТОО «Channel Trading Ltd.», 1996. - 392 с. ил.

13. Кастер Х. «Основы Windows NT и NTFS». Пер. с англ. - М: Издательский отдел «Русская редакция» ТОО «Channel Trading Ltd.», 1996. - 440 с. ил.

14. Ладыженский Глеб. «СУБД - коротко о главном»: - Информационный бюллетень Jet Info №3-5/1995.

15. Ларин Л.С., Челдаева Л.А., Гуськова Н.Д."Технико-экономическое обоснование дипломных проектов", Саранск, 1983, 100 с.

16. «Решения Microsoft» - Вып. 4. - М: АООТ «Типография Новости», 1996. 124 с., ил.

17. «Решения Microsoft» - Вып. 5. - М: АООТ «Типография Новости», 1997. 132 с., ил.

18. Рихтер Дж.. «Windows для профессионалов (Программирование в Win32 API для Windows 95 и Windows NT)». Пер. с англ. - М: Издательский отдел «Русская редакция» ТОО «Channel Trading Ltd.», 1995. - 720 с. ил.

19. Паппас К., Мюррей У.. «Visual C++. Руководство для профессионалов»: пер. с англ. - Спб.: BHV - Санкт-Петербург, 1996. - 912 с., ил.

20. «Сетевые средства Windows NT»: Пер. с англ. - СПб.: BHV - Санкт-Петербург, 1996 - 496 с., ил.

21. Фролов А.В., Фролов Г.В. «Microsoft Visual C++  и MFC». - М: Диалог-МИФИ, 1996 - 288 с., ил.

22. Фролов А.В., Фролов Г.В. «Программирование для Windows NT: Ч2». - М: Диалог-МИФИ, 1997 - 271 с., ил.

23. Янг М. «Mastering Microsoft Visual C++». Пер. с англ.- К.: ВЕК+, М.: ЭНТРОП, 1997. - 704 с., ил.

 


Приложение 1

 

SQL-скрипт для генерации базы данных

 

CREATE GENERATOR genUslPropsKeys;

 

CREATE GENERATOR genUslProps;

 

CREATE GENERATOR genPhonesRegions;

 

CREATE GENERATOR genPhonesStations;

 

CREATE GENERATOR genPhonesStreets;

 

CREATE GENERATOR genPhonesBanks;

 

CREATE GENERATOR genTalksPay;

 

CREATE GENERATOR genTalks;

 

CREATE GENERATOR genNach;

 

CREATE GENERATOR genNachBillings;

 

CREATE GENERATOR genNachBillDates;

 

CREATE GENERATOR genNachConstUsl;

 

CREATE GENERATOR genUslDivisions;

 

CREATE GENERATOR genUslLgots;

 

CREATE GENERATOR genUslsKeys;

 

CREATE GENERATOR genUsls;

 

CREATE GENERATOR genUslCatKeys;

 

CREATE GENERATOR genUslCat;

 

CREATE GENERATOR genPhones;

 

CREATE GENERATOR genPhonesOwnersKeys;

 

CREATE GENERATOR genPhonesOwners;

 

CREATE GENERATOR genSysSettings;

 

CREATE GENERATOR genPhonesKeys;

 

CREATE GENERATOR genPlat;

 

CREATE GENERATOR genPhonesPostStations;

 

CREATE GENERATOR genSysLog;

 

CREATE GENERATOR genUslTypes;

 

CREATE GENERATOR genUslDivisionsKeys;

 

 

 

 

CREATE DOMAIN CALLTIME_TYPE INTEGER NOT NULL;

 

CREATE DOMAIN CURR_TYPE FLOAT DEFAULT 0 NOT NULL;

 

CREATE DOMAIN DATE_TYPE DATE NOT NULL;

 

CREATE DOMAIN DESCR_TYPE CHAR(32);

 

CREATE DOMAIN PHONE_TYPE CHAR(7) NOT NULL;

 

CREATE DOMAIN PROCENT_TYPE FLOAT DEFAULT 100 NOT NULL

                              CHECK (VALUE BETWEEN 0 AND 300);

 

CREATE TABLE Nach (

  Code            INTEGER NOT NULL,

  Owner           INTEGER NOT NULL,

  Usl             INTEGER NOT NULL,

  Phone           INTEGER,

  UslSum          CURR_TYPE,

  NachDate        DATE_TYPE,

  BillDate        DATE_TYPE

);

 

 

ALTER TABLE Nach

  ADD CONSTRAINT XPKNach PRIMARY KEY (Code);

 

 

CREATE TABLE NachBillDates (

  Code            INTEGER NOT NULL,

  BillingDate     INTEGER NOT NULL

);

 

 

ALTER TABLE NachBillDates

  ADD CONSTRAINT XPKBillDates PRIMARY KEY (Code);

 

 

CREATE TABLE NachBillings (

  Code            INTEGER NOT NULL,

  Division        INTEGER NOT NULL,

  Owner           INTEGER NOT NULL,

  BillDateCode    INTEGER NOT NULL

);

 

 

ALTER TABLE NachBillings

  ADD CONSTRAINT XPKNachBillings PRIMARY KEY (Code);

 

 

CREATE TABLE NachConstUsl (

  Code            INTEGER NOT NULL,

  Owner           INTEGER NOT NULL,

  Usl             INTEGER NOT NULL,

  Phone           INTEGER NOT NULL,

  UslSum          CURR_TYPE,

  BegDate         DATE_TYPE,

  EndDate         DATE_TYPE

);

 

 

ALTER TABLE NachConstUsl

  ADD CONSTRAINT XPKNachConstUsl PRIMARY KEY (Code);

 

 

CREATE TABLE Phones (

  Code            INTEGER NOT NULL,

  Street          INTEGER NOT NULL,

  Owner           INTEGER NOT NULL,

  PKey            INTEGER NOT NULL,

  Comment         DESCR_TYPE,

  PhoneNmb        PHONE_TYPE,

  InstallDate     DATE_TYPE,

  RemoveDate      DATE_TYPE,

  BegDate         DATE_TYPE,

  EndDate         DATE_TYPE

);

 

 

ALTER TABLE Phones

  ADD CONSTRAINT XPKPhones PRIMARY KEY (Code);

 

CREATE TRIGGER Phones_BUH FOR Phones

BEFORE UPDATE POSITION 0

AS

BEGIN

 

 /* Изменение BegDate */

 IF (new.BegDate <> old.BegDate) THEN

BEGIN

IF (new.BegDate < old.BegDate) THEN

  BEGIN

    /* Расширение BegDate */

    UPDATE Phones

     SET EndDate = new.BegDate

     WHERE ((new.BegDate BETWEEN BegDate AND EndDate) AND (PKey = new.PKey));

 

       

  END

ELSE

  BEGIN

    /* Сужение BegDate */

    UPDATE Phones

     SET EndDate = new.BegDate

     WHERE ((EndDate = old.BegDate) AND (PKey = new.PKey));

 

 

  END

END

 

 /* Изменение EndDate */

 IF (new.EndDate <> old.EndDate) THEN

BEGIN

IF (new.EndDate > old.EndDate) THEN

  BEGIN

    /* Расширение EndDate */

     UPDATE Phones

     SET BegDate = new.EndDate

     WHERE ((new.EndDate BETWEEN BegDate AND EndDate) AND (PKey = new.PKey));

 

       

  END

ELSE

  BEGIN

    /* Сужение EndDate */

     UPDATE Phones

     SET BegDate = new.EndDate

     WHERE ((BegDate = old.EndDate) AND (PKey = new.PKey));

 

 

  END

END

 

/* Сборка мусора  */

DELETE FROM Phones

WHERE ((BegDate >= new.BegDate) AND (EndDate <= new.EndDate) AND (PKey = new.PKey) AND (Code <> new.Code));

 

 

END ^

 

 

CREATE TRIGGER Phones_BIH FOR Phones

BEFORE INSERT POSITION 0

AS

BEGIN

 

DELETE FROM Phones

WHERE ((BegDate >= new.BegDate) AND (EndDate <= new.EndDate) AND (PKey = new.PKey));

 

 

UPDATE Phones

SET BegDate = new.EndDate

WHERE ((new.EndDate BETWEEN BegDate AND EndDate) AND (PKey = new.PKey));

 

 

UPDATE Phones

SET EndDate = new.BegDate

WHERE ((new.BegDate BETWEEN BegDate AND EndDate) AND (PKey = new.PKey));

 

 

END ^

 

CREATE TRIGGER Phones_BDH FOR Phones

BEFORE DELETE POSITION 0

AS

BEGIN

 

UPDATE Phones

SET EndDate = old.EndDate

WHERE ((EndDate = old.BegDate) AND (PKey = old.PKey));

 

 

END ^

 

 

CREATE TABLE PhonesBanks (

  Code            INTEGER NOT NULL,

  Name1           DESCR_TYPE,

  PMFO            CHAR(12) NOT NULL,

  Name2           DESCR_TYPE,

  ELMFO           CHAR(12) NOT NULL,

  PlatCount       SMALLINT NOT NULL,

  Acc1            CHAR(12) NOT NULL,

  Acc2            CHAR(12) NOT NULL

);

 

CREATE INDEX XIEPhonesBanksName ON PhonesBanks

(

  Name1,

  Name2

);

 

 

ALTER TABLE PhonesBanks

  ADD CONSTRAINT XPKPhonesBanks PRIMARY KEY (Code);

 

 

CREATE TABLE PhonesKeys (

  Code            INTEGER NOT NULL

);

 

 

ALTER TABLE PhonesKeys

  ADD CONSTRAINT XPKPhonesKeys PRIMARY KEY (Code);

 

 

CREATE TABLE PhonesOwners (

  Code            INTEGER NOT NULL,

  PKey            INTEGER NOT NULL,

  Name1           DESCR_TYPE,

  Name2           DESCR_TYPE,

  Category        INTEGER NOT NULL,

  Bank            INTEGER,

  Street          INTEGER NOT NULL,

  PostStation     INTEGER,

  House           CHAR(5),

  Corpus          CHAR(3),

  Flat               CHAR(3),

  Account         CHAR(5),

  RS              CHAR(9),

  INN             CHAR(13),

  Nmb_Dogov       CHAR(6),

  Date_Dogov      DATE,

  BegDate         DATE_TYPE,

  EndDate         DATE_TYPE

);

 

 

ALTER TABLE PhonesOwners

  ADD CONSTRAINT XPKPhonesOwners PRIMARY KEY (Code);

 

CREATE TRIGGER PhonesOwners_BUH FOR PhonesOwners

BEFORE UPDATE POSITION 0

AS

BEGIN

 

 /* Изменение BegDate */

 IF (new.BegDate <> old.BegDate) THEN

BEGIN

IF (new.BegDate < old.BegDate) THEN

  BEGIN

    /* Расширение BegDate */

    UPDATE PhonesOwners

     SET EndDate = new.BegDate

     WHERE ((new.BegDate BETWEEN BegDate AND EndDate) AND (PKey = new.PKey));

 

       

  END

ELSE

  BEGIN

    /* Сужение BegDate */

    UPDATE PhonesOwners

     SET EndDate = new.BegDate

     WHERE ((EndDate = old.BegDate) AND (PKey = new.PKey));

 

 

  END

END

 

 /*    Изменение EndDate */

 IF (new.EndDate <> old.EndDate) THEN

BEGIN

IF (new.EndDate > old.EndDate) THEN

  BEGIN

    /* Расширение EndDate */

     UPDATE PhonesOwners

     SET BegDate = new.EndDate

     WHERE ((new.EndDate BETWEEN BegDate AND EndDate) AND (PKey = new.PKey));

 

       

  END

ELSE

  BEGIN

    /* Сужение EndDate */

     UPDATE PhonesOwners

     SET BegDate = new.EndDate

     WHERE ((BegDate = old.EndDate) AND (PKey = new.PKey));

 

 

  END

END

 

/* Сборка мусора  */

DELETE FROM PhonesOwners

WHERE ((BegDate >= new.BegDate) AND (EndDate <= new.EndDate) AND (PKey = new.PKey) AND (Code <> new.Code));

 

 

END ^

 

 

CREATE TRIGGER PhonesOwners_BIH FOR PhonesOwners

BEFORE INSERT POSITION 0

AS

BEGIN

 

DELETE FROM PhonesOwners

WHERE ((BegDate >= new.BegDate) AND (EndDate <= new.EndDate) AND (PKey = new.PKey));

 

 

UPDATE PhonesOwners

SET BegDate = new.EndDate

WHERE ((new.EndDate BETWEEN BegDate AND EndDate) AND (PKey = new.PKey));

 

 

UPDATE PhonesOwners

SET EndDate = new.BegDate

WHERE ((new.BegDate BETWEEN BegDate AND EndDate) AND (PKey = new.PKey));

 

 

END ^

 

CREATE TRIGGER PhonesOwners_BDH FOR PhonesOwners

BEFORE DELETE POSITION 0

AS

BEGIN

 

UPDATE PhonesOwners

SET EndDate = old.EndDate

WHERE ((EndDate = old.BegDate) AND (PKey = old.PKey));

 

 

END ^

 

 

CREATE TABLE PhonesOwnersKeys (

  Code            INTEGER NOT NULL,

  InRest          CURR_TYPE,

  OutRest         CURR_TYPE,

  NDolg           INTEGER NOT NULL

);

 

 

ALTER TABLE PhonesOwnersKeys

  ADD CONSTRAINT XPKPhonesOwnersKeys PRIMARY KEY (Code);

 

 

CREATE TABLE PhonesPostStations (

  Code            INTEGER NOT NULL,

  Name            DESCR_TYPE,

  Region          INTEGER NOT NULL,

  PostIndex       CHAR(6) NOT NULL,

  PostNmb         CHAR(6) NOT NULL

);

 

CREATE UNIQUE INDEX XAKPhonesPostStationsIndex ON PhonesPostStations

(

  PostIndex

);

 

CREATE UNIQUE INDEX XAKPhonesPostStationsPostNmb ON PhonesPostStations

(

  PostNmb

);

 

CREATE INDEX XIEPhonesPostStationsName ON PhonesPostStations

(

  Name

);

 

 

ALTER TABLE PhonesPostStations

  ADD CONSTRAINT XPKPhonesPostStations PRIMARY KEY (Code);

 

 

CREATE TABLE PhonesRegions (

  Code            INTEGER NOT NULL,

  Name            DESCR_TYPE NOT NULL

);

 

CREATE INDEX XIEPhonesRegionsName ON PhonesRegions

(

  Name

);

 

 

ALTER TABLE PhonesRegions

  ADD CONSTRAINT XPKPhonesRegions PRIMARY KEY (Code);

 

 

CREATE TABLE PhonesStations (

  Code            INTEGER NOT NULL,

  Region          INTEGER NOT NULL,

  Name            DESCR_TYPE NOT NULL

);

 

CREATE INDEX XIEPhonesStationsName ON PhonesStations

(

  Name

);

 

 

ALTER TABLE PhonesStations

  ADD CONSTRAINT XPKPhonesStations PRIMARY KEY (Code);

 

 

CREATE TABLE PhonesStreets (

  Code               INTEGER NOT NULL,

  Station         INTEGER NOT NULL,

  Region          INTEGER NOT NULL,

  Name            DESCR_TYPE

);

 

CREATE INDEX XIEPhonesStreetsName ON PhonesStreets

(

  Name

);

 

 

ALTER TABLE PhonesStreets

  ADD CONSTRAINT XPKPhonesStreets PRIMARY KEY (Code);

 

 

CREATE TABLE Plat (

  Code            INTEGER NOT NULL,

  Owner           INTEGER NOT NULL,

  ToUsl           INTEGER,

  PlatDate        DATE_TYPE,

  PlatType        INTEGER NOT NULL,

  DocNmb          CHAR(12) NOT NULL

);

 

 

ALTER TABLE Plat

  ADD CONSTRAINT XPKPlat PRIMARY KEY (Code);

 

 

CREATE TABLE SysLog (

  Code            INTEGER NOT NULL,

  TableName       CHAR(16) NOT NULL,

  OpType          INTEGER NOT NULL,

  NewData         CHAR(64) NOT NULL,

  OpDate          DATE NOT NULL

);

 

 

ALTER TABLE SysLog

  ADD CONSTRAINT XPKSysLog PRIMARY KEY (Code);

 

 

CREATE TABLE SysSettings (

  Code            INTEGER NOT NULL,

  TimeTalksUsl    INTEGER NOT NULL,

  NullOwner       INTEGER NOT NULL

);

 

 

ALTER TABLE SysSettings

  ADD CONSTRAINT XPKSysSettings PRIMARY KEY (Code);

 

 

CREATE TABLE Talks (

  Code            INTEGER NOT NULL,

  DayCode         INTEGER NOT NULL,

  Phone           INTEGER NOT NULL,

  ToPhone         INTEGER NOT NULL,

  CallTime        CALLTIME_TYPE,

  PhoneNmb        PHONE_TYPE,

  HowLong         INTEGER NOT NULL,

  ToPhoneNmb      PHONE_TYPE,

  Calculated      SMALLINT NOT NULL,

  CallDate        DATE_TYPE

);

 

CREATE INDEX XAK1TalksCallDate ON Talks

(

  CallDate

);

 

 

ALTER TABLE Talks

  ADD CONSTRAINT XPKTalks PRIMARY KEY (Code);

 

 

CREATE TABLE TalksPay (

  Code            INTEGER NOT NULL,

  Phone           INTEGER NOT NULL,

  TotalSum        CURR_TYPE,

  TotalLgotTime   CALLTIME_TYPE,

  TotalFullTime   CALLTIME_TYPE,

  TotalTime       COMPUTED BY (TotalLgotTime+TotalFullTime),

  CallDate        DATE_TYPE

);

 

 

ALTER TABLE TalksPay

  ADD CONSTRAINT XPKTalksPay PRIMARY KEY (Code);

 

 

CREATE TABLE UslCat (

  Code            INTEGER NOT NULL,

  PKey            INTEGER NOT NULL,

  Name            DESCR_TYPE,

  Parent          INTEGER NOT NULL,

  BegDate         DATE_TYPE,

  EndDate         DATE_TYPE

);

 

CREATE INDEX XIEUslCatName ON UslCat

(

  Name

);

 

CREATE INDEX XIEUslCatParent ON UslCat

(

  Parent

);

 

 

ALTER TABLE UslCat

  ADD CONSTRAINT XPKUslCat PRIMARY KEY (Code);

 

CREATE TRIGGER UslCat_BUH FOR UslCat

BEFORE UPDATE POSITION 0

AS

BEGIN

 

 /* Изменение BegDate */

 IF (new.BegDate <> old.BegDate) THEN

BEGIN

IF (new.BegDate < old.BegDate) THEN

  BEGIN

    /* Расширение BegDate */

    UPDATE UslCat

     SET EndDate = new.BegDate

     WHERE ((new.BegDate BETWEEN BegDate AND EndDate) AND (PKey = new.PKey));

 

       

  END

ELSE

  BEGIN

    /* Сужение BegDate */

    UPDATE UslCat

     SET EndDate = new.BegDate

     WHERE ((EndDate = old.BegDate) AND (PKey = new.PKey));

 

 

  END

END

 

 /* Изменение EndDate */

 IF (new.EndDate <> old.EndDate) THEN

BEGIN

IF (new.EndDate > old.EndDate) THEN

  BEGIN

    /* Расширение EndDate */

     UPDATE UslCat

     SET BegDate = new.EndDate

     WHERE ((new.EndDate BETWEEN BegDate AND EndDate) AND (PKey = new.PKey));

 

       

  END

ELSE

  BEGIN

    /* Сужение EndDate */

     UPDATE UslCat

     SET BegDate = new.EndDate

     WHERE ((BegDate = old.EndDate) AND (PKey = new.PKey));

 

 

  END

END

 

/* Сборка мусора  */

DELETE FROM UslCat

WHERE ((BegDate >= new.BegDate) AND (EndDate <= new.EndDate) AND (PKey = new.PKey) AND (Code <> new.Code));

 

 

END ^

 

 

CREATE TRIGGER UslCat_BIH FOR UslCat

BEFORE INSERT POSITION 0

AS

BEGIN

 

DELETE FROM UslCat

WHERE ((BegDate >= new.BegDate) AND (EndDate <= new.EndDate) AND (PKey = new.PKey));

 

 

UPDATE UslCat

SET BegDate = new.EndDate

WHERE ((new.EndDate BETWEEN BegDate AND EndDate) AND (PKey = new.PKey));

 

 

UPDATE UslCat

SET EndDate = new.BegDate

WHERE ((new.BegDate BETWEEN BegDate AND EndDate) AND (PKey = new.PKey));

 

 

END ^

 

CREATE TRIGGER UslCat_BDH FOR UslCat

BEFORE DELETE POSITION 0

AS

BEGIN

 

UPDATE UslCat

SET EndDate = old.EndDate

WHERE ((EndDate = old.BegDate) AND (PKey = old.PKey));

 

 

END ^

 

 

CREATE TABLE UslCatKeys (

  Code            INTEGER NOT NULL

);

 

 

ALTER TABLE UslCatKeys

  ADD CONSTRAINT XPKUslCatKeys PRIMARY KEY (Code);

 

 

CREATE TABLE UslDivisions (

  Code            INTEGER NOT NULL,

  Name            DESCR_TYPE,

  PKey            INTEGER NOT NULL,

  Parent          INTEGER NOT NULL,

  BegDate         DATE_TYPE,

  EndDate         DATE_TYPE

);

 

CREATE INDEX XIEUslDivisionsname ON UslDivisions

(

  Name

);

 

CREATE INDEX XIEUslDivisionsParent ON UslDivisions

(

  Parent

);

 

 

ALTER TABLE UslDivisions

  ADD CONSTRAINT XPKUslDivisions PRIMARY KEY (Code);

 

CREATE TRIGGER UslDivisions_BUH FOR UslDivisions

BEFORE UPDATE POSITION 0

AS

BEGIN

 

 /* Изменение BegDate */

 IF (new.BegDate <> old.BegDate) THEN

BEGIN

IF (new.BegDate < old.BegDate) THEN

  BEGIN

    /* Расширение BegDate */

    UPDATE UslDivisions

     SET EndDate = new.BegDate

     WHERE ((new.BegDate BETWEEN BegDate AND EndDate) AND (PKey = new.PKey));

 

       

  END

ELSE

  BEGIN

    /* Сужение BegDate */

    UPDATE UslDivisions

     SET EndDate = new.BegDate

     WHERE ((EndDate = old.BegDate) AND (PKey = new.PKey));

 

 

  END

END

 

 /* Изменение EndDate */

 IF (new.EndDate <> old.EndDate) THEN

BEGIN

IF (new.EndDate > old.EndDate) THEN

  BEGIN

    /* Расширение EndDate */

     UPDATE UslDivisions

     SET BegDate = new.EndDate

     WHERE ((new.EndDate BETWEEN BegDate AND EndDate) AND (PKey = new.PKey));

 

       

  END

ELSE

  BEGIN

    /* Сужение EndDate */

     UPDATE UslDivisions

     SET BegDate = new.EndDate

     WHERE ((BegDate = old.EndDate) AND (PKey = new.PKey));

 

 

  END

END

 

/* Сборка мусора  */

DELETE FROM UslDivisions

WHERE ((BegDate >= new.BegDate) AND (EndDate <= new.EndDate) AND (PKey = new.PKey) AND (Code <> new.Code));

 

 

END ^

 

 

CREATE TRIGGER UslDivisions_BIH FOR UslDivisions

BEFORE INSERT POSITION 0

AS

BEGIN

 

DELETE FROM UslDivisions

WHERE ((BegDate >= new.BegDate) AND (EndDate <= new.EndDate) AND (PKey = new.PKey));

 

 

UPDATE UslDivisions

SET BegDate = new.EndDate

WHERE ((new.EndDate BETWEEN BegDate AND EndDate) AND (PKey = new.PKey));

 

 

UPDATE UslDivisions

SET EndDate = new.BegDate

WHERE ((new.BegDate BETWEEN BegDate AND EndDate) AND (PKey = new.PKey));

 

 

END ^

 

CREATE TRIGGER UslDivisions_BDH FOR UslDivisions

BEFORE DELETE POSITION 0

AS

BEGIN

 

UPDATE UslDivisions

SET EndDate = old.EndDate

WHERE ((EndDate = old.BegDate) AND (PKey = old.PKey));

 

 

END ^

 

 

CREATE TABLE UslDivisionsKeys (

  Code            INTEGER NOT NULL

);

 

 

ALTER TABLE UslDivisionsKeys

  ADD CONSTRAINT XPKUslDivisionsKeys PRIMARY KEY (Code);

 

 

CREATE TABLE UslLgots (

  Code            INTEGER NOT NULL,

  Category        INTEGER NOT NULL,

  Property        INTEGER,

  Tax             CURR_TYPE,

  Usl             INTEGER NOT NULL,

  NachCoeff       INTEGER NOT NULL,

  Nalog           INTEGER NOT NULL,

  BegDate         INTEGER NOT NULL,

  Info            INTEGER NOT NULL,

  EndDate         INTEGER NOT NULL

);

 

 

ALTER TABLE UslLgots

  ADD CONSTRAINT XPKUslLgots PRIMARY KEY (Code);

 

 

CREATE TABLE UslProps (

  Code            INTEGER NOT NULL,

  PKey            INTEGER NOT NULL,

  Tag             INTEGER NOT NULL,

  ValInteger      INTEGER,

  ValFloat        FLOAT,

  BegDate         DATE_TYPE,

  EndDate         DATE_TYPE

);

 

 

ALTER TABLE UslProps

  ADD CONSTRAINT XPKUslProps PRIMARY KEY (Code);

 

CREATE TRIGGER UslProps_BUH FOR UslProps

BEFORE UPDATE POSITION 0

AS

BEGIN

 

 /* Изменение BegDate */

 IF (new.BegDate <> old.BegDate) THEN

BEGIN

IF (new.BegDate < old.BegDate) THEN

  BEGIN

    /* Расширение BegDate */

    UPDATE UslProps

     SET EndDate = new.BegDate

     WHERE ((new.BegDate BETWEEN BegDate AND EndDate) AND (PKey = new.PKey));

 

       

  END

ELSE

  BEGIN

    /* Сужение BegDate */

    UPDATE UslProps

     SET EndDate = new.BegDate

     WHERE ((EndDate = old.BegDate) AND (PKey = new.PKey));

 

 

  END

 END

 

 /* Изменение EndDate */

 IF (new.EndDate <> old.EndDate) THEN

BEGIN

IF (new.EndDate > old.EndDate) THEN

  BEGIN

    /* Расширение EndDate */

     UPDATE UslProps

     SET BegDate = new.EndDate

     WHERE ((new.EndDate BETWEEN BegDate AND EndDate) AND (PKey = new.PKey));

 

       

  END

ELSE

  BEGIN

    /* Сужение EndDate */

     UPDATE UslProps

     SET BegDate = new.EndDate

     WHERE ((BegDate = old.EndDate) AND (PKey = new.PKey));

 

 

  END

END

 

/* Сборка мусора  */

DELETE FROM UslProps

WHERE ((BegDate >= new.BegDate) AND (EndDate <= new.EndDate) AND (PKey = new.PKey) AND (Code <> new.Code));

 

 

END ^

 

 

CREATE TRIGGER UslProps_BIH FOR UslProps

BEFORE INSERT POSITION 0

AS

BEGIN

 

DELETE FROM UslProps

WHERE ((BegDate >= new.BegDate) AND (EndDate <= new.EndDate) AND (PKey = new.PKey));

 

 

UPDATE UslProps

SET BegDate = new.EndDate

WHERE ((new.EndDate BETWEEN BegDate AND EndDate) AND (PKey = new.PKey));

 

 

UPDATE UslProps

SET EndDate = new.BegDate

WHERE ((new.BegDate BETWEEN BegDate AND EndDate) AND (PKey = new.PKey));

 

 

END ^

 

CREATE TRIGGER UslProps_BDH FOR UslProps

BEFORE DELETE POSITION 0

AS

BEGIN

 

 UPDATE UslProps

SET EndDate = old.EndDate

WHERE ((EndDate = old.BegDate) AND (PKey = old.PKey));

 

 

END ^

 

 

CREATE TABLE UslPropsKeys (

  Code            INTEGER NOT NULL

);

 

 

ALTER TABLE UslPropsKeys

  ADD CONSTRAINT XPKUslPropsKeys PRIMARY KEY (Code);

 

 

CREATE TABLE Usls (

  Code            INTEGER NOT NULL,

  PKey            INTEGER NOT NULL,

  Division        INTEGER NOT NULL,

  UslType         INTEGER NOT NULL,

  Name            CHAR(64) NOT NULL,

  BegDate         DATE_TYPE,

  EndDate         DATE_TYPE

);

 

CREATE INDEX XIEUslsName ON Usls

(

  Name

);

 

 

ALTER TABLE Usls

  ADD CONSTRAINT XPKUsls PRIMARY KEY (Code);

 

CREATE TRIGGER Usls_BUH FOR Usls

BEFORE UPDATE POSITION 0

AS

BEGIN

 

 /* Изменение BegDate */

 IF (new.BegDate <> old.BegDate) THEN

BEGIN

IF (new.BegDate < old.BegDate) THEN

  BEGIN

    /* Расширение BegDate */

    UPDATE Usls

     SET EndDate = new.BegDate

     WHERE ((new.BegDate BETWEEN BegDate AND EndDate) AND (PKey = new.PKey));

 

       

  END

ELSE

  BEGIN

    /* Сужение BegDate */

    UPDATE Usls

     SET EndDate = new.BegDate

     WHERE ((EndDate = old.BegDate) AND (PKey = new.PKey));

 

 

  END

END

 

 /* Изменение EndDate */

 IF (new.EndDate <> old.EndDate) THEN

BEGIN

IF (new.EndDate > old.EndDate) THEN

  BEGIN

    /* Расширение EndDate */

     UPDATE Usls

     SET BegDate = new.EndDate

     WHERE ((new.EndDate BETWEEN BegDate AND EndDate) AND (PKey = new.PKey));

 

       

  END

ELSE

  BEGIN

    /* Сужение EndDate */

     UPDATE Usls

     SET BegDate = new.EndDate

     WHERE ((BegDate = old.EndDate) AND (PKey = new.PKey));

 

 

  END

END

 

/* Сборка мусора  */

DELETE FROM Usls

WHERE ((BegDate >= new.BegDate) AND (EndDate <= new.EndDate) AND (PKey = new.PKey) AND (Code <> new.Code));

 

 

END ^

 

 

CREATE TRIGGER Usls_BIH FOR Usls

BEFORE INSERT POSITION 0

AS

BEGIN

 

DELETE FROM Usls

WHERE ((BegDate >= new.BegDate) AND (EndDate <= new.EndDate) AND (PKey = new.PKey));

 

 

UPDATE Usls

SET BegDate = new.EndDate

WHERE ((new.EndDate BETWEEN BegDate AND EndDate) AND (PKey = new.PKey));

 

 

UPDATE Usls

SET EndDate = new.BegDate

WHERE ((new.BegDate BETWEEN BegDate AND EndDate)  AND (PKey = new.PKey));

 

 

END ^

 

CREATE TRIGGER Usls_BDH FOR Usls

BEFORE DELETE POSITION 0

AS

BEGIN

 

UPDATE Usls

SET EndDate = old.EndDate

WHERE ((EndDate = old.BegDate) AND (PKey = old.PKey));

 

 

END ^

 

 

CREATE TABLE UslsKeys (

  Code            INTEGER NOT NULL

);

 

 

ALTER TABLE UslsKeys

  ADD CONSTRAINT XPKUslsKeys PRIMARY KEY (Code);

 

 

CREATE TABLE UslTypes (

  Code            INTEGER NOT NULL,

  Name            DESCR_TYPE

);

 

 

ALTER TABLE UslTypes

  ADD CONSTRAINT XPKUslTypes PRIMARY KEY (Code);

 

 

ALTER TABLE Nach

  ADD CONSTRAINT R_59

         FOREIGN KEY (Usl)

                        REFERENCES UslsKeys;

 

 

ALTER TABLE Nach

  ADD CONSTRAINT R_57

         FOREIGN KEY (Phone)

                        REFERENCES PhonesKeys;

 

 

ALTER TABLE Nach

  ADD FOREIGN KEY (Owner)

                        REFERENCES PhonesOwnersKeys;

 

 

ALTER TABLE NachBillings

  ADD CONSTRAINT R_65

         FOREIGN KEY (Division)

                        REFERENCES UslDivisionsKeys;

 

 

ALTER TABLE NachBillings

  ADD FOREIGN KEY (BillDateCode)

                        REFERENCES NachBillDates;

 

 

ALTER TABLE NachBillings

  ADD FOREIGN KEY (Owner)

                        REFERENCES PhonesOwnersKeys;

 

 

ALTER TABLE NachConstUsl

  ADD CONSTRAINT R_60

         FOREIGN KEY (Usl)

                        REFERENCES UslsKeys;

 

 

ALTER TABLE NachConstUsl

  ADD CONSTRAINT R_58

         FOREIGN KEY (Phone)

                        REFERENCES PhonesKeys;

 

 

ALTER TABLE NachConstUsl

  ADD FOREIGN KEY (Owner)

                        REFERENCES PhonesOwnersKeys;

 

 

ALTER TABLE Phones

  ADD FOREIGN KEY (Owner)

                        REFERENCES PhonesOwnersKeys;

 

 

ALTER TABLE Phones

  ADD FOREIGN KEY (PKey)

                        REFERENCES PhonesKeys;

 

 

ALTER TABLE Phones

  ADD FOREIGN KEY (Street)

                        REFERENCES PhonesStreets;

 

 

ALTER TABLE PhonesOwners

  ADD FOREIGN KEY (PostStation)

                        REFERENCES PhonesPostStations;

 

 

ALTER TABLE PhonesOwners

  ADD FOREIGN KEY (Street)

                        REFERENCES PhonesStreets;

 

 

ALTER TABLE PhonesOwners

  ADD FOREIGN KEY (Bank)

                        REFERENCES PhonesBanks;

 

 

ALTER TABLE PhonesOwners

  ADD FOREIGN KEY (Category)

                        REFERENCES UslCatKeys;

 

 

ALTER TABLE PhonesOwners

  ADD FOREIGN KEY (PKey)

                        REFERENCES PhonesOwnersKeys;

 

 

ALTER TABLE PhonesPostStations

  ADD CONSTRAINT R_62

         FOREIGN KEY (Region)

                        REFERENCES PhonesRegions;

 

 

ALTER TABLE PhonesStations

  ADD FOREIGN KEY (Region)

                        REFERENCES PhonesRegions;

 

 

ALTER TABLE PhonesStreets

  ADD FOREIGN KEY (Region)

                        REFERENCES PhonesRegions;

 

 

ALTER TABLE PhonesStreets

  ADD FOREIGN KEY (Station)

                        REFERENCES PhonesStations;

 

 

ALTER TABLE Plat

  ADD CONSTRAINT R_61

         FOREIGN KEY (ToUsl)

                        REFERENCES UslsKeys;

 

 

ALTER TABLE Plat

  ADD FOREIGN KEY (Owner)

                        REFERENCES PhonesOwnersKeys;

 

 

ALTER TABLE SysSettings

  ADD FOREIGN KEY (NullOwner)

                        REFERENCES PhonesOwnersKeys;

 

 

ALTER TABLE SysSettings

  ADD FOREIGN KEY (TimeTalksUsl)

                        REFERENCES UslsKeys;

 

 

ALTER TABLE Talks

  ADD FOREIGN KEY (ToPhone)

                        REFERENCES PhonesKeys;

 

 

ALTER TABLE Talks

  ADD FOREIGN KEY (Phone)

                        REFERENCES PhonesKeys;

 

 

ALTER TABLE Talks

  ADD FOREIGN KEY (DayCode)

                        REFERENCES TalksPay;

 

 

ALTER TABLE TalksPay

  ADD FOREIGN KEY (Phone)

                        REFERENCES PhonesKeys;

 

 

ALTER TABLE UslCat

  ADD FOREIGN KEY (PKey)

                        REFERENCES UslCatKeys;

 

 

ALTER TABLE UslDivisions

  ADD CONSTRAINT R_63

         FOREIGN KEY (PKey)

                        REFERENCES UslDivisionsKeys;

 

 

ALTER TABLE UslLgots

  ADD CONSTRAINT R_50

         FOREIGN KEY (Property)

                        REFERENCES UslPropsKeys;

 

 

ALTER TABLE UslLgots

  ADD FOREIGN KEY (Usl)

                        REFERENCES UslsKeys;

 

 

ALTER TABLE UslLgots

  ADD FOREIGN KEY (Category)

                        REFERENCES UslCatKeys;

 

 

ALTER TABLE UslProps

  ADD CONSTRAINT R_51

         FOREIGN KEY (PKey)

                        REFERENCES UslPropsKeys;

 

 

ALTER TABLE Usls

  ADD CONSTRAINT R_64

         FOREIGN KEY (Division)

                        REFERENCES UslDivisionsKeys;

 

 

ALTER TABLE Usls

  ADD FOREIGN KEY (UslType)

                        REFERENCES UslTypes;

 

 

ALTER TABLE Usls

  ADD FOREIGN KEY (PKey)

                        REFERENCES UslsKeys;

 

 

CREATE PROCEDURE PrGenUslPropsKeys

RETURNS (ACode INTEGER)

AS

BEGIN

 ACode = GEN_ID(genUslPropsKeys, 1);

 

END ^

 

CREATE PROCEDURE PrGenUslProps

RETURNS (ACode INTEGER)

AS

BEGIN

 ACode = GEN_ID(genUslProps, 1);

 

END ^

 

CREATE PROCEDURE PrGenPhonesRegions

RETURNS (ACode INTEGER)

AS

BEGIN

 ACode = GEN_ID(genPhonesRegions, 1);

 

END ^

 

CREATE PROCEDURE PrGenPhonesStations

RETURNS (ACode INTEGER)

AS

BEGIN

 ACode = GEN_ID(genPhonesStations, 1);

 

END ^

 

CREATE PROCEDURE PrGenPhonesStreets

RETURNS (ACode INTEGER)

AS

BEGIN

 ACode = GEN_ID(genPhonesStreets, 1);

 

END ^

 

CREATE PROCEDURE PrGenPhonesBanks

RETURNS (ACode INTEGER)

AS

BEGIN

 ACode = GEN_ID(genPhonesBanks, 1);

 

END ^

 

CREATE PROCEDURE PrGenTalksPay

RETURNS (ACode INTEGER)

AS

BEGIN

 ACode = GEN_ID(genTalksPay, 1);

 

END ^

 

CREATE PROCEDURE PrGenTalks

RETURNS (ACode INTEGER)

AS

BEGIN

 ACode = GEN_ID(genTalks, 1);

 

END ^

 

CREATE PROCEDURE PrGenNach

RETURNS (ACode INTEGER)

AS

BEGIN

 ACode = GEN_ID(genNach, 1);

 

END ^

 

CREATE PROCEDURE PrGenNachBillings

RETURNS (ACode INTEGER)

AS

BEGIN

 ACode = GEN_ID(genNachBillings, 1);

 

END ^

 

CREATE PROCEDURE PrGenNachBillDates

RETURNS (ACode INTEGER)

AS

BEGIN

 ACode = GEN_ID(genNachBillDates, 1);

 

END ^

 

CREATE PROCEDURE PrGenNachConstUsl

RETURNS (ACode INTEGER)

AS

BEGIN

 ACode = GEN_ID(genNachConstUsl, 1);

 

END ^

 

CREATE PROCEDURE PrGenUslDivisions

RETURNS (ACode INTEGER)

AS

BEGIN

 ACode = GEN_ID(genUslDivisions, 1);

 

END ^

 

CREATE PROCEDURE PrGenUslLgots

RETURNS (ACode INTEGER)

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...