Материал: BD_Laboratornyi_774_praktikum

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Добавьте в таблицу 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 (или нажать соответствующую кнопку на панели инструментов).

  1. Создайте неуникальные индексы, также разместив их в группе файлов SECONDARY:

Имя таблицы

Имя индекса

Имена столбцов индекса

Регион

Товар

Заказ

IX_Регион

IX_Товар

IX_Заказ

Страна, Город

ЕдиницаИзм, Наименование

ДатаЗаказа


10. Установите для столбцов проверочные ограничения. Для столбцов Цена, Количество и КурсВалюты ограничение заключается в выборе только неотрицательных значений: <имя_поля> >= 0; для столбца ШагОкругления – в выборе одного из трех возможных значений: ШагОкругления IN (50, 1, 0.01); для столбца Расфасован – в выборе одного из двух возможных значений: Расфасован IN ('Нет', 'Да').

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

  1. Установите между таблицами связи типа 1:М, которые задаются строками следующей таблицы:

Имя связи

Родительская таблица / Пер-

вичный ключ

Дочерняя таблица / Вне-

шний ключ

FK_Поставщик_Регион

FK_Клиент_Регион

FK_Товар_Валюта

FK_Заказ_Товар

FK_Заказ_Клиент

FK_Заказ_Поставщик

Регион / КодРегиона

Регион / КодРегиона

Валюта / КодВалюты

Товар / КодТовара

Клиент / КодКлиента

Поставщик / КодПоставщика

Поставщик / КодРегиона

Клиент / КодРегиона

Товар / КодВалюты

Заказ / КодТовара

Заказ / КодКлиента

Заказ / КодПоставщика

При этом связи FK_Заказ_Товар и FK_Заказ_Клиент должны обеспечивать каскадное обновление и удаление данных.

Примечание. Для установления связи между родительской и дочерней таблицами нужно раскрыть элемент дочерней таблицы и в контекстном меню появившейся папки Keys выбрать команду New Key.

12. Создайте диаграмму для базы данных СкладХХХ. Для этого в контекстном меню папки Database Diagrams выберите команду New Database Diagram. В диаграмму включите все таблицы, входящие в базу данных СкладХХХ.

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

Раздел II. Управление пользователями и правами доступа к данным

1. При помощи пользовательского меню Windows запустите утилиту SQL Server Management Studio. На панели Object Explorer в дереве структуры раскройте папку Databases.

2. Присоедините базу данных СкладХХХ, для чего выберите в контекстном меню папки Databases команду Atach Database, затем в появившемся окне нажмите кнопку Append и далее укажите местоположение первичного файла данных (т.е. файла данных с расширением .mdf). Убедитесь, что база данных СкладХХХ появилась в папке Databases.

3. На панели Object Explorer откройте папку Security и выберите в ней строку Logins. При этом справа на панели Summary будет представлен список так называемых регистрационных записей SQL Server (в которые отображаются, в частности, те учетные записи домена Windows, которым разрешен доступ к серверу Имя_компьютера\sqlexpress). Если среди регистрационных записей присутствуют регистрационные записи ИмяДомена\sql1, ИмяДомена\sql2, ИмяДомена\sql3, ИмяДомена\sql4, то выделите их и затем удалите, выбирая в контекстном меню команду Удалить.

Создайте для SQL Server новую регистрационную запись ИмяДомена\sql1 следующим образом. Выберите в контекстном меню строки Logins команду New Login и откройте окно Login - New. На странице General нажмите кнопку Search (справа от поля ввода Login name), затем выберите из списка учетную запись Windows с именем ИмяДомена\sql1 и вставьте ее в поле ввода Login name. В качестве базы данных по умолчанию выберите СкладХХХ.

На странице Server Roles установите флажок dbcreator, предоставляя тем самым пользователю с учетной записью ИмяДомена\sql1 право создавать новые базы данных и их объекты (другими словами, включите данную учетную запись в фиксированную роль сервера dbcreator).

На странице Database Access установите в верхнем списке флажок СкладХХХ, а в нижнем списке - флажок db_accessadmin, разрешив тем самым пользователю с данной учетной записью управлять добавлением или удалением пользователей в базе данных СкладХХХ (другими словами, включите данную учетную запись в фиксированную роль db_accessadmin базы данных СкладХХХ).

Завершите создание регистрационной записи ИмяДомена\sql1 щелчком на кнопке «OK».

Аналогичным образом создайте для SQL Server регистрационные записи ИмяДомена\sql2, ИмяДомена\sql3, ИмяДомена\sql4, при этом, однако, не включайте соответствующие им учетные записи Windows ни в одну из фиксированных ролей сервера и ни в одну из фиксированных ролей базы данных СкладХХХ (однако на странице Database Access флажок СкладХХХ в верхнем списке должен быть установлен).

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

4. На панели Object Explorer раскройте элемент СкладХХХ и далее подчиненную ему папку Security. Затем выберите появившуюся папку Users и убедитесь, что сервер создал новых пользователей ИмяДомена\sql1, ИмяДомена\sql2, ИмяДомена\sql3, ИмяДомена\sql4 (другими словами, отобразил учетные записи Windows ИмяДомена\sql1, ИмяДомена\sql2, ИмяДомена\sql3, ИмяДомена\sql4 в пользователей базы данных СкладХХХ с такими же именами).