Проектирование Книжного магазина

Автор работы: Пользователь скрыл имя, 18 Июля 2013 в 14:33, курсовая работа

Описание работы

В связи с этим книжному бизнесу, как главной в распространении книг отрасли, отведена важная социально значимая функция: формирова-ние эффективных коммуникационных стратегий книжного дела на рынке информационных услуг. Обеспечить выполнение этой задачи возможно с помощью использо¬вания всего арсенала современных информационных технологий, поиска рациональных способов продвижения изданий, выбо-ра рентабельных инструментов и каналов распространения информации, оптимального распределения имеющихся средств, организации действен-ного контроля за эффективностью коммуникаций с каждым субъектом книжного рынка и их целевыми группами.

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

ВВЕДЕНИЕ 3
1 Описание книжного магазина 4
1.1 Характеристика книжного магазина 4
1.2 Организационная структура книжного магазина 5
2 Анализ процесса обработки и выполнения распоряжений 7
2.1 Построение DFD-диаграмм 7
2.2 Словарь данных 11
2.3 Миниспецификация процессов 15
3 Постановка задачи 21
3.1 Характеристика подсистемы 21
3.2 Выходные данные 21
3.3 Входные и выходные данные 22
3.4 Входные данные 22
4 Проектирование информационного обеспечения системы с
помощью методологии ERD и CASE-средства ERwin 24
4.1 Проектирование ER-модели 25
4.2 Создание логической модели данных 31
4.3 Создание физической модели данных 32
5 Объектно-ориентированное проектирование информационной
системы с использованием методологии UML и CASE-средства
Rational Rose 34
5.1 Описание методологии UML 34
5.2 Создание диаграммы прецедентов использования (Use case
diagram) 36
5.3 Создание диаграммы классов 37
5.4 Создание диаграммы кооперации 38
5.5 Создание диаграммы последовательности 40
5.6 Создание диаграммы компонентов 42
5.7 Тестирование диаграмм 43
5.8 Генерация программного кода 46
ЗАКЛЮЧЕНИЕ 48
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

Файлы: 1 файл

Курсовая работа ДЕЛАААААТЬ.doc

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

(

Номер_скважины  ASC,

Номер_сотрудника  ASC

);

 

 

ALTER TABLE Скважины

ADD CONSTRAINT  XPKСкважины PRIMARY KEY (Номер_скважины,Номер_сотрудника);

 

 

CREATE TABLE Сотрудники

(

Номер_сотрудника  integer Number  NOT NULL ,

ФИО  varchar(30) String  NOT NULL ,

Должность  varchar(30) String  NOT NULL ,

Стаж  integer Number  NOT NULL ,

Место_работы  varchar(30) String  NOT NULL ,

Номер_плана  integer Number  NOT NULL

);

 

 

CREATE  UNIQUE INDEX XPKСотрудники ON Сотрудники

(

Номер_сотрудника  ASC

);

 

 

ALTER TABLE Сотрудники

ADD CONSTRAINT  XPKСотрудники PRIMARY KEY (Номер_сотрудника);

 

 

ALTER TABLE Отделы

ADD (CONSTRAINT  R_6 FOREIGN KEY (Номер_сотрудника) REFERENCES Сотрудники(Номер_сотрудника));

 

 

ALTER TABLE Скважины

ADD (CONSTRAINT  R_4 FOREIGN KEY (Номер_сотрудника) REFERENCES Сотрудники(Номер_сотрудника));

 

 

ALTER TABLE Сотрудники

ADD (CONSTRAINT  R_5 FOREIGN KEY (Номер_плана) REFERENCES Планы(Номер_плана) ON DELETE SET NULL);

 

 

CREATE  TRIGGER tI_Отделы BEFORE INSERT ON Отделы for each row

-- ERwin Builtin 24 апреля 2013 г. 3:39:05

-- INSERT trigger on Отделы

DECLARE NUMROWS INTEGER;

BEGIN

    /* ERwin Builtin 24 апреля 2013 г. 3:39:05 */

    /* Сотрудники R/6 Отделы on child insert restrict */

    /* ERWIN_RELATION:CHECKSUM="000100fb", PARENT_OWNER="", PARENT_TABLE="Сотрудники"

    CHILD_OWNER="", CHILD_TABLE="Отделы"

    P2C_VERB_PHRASE="R/6", C2P_VERB_PHRASE="R/6",

    FK_CONSTRAINT="R_6", FK_COLUMNS="Номер_сотрудника" */

    SELECT count(*) INTO NUMROWS

      FROM Сотрудники

      WHERE

        /* %JoinFKPK(:%New,Сотрудники," = "," AND") */

        :new.Номер_сотрудника = Сотрудники.Номер_сотрудника;

    IF (

      /* %NotnullFK(:%New," IS NOT NULL AND") */

     

      NUMROWS = 0

    )

    THEN

      raise_application_error(

        -20002,

        'Cannot insert Отделы because Сотрудники does not exist.'

      );

    END IF;

 

 

-- ERwin Builtin 24 апреля 2013 г. 3:39:05

END;

/

 

CREATE  TRIGGER tU_Отделы AFTER UPDATE ON Отделы for each row

-- ERwin Builtin 24 апреля 2013 г. 3:39:05

-- UPDATE trigger on Отделы

DECLARE NUMROWS INTEGER;

BEGIN

  /* ERwin Builtin 24 апреля 2013 г. 3:39:05 */

  /* Сотрудники R/6 Отделы on child update restrict */

  /* ERWIN_RELATION:CHECKSUM="0000fef5", PARENT_OWNER="", PARENT_TABLE="Сотрудники"

    CHILD_OWNER="", CHILD_TABLE="Отделы"

    P2C_VERB_PHRASE="R/6", C2P_VERB_PHRASE="R/6",

    FK_CONSTRAINT="R_6", FK_COLUMNS="Номер_сотрудника" */

  SELECT count(*) INTO NUMROWS

    FROM Сотрудники

    WHERE

      /* %JoinFKPK(:%New,Сотрудники," = "," AND") */

      :new.Номер_сотрудника = Сотрудники.Номер_сотрудника;

  IF (

    /* %NotnullFK(:%New," IS NOT NULL AND") */

   

    NUMROWS = 0

  )

  THEN

    raise_application_error(

      -20007,

      'Cannot update Отделы because Сотрудники does not exist.'

    );

  END IF;

 

 

-- ERwin Builtin 24 апреля 2013 г. 3:39:05

END;

/

 

CREATE  TRIGGER tD_Планы AFTER DELETE ON Планы for each row

-- ERwin Builtin 24 апреля 2013 г. 3:39:05

-- DELETE trigger on Планы

DECLARE NUMROWS INTEGER;

BEGIN

    /* ERwin Builtin 24 апреля 2013 г. 3:39:05 */

    /* Планы R/5 Сотрудники on parent delete set null */

    /* ERWIN_RELATION:CHECKSUM="0000c590", PARENT_OWNER="", PARENT_TABLE="Планы"

    CHILD_OWNER="", CHILD_TABLE="Сотрудники"

    P2C_VERB_PHRASE="R/5", C2P_VERB_PHRASE="R/5",

    FK_CONSTRAINT="R_5", FK_COLUMNS="Номер_плана" */

    UPDATE Сотрудники

      SET

        /* %SetFK(Сотрудники,NULL) */

        Сотрудники.Номер_плана = NULL

      WHERE

        /* %JoinFKPK(Сотрудники,:%Old," = "," AND") */

        Сотрудники.Номер_плана = :old.Номер_плана;

 

 

-- ERwin Builtin 24 апреля 2013 г. 3:39:05

END;

/

 

CREATE  TRIGGER tU_Планы AFTER UPDATE ON Планы for each row

-- ERwin Builtin 24 апреля 2013 г. 3:39:05

-- UPDATE trigger on Планы

DECLARE NUMROWS INTEGER;

BEGIN

  /* Планы R/5 Сотрудники on parent update set null */

  /* ERWIN_RELATION:CHECKSUM="0000e6e5", PARENT_OWNER="", PARENT_TABLE="Планы"

    CHILD_OWNER="", CHILD_TABLE="Сотрудники"

    P2C_VERB_PHRASE="R/5", C2P_VERB_PHRASE="R/5",

    FK_CONSTRAINT="R_5", FK_COLUMNS="Номер_плана" */

  IF

    /* %JoinPKPK(:%Old,:%New," <> "," OR ") */

    :old.Номер_плана <> :new.Номер_плана

  THEN

    UPDATE Сотрудники

      SET

        /* %SetFK(Сотрудники,NULL) */

        Сотрудники.Номер_плана = NULL

      WHERE

        /* %JoinFKPK(Сотрудники,:%Old," = ",",") */

        Сотрудники.Номер_плана = :old.Номер_плана;

  END IF;

 

 

-- ERwin Builtin 24 апреля 2013 г. 3:39:05

END;

/

 

CREATE  TRIGGER tI_Скважины BEFORE INSERT ON Скважины for each row

-- ERwin Builtin 24 апреля 2013 г. 3:39:05

-- INSERT trigger on Скважины

DECLARE NUMROWS INTEGER;

BEGIN

    /* ERwin Builtin 24 апреля 2013 г. 3:39:05 */

    /* Сотрудники R/4 Скважины on child insert restrict */

    /* ERWIN_RELATION:CHECKSUM="00010a83", PARENT_OWNER="", PARENT_TABLE="Сотрудники"

    CHILD_OWNER="", CHILD_TABLE="Скважины"

    P2C_VERB_PHRASE="R/4", C2P_VERB_PHRASE="R/4",

    FK_CONSTRAINT="R_4", FK_COLUMNS="Номер_сотрудника" */

    SELECT count(*) INTO NUMROWS

      FROM Сотрудники

      WHERE

        /* %JoinFKPK(:%New,Сотрудники," = "," AND") */

        :new.Номер_сотрудника = Сотрудники.Номер_сотрудника;

    IF (

      /* %NotnullFK(:%New," IS NOT NULL AND") */

     

      NUMROWS = 0

    )

    THEN

      raise_application_error(

        -20002,

        'Cannot insert Скважины because Сотрудники does not exist.'

      );

    END IF;

 

 

-- ERwin Builtin 24 апреля 2013 г. 3:39:05

END;

/

 

CREATE  TRIGGER tU_Скважины AFTER UPDATE ON Скважины for each row

-- ERwin Builtin 24 апреля 2013 г. 3:39:05

-- UPDATE trigger on Скважины

DECLARE NUMROWS INTEGER;

BEGIN

  /* ERwin Builtin 24 апреля 2013 г. 3:39:05 */

  /* Сотрудники R/4 Скважины on child update restrict */

  /* ERWIN_RELATION:CHECKSUM="0001055d", PARENT_OWNER="", PARENT_TABLE="Сотрудники"

    CHILD_OWNER="", CHILD_TABLE="Скважины"

    P2C_VERB_PHRASE="R/4", C2P_VERB_PHRASE="R/4",

    FK_CONSTRAINT="R_4", FK_COLUMNS="Номер_сотрудника" */

  SELECT count(*) INTO NUMROWS

    FROM Сотрудники

    WHERE

      /* %JoinFKPK(:%New,Сотрудники," = "," AND") */

      :new.Номер_сотрудника = Сотрудники.Номер_сотрудника;

  IF (

    /* %NotnullFK(:%New," IS NOT NULL AND") */

   

    NUMROWS = 0

  )

  THEN

    raise_application_error(

      -20007,

      'Cannot update Скважины because Сотрудники does not exist.'

    );

  END IF;

 

 

-- ERwin Builtin 24 апреля 2013 г. 3:39:05

END;

/

 

CREATE  TRIGGER tI_Сотрудники BEFORE INSERT ON Сотрудники for each row

-- ERwin Builtin 24 апреля 2013 г. 3:39:05

-- INSERT trigger on Сотрудники

DECLARE NUMROWS INTEGER;

BEGIN

    /* ERwin Builtin 24 апреля 2013 г. 3:39:05 */

    /* Планы R/5 Сотрудники on child insert set null */

    /* ERWIN_RELATION:CHECKSUM="0000f880", PARENT_OWNER="", PARENT_TABLE="Планы"

    CHILD_OWNER="", CHILD_TABLE="Сотрудники"

    P2C_VERB_PHRASE="R/5", C2P_VERB_PHRASE="R/5",

    FK_CONSTRAINT="R_5", FK_COLUMNS="Номер_плана" */

    UPDATE Сотрудники

      SET

       /* %SetFK(Сотрудники,NULL) */

        Сотрудники.Номер_плана = NULL

      WHERE

        NOT EXISTS (

          SELECT * FROM Планы

            WHERE

              /* %JoinFKPK(:%New,Планы," = "," AND") */

              :new.Номер_плана = Планы.Номер_плана

        )

        /* %JoinPKPK(Сотрудники,:%New," = "," AND") */

         and Сотрудники.Номер_сотрудника = :new.Номер_сотрудника;

 

 

