- •Занятие №1
- •Информационные процессы и системы
- •Информационные ресурсы и технологии
- •Базовой технической составляющей процесса информатизации общества является компьютеризация.
- •Кодирование информации
- •Занятие №2
- •Меры информации
- •Качество информации
- •Занятие №3
- •Виды и формы представления информации в информационных системах
- •В зависимости от типа носителя различают следующие виды
- •Информация
- •Сообщение
- •Занятие №4 Обзор существующих современных систем автоматизированной обработки информации. Структура систем автоматизированной обработки информации.
- •Занятие №5
- •Общая характеристика процессов сбора, обработки, передачи и хранения информации
- •Занятие №6
- •Занятие №7
- •Общие принципы сохранения информации
- •Классификация субд
- •Занятие №8
- •Особенности и цель использования вычислительных сетей
- •Занятие №9
- •Особенности построения и функционирования локальных вычислительных сетей. Структура сети и особенности взаимодействия устройств
- •Топологии и технологии компьютерных сетей
- •Р ис. 9.1. Иерархическая система
- •Р ис. 9.3.Логическая структура сети с выделенным сервером
- •Занятие №10
- •Получим следующее окно для импортирования данных. Переключимся в режим Copy tables(s) and view(s) from the source database. Далее.
- •Запросы на языке sql к базам данных sql Server
- •Создание запроса на выборку
- •Создание запросов действия
- •Контрольные вопросы:
- •Занятие №11
- •Занятие №12
- •Целью этой лабораторной рабрты будет изучение механизма связывания таблиц для доступа к этим таблицам сервера, получеиие навыков использования связанных таблиц в запросах.
- •Упражнение 2. Использование связанных таблиц в запросах.
- •Создание проекта для существующей на сервере базы данных
- •Замечание
- •Занятие №15 Создание таблиц в проекте Access. Связывание таблиц в проекте. Определение контрольных ограничений. Схема взаимодействия проекта Access и sql-сервера.
- •Занятие №17
- •Создание схем баз данных
- •Занятие №18
- •Упражнение 1 Создание схем баз данных
- •Занятие №19 Разработка форм и отчётов в проекте Access.
- •Выбор настроек параметров
- •Настройка свойств формы проекта
- •Работа с серверными фильтрами
- •Занятие №20 Лабораторная работа №6 «Разработка форм и отчётов в проекте Access».
- •Занятие №21
- •Сохранение отчета как страницы доступа к данным
- •Подключение страницы к базе данных
- •Создание страницы доступа к данным одной таблицы
- •Создание страницы доступа к данным нескольких таблиц
- •Создание страницы доступа к данным в режиме конструктора
- •Занятие №23
- •Упражнение 2. Использование фильтра на странице доступа к данным
- •Упражнение 3. Сохранение отчета как страницы доступа к данным
- •Упражнение 4. Подключение страницы к базе данных
- •Контрольные вопросы:
- •Контрольные вопросы:
- •Занятие №27
- •Занятие №28
- •Занятие №30
- •Связывание отдельных частей
- •Добавление фильтра записей
- •Упражнение 4. Связывание отдельных частей
- •Упражнение 2. Добавление фильтра записей.
- •Перемещение на другую запись
- •Занятие №35 Лабораторная работа №12 «Исследование средств доступа к базам данных»
- •Занятие №36
- •Обзор системы безопасности sql Server 2000 Физическая безопасность
- •Безопасность сетевого протокола
- •Доменная безопасность
- •Безопасность локального компьютера
- •Безопасность sql Server
- •Аутентификация
- •Авторизация
- •Группы и роли
- •Состояния разрешения
- •Разрешения на работу с объектами и выполнение sql-выражений
- •Шифрование объектов
- •Безопасность приложений
Занятие №17
Построение запросов с помощью конструктора. Создание запросов в текстовом редакторе. Создание представлений и сохраняемых процедур.
Создание схем баз данных
В список объектов окна базы данных проекта Access (adp), в отличие от окна базы данных Access (mdb), включены Схемы баз данных (Database Diagrams). Схемы баз данных являются графическим средством представления и изменения структуры базы данных, к которой выполнено подключение. Их можно использовать при разработке базы данных для создания, изменения и удаления таблиц, столбцов, ключей, индексов, отношений и ограничений. Связи, установленные в схемах базы данных автоматически, используются при разработке объектов приложения: многотабличных форм, отчетов, страниц доступа к данным.
Для более удобного визуального представления структуры базы данных пользователь может создать одну или несколько схем, отображающих различные части базы данных или представления различных элементов ее структуры. Схема может включать некоторые или все таблицы, столбцы, ключи и отношения. Каждая таблица базы данных может входить в любое число схем.
Для создания схемы из проекта Access нужно выполнить команду Создать, находясь на вкладке Схемы баз данных.
Далее с помощью окна Добавление таблицы (Add Table) включить в схему таблицы, например, ДОГОВОР и НАКЛАДНАЯ.
Для установления связи между таблицами нужно выделить и перетащить ключевое поле НОМ_ДОГ из главной таблицы ДОГОВОР в подчиненную таблицу НАКЛАДНАЯ. В появившемся окне Установить связь (Create Relationship) (рис. 17.1) будет указан ключ связи.
Затем надо установить в нижней части окна флажки, которые позволяют включить механизм проверки целостности данных в связываемых таблицах.
Рис. 17.1. Окно создания связи таблиц ДОГОВОР и НАКЛАДНАЯ
Окно схемы базы данных сервера, в которую включены две таблицы с установленной связью, представленной на рис.17.2.
Рис. 17.2. Схема базы данных сервера, построенная в проекте Access
Конструктор схем имеет разнообразные возможности по изменению ее вида. В приведенной схеме (рис. 17.2) в списке полей таблицы НАКЛАДНАЯ кроме имен полей представлены другие атрибуты полей. Для получения такого отображения нужно выбрать в контекстном меню таблицы режим Свойства столбца (Column Properties) или Новое представление. При этом открывается возможность изменять структуру таблицы: определять в таблице ключ, добавлять или удалять поля, изменить размер поля и т. д.
Затем надо установить курсор на таблице ДОГОВОР и нажать на кнопке панели Свойства (Properties). В открывающихся свойствах таблицы на вкладке Связи (Relationships) отображаются установленные для нее в схеме связи. Если связь между парой таблиц установлена в одной из ранее созданных схем или в свойствах таблицы, она автоматически отобразится во вновь создаваемой схеме сразу после включения в нее этих таблиц. Удаление связи в схеме приводит к удалению связи из свойств таблицы.
Чтобы добавить в схему данных таблицу, например, ТОВАР, надо щелкнуть на таблице правой кнопкой мыши и выбрать команду Добавить связанную таблицу (Add Related Tables). Если таблица ранее использовалась в других схемах или уже имеет в свойствах определенные для нее связи, в схему автоматически будут включены связанные таблицы и указаны связи с ними.
Установленные в схеме связи используются при создании представлений и других объектов на основе взаимосвязанных таблиц. Например, если между таблицами не установлена связь ни в свойствах таблицы, ни в схеме данных, мастер форм вообще не сможет построить форму.
Создание представлений
В проекте поддерживается работа с тремя основными типами запросов, сохраняемыми в базе данных сервера.
Запросами на выборку, выполняющими извлечение данных с помощью инструкции SQL select, называемыми представлениями.
Сохраненными процедурами, в которых может выполняться изменение, добавление или удаление данных с помощью инструкций SQL insert, update, delete. Сохраненная процедура - это набор практически любых инструкций Transact-SQL, выполняемых как единое целое.
Определяемыми пользователем функциями, которые, так же как встроенные функции SQL Server, могут быть скалярными, возвращающими единственное значение или табличными, возвращающими таблицы, которые могут использоваться в предложении from, входящем в select.
Представления являются предварительно откомпилированными запросами на выборку. Они определяют подмножества данных, которые могут использоваться пользователями базы данных. Кроме того, представления позволяют отключить доступ любых пользователей к таблицам базы данных.
В проекте представления создаются только в режиме конструктора. В представлении не допускается использование параметров. Окно конструктора представлений Представление (View) (см. рис. 17.4), структура которого подобна используемой в режиме конструктора запросов Access, разделяется на три области: область схемы, область сетки - бланк представления и область SQL.
Схема отображает таблицы и представления, которые используются в запросе, и связи между ними. В диалоговом окне свойств связи можно определить тип объединения записей таблиц. На схеме отмечаются поля, которые необходимо вывести в таблице результата, при этом они автоматически переносятся в бланк представления.
В области сетки также могут быть выбраны поля и заданы псевдонимы столбцов, выражения для вычисляемых столбцов, критерии отбора записей, группировка.
Область SQL отображает запрос на языке Transact-SQL, формируемый так же, как в Access, автоматически по мере заполнения бланка представления. В то же время оператор SQL может быть отредактирован или целиком написан пользователем. Эта область используется также для ввода операторов SQL, которые невозможно создать в области схемы и сетки. Если оператор невозможно отобразить в областях схемы и сетки, эти области должны быть невидимыми. Области схемы, сетки и SQL синхронизируются; изменения, внесенные в одной области, автоматически отражаются в других областях.
Замечание
Конструктор запросов разработан для поддержки Microsoft SQL Server 2000, но является совместимым и с более ранними версиями.
В режиме конструктора представлений на панели инструментов Просмотр макета (View Design) представлены кнопки для отображения в окне конструктора перечисленных областей: Схема (Diagram), Сетка (Grid), SQL (SQL), а также кнопка Проверить синтаксис SQL (Verify SQL Syntax) без выполнения запроса.
Результат выполнения представления отображается. так же, как при работе с локальной базой данных Access при переходе в режим таблицы.
Создайте представления в базе данных SQL Server.
Например, создадим представление, в котором на основе таблиц ПОКУПАТЕЛЬ и ДОГОВОР формируется список договоров, заключенных покупателем "Компьютер маркет" в 2004 году.
Создание представления для базы данных SQL-сервера начнём щелчком на кнопке Создание представления в режиме конструктора на вкладке Запросы (Queries) в окне проекта Access.
Через открывшееся окно Добавление таблицы (Add Table) включим в схему представления таблицы ПОКУПАТЕЛЬ и ДОГОВОР и закроем его.
Связь между таблицами устанавливается автоматически, если она была создана в схеме данных или определена в таблице, а также, если в одной таблице определен ключ, а в другой имеется одноименное поле. Если связь не установилась, перетащим поле КОД_ПОК, по значениям которого должна осуществляться связь, из таблицы ПОКУПАТЕЛЬ в таблицу ДОГОВОР.
Замечание
В представлении связь можно устанавливать и между таблицами, не имеющими ключей, так как она служит только для определения способа объединения записей таблиц.
Каждый вид соединения обозначается своим значком.
По умолчанию для установленной любым способом связи выбирается внутреннее объединение типа inner join. При этом объединяются только записи, имеющие равные значения в поле связи. Записи таблиц, не имеющие связанных записей в другой таблице, в результат объединения не включаются.
4. Выделим линию связи и по контекстному меню вызовем ее свойства.
На рис. 17.3 показано, что могут выбираться и другие знаки сравнения значений в поле связи. Если в схеме для объединения используется оператор, отличный от оператора равенства, то оператор отображается на значке линии объединения.
5. Установим флажок Все строки с ДОГОВОР (All rows from ДОГОВОР). Установится левое объединение left outer join, при котором в результат объединения, помимо записей с одинаковыми значениями, в поле связи будут включены все записи таблицы ДОГОВОР, для которых нет связанных записей в таблице ПОКУПАТЕЛЬ.
6. Снимем флажок Все строки с ДОГОВОР и установим флажок Все строки с ПОКУПАТЕЛЬ (All rows from ПОКУПАТЕЛЬ). Это приведет к правому объединению типа right outer join, и включению в результат всех записей таблицы ПОКУПАТЕЛЬ.
Рис. 17.3. Определение типа объединения записей таблиц
7. Установим оба флажка. Установится полное внешнее объединение full outer join, приводящее к включению в результат объединения всех записей из обеих таблиц, даже тех, у которых нет соответствующих строк в связанной таблице.
Выберем поля таблиц, которые необходимо вывести в результате запроса, отметив их в таблицах схемы.
Для поля НАИМ_ПОК введём в столбец Критерий (Criteria)='Компьютер маркет’, а для поля ДАТА_ДОГ - >=01.01.2004. Наличие критерия отбора записей для поля помечается значком фильтра в таблице.
В столбец Псевдоним (Alias) введём подписи полей. Введенные подписи будут отображаться в названии столбцов таблицы результата. Кроме того, они будут использоваться вместо имен полей при работе с представлением в схемах данных, в списках полей при использовании представления мастером форм, отчетов, страниц, отображаться в подписях полей в форме и т. д.
Для параллельного отображения инструкции SQL при формировании представления диалоговыми средствами щелкните на кнопке SQL.
Окно созданного представления приведено на рис. 17.4.
Рис. 17.4. Окно конструктора представлений при работе с SQL Server
Внимание !
В общем случае объекты базы данных идентифицируются по уникальным именам, которые могут содержать до трёх частей (для таблиц и представлений) или до четырёх частей (для столбцов):
база_данных.владелец.таблица
база_данных.владелец.таблица.столбец
Ссылка в именах на базу данных на базу данных используется потому, что в Microsoft SQL Server 7.0 или более поздних версиях допускается объединение таблиц из разных баз данных, находящихся на сервере. При работе с базой данных в соответствие идентификатору SA ставится стандартное учетное имя dbo.
12. Для выполнения представления из окна конструктора нужно нажать на панели инструментов кнопку Запуск (Run) или выбрать Режим таблицы (Datasheet View), воспользовавшись кнопкой Вид (View). Из окна проекта представление выполняется по кнопке Открыть (Open).
К примеру, создадим представление, в котором на основе таблиц ПОКУПАТЕЛЬ и ДОГОВОР подсчитывается число договоров, заключенных каждым покупателем, и общая сумма всех договоров каждого покупателя. В таблицу представления включим наименование покупателя, его адрес. Включим и тех покупателей, которые не заключали договоров.
Создадим представление на основе таблиц ПОКУПАТЕЛЬ и ДОГОВОР.
Включим в бланк представления поля: наименование покупателя — НАИМ_ПОК, адрес — АДРЕС_ПОК, а также номер договора — НОМ_ДОГ и общую сумму по договору СУММА_ДОГ.
Рис. 17.5. Запрос на выборку данных с группировкой записей
по полям таблицы ПОКУПАТЕЛЬ
Для расчета числа и стоимости договоров каждого покупателя выполним группировку записей по полям таблицы ПОКУПАТЕЛЬ НАИМ_ПОК и АДРЕС_ПОК. Щелкните на панели инструментов Просмотр макета по кнопке Группировка. В появившейся колонке Группировка (Group By) для поля НОМ_ДОГ выберите функцию count, для поля СУММА_ДОГ — sum. В схеме представления в списках таблиц специальным значком помечаются поля, по которым производится группировка, и поля, по которым выполняется функция.
Изменим имена вычисляемых полей Exprl и Ехрг2 (колонка Псевдоним (Alias)), содержащих результат выполнения функций, на Число договоров и Общая сумма.
Чтобы при объединении записей таблиц в результат попали и записи о тех покупателях, которые не заключили договоров, установим для связи параметр объединения Все строки с ПОКУПАТЕЛЬ (All rows from ПОКУПАТЕЛЬ).
Окно созданного представления приведено на рис. 17.5.
6. Выполним представление из окна конструктора, нажав на панели инструментов кнопку Запуск (Run).
Таблица с результатами выполнения представления в соответствии с указанным способом объединения включает все записи таблицы ПОКУПАТЕЛЬ. Для записей о покупателях без договоров в колонке Число договоров выводится нулевое значение. Изменим способ объединения записей на inner join и убедимся, что записи о Покупателях без договоров не выводятся.
Создание сохраненной процедуры с параметрами
Сохраненные процедуры не ограничиваются использованием только запросов на выборку. Они используются для выполнения запросов с параметрами и запросов на изменение, вставку или удаление данных с помощью инструкций SQL update, insert и delete. Сохраненная процедура - это специальная программа из совместно откомпилированного набора инструкций на языке Transact-SQL, сохраненная в базе данных SQL Server и выполняемая из приложения с помощью вызова по имени.
В проекте Access сохраненные процедуры могут выполняться при щелчке на кнопке Открыть (Open) в окне проекта. Чтобы чапускать процедуры, пользователь должен обладать соответст-нующими правами.
Сохраненная процедура, содержащая одну инструкцию SQL select, может создаваться или изменяться в графическом режиме в конструкторе. Сохраненная процедура, содержащая несколько инструкций SQL, может создаваться или изменяться в текстовом редакторе SQL, вызываемом строкой Ввод сохраненной процедуры (Create Text Stored Procedure) в окне создания запросов.
В созданном ранее представлении наименование покупателя, для которого нужно было вывести записи, задавалось прямо в столбце критериев. Представление не позволяло использовать параметры. Создайте аналогичную сохраненную процедуру, заменив конкретное значение в столбце критериев отбора параметром.
Создание сохраненной процедуры с параметром может быть выполнено конструктором. Щелкните на кнопке Создание сохраненной процедуры в режиме конструктора на вкладке Запросы (Queries) в окне проекта Access.
Так же, как при создании представления, добавим в сохраненную процедуру таблицы ПОКУПАТЕЛЬ и ДОГОВОР, установим между ними нужную связь, выберем поля таблиц, которые необходимо вывести в результате запроса.
В области сетки конструктора в колонку Критерий (Criteria) поля НАИМ_ПОК введём параметр = @НаименованиеПокупателя (рис. 17.6). Параметр определяется расположенным перед его именем символом @. Использование пробелов в имени параметра не допускается. В поле даты заключения договора введём критерий для отбора договоров в заданном диапазоне дат - BETWEEN @ДатаНачала AND @ДатаОкончания.
Рис. 17.6. Использование параметра в сохраненной процедуре
При выполнении этой сохраненной процедуры будут последовательно выводиться диалоговые окна Введите значение параметра (Enter Parametr Value), в которые нужно ввести значения параметров. На рис. 17.7 представлено первое из окон.
Рис. 17.7. Окно ввода значений параметра в сохранённую процедуру
графическом режиме в конструкторе может создаваться или изменяться сохраненная процедура, содержащая одну инструкцию SQL select.
