Реферат

Реферат Проектирование базы данных для торговца подержанными автомобилями

Работа добавлена на сайт bukvasha.net: 2015-10-28

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 21.9.2024





 
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Государственное образовательное учреждение высшего профессионального образования

ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ НЕФТЕГАЗОВЫЙ УНИВЕРСИТЕТ

Институт Нефти и Газа
Кафедра Информатики и Вычислительной Техники
КУРСОВАЯ РАБОТА

По дисциплине: «База данных»

На тему: «Спроектировать базу данных для торговца подержанными автомобилями»
             Выполнил:               

     АСОиУзс-07-02

              Макаров А.А.

              Проверила:

              Пономарева Н.П.

                             
г. Тюмень 2009 г.



 
СОДЕРЖАНИЕ

Введение……………………………………………………………………………...3

Описание задачи……………………………………………………………………..3

1. Проектирование базы данных……………………………………………………4

1.1 Проектирование базы методом сущность-связь………………………..4

     1.1.1 Выделение сущностей и их ключей…………………………….….4

     1.1.2 Определение связей и их характеристик…………………………..4

     1.1.3 Построение диаграммы ER- типа…………………………………..5

     1.1.4 Генерация набора предварительных отношений………………….6

1.2 Проектирование базы данных с помощью CASE – средств (ERwin)….9

    1.2.1 Коротко о используемой нотации (IDEF1X)…………………….....9

    1.2.2 Логическая модель с комментариями……………………………..10

    1.2.3 Физическая модель с комментариями……………………………13

    1.2.4 SQL скрипт…………………………………………………………14

 1.3 Тестирование информационной модели с использованием  CASE пакета………………………………………………………………………………..14

     1.3.1 Исходный протокол…………………………………………...........14

     1.3.2 Анализ……………………………………………………….............14

     1.3.3 Итоговый протокол…………………………………………….......14

2. Создание базы данных в СУБД (Interbase, Oracle)…………………………….15

2.1  Краткая характеристика СУБД………………………………………...15

     

Заключение………………………………………………………………………….16

Список использованных источников……………………………………………...17

Приложение  ……………………………………………………………………….18


 
ВВЕДЕНИЕ
Задание на курсовую работу по дисциплине «База данных».

Студент группы АСОиУзс-07-02 Макаров А.А.

Специальность  «Автоматизированные системы обработки информации и управления»

Тема: «Спроектировать БД для торговца подержанными автомобилями»

Цель данной курсовой работы: Получить практические навыки разработки базы данных  в определенной предметной области. Изучение свойств баз данных и систем управления ими. Предметом исследования является  создание информационной модели при помощи CASE-пакета (Erwin)

Задачи курсовой работы:

·        проектирование базы данных с использованием метода сущность-связь;

·        проектирование базы данных с использованием CASE – пакета Erwin;

·        тестирование информационной модели;

·        создание SQL скрипта в СУБД Interbase (Oracle).
ОПИСАНИЕ ЗАДАЧИ
Спроектировать БД для торговца подержанными автомобилями. Торговец содержит штат служащих, в который входят агенты по продаже, секретари и механики. Агенты по продаже получают оклад плюс комиссионные, секретари получают оклад, механики получают почасовую оплату. Комиссионные составляют 5% для тех агентов по продаже, стаж работы которых менее трех лет, и 8% для тех, чей стаж составляет 3 и более лет. Информация об имеющихся в наличии автомобилях включает в себя дату покупки, оценочную стоимость, объем ремонтных работ, которые должны быть выполнены до выставления на продажу, приблизительную стоимость этих работ, марку, модель, год выпуска и основной цвет.

Создание программы для решения данной задачи поможет наладить продажу подержанных автомобилей .


 
1. ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ

1.1 Проектирование базы методом сущность-связь
     1.1.1 Выделение сущностей и их ключей
Штат: №сотрудника, дата приема, ФИО, должность

Секретари: №секретаря, №сотрудника, оклад

Агенты: №агента, №сотрудника, оклад, % от продаж

Продажи: №продажи, №авто, №агента, дата продажи, цена

Механики: №механика, №сотрудника, оклад

Авто: №авто, №агента, цвет, марка, модель

Механ-авто: №ремонта, №механика, №авто, дата, кол-во часов
1.1.2 Определение связей и их характеристик

AGENT
 

   SHTAT
 

MEXAN
 
  1.                                                       

                                n            1                         1               n  






Связь «один-ко-многим», класс принадлежности «обязательный».

Один тип штат может иметь несколько механиков и агентов, но ни один механик и агент не может быть без штата.

   MEXAN
 

AVTO


 
2.                                       n                 m





Связь «многие-ко-многим», класс принадлежности «необязательный».

Один авто может иметь  несколько механиков, один механик может иметь несколько авто.

AGENT
 

   AVTO
 
3.                                        n                 1





Связь «один-ко-многим», класс принадлежности «обязательный».

Один агент может содержать  несколько авто, но авто  не может быть без агента.
1.1.3 Построение диаграммы
ER- типа





1.1.4 Генерация набора предварительных отношений
CREATE TABLE SCHTAT (

 №_Sotrudnika         INTEGER NOT NULL,

       Data_priema       DATE,

       FIO                     CHAR(30),

       Dolgnost             CHAR(18)

);

CREATE UNIQUE INDEX XPKSCHTAT ON SCHTAT

(

       №_Sotrudnika

);

ALTER TABLE SCHTAT

       ADD PRIMARY KEY (№_Sotrudnika);

CREATE TABLE AGENT (

       №_Agenta               CHAR(18) NOT NULL,

       №_Sotrudnika         INTEGER,

       Oklad                       CHAR(18),

       %_ot_prodag          CHAR(18)

);

CREATE UNIQUE INDEX XPKAGENT ON AGENT

