Программирование >>  Программирование баз данных 

1 ... 6 7 8 [ 9 ] 10 11 12 ... 346


Представления

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

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

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

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

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

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

Указанные проблемы производительности будут рассматриваться более подробно в главе 9.



Хранимые процедуры

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

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

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

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

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

Пользовательские функции

Пользовашеяьски£ функции (User Defined Functions - UDF) во многом аналогичны хранимым процедурам, но отличаются от них перечисленными ниже особенностями.

Пользовательские функции могут возвращать значения, относящиеся к большинству типов данных SQL Server. Не допускается использовать в качестве типов возвращаемых значений лишь такие типы, как text, ntext, image, cursor и timestamp.

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

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



только по значению. Безусловно, в процедурных языках программирования предусмотрены намного более разнообразные способы передачи переменных, например, в языке VB применяется конструкция By Ref, а в языке С++ - передача указателей, но, к сожалению, в СУБД SQL Server эквивалентные возможности отсутствуют. Тем не менее пользовательские функции удобны тем, что позволяют возвращать данные в виде специальной таблицы. Дополнительная информация по этой теме приведена в главе П.

Пользователи и роли

Такие объекты SQL Server, как пользователи и роли, тесно взаимосвязаны. Объекты пользователей в значительной степени эквивалентны учетным записям. Короче говоря, этот объект предназначен для предоставления идентификатора пользователям, которым требуется зарегистрироваться в СУБД SQL Server. Любой, кто пожелает зарегистрироваться для работы с СУБД SQL Server, должен быть представлен с помощью объекта пользователя (прямо или косвенно, в зависимости от применяемой модели защиты). Пользователи, в свою очередь, могут принадлежать к одной или нескольким ролям. Права на выполнение определенных действий в СУБД SQL Server могут быть предоставлены непосредственно пользователю или роли, к которой принадлежат один или несколько пользователей.

Правила

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

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

Значения по умолчанию

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



1 ... 6 7 8 [ 9 ] 10 11 12 ... 346

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика