Студопедия — Создание, изменение и удаление представлений средствами T-SQL
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Создание, изменение и удаление представлений средствами T-SQL






Представление (View) для конечных пользователей выглядит как таблица, но при этом само не содержит данных, а лишь представляет данные, расположенные в таблице. Физически представление реализовано в виде SQL-запроса, на основе которого производится выборка данных из одной или нескольких таблиц или представлений. Простейшее представление, созданное на основе одной таблицы и не имеющее фильтров, содержит точно такой же набор данных, как и исходная таблица. Более сложные представления содержат информацию из нескольких таблиц, причем можно фильтровать список строк, которые будут включены в представление.

Представление может выбирать данные из других представлений, которые, в свою очередь, могут также основываться на представлениях или таблицах. Вложенность представлений не должна превышать 32. Это максимальное количество уровней, поддерживаемое SQL Server 7.0. Представление можно создать только в текущей базе данных, но, используя распределенные запросы, можно ссылаться на таблицы и представления, созданные в других базах данных. Представление часто применяется для ограничения доступа пользователей к конфиденциальным данным в таблице. Представление может быть использовано для объединения данных из нескольких взаимосвязанных таблиц.

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

Так как в основе представления лежит SQL-запрос, то для представлений, как и для обычных запросов, генерируется план исполнения запроса. Каждый раз, когда пользователь обращается к представлению, план выполнения запроса компилируется заново.

 

Создание представлений. Использование Transact-SQL

CREATE VIEW view_name [(column [,...n])]

[WITH ENCRYPTION]

AS

select_statement

[WITH CHECK OPTION]

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

column — имя колонки, которое будет использоваться в представлении. Максимальная длина имени составляет 128 символов. По умолчанию имена колонок в представлении соответствуют именам колонок в исходных таблицах. Явное указание имени колонки требуется при использовании вычисляемых колонок или при объединении нескольких таблиц, имеющих колонки с одинаковыми именами. Имена колонок перечисляются через запятую в соответствии с их порядком в представлении. Имена колонок можно указывать в команде SELECT, определяющей представление.

WITH ENCRYPTION. Использование этого параметра предписывает серверу шифровать код SQL-запроса. Это гарантирует, что пользователи не смогут просмотреть код запроса и использовать его. Если при определении представления необходимо скрыть имена исходных таблиц и колонок, а также алгоритм объединения данных, то необходимо использовать эту опцию.

select_statement — код запроса SELECT, выполняющий выборку, объединение и фильтрацию строк из исходных таблиц и представлений. Можно использовать команду SELECT любой сложности со следующими ограничениями:

В запрос нельзя включать операции вычисления и группировки, то есть запрещается указание параметров ORDER BY, COMPUTE и COMPUTE BY.

Нельзя создавать новую таблицу на основе результатов, полученных в ходе выполнения запроса, то есть запрещается использование параметра INTO.

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

 

40. Типы и поведение курсоров. Управление курсорами.

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

1. Статические курсоры

При открытии статического курсора (курсора моментального снимка) сервер выбирает все данные, соответствующие заданным критериям, и сохраняет полный результирующий набор строк в системной БД tempbd.

На время открытия курсора сервер устанавливает блокировку на все строки, включенные в полный результирующий набор курсоров. Статический курсор не изменяется после создания и всегда отображает тот набор данных, который существовал в БД на момент его открытия. Внесение изменений в статические курсоры невозможно, т.к. нет гарантии существования неизменности строк данный, на основе которых построен курсор.

2. Динамические курсоры

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

3. Последовательные курсоры

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

4. Ключевые курсоры

Курсоры, зависящие от набора ключей (ключевые), построены на основе уникальных идентификаторов. Ключевой курсор представляет собой набор ключей, идентифицирующих строки полного результирующего набора курсора. Т.к. сохраняется информация только о ключевых полях строк, ключевые курсоры отражают все изменения, вносимые другими пользователями.

41. Создание курсора. Открытие курсора. Считывание данных. Изменение и удаление данных с помощью курсора.

При работе с курсором можно выделить четыре основные операции:

1) Создание курсора

Перед тем как использовать курсор его необходимо создать.

