Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

laby_СУБД

.pdf
Скачиваний:
8
Добавлен:
10.03.2016
Размер:
722.67 Кб
Скачать

5.Задайте первичный ключ таблицы. Для этого:

щелкните правой кнопкой мыши на выбранном в качестве первичного ключа поле, и выберите в контекстном меню команду Set Primary Key;

перейдите в режим конструктора (команда Design table);

щелкните на кнопке Manage Indexes (справа от кнопки, означающей схему данных) и на вкладке Indexes/Keys вы увидите, что автоматически создано определение ключа с указанием имени ключа и выбранного поля (рис 3.1). При этом установлены флажки Create As Clustered и Create As Unique, что означает выбор кластеризованного уникального типа индекса.

6.Сохраните таблицу, указав имя.

7.Создайте, если необходимо, другие индексы для таблицы. Для этого:

найдите таблицу, которую нужно снабдить индексом;

щелкните на ней правой кнопкой мыши и выберите команду

Design table;

В конструкторе таблиц выберите команду Cвойства (или щелкните на предпоследнем значке панели инструментов (зна-

чок Manage Indexes);

выберите вкладку Indexes/Keys. Чтобы создать индекс, щелкните на кнопке New. При этом автоматически будут созданы основные параметры нового индекса, которые вам остается только модифицировать или даже оставить без изменений.

21

Рис.8. Создание индексов (таблица отображена не ваша)

8. Повторите действия 4-8 для всех таблиц.

Лабораторная работа № 4

Цель работы: построение отношений (связывание объектов)

К моменту начала выполнения цикла лабораторных работ вы должны иметь эскиз концептуальной схемы данных с указанием на нем всех связей между таблицами (рис.7). Установим эти отношения с помощью Enterprise Manager.

Создание отношений

1.Запустите Enterprise Manager.

2.Найдите в дереве объектов базу данных. Найдите таблицу, которую нужно определить как главную в отношении между двумя

22

таблицами, щелкните на ней правой кнопкой мыши и выберите команду Design table.

3.В конструкторе таблиц найдите на панели инструментов кнопку Manage Relationships… и щелкните на ней (или воспользуйтесь контекстным меню). (Мы привыкли называть эту кнопку Схема данных).

4.Щелкните на кнопке New для того, чтобы создать новое отношение (рис. 9).

Рис. 9. Установление связей межу таблицами (таблица отображена не ваша)

5.Далее необходимо выбрать параметры отношения. В поле списка Primary Key table (таблица первичного ключа, то есть главная таблица на стороне «один») по умолчанию выбрана первая по алфавиту таблица. Разверните список и выберите имя той таблицы, которая должна выполнять эту роль. В качестве Foreign key table (таблица внешнего ключа, то есть подчиненная таблица на стороне «многие») выберите ту таблицу, которая должна выполнять соответственно эту роль.

6.Перейдите к раскрывающемуся списку ниже списка с именем главной таблицы (Primary Key table), где перечислены все поля выбранной таблицы. Выберите имя поля, по которому будет выполняться связывание.

7.В списке Foreign key table выберите среди имен полей имя поля, играющего роль внешнего ключа по отношению к первой таб-

23

лице. Если ключ составной, выбирайте по очереди все необходимые столбцы.

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

8. Сохраните изменения.

Диаграмма базы данных

Диаграмма отображает физические и логические атрибуты базы данных, она позволяет администратору или разработчику быстро охватить взглядом все строение базы и уяснить себе ее состав (рис. 4.2).

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

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

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

Создание диаграммы базы данных

9. Запустите Enterprise Manager. Найдите в дереве объектов базу данных.

10.Выделите узел Diagrams, щелкните на нем правой кнопкой мыши и выберите в контекстном меню команду New Database Diagram

11.В результате стартует мастер диаграмм, который входит в со-

став Enterprise Manager.

12.Перейдите стартовую страницу и в следующем диалоговом окне вы увидите список доступных таблиц.

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

24

13.Прежде, чем выбрать какие-либо таблицы, установите флажок

Add related tables automatically, благодаря чему окажется задействована кнопка-счетчик How many levels of related tables?. Эта кнопка позволяет установить автоматическое добавление связанных таблиц до определенного уровня. Определите номер последнего уровня связи (вложенности) ваших таблиц в диаграмме и задайте значение (например, 3). Щелкните на выбранной таблице, а затем на Add.

Для некоторых таблиц определены отношения с другими таблицами. Поскольку мы установили флажок Add related tables automatically, то после щелчка на Add, выбранная таблица будет перемещена из списка доступных таблиц в список выбранных таблиц, но при этом мастер проверит наличие связей у таблицы и добавит в список связанные. Число, установленное по кнопке-счетчику определит глубину просмотра.

14.Выберите остальные таблицы и щелкните на Next. Это приведет к последнему шагу, на котором вам следует подтвердить выбор таблиц и построение диаграммы. Если вас все устраивает, щелк-

ните Finish.

15.Чтобы предотвратить отображение на диаграмме системных таблиц, перейдем к узлу регистрации вашего сервера в Enterprise Manager и щелкните на нем правой кнопкой мыши. Выберите команду Edit SQL Server Registration, которая открывает окно свойств SQL – сервер. Флажок Show system database and system object в состоянии, когда он сброшен, скроет системные объекты. Однако следует помнить, что он скроет и полезные системные хранимые процедуры и представления. Если опасаетесь навредить другим пользователям, нуждающимся в доступе к системным объектам, то лучше оставить этот флажок установленным.

Изменение макета диаграммы

Изменение макета диаграммы заключается:

в изменении масштаба;

в перемещении таблиц для лучшего обзора на экране;

в отображении таблиц с дополнительной информацией;

в добавлении новых таблиц в диаграмму.

Остановимся на втором пункте. Для перемещения таблиц на экране следует:

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

25

нуть область так, чтобы она покрыла необходимые таблицы, и отпустить кнопку.

захватив мышью одну из таблиц, перетащите таблицы в другое место на диаграмме.

Лабораторная работа № 5

Добавление, обновление удаление данных

Данные можно добавлять посредством SQL – команд в окне Query Analyzer или при помощи Enterprise Manager. Хотя результат в обоих случаях будет одинаковым, два этих метода многое отличает с точки зрения пользователя. При вставке данных нам необязательно вводить данные в каждый столбец. Есть несколько способов избежать это.

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

Синтаксис T-SQL – команды INSERT

INSERT [INTO]

{имя_таблицы | имя_псевдотаблицы} [{(имя_столбца, имя_столбца, …..)}] {VALUES (выражение, выражение, ……)}

Приведем пример добавление записи с помощью Query Analyzer.

1.Убедитесь, что окно Query Analyzer открыто, и что вы зарегистрировались в системе с правами, допускающими добавление записей в таблицу. Это может быть роль администратора или владельца базы данных.

2.Найдите в окне Object Browser (Объекты) узел нужной вам таблицы и выделите его.

3.Щелкните правой кнопкой мыши и выберите в контекстном меню команду Script Object to New Window As (Включить объекты в новое окно как), за которой скрывается вложенное меню. Выберите в меню ко-

манду INSERT.

Врезультате вы увидите фрагмент кода, который не помещается в окне.

26

Рис.5.1. Окно для ввода T-QSL – команды Query Analyzer

В начало кода необходимо добавить информацию, гарантирующую, что Query Analyzer будет допускать двойные кавычки в качестве ограничителя строковых значений:

Set Quoted_Identiefer Off

4. Отредактируйте код в панели запросов Query Analyzer (привожу свой пример, а вы отредактируйте его под свою таблицу):

Set Quoted_Identifier Off

INSERT INTO [Ekzamen].[dbo].[Gor]([Kod_R], [Kod_O], [Kod_G], [P_Nam], [MGTK])

VALUES("001","001", "001", "Екатеринбург", "343")

5. Выполните код. Для этого нажмите «F5» или щелкните по кнопке Execute (Выполнить) на панели инструментов. Вы увидите сообщение:

(1 row(s) affected)

Вставка данных с помощью Enterprise Manager

1.Убедитесь, что окно Enterprise Manager открыто, и что вы зарегистрировались в системе с правами, допускающими добавление записей в таблицу.

2.Разверните узел, соответствующий имени базы данных, разверните узел Tables, выделите элемент с именем таблицы. Щелкните на нем правой кнопкой мыши и выберите в меню команду Open Table (Открыть таблицу), а затем выберите Return all rows (Вернуть все строки).

3.Выполните простую операцию ввода данных с помощью активного

окна.

27

Извлечение записей по выборке

1.Убедитесь, что окно Query Analyzer открыто и что вы находитесь в окне базы данных.

2.В панели запросов введите код (привожу пример по своей таблице

Gor):

Select * from Gor

3.Выполните запрос, оцените на результат.

4.Выполните код, в результате которого выборка будет содержать только отдельные столбцы (привожу свой пример):

Select P_nam, MGTK from Gor 5. Выполните код, взгляните на результат.

Различные способы отображения результатов запроса

До сих пор мы пользовались табличным представлением на экране, точнее, с сеткой «grid». Далее рассмотрим вывод в текстовую таблицу, а также вывод результатов запроса в файл.

Отображение результатов запроса в виде текстовой таблицы и вывод в файл

1.Мы все еще находимся в Query Analyzer. В меню Query (Запрос) выберите команду Results in Text (Результат как текст).

2.Выполним тот же самый запрос. Как видно, вид отображаемых результатов изменился.

3.Если необходимо получить результаты запроса в файле, выполните команду меню Results in File и повторите выполнение кода. В диалоговом окне Save Results укажите путь и имя файла.

Выборка подмножества записей

1. Изменим запрос с тем, чтобы ограничить число возвращаемых записей при помощи оператора Where (привожу свой пример):

Set Quoted_Identifier Off Go

Select * from Gor Where Kod_"R=001"

2. Выполните код и взгляните на результаты запроса.

28

Другие методы отбора

Существуют другие возможности для того, чтобы ограничить результирующий набор записей, не требующие использования оператора Where.

SET ROWCONT n

Прекращает выполнение оператора Select, Update, Delete по

 

достижении заданного числа записей . Для отмены - SET

 

ROWCONT 0

Top n

Возвращает заданное число записей.

Top n percent

Возвращает процент от общего числа записей.

Like

Совместно с Where позволяет производить отбор строк на ос-

 

нове сравнения с образцом. Совместно со специальными сим-

 

волами определяет разновидность поиска:

 

“%a%” - поиск значения , в котором присутствует буква “a”;

 

“_a” - Поиск значения из двух букв, причем первая буква “a”;

 

“%[a,b,c,d]%” – поиск значения с буквами a,b,c,d;

 

[^…] – Похоже на предыдущее с точностью до наоборот. Здесь

 

перечисляются значения, которые не должны встречаться в

 

данной позиции;

 

Like можно использовать для объединения столбцов

 

Создание данных – SELECT INTO

Синтаксис:

Select * | столбец1, стобец2 … Into имя новой_ таблицы From имя_таблицы

Задание.

1.В пустом окне Query Analyzer введите и выполните код, позволяющий создать таблицу-копию выбранной вами таблицы. К имени таб-

лицы-копии добавим в конке «_Temp». (Привожу свой пример).

SELECT [Kod_R, Kod_O, Kod_G, P_Nam, MGTK INTO Gor_Temp

From Gor

2.Перейдите в Object Browser ( клавиша F8) и выполните обновление (нажмите клавишу F7). В узле текущей базы данных вы увидите новую таблицу.

3.Чтобы убедиться, что таблица действительно содержит те же записи,

что и таблица - оригинал, введите в панель запросов код:

SELECT * FROM Gor_Temp

4. В результате вы увидите те же записи, что и в таблице-оригинале.

29

Обновление данных, транзакции

Синтаксис команды:

UPDATE имя_таблицы

SET столбец1 =значение | переменная | столбец [,столбец2 =значение | переменная | столбец ]

. . .

WHERE критерии_отбора

Внимание! Если вы опустите раздел WHERE, то обновление будет применено ко всем строкам в таблице.

Задание. Выполните запрос обновления записи с помощью Query Analyzer применительно к своей таблице.

Транзакции

Транзакция представляет собой единицу работы, которая должна быть подвергнута тесту – Атомарность, Целостность, Изоляция и Окончательность.

Транзакция состоит из двух основных элементов. Это начало (старт) транзакции и окончание транзакции, когда мы решаем, принять транзакцию или отменить ее.

Рассмотрим синтаксис T-SQL команд, используемых для проведения транзакций. Речь будет идти о единственной транзакции. Вложенные транзакции представляют собой сложную тему, и иметь с ними дело следует, хорошо зная SQL – сервер.

BEGIN TRAN

Объявляет начало транзакции. Начиная с этого момента и оканчивая моментом выполнения одной из двух команд – COMMIT TRAN или ROLLBACK TRAN – любые операции вносящие изменения в данные, относятся к данной транзакции.

COMMIT TRAN

Завершает транзакцию и записывает изменения в базу данных. После выполнения этой команды отмена изменений невозможна.

ROLLBACK TRAN

Если необходимо отменить изменения (например, по причине ошибок), следует использовать эту команду.

30

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]