
- •2013.230100.Бд.Кр.Пз ивт-302.Самигуллин
- •1 Описание проблемной области
- •1.2 Описание автоматизируемых функций (бизнес-процессов)
- •1.2.1 Перечень автоматизируемых функций
- •1.2.2 Функция 1 «Прием заказов»
- •1.2.3 Функция 2 «Проектирование рекламы»
- •1.2.4 Функция 3 «Размещение рекламы»
- •1.3 Первичное описание информационного обеспечения
- •1.4 Вывод
- •2 Проектирование внешних иерархических моделей
- •2.1 Составление внешних иерархических моделей
- •2.1.1 Функция 1 «Прием заказов»
- •2.1.1 Функция 2 «Проектирование рекламы»
- •2.1.1 Функция 3 «Размещение рекламы»
- •2.2 Спецификации локальных ограничений и правил
- •2.3 Вывод
- •3.1 Нормализация локальных er-моделей
- •3.1.1 Функция 1 «Прием заказов»
- •3.1.2 Функция 2 «Проектирование рекламы»
- •3.1.3 Функция 3 «Размещение рекламы»
- •3.2 Спецификации локальных ограничений и правил
- •3.3 Вывод
- •4 Проектирование глобальной er-модели
- •4.1 Анализ дублирования в локальных моделях
- •4.1.1 Выявление эквивалентных сущностей
- •4.1.2 Выявление подсущностей и категорий сущностей
- •4.3 Спецификации ограничений и правил
- •4.3 Вывод
- •5 Проектирование внутренней реляционной модели
- •5.1 Устранение подсущностей, категорий и явных связей
- •5.1.1 Устранение подсущностей и категорий
- •5.1.2 Устранение явных связей типа «один ко многим»
- •5.2 Спецификации ограничений и правил
- •5.4 Вывод
- •6 Проектирование моделей отображения
- •6.1 Разработка иерархий представлений
- •6.1.1 Функция 1 «Учет кадров»
- •6.2 Разработка внутренних моделей представлений
- •6.2.1 Функция 1 «Учет кадров»
- •6.3 Вывод
- •Заключение
- •Список литературы
5.4 Вывод
В результате проектирования глобальной реляционной модели, соответствующей глобальной ER-модели, получены спецификации, задающие 17 сущностей-таблиц. Разработанные спецификации ограничений и операционных правил включают все ограничения и правила, полученные на предыдущем этапе и трансформированные для реляционной модели; дополнительно на данном этапе введено 0 ограничений и 6 правил.
6 Проектирование моделей отображения
Данный раздел, являющийся заключительным этапом проектирования концептуальных моделей базы данных, посвящен разработке моделей отображения, связывающих глобальную реляционную модель (разработанную на этапе 5) с внешними иерархическими моделями (разработанными на этапе 2). Сначала разрабатываются иерархии представлений, соответствующие внешним моделям, а затем прорабатывается внутренняя структура отдельных представлений, входящих в состав иерархий. Результаты проектирования приведены в документе 2012.654600.БД.КР.52.МО «Модели отображения».
6.1 Разработка иерархий представлений
В данном подразделе разрабатываются иерархии представлений (виртуальных сущностей), соответствующие внешним моделям. Для каждой внешней иерархической модели строится соответствующая эквивалентная иерархия представлений. Корню иерархии соответствует сущность внешней модели, а узлам — многозначные агрегаты или атрибуты.
6.1.1 Функция 1 «Учет кадров»
Иерархия представлений для этой функции включает 4 представления, организованных в виде 3-уровневой древовидной структуры. Корневое представление «vПрием заказов» имеет потомка: «vСостав заказа», которому в качестве параметра с вышестоящего уровня передается атрибут «Рег. номер заказа».
6.2 Разработка внутренних моделей представлений
В данном подразделе прорабатывается внутренняя структура отдельных представлений, входящих в состав иерархий. Для этого строятся необходимые эквисоединения сущностей внутренней реляционной модели. Внешние параметры сущностей используются для соответствующей фильтрации экземпляров. Виртуальные атрибуты, требующие подсчета статистических показателей, вычисляются с помощью соответствующего группирования экземпляров и применения подходящих агрегативных функций.
6.2.1 Функция 1 «Учет кадров»
Корневое представление «vПрием заказов» строится путем эквисоединения сущностей «Персона» и «Заказчик» по атрибуту «Код персоны», «Персона» и «Приемщик» по атрибуту «Код персоны», Виртуальные атрибуты в этом представлении не предусмотрены.
Представление второго уровня иерархии «vСостав заказа» строится путем эквисоединения сущностей «Справочник» и «Прием заказов*Состав заказа» по атрибутам «Тип» и «Код». Виртуальные атрибуты в этом представлении не предусмотрены.
6.3 Вывод
В результате разработки моделей отображения, связывающих глобальную реляционную модель (разработанную на этапе 5) с внешними иерархическими моделями (разработанными на этапе 2), получены три иерархии представлений, соответствующие трем внешним моделям. В ходе дальнейшей проработки получена внутренняя структура отдельных представлений, входящих в состав иерархий, представляющая собой эквисоединение от 2 до 5 нормализованных таблиц внутренней реляционной модели.
SQL-код создания базы данных
CREATE DATABASE data;
USE data;
CREATE TABLE ПриемЗаказов
(
РегНомерЗаказа INT NOT NULL,
ДатаЗаказа DATETIME NOT NULL,
СрокИсполнения DATETIME NOT NULL,
ТипДокумента VARCHAR(20) NOT NULL,
КодДокумента INT NOT NULL,
КодПриемщика INT NOT NULL,
КодЗаказчика INT NOT NULL
);
CREATE TABLE Персона
(
КодПерсоны INT NOT NULL,
ФИО VARCHAR(50) NOT NULL
);
CREATE TABLE ПроектированиеРекламы
(
РегНомерЗаказа INT NOT NULL,
РегНомерПроекта INT NOT NULL,
НазваниеПроекта VARCHAR(50) NOT NULL
);
CREATE TABLE ПроектированиеРекламы_ПродуктПроекта
(
РегНомерЗаказа INT NOT NULL,
НппПродукта INT NOT NULL,
РегНомерПродукта INT NOT NULL,
РегНомерПроекта INT NOT NULL
);
CREATE TABLE ПроектированиеРекламы_ИсполнительПроекта
(
РегНомерЗаказа INT NOT NULL,
НппИсполнителя INT NOT NULL,
РегНомерПроекта INT NOT NULL,
КодИсполнителя INT NOT NULL,
РегНомерПродукта INT NOT NULL
);
CREATE TABLE Справочник
(
Тип VARCHAR(20) NOT NULL, Код INT NOT NULL,
Название VARCHAR(20) NOT NULL );
CREATE TABLE Продукт
(
РегНомерПродукта INT NOT NULL,
ОсобенностиПродукта TEXT NOT NULL,
ТипВидаПродукта VARCHAR(20) NOT NULL,
КодВидаПродукта INT NOT NULL
);
CREATE TABLE Место
(
РегНомерЗаказа INT NOT NULL,
РегНомерДоговораАрендыМеста INT NOT NULL,
РегНомерРазмещения INT NOT NULL,
КодМеста INT NOT NULL,
НазваниеМеста VARCHAR(20) NOT NULL,
РасположениеМеста VARCHAR(20) NOT NULL
);
CREATE TABLE ДоговорАренды
(
РегНомерДоговораАрендыМеста INT NOT NULL,
ДатаДоговораАрендыМеста DATETIME NOT NULL,
ДатаНачалаАренды DATETIME NOT NULL,
ДатаОкончанияАренды DATETIME NOT NULL
);
CREATE TABLE РазмещениеРекламы
(
РегНомерЗаказа INT NOT NULL,
РегНомерРазмещения INT NOT NULL,
Статус VARCHAR(20) NOT NULL,
КодИсполнителя INT NOT NULL
);
CREATE TABLE ПриемЗаказов_СоставЗаказа
(
РегНомерЗаказа INT NOT NULL,
НппУслуги INT NOT NULL,
ОбъемУслуги INT NOT NULL,
ТипУслуги VARCHAR(20) NOT NULL,
КодУслуги INT NOT NULL
);
CREATE TABLE ПрП_РаботаПоИзготовлениюПродукта
(
РегНомерЗаказа INT NOT NULL,
НппРаботы INT NOT NULL,
НппПродукта INT NOT NULL,
ТипВидаРаботы VARCHAR(20) NOT NULL,
КодВидаРаботы INT NOT NULL,
РегНомерПродукта INT NOT NULL,
РегНомерПроекта INT NOT NULL
);
CREATE TABLE РаботаПоИзготовлениюПродукта_РасходРесурса
(
РегНомерЗаказа INT NOT NULL,
НппРаботы INT NOT NULL,
НппПродукта INT NOT NULL,
НппРесурса INT NOT NULL,
Количество INT NOT NULL,
ТипРесурса VARCHAR(20) NOT NULL,
КодРесурса INT NOT NULL
);
CREATE TABLE РазмещениеРекламы_РазмещаемыйПродукт
(
РегНомерЗаказа INT NOT NULL,
РегНомерРазмещения INT NOT NULL,
НппПродуктаНаМесте INT NOT NULL,
РегНомерПродукта INT NOT NULL
);
ALTER TABLE ПриемЗаказов
ADD CONSTRAINT PK_ПриемЗаказов
PRIMARY KEY(РегНомерЗаказа);
ALTER TABLE Персона
ADD CONSTRAINT PK_Персона
PRIMARY KEY(КодПерсоны);
ALTER TABLE ПроектированиеРекламы
ADD CONSTRAINT PK_ПроектированиеРекламы
PRIMARY KEY(РегНомерЗаказа,РегНомерПроекта);
ALTER TABLE ПроектированиеРекламы_ПродуктПроекта
ADD CONSTRAINT PK_ПроектированиеРекламы_ПродуктПроекта
PRIMARY KEY(РегНомерЗаказа,НппПродукта,РегНомерПродукта,РегНомерПроекта);
ALTER TABLE ПроектированиеРекламы_ИсполнительПроекта
ADD CONSTRAINT PK_ПроектированиеРекламы_ИсполнительПроекта
PRIMARY KEY(РегНомерЗаказа,НппИсполнителя,РегНомерПроекта);
ALTER TABLE Справочник
ADD CONSTRAINT PK_Справочник
PRIMARY KEY(Тип,Код);
ALTER TABLE Продукт
ADD CONSTRAINT PK_Продукт
PRIMARY KEY(РегНомерПродукта);
ALTER TABLE Место
ADD CONSTRAINT PK_Место
PRIMARY KEY(РегНомерЗаказа,РегНомерДоговораАрендыМеста,РегНомерРазмещения,КодМеста);
ALTER TABLE ДоговорАренды
ADD CONSTRAINT PK_ДоговорАренды
PRIMARY KEY(РегНомерДоговораАрендыМеста);
ALTER TABLE РазмещениеРекламы
ADD CONSTRAINT PK_РазмещениеРекламы
PRIMARY KEY(РегНомерЗаказа,РегНомерРазмещения);
ALTER TABLE ПриемЗаказов_СоставЗаказа
ADD CONSTRAINT PK_ПриемЗаказов_СоставЗаказа
PRIMARY KEY(РегНомерЗаказа,НппУслуги);
ALTER TABLE ПрП_РаботаПоИзготовлениюПродукта
ADD CONSTRAINT PK_ПрП_РаботаПоИзготовлениюПродукта
PRIMARY KEY(РегНомерЗаказа,НппРаботы,НппПродукта);
ALTER TABLE РаботаПоИзготовлениюПродукта_РасходРесурса
ADD CONSTRAINT PK_РаботаПоИзготовлениюПродукта_РасходРесурса
PRIMARY KEY(РегНомерЗаказа,НппРаботы,НппПродукта,НппРесурса);
ALTER TABLE РазмещениеРекламы_РазмещаемыйПродукт
ADD CONSTRAINT PK_РазмещениеРекламы_РазмещаемыйПродукт
PRIMARY KEY(РегНомерЗаказа,РегНомерРазмещения,НппПродуктаНаМесте);
ALTER TABLE ПриемЗаказов
ADD CONSTRAINT FK_Документ
FOREIGN KEY (ТипДокумента,КодДокумента)
REFERENCES Справочник(Тип,Код)
ON UPDATE CASCADE
ON DELETE CASCADE;
ALTER TABLE ПриемЗаказов
ADD CONSTRAINT FK_Приемщик
FOREIGN KEY (КодПриемщика)
REFERENCES Персона (КодПерсоны)
ON UPDATE CASCADE
ON DELETE CASCADE;
ALTER TABLE ПриемЗаказов
ADD CONSTRAINT FK_Заказчик
FOREIGN KEY (КодЗаказчика)
REFERENCES Персона (КодПерсоны)
ON UPDATE NO ACTION
ON DELETE NO ACTION;
ALTER TABLE ПроектированиеРекламы
ADD CONSTRAINT FK_Заказ4
FOREIGN KEY (РегНомерЗаказа)
REFERENCES ПриемЗаказов (РегНомерЗаказа)
ON UPDATE CASCADE
ON DELETE CASCADE;
ALTER TABLE ПроектированиеРекламы_ИсполнительПроекта
ADD CONSTRAINT FK_Проект
FOREIGN KEY (РегНомерЗаказа, РегНомерПроекта)
REFERENCES ПроектированиеРекламы (РегНомерЗаказа, РегНомерПроекта)
ON UPDATE CASCADE
ON DELETE CASCADE;
ALTER TABLE ПроектированиеРекламы_ИсполнительПроекта
ADD CONSTRAINT FK_Исполнитель
FOREIGN KEY (КодИсполнителя)
REFERENCES Персона (КодПерсоны)
ON UPDATE NO ACTION
ON DELETE NO ACTION;
ALTER TABLE ПроектированиеРекламы_ПродуктПроекта
ADD CONSTRAINT FK_Проект2
FOREIGN KEY (РегНомерЗаказа, РегНомерПроекта)
REFERENCES ПроектированиеРекламы
(РегНомерЗаказа, РегНомерПроекта)
ON UPDATE CASCADE
ON DELETE CASCADE;
ALTER TABLE ПроектированиеРекламы_ПродуктПроекта
ADD CONSTRAINT FK_Продукт
FOREIGN KEY (РегНомерПродукта)
REFERENCES Продукт (РегНомерПродукта)
ON UPDATE CASCADE
ON DELETE CASCADE;
ALTER TABLE Продукт
ADD CONSTRAINT FK_Продукт2
FOREIGN KEY (ТипВидаПродукта,КодВидаПродукта)
REFERENCES Справочник (Тип,Код)
ON UPDATE NO ACTION
ON DELETE NO ACTION;
ALTER TABLE Место
ADD CONSTRAINT FK_Размещение
FOREIGN KEY (РегНомерЗаказа,РегНомерРазмещения)
REFERENCES РазмещениеРекламы
(РегНомерЗаказа,РегНомерРазмещения)
ON UPDATE CASCADE
ON DELETE CASCADE;
ALTER TABLE Место
ADD CONSTRAINT FK_ДоговорАренды
FOREIGN KEY (РегНомерДоговораАрендыМеста)
REFERENCES ДоговорАренды (РегНомерДоговораАрендыМеста)
ON UPDATE CASCADE
ON DELETE CASCADE;
ALTER TABLE РазмещениеРекламы
ADD CONSTRAINT FK_Исполнитель2
FOREIGN KEY (КодИсполнителя)
REFERENCES Персона (КодПерсоны)
ON UPDATE CASCADE
ON DELETE CASCADE;
ALTER TABLE РазмещениеРекламы
ADD CONSTRAINT FK_Заказ
FOREIGN KEY (РегНомерЗаказа)
REFERENCES ПриемЗаказов (РегНомерЗаказа)
ON UPDATE NO ACTION
ON DELETE NO ACTION;
ALTER TABLE ПриемЗаказов_СоставЗаказа
ADD CONSTRAINT FK_Услуга
FOREIGN KEY (ТипУслуги,КодУслуги)
REFERENCES Справочник (Тип,Код)
ON UPDATE CASCADE
ON DELETE CASCADE;
ALTER TABLE ПриемЗаказов_СоставЗаказа
ADD CONSTRAINT FK_Заказ2
FOREIGN KEY (РегНомерЗаказа)
REFERENCES ПриемЗаказов (РегНомерЗаказа)
ON UPDATE NO ACTION
ON DELETE NO ACTION;
ALTER TABLE ПрП_РаботаПоИзготовлениюПродукта
ADD CONSTRAINT FK_Работа
FOREIGN KEY (ТипВидаРаботы, КодВидаРаботы)
REFERENCES Справочник (Тип, Код)
ON UPDATE CASCADE
ON DELETE CASCADE;
ALTER TABLE ПрП_РаботаПоИзготовлениюПродукта
ADD CONSTRAINT FK_Продукт3
FOREIGN KEY
(РегНомерЗаказа,НппПродукта,РегНомерПродукта,РегНомерПроекта)
REFERENCES ПроектированиеРекламы_ПродуктПроекта
(РегНомерЗаказа,НппПродукта,РегНомерПродукта,РегНомерПроекта)
ON UPDATE NO ACTION
ON DELETE NO ACTION;
ALTER TABLE РаботаПоИзготовлениюПродукта_РасходРесурса
ADD CONSTRAINT FK_Ресурс
FOREIGN KEY (ТипРесурса, КодРесурса)
REFERENCES Справочник (Тип, Код)
ON UPDATE CASCADE
ON DELETE CASCADE;
ALTER TABLE РаботаПоИзготовлениюПродукта_РасходРесурса
ADD CONSTRAINT FK_Заказ3
FOREIGN KEY (РегНомерЗаказа,НппРаботы,НппПродукта)
REFERENCES ПрП_РаботаПоИзготовлениюПродукта
(РегНомерЗаказа,НппРаботы,НппПродукта)
ON UPDATE NO ACTION
ON DELETE NO ACTION;
ALTER TABLE РазмещениеРекламы_РазмещаемыйПродукт
ADD CONSTRAINT FK_Размещение2
FOREIGN KEY (РегНомерЗаказа,РегНомерРазмещения)
REFERENCES РазмещениеРекламы
(РегНомерЗаказа,РегНомерРазмещения)
ON UPDATE CASCADE
ON DELETE CASCADE;
ALTER TABLE РазмещениеРекламы_РазмещаемыйПродукт
ADD CONSTRAINT FK_Продукт4
FOREIGN KEY (РегНомерПродукта)
REFERENCES Продукт (РегНомерПродукта)
ON UPDATE CASCADE
ON DELETE CASCADE;
ALTER TABLE Персона
ADD DEFAULT 000000 FOR КодПерсоны;
ALTER TABLE Справочник
ADD DEFAULT 0000 FOR Код;
ALTER TABLE РаботаПоИзготовлениюПродукта_РасходРесурса
ADD CHECK (Количество > 0);
ALTER TABLE Место
ADD UNIQUE (НазваниеМеста)
SQL-код заполнения базы данных тестовыми данными
INSERT Персона (КодПерсоны,ФИО)
VALUES (01, 'Самигуллин А.И.');
INSERT Персона (КодПерсоны,ФИО)
VALUES (02, 'Самигуллина К.И.');
INSERT Персона (КодПерсоны,ФИО)
VALUES (52, 'Маликова Н.Ш.');
INSERT Персона (КодПерсоны,ФИО)
VALUES (53, 'Шайхелисламова Л.Р.');
INSERT Персона (КодПерсоны,ФИО)
VALUES (54, 'Кальметьев Т.Р.');
INSERT Справочник (Тип,Код,Название)
VALUES ('Газета',0000001,'Уфимские Ведомости');
INSERT Справочник (Тип,Код,Название)
VALUES ('Журнал',0000002,'Выбирай');
INSERT Справочник (Тип,Код,Название)
VALUES ('Газета',0000003,'Комсомольская Правда');
INSERT Справочник (Тип,Код,Название)
VALUES ('Сайт',0000004,'Сайт АВИТО');
INSERT Справочник (Тип,Код,Название)
VALUES ('Продвижение',0000005,'Контекстная реклама');
INSERT ДоговорАренды (РегНомерДоговораАрендыМеста,ДатаДоговораАрендыМеста,ДатаНачалаАренды,ДатаОкончанияАренды)
VALUES (12300,2013-11-17,2013-11-18,2013-12-18);
INSERT ПриемЗаказов (РегНомерЗаказа,ДатаЗаказа,СрокИсполнения,ТипДокумента,КодДокумента,КодПриемщика,КодЗаказчика)
VALUES (000001,2013-11-11-15-40-00,2013-12-22-18-30-00,'Газета',0000001,01,52);
INSERT ПриемЗаказов (РегНомерЗаказа,ДатаЗаказа,СрокИсполнения,ТипДокумента,КодДокумента,КодПриемщика,КодЗаказчика)
VALUES (000002,2013-11-11-16-45-00,2013-12-23-09-30-00,'Журнал',0000002,01,53);
INSERT ПриемЗаказов (РегНомерЗаказа,ДатаЗаказа,СрокИсполнения,ТипДокумента,КодДокумента,КодПриемщика,КодЗаказчика)
VALUES (000003,2013-11-12-08-20-00,2013-12-22-18-30-00,'Газета',0000003,01,53);
INSERT ПриемЗаказов (РегНомерЗаказа,ДатаЗаказа,СрокИсполнения,ТипДокумента,КодДокумента,КодПриемщика,КодЗаказчика)
VALUES (000004,2013-11-12-09-35-00,2013-11-20-17-30-00,'Сайт',0000004,02,54);
INSERT РазмещениеРекламы (РегНомерЗаказа,РегНомерРазмещения,Статус,КодИсполнителя)
VALUES (0001,1515,'Размещено',54);
INSERT Место (РегНомерЗаказа,РегНомерДоговораАрендыМеста,РегНомерРазмещения,КодМеста,НазваниеМеста,РасположениеМеста)
VALUES (000001,12300,1515,12400,'Парк','Уфа');
INSERT ПроектированиеРекламы (РегНомерЗаказа,РегНомерПроекта,НазваниеПроекта)
VALUES (000004,00001,'Сайт АВИТО');
INSERT ПроектированиеРекламы (РегНомерЗаказа,РегНомерПроекта,НазваниеПроекта)
VALUES (000002,00002,'Объявление в журнале "Выбирай"');
INSERT Продукт (РегНомерПродукта,ОсобенностиПродукта,ТипВидаПродукта,КодВидаПродукта)
VALUES (1212, 'Премиум-обьявление','Сайт',0000004);
INSERT Продукт (РегНомерПродукта,ОсобенностиПродукта,ТипВидаПродукта,КодВидаПродукта)
VALUES (1213, 'Раздел Фитнесс', 'Журнал', 0000002);
INSERT ПроектированиеРекламы_ПродуктПроекта (РегНомерЗаказа,НппПродукта,РегНомерПродукта,РегНомерПроекта)
VALUES (000004,1,1212,00001);
INSERT ПроектированиеРекламы_ПродуктПроекта (РегНомерЗаказа,НппПродукта,РегНомерПродукта,РегНомерПроекта)
VALUES (000002,2,1213,00002);
INSERT ПроектированиеРекламы_ИсполнительПроекта
(РегНомерЗаказа,НппИсполнителя,РегНомерПроекта,КодИсполнителя,РегНомерПродукта)
VALUES (000004,1,00001,53,1212);
INSERT ПроектированиеРекламы_ИсполнительПроекта
(РегНомерЗаказа,НппИсполнителя,РегНомерПроекта,КодИсполнителя,РегНомерПродукта)
VALUES (000002,2,00002,52,1213);
INSERT РазмещениеРекламы (РегНомерЗаказа,РегНомерРазмещения,Статус,КодИсполнителя)
VALUES (000002,1515,'Размещено',54);
INSERT ПриемЗаказов_СоставЗаказа (РегНомерЗаказа,НппУслуги,ОбъемУслуги,ТипУслуги,КодУслуги)
VALUES (000002,1,15,'Продвижение',0000005);
INSERT ПрП_РаботаПоИзготовлениюПродукта (РегНомерЗаказа,НппРаботы,НппПродукта,ТипВидаРаботы,КодВидаРаботы,РегНомерПродукта,РегНомерПроекта)
VALUES (000002,1,2,'Сайт',0000004,1213,00002);
INSERT РаботаПоИзготовлениюПродукта_РасходРесурса (РегНомерЗаказа,НппРаботы,НппПродукта,НппРесурса,Количество,ТипРесурса,КодРесурса)
VALUES (000002,1,2,1,50,'Журнал',0000002);
SQL-код реализации моделей отображения
CREATE VIEW vПриемЗаказов AS
SELECT Персона.КодПерсоны AS КодЗаказчика, Персона.ФИО AS ФИОЗаказчика,
Персона.КодПерсоны AS КодПриемщика, Персона.ФИО AS ФИОПриемщик
ПриемЗаказов.РегНомерЗаказа,ПриемЗаказов.ДатаЗаказа, ПриемЗаказов.СрокИсполнения
FROM ПриемЗаказов,Персона
INNER JOIN Персона AS З ON (З.КодПерсоны = ПриемЗаказов.КодЗаказчика)
INNER JOIN Персона AS П ON (П.КодПерсоны = ПриемЗаказов.КодПриемщика);
CREATE PROCEDURE pСоставЗаказа
@id INT
AS SELECT [ПриемЗаказов_СоставЗаказа].[НппУслуги], [ПриемЗаказов_СоставЗаказа].[РегНомерЗаказа],
[ПриемЗаказов_СоставЗаказа].[ОбъемУслуги], [Справочник].[Код], [Справочник].[Тип]
FROM ([ПриемЗаказов_СоставЗаказа]
INNER JOIN [Справочник]
ON [Справочник].[Код]= [ПриемЗаказов_СоставЗаказа].[КодУслуги]
AND [Справочник].[Тип]= [ПриемЗаказов_СоставЗаказа].[ТипУслуги])
WHERE ([ПриемЗаказов_СоставЗаказа].[РегНомерЗаказа]=@id);