Горизонтальные представления 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Горизонтальные представления



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

Предположим, необходимо создать представления, о служащих IT отдела (код департамента 60) и департамента IT Support (код департамента 210).

Создать представление, показывающее информацию о департаменте IT.

Пример 2:

CREATE VIEW it_view AS

SELECT *

FROM employees

WHERE department_id IN 60

Рисунок №64 – Результат представления в примере 2.

 

Создать представление, показывающее информацию о служащих департамента IT Support.

Пример 3:

CREATE VIEW accounting_view

AS SELECT *

FROM employees

WHERE department_id IN 110

Рисунок №65 – Результат представления в примере 3.

 

Теперь каждому можно разрешить доступ либо к пред­ставлению it_view, либо к accounting_view и одновременно запретить доступ к другому представлению, а также к таблице employees. Таким образом, главный менеджер по департаменту получает собственное представление таблицы employees, в котором отражены толь­ко данные о служащих соответствующего департамента.

Такие представления, как it_view или accounting_view, называются горизонтальными. Горизонтальное представление "разрезает" исходную таблицу по горизонтали. В него входят все столбцы исходной таблицы и только часть ее строк. Горизонтальные представления удобно применять, когда исходная таблица содержит данные, которые относятся к различным организациям или пользователям. Они предоставляют каждому пользователю "личную таблицу", содержащую только те строки, которые ему необходимы.

 

Вот еще пример горизонтального представления: Создать представление, показывающее офисы только в Японии.

Поример 4.

CREATE VIEW japan_view

AS SELECT *

FROM locations

WHERE country_id in 'JP'

 

Рисунок №66 – Результат представления в примере 4.

 

 

Вертикальные представления

Другим распространенным применением представлений является ограничение доступа к столбцам таблицы. Например в учебной базе данных, отделу Accounting, обрабаты­вающему заказы, для выполнения своих функций может потребоваться следую­щая информация: имя, идентификатор служащего и офис, в котором он работает. Но отделу вовсе не обязательно знать дату приема на работу, зарплату того или иного служащего. Такой избирательный образ таблицы empoyees можно получить с помощью следующего представления:

Пример 5:

create view emp_info_view

as select EMPLOYEE_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER

from employees

 

Рисунок №67 – Результат представления в примере 5.

 

Разрешив отделу поддержки доступ к этому представлению и одновременно запретив доступ к самой таблице EMPLOYEES, можно ограничить доступ к конфиденци­альной информации.

Такие представления, как emp_info_view, называются вертикальными. Вертикальное представление "разрезает" исходную таблицу по вертикали. Вер­тикальные представления часто применяются там, где данные используются различными пользователями или группами пользователей. Они предоставляют каждому пользователю "личную таблицу", содержащую только те столбцы, которые ему необходимы.

Вот еще несколько примеров вертикальных представлений:

Пример 6:

Создать представление таблицы LOCATIONS, включающее только адреса офисов.

 

create view local_info_view

as select STREET_ADDRESS, POSTAL_CODE, CITY, STATE_PROVINCE

from locations

 

 

Рисунок №68 – Результат представления в примере 6.

 

В каждом из приведенных примеров источником данных для представления яв­ляется одна исходная таблица. Список имен избранных столбцов в инструкции CREATE view определяет, какие столбцы исходной таблицы войдут в представление Поскольку это вертикальные представления, в них входят все строки исходных таб­лиц, и предложение where в определении представления не указывается.

 

Смешанные представления

При создании представлений обычно требуется разделять таблицу и по вертикали, и по горизонтали. На самом деле в SQL отсутствуют понятия горизонтального и вертикального представлений. Они просто помогают вам понять, каким образом из исходной таблицы формируется представление. Обычным делом является использо­вание представлений, разделяющих исходную таблицу как в горизонтальном, так и вертикальном направлении.

Пример 7: создать представление, включающее идентификатор сотрудника, имя,фамилия и заработная плата сотрудников департамента Александра Ханолда (идентификатор служащего 103)

 

create view ahunold_view

as select FIRST_NAME, LAST_NAME, SALARY

from employees

where MANAGER_ID = 103

 

 

Рисунок №69 – Результат представления в примере 7.

 

Данные полученного представления являются подмножеством строк и столбцов таблицы Employees. В этом представлении будут видны только те столбцы, которые явно указаны в предложении SELECT, и только те строки, которые удовлетворяют условию отбора в предложении where.

 



Поделиться:


Последнее изменение этой страницы: 2017-02-09; просмотров: 960; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.139.97.157 (0.007 с.)