- •Н.И. Коваленко
- •Коваленко н.И., Банчук г.Г.
- •Коваленко Надежда Ивановна
- •Тема I. Общие сведения о ms sql Server 2000
- •1. Базы данных типа клиент/сервер
- •Система типа клиент/сервер
- •2. История sql Server
- •Основные количественные показатели системы sql – сервер
- •3. Обзор sql Server 2000
- •4. Стандартные объекты sqlServer
- •ТемаIi. Работа с ms sqlServer2000 и его компонентами
- •1. Запуск, приостановка и завершение работы sqlServer
- •2. SqlServerEnterpriseManager
- •3. Программа sqlServerQueryAnalyzer
- •Панель инструментов утилиты Query Analyzer
- •4. Обслуживание баз данных
- •Файлы операционной системы, используемые sql Server 2000:
- •Структура базы данных
- •5. УстановкаMicrosoftSqlServer2000
- •Ограничения инсталляции sql-сервера
- •ТемаIii. Работа с базой данных создание и использование индексов и ключей
- •1. Базы данных и их свойства
- •Описание ролей, используемых для доступа к базе данных и серверу баз данных
- •Дополнительные опции настройки базы данных
- •Настройка параметров доступа к базе данных
- •2. Таблицы базы данных.
- •3. Типы данных, используемые в sql-сервере
- •Текстовые типы данных
- •Типы данных даты и времени
- •Типы данных для хранения больших объемов информации
- •Типы данных специального назначения:
- •4. Основные операции с базами данных
- •5. Восстановление бд (администрированиеSqlServer2000)
- •6. Создание и использование индексов и ключей в системе sql Server.
- •7. Использование ограничений
- •8. Использование диаграмм для разработки структуры базы данных
- •9. Создание представлений (видов)
- •ТемаIv. Правила и создание значения
- •1. Инструменты контроля целостности данных
- •2. Создание правил и стандартных значений
- •ТемаV. Триггеры в системеSql–сервер
- •1. Понятие триггера. Типы триггеров
- •2. Создание триггеров
- •3. Использование триггеров. Виды триггеров
- •ТемаVi. Оптимизация запросов и основы sql
- •1. Оптимизация запросов
- •2. Основные операторы sql в sql Server 2000
- •3. Объединение таблиц в операторе select
- •From titles
- •4. Использование директив group by иHaving
- •5. Оператор insert
- •6. ОператорUpdate
- •7. ОператорDelete
- •8. ОператорCreatetable
- •ТемаVii. Создание и работа с представлениями
- •1. Основные сведения о представлениях
- •2. Создание представлений. Отображение представлений
- •3. Редактирование представлений. Отображение зависимостей представлений. Создание представлений и представлений
- •4. Переименование столбцов представлений. Переименование представлений. Удаление представлений
- •5. Изменение данных посредством представлений. Обновление данных с помощьюSqlServerEnterpriseManager
- •ТемаViii. Создание и использование курсоров
- •1. Понятие курсора
- •2. Выборка данных из курсора
- •3. Операторы и глобальные переменные для работы с курсорами
- •4. Примеры использования курсоров
- •ТемаIx. Использование хранимых процедур
- •1. Достоинства и недостатки хранимых процедур
- •2.Создание хранимой процедуры
- •3. Операторы языка управления программой. Оператор declare
- •4. Операторы goto, begin…end и if…else
- •5. Операторы waitfor, return, while, break и continue
- •6. Операторы print и raiserror
- •7. Использование параметров в хранимых процедурах
- •8. Глобальные переменные. Отладка хранимых процедур
- •Тема X. Транзакции и блокировки
- •1. Определение транзакции. Ограничения для транзакций. Уровни изоляции транзакций
- •2. Базовая информация о блокировках. Типы блокировок
- •3. Создание транзакций и работа с ними. Точки сохранения
- •4.Отображение информации о блокировках. Явное задание блокировки
- •Описание параметров для явного задания блокировок
- •ТемаXi. Система безопасностиSqlServer2000
- •1. Типы безопасности. Создание и управление бюджетами пользователей
- •Стандартные роли сервера
- •Стандартные роли базы данных
- •2. Добавление новых пользователей. Удаление идентификаторов и пользователей
- •3. Создание ролей. Удаление ролей
- •4. Права доступа. Управление правами доступа
- •ТемаXii. Использование распределенных объектов управления.
- •1.Sql-dmo. Назначение, возможности
- •2. Экспорт данных с помощью команды вср
- •3. Использование объектовSql-dmOв хранимых процедурах
- •ТемаXiii. Основные сведения о хранилищах данных
- •1. Хранилища данных. Системы поддержки принятия решений (dss). Интерактивная аналитическая обработка (olap)
- •Сравнение субд и хранилища данных
- •2. Компоненты хранилища данных. Хранилища данных и магазины данных
- •3. Преобразование данных. Метаданные
- •4. Разработка плана хранилища данных
- •Microsoft Repository
- •С помощью мастера dts можно выполнять также простые преобразования данных, сложные преобразования выполняются с помощью dts Designer.
- •ТемаXiv. Использование служб преобразования данных
- •1. Службы преобразования данных (dts).DtSи хранилища данных
- •2. СредствоDtsDataPump
- •3. МастераDts
- •4. ИспользованиеDtsDesigner
- •Тема XV. Службы olap Microsoft sql Server
- •1.OlaPи многомерные данные
- •2. Хранение данных в бдolap
- •3. Оптимизация базы данныхOlap
- •4. Доступ к многомерным данным
ТемаVi. Оптимизация запросов и основы sql
1. Оптимизация запросов
Оптимизатор запросов - специализированная программа, предназначенная для выбора наилучшего способа выполнения запроса. Оптимизатор запросов вычисляет стоимость запросов: затраты процессорного времени и количество операций ввода/вывода для каждого возможного способа выполнения запроса.
Затем выбирается вариант с минимальной стоимостью.
Примеры запросов с вычисляемым аргументом отбора:
1) SELECT*
FROM table1
WHERE col1*10=100
2) SELECT*
FROM table1
WHERE col1=100/10
3) SELECT*
FROM table1
WHERE CONVERT(CHAR(8), col1)=’10’
1) SELECT*
FROM table1
WHERE col1=CONVERT(INT, ’10’)
Функция CONVERT имеет следующую структуру:
CONVERT(тип(длина),выражение[,стиль]) и определяет явное преобразование типов данных, транслирует выражение одного типа в выражение другого типа или специальный формат.
2. Основные операторы sql в sql Server 2000
Существует огромное количество операторов SQL в SQL Server 2000 с помощью которых можно выполнить любую операцию от простого запроса к таблице до запроса на создание таблицы и от вызова простых хранимых процедур до назначения определенных прав доступа пользователю.
Краткое описание наиболее важных операторов SQL:
SELECT выбирает столбцы и строки данных из одной или нескольких таблиц базы данных;
INSERT добавляет строки в таблицу;
UPDATE модифицирует столбцы в существующих строках таблицы;
CREATE TABLE создает новую таблицу на основе заданной схемы таблицы;
SELECT INTO создает новую таблицу на основе строк и столбцов, отобранных с помощью оператора SELECT.
Оператор SELECT включает следующие компоненты:
SELECT<список полей> |
Задает столбцы отбираемых данных |
FROM <список источников > |
Задает источники для отбора строк |
WHERE<условие отбора записей> |
Задает критерий отбора записей
|
GROUP BY <условие группировки> |
Для итоговых запросов задает столбец (столбцы) по которому(которым) группируются данные
|
HAVING <условие отбора групп> |
Для итоговых запросов задает критерий, которому должно отвечать итоговое значение
|
ORDER BY <условие сортировки> |
Задает порядок сортировки возвращаемых строк |
Рассмотрим примеры операторов SQL для демонстрационной базы данных SQL Server – pubs, которая имеет следующую структуру (рассматривается фрагмент базы данных pubs):
Например, необходимо выбрать авторов не из штата Калифорния, отсортировать авторов по размеру контракта - по убыванию и по фамилии в алфавитном порядке:
SELECT au_id, au_lname, au_ fname, state, zip, contract
FROM authors
WHERE state < >’CA’
ORDER BY contract DESC, au_ lname
В MS SQL Server предусмотрено несколько вариантов сортировки, по умолчанию используется словарный порядок, не учитывающий регистр букв(Dictionary Order, Case-insensitive). Порядок сортировки определяется во время установки SQL Server и позже его переопределить нельзя.
3. Объединение таблиц в операторе select
Использование директивы WHERE для объединения таблиц рассмотрим на примере:
SELECT authors. au_lname ,authors. au_ fname, titles.title
FROM authors, titleauthor, titles
WHERE authors.au_id = titleauthor.au_id AND
title author. title_id = titles. title_id
ORDER BY authors.au_lname, authors. au_fname, titles. title
Этот оператор связывает три таблицы БД, т.к. имена авторов находятся в authors, название книги – в titles, а связи между ними – в titleauthor.
Использование оператора JOIN для объединения таблиц.
Этот метод объединения имеет следующий синтаксис:
SELECT столбец1, столбец2, столбец3, …
FROM таблица1 <оператор_объединения> таблица2
ON <критерий объединения>
Оператор JOIN определяет, каким образом должны быть возвращены строки из объединенных таблиц. Директива ON действует подобно директиве WHERE, указывая, в каких полях объединяемых таблиц должно проверяться равенство значений.
Операторы объединения таблиц:
CROSS JOIN возвращает каждую строку первой таблицы, объединенную с каждой строкой второй таблицы. Количество строк результата равно произведению числа строк каждой таблицы.
INNER JOIN возвращает все строки из каждой таблицы, удовлетворяющие критерию отбора, который задан в директиве WHERE, при условии совпадения значений в объединяемых полях, указанных в директиве ON.
LEFT[OUTER] JOIN - возвращает все строки таблицы, находящейся слева в объединении, удовлетворяющие критерию отбора директивы WHERE, и только те строки таблицы справа, в которых существует совпадение по объединяемым полям, заданным в директиве ON
RIGHT [OUTER] JOIN - возвращает все строки таблицы, находящейся справа в объединении, удовлетворяющие критерию отбора директивы WHERE, и только те строки таблицы слева, в которых существует совпадение по объединяемым полям, заданным в директиве ON.
FULL [OUTER] JOIN возвращает все строки из каждой таблицы, удовлетворяющие критерию отбора директивы WHERE, в которых нет совпадения по объединяемым полям, заданным в директиве ON.
Запишем предыдущий пример с помощью объединения:
SELECT a.au_lname, a. au_ fname, b. title
FROM (authors a INNER JOIN titleauthor c ON a.au_id = c.au_id) INNER JOIN titles b ON c.title_id =b.title_id
ORDER BY a.au_lname, a.au_fname, b.title
Внешнее объединение можно было бы использовать, например, для поиска списка всех авторов и названий их книг, т.е. полей title_id- можно получить через внешнее объединение с таблицейtitleauthor.
Итоговые функции в операторах SQL – возвращают итоговые значения для заданных столбцов или выражений в форме итоговых сумм, количества записей, средних значений и т.д. Итоговая функция может возвращать одно значение для всех строк, отобранных запросом. Если же в оператор SQL была добавлена директива GROUP BY, то итоговое значение может вычисляться на каждом уровне группировки. В SQL Server нельзя применять функции Var(дисперсия) и StDev(стандартное отклонение). Итоговые функции SQL Server: AVG, COUNT, MIN, MAX и SUM.
Примеры:
1) SELECT count(title) ’наименований’
FROM titles
В примере count применяется ко всем строкам таблицы
titles без группировки
2) SELECT count(title) AS ’наименований’