Файл: Технология клиент-сервер (Архитектура. Компоненты системы SQL Server 2012. Объекты базы данных SQL Server).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 26.06.2023

Просмотров: 107

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Требуемый тип провайдера Microsoft OLE DB Provider for SQL Server выбирается проектом по умолчанию. Эти параметры сохраняются как строка связи с базой данных сервера в проекте Access.

Кроме того, они могут сохраняться в udl-файле Файлы подключения можно использовать просто для организации и управления сведениями, необходимыми для подключения к источникам данных OLE DB. Открывается диалоговое окно Свойства связи с данными (Data Link Properties), выбор типа провайдера Microsoft OLE DB Provider для SQL-сервера выполняется по умолчанию.

Система SQL Server 2012 играет роль платформы данных с возможностью динамической разработки, обширной бизнес-аналитикой, с выходом за пределы реляционной модели, закладывая прочный фундамент, на котором могут строить ИТ инфраструктуру малые, средние и крупные организации[10]. В состав SQL Server 2012 входят следующие компоненты:

- Служба ядра БД (Database Engine). Основные компоненты БД, уведомлений и репликации. Ядро БД является сердцем SQL Server. Репликация повышает доступность данных, распределяя их по нескольким БД и разделяя нагрузку чтения данных по нескольким выделенным серверам БД.

- Аналитические службы (Analysis Services). Обеспечивают функциональность OLAP (Online Analytical Processing) и анализа данных для приложений бизнес-аналитики. Аналитические службы позволяют организации собирать данные из разных источников, например, реляционных баз данных и обрабатывать их различными способами.

- Службы интеграции (Integration Services). Предназначены для слияния данных из разнородных источников, загрузки данных в хранилища, витрины данных и пр.

- Службы отчетов. Включают диспетчер отчетов и сервер отчетов. Представляют полномасштабную платформу для создания, управления и распространения отчетов. Сервер отчетов построен на стандартных технологиях Microsoft Internet Information Services (IIS) и Microsoft .NET Framework и позволяет использовать для обработки и хранения отчетов сочетание возможностей SQL Server и IIS.

- Service Broker. Ключевая часть БД, обеспечивающая организацию очередей и обмена сообщениями. Очереди используются для упорядочения задач, например, запросов, чтобы они выполнялись по мере высвобождения ресурсов. Сообщения обеспечивают передачу информации от одного приложения БД другому.

Объектами базы данных SQL Server являются таблицы, индексы, представления, хранимые процедуры, триггеры, пользовательские функции[11].

Таблицы – являются основной формой для сбора информации, содержат все данные в базах данных SQL Server. Каждая таблица представляет собой тип объекта, который имеет смысл для пользователей.


Индекс – структура на диске, связанная с таблицей или представлением, которая ускоряет поиск строк таблицы или представления. Индекс содержит ключи, созданные для одного или нескольких столбцов таблицы или представления. Эти ключи хранятся в виде B-древовидной структуры, что позволяет SQL Server, быстро и эффективно находить строку или строки, связанные с ключевыми индексами. Существуют кластерные и не кластерные индексы.

Представления являются запросами на выборку. Они выполняют извлечение данных из таблиц с помощью инструкции языка SQL SELECT и реализуют одно их основных назначений базы данных – предоставлять информацию пользователю.

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

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

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

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

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

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


2.2 Этапы разработки клиент-серверных приложений

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

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

Основным инструментом для управления БД и серверами является среда SQL Server Management Studio[12]. Графический интерфейс этой среды упрощает управление серверами, БД и ресурсами. В этой среде можно создавать базы данных. В выбранной базе данных можно создавать таблицы, представления, хранимые процедуры, функции разных типов. В окне этой среды все объекты представлены в виде дерева. Базы данных сервера, с которыми может работать пользователь, представлены в поддереве объектов SQL Server в папке «Базы данных». Папка «Безопасность» содержит список пользователей, имеющих доступ к серверу.

Разработка проекта начинается с создания на сервере БД «Кадры». В окне обозревателя объектов выполним команду «Создать базу данных».

Создается таблица «Подразделения». Структура таблицы: номер подразделения (ключевое поле), название подразделения, руководитель подразделения, телефон. Далее создается таблица «Сотрудники». Структура таблицы: ФИО, табельный номер (ключевое поле), номер подразделения (внешний ключ), должность, оклад. Кроме этого создаются множество других таблиц, например, таблица «Анкета», содержащая анкетные данные сотрудника; таблица «Табель» для ведения учета рабочего времени; «График отпусков», «Повышение квалификации» и т.д.

Новые таблицы создаются и изменяются в среде SQL Server Management Studio при помощи инструкций CREATE TABLE и ALTER TABLE. Для создания таблицы в окне БД выполним команду «Создать таблицу».(Рисунок 2.2 - Вид окна «Создание таблицы»)


Рисунок 2.2 – Вид окна «Создание таблицы»

Для создания таблицы «Сотрудники» введем следующую инструкцию:

CREATE TABLE [dbo].[Сотрудники](

[ФИО] [nchar](30) NULL,

[Таб_ном] [int] NOT NULL PRIMARY KEY,

[Ном_подразд] [int] NOT NULL FOREIGN KEY

REFERENCES Подразделения(Ном_подразд) ON DELETE

CASCADE,

[Должность] [nchar](30) NULL,

[Оклад] [money] NULL,

Ограничение FOREIGN KEY устанавливает связи между таблицами и обеспечивает ссылочную целостность. Внешний ключ одной таблицы указывает на потенциальный ключ другой. В таблицу с внешним ключом нельзя добавить строку при отсутствии соответствующего потенциального ключа. Предложение ON DELETE задает действия, производимые при попытке удаления строки, на которую ссылается внешний ключ. CASCADE– все строки с внешним ключом, ссылающимся на удаляемую строку, также удаляются. Ключевое слово REFERENCES указывает, что любое значение в столбце Ном_подразд должно находится в столбце Ном_подразд таблицы «Подразделение».

В нашем примере столбец Ном_подразд таблицы «Сотрудники» внешний ключ. Внешний ключ – это столбец одной таблицы, значения которого совпадают со значениями столбца, являющегося первичным ключом другой таблицы.

Проект Access является клиентским приложением, которое подключается к Microsoft SQL Server, расположенному в сети или на локальном компьютере. Проект Access, реализуя архитектуру "клиент-сервер", функционирует в среде Access и работает только с данными базы на SQL-сервере. Из проекта можно не только получить доступ к базе данных сервера, но и создать новую базу и ее объекты. Проект Access оснащен мощными графическими средствами, как для разработки клиентского приложения, так и базы данных на сервере. Проект Access хранится в файле типа adp (Access Data Project — проект доступа к данным). Он содержит только те объекты, которые составляют приложение: формы, отчеты, макросы и модули. В отличие от базы данных Microsoft Access проект не содержит данных или описаний структур объектов базы данных: таблицы, схемы базы данных, представления, хранимые процедуры и скалярные и табличные функции — объекты базы данных SQL-сервера — только отображаются в проекте Access.

При создании проекта «Отдел кадров» в MS Access выбирается вариант подключения к существующей на сервере базе данных. Таблицы заполняются данными.

Для создания проекта Access, работающего с базой данных, размещенной на Microsoft SQL-сервере, необходимо на открывшемся после запуска Access окне в области «Новая база данных» щелкнуть на значке открытой папки, размещенном справа от поля «Имя файла»: откроется окно «Файл новой базы», в котором нужно выбрать тип файла «Проекты Microsoft Office Access (*.adp)», задать имя и папку для сохранения файла создаваемого проекта. Для завершения работы в этом окне нужно нажать кнопку OK, а в области «Новая база данных» нажать кнопку «Создать». Открывается окно, в котором выбирается один из двух вариантов: подключение к существующей на сервере базе данных или создание новой базы данных на сервере наряду с созданием проекта. Щелчком на кнопке «Да» начинается подключение к существующей на сервере базе данных. При этом открывается окно подключения к серверу «Свойства канала передачи данных» (рис. 2.3), в котором, прежде всего, указывается имя сервера и способ регистрации пользователя на нем.


Рисунок 2.3 – Окно выбора параметров подключения к базе данных сервера

Далее создаются запросы для работы с БД. В проекте поддерживается работа с тремя основными типами запросов, сохраняемыми в базе данных на сервере: представления, хранимые процедуры, пользовательские функции. После создания они появляются в области навигации проекта. Из проекта их можно открывать, выполнять, но вносить изменения можно только на сервере.

Опишем создание встроенной функции, возвращающей табличное значение. Создадим запрос, позволяющий получить сведения о стаже работы сотрудника данного предприятия. В запрос включим поля: ФИО, Таб_номер, Дата_поступ, Стаж, где Стаж – вычисляемое поле. Стаж работы вычисляется по формуле:

iif((MONTH(GetDate())-

MONTH(Анкета.Дата_поступ))>=0,Year(GetDate())-

Year(Анкета.Дата_поступ),Year(GetDate())-

Year(Анкета.Дата_поступ)-1)

Функция GetDate() возвращает текущую дату, функция MONTH – номер месяца, Year – год.

Для создания встроенной функции, возвращающей табличное значение, в среде SQL Server Management Studio в окне обозревателя объектов выберем базу данных «Кадры», откроем узел «Программирование», затем «Функции», щелкнем правой кнопкой узел «Функции, возвращающие табличное значение». В контекстном меню выберем команду «Создать встроенную функцию, возвращающую табличное значение». Указывается имя создаваемой функции (Стаж Работы), параметры не передаются. В предложении RETURNS задается ключевое слово TABLE, указывающее тип возвращаемого значения. Столбцы таблицы, возвращаемые такой функцией, определяются инструкцией SELECT. Тело функции представлено единственной командой RETURN, после выполнения которой работа функции завершается.

CREATE FUNCTION Стаж Работы()

RETURNS TABLE

AS

RETURN

(

SELECT Анкета.ФИО,Анкета.Таб_ном, Анкета.Дата_поступ,

iif((MONTH(GetDate())-

MONTH(Анкета.Дата_поступ))>=0,Year(GetDate())-

Year(Анкета.Дата_поступ),Year(GetDate())-

Year(Анкета.Дата_поступ)-1) ASСтаж

FROMdbo.Анкета

)

Сохраним и выполним этот запрос. Если выполнение пройдет успешно, название функции появится в области навигации проекта. Откроем функцию в режиме таблицы. После сохранения инструкция создания встроенной функции CREATE FUNCTION меняется на инструкцию ALTER FUNCTION– инструкцию изменения встроенной функции.

Как пример опишем создание встроенной функции «Отпуск_за_данный_месяц». В функцию передается параметр – номер месяца и возвращается список сотрудников, уходящих в отпуск в данном месяце. Рисунок 2.4 - Результат функции Отпуск_за_данный_месяц.