(

       №_Agenta,

       №_Sotrudnika

);
ALTER TABLE AGENT

       ADD PRIMARY KEY (№_Agenta, №_Sotrudnika);

CREATE TABLE PRODAGI (

       №_Sotrudnika         INTEGER NOT NULL,

       №_Agenta                INTEGER,

       №_Prodagi              CHAR(18) NOT NULL,

       №_Avto                    INTEGER,

       Data_prodagi           DATE,

       Cena                         CHAR(18)

);

CREATE UNIQUE INDEX XPKPRODAGI ON PRODAGI

(

       №_Sotrudnika,

       №_Agenta,

       №_Prodagi

);

ALTER TABLE PRODAGI

       ADD PRIMARY KEY (№_Sotrudnika, №_Agenta, №_Prodagi);

CREATE TABLE AVTO (

       №_Avto                 INTEGER NOT NULL,

       №_Agenta             INTEGER NOT NULL,

       Color                     CHAR(18),

       Marka                   CHAR(18),

       Model                   CHAR(18)

)

CREATE UNIQUE INDEX XPKAVTO ON AVTO

(

       №_Avto

);

ALTER TABLE AVTO

       ADD PRIMARY KEY (№_Avto);

CREATE TABLE AVTO_PRODAGI (

       №_Sotrudnika         INTEGER,

       №_Agenta                INTEGER,

       №_Avto                    INTEGER,

       №_Prodagi               INTEGER

);

CREATE TABLE MEXAN (

       №_Mexanika           INTEGER NOT NULL,

       №_Sotrudnika         INTEGER,

       Oklad                        CHAR(18)

);

CREATE UNIQUE INDEX XPKMEXAN ON MEXAN

(

       №_Mexanika,

       №_Sotrudnika

);

ALTER TABLE MEXAN

       ADD PRIMARY KEY (№_Mexanika, №_Sotrudnika);

CREATE TABLE MEXAN_AVTO (

       №_Remonta            INTEGER NOT NULL,

       №_Sotrudnika         INTEGER,

       №_Mexanika           INTEGER,

       №_Avto                    INTEGER,

       Data                          DATE,

       Clock                        CHAR(20)

);

CREATE TABLE SECRETAR (

       №_Secretar              INTEGER NOT NULL,

       №_Sotrudnika         INTEGER,

       Oklad                       CHAR(18)

);

CREATE UNIQUE INDEX XPKSECRETAR ON SECRETAR

(

       №_Secretar,

       №_Sotrudnika

);

ALTER TABLE SECRETAR

       ADD PRIMARY KEY (№_Secretar, №_Sotrudnika);

ALTER TABLE AGENT

       ADD FOREIGN KEY (№_Sotrudnika)

                             REFERENCES SCHTAT;

ALTER TABLE PRODAGI

       ADD FOREIGN KEY (№_Agenta, №_Sotrudnika)

                             REFERENCES AGENT;
ALTER TABLE AVTO_PRODAGI

       ADD FOREIGN KEY (№_Sotrudnika, №_Agenta, №_Prodagi)

                             REFERENCES PRODAGI;
ALTER TABLE AVTO_PRODAGI

       ADD FOREIGN KEY (№_Avto)

                             REFERENCES AVTO;
ALTER TABLE MEXAN

       ADD FOREIGN KEY (№_Sotrudnika)

                             REFERENCES SCHTAT;
ALTER TABLE MEXAN_AVTO

       ADD FOREIGN KEY (№_Avto)

                             REFERENCES AVTO;
ALTER TABLE MEXAN_AVTO

       ADD FOREIGN KEY (№_Mexanika, №_Sotrudnika)

                             REFERENCES MEXAN;
ALTER TABLE SECRETAR

       ADD FOREIGN KEY (№_Sotrudnika)

                             REFERENCES

SCHTAT
;


 


1.2. Проектирование базы данных с помощью
CASE – средств (
Erwin)

Erwin является CASE-пакетом (Computer Aided Software Engineering), предоставляющим разработчику широкие возможности по созданию информационной модели будущего программного обеспечения.

         В создании информационной модели можно выделить следующую последовательность действий:

2.           создание логической модели

3.           создание физической модели

4.           тестирование модели

5.           генерация скрипта
1.2.1. Коротко о используемой нотации (
IDEF1
X)

         IDEF1X является методом для разработки реляционных баз данных и использует условный синтаксис, специально разработанный для удобного построения концептуальной схемы. Концептуальной схемой мы называем универсальное представление структуры данных в рамках коммерческого предприятия, независимое от конечной реализации базы данных и аппаратной платформы. Будучи статическим методом разработки, IDEF1X изначально не предназначен для динамического анализа по принципу "AS IS", тем не менее, он иногда применяется в этом качестве, как альтернатива методу IDEF1. Использование метода IDEF1X наиболее целесообразно для построения логической структуры базы данных после того, как все информационные ресурсы исследованы и решение о внедрении реляционной базы данных, как части корпоративной информационной системы, было принято. Однако не стоит забывать, что средства моделирования IDEF1X специально разработаны для построения реляционных информационных систем, и если существует необходимость проектирования другой системы, скажем объектно-ориентированной, то лучше избрать другие методы моделирования.

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

Создание логической модели заключается в выделении Сущностей предметной области и Связей между ними.

Сущности:

Создадим  сущности:  штат, механики, секретари, агенты, авто, продажи, механ-авто.

Для каждой сущности существует свой список элементов, в котором выделяются атрибуты (Attributes), ключевые поля (Key Groups), связи (Relationships). Связи:
После определения типа связи устанавливается степень связи.

В нашей БД, в основном, используется связь один ко многим (1:N)

         Связь между таблицами штат и агенты, механики, секретари осуществляется отношением один ко многим, т.е  у одного штата может быть несколько агентов, механиков, секретарей, а у них только один штат.

        
