Представления.
Типы таблиц, с которыми мы имели дело до сих пор, назывались базовыми таблицами. Это таблицы, которые содержат данные. Однако имеется другой вид таблиц - представления. Представления - это таблицы, чье содержание выбирается или получается из других таблиц. Они работают в запросах точно также как и основные таблицы, но не содержат никаких собственных данных. Представления подобны окнам, через которые вы просматриваете информацию (как она есть, или в другой форме), которая фактически хранится в базовой таблице. Представление - это фактически запрос, который выполняется всякий раз, когда представление становится темой команды. Вывод запроса при этом в каждый момент становится содержанием представления.
Создается представление командой CREATE VIEW. Она состоит из слов CREATE VIEW (СОЗДАТЬ ПРЕДСТАВЛЕНИЕ), имени представления которое нужно создать, слова AS (КАК), и далее запроса, как в следующем примере:
CREATE VIEW StudWithDateB AS
SELECT sNameSt, nameSt, lNameSt, dateB
FROM Student
WHERE adressByReg like '%Белгород%'
Теперь мы имеем представление, называемое StudWithDateB. Мы можем использовать это представление точно так же, как и любую другую таблицу. Оно может быть запрошено, модифицировано, удалено, соединено с другими таблицами и представлениями. Для простых представлений (основанный на одной таблице) возможна вставка и модификация данных. Сложные представления в обычном режиме доступны только для выборки.
Запрос представления:
SELECT * FROM StudWithDateB
sNameSt nameSt lNameSt dateB
------------------------------ -------------------- -------------------- -----------------------
Иванова Анна Ивановна 1990-02-08 00:00:00.000
Семенова Евгения Петровна 1990-04-01 00:00:00.000
Бойченко Алексей Анатольевич 1990-12-09 00:00:00.000
(3 row(s) affected)
Запрос представления может быть модифицирован, например может быть добавлено условие WHERE, присвоены псевдонимы столбцам и т.д.
Ограничения для запросов при создании представлений:
- ОБЪЕДИНЕНИЕ (UNION) и ОБЪЕДИНЕНИЕ ВСЕГО (UNIOM ALL) не разрешаются.
- УПОРЯДОЧЕНИЕ ПО(ORDER BY) никогда не используется в определении представлений.
Для удаления используется команда DROP VIEW <имя представления>.
Любые запросы (кроме оговоренных выше ограничений), всегда можно определить как представление. Запросы этих представлений, фактически, являются запросами запроса. Использование представлений обеспечивает удобства предоставления данных и удобства разграничения прав доступа к данным. Кроме того, представления позволяют форматировать данные нужным образом.
Структуры памяти. Индексные структуры.
Основной единицей хранилища данных в SQL Server является страница. Место на диске, предоставляемое для размещения файла данных (MDF- или NDF-файл) в базе данных, логически разделяется на страницы. Дисковые операции ввода-вывода выполняются на уровне страницы. А именно, SQL Server считывает или записывает целые страницы данных.
Экстент — это коллекция, состоящая из восьми физически непрерывных страниц; они используются для эффективного управления страницами. Все страницы хранятся в экстентах.
Файлы журнала не содержат страниц, в них содержится последовательность записей журнала.
Страницы
1 страница = 8 КБ.
Это значит, что в одном мегабайте базы данных SQL Server содержится 128 страниц.
Каждая страница начинается с 96-байтового заголовка, который используется для хранения системных данных о странице. Эти данные включают номер страницы, тип страницы, объем свободного места на странице и идентификатор единицы распределения объекта, которому принадлежит страница.
Строки данных заносятся на страницу последовательно, сразу же после заголовка. Таблица смещения строк начинается в конце страницы; каждая таблица смещения строк содержит одну запись для каждой строки на странице. Каждая запись регистрирует, насколько далеко от начала страницы находится первый байт строки. Записи в таблице смещения строк находятся в обратном порядке относительно последовательности строк на странице.
Существует несколько типов страниц, основные из них:
-
страницы данных;
-
страницы индексов.