Реализация распределенной базы данных с удаленным доступом

Автор работы: Пользователь скрыл имя, 30 Ноября 2011 в 00:17, курсовая работа

Краткое описание

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

Содержание работы

ВВЕДЕНИЕ 4
1. ОСНОВНЫЕ ПОДХОДЫ К ПРОЕКТИРОВАНИЮ РАСПРЕДЕЛЕННЫХ БАЗ ДАННЫХ 6
1.1 ОСНОВНЫЕ ПОНЯТИЯ ТЕОРИИ РЕЛЯЦИОННЫХ БАЗ ДАННЫХ 6
1.2 СЕРВЕР БАЗЫ ДАННЫХ 10
1.2.1 Технология и модели "клиент-сервер" 10
1.2.2 Механизмы реализации активного ядра 19
1.2.3 Хранимые процедуры 20
1.2.4 Правила (триггеры) 21
1.2.5 Механизм событий 21
1.3 ОБРАБОТКА РАСПРЕДЕЛЕННЫХ ДАННЫХ 22
1.4 ВЗАИМОДЕЙСТВИЕ С PC-ОРИЕНТИРОВАННЫМИ СУБД 30
1.5 ОБРАБОТКА ТРАНЗАКЦИЙ 33
1.6 СРЕДСТВА ЗАЩИТЫ ДАННЫХ В СУБД 37
1.7 ПРИМЕНЕНИЕ CASE-СРЕДСТВ ДЛЯ ИНФОРМАЦИОННОГО МОДЕЛИРОВАНИЯ В СИСТЕМАХ ОБРАБОТКИ ДАННЫХ . 41
2. РЕАЛИЗАЦИЯ РАСПРЕДЕЛЕННОЙ БАЗЫ ДАННЫХ С УДАЛЕННЫМ ДОСТУПОМ 43
2.1 АНАЛИЗ СУЩЕСТВУЮЩЕЙ СИСТЕМЫ 44
2.2 НОВАЯ СХЕМА ОБМЕНА ИНФОРМАЦИЕЙ 45
2.3 ВЫБОР ОПЕРАЦИОННОЙ СИСТЕМЫ 47
2.4 ВЫБОР СЕРВЕРА БАЗ ДАННЫХ 48
2.5 ВЫБОР СРЕДСТВ РАЗРАБОТКИ 55
2.6 ОРГАНИЗАЦИЯ ВЗАИМОДЕЙСТВИЯ МЕЖДУ СЕРВЕРАМИ 56
2.6.1 Выбор модели распределенной базы данных 56
2.6.2 Модель взаимодействия 56
2.6.3 Использование слоя RPC для распределенной обработки данных на платформе Windows NT 57
2.6.4 Компоненты Microsoft RPC 57
2.6.5 Механизм работы RPC 58
2.6.6 Организация логического канала передачи данных 61
2.7 ОРГАНИЗАЦИЯ ДОСТУПА УДАЛЕННЫХ ПОЛЬЗОВАТЕЛЕЙ 61
2.7.1 Необходимость удаленного доступа 61
2.7.2 Использование слоя RAS для удаленного доступа на платформе Windows NT 61
2.7.3 Обеспечение информационной безопасности при удаленном доступе 63
2.8 ПРОЕКТИРОВАНИЕ СТРУКТУРЫ БАЗЫ ДАННЫХ 63
2.9 СХЕМА РЕПЛИКАЦИИ ДАННЫХ 65
2.10 ПРОЕКТИРОВАНИЕ КОММУНИКАЦИОННОГО СЕРВЕРА 67
2.10.1 Постановка задачи 67
2.10.2 Архитектура коммуникационного сервера 68
2.10.3 Вспомогательное программное обеспечение 70
3. ТЕХНИКО-ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ 71
3.1 ПЛАН ВЫПОЛНЕНИЯ ДИПЛОМНОГО ПРОЕКТА 71
3.2 РАСЧЕТ ОЖИДАЕМОЙ ПРОДОЛЖИТЕЛЬНОСТИ ВЫПОЛНЕНИЯ РАБОТ И ИХ ДИСПЕРСИЙ 73
3.3 ПОСТРОЕНИЕ ЛЕНТОЧНОГО ГРАФИКА ВЫПОЛНЕНИЯ РАБОТЫ 74
3.4 ОПРЕДЕЛЕНИЕ ПЛАНОВОЙ СЕБЕСТОИМОСТИ НИР 76
ЗАКЛЮЧЕНИЕ 79
СПИСОК ЛИТЕРАТУРЫ 80

Содержимое работы - 1 файл

РЕАЛИЗАЦИЯ РАСПРЕДЕЛЕННОЙ БАЗЫ ДАННЫХ С УДАЛЕННЫМ ДОСТУПОМ.doc

— 1.41 Мб (Скачать файл)

         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; 
 

Информация о работе Реализация распределенной базы данных с удаленным доступом