Связь между таблицами механ- авто и среда обитания осуществляется отношением многие ко многим(N:M), т. е. один танк может иметь несколько сред обитания, одна среда может иметь несколько танков. Erwin же предполагает раскрытие такой связи через сущность-связь. То есть между этими сущностями добавляется ещё одна сущность, которая имеет название связи. В данном случае «Знает». Первичного ключа у неё нету, при необходимости добавляются атрибуты. Связь

«N:M» разрывается на 2 связи «N:1». Причём N идёт от основных сущностей, а 1 идёт к сущности-связи.




Определение действий связи
(
RI
Actions)


Действия представляют собой реакцию будущей базы данных на основные операции с данными в каждой сущности. Например, как отреагирует БД при Добавлении/Обновлении/Удалении данных в каждую из таблиц-сущностей.

Для установки Действий в диалоговом окне настроек связи необходимо перейти на вкладку  RI Actions




В строке Relationships сущности указываются в порядке Parent/Child.  Соответственно для каждой из связываемых сущностей представлены Действия: Удаление Delete, Обновление Update и добавление Insert. В перечне действий представлены следующие:

- NONE  (при совершении действия, операция выполняется только над данными этой сущности и связываемые сущности не затрагиваются)

-RESTRICT (запрещается выполнять данное действие над этой сущностью)

-CASCADE (действие совершается над данной сущностью и всеми связанными с ней сущностями)

-SET DEFAULT (значение по умолчанию, как правило оно равно NONE).
1.2.3
Физическая
модель
с
комментариями


На физическом уровне определяются типы атрибутов сущностей в соответствии с тем, какими они будут  в программе (integer, float, varchar).

В соответствии с выбранной СУБД Erwin автоматически выставляет типы данных. При необходимости можно заменить типы данных атрибутов.
1.2.4
SQL –скрипт

Итогом создания Информационной модели является сгенерированный sql – скрипт, на основе которого в дальнейшем можно строить базу данных.

SQL-скрипт находится в ПРИЛОЖЕНИИ №1

1.3 Тестирование информационной модели с использованием 
CASE пакета

Тестирование модели производится с помощью средства Erwin Examiner.
1.3.1 Исходный протокол




1.3.2 Анализ
         ErWin Examinator указывает на ошибку в Primary key в таб. MEXAN-AVTO, но эта таблица является связью между сущностями и поэтому первичный ключ не обязательно должен присутствовать.

        

1.3.3 Итоговый протокол
                Т.к. ошибки, указанные в исходном протоколе являются незначительными и могут не исправляться, то итоговый протокол совпадает с исходным.


 
2. СОЗДАНИЕ БАЗЫ ДАННЫХ В СУБД (
Interbase,
Oracle)

2.1  Краткая характеристика СУБД
Современная СУБД Oracle это мощнейший программный комплекс, позволяющий создавать приложения любой сложности. Ядром этого комплекса является база данных, хранящая информацию, количество которой за счет предоставляемых средств масштабирования практически безгранично. C высокой эффективностью работать с этой информацией одновременно может практически любое количество пользователей (при наличии достаточных аппаратных ресурсов), не проявляя тенденции к снижению производительности системы при резком увеличении их числа




 
ЗАКЛЮЧЕНИЕ

         В ходе создания базы данных для хранения информации о работе колледжа получены:

ü     навыки проектирования базы данных методом сущность-связь: выделение сущностей и их ключей, определение связей и их характеристик, построение диаграммы ER-типа, генерации набора предварительных отношений

ü     практические навыки создания информационной модели в Erwin: создания логической и физической моделей, выделение Сущностей предметной области и Связей между ними, определение действий Связи, генерации SQL-скрипта

ü     тестирование информационной модели

              


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




1. К. Дж. Дейт. «Введение в системы баз данных». Диалектика. Киев, Москва 1998г.

2. Г. Джексон. «Проектирование реляционных баз данных для использования с микроЭВМ». Москва, Мир 1991г.

3. Д. Мейер. Теория реляционных баз данных. Москва, Мир, 1997г


 





ПРИЛОЖЕНИЕ


SQL-скрипт
CREATE TABLE SCHTAT (

       №_Sotrudnika         INTEGER NOT NULL,

       Data_priema          DATE,

       FIO                  CHAR(30),

       Dolgnost             CHAR(18)

);

CREATE UNIQUE INDEX XPKSCHTAT ON SCHTAT

(

       №_Sotrudnika

);

ALTER TABLE SCHTAT

       ADD PRIMARY KEY (№_Sotrudnika);

CREATE TABLE AGENT (

       №_Agenta             CHAR(18) NOT NULL,

       №_Sotrudnika         INTEGER,

       Oklad                CHAR(18),

       %_ot_prodag          CHAR(18)

);

CREATE UNIQUE INDEX XPKAGENT ON AGENT

(

       №_Agenta,

       №_Sotrudnika

);

ALTER TABLE AGENT

       ADD PRIMARY KEY (№_Agenta, №_Sotrudnika);

CREATE TABLE PRODAGI (

       №_Sotrudnika         INTEGER NOT NULL,

       №_Agenta             INTEGER,

       №_Prodagi            CHAR(18) NOT NULL,

       №_Avto               INTEGER,

       Data_prodagi         DATE,

       Cena                 CHAR(18)

);
CREATE UNIQUE INDEX XPKPRODAGI ON PRODAGI

(

       №_Sotrudnika,

       №_Agenta,

       №_Prodagi

);
ALTER TABLE PRODAGI

       ADD PRIMARY KEY (№_Sotrudnika, №_Agenta, №_Prodagi);