-- ERwin Builtin 24 апреля 2013 г. 3:39:05

END;

/

 

CREATE  TRIGGER tD_Сотрудники AFTER DELETE ON Сотрудники for each row

-- ERwin Builtin 24 апреля 2013 г. 3:39:05

-- DELETE trigger on Сотрудники

DECLARE NUMROWS INTEGER;

BEGIN

    /* ERwin Builtin 24 апреля 2013 г. 3:39:05 */

    /* Сотрудники R/4 Скважины on parent delete restrict */

    /* ERWIN_RELATION:CHECKSUM="0001e4f4", PARENT_OWNER="", PARENT_TABLE="Сотрудники"

    CHILD_OWNER="", CHILD_TABLE="Скважины"

    P2C_VERB_PHRASE="R/4", C2P_VERB_PHRASE="R/4",

    FK_CONSTRAINT="R_4", FK_COLUMNS="Номер_сотрудника" */

    SELECT count(*) INTO NUMROWS

      FROM Скважины

      WHERE

        /*  %JoinFKPK(Скважины,:%Old," = "," AND") */

        Скважины.Номер_сотрудника = :old.Номер_сотрудника;

    IF (NUMROWS > 0)

    THEN

      raise_application_error(

        -20001,

        'Cannot delete Сотрудники because Скважины exists.'

      );

    END IF;

 

    /* ERwin Builtin 24 апреля 2013 г. 3:39:05 */

    /* Сотрудники R/6 Отделы on parent delete restrict */

    /* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Сотрудники"

    CHILD_OWNER="", CHILD_TABLE="Отделы"

    P2C_VERB_PHRASE="R/6", C2P_VERB_PHRASE="R/6",

    FK_CONSTRAINT="R_6", FK_COLUMNS="Номер_сотрудника" */

    SELECT count(*) INTO NUMROWS

      FROM Отделы

      WHERE

        /*  %JoinFKPK(Отделы,:%Old," = "," AND") */

        Отделы.Номер_сотрудника = :old.Номер_сотрудника;

    IF (NUMROWS > 0)

    THEN

      raise_application_error(

        -20001,

        'Cannot delete Сотрудники because Отделы exists.'

      );

    END IF;

 

 

-- ERwin Builtin 24 апреля 2013 г. 3:39:05

END;

/

 

CREATE  TRIGGER tU_Сотрудники AFTER UPDATE ON Сотрудники for each row

-- ERwin Builtin 24 апреля 2013 г. 3:39:05

-- UPDATE trigger on Сотрудники

DECLARE NUMROWS INTEGER;

BEGIN

  /* ERwin Builtin 24 апреля 2013 г. 3:39:05 */

  /* Сотрудники R/4 Скважины on parent update restrict */

  /* ERWIN_RELATION:CHECKSUM="00036c4a", PARENT_OWNER="", PARENT_TABLE="Сотрудники"

    CHILD_OWNER="", CHILD_TABLE="Скважины"

    P2C_VERB_PHRASE="R/4", C2P_VERB_PHRASE="R/4",

    FK_CONSTRAINT="R_4", FK_COLUMNS="Номер_сотрудника" */

  IF

    /* %JoinPKPK(:%Old,:%New," <> "," OR ") */

    :old.Номер_сотрудника <> :new.Номер_сотрудника

  THEN

    SELECT count(*) INTO NUMROWS

      FROM Скважины

      WHERE

        /*  %JoinFKPK(Скважины,:%Old," = "," AND") */

        Скважины.Номер_сотрудника = :old.Номер_сотрудника;

    IF (NUMROWS > 0)

    THEN

      raise_application_error(

        -20005,

        'Cannot update Сотрудники because Скважины exists.'

      );

    END IF;

  END IF;

 

  /* ERwin Builtin 24 апреля 2013 г. 3:39:05 */

  /* Сотрудники R/6 Отделы on parent update restrict */

  /* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Сотрудники"

    CHILD_OWNER="", CHILD_TABLE="Отделы"

    P2C_VERB_PHRASE="R/6", C2P_VERB_PHRASE="R/6",

Информация о работе Проектирование Книжного магазина