Lab5_SQL (1059123), страница 2
Текст из файла (страница 2)
Создание баз данных в SQL Server Management Studio
Мы создадим базу данных Sales, которую позже заполним таблицами, представлениями и другими объектами, предназначенными для отдела продаж.
-
Откройте SQL Server Management Studio и выполните подключение с использованием аутентификации SQL Server. Аутентификация SQL Server предлагает пользователю ввести пароль, который хранится в самой базе данных SQL Server (пользователь sa, пароль 1).
-
В окне Object Explorer найдите и раскройте папку Databases.
-
Щелкните правой кнопкой мыши на папке Databases и выберите команду
New Database.
Рис. 4. Окно настройки параметров автоматического роста файла
-
В левой панели вы увидите список Select A Page. Перейдите во вкладку General и введите следующую информацию:
Database name: Sales
Owner: <default>
-
Перейдите во вкладку General и введите следующую информацию:
Collation:<server default>
Recovery Model: Full
-
В окне Database Files вы должны увидеть две строки: одну для файла данных и одну для файла журнала. Измените исходный размер файла данных на 10.
-
В столбце Autogrowth для файла данных щелкните на кнопке с многоточием, установите переключатель в положение Restricted File Growth и измените максимальный размер на 20. Если вы оставите настройку Unrestricted File Growth,
то файл данных заполнит весь жесткий диск, что приведет к неработоспособности компьютера, если другие программы находятся на том же диске (в частности, сама операционная система Windows) (рис. 4).
-
В столбце Autogrowth для файла журнала щелкните на кнопке с многоточием, установите переключатель в положение Restricted File Growth, задайте максимальный размер 2 и измените значение File Growth на 10 процентов (рис.5).
Рис. 5. Параметры автоматического роста файла настроены
-
Измените указанный по умолчанию путь к файлам БД, указав на сменный носитель (флешка). Это связано с установленными в компьютерном классе правами доступа.
-
Для создания новой базы данных щелкните ОК.
-
Вы должны увидеть свою новую базу данных в окне Object Explorer приложения Management Studio. Выберите созданную базу данных Sales и для просмотра ее свойств щелкните правой кнопкой мыши на свободном поле раскрывшейся вкладки, выберите Report-> DiskUsage (рис. 6).
При создании нового объекта в SQL Server вы можете и не увидеть его сразу в окне Object Explorer. Щелкните правой кнопкой на уровне, где должен быть новый объект, и выберите в контекстном меню пункт Refresh, чтобы программа SQL Server вновь проверила системные таблицы и отобразила все новые объекты базы данных.
Итак, основной строительный блок SQL Server — сама база данных — уже под вашим управлением. База данных представляет собой контейнер для других объектов, таких как таблицы и представления, и без базы данных все эти объекты будут находиться в беспорядочном состоянии.
Мы узнали, что базы данных состоят из трех типов файлов: первичные файлы данных, вторичные файлы данных и файлы журналов транзакций. Первичные файлы данных используются для хранения пользовательских данных и системных объектов, необходимых SQL Server для доступа к базе данных. Вторичные файлы данных хранят лишь пользовательскую информацию и применяются для расширения базы данных на множество физических жестких дисков. Файлы журналов транзакций используются для обеспечения возможности восстановления путем отслеживания всех модификаций данных, сделанных в системе перед записью в файлы данных.
Теперь базу данных Sales можно заполнять другими объектами (например, таблицами).
Рис. 6. Свойства базы данных продаж
Создание таблиц
Создадим в базе данных Sales три таблицы. Первая таблица, Customers, будет хранить такую информацию о клиентах, как имя, фамилия, адрес, идентификационный номер и телефон. Вторая таблица, Orders, будет содержать подробную информацию о заказах — номер заказа, идентификатор продукта и заказанное количество. Третья таблица, Prcducis, будет хранить такую информацию о продукте, как название, идентификатор продукта и его наличие на складе. В таблицах 1-3 представлены списки (как они должны выглядеть на бумаге) всех свойств этих трех таблиц базы данных. Просмотрите их, а затем приступайте к созданию таблиц.
Таблица 1. Поля таблицы Customers
Имя поля Тип данных Содержимое
CustiD int, identity Уникальный номер каждого клиента, на который
можно ссылаться в других таблицах
Fname nvarchar(20) Имя клиента
Lname nvarphar(20) фамилия клиента
Address nvarchar(50) Название улицы
city nvarchar(20) Название города
state state Название штата, где живет клиент (мы создадим этот тип данных, определяемый пользователем, после описания таблиц)
zip nchar(5) Почтовый индекс клиента
Phone nchar (10) Телефонный номер клиента без дефисов и скобок (для
экономии памяти они будут отображаться, но не сохраняться)
Таблица 2. Поля таблицы Orders
Имя поля Тип данных Содержимое
CustiD int Ссылка на номер клиента, хранящийся в таблице
Customer чтобы вам не нужно было дублировать информацию о клиенте каждый раз при размещении заказа
ProdiD int Ссылки на таблицу Products, чтобы вам не нужно было дублировать информацию о продукте
Qty int Количество единиц продукта в заказе
ordDate smalldatetime Дата и время размещения заказа
Таблица 3. Поля таблицы Products
Имя поля Тип данных Содержимое
ProdiD int, identity Уникальный идентификационный номер для каждого продукта, на который можно ссылаться в других таблицах, чтобы избежать дублирования данных
Description nvarchar (100) Короткое текстовое описание продукта
instock int Количество единиц продукта на складе
Создание пользовательского типа данных state
Если вы постоянно создаете таблицы с полем, содержащим аббревиатуру штата, то можете создать собственный тип данных на основе типа char со всеми предварительно заданными параметрами, включая все необходимые ограничения и умолчания. Типы данных, создаваемые для себя и не входящие в стандартный набор, называются типами данных, определяемыми пользователем, даже если они основаны на системном. В качестве примера мы создадим тип данных State (штат), который будет использоваться в таблице Customers.
-
Откройте SQL Server Management Studio и выполните подключение с использованием аутентификации Windows.
-
В Object Explorer раскройте папки Databases=> Sales=> Prograimiability=> Types.
-
Щелкните правой кнопкой на User-Defined Data Types и выполните команду New User-Defined Type.
-
В текстовое поле Name введите имя State.
-
В раскрывающемся списке Data Type выберите тип данных nchar.
-
В текстовое поле Length введите значение 2.
-
Оставьте параметр Allow Nulls неактивным (поскольку нам нужно, чтобы это поле обязательно содержало данные).
-
В секции Binding оставьте в полях Rule и Default значения None и щелкните на кнопке ОК.
Таблицы можно создавать как в графическом интерфейсе (в программе SQL Server Management Studio), так и с помощью кода Transact-SQL. Поскольку графический метод самый простой, мы будем использовать его.
-
Откройте SQL Server Management Studio. В окне Object Explorer раскройте папки Databases=>Sales.
-
Щелкните правой кнопкой на значке Tables и примените команду New Table, чтобы открыть конструктор таблиц.
-
В первую строку в столбце Column Name введите имя ProdiD.
-
В столбец Data Type введите тип int.
-
Убедитесь, что параметр Allow Nulls не включен. С включенной этой опцией поле может быть вообще без данных, а этого нам не нужно.
-
В нижней половине экрана в разделе Table Designer блока Column Properties расширьте Identity Specification и измените значение параметра (Is Identity) в Yes.
-
Введите в столбец Column Name второй строки под ProdiD имя Description.
-
В столбец Data Type введите тип nvarchar.
-
В разделе General блока Column Properties определите для настройки Length значение 100.
10. Убедитесь, что параметр Allow Nulls отключен.
-
В столбец Column Name введите для третьей строки имя InStock.
-
В столбец Data Type введите тип int.
-
Отключите параметр Allow Nulls (рис. 7).
-
Щелкните на кнопке Save в левой части панели инструментов (в виде дискеты).
-
В открывшийся блок Choose Name введите имя Products (рис. 8)
Рис. 7. Окно создания новой таблицы Products
Рис. 8. Присвоение таблице имени
16. Щелкните на кнопке OK.
Спроектировав таблицу Products, вы можете аналогично создать таблицы Customers и Orders.
Чтобы проверить наличие всех трех таблиц, раскройте папку Tables базы данных Sales. Вы должны увидеть три только что созданные таблицы (вам может потребоваться щелкнуть правой кнопкой на папке Tables и выбрать команду Refresh) (рис. 9).
Рис. 9. Все три таблицы созданы
Перед тем как позволить пользователям начать работать с таблицами, вам следует ввести ограничения на вводимые ими данные.
Ограничение данных
Созданная таблица широко открыта для пользователей. Они, конечно, не могут обойти ограничения типов данных, например, путем ввода символов в поле с типом int, но этим ограничения и заканчиваются. Процесс ограничения данных, вводимых пользователями, называется обеспечением целостности данных. Существует три типа целостности данных: доменная, сущностная и ссылочная. Рассмотрим, как можно ограничить пользователей посредством обеспечения целостности домена.
Обеспечение доменной целостности
Вряд ли вы захотите, чтобы пользователи вводили в ваши таблицы всякую ерунду. Например, пользователи не должны вводить цифры в поля с именами или нужно ограничить диапазон допустимых значений данных некоторого типа, вводимых в поля, т.е. вам требуется обеспечить доменную целостность. Этот тип целостности можно задать, используя ограничения на проверку или ограничения по умолчанию.
Использование ограничений проверки
Ограничение на проверку представляет собой инструкцию Transact-SQL связывания с полем. Ограничения на проверку используются для ограничения данных, принимаемых полем, даже если они имеют корректный тип. Например, поле Zip таблицы Customers имеет тип nchar, т.е. чисто теоретически оно может принимать буквы. Это может стать проблемой, поскольку не существует почтовых индексов с буквами. Поэтому вам нужно не позволять пользователям вводить в это поле буквы. Далее описано, как создать ограничение на проверку, выполняющее эту задачу.
1. В окне Object Explorer раскройте папки базы данных Sales и найдите в папке