CREATE TABLE AVTO (

       №_Avto               INTEGER NOT NULL,

       №_Agenta             INTEGER NOT NULL,

       Color                CHAR(18),

       Marka                CHAR(18),

       Model                CHAR(18)

);

CREATE UNIQUE INDEX XPKAVTO ON AVTO

(

       №_Avto

);

ALTER TABLE AVTO

       ADD PRIMARY KEY (№_Avto);

CREATE TABLE AVTO_PRODAGI (

       №_Sotrudnika         INTEGER,

       №_Agenta             INTEGER,

       №_Avto               INTEGER,

       №_Prodagi            INTEGER

);

CREATE TABLE MEXAN (

       №_Mexanika           INTEGER NOT NULL,

       №_Sotrudnika         INTEGER,

       Oklad                CHAR(18)

);

CREATE UNIQUE INDEX XPKMEXAN ON MEXAN

(

       №_Mexanika,

       №_Sotrudnika

);

ALTER TABLE MEXAN

       ADD PRIMARY KEY (№_Mexanika, №_Sotrudnika);

CREATE TABLE MEXAN_AVTO (

       №_Remonta            INTEGER NOT NULL,

       №_Sotrudnika         INTEGER,

       №_Mexanika           INTEGER,

       №_Avto               INTEGER,

       Data                 DATE,

       Clock                CHAR(20)

);

CREATE TABLE SECRETAR (

       №_Secretar           INTEGER NOT NULL,

       №_Sotrudnika         INTEGER,

       Oklad                CHAR(18)

);

CREATE UNIQUE INDEX XPKSECRETAR ON SECRETAR

(

       №_Secretar,

       №_Sotrudnika

);

ALTER TABLE SECRETAR

       ADD PRIMARY KEY (№_Secretar, №_Sotrudnika);

ALTER TABLE AGENT

       ADD FOREIGN KEY (№_Sotrudnika)

                             REFERENCES SCHTAT;

ALTER TABLE PRODAGI

       ADD FOREIGN KEY (№_Agenta, №_Sotrudnika)

                             REFERENCES AGENT;

ALTER TABLE AVTO_PRODAGI

       ADD FOREIGN KEY (№_Sotrudnika, №_Agenta, №_Prodagi)

                             REFERENCES PRODAGI;

ALTER TABLE AVTO_PRODAGI

       ADD FOREIGN KEY (№_Avto)

                             REFERENCES AVTO;

ALTER TABLE MEXAN

       ADD FOREIGN KEY (№_Sotrudnika)

                             REFERENCES SCHTAT;

ALTER TABLE MEXAN_AVTO

       ADD FOREIGN KEY (№_Avto)

                             REFERENCES AVTO;

ALTER TABLE MEXAN_AVTO

       ADD FOREIGN KEY (№_Mexanika, №_Sotrudnika)

                             REFERENCES MEXAN;

ALTER TABLE SECRETAR

       ADD FOREIGN KEY (№_Sotrudnika)

                             REFERENCES SCHTAT;
CREATE EXCEPTION ERWIN_PARENT_INSERT_RESTRICT "Cannot INSERT Parent table because Child table exists.";

CREATE EXCEPTION ERWIN_PARENT_UPDATE_RESTRICT "Cannot UPDATE Parent table because Child table exists.";

CREATE EXCEPTION ERWIN_PARENT_DELETE_RESTRICT "Cannot DELETE Parent table because Child table exists.";

CREATE EXCEPTION ERWIN_CHILD_INSERT_RESTRICT "Cannot INSERT Child table because Parent table does not exist.";

CREATE EXCEPTION ERWIN_CHILD_UPDATE_RESTRICT "Cannot UPDATE Child table because Parent table does not exist.";

CREATE EXCEPTION ERWIN_CHILD_DELETE_RESTRICT "Cannot DELETE Child table because Parent table does not exist.";
CREATE TRIGGER tD_SCHTAT FOR SCHTAT AFTER DELETE AS

  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

  /* DELETE trigger on SCHTAT */

DECLARE VARIABLE numrows INTEGER;

BEGIN

    /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

    /* SCHTAT R/25 SECRETAR ON PARENT DELETE RESTRICT */

    select count(*)

      from SECRETAR

      where

        /*  %JoinFKPK(SECRETAR,OLD," = "," and") */

        SECRETAR.№_Sotrudnika = OLD.№_Sotrudnika into numrows;

    IF (numrows > 0) THEN

    BEGIN

      EXCEPTION ERWIN_PARENT_DELETE_RESTRICT;

    END
    /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

    /* SCHTAT R/10 AGENT ON PARENT DELETE RESTRICT */

    select count(*)

      from AGENT

      where

        /*  %JoinFKPK(AGENT,OLD," = "," and") */

        AGENT.№_Sotrudnika = OLD.№_Sotrudnika into numrows;

    IF (numrows > 0) THEN

    BEGIN

      EXCEPTION ERWIN_PARENT_DELETE_RESTRICT;

    END
    /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

    /* SCHTAT R/2 MEXAN ON PARENT DELETE RESTRICT */

    select count(*)

      from MEXAN

      where

        /*  %JoinFKPK(MEXAN,OLD," = "," and") */

        MEXAN.№_Sotrudnika = OLD.№_Sotrudnika into numrows;

    IF (numrows > 0) THEN

    BEGIN

      EXCEPTION ERWIN_PARENT_DELETE_RESTRICT;

    END
  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

END !!
CREATE TRIGGER tU_SCHTAT FOR SCHTAT AFTER UPDATE AS

  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

  /* UPDATE trigger on SCHTAT */

DECLARE VARIABLE numrows INTEGER;