2) Открытие курсора

Сразу после создания курсор не содержит никаких данных, также как переменная после объявления не содержит значения. Операция открытия курсора наполняет курсор данными.

3) Выборка из курсора и изменение строк данных с помощью курсора.

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

4) Закрытие курсора

Когда все операции обработки данных завершены, и надобность в курсоре отпадает, его необходимо закрыть. При закрытии курсора сервер освобождает пространство в системной БД tempbd, выделенное курсором при его открытии.

5) Освобождение курсора

Операция удаляет курсор как объект.

42. Предоставление, запрещение и неявное отклонение доступа пользователей к объектам базы данных.

Когда пользователи подключаются к SQL-сервер, действия, которые они могут выполнять, определяются правами, выданными их учетной записи, группе или роли, в которой они состоят. Для выполнения тех или иных действий пользователь должен иметь соответствующие права. Выполнение некоторых действий не требует явного разрешения и доступно по умолчанию. Для предоставления пользователям определенного набора прав можно использовать роли. Создав несколько ролей и предоставив им необходимые права доступа, администратор может просто включать пользователей в соответствующие роли. В этом случае пользователь автоматически получает все права, определенные для роли.

Права в SQL-сервер можно разделить на 3 категории:

1. Разрешение для объектов

Работа с данными и выполнение хранимых процедур требует наличие класса доступа, называемого «разрешением для объектов». Разрешение для объектов контролирует возможность выполнения команд Select, Insert, Update и Delete для таблицы представлений. Действия с хранимыми процедурами контролируются разрешением либо запрещением их выполнения, т.е. предоставлением или запрещением команды EXECUTE.

2. Разрешение для команд Transact SQL

Этот класс разрешений контролирует возможность создания объекта в БД, а также создание самой БД и выполнение процедур резервного копирования (Create view, create table и т.д.).

3. Неявное разрешение

Этот класс разрешений контролирует действия, которые могут быть выполнены только членами ролей сервера или владельцами объектов в БД. Неявные разрешения не предоставляются пользователям напрямую, он получает их только при определенных обстоятельствах. Например, пользователь может стать владельцем объекта БД, только если он сам создаст этот объект, либо если другой владелец объекта передаст ему права владения своим объектом. Владелец объекта имеет все права для выполнения любых действий с объектом, при чем эти права нигде явно не указываются. Для конкретного действия, контролируемого разрешением, возможны три варианта состояния доступа: предоставления, запрещения, неявного отклонения. После создания пользователь не имеет никаких прав доступа кроме тех, которые разрешены для специальной роли БД Public.







Дата добавления: 2015-04-19; просмотров: 1100. Нарушение авторских прав; Мы поможем в написании вашей работы!



Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

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

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

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

Тактические действия нарядов полиции по предупреждению и пресечению групповых нарушений общественного порядка и массовых беспорядков В целях предупреждения разрастания групповых нарушений общественного порядка (далееГНОП) в массовые беспорядки подразделения (наряды) полиции осуществляют следующие мероприятия...

Механизм действия гормонов а) Цитозольный механизм действия гормонов. По цитозольному механизму действуют гормоны 1 группы...

Приложение Г: Особенности заполнение справки формы ву-45   После выполнения полного опробования тормозов, а так же после сокращенного, если предварительно на станции было произведено полное опробование тормозов состава от стационарной установки с автоматической регистрацией параметров или без...

Измерение следующих дефектов: ползун, выщербина, неравномерный прокат, равномерный прокат, кольцевая выработка, откол обода колеса, тонкий гребень, протёртость средней части оси Величину проката определяют с помощью вертикального движка 2 сухаря 3 шаблона 1 по кругу катания...

Неисправности автосцепки, с которыми запрещается постановка вагонов в поезд. Причины саморасцепов ЗАПРЕЩАЕТСЯ: постановка в поезда и следование в них вагонов, у которых автосцепное устройство имеет хотя бы одну из следующих неисправностей: - трещину в корпусе автосцепки, излом деталей механизма...

Studopedia.info - Студопедия - 2014-2024 год . (0.01 сек.) русская версия | украинская версия