- •Министерство образования Российской Федерации Пензенский государственный университет
- •Пенза 2004
- •Введение
- •1. Архитектура баз данных ms sql Server 2000
- •Физическая архитектура базы данных sql Server 2000
- •1.1.1. Файлы данных и группы файлов
- •1.1.2. Страничная организация файлов данных
- •ЛоГическая архитектура базы данных sql Server 2000
- •1.3. Системные базы данных sql server 2000
- •Создание и сопровождение баз данных средствами enterprise manager
- •3. Создание и сопровождение таблиц баз данных средствами enterprise manager
- •3.1. Основные принципы создания таблиц
- •3.2. Создание, модификация и удаление таблиц средствами Enterprise Manager
- •3.3. Управление диаграммами
- •4. Создание и управление индексами средствами Enterprise manager
- •5. Создание представлений средствами Enterprise manager
- •6. Основы программирования на языке Transact-sql
- •6.1. Средства языка Transact–sql
- •6.2. Константы, имена, идентификаторы, переменные, выражения в языке Transact–sql
- •6.3. Типы данных sql Server 2000
- •6.4. Создание и удаление баз данных, таблиц и представлений
- •6.4.1. Создание и удаление баз данных
- •6.4.2. Создание и удаление таблиц
- •6.4.3. Создание представлений
- •6.5. Создание и управление индексами
- •6.6. Вставка, удаление и изменение данных
- •6.7. Выборка данных
- •Раздел into позволяет создать новую таблицу для хранения результатов запроса, структура которой будет определяться списком выбора, т.Е. Динамически при выполнении запроса.
- •6.8. Функции sql Server 2000
- •6.8.1. Встроенные функции sql Server 2000
- •6.8.2. Функции пользователя
- •6.9. Хранимые процедуры sql Server 2000
- •6.9.1. Создание хранимых процедур
- •6.10. Триггеры
- •6.11. Создание и управление транзакциями
- •6.12. Создание, отладка и оптимизация sql–модулей
- •7. Лабораторный практикум
- •Создание диаграммы базы данных;
- •Рекомендуемые источники Печатные издания
- •Интернет-ресурсы1
- •Приложение 1. Примеры операторов языка Transact-sql
- •1.1. Создание баз данных
- •Create database Archive
- •Use master
- •Filegroup SalesGroup1
- •Filegroup SalesGroup2
- •Create database Sales
- •Create database Employees
- •1.2. Создание таблиц баз данных
- •1.3. Создание индексов
- •1.4. Создание представлений
- •From dbo. Authors
- •1.5. Добавление, модификация и удаление данных в таблицах
- •Insert Into TabF default values
- •Insert Into TabG (Col1,Col2)
- •1.6. Выборка данных из таблиц
- •If update (Phone)
- •Insert into #aaa values (111)
- •Insert into #aaa values (222)
- •Insert into #aaa values (333)
- •1.9. Создание пользовательских функций
- •1.10. Создание хранимых процедур пользователя
- •Приложение 2. Описание предметных областей, схем баз данных и запросов для лабораторного практикума
- •2.1. Предметная область «Летопись острова Санта-Белинда»
- •2.2. Предметная область «Скачки»
- •2.3. Предметная область «Хроника восхождений в альпинистском клубе»
- •2.4. Предметная область базы данных медицинского кооператива
- •2.5. Предметная область базы данных «Городская Дума»
- •2.6. Предметная область базы данных рыболовной фирмы
- •2.7. Предметная область база данных фирмы, проводящей аукционы
- •2.8. Предметная область база данных библиотеки
- •Предметная область базы данных для обслуживания работы конференции
- •2.10. Предметная область базы данных для обслуживания склада
5. Создание представлений средствами Enterprise manager
При работе с таблицами иногда бывает необходимо скрыть от пользователей один или более столбцов с конфиденциальными данными. Например, таблица может содержать данные о фамилии, имени и отчестве служащего, дату его рождения, семейное положение, пол, национальность и размер оклада. Необходимо разрешить всем пользователям просматривать всю информацию о сотрудниках, кроме размера оклада.
Рисунок 12. Окно списка представлений базы данных.
Для решения задачи необходимо использовать дополнительные механизмы, в качестве которого можно выбрать представления.
Представления (views) являются виртуальными таблицами, содержимое которых генерируется динамически на основе результата выполнения запроса. Для пользователей работа с представлением мало отличается от работы с таблицами.
Создание представлений в SQL Server 2000 можно выполнить различными методами:
с помощью Enterprise Manager;
с помощью мастера Create View Wizard;
средствами Transact-SQL.
Чаще для создания представлений используется графический интерфейс утилиты Enterprise Manager. Это обеспечивает быстрое и наглядное создание представлений любой сложности. Пользователи, не имеющие опыта в создании представлений, могут воспользоваться мастером, что максимально упрощает создание представления за счет разбиения процесса создания на несколько шагов, каждый из которых снабжает пользователя подсказками.
Рисунок 13. Окно создания представления.
При работе с Enterprise Manager список представлений, имеющихся в базе данных, находится в папке Views (Представления). Как видно из рисунка 12, для каждого представления указывается его Имя (столбец Name), владелец (столбец Owner), тип (type) и дата создания (Create Date). Представление может быть отнесено к одному из двух типов – системному или пользовательскому.
Для создания нового представления достаточно выбрать в контекстном меню папки Views команду New View (Новое представление) или нажать на кнопку New (Создать) на панели инструментов.
Каждая таблица или представление отображается в виде самостоятельного объекта, имеющего список столбцов, определенных в соответствующей таблице. Установка флажка слева от имени столбца приведет к включению этого столбца в создаваемое представление (рисунок 13).
Все методы создания представления, в конце концов, обращаются к средствам Transact-SQL, с помощью которых собственно и выполняется создание представления. Ничто не мешает пользователям применять для создания представлений непосредственно команды Transact-SQL, не прибегая к помощи графического интерфейса. При создании представления указывается запрос select, который будет формировать содержимое представления. В этом запросе могут применяться все разделы команды Select. Другими словами, пользователь может выполнять объединение (join) и слияние (union) данных, различные выражения, группировку, агрегирование и логические условия.
6. Основы программирования на языке Transact-sql
Целью любой системы управления базами данных является предоставление пользователю простых и эффективных механизмов манипулирования данными. Для этого можно использовать различные методы управления данными, одним из которых является язык структурированных запросов (SQL, Structured Query Language).
Язык SQL является хорошим примером использования технологии клиент-сервер. Когда пользователю требуется произвести некоторые операции с данными, он описывает действия, которые необходимо выполнить, с помощью команд языка SQL. Подготовленные команды, называемые запросом (query), отправляются на сервер баз данных. В соответствии с полученными инструкциями сервер осуществляет необходимые действия и отправляет клиенту лишь результат работы. Таким образом, вся работа с данными производится на сервере.
В 1992 г. Американским национальным институтом стандартизации (ANSI, American National Standard Institute) был разработан стандарт на язык SQL, названный ANSI SQL-92. Этот стандарт не только определяет основные правила использования команд, идентификаторов, переменных и других элементов, но и регламентирует работу самой системы управления базами данных. В частности, в стандарте ANSI SQL-92 были рассмотрены механизмы работы транзакций и блокировок.
Стандарт ANSI SQL-92 был хорошей попыткой зарегистрировать языки доступа к данным, используемые в различных СУБД. Однако со временем каждый из производителей начал улучшать и модернизировать возможности языка, подстраивая их под конкретную СУБД. С одной стороны, это позволяет более эффективно использовать возможности той или иной СУБД, с другой – это привело к потере совместимости продуктов. В настоящее время стандарт ANSI SQL-92 рассматривается, скорее, как общие рекомендации к построению эффективной системы управления базами данных, чем как конкретный список шагов по построению СУБД.
Таблица 5. Определение метасинтаксических знаков в нормальных формах Бекуса-Наура (БНФ)
::= |
― |
есть по определению; |
| |
― |
выбор альтернативы; |
[ ] |
― |
Возможное отсутствие части определения; |
{ } |
― |
объединение частей определения для выюора или повторения; |
[,…n] |
― |
повторение предшествующей части 1, 2, …, n раз с разделителем запятая для этой части (разделитель может быть любой;) |
<…> |
― |
метапеременная, которая имеет свое определение. |
Корпорация Microsoft, как и многие другие производители, разработала свою версию языка SQL, назвав его Transact-SQL. Именно этот язык используется в SQL Server 2000 для доступа к данным. Он удовлетворяет требованиям ANSI SQL-92, но предлагает пользователю еще и ряд дополнительных возможностей, позволяющих более гибко и эффективно работать с данными. Язык Transact-SQL активно используется не только в программных продуктах корпорации Microsoft, но и в пакетах независимых разработчиков.
Раздел документации сервера T–SQL Help содержит описание каждой команды языка Transact–SQL и набор примеров их использования. Синтаксис команды определяется с помощью специального метаязыка, основанного на нормальных формах Бекуса-Наура (БНФ).
Смысл метасинтаксических знаков приведен в таблице 5.