BEGIN

  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

  /* SCHTAT R/25 SECRETAR ON PARENT UPDATE RESTRICT */

  IF

    /* %JoinPKPK(OLD,NEW," <> "," or ") */

    (OLD.№_Sotrudnika <> NEW.№_Sotrudnika) THEN

  BEGIN

    select count(*)

      from SECRETAR

      where

        /*  %JoinFKPK(SECRETAR,OLD," = "," and") */

        SECRETAR.№_Sotrudnika = OLD.№_Sotrudnika into numrows;

    IF (numrows > 0) THEN

    BEGIN

      EXCEPTION ERWIN_PARENT_UPDATE_RESTRICT;

    END

  END
  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

  /* SCHTAT R/10 AGENT ON PARENT UPDATE RESTRICT */

  IF

    /* %JoinPKPK(OLD,NEW," <> "," or ") */

    (OLD.№_Sotrudnika <> NEW.№_Sotrudnika) THEN

  BEGIN

    select count(*)

      from AGENT

      where

        /*  %JoinFKPK(AGENT,OLD," = "," and") */

        AGENT.№_Sotrudnika = OLD.№_Sotrudnika into numrows;

    IF (numrows > 0) THEN

    BEGIN

      EXCEPTION ERWIN_PARENT_UPDATE_RESTRICT;

    END

  END
  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

  /* SCHTAT R/2 MEXAN ON PARENT UPDATE RESTRICT */

  IF

    /* %JoinPKPK(OLD,NEW," <> "," or ") */

    (OLD.№_Sotrudnika <> NEW.№_Sotrudnika) THEN

  BEGIN

    select count(*)

      from MEXAN

      where

        /*  %JoinFKPK(MEXAN,OLD," = "," and") */

        MEXAN.№_Sotrudnika = OLD.№_Sotrudnika into numrows;

    IF (numrows > 0) THEN

    BEGIN

      EXCEPTION ERWIN_PARENT_UPDATE_RESTRICT;

    END

  END
  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

END !!
CREATE TRIGGER tD_AGENT FOR AGENT AFTER DELETE AS

  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

  /* DELETE trigger on AGENT */

DECLARE VARIABLE numrows INTEGER;

BEGIN

    /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

    /* AGENT R/24 PRODAGI ON PARENT DELETE RESTRICT */

    select count(*)

      from PRODAGI

      where

        /*  %JoinFKPK(PRODAGI,OLD," = "," and") */

        PRODAGI.№_Agenta = OLD.№_Agenta and

        PRODAGI.№_Sotrudnika = OLD.№_Sotrudnika into numrows;

    IF (numrows > 0) THEN

    BEGIN

      EXCEPTION ERWIN_PARENT_DELETE_RESTRICT;

    END
  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

END !!
CREATE TRIGGER tI_AGENT FOR AGENT AFTER INSERT AS

  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

  /* INSERT trigger on AGENT */

DECLARE VARIABLE numrows INTEGER;

BEGIN

    /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

    /* SCHTAT R/10 AGENT ON CHILD INSERT RESTRICT */

    select count(*)

      from SCHTAT

      where

        /* %JoinFKPK(NEW,SCHTAT," = "," and") */

        NEW.№_Sotrudnika = SCHTAT.№_Sotrudnika into numrows;

    IF (

      /* %NotnullFK(NEW," is not null and") */

     

      numrows = 0

    ) THEN

    BEGIN

      EXCEPTION ERWIN_CHILD_INSERT_RESTRICT;

    END

  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

END !!
CREATE TRIGGER tU_AGENT FOR AGENT AFTER UPDATE AS

  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

  /* UPDATE trigger on AGENT */

DECLARE VARIABLE numrows INTEGER;

BEGIN

  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

  /* AGENT R/24 PRODAGI ON PARENT UPDATE RESTRICT */

  IF

    /* %JoinPKPK(OLD,NEW," <> "," or ") */

    (OLD.№_Agenta <> NEW.№_Agenta or

     OLD.№_Sotrudnika <> NEW.№_Sotrudnika) THEN

  BEGIN

    select count(*)

      from PRODAGI

      where

        /*  %JoinFKPK(PRODAGI,OLD," = "," and") */

        PRODAGI.№_Agenta = OLD.№_Agenta and

        PRODAGI.№_Sotrudnika = OLD.№_Sotrudnika into numrows;

    IF (numrows > 0) THEN

    BEGIN

      EXCEPTION ERWIN_PARENT_UPDATE_RESTRICT;

    END

  END
  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

  /* SCHTAT R/10 AGENT ON CHILD UPDATE RESTRICT */

  select count(*)

    from SCHTAT

    where

      /* %JoinFKPK(NEW,SCHTAT," = "," and") */

      NEW.№_Sotrudnika = SCHTAT.№_Sotrudnika into numrows;

  IF (

    /* %NotnullFK(NEW," is not null and") */

   

    numrows = 0

  ) THEN

  BEGIN

    EXCEPTION ERWIN_CHILD_UPDATE_RESTRICT;

  END

  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

END !!
CREATE TRIGGER tD_PRODAGI FOR PRODAGI AFTER DELETE AS

  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

  /* DELETE trigger on PRODAGI */

DECLARE VARIABLE numrows INTEGER;

BEGIN

    /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

    /* PRODAGI R/29 AVTO_PRODAGI ON PARENT DELETE SET NULL */

    update AVTO_PRODAGI

      set

        /* %SetFK(AVTO_PRODAGI,NULL) */

        AVTO_PRODAGI.№_Sotrudnika = NULL,

        AVTO_PRODAGI.№_Agenta = NULL,

        AVTO_PRODAGI.№_Prodagi = NULL

      where

        /* %JoinFKPK(AVTO_PRODAGI,OLD," = "," and") */

        AVTO_PRODAGI.№_Sotrudnika = OLD.№_Sotrudnika and

        AVTO_PRODAGI.№_Agenta = OLD.№_Agenta and

        AVTO_PRODAGI.№_Prodagi = OLD.№_Prodagi;
  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

END !!
CREATE TRIGGER tI_PRODAGI FOR PRODAGI AFTER INSERT AS

  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

  /* INSERT trigger on PRODAGI */

DECLARE VARIABLE numrows INTEGER;

BEGIN

    /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

    /* AGENT R/24 PRODAGI ON CHILD INSERT RESTRICT */

    select count(*)

      from AGENT

      where

        /* %JoinFKPK(NEW,AGENT," = "," and") */

        NEW.№_Agenta = AGENT.№_Agenta and

        NEW.№_Sotrudnika = AGENT.№_Sotrudnika into numrows;

    IF (

      /* %NotnullFK(NEW," is not null and") */

     

      numrows = 0

    ) THEN

    BEGIN

      EXCEPTION ERWIN_CHILD_INSERT_RESTRICT;

    END
  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

END !!
CREATE TRIGGER tU_PRODAGI FOR PRODAGI AFTER UPDATE AS

  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

  /* UPDATE trigger on PRODAGI */

DECLARE VARIABLE numrows INTEGER;

BEGIN

  /* PRODAGI R/29 AVTO_PRODAGI ON PARENT UPDATE SET NULL */

  IF

    /* %JoinPKPK(OLD,NEW," <> "," or " */

    (OLD.№_Sotrudnika <> NEW.№_Sotrudnika or

     OLD.№_Agenta <> NEW.№_Agenta or

     OLD.№_Prodagi <> NEW.№_Prodagi) THEN

  BEGIN

    update AVTO_PRODAGI

      set

        /* %SetFK(AVTO_PRODAGI,NULL) */

        AVTO_PRODAGI.№_Sotrudnika = NULL,

        AVTO_PRODAGI.№_Agenta = NULL,

        AVTO_PRODAGI.№_Prodagi = NULL

      where

        /* %JoinFKPK(AVTO_PRODAGI,OLD," = ",",") */

        AVTO_PRODAGI.№_Sotrudnika = OLD.№_Sotrudnika and

        AVTO_PRODAGI.№_Agenta = OLD.№_Agenta and

        AVTO_PRODAGI.№_Prodagi = OLD.№_Prodagi;

  END
  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

  /* AGENT R/24 PRODAGI ON CHILD UPDATE RESTRICT */

  select count(*)

    from AGENT

    where

      /* %JoinFKPK(NEW,AGENT," = "," and") */

      NEW.№_Agenta = AGENT.№_Agenta and

      NEW.№_Sotrudnika = AGENT.№_Sotrudnika into numrows;

  IF (

    /* %NotnullFK(NEW," is not null and") */

   

    numrows = 0

  ) THEN

  BEGIN

    EXCEPTION ERWIN_CHILD_UPDATE_RESTRICT;

  END
  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

END !!
CREATE TRIGGER tD_AVTO FOR AVTO AFTER DELETE AS

  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

  /* DELETE trigger on AVTO */

DECLARE VARIABLE numrows INTEGER;

BEGIN

    /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

    /* AVTO R/28 AVTO_PRODAGI ON PARENT DELETE SET NULL */

    update AVTO_PRODAGI

      set

        /* %SetFK(AVTO_PRODAGI,NULL) */

        AVTO_PRODAGI.№_Avto = NULL

      where

        /* %JoinFKPK(AVTO_PRODAGI,OLD," = "," and") */

        AVTO_PRODAGI.№_Avto = OLD.№_Avto;
    /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

    /* AVTO R/27 MEXAN_AVTO ON PARENT DELETE SET NULL */

    update MEXAN_AVTO

      set

        /* %SetFK(MEXAN_AVTO,NULL) */

        MEXAN_AVTO.№_Avto = NULL

      where

        /* %JoinFKPK(MEXAN_AVTO,OLD," = "," and") */

        MEXAN_AVTO.№_Avto = OLD.№_Avto;
  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

END !!
CREATE TRIGGER tU_AVTO FOR AVTO AFTER UPDATE AS

  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

  /* UPDATE trigger on AVTO */

DECLARE VARIABLE numrows INTEGER;

BEGIN

  /* AVTO R/28 AVTO_PRODAGI ON PARENT UPDATE SET NULL */

  IF

    /* %JoinPKPK(OLD,NEW," <> "," or " */

    (OLD.№_Avto <> NEW.№_Avto) THEN

  BEGIN

    update AVTO_PRODAGI

      set

        /* %SetFK(AVTO_PRODAGI,NULL) */

        AVTO_PRODAGI.№_Avto = NULL

      where

        /* %JoinFKPK(AVTO_PRODAGI,OLD," = ",",") */

        AVTO_PRODAGI.№_Avto = OLD.№_Avto;

  END
  /* AVTO R/27 MEXAN_AVTO ON PARENT UPDATE SET NULL */

  IF

    /* %JoinPKPK(OLD,NEW," <> "," or " */

    (OLD.№_Avto <> NEW.№_Avto) THEN

  BEGIN

    update MEXAN_AVTO

      set

        /* %SetFK(MEXAN_AVTO,NULL) */

        MEXAN_AVTO.№_Avto = NULL

      where

        /* %JoinFKPK(MEXAN_AVTO,OLD," = ",",") */

        MEXAN_AVTO.№_Avto = OLD.№_Avto;

  END
  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

END !!
CREATE TRIGGER tI_AVTO_PRODAGI FOR AVTO_PRODAGI AFTER INSERT AS

  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

  /* INSERT trigger on AVTO_PRODAGI */

DECLARE VARIABLE numrows INTEGER;

