- •Понятие автоматизированной системы, автоматизированного банка данных (абд). Состав и роли пользователей абд.
- •Иерархическая модель данных.
- •Сетевая модель данных.
- •Реляционная модель данных. Понятие домена, отношения, атрибута, кортежа, арности отношения реляционной базы данных.
- •Структура данных в рбд. Свойства столбца и ограничения таблицы. Использование ключей для идентификации строк, ссылочной целостности и логической связи строк. Индексы таблиц.
- •Язык запросов к рбд, основанный на реляционном исчислении. Примеры запросов.
- •Язык запросов к рбд, основанный на реляционной алгебре, примеры запросов.
- •Назначение и общая структура оператора Select в sql. Общая схема выполнения оператора Select. Примеры.
- •Элементы списка вывода в операторе Select Transact sql. Назначение и использование параметра Order by. Примеры.
- •Типы табличных источников в операторах управления данными в sql. Способы соединения строк в параметре From. Примеры соединений.
- •Критерий отбора строк в параметре Where операторов sql. Примеры фильтрующих запросов.
- •Назначение и использование агрегатных функций, параметров Group by и Having оператора Select. Примеры группирующих запросов.
- •Операторы union [all] , except, intersect. Примеры.
- •Структура, назначение параметров и примеры использования оператора insert. Примеры применения.
- •Структура, назначение параметров и примеры использования операторов delete, truncate.
- •Структура, назначение параметров и примеры применения оператора update.
- •Организация ms sql Server: режимы использования сервера и поддерживающие их службы Windows, системные базы, исходные учетные записи сервера.
- •Правила именования постоянных и временных объектов баз данных в ms sql Server. Примеры.
- •Структурные операторы Transact sql: if, go to, while, waitfor. Примеры применения.
- •Обработка исключений в программах Transact sql. Функции для анализа причины исключений и вывода сообщений.
- •Логическая организация базы данных в ms sql Server: словарь (системные таблицы и системные представления) базы master и пользовательской бд. Типы объектов пользовательской базы.
- •Физическая организация базы данных в ms sql Server: файлы и файловые группы. Структура и параметры оператора create database.
- •26.. Изменение параметров базы оператором alter. Реорганизация базы данных командой dbcc.
- •27.. Опции базы данных. Способы задания и проверки опций базы. Процедуры отсоединения и присоединения баз данных к серверу.
- •28.. Базовые типы данных в ms sql Server
- •29.. Специальные типы данных в ms sql Server. Функции приведения значения выражения к требуемому типу. Примеры.
- •30.. Пользовательские типы данных в ms sql Server. Операторы создания и удаления. Примеры создания и применения.
- •31. Создание пользовательской таблицы оператором create table: параметры, определяющие структуру, свойства столбцов и ограничения таблицы.
- •32.. Фрагментарное размещение таблицы в файловых группах: использование схем и функций размещения для таблицы бд. Модификация структуры таблицы оператором alter table. Примеры.
- •33.. Индексы таблиц в ms sql Server: назначение, типы, способы создания. Использование индексов.
- •34.. Статистика столбцов и индексная статистика. Операторы создания обновления статистики.
- •35.. Правила и умолчания в Transact sql. Примеры создания и использования.
- •36.. Представление (view) базы данных. Операторы создания и удаления представлений. Примеры. Ограничения при использовании представлений для внесения изменений в бд.
- •37.. Хранимые процедуры базы данных. Операторы Transact-sql для создания, исполнения и модификации процедур. Пример создания и использования.
36.. Представление (view) базы данных. Операторы создания и удаления представлений. Примеры. Ограничения при использовании представлений для внесения изменений в бд.
Представление – виртуальная таблица, созданная операторами SELECT и UNION ALL SELECT из таблиц и других представлений БД.
Представление это взгляд на данные (подсхема) группы пользователей, решающих общую задачу.
Представление – единственный способ ограничить доступ пользователя к определенным строкам таблицы, например, разрешив группе менеджеров доступ к товарам определенных групп.
В представлении оператор SELECT не может использовать опции :
INTO
ORDER BY -- не действует
Хотя таблица - представление физически не хранится, в нее можно вносить изменения (с определенными ограничениями), которые будут приводить к изменениям данных в реальных таблицах.
Создание:
Конструктором в диалоге Management Studio
Оператором Transact SQL:
Имена столбцов в списке обязательны только для вычисляемых или одноименных столбцов.
CREATE VIEW <имя представления> [(<имя столбца> [,…])]
[WITH [ENCRIPTION] [, SCHEMABINDING] ]
AS SELECT . . . . . . .
[ Union All SELECT . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . ]
[WITH CHECK OPTION]
Опция ENCRIPTION - шифрует текст оператора SELECT, чтобы защитить его от просмотра и выяснения имен объектов БД.
Опция SCHEMABINDING защищает представление, связывая его структуру со структурой используемых в нем таблиц. Эта связь контролирует изменения в структурах исходных таблиц, которые влияют на представление.
С опцией SCHEMABINDING имена таблиц в операторе SELECT должны включать имена схем (владельцев) и недопустима * в Select.
Опция WITH CHECK OPTION запрещает внесение во view таких изменений данных, при которых изменяется множество строк самого представления.
Пример
Написать SQL оператор, создающий представление книги_авторов_Oakland для доступа к книгам (названия, типы, фамилии и имена авторов), для авторов, проживающих в городе Oakland. Представление должно быть защищено от разрушающих структурных изменений БД
Создание представления
CREATE VIEW dbo.книги_авторов_Oakland
WITH SCHEMABINDING
AS
SELECT dbo.authors.au_lname, dbo.authors.au_fname,
dbo.titles.title, dbo.titles.type
FROM
dbo.authors INNER JOIN dbo.titleauthor ON dbo.authors.au_id = dbo.titleauthor.au_id
INNER JOIN dbo.titles ON dbo.titleauthor.title_id = dbo.titles.title_id
WHERE (dbo.authors.city = 'Oakland');
Вывести все столбцы представления для книг по бизнесу
SELECT * FROM dbo.книги_авторов_Oakland
WHERE (dbo.книги_авторов_Oakland.type = 'business')
Ограничения представлений, используемых для внесения изменений в базу
оператор SELECT не должен содержать параметры DISTINCT, GROUP BY и агрегатные функции (SUM, AVG, …);
операторы INSERT или UPDATE, изменяющих данные в базе через представление, должны обрабатывать только одну таблицу. Т.е. через представление, построенное на двух и более таблицах, одним оператором можно изменять поля или добавлять строки только в одну из таблиц;
Изменяемые поля не должны быть:
Вычисляемые,
Использующие агрегатные функции;