Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
127
Добавлен:
02.05.2014
Размер:
1.03 Mб
Скачать

7.2.2 Представления отображения для функции 2

Здесь представленыSQL-операторы CREATE PROCEDURE, предназначенные для создания представлений отображения для функции 2 «Реставрация» в соответствии с разработанными концептуальными моделями отображения (см. разд. 6.2.2). Все отображения для этой функции построены в виде хранимых процедур (Stored procedure), корневая — без параметров, остальные — с параметрами для задания соответствующих фильтров:

create procedure dbo.[Vреставрация] as

select [реставрация].[рег номер рест], [реставрация].[дата начала],[реставрация].[дата окончания],[реставрация].[дата окончания]-[реставрация].[дата начала] as [продолжительность]

from [реставрация]

create procedure dbo.[Vреставратор реставрации]

@restavrator char(6) as

select [реставратор реставрации].[нпп рест],[реставратор реставрации].[таб номер],[реставратор реставрации].[код категории],[сотрудник].[фио],[категория реставратора].[назв категории]

from(

[реставратор реставрации] inner join [сотрудник]

on [сотрудник].[таб номер]=[реставратор реставрации].[таб номер]

)

inner join [категория реставратора]

on [категория реставратора].[код категории]=[реставратор реставрации].[код категории]

where [реставрация].[рег номер рест]=@restavrator

create procedure dbo.[Vобъект реставрации]

@object char(6),

@objectres int,

@objectrest char (6)

as

select [объект реставрации].[нпп объекта],

[объект реставрации].[код объекта],

[объект реставрации].[таб номер]

from [объект реставрации]

where [объект реставрации].[нпп рест]=@objectres and

[объект реставрации].[таб номер]=@objectrest and

[объект реставрации].[рег номер рест]=@object

create procedure dbo.[Vвып работа на объекте]

@rabora char(6),

@rabotao char (6)

as

select [вып работа на объекте].[нпп работы],[вып работа на объекте].[код вида],[вып работа на объекте].[содержание],[вид].[назв вида]

from

[вып работа на объекте] inner join [вид]

on [вид].[код вида]=[вып работа на объекте].[код вида]

where [вып работа на объекте].[рег номер рест]=@rabora and

[вып работа на объекте].[нпп объекта]=@rabotao

7.2.3 Представления отображения для функции 3

Здесь представлены SQL-операторы CREATE VIEW и CREATE PROCEDURE, предназначенные для создания представлений отображения для функции 3 «Экспозиция» в соответствии с разработанными концептуальными моделями отображения (см. разд. 6.2.3). Корневое отображение для этой функции построено в виде виртуальной таблицы (View), а остальные — в виде хранимых процедур (Stored procedure):

create view [dbo].Vэкспозиция as

select [экспозиция].[рег номер экспозиции],[экспозиция].[назв экспозиции],[экспозиция].[дата начала],[экспозиция].[дата окончания],[экспозиция].[таб номер],[ответственный сотрудник за экспозицию].[код должности],[сотрудник].[фио],[должность].[назв должности]

from ((

[экспозиция] inner join [ответственный сотрудник за экспозицию]

on [ответственный сотрудник за экспозицию].[таб номер]=[экспозиция].[таб номер])

inner join [сотрудник]

on [сотрудник].[таб номер]=[экспозиция].[таб номер])

inner join [должность]

on [должность].[код должности]=[ответственный сотрудник за экспозицию].[код должности]

group by [экспозиция].[рег номер экспозиции],[экспозиция].[назв экспозиции],[экспозиция].[дата начала],[экспозиция].[дата окончания],[экспозиция].[таб номер],[ответственный сотрудник за экспозицию].[код должности],[сотрудник].[фио],[должность].[назв должности]

create procedure dbo.[Vперсонал экспозиции]

@personal char(6) as

select [персонал экспозиции].[таб номер],[персонал экспозиции].[роль],[сотрудник].[ФИО]

from(

[персонал экспозиции] inner join [персонал]

on [персонал].[таб номер]=[персонал экспозиции].[таб номер])

inner join [сотрудник]

on [сотрудник].[таб номер]=[персонал экспозиции].[таб номер]

where [персонал экспозиции].[рег номер экспозиции]=@personal

create procedure dbo.[Vэкспонат экспозиции]

@eksponat char(6) as

select [экспонат экспозиции].[нпп объекта],[экспонат экспозиции].[код объекта],[экспонат экспозиции].[код зала],[объект поступления].[назв объекта],[зал].[назв зала],[зал].[номер зала]

from(

[экспонат экспозиции] inner join [объект поступления]

on [объект поступления].[код объекта]=[экспонат экспозиции].[код объекта])

inner join [зал]

on [зал].[код зала]=[экспонат экспозиции].[код зала]

where [экспонат экспозиции].[рег номер экспозиции]=@eksponat

Соседние файлы в папке База данных - Музей