BEGIN

    /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

    /* PRODAGI R/29 AVTO_PRODAGI ON CHILD INSERT SET NULL */

    update AVTO_PRODAGI

      set

        /* %SetFK(AVTO_PRODAGI,NULL) */

        AVTO_PRODAGI.№_Sotrudnika = NULL,

        AVTO_PRODAGI.№_Agenta = NULL,

        AVTO_PRODAGI.№_Prodagi = NULL

      where

        not exists (

          select * from PRODAGI

            where

              /* %JoinFKPK(NEW,PRODAGI," = "," and") */

              NEW.№_Sotrudnika = PRODAGI.№_Sotrudnika and

              NEW.№_Agenta = PRODAGI.№_Agenta and

              NEW.№_Prodagi = PRODAGI.№_Prodagi

        ) and

        /* %JoinPKPK(AVTO_PRODAGI,NEW," = "," and") */

        ;
    /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

    /* AVTO R/28 AVTO_PRODAGI ON CHILD INSERT SET NULL */

    update AVTO_PRODAGI

      set

        /* %SetFK(AVTO_PRODAGI,NULL) */

        AVTO_PRODAGI.№_Avto = NULL

      where

        not exists (

          select * from AVTO

            where

              /* %JoinFKPK(NEW,AVTO," = "," and") */

              NEW.№_Avto = AVTO.№_Avto

        ) and

        /* %JoinPKPK(AVTO_PRODAGI,NEW," = "," and") */

        ;
  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

END !!
CREATE TRIGGER tU_AVTO_PRODAGI FOR AVTO_PRODAGI AFTER UPDATE AS

  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

  /* UPDATE trigger on AVTO_PRODAGI */

DECLARE VARIABLE numrows INTEGER;

BEGIN

    /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

    /* PRODAGI R/29 AVTO_PRODAGI ON CHILD UPDATE SET NULL */

    update AVTO_PRODAGI

      set

        /* %SetFK(AVTO_PRODAGI,NULL) */

        AVTO_PRODAGI.№_Sotrudnika = NULL,

        AVTO_PRODAGI.№_Agenta = NULL,

        AVTO_PRODAGI.№_Prodagi = NULL

      where

        not exists (

          select * from PRODAGI

            where

              /* %JoinFKPK(NEW,PRODAGI," = "," and") */

              NEW.№_Sotrudnika = PRODAGI.№_Sotrudnika and

              NEW.№_Agenta = PRODAGI.№_Agenta and

              NEW.№_Prodagi = PRODAGI.№_Prodagi

        ) and

        /* %JoinPKPK(AVTO_PRODAGI,NEW," = "," and") */

        ;
    /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

    /* AVTO R/28 AVTO_PRODAGI ON CHILD UPDATE SET NULL */

    update AVTO_PRODAGI

      set

        /* %SetFK(AVTO_PRODAGI,NULL) */

        AVTO_PRODAGI.№_Avto = NULL

      where

        not exists (

          select * from AVTO

            where

              /* %JoinFKPK(NEW,AVTO," = "," and") */

              NEW.№_Avto = AVTO.№_Avto

        ) and

        /* %JoinPKPK(AVTO_PRODAGI,NEW," = "," and") */

        ;
  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

END !!
CREATE TRIGGER tD_MEXAN FOR MEXAN AFTER DELETE AS

  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

  /* DELETE trigger on MEXAN */

DECLARE VARIABLE numrows INTEGER;

BEGIN

    /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

    /* MEXAN R/26 MEXAN_AVTO ON PARENT DELETE SET NULL */

    update MEXAN_AVTO

      set

        /* %SetFK(MEXAN_AVTO,NULL) */

        MEXAN_AVTO.№_Mexanika = NULL,

        MEXAN_AVTO.№_Sotrudnika = NULL

      where

        /* %JoinFKPK(MEXAN_AVTO,OLD," = "," and") */

        MEXAN_AVTO.№_Mexanika = OLD.№_Mexanika and

        MEXAN_AVTO.№_Sotrudnika = OLD.№_Sotrudnika;
  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

END !!
CREATE TRIGGER tI_MEXAN FOR MEXAN AFTER INSERT AS

  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

  /* INSERT trigger on MEXAN */

DECLARE VARIABLE numrows INTEGER;

BEGIN

    /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

    /* SCHTAT R/2 MEXAN ON CHILD INSERT RESTRICT */

    select count(*)

      from SCHTAT

      where

        /* %JoinFKPK(NEW,SCHTAT," = "," and") */

        NEW.№_Sotrudnika = SCHTAT.№_Sotrudnika into numrows;

    IF (

      /* %NotnullFK(NEW," is not null and") */

     

      numrows = 0

    ) THEN

    BEGIN

      EXCEPTION ERWIN_CHILD_INSERT_RESTRICT;

    END
  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

END !!
CREATE TRIGGER tU_MEXAN FOR MEXAN AFTER UPDATE AS

  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

  /* UPDATE trigger on MEXAN */

DECLARE VARIABLE numrows INTEGER;

BEGIN

  /* MEXAN R/26 MEXAN_AVTO ON PARENT UPDATE SET NULL */

  IF

    /* %JoinPKPK(OLD,NEW," <> "," or " */

    (OLD.№_Mexanika <> NEW.№_Mexanika or

     OLD.№_Sotrudnika <> NEW.№_Sotrudnika) THEN

  BEGIN

    update MEXAN_AVTO

      set

        /* %SetFK(MEXAN_AVTO,NULL) */

        MEXAN_AVTO.№_Mexanika = NULL,

        MEXAN_AVTO.№_Sotrudnika = NULL

      where

        /* %JoinFKPK(MEXAN_AVTO,OLD," = ",",") */

        MEXAN_AVTO.№_Mexanika = OLD.№_Mexanika and

        MEXAN_AVTO.№_Sotrudnika = OLD.№_Sotrudnika;

  END
  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

  /* SCHTAT R/2 MEXAN ON CHILD UPDATE RESTRICT */

  select count(*)

    from SCHTAT

    where

      /* %JoinFKPK(NEW,SCHTAT," = "," and") */

      NEW.№_Sotrudnika = SCHTAT.№_Sotrudnika into numrows;

  IF (

    /* %NotnullFK(NEW," is not null and") */

   

    numrows = 0

  ) THEN

  BEGIN

    EXCEPTION ERWIN_CHILD_UPDATE_RESTRICT;

  END
  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

