- •Кафедра экономической информатики
- •Базы данных
- •Содержание
- •Введение
- •Лабораторная работа №1. Логические и физические модели данных
- •Методические указания
- •Задание к работе
- •Раздел I. Создание сущностей в eRwin
- •Раздел II. Создание связей между сущностями, подмножеств модели и хранимых отображений. Переход к физической модели данных
- •Раздел III. Выполнение операции прямого проектирования
- •Раздел IV. Выполнение операции обратного проектирования
- •Лабораторная работа №2. Усложненные диаграммы «сущность-связь»
- •Методические указания
- •Задание к работе
- •Раздел I. Создание сущностей логической модели
- •Раздел II. Создание связей между сущностями и иерархии наследования
- •Раздел III. Выполнение вариантов трансформы категориальной связи
- •Раздел IV. Выполнение методов синхронизации системного каталога базы данных и текущей модели
- •Лабораторная работа №3. Работа в среде субд «ms sql Server 2005»
- •Методические указания
- •Задание к работе
- •Раздел I. Создание базы данных и ее объектов
- •Раздел II. Управление пользователями и правами доступа к данным
- •Лабораторная работа №4. Создание базы данных и ее объектов с помощью команд языка Transact-sql
- •Методические указания и задания к выполнению
- •Раздел I. Создание базы данных и ее объектов
- •Раздел II. Ввод данных в таблицы базы данных
- •Insert into Заказ (КодКлиента, КодТовара, Количество)
- •Inner join Поставщик
- •Inner join Товар
- •Раздел III. Управление пользователями и правами доступа к данным.
- •Раздел IV. Анализ полученных результатов
- •Лабораторная работа №5. Манипулирование данными с помощью команд языка Transact-sql
- •Методические указания
- •Раздел I. Выборка данных из таблиц и представлений.
- •Раздел II. Обновление данных в таблицах и представлениях.
- •Раздел III. Удаление данных из таблиц и представлений.
- •Раздел IV. Изменение структуры таблицы.
- •Раздел V. Удаление таблицы из базы данных.
- •Задание к работе
- •Лабораторная работа №6. Программирование на языке Transact-sql
- •Методические указания
- •Раздел I. Основы программирования на языке Transact-sql.
- •Раздел II. Создание и работа с хранимыми (на сервере) процедурами.
- •If @Страна is not null
- •If @Город is not null
- •If @Город is not null
- •Insert into Валюта
- •Values(@Код, @Имя, @Шаг, @Курс)
- •If @Страна is not null
- •If @Город is not null
- •Into ##Регион
- •Раздел III. Создание и работа с определяемыми пользователем функциями.
- •Insert @rowset (КодРегиона, Страна, Область, Город)
- •Задание к работе
- •Лабораторная работа №7. Курсоры и триггеры в языке Transact-sql
- •Методические указания
- •Раздел I. Использование курсоров в языке Transact-sql
- •If @НачалоИнтервала is null
- •If @КонецИнтервала is null
- •Раздел II. Создание триггеров в языке Transact-sql.
- •If update(ДатаЗаказа)
- •If update(Цена)
- •If update(Цена)
- •Inserted.Цена * Валюта.КурсВалюты
- •Задание к работе
- •Литература Основная
- •Базы данных
- •220013, Минск, п. Бровки, 6.
Задание к работе
Раздел I. Создание базы данных и ее объектов
1. Создайте на диске D в папке Work новую папку с именем вашей группы, дополненным двухзначным номером, под которым ваша фамилия фигурирует в списке группы. Имя этой папки в дальнейшем будет указываться как X7230XXX.
2. При помощи пользовательского меню Windows запустите основной инструмент администрирования SQL Server 2005 – утилиту SQL Server Management Studio. При этом вас попросят подключиться к какому-либо серверу баз данных SQL Server. В качестве имени сервера укажите имя локального компьютера, дополненное суффиксом \SQLEXPRESS (предполагается, что на компьютере установлена сокращенная редакция SQL Server 2005 – Express Edition).
3. На панели Registered Servers будет виден список всех SQL-серверов, к которым имеет доступ утилита SQL Server Management Studio, причем SQL-серверы могут быть сгруппированы в так называемые серверные группы в произвольном порядке. Кроме SQL-серверов (относящихся к типу Database Engine) здесь же могут отображаться и другие типы серверов: серверы анализа (Analysis Services Server), серверы преобразования данных (Integration Services Server), серверы отчетов (Reporting Services Server) и серверы для мобильных устройств (SQL Server Mobile). Однако при первом запуске будет виден лишь один SQL-сервер с именем ИмяКомпьютера\sqlexpress.
Создайте новую серверную группу с именем Minsk DB - Version 2005 и переместите в нее SQL-сервер с именем ИмяКомпьютера\sqlexpress.
4. На панели Object Explorer в дереве структуры раскройте папку Databases и далее папку System Databases. В результате будут видны 4 системные базы данных (master, model, msdb, tempdb), предназначенные для хранения метаданных и временных объектов.
Создайте новую базу данных. Для этого выберите в контекстном (т.е. вызываемом правой кнопкой мыши) меню папки Databases команду New Database.
В появившемся окне New Database перейдите на страницу Filegroups и добавьте еще одно имя группы файлов SECONDARY.
Переключитесь на страницу General и введите имя базы данных (Database name) как СкладХХХ, где ХХХ – цифры, первая из которых есть последняя цифра в номере вашей группы, а следующие две цифры - ваш номер в списке группы.
Далее в таблице Database files измените первую строку следующим образом. В столбце File Name укажите значение СкладХХХ_data. В столбце Initial Size установите начальный размер файла данных равным 5 MB. В столбце Autogrowth нажмите справа кнопку с тремя точками и выполните следующую настройку: файл при необходимости должен автоматически наращиваться на 3 MB и его размер ограничивается сверху величиной в 75 MB. В столбце Path нажмите справа кнопку с тремя точками и выберите с помощью подсветки путь D:\Work\X7230ХХХ.
После этого заполните вторую строку таблицы следующим образом. В столбце File Name укажите значение СкладХХХ_log. В столбце Initial Size установите начальный размер файла журнала транзакций равным 1 MB. В столбце Autogrowth нажмите кнопку с тремя точками и выполните следующую настройку: файл должен автоматически наращиваться на 20% и его размер ограничивается сверху величиной в 30 MB. В столбце Path укажите путь D:\Work\X7230ХХХ.
Теперь добавьте в таблицу Database files новую строку и заполните ее следующим образом: имя файла – СкладХХХ_data2; тип файла – Data; группа файлов - SECONDARY; начальный размер – 3 MB; файл должен наращиваться на 15% и ограничен 50 MB; размещение – D:\Work\X7230ХХХ.
Добавьте в таблицу Database files еще одну новую строку и заполните ее следующим образом: имя файла – СкладХХХ_data3; тип файла – Data; группа файлов - SECONDARY; начальный размер – 4 MB; файл должен наращиваться на 4 MB и его рост не ограничивается; размещение – D:\Work\X7230ХХХ.
Закройте окно New Database, нажав кнопку «ОК». Убедитесь, что созданная база данных появилась в папке Databases панели Object Explorer.
Примечание. По умолчанию файлы данных и журнала транзакций размещаются в папках, указанных в полях Default data directory и Default log directory соответственно, которые расположены на странице Database Settings окна свойств сервера.
5. Создайте в базе данных СкладХХХ 6 таблиц со столбцами, описание которых приведено ниже.
Для создания таблицы нужно на панели Object Explorer раскрыть элемент СкладХХХ и затем в контекстном меню появившейся папки Tables выбрать команду New Table, открывая тем самым конструктор таблицы.
1) таблица Регион |
|
||
Имя столбца |
Тип данных |
Первичный ключ |
Разрешить значения Null |
КодРегиона Страна Область Город Адрес Телефон Факс |
int nvarchar(20) nvarchar(20) nvarchar(20) nvarchar(50) char(15) char(15) |
Да |
Да |
2) таблица Поставщик |
|
||
Имя столбца |
Тип данных |
Первичный ключ |
Разрешить значение Null |
КодПоставщика ИмяПоставщика УсловияОплаты КодРегиона Заметки |
int nvarchar(40) varchar(30) int nvarchar(MAX) |
Да |
Да Да Да |
3) таблица Клиент |
|
||
Имя столбца |
Тип данных |
Первичный ключ |
Разрешить значение Null |
КодКлиента ИмяКлиента ФИОРуководителя КодРегиона |
int nvarchar(40) nvarchar(60) int |
Да |
Да Да |
4) таблица Валюта |
|
||
Имя столбца |
Тип данных |
Первичный ключ |
Разрешить значение Null |
КодВалюты ИмяВалюты ШагОкругления КурсВалюты |
char(3) varchar(30) numeric(10,4) smallmoney |
Да |
Да |
5) таблица Товар |
|
||
Имя столбца |
Тип данных |
Первичный ключ |
Разрешить значение Null |
КодТовара Наименование ЕдиницаИзм Цена КодВалюты Расфасован |
int nvarchar(50) char(10) money char(3) char(3) |
Да |
Да Да Да |
6) таблица Заказ |
|
||
Имя столбца |
Тип данных |
Первичный ключ |
Разрешить значение Null |
КодЗаказа КодКлиента КодТовара Количество ДатаЗаказа СрокПоставки КодПоставщика |
int int int numeric(12,3) datetime datetime int |
Да Да Да |
Да Да Да Да |
6. В таблице Клиент столбец КодКлиента и в таблице Заказ столбец КодЗаказа сделайте автоинкрементными столбцами, т.е. при добавлении новой строки значения этих столбцов будут устанавливаться автоматически наращиванием (обычно на единицу) предыдущих значений. Соответствующее свойство столбца называется Identity Specification (см. вкладку Column Properties в нижней части экрана); здесь же можно, в частности, указать начальное значение и шаг приращения.
7. Задайте для столбцов значения по умолчанию с помощью свойства Default Value or Binding (см. вкладку Column Properties в нижней части экрана). Значением по умолчанию для столбца Страна будет 'Беларусь'; для столбца УсловияОплаты – 'Предоплата'; для столбца ШагОкругления – 0.01; для столбца ЕдиницаИзм – 'штука'; для столбца КодВалюты (из таблицы Товар) – 'BYR'; для столбца ДатаЗаказа – getdate(), т.е. текущая дата; для столбца СрокПоставки – getdate() + 14, т.е. через две недели от текущей даты; для столбца Расфасован – 'Нет'.
8. Создайте уникальные (unique) индексы, разместив их в группе файлов SECONDARY:
Имя таблицы |
Имя индекса |
Имена столбцов индекса |
Поставщик Клиент Валюта Товар Регион Регион |
UIX_Поставщик UIX_Клиент UIX_Валюта UIX_Товар UIX_Регион UIX_Регион2 |
ИмяПоставщика ИмяКлиента ИмяВалюты Наименование Страна, Область, Город, Адрес Факс |
Примечание. Для создания индекса нужно в окне конструктора соответствующей таблицы вызвать правой кнопкой мыши контекстное меню и выбрать в нем команду Indexes and Keys (или нажать соответствующую кнопку на панели инструментов).
Создайте неуникальные индексы, также разместив их в группе файлов SECONDARY:
Имя таблицы |
Имя индекса |
Имена столбцов индекса |
Регион Товар Заказ |
IX_Регион IX_Товар IX_Заказ |
Страна, Город ЕдиницаИзм, Наименование ДатаЗаказа |
10. Установите для столбцов проверочные ограничения. Для столбцов Цена, Количество и КурсВалюты ограничение заключается в выборе только неотрицательных значений: <имя_поля> >= 0; для столбца ШагОкругления – в выборе одного из трех возможных значений: ШагОкругления IN (50, 1, 0.01); для столбца Расфасован – в выборе одного из двух возможных значений: Расфасован IN ('Нет', 'Да').
Примечание. Для создания проверочных ограничений нужно раскрыть элемент соответствующей таблицы и в контекстном меню появившейся папки Constraints выбрать команду New Constraint.
Установите между таблицами связи типа 1:М, которые задаются строками следующей таблицы:
Имя связи |
Родительская таблица / Пер- вичный ключ |
Дочерняя таблица / Вне- шний ключ |
FK_Поставщик_Регион FK_Клиент_Регион FK_Товар_Валюта FK_Заказ_Товар FK_Заказ_Клиент FK_Заказ_Поставщик |
Регион / КодРегиона Регион / КодРегиона Валюта / КодВалюты Товар / КодТовара Клиент / КодКлиента Поставщик / КодПоставщика |
Поставщик / КодРегиона Клиент / КодРегиона Товар / КодВалюты Заказ / КодТовара Заказ / КодКлиента Заказ / КодПоставщика |
При этом связи FK_Заказ_Товар и FK_Заказ_Клиент должны обеспечивать каскадное обновление и удаление данных.
Примечание. Для установления связи между родительской и дочерней таблицами нужно раскрыть элемент дочерней таблицы и в контекстном меню появившейся папки Keys выбрать команду New Key.
12. Создайте диаграмму для базы данных СкладХХХ. Для этого в контекстном меню папки Database Diagrams выберите команду New Database Diagram. В диаграмму включите все таблицы, входящие в базу данных СкладХХХ.
После появления на экране окна с диаграммой установите оптимальный масштаб изображения и расположите элементы диаграммы наиболее удобным образом, а также включите режим показа названий связей между таблицами. Для этого щелкните мышью на свободном месте диаграммы и, вызвав контекстное меню, выберите команду Show Relationship Labels. Сохраните диаграмму под именем Диаграмма1 после чего закройте ее.
13. Введите по несколько строк данных сначала в таблицы Валюта и Регион, а затем в таблицы Товар, Поставщик и Клиент. После этого введите не менее 10 строк данных в таблицу Заказ.
Примечание. Для ввода данных в таблицу нужно в ее контекстном меню выбрать команду Open Table.
14. Создайте представление (View) на основе столбцов, описание которых приведено ниже.
Столбец |
Таблица |
Сортировка |
Наименование Количество ЕдиницаИзм ИмяПоставщика |
Товар Заказ Товар Поставщик |
По возрастанию По убыванию
|
Примечание. Для создания представления нужно в контекстном меню папки Views выбрать команду New View. Далее необходимо указать нужные таблицы и затем в появившемся окне конструктора представлений, путем расстановки флажков в выбранных таблицах, отобрать нужные поля. Затем для двух из них нужно указать тип сортировки.
Сохраните созданное представление под именем Запрос1, после чего закройте окно конструктора.
15. Откройте и просмотрите на экране данные, выбираемые посредством представления Запрос1. Для этого в его контекстном меню выберите команду Open View.
16. Отсоедините базу данных СкладХХХ, выбрав в ее контекстном меню команду Tasks►Detach Database. Убедитесь, что база данных СкладХХХ исчезла из папки Databases. Теперь файлы этой базы данных можно, при необходимости, переместить в другую папку на жестком диске или копировать на другой носитель данных.
Примечание. Чтобы снова начать работать с базой данных СкладХХХ, нужно выполнить операцию ее присоединения. Для этого нужно в контекстном меню папки Databases выбрать команду Atach Database, затем в появившемся окне нажать кнопку Append и далее указать местоположение первичного файла данных (т.е. файла данных с расширением .mdf).
17. На панели Registered Servers переместите SQL-сервер с именем ИмяКомпьютера\sqlexpress в корневую папку для серверных групп, после чего удалите созданную вами серверную группу Minsk DB - Version 2005.
18. Закройте утилиту SQL Server Management Studio.