END !!
CREATE TRIGGER tI_MEXAN_AVTO FOR MEXAN_AVTO AFTER INSERT AS

  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

  /* INSERT trigger on MEXAN_AVTO */

DECLARE VARIABLE numrows INTEGER;

BEGIN

    /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

    /* AVTO R/27 MEXAN_AVTO ON CHILD INSERT SET NULL */

    update MEXAN_AVTO

      set

        /* %SetFK(MEXAN_AVTO,NULL) */

        MEXAN_AVTO.№_Avto = NULL

      where

        not exists (

          select * from AVTO

            where

              /* %JoinFKPK(NEW,AVTO," = "," and") */

              NEW.№_Avto = AVTO.№_Avto

        ) and

        /* %JoinPKPK(MEXAN_AVTO,NEW," = "," and") */

        ;
    /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

    /* MEXAN R/26 MEXAN_AVTO ON CHILD INSERT SET NULL */

    update MEXAN_AVTO

      set

        /* %SetFK(MEXAN_AVTO,NULL) */

        MEXAN_AVTO.№_Mexanika = NULL,

        MEXAN_AVTO.№_Sotrudnika = NULL

      where

        not exists (

          select * from MEXAN

            where

              /* %JoinFKPK(NEW,MEXAN," = "," and") */

              NEW.№_Mexanika = MEXAN.№_Mexanika and

              NEW.№_Sotrudnika = MEXAN.№_Sotrudnika

        ) and

        /* %JoinPKPK(MEXAN_AVTO,NEW," = "," and") */

        ;
  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

END !!
CREATE TRIGGER tU_MEXAN_AVTO FOR MEXAN_AVTO AFTER UPDATE AS

  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

  /* UPDATE trigger on MEXAN_AVTO */

DECLARE VARIABLE numrows INTEGER;

BEGIN

    /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

    /* AVTO R/27 MEXAN_AVTO ON CHILD UPDATE SET NULL */

    update MEXAN_AVTO

      set

        /* %SetFK(MEXAN_AVTO,NULL) */

        MEXAN_AVTO.№_Avto = NULL

      where

        not exists (

          select * from AVTO

            where

              /* %JoinFKPK(NEW,AVTO," = "," and") */

              NEW.№_Avto = AVTO.№_Avto

        ) and

        /* %JoinPKPK(MEXAN_AVTO,NEW," = "," and") */

        ;
    /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

    /* MEXAN R/26 MEXAN_AVTO ON CHILD UPDATE SET NULL */

    update MEXAN_AVTO

      set

        /* %SetFK(MEXAN_AVTO,NULL) */

        MEXAN_AVTO.№_Mexanika = NULL,

        MEXAN_AVTO.№_Sotrudnika = NULL

      where

        not exists (

          select * from MEXAN

            where

              /* %JoinFKPK(NEW,MEXAN," = "," and") */

              NEW.№_Mexanika = MEXAN.№_Mexanika and

              NEW.№_Sotrudnika = MEXAN.№_Sotrudnika

        ) and

        /* %JoinPKPK(MEXAN_AVTO,NEW," = "," and") */

        ;
  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

END !!
CREATE TRIGGER tI_SECRETAR FOR SECRETAR AFTER INSERT AS

  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

  /* INSERT trigger on SECRETAR */

DECLARE VARIABLE numrows INTEGER;

BEGIN

    /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

    /* SCHTAT R/25 SECRETAR ON CHILD INSERT RESTRICT */

    select count(*)

      from SCHTAT

      where

        /* %JoinFKPK(NEW,SCHTAT," = "," and") */

        NEW.№_Sotrudnika = SCHTAT.№_Sotrudnika into numrows;

    IF (

      /* %NotnullFK(NEW," is not null and") */

     

      numrows = 0

    ) THEN

    BEGIN

      EXCEPTION ERWIN_CHILD_INSERT_RESTRICT;

    END
  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

END !!
CREATE TRIGGER tU_SECRETAR FOR SECRETAR AFTER UPDATE AS

  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

  /* UPDATE trigger on SECRETAR */

DECLARE VARIABLE numrows INTEGER;

BEGIN

  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

  /* SCHTAT R/25 SECRETAR ON CHILD UPDATE RESTRICT */

  select count(*)

    from SCHTAT

    where

      /* %JoinFKPK(NEW,SCHTAT," = "," and") */

      NEW.№_Sotrudnika = SCHTAT.№_Sotrudnika into numrows;

  IF (

    /* %NotnullFK(NEW," is not null and") */

   

    numrows = 0

  ) THEN

  BEGIN

    EXCEPTION ERWIN_CHILD_UPDATE_RESTRICT;

  END
  /* ERwin Builtin Fri Dec 11 20:50:53 2009 */

END !!

1. Доклад Астрология и психология в XX столетии
2. Реферат на тему Poetry Essay Research Paper Question Depending
3. Реферат на тему Emerson And The Poet Essay Research Paper
4. Реферат Брак и семейные отношения
5. Диплом Совершенствование производственно-хозяйственной деятельности предприятия на примере ЗАО Мин
6. Реферат на тему Eb White Essay Research Paper Elwyn Brooks
7. Курсовая Контроль за своєчасним зверненням до виконання судових рішень
8. Курсовая Нравственное воспитание историко-педагогический аспект
9. Статья Философская антропология. Введение для изучающих психологию
10. Статья Терроризм и глобализация