Методические указания для разработки проекта базы данных Microsoft SQL Server 2005


Методические указания для

разработки проекта базы данных Microsoft SQL Server 2005

 1. Основные сведения о Microsoft SQL Server

Microsoft SQL Server — коммерческая система управления базами данных, которая входит в тройку лидеров на рынке баз данных (судя по объему продаж, IBM Informix занимает первое место, Oracle находится очень близко, а третье место занимает Microsoft SQL Server).Базовый код MS SQL Server (до версии 7.0) основан на коде Sybase SQL Server, и это дало возможность быстро выйти на рынок баз данных, где уже конкурировали IBM, Oracle и, впоследствии, Sybase.Microsoft, Sybase и Ashton-Tate объединились для создания и выпуска первой версии программы, которая фактически была эквивалентом Sybase SQL Server 3.0 для Unix.

В 1992 году была выпущена версия 4.2, которая входила в состав операционной системы Microsoft OS / 2.Одновременно с выходом Windows NT 3.1 появился релиз MS SQL Server 4.21 для этой операционной системы.Версия MS SQL Server 6.0 создана была исключительно для архитектуры NT, и является самостоятельным релизом Microsoft.На этом этапе компании Sybase и Microsoft разошлись, и занимались созданием собственных моделей баз данных. Версия 7.0 была первым сервером баз данных с настоящим графическим интерфейсом администрирования, а весь программный код был переписан (для избежания нарушений авторских прав на Sybase).

версия год Полное название кодовое имя
1.0 (OS / 2) 1989 SQL Server 1.0
4.2 1992 SQL Server 4.2
4.21 (Win NT) 1993 SQL Server 4.21
6.0 1995 SQL Server 6.0 SQL95
6.5 1996 SQL Server 6.5 Hydra
7.0 1998 SQL Server 7.0 Sphinx
1999 SQL Server 7.0 OLAP Plato
8.0 2000 SQL Server 2000 (32-битная Shiloh
8.0 2003 SQL Server 2000 (64-битная Liberty

Большую популярность приобрела MS SQL Server 2000, как особо стабильная и надежная система с минимальными требованиями к ресурсам.До появления очередной версии, она продержалась на рынке целых шесть лет. Эта версия уже поддерживала XML (Extensible Markup Language, расширяемый язык разметки), одновременное функционирование многих копий сервера; была тесно интегрирована с Windows 2000, и автоматически регистрировалась в Active Directory; под управлением Windows 2000 Datacenter могла использовать до 32 процессоров и 64 Гбайт оперативной памяти; предусмотрена возможность масштабирования (распределение данных по нескольким серверам) и улучшенная быстродействие.

Для следующей версии, MS SQL Server 2005, основной задачей ставилось улучшить возможности масштабирования и повышения быстродействия (секционирования для таблиц и индексов, отключение индексов, увеличено количество с 16 до 50 экземпляров SQL Server на одном компьютере, отложено удаления и перестройка крупных объ объектов, динамические представления и т.д.).Введены новые возможности системы безопасности (встроенные средства шифрования данных, расширенные возможности работы с логинами SQL Server, разделение пользователей и схем), системы репликации, обеспечения безотказности (возможность создания, изменения и удаления индексов в оперативном режиме, выделенное административное подключение, зеркальное отражение баз данных, контрольные суммы для проверки целостности страниц баз данных), введено поддержку XML как типа данных.

Для MS SQL Server 2008 была поставлена задача сделать управление данными самоналаштовуваним, самоорганизованным и самоподдерживающимся.Эта версия также включает поддержку структу-ровано и полуструктурированных данных, в том числе цифровые медиа-форматы для изображений, звуков, видео и других мультимедийных данных.Ключевым нововведением MS SQL Server 2008 являются развитые средства управления ресурсами, позволяющие эффективно управлять и распределять рабочую нагрузку с помощью отслеживания уровня загрузки процессора и о объема памяти. Введено поддержку пространственных данных.

 

Редакции MS SQL Server 2005.

Всего есть 5 редакций MS SQL Server 2005, две из них поставляются в 32- и 64-разрядных версиях. Во всех редакциях присутствуют компоненты для установки как на сервере, так и на рабочей станции. Выбор редакции зависит от аппаратных и финансовых возможностей, и потребностей заказчика.

Таблица 1.2.Сравнение редакций Microsoft SQL Server 2005

Enterprise Edition (32- и 64-разрядные версии).Полная версия продукта с повышенной производительностью и расширенным набором функций. Способна поддерживать тысячи подключений и баз данных, измеряемых в терабайт.  Для достижения такого уровня производительности необходимы и соответствующие компьютеры — как минимум, с 16-ю двухъядерными процессорами, 32 Гбайтами памяти и мощными сетевыми платами. Устанавливается на серверные операционные системы начиная с Windows 2000 Server. $ 24 700
Standard Edition (32- и 64-разрядные версии).Имеет все основные функции сервера: службы интеграции и анализа, Web-службы, зеркальное отражение баз данных и кластеризации. Поддерживает только 4 процессора, однако не имеет ограничений на память. В такой конфигурации сервер способен обслуживать 500 одновременных подключений и терабайтный базу данных.

Однако в отличие от Enterprise Edition, эта версия не может осуществлять ряд операций (с индексами, зеркальное резервное копирование, добавление оперативной памяти и т.п.) в оперативном режиме, то есть без отключения пользователей или без отключения сервера. Также отсутствует секционирования таблиц и индексов

$ 6060
Workgroup Edition (32-разрядная версия).Эта редакция является еще более упрощенной по сравнению с Standard Edition. Поддерживает 2 процессора и 3 Гбайта памяти вашего компьютера, однако не имеет ограничений на размер базы данных. В такой конфигурации сервер способен обслуживать до 100 пользователей в.

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

$ 3900
Developer Edition (32- и 64-разрядные версии).Включает все возможности Enterprise Edition, но лицензируется только для разработки программного обеспечения и тестирования. Запускается в операционных системах, предназначенных для рабочих станций, например, Windows NT Workstation, Windows 2000 Prof. и Windows XP Prof. $ 50
Express Edition (32-разрядная версия).Полноценная версия ядра SQL Server, предназначенной для использования с определенным программным обеспечением в качестве клиентской или основной серверной базы данных. Поддерживает 1 процессор, 1 Гбайт памяти вашего компьютера, ограничение размера базы данных составляет 4 Гбайта. Бесплатная.

 

2. проектирование базы данных

 

2.1. создание базы данных.

Основным графическим инструментом проектирования баз данных в MS SQL Server 2005 является компонент Management Studio (Express).При запуске этой программы появится диалоговое окно Connect to Server (с объединения с сервером)

(рис.2.1).

Поле Server type (тип сервера) дает возможность выбрать одну из нескольких подсистем SQL Server (ядро базы данных или соответствующая служба), в которую должен войти пользователь.

В поле Server name (имя сервера) отображается имя сервера, к которому необходимо подключиться.Как правило, соединение устанавливается с экземпляром по умолчанию. При подключении другим экземпляром, тогда следует выбрать его в выпадающем списке. Если же подключение к данному экземпляра осуществляется впервые, тогда в этом выпадающем списке нужно выбрать опцию

<Browse for more> (обзор т.д.), и в следующем диалоговом окне выбрать необходимый экземпляр.

В поле Authentication (проверка подлинности) может быть выбран один из двух вариантов проверки подлинности пользователя — Windows Authentication (проверка подлинности Windows) и SQL Server Authentication (проверка подлинности SQL Server).Первый вариант предполагает, что учетные записи пользователей Windows отображаются на учетные записи пользователей SQL Server. При попытке пользователя зарегистрироваться в SQL Server, информация о нем 4 проверяется в домене Windows и отображается в качестве, в соответствии с учетной записи, а в качестве указывают, которые разрешается пользователю выполнять действия.При использовании варианта организации защиты на основе параметра SQL Server Authentication полностью игнорируются права, предоставленные пользователю в сети, а учитываются только те, которые явно заданы в системе SQL Server. Для этого пользователь должен задать имя я учетной записи и пароль, относящихся к SQL Server.

Создание соединения:

1. В поле Server type (тип сервера) выбираем значение Database Engine (рис.

 

2.1).

2. В поле Server name (имя сервера) оставляем имя сервера с умолчанию.

3. В поле Authentication (проверка подлинности) выбираем вариант Windows

 

Authentication или SQL Server Authentication (вводим имя пользователя sa и его пароль).

4. Нажимаем кнопку Connect (соединить).

После запуска программы Management Studio и развертывания узлов Обозревателя объектов вид будет похож как на рис.2.2.

Рис. 2.2. Общий вид Management Studio

 

Как видим, в окне Object Explorer (обозреватель объектов) в узле Databases (базы данных) присутствует папка с набором системных баз данных: master — основная служебная база данных всего сервера, в которой хранятся настройки его работы, список баз данных на сервере с их настройками, информация об учетных записях пользователей для подключения к серверу и т.п .; model — шаблонная база данных для создания новых баз данных в SQL Server; msdb — база данных для хранения служебной информации (службы SQL Server Agent, истории резервного копирования и т.д.); tempdb — база данных для хранения временных таблиц и хранимых процедур, промежуточных данных при перестройке индексов.Также существуют еще и дополнительные системные базы данных, которые являются скрытыми для глаз пользователей и администраторов.

 

СОЗДАНИЕ БАЗЫ ДАННЫХ:

1. Щелкнуть правой кнопкой мыши на узле Databases (базы данных) (рис. 2.2) и в контекстном меню выбрать команду New Database … (создать базу данных …).

2. В открытом диалоговом окне ввести имя для новой базы данных (рис. 2.3).

3. Указать путь на диске для размещения файлов базы данных и журнала.

4. нажать кнопку ОК.

Рис. 2.3. Диалоговое окно для создания новой базы данных

При создании базы данных, создаются файлы самой базы данных и файлы журналов транзакций. Файл журнала транзакций содержит последовательная запись всех изменений, которые вносятся в базу данных. Минимальный набор файлов для любой базы содержит один файл для самой базы данных и один файл для журнала транзакций. В каждой базе обязательно есть один основной файл с расширением * .mdf по умолчанию.  Вторичные файлы базы данных имеют расширение * .ndf, а для журналов транзакций используются расширения * .ldf.

Следующий момент при создании базы данных связан с выбором размера файлов базы данных и журналов транзакций.Конечно, размер файлов баз данных зависит от поставленной задачи. Можно сразу создать большие файлы баз данных, или настроить для них режим автоматического прироста. Как правило, рекомендуют сразу создавать файлы максимального размера (или, по крайней мере, настроить автоматический прирост большими частями в несколько гигабайт). Такой подход снижает фрагментацию файлов баз данных, повышая тем самым производительность.

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

 

необходимости можно создать дополнительную файловую группу во вкладке Filegroups (файловые группы) (рис.2.3 — А). Файловые группы используются при оптимизации резервного копирования. Например, если базу данных можно условно разделить на две части: пользовательские таблицы, которые являются небольшими и постоянно меняются, и таблицы справочника, меняются очень редко, но есть большого размера. В этом случае выполнять резервное копирование важно именно для пользовательских таблиц. Для этого создают дополнительную файловую группу, например, USERS, продолжают создавать новый файл данных, например, users.ndf, и назначают его в эту группу.  Файловой группе можно назначать пользовательские таблицы и индексы.Теперь можно выполнять резервное копирование отдельных файловых групп с разным расписанием, например, для файловой группы USERS проводить каждый день, а для группы PRIMARY то месяц. Другие ситуации, для которых можно применить дополнительные файловые группы — ручное распределение нагрузки на дисковой подсистеме (например, часто используемые данные разместить на быстром диске, а другие на обычном) распараллеливания запросов в дисковой подсистеме (разместив таблицу и ее индексы в различных файловых группах) тому подобное.

Важным моментом при создании базы данных является выбор режима ее восстановления.Этот параметр выбирается во вкладке Option (параметры) (рис.2.3 — А). Предусмотрено три режима восстановления базы данных:

Full (режим полного протоколирования) — в журнал записывается максимальное количество операций.Журнал транзакций автоматически не обрезывайся. Этот режим обеспечивает максимальные возможности восстановления (за счет снижения производительности). Только в этом режиме можно использовать зеркальное отражение баз данных.

Bulk-logged (режим неполного протоколирования) — компромиссное решение между требованиями производительности и возможностями восстановления.В этом режиме практически отключается запись в журнал для операций массового вставки, вставки / изменения больших двоичных данных, операций по созданию, перестройке и удалению индексов.

Simple (простая модель восстановления) — максимальный выигрыш в производительности за счет возможностей восстановления.Минимально протоколируются те же операции, что и в режиме Bulk-logged, а кроме того, журнал транзакций автоматически очищается.Однако, в этом режиме невозможно использовать журнал для восстановления базы данных .

Во вкладке Option (параметры) (рис.2.3 — А) находится также ряд дополнительных параметров, информацию о которых можно найти в [2].

 

2.2. Создание схем базы данных.

Схемы — это контейнеры для объектов, или, как их еще называют, пространства имен. Схемы используют для упрощения управления данными и создания подмножества объектов, которыми можно управлять как единым целым. Такой подход особенно удобным, когда над проектированием базы данных работают несколько проектировщиков, и тогда исключается ситуация с совпадением названий определенных объектов (объекты каждого проектанта могут быть привязаны к определенной схемы). Для обращения к объектам в схемах необходимо указывать двухсложные идентификатор в виде SchemaName.ObjectName.  Если необходимо обращаться к объектам другой базы данных,

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

DatabaseName.SchemaName.ObjectName.

Если для о объектов явно не указывают принадлежность к конкретной схемы, тогда они по умолчанию относятся к схеме dbo.Использование схемы по умолчанию дает возможность обращаться к объектам по их названиям (расширение схемы добавляется автоматически).

Рис. 2.4. Создание новой схемы СОЗДАНИЕ СХЕМЫ:

1. В панели Object Explorer (обозреватель объектов) для выбранной базы данных раскрыть узлы, как на рис.2.4а, и выбрать в контекстном меню команду New Schema … (создать схему).

2. В диалоговом окне Schema — New (схема — создать) в поле Schema name (имя схемы) ввести имя, а поле Schema owner (владелец схемы) можем оставить пустым (рис. 2.4б).

3. нажать кнопку ОК.

Если явно не задать владельца схемы, то по умолчанию владельцем станет роль dbo, которая ассоциируется с пользователем, создал эту базу данных.

2.3. Создание таблиц базы данных.

Ближайшим аналогом таблицы базы данных можно считать лист электронной таблицы Microsoft Excel. При работе с письмом таблицы информацию вводят в ленты и столбцы. Также в электронных таблицах, как правило, заголовки столбцов, по которым можно судить о виде информации в них. Однако, в отличие от электронных таблиц, таблицы баз данных имеют определенные строгие ограничения в отношении данных, которые можно вводить в столбце. В SQL Server такая структура данных обеспечивается за счет использования типов данных и свойств столбцов. В таблице 2.1 приводятся основные типы данных и их характеристики.

 

Таблица 2.1.Встроенные типы данных Microsoft SQL Server 2005

Тип данных Диапазон описание Размер в

байтах

целочисленные типы

 

bit 0, 1 или NULL

1 байт на

каждые 8

столбцов

bigint от -2 63 до 2 63 -1 8

от -2 31 (-2147483648) до 2 31 -1 (2

int

147 483 647) 4

smallint от -2 15 (-32 768) до 2 15 -1 (32767) 2

tinyint от 0 до 255 1

десятичные типы

decimal (p, s); numeric (p, s)

от -10 38 до 10 68 -1 где p — точность (макс. к-во цифр в числе),

s — степень (кол-во цифр после запятой).

Например, для числа 5 123,845: p = 7; s = 3;

от 5 до

17

Числовые типы с плавающей запятой

float от -2,23-10 308 к 2,23-10 308               8

real от -3,4-10 38 в 3,4-10 38               4

финансовые типы

money от -922 337 203 685 477,5808 до 922

337203685 477,5807

smallmoney от -214 748,3648 до 214 748,3647 4

 

 

Типы данных «Дата и время»
datetime С 01.01.1753р. к 31.12.9999р. с точностью до 3,33 мс. 8
smalldatetime С 01.01.1900р. к 06.06.2079р. с точностью до 1 мин. 4
Символьные / текстовые типы
 

char (ы)

n = 1 — 8000 символов ANSI. Размер фиксированный.Недозаполненный поля дополняются пробелами. 1 для каждого символа
varchar (ы) n = 1 — 8000 символов ANSI. Размер переменный (пробел не 1 для каждого

  дополняется). символа + 2 байт-ный указатель
varchar (max) К 2147483647 символов ANSI. Размер переменный (до 2 Гбайт).
 

text

К 2147483647 символов ANSI. Размер переменный (до 2 Гбайт). 1 для каждого символа
 

nchar (ы)

n = 1 — 4000 символов UNICODE; размер фиксированный; недозаполненный поля дополняются пробелами. 2 для каждого символа
nvarchar (ы) n = 1 — 4000 символов UNICODE; размер переменный (пробел не дополняется) 2 для каждого символа + 2 байт-ный указатель
 

nvarchar (max)

К 1073741823 символов UNICODE; размер переменный (до 2 Гбайт).
 

ntext

К 1073741823 символов UNICODE. Размер переменный (до 2 Гбайт) 2 для каждого символа
бинарные типы
binary (ы) n = 1 — 8000 байт; бинарные данные фиксированной длины 1 — 8000
 

varbinary (ы)

n = 1 — 8000 байт; бинарные данные переменной длины 1 — 8000 +

2-б-ной указатель

 

varbinary (max)

 

Бинарные данные переменной длины; максимум до 2147483647 байт

До 2 Гб

+ 2-байт-ный указатель

image Бинарные данные переменной длины; максимум до 2147483647 байт До 2 Гб

xml Символьное поле, сохраняет XML-данные до 2 Гб

Числовые типы с плавающей запятой float и real рекомендуют использовать только тогда, когда входные данные выходят за границы диапазонов точных числовых типов данных decimal (numeric).

Типы данных money и smallmoney предназначены для хранения денежных значений, однако, из-за их ограничение в четыре десятичных разряда после запятой, они редко

используются в финансовых программах. Данные программы требуют выполнения расчетов с точностью до 6, 8, а иногда 12 знаков после запятой, и поэтому, вместо финансовых типов, используют decimal (numeric).

Среди символьных типов является, на первый взгляд, немало однотипных, и различия между ними, хотя и едва заметные, но очень важны. Тип данных char как в ANSI, так и в UNICODE имеет фиксированный размер.Поэтому для него нужно одинаковый о Объем памяти вашего компьютера при произвольном количестве символов, хранящихся в столбце. Например, столбец с типом данных char (30) занимает 30 байт памяти независимо от того, сохраняется в нем один символ или тридцать, а неиспользованная памяти пять дополняется пробелами.А для хранения каждого символа в столбце с типом данных varchar (30) необходимо только один б.

Типы данных text и ntext предназначены для хранения больших массивов символьных данных.Однако эти типы имеют ряд ограничений: к ним нельзя применять оператор равенства или операцию объединения; много системных функций не могут работать с этими типами данных. Через эти ограничения в SQL Server 2005 были введены типы данных varchar (max) и nvarchar (max), которые объединяют возможности предыдущих, могут хранить до 2 Гб данных и не имеют ограничений по их использованию с различными операциями и функциями.

Типы данных binary / varbinary преимущественно используют для сохранения группы небольших файлов размером 4-6 Кб, содержащих различные данные в двоичном формате.Тип данных image дает возможность хранить 12

не только фотографии, но и произвольные документы Word, Excel, PDF и т.д., произвольные файлы, размер которых не превышает 2 Гб. Для устранения ограничений, налагаемых на тип данных image при использовании с различными операциями и функциями, в SQL Server 2005 был введен тип данных varbinary (max), что тоже дает возможность сохранять объем данных до 2 Гб.

Рис. 2.5. Создание новой таблицы

б)

СОЗДАНИЕ ТАБЛИЦЫ:

1. В панели Object Explorer (обозреватель объектов) для выбранной базы данных раскрыть узлы, как на рис.2.5а, и в контекстном меню узла Tables (таблицы) выбрать команду New Tables … (создать таблицу), после чего откроется окно Table Designer (конструктор таблиц) (2.5б).

2. Наберите название таблицы в поле Name (имя), что размещено на панели Properties (Свойства).

3. Выбрать принадлежность таблицы с определенной схемой из выпадающего списка поля Schema (схема), которое размещено на панели Properties (Свойства).

4. Выбрать файловые группы, в которых будут храниться данные этой таблицы.

5. Сформировать столбце таблицы, задавая имя столбца, его тип данных и разрешение на NULL.

6. С помощью вкладки Column Properties (свойства столбцов) задать значения свойств столбцов таблицы.

7. сохранить таблицу.

Принадлежность к заданным файловых групп определяется отдельно для обычных данных и отдельно для крупных объектов:

• Для определения места хранения обычных данных раскройте узел раздела Regular Data Space Specification (спецификация обычного пространства данных) (рис.2.5б, п.4) и в выпадающем списке File or Partition Scheme Name (имя группы файлов или схемы разделов) выберите необходимую группу файлов.

• Для определения места хранения данных больших объектов требуемую группу файлов выпадающего списка поля Text / Image Filegroup (группа файлов Text / Image).

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

Набор свойств вкладки Column Properties (свойства столбцов)

1. Name (Имя) — имя столбца.

2. Allow Nulls (Разрешить значения null) — разрешает или запрещает значение

null.

3. Length (Длина) — указывает число символов, разрешенных для символьных типов

данных.

4. Default Value or Binding (значение или привязывания по умолчанию) — выводит значение по умолчанию, которое устанавливается, когда в столбец не было ничего введено.Значение по умолчанию может быть введено в виде текста или выбранное из выпадающего списка, где отражаются все глобальные значения по умолчанию, которые определены в базе данных.

5. Precision (точность) — указывает максимальное количество цифр в значениях столбца с типом decimal.

6. Scale (масштаб) — указывает максимальное количество цифр справа от десятичной запятой в значениях столбца с типом decimal.

7. Computed Column Specification (спецификация вычисляемого столбца) —

 

выводит информацию о столбец, содержащий результат вычислений с использованием данных других столбцов таблицы. В поле (Formula) [(формула)] задается выражение, согласно которому вычисляется значение для столбца.В качестве этого выражения может быть произвольное корректное сочетание операторов, функций, констант и значений других столбцов этой таблицы (операторы и функции приводятся в табл. 3.1). Поле Is Persisted (есть збережува ным в базе данных) указывает сохраняются результаты вычислений в базе данных (значение Yes (да)) или в базе хранится только формула (значение No (нет)), а сами значения вычисляются только при обращении к этого столбца.

8. Identity Specification (спецификация идентифицирующего столбца)-вывода информации о состоянии столбца в режиме автоматического генерирования уникальных числовых идентификаторов лент.Для включения столбца в режим идентификации необходимо установить в его поле (Is Identity) [(есть идентифицирующим столбцом)] значение Yes (да), в поле Identity Increment (начальное значение) задать исходное значение, а в Identity Seed (прирост) — значение инкремента .Исходное значение — это начальное значение, устанавливается для самой ленты таблицы, а инкремент определяет, насколько SQL Server увеличивает (уменьшает) эту начальную величину при генерировании каждого следующего значения. Это свойство доступна только для целочисленных типов, а для использования с типами decimal и numeric необходимо установить ноль разрядов после комы.

9. Collation (таблица сортировки) — задает порядок сортировки столбца, который используется SQL Server при сортировке лент результатов запроса.

10. RowGuid (идентификатор GUID ленты) — указывает на наличие глобальных уникальных идентификаторов лент; может быть применен только для столбцов с типом данных uniqueidentifer.GUID формируется на основе номера сетевой платы, уникальность которого гарантируется производителями в ближайшие 100 лет.

2.4. Создание ключей и реализация ограничений базы данных.

Есть несколько различных типов ключей:

Первичный — содержит первичный указатель на ленту в таблицы;

Альтернативный — содержит дополнительные указатели на ленту в таблице, произвольные уникальные условия, представляющие один или большее количество столбцов таблицы.

Внешний — содержит указатели на ключи в других таблицах.Первичные и альтернативные ключи — гибридные объекты: частично

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

Индексы позволяют организовать быстрый доступ к данным без поиска по всей базе данных.Индексы руководствуются и хранятся отдельно от таблиц. Для построения индексов SQL Server использует структуру В-дерева (B-tree, Balanced- tree), состоящий из корня, промежуточных узлов и конечных узлов (листьев).Древовидная структура дает возможность организовать быстрый и эффективный поиск, в противном же случае, сервера пришлось бы поочередно считывать каждую страницу

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

По своей структуре индексы подразделяются:

Кластерный индекс сохраняет страницы данных таблицы на уровне листьев В- дерева, при этом данные физически упорядочены согласно ключа.Для каждой таблицы можно определить только один кластерный индекс (!!!).При создании такого индекса происходит физическое сортировки данных в соответствии с индексом, и перестройка всех некластерных индексов.Как правило, кластерные индексы создают для первичных ключей, хотя могут быть созданы и для любого столбца. Оптимальным вариантом считают такой, когда индексированные значение для кластерного ключа уникальны. Если же значение не уникальны, тогда SQL Server создает дополнительные ключи сортировки лент, имеющих дубликаты для основных ключей сортировки.

Некластерного индекс на уровне листьев В-дерева содержит указатель на ленту данных, соответствует ключу в индексе.Если таблица уже имеет кластерный индекс, тогда указатель указывает на его ключ, а не на данные. Если же кластерный индекс отсутствует, тогда указатель указывает на реальную ленту данных. При создании некластерного индекса SQL Server создает необходимые страницы индекса, но не меняет физического расположения табличных данных, и не удаляет другие индексы таблицы.Каждая таблица может иметь до 249 некластерных индексов.

 

Выбор столбцов для индексирования. Следует помнить, что применение индексов не только ускоряет поиск необходимой информации, но и, в свою очередь, требует накладных расходов: оперативной памяти, дискового пространства, машинного времени. Каждый раз, когда происходят произвольные изменения в индексированных столбцах, также меняется и индекс. При одиночной смене настоящее время незначителен, однако чем активнее система, тем больше это затрагивает производительность. В табл. 2.2 приводятся рекомендации по выбору столбцов для индексации, а в табл. 2.3 — относительно использования кластерных или некластерных индексов.

Таблица 2.2. Рекомендации по созданию индексов

индексировать НЕ индексировать
Таблицы с большим количеством лент Таблицы с небольшим количеством
Столбцы, часто используются лент
в запросах Столбцы, редко используются
  в запросах
Столбцы, сохраняют широкий диа-  
пазон значений и имеют высокую ймовир- Столбцы, сохраняют широкий диа-
ность быть избранными в типичном пазон значений и имеют низкую ймовир-
запросе ность быть избранными в типичном
  запросе
Столбцы, используемых в ре-  
чения GROUP BY Столбцы, имеющие большой размер в
  байтах
Столбцы, используемых в ре-  
чения ORDER BY Таблицы, где данные часто меняются,
  но редко считываются
Столбцы, используемых в  
соединении таблиц  

 

Таблица 2.3. Рекомендации по кластеризации индексов

 

Кластеризовать индекс для НЕ кластеризовать индекс для
Первичных ключей, часто используются при поиске, например, номера счетов

Запросов, которые возвращают многочисленные результирующие

наборы

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

Столбцов с высокой селективностью столбцов, используемых в предложениях GROUP BY или ORDER BY

Столбцы, используемых в соединении таблиц

Запросов, которые возвращают небольшие результирующие наборы

внешних ключей

 

Ограничение — это формулировка определенных требований к данным.Ограничения устанавливаются на уровне столбца или таблицы и обеспечивают соответствие данных определенным правилам обеспечения их сохранности.

Среди методов реализации ограничений различают следующие:

PRIMARY KEY — ограничение первичного ключа.

FOREIGN KEY — ограничение внешнего ключа.

UNIQUE — ограничение уникальности, или альтернативного ключа.

CHECK — ограничение проверки.

DEFAULT — ограничение заданных по умолчанию значений.

Правила.

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

 

Способы именования ключей и ограничений. Имена ключей и ограничений в системе SQL Server могут быть произвольными, в пределах общих разрешенного именования. Система генерирует имена следующим образом: сокращенная аббревиатура в виде двух букв + название таблицы + уникальное дополнения:

PK_TableName_Definition — первичный ключ; IX_TableName_Definition — уникальный ключ / индекс; FKTableNameDefinition — внешний ключ; CK_TableName_Definition — ограничение проверки;

 

Такое обозначение является приемлемым и понятным. SQL Server как Definition генерирует уникальное значение, а в графической компоненте разработчика Management Studio задаются порядковые номера.Проектанты баз данных, как правило, расшифровывают его — указывают краткая формулировка его назначения, или указывают имя (имена) столбца (столбцов), на который этот ключ или ограничение распространяется.

2.4.1. Создание первичного ключа таблицы (PRIMARY KEY).

Первичные ключи представляют собой уникальные идентификаторы для каждой ленты. SQL Server дает возможность определить в качестве первичного ключа любой столбец или группу столбцов, которые должны содержать уникальные значения (наличие null- значений не допускается !!!).Наиболее вероятными кандидатами на эту роль являются, как правило, идентифицирующие столбце.Таблица может иметь только один первичный ключ. Кроме того, если используется составной ключ из нескольких столбцов, все значения столбцов объединяются для определения уникальности лент.

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

Рис. 2.6. Создание первичного ключа таблицы СОЗДАНИЕ первичный ключ:

1. В конструктору таблиц выбрать столбец (столбцы),

который (которые) необходимо использовать в качестве первичного ключа; для этого, удерживая клавишу Ctrl, выбрать мышью эти столбцы, нажав слева от их имени (рис. 2.6).

2. Щелкнуть правой клавишей мыши по выбранным столбцам и в контекстном меню выбрать команду Set Primary Key (задать первичный ключ).

3. Сохранить изменения в таблицы.

 

Примечание: при создании первичного ключа SQL Server автоматически создает уникальный кластерный индекс, при условии, что не создано еще ни другого кластерного индекса, или тогда некластерного.

Для первичного ключа иногда необходимо выполнить настройки определенных параметров (рис. 2.7). п.1

Рис. 2.7. Редактирования параметров первичного ключа таблицы НАСТРОЙКИ первичный ключ:

1. На панели инструментов (рис.2.7а) нажать по иконке Manage Indexes and Keys (управление индексами и ключами).

2. В диалоговом окне Indexes / Keys (индексы и ключи) в левой колонке (рис.

2.7 б) выбрать созданный первичный ключ (кроме него могут быть еще и другие ключи).

3. В правой части диалогового окна в поле (Name) [(имя)] скорректировать название первичного ключа в более понятный контекст, например, вместо «1» вписать название столбца.

4. В поле Create As Clustered (создать как кластерный) выбрать необходимый вариант: кластерный или некластерного.

5. В поле Fill Factor (фактор заполнения) при необходимости можно задать значение параметра заполнения.

6. В поле Columns (столбцы) указываются выбранные столбцы для индексирования и их порядок в индексе.Для внесения изменений нажать кнопку с многоточием, расположенную справа от поля; в результате чего отобразится диалоговое окно Index Columns (столбцы индекса) (рис.2.7В). В левой части окна с помощью выпадающих списков поля Column Name (имя столбца) можно изменить количество, вид и порядок вхождения столбцов в первичный ключ.Для каждого столбца справа от него в поле Sort Order (порядок сортировки) можно задать отдельный порядок сортировки индекса как Ascending (по возрастанию), либо как Descending (по убыванию).

7. Закрыть диалоговое окно и сохранить изменения в таблицы.

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

Установление фактора заполнения — это определенный компромисс для производительности: при слишком большом значении, система будет медленнее выполнять операции сложения данных в таблицу, при слишком низком — возможно снижение производительности чтения данных. Значение 100% рекомендуют использовать для статических таблиц, назначении только для чтения.

По умолчанию значение фактора заполнения установлено в 0%, что указывает серверу на автоматическую оптимизацию заполнения индексов, любое другое значение является действительным процентом заполнения. Действия системы при значению 0% в определенной степени аналогичные как при значению 100: SQL Server создает кластерные индексы с заполненными страницами данных и некластерного индексы с заполненными страницами в вершинах индексного дерева. Однако значение 0%, в отличие от 100, дает возможность роста на верхнем уровне дерева индексов. Поэтому 100% заполнения следует использовать только в таблицах, предназначенных только для чтения, и в которые не планируется добавлять данные.

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

 

2.4.2. Создание вторичного ключа или индекса таблицы (UNIQUE KEY / INDEX).

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

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

С другой стороны, создание вручную отдельного уникального индекса тоже обеспечивает уникальность данных для определенного столбца (столбцов) таблицы. Фактически, для обеспечения уникальности данных нет разницы между созданием ограничения UNIQUE и созданием уникального индекса. Это отличие заключается лишь в их семантике: уникальный ключ предназначен для обеспечения ограничений на данные, а индексы предназначены для ускорения доступа к данным.

Основной существенным отличием уникального ключа от уникального индекса является то, что он все таки ключ, и на него могут ссылаться

внешние ключи (FOREIGN KEY) для обеспечения целостности данных. Особенностью же индексов является то, что они могут быть как уникальными, так и не уникальными.

п.2

Рис. 2.8. Создание уникального ключа или индекса таблицы

 

Создание уникального ключи индекс

1. Для определенной таблицы зайти в режим конструктора таблицы; для этого в панели Object Explorer (обозреватель объектов)

для выбранной таблицы базы данных раскрыть узлы как на

рис. 2.7а, и в контекстном меню узла этой таблицы выбрать команду Design (проект).

2. На панели инструментов нажать по иконке Manage Indexes and Keys

3. (управление индексами и ключами).В диалоговом окне Indexes / Keys (индексы и ключи), в левой части окна (рис.2.8б), нажать кнопку Add (добавить).

4. Для вновь ключа / индекса в поле Columns (столбцы) задать столбец

(Столбцы) и их порядок сортировки; для этого следует нажать кнопку с многоточием, расположенную справа от поля (рис. 2.9а) в результате чего отобразится диалоговое окно Index Columns (столбцы индекса).В левой части окна (рис. 2.9б) с помощью выпадающих списков поля Column Name (имя столбца) следует задать количество, вид и порядок вхождения столбцов в ключ / индекс.Для каждого столбца справа от него в поле Sort Order (порядок сортировки) можно задать порядок сортировки как Ascending (по возрастанию), либо как Descending (по убыванию).

б)

Рис. 2.9. Задание параметров уникального ключа или индекса таблицы

5. В поле Type (тип) выбрать (рис.2.9а), что необходимо создать: Unique key (уникальный ключ) или Index (индекс).

6. (только для индекса) В поле Is Unique (является уникальным) определить индекс будет уникальным, или нет.

7. В поле (Name) [(имя)] скорректировать название ключа / индекса в более понятный контекст, например, IX_First_id2.

8. (только для уникального индекса) В поле Ignore Duplicate Keys (игнорировать повторяющиеся ключи) задать режим генерации сообщения об ошибках, в случае добавления повторяющегося значения ключа *.

9. В поле Create As Clustered (создать как кластерный), если еще не создан для таблицы кластерный индекс, то можно установить этот ключ / индекс как кластерный.

10. В поле Fill Factor (фактор заполнения) при необходимости можно задать значение параметра заполнения (подробнее см. Стр. 21).

11. В поле Filegroup or Partition Scheme (имя группы файлов или схемы разделов) выбрать группу файлов, в которой будет храниться ключ / индекс.

12. Закрыть диалоговое окно и сохранить изменения в таблицы.

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

 

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

 

2.4.3. Создание проверочного ограничения (CHECK).

Ограничение CHECK дает возможность задать диапазон допустимых значений столбца или определить его на основе логического выражения. Ограничение CHECK всегда возвращает логическое значение True / False.Проверочный выражение формируется как на основе данных определенного столбца, так и данных других столбцов этой таблицы; ссылаться на столбцы в других таблицах ограничение не может (!!!).SQL Server добавляет в базу только те ленты с данными, для которых ограничения CHECK возвращает значение True.

Ограничение CHECK формируют на основе тех же правил, определенных для логических операций конструкции WHERE языка SQL. Некоторые примеры этих критериев приведены в таблице 2.4.

логическое выражение назначение
 

Number> = 0

Регламентация использования только положительных значений
 

Number BETWEEN 1 AND 12

Обеспечение значений только в определенном диапазону
 

Number <= ID

Регламентация значений относительно значений другого столбца
Name IN ( ‘Петр «,» Вова «,» Василий «) Регламентация допустимых значений
 

 

Birthday <getdate ()

Регламентация дат дней рождений только к текущей даты, возвращается системной функцией getdate ()
 

Email LIKE ‘% @%. [az] [az] [az] «

Обеспечение правильного ввода адрес электронной почты

 

В общем, синтаксис логических выражений походит к аналогичным выражений алгоритмических языков и состоит из логических, арифметических, поразрядных, ленточных операторов, операторов сравнения, системных функций, числовых и символьных данных. Символьные данные должны быть взятыми в одинарные кавычки ( ‘). Кроме этого также используются в выражениях дополнительные логические операторы, например, LIKE, BETWEEN и тому подобное. В таблице 2.5 и 3.1 дано описание для этих элементов.

 

Таблица 2.5. Логические операторы Microsoft SQL Server 2005

 

 

 

AND

Объединяет два условия и возвращает значение True, если обе имеют значение True.

пример:

Number> 12 AND Number <25 значения столбца Number должны быть крупнее 12 и меньше 25

 

 

OR

Объединяет два условия и возвращает значение True, если хотя бы одна из них имеет значение True.

пример:

Number <12 OR Number > 25 значения столбца Number должны быть крупнее 12 или меньше 25

 

NOT

Инвертирует любой логическое выражение. пример:

NOT (Number > 12 AND Number < 25) значения столбца Number НЕ должны быть крупнее 12 и меньше 25

 

 

IS [NOT] NULL

Определяет значение в столбце является null (пустое значение).пример:

Number IS NOT NULL значение столбца Number не должны быть пустыми, то есть null

 

 

 

 

[NOT] IN

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

Number IN (1,3,5) значения столбца Number должно быть одним из значений: 1, 3 или 5

SurName NOT IN ( ‘Дзелендзяк «,» Павельчак «,» Самотий’) значение столбца SurName НЕ должны содержать следующие фамилии: Дзелендзяк, Павельчак, Самотий

NOT SurName IN ( ‘Дзелендзяк «,» Павельчак «,» Самотий’)

условие аналогична предыдущей

 

 

[NOT] BETWEEN

Задает диапазон допустимых значений. Для разделения начальных и конечных значений используется оператор AND. пример:

Number NOT BETWEEN 1 AND 12 значение столбца Number НЕ должно входить в диапазон от 1 до 12, это аналогично условии NOT (Number> 1 AND Number <12)

 

 

[NOT] LIKE

Определяет, указана символьная лента совпадает с заданным шаблоном.Шаблон может включать как обычные символы, так и символы-шаблоны (табл. 2.6). в При сравнении с шаблоном необходимо, чтобы его обычные символы точно совпадали с символами, которые указаны в ленте.Символы-шаблоны могут совпадать с произвольными элементами символьной ленты.

Таблица 2.6.Символы-шаблоны логического оператора LIKE

Символ-шаблон Описание

 

% Заменяет произвольную ленту длиной от нуля и больше символов.

пример:

SurName LIKE ‘% енко «поле SurName может содержать произвольное фамилия, которое заканчивается на енко, например, Шевченко, Петренко, Павленко

Note LIKE «% студент%» поле Note может быть произвольным, однако оно должно

содержать слово студент

(подчеркивание) Заменяет произвольный единичный символ. пример:

Word LIKE ‘ама «поле Word может содержать произвольное слово из 4-х букв с окончанием на ама, например, мама, рама, гамма

Заменяет произвольный единичный символ, указанный в диапазоне, например [am] (любой символ от «a» до «m» включительно), или наборе, например, [adfm] (любой из перечисленных символов ‘a’, ‘d’, «f или ‘m’).

пример:

SurName LIKE «[А-П]% енко» поле SurName может содержать произвольное фамилия, которое заканчивается на енко и начинается на любую букву в промежутке от А до П например, Арченко, Павленко, Марченко, но не Шевченко (!!!)

Word LIKE ‘[ГМР] ама «поле Word может содержать слово из 4-х букв, начинается на одну из букв г, г. или р и заканчивается на ама, например, мама, рама, гамма, но не дама

PostalCode LIKE ‘[0-9] [0-9] [0-9] [0-9] [0-9]’ поле PostalCode должно содержать только п ‘ятизначний почтовый индекс

PostalCode LIKE «[a-zA-Z] [a-zA-Z] [a-zA-Z0-9] [0-358]» поле PostalCode должно содержать только четырехзначный код, формат которого состоит из 2-х произвольных латинских букв, одной произвольной латинской буквы или числа, и обязательные заканчивается цифрой 0, 1, 2, 3, 5 или 8

Заменяет произвольный единичный символ, не входящий в указанный диапазон или набор.

[перечень ]

пример:

Nick LIKE ‘[Л0-9АБ]%’ поле Nick не может содержать псевдо, что начинается цифрой или буквой А Б

 

 

 

При работе оператора LIKE с данными в формате UNICODE (типы данных nchar и nvarchar) учитываются конечные (дополняющие) пробелы.Поэтому нужно это иметь в виду при формировании шаблона, например, для поля Name типа nchar (20) условие Name LIKE ‘[0-9] [0-9] «никогда не будет довольствоваться, так как после 2-х цифр поле содержит еще 18 пробелов, учитываемых.Для исправления некорректной ситуации следует задать более узкий поле шириной в 2 символа (nchar (2)), или изменить на тип данных ANSI char (20), для которого дополняющие пробелы не учитываются.

Символы-шаблоны (% _, [,], л) в качестве символов.Есть два способа идентификации символа-шаблона, как обычного символа. Первый заключается в том, что символ-шаблон необходимо поместить в квадратные скобки, например, Nick LIKE

«% F [-] 15%» удовлетворяет произвольное вхождение ленты «F-15ьу поле.

Второй способ заключается в использовании экранирующих символов ключевого слова ESCAPE (экранирующим может быть произвольный символ), например, Nick LIKE ‘% F! -15% «ESCAPE»!«Результат аналогичный предыдущем.

Если в шаблоне LIKE после экранирующего символа нет ни одного символа, то шаблон недопустим, и операция вернет значение False.Если символ после экранирующего символа не является символом-шаблоном, тогда экранирующий символ иг- норуеться и рассматривается, как обычный.

Рис. 2.10. Создание проверочного ограничения CHECK СОЗДАНИЕ ОГРАНИЧЕНИЕ CHECK:

1. В режиме конструктора рабочей таблицы на панели инструментов нажать по иконке Manage Check Constraints (управление проверочными ограничениями) (рис.2.10).

2. В диалоговом окне Check Constraints (проверочные ограничения), в левой части окна (рис.2.10б), нажать кнопку Add

(Добавить).

3. Для вновь ограничения в поле Expression (выражение) вписать логическое выражение; для громоздких выражений целесообразно

воспользоваться текстовым окном, вызывается при нажатии кнопки с многоточием, расположенной справа от поля.

4. В поле (Name) [(имя)] скорректировать название ограничения в более понятный контекст.

5. В поле Enforce For Replication (принудительная репликация) указать, действует ограничение, когда агент репликации выполняет

вставка или изменение данных в таблице.

6. В поле Enforce For INSERTs And UPDATEs (принудительное использование для запросов INSERT и UPDATE) указать, действует ограничение при вставке или изменении данных в таблицы.

7. В поле Check Existing Data On Creation Or Re-Enabling

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

8. Закрыть диалоговое окно Check Constraints (проверочные ограни- ния) и сохранить изменения в таблицы.

 

Синтаксическая структура ограничений преимущественно рассчитана на тот случай, когда они создаются одновременно с созданием таблиц. Но иногда возникают обстоятельства, когда для уже существующей таблицы с данными необходимо создать ограничения CHECK, которое не позволяло, например, введение отрицательных значений, но уже существующие ленты с данными при этом следует оставить. И поэтому, чтобы ввести в действие новое ограничение, но исключить его применение к уже существующим данным, необходимо задать значение false в поле Check Existing Data On Creation Or Re-Enabling (п.7).

 

2.4.4. Создание реляционных связей с помощью внешних ключей (FOREIGN KEY).

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

Основным ограничением отношение является целостность ссылки. Оно определяет, что каждое значение (не null) внешнего ключа, должно ссылаться на определенное существующее значение первичного (уникального) ключа.Другими словами, если кто-то один ссылается на другого, то тот «другой» должен существовать, иначе система выдаст ошибку.

Такой способ ограничения дает возможность строить разнообразные отношения между данными в базе данных:

• отношение «один к многих »;

• отношение «ко многих »;

• обратные (рекурсивные) отношение.

 

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

Рис. 2.11. Представление отношение «один ко многим»

 

На рис. 2.11 приведены реализацию 2-х связей «один ко многим». В этом примере таблица-предок содержит записи с перечнем групп 4-го курса кафедры КСА. Таблица-нащадок1 содержит записи с фамилиями старост групп, а таблица-нащадок2

— записи с фамилиями студентов всего потока.Для таблиц установлении первичные ключи для таких полей: GroupName, Leader, Student.Для таблицы-предка задано уникальный ключ по полю ID, а для таблиц-потомков определены, соответственно, внешние ключи по собственным полях ID, относительно этого уникального ключа.Отметим, что связь предок-потомок 1 соответствует отношению «один к одному», потому что в одной группе может быть только один староста.Другой связь, предок-нащадок2, полноценно реализует отношение «один к многих ».

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

Различают два класса отношений — обязательные и необязательные.

Обязательное отношение требует миграции поля таблицы-предка в экземпляр потомка.При реализации этого отношения мигрирующий (внешний) ключ не должен быть null (!!!).То есть каждое поле таблицы-потомка должно обязательные принадлежать определенному полю таблицы-предка, как на рис. 2.11.

Дополнительное отношение предполагает, что потомок не всегда должен иметь значение для мигрирующего (внешнего) ключа.В этом случае поле внешнего ключа может принимать значения null.На рис. 2.12 показано, что таблица-потомок содержит фамилии, которые не относятся ни к одной из групп 4-го курса.

 

 

потомок

26

 

 

Рис. 2.12. Дополнительное отношение «один ко многим»

Рис. 2.13. Представление отношение «многие ко многим»

 

Обратное (рекурсивное) отношения. Это отношение моделируется не в отношении другой таблицы с данными, а в пределах той же. Его еще иногда называют иерархическим, так как оно дает возможность моделировать древовидные структуры данных (рис. 2.14).

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

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

Рис. 2.14. Иерархическая структура подразделения

 

 

 

Рис. 2.15. Представление обратного отношения

 

Обратное отношение по своей сути является обычным отношением «один ко многим», но только в пределах той же таблицы. При этом значение первичного (уникального) ключа мигрирует в поле внешнего ключа. Для таблицы (рис. 2.15), реализующей иерархию определенного подразделения (рис. 2.14), является определены следующие ключи: первичный — для поля Post, уникальный — для поля ID, внешний — для поля MasterlD; поле ID является авто-инкрементного; обратное отношение здесь реализует связь ID-MasterID.

Другой важный момент реализации обратного (рекурсивного) отношение связанный с внесением в таблицу первой записи. Поскольку внешний ключ требует миграции в него значение с другой записи, то сразу же и возникает дилемма, где его взять. Решение этой дилеммы может быть следующее:

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

б) Столбец для внешнего ключа должен позволять ввод null- значения.Таким образом с появится возможность ввести первую ленту, имеет null -значение в столбце внешнего ключа, и тем сам избежать необходимости принудительного введения первой ленты (рис.2.15 б).

 

Рис. 2.16. Создание внешнего ключа таблицы

 

СОЗДАНИЕ внешнего ключа:

1. В панели Object Explorer (обозреватель объектов) для выбранной таблицы рабочей базы данных раскрыть узлы как на рис.2.16, и в контекстном меню узла Keys (ключи) выбрать коман- ду New Foreign Key … (создать внешний ключ), после чего появится диалоговое окно Foreign Key Relationships

(Отношение внешнего ключа). Далее следует задать значение для параметров внешнего ключа.

2. Задать механизм связей для внешнего ключа в контексте отношения «один ко многим».      Для этого в поле Tables And Columns Specification (спецификация таблиц и столб- цев) нажать кнопку с многоточием, расположенную справа от поля (рис.2.16б).     В результате появится диалоговое окно Tables and Columns (таблицы и столбцы) (рис.2.16в). Далее

следует выбрать столбцы для внешнего и первичного (уникального) ключей:

a. из выпадающего списка выбрать название таблицы, где раз- щений первичный (уникальный) ключ;

b. из выпадающего списка выбрать столбец (столбцы) с первичным (уникальным) ключом;

c. из выпадающего списка выбрать столбец (столбцы) для внешнего ключа;

Нажать кнопку OK.

3. В поле Check Existing Data On Creation Or Re-Enabling

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

4. В поле (Name) [(имя)] скорректировать название внешнего ключа в более понятный контекст.

5. Значение поля Enforce For Replication (принудительная репликация) указывает, используется данное ограничение, когда агент репликации выполняет в таблице вставки, изменение или удаление.

6. Значение поля Enforce Foreign Key Constraint (принудительное

ограничения внешнего ключа) позволяет отменить действие внешнего ключа по обеспечению целостности данных; для его отмены следует установить значение поля в false.

7. В категории INSERT And UPDATE Specification (специфи- кация INSERT и UPDATE) задаются правила для удаления и изменения связи этого отношение *:

a. в поле Delete Rule (удалить правило) выбрать механизм

действия SQL Server при попытке пользователя удалить поле с записью предка, мигрирует в экземпляр потомка;

b. в поле Update Rule (обновить правило) выбрать ме ханизм действия SQL Server при попытке пользователя обновить

поле с записью предка, мигрирует в экземпляр потомка.

8. Сохранить изменения в таблицы.

 

* Особенностью внешних ключей, в отличие от других, является то, что они двунаправленные: обеспечивают, как правильность ввода значений в поля экземпляра потомка в соответствии с предка, так и обеспечивают проверку изменения значения при действиях над записями в таблице-предка (что предотвращает появление в таблице-потомка «висячих лент», которые потеряли связь с предком). По умолчанию SQL Server «защищает» от удаления (или изменения значения ключа) те ленты таблицы-предка, с которыми они имеют связки в таблице-потомка.  В этом случае для удаления такой записи,

 

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

Соответственно, поля Delete Rule (удалить правило) и Update Rule (обновить правило) могут принимать следующие значения:

No Action (без действий) — формирует сообщение об ошибке, о невозможности операции удаления или обновления для лент со значением ключа, мигрирует в экземпляр потомка; для операции удаления или обновления система выполняет откат;

Cascade (каскадом) — удаляет (обновляет) все ленты, участвующих в свя связям внешнего ключа;

Set Null (задать Null) — задает значение null, если все столбцы внешних ключей в таблице могут быть установлены в null;

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

 

 

2.5. Создание диаграмм для баз данных.

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

Перед такими средствами формирования ER-диаграмм ставят, как правило, две задачи:

• подготовка сценария для создания базы данных на основе результатов схематической структуры данных;

• обратное проектирование базы данных, то есть подключение к существующей базе, ее сканирования и формирования диаграммы, в которой правильно отображаются все ее объекты (таблицы, индексы, ключи и т.д.).Отметим, что инструментарий Management Studio реализует эти задачи не в полной мере. Для этого существуют отдельные инструментальные средства высоко класса (при этом их стоимость может достигать и до 15 тыс. $ За одно рабочее место). Однако, даже существующий в Management Studio инструментарий дает возможность, как проектировать с «нуля» базу данных в виде ER-диаграммы, так и воспроизводить ER- диаграмму для уже существующей базы данных.

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

 

Рис. 2.17. Создание диаграммы базы данных Создание диаграммы БАЗЫ ДАННЫХ:

1. В панели Object Explorer (обозреватель объектов) для выбранной базы данных раскрыть узел (рис.2.17) и выбрать пункт Database Diagrams (диаграммы баз данных).Если этот пункт выбирается впервые, то система выдаст диалоговое окно об отсутствии определенных объектов поддержки, поэтому следует нажать кнопку Yes (да) для их создания.Далее нажать правой клавишей мыши по пункту Database Diagrams и в контекстном меню выбрать команду New Database Diagram (создать диаграмму базы данных), в результате чего с появится диалоговое окно Add Table (добавление таблицы).

2. В диалоговом окне Add Table (добавление таблицы) добавить все имеющиеся в базе данных таблицы в диаграмму (рис. 2.17б).

3. После того, как система автоматически расположит все таблицы со свя связями, следует отформатировать вид самой диаграммы: расположить таблицы в лучшем для восприятия виде и задать для них необходимый формат отображения.Для изменения формата таблицы нажать правой клавишей мыши по выбранной таблицы и в контекстном меню выбрать команду, например, Table View (представление таблицы) — Standard (стандартное) (рис.2.17в), после чего вид таблицы будет, как на рис. 2.17г.

4. Для переноса готовой диаграммы в другие графически-текстовые программы, например, Microsoft Word или Excel, следует нажать правую клавишу мыши на чистом поле диаграммы и в контекстном меню выбрать команду Copy Diagram to Clipboard (копировать диаграмму в буфер обмена) (рис. 2.17д).

5. При необходимости диаграмму сохранить.

 

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

 

2.6. транспортировка базы данных.

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

А. Отключить готовую базу данных от подключения к SQL Server, скопировать на носитель и разместить на жестком диске другого ком-п периферия, после чего снова присоединить ее к серверу SQL Server.40

Рис. 2.18. Отключение базы данных

Отключение БАЗЫ ДАННЫХ:

1. В панели Object Explorer (обозреватель объектов) выбрать имя базы данных правой кнопкой мыши нажать по ней, после чего выбрать в контекстном меню команду Tasks (задачи) — Detach … (отсоединить …) (рис.2.18а), в результате чего появится диалоговое окно.

2. В диалоговом окне Detach Database (отсоединение базы данных) следует нажать кнопку подтверждения OK (рис. 2.18б).

Рис.2.19. Присоединение базы данных

ПРИСОЕДИНЕНИЕ БАЗЫ ДАННЫХ:

1. В панели Object Explorer (обозреватель объектов) нажать правой клавишей мыши по узлу Databases (базы данных) и в контекстном меню выбрать команду Attach … (присоединить …) (рис. 2.19).

2. В диалоговом окне Attach Databases (присоединение баз данных) нажать кнопку Add … (добавить …) (рис.2.19б), в результате чего появится окно с проводником каталогов

_ Locate Database Files (расположение файлов баз данных).

3. В проводнике каталогов (рис.   2.19в) указать путь к раз- ние файла базы данных и подтвердить свой выбор напором

кнопки OK.

4. Нажать кнопку OK в окне Attach Databases (присоединение баз данных) для подтверждения общего выбора.

Для спроектированной базы данных с помощью автоматизированного побудовувача сценариев Management Studio сгенерировать SQL-код, как для создания самой базы данных, так и для создания каждого ее объ объекта (схемы, таблицы, первичного ключа, уникального ключа, индекса, внешнего ключа и т.д.).

 

3. дополнительные сведения

 

Оператор / функция описание
арифметические операторы
+ (Сложение) Выполняет операцию сложения двух чисел
+ (Плюс) Возвращает положительное значение числового выражения
+ (Сцепление лент) Сцепляет один или несколько символов или их комбинацию лент в одно выражение
— (вычитание) Выполняет операцию вычитания одного числа от другого
— (отрицание) Возвращает отрицательное значение числового выражения
* (Умножение) Выполняет операцию умножения двух чисел
/ (диленные) Выполняет операцию деления одного числа на другое
% (Модуль) Возвращает остаток от деления двух целых чисел
поразрядные операторы
& (Поразрядное И) Выполняет операцию AND над разрядами 2-х чисел
| (Поразрядное ИЛИ) Выполняет операцию OR над разрядами 2-х чисел
Л (поразрядное исключительное

ИЛИ)

Выполняет операцию XOR над разрядами 2-х чисел
~ (Поразрядное НЕ) Выполняет операцию NOT над разрядами целого числа
Операторы сравнения
= (Равно) Выполняет операцию сравнения на предмет равенства значений двух выражений
<>

!= (Не равно)

Выполняет операцию сравнения на предмет неровности значений двух выражений
<(Меньше) Выполняет операцию сравнения, которая определяет, значение слева есть меньше значения дело
> (Больше) Выполняет операцию сравнения, которая определяет,

  значение слева есть больше значения дело
<= (Меньше или равно) Выполняет операцию сравнения, которая определяет, значение слева есть меньше или равным значению дело
> = (Больше или равно) Выполняет операцию сравнения, которая определяет, значение слева является большим или равным значению дело
математические функции
ABS (expr) Возвращает положительное, абсолютное значение выражения.
ACOS (expr) Возвращает значение угла в радианах, косинус которого является заданный expr (значение выражения должно находиться в пределах [-1; 1]).
ASIN (expr) Возвращает значение угла в радианах, синус которого является заданный expr (значение выражения должно находиться в пределах [-1; 1]).
ATAN (expr) Возвращает значение угла в радианах, тангенс которого является заданный expr (значение выражения должно находиться в пределах [-1; 1]).
CEILING (expr) Возвращает ближайшее целое число, являющееся большим или равным значению expr, то есть выполняет закругления вверх.
COS (expr) Возвращает косинус угла, заданного expr в радианах.
COT (expr) Возвращает котангенса угла, заданного expr в радианах.
DEGREES (expr) Превращает значение угла expr с радиан в градусы.
EXP (expr) Возвращает экспоненту значение expr.
FLOOR (expr) Возвращает ближайшее целое число, является меньшим или равным значению expr, то есть выполняет закругления вниз.
LOG (expr) Возвращает натуральный логарифм для значения expr.
LOG10 (expr) Возвращает десятичный логарифм для значения expr.
PI () Возвращает значение константы же.
POWER (expr, power) Осуществляет подъем expr в степень power.
RADIANS (expr) Превращает значение угла expr из градусов в радианы.
RAND ([seed]) Возвращает случайное число с плавающей запятой в интервале от 0 до 1, может содержать необязательный цило- численный параметр seed для рандомизации генератора случайных чисел, если число не указано, тогда это значение формируется системой на основе системного времени.
ROUND (expr, length [,

function])

Возвращает значение для expr, закругленное к указанной длины или точности параметром length.Если length положительное число, то expr округляется до количества цифр после запятой, что указанное length.Если отрицательное — закругления expr осуществляется слева от точки.Если значение function отсутствует или является равным 0, expr округляется, если же отличное от нуля, тогда expr

  Усика-ется. Примеры: ROUND (123,5782,2) — 123,5800  
  ROUND (123,5782, -2) — 100,0000 ROUND (123,5782,

2, 1) — 123,5700

SING (expr) Возвращает знак числа expr. Если значение положительное — возвращает 1, нулевое — 0, отрицательное — 1.
SIN (expr) Возвращает синуса угла, заданного expr в радианах.
SQRT (expr) Возвращает квадратный корень expr.
SQUARE (expr) Преподносит в квадрат expr.
TAN (expr) Возвращает тангенса угла, заданного expr в радиационная нах.
ленточные функции
ASCII (expr) Возвращает ASCII-кода для крайнего левого символа expr.
CHAR (expr) Возвращает символ согласно значение ASCII-кода expr.
CHARINDEX (expr,

string [, start])

Выполняет поиск подстроки expr в ленте string, начиная с символа start, и возвращает начальную позицию.Если start отсутствует (или неположительные число), то поиск начинается с начала ленты string.
DIFFERENCE (expr1,

expr2)

Возвращает число в диапазоне 0-4, согласно которому можно судить о совпадении звучания двух лент.
LEFT (expr, int) Возвращает int символов с начала ленты expr.
LEN (expr) Возвращает длину (кол-во символов) ленты expr.
LOWER (expr) Превращает все символы ленты expr в нижний регистр.
LTRIM (expr) Удаляет из ленты expr все начальные пробелы.
NCHAR (int) Возвращает символ UNICODE согласно значение int.
PATINDEX ( ‘% pat% «,

expr)

Выполняет в ленте поиск подстроки, соответствующей за- данном шаблона ‘% pat% «.Возвращает начальную позицию найденной подстроки.
QUOTENAME ( ‘ch_str «

[, «Quote character ‘])

Возвращает строку UNICODE с добавлением разделителей, превращая ‘ch str’ в правильный код с разделителем Microsoft SQL Server 2005.
REPLACE (expr1, expr2, expr3) Заменяет все вхождения expr2 в exprl на expr3.
REPLICATE (expr, int) Повторяет ленту expr указанное числом int раз.
REVERSE (expr) Возвращает строку, записанную наоборот к expr.
RIGHT (expr, int) Возвращает int символов, расположенных справа в expr.
RTRIM (expr) Удаляет из ленты expr все конечные пробелы.

 

 

SOUNDEX (expr)

Превращает expr в чотирисимвольний код, ис ется для нахождения подобно звучащих слов или имен.Первый символ кода является первым символом expr, а 2-4 символы — цифрами.Гласные в expr игнорируются, если только не являются первыми буквами expr.
SPACE (int) Возвращает часть ленты состоит из int пробелов

STR (num [, length, decimal]) Превращает выражение с десятичной запятой num в ленту.Параметр length задает общую длину, включая десятичную запятую, цифры и пробелы.Параметр decimal определяет количество знаков справа от десятичной запятой.
STUFF (expr1, start, length, expr2) Удаляет в ленте exprl, начиная с позиции start, число

length символов, а взамен вставляет ленту expr2.

SUBSTRING (expr,

start, length)

Возвращает часть ленты expr длиной length,

начиная с позиции start.

UNICODE (expr) Возвращает UNICODE-кода для крайнего левого символа expr.
UPPER (expr) Превращает все символы ленты expr в верхний регистр.
Функции для работы с датой и временем
DATEADD (datepart, number, date) Добавляет к указанной даты date определенное число number дней, часов, минут и тому подобное.С помощью аргумента datepart указывается, какую часть даты необходимо изменить.
DATEDIFF (datepart, startdate, enddate) Возвращает разницу между двумя датами startdate и enddate, в заданных аргументом datepart единицах измерения времени.
DATENAME (datepart, date) Возвращает date в ленточном формате, согласно спецификации аргумента datepart.
DATEPART (datepart, date) Выделяет из даты date определенную часть в соответствии с аргумента datepart, и возвращает в числовом формате.
DAY (date) Возвращает числовое значение дня месяца.
GETDATE () Возвращает текущую системную дату и время.
GETUTCDATE () Возвращает текущее значение даты и времени по Гринвичу, который выводится из текущего местного времени с учетом часового пояса в операционной системе компьютера.
MONTH (date) Возвращает числовое значение номера месяца в году.
YEAR (date) Возвращает числовое значение года.
Значение аргумента datepart:

Описание значения сокращенное значение year

год yy, yyyy

квартал quarter qq, q

месяц month mm, m

номер дня в году dayofyear dy, y

день месяца day dd, d

неделю week wk, ww

день недели weekday dw, w

час hour hh

минута minute mi, n

секунда миллисекунда second ss, s millisecond ms

 

4. порядок выполнения работы

  1. Детально изучить представленный в инструкции справочный теоретический материал для работы.
  2. Согласно варианту задания (таблица 4.1), дома разработать детальный проект указанной базы данных, и реализовать его с помощью графического инструмента Management Studio и проверить на работоспособность.
  3. Завершенный проект базы данных на компьютере продемонстрировать преподавателю.
  4. По результатам выполненной работы оформить отчет и сдать его.Таблица 4.1. Задание к лабораторной работы

 

№ п / п задания

1. Создать базу данных (БД).

2. В этой БД создать схему с названием, соответствующим фамилии студента.    Все вновь объекты должны принадлежать этой схеме.

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

4. Внести в каждую таблицу БД как минимум по 10 абстрактных записей (если количество конечно, не ограничивается логикой).

5. Создать диаграмму для полностью спроектированной БД.   Таблицы должны отображаться на диаграмме в стандартном режиме (имя столбца, тип данных, позволить знач. Null) (рис.     2.17г).     Связки между таблицами откорректировать так, чтобы указывали между какими именно столбцами они устанавливают связь.

Обозначения: PK — первичный ключ; UI — уникальный индекс; I. — неуникальный индекс; CHECK — поверочное ограничения.

1 БД электронного ресурса с книгами (рис. 4.1). PK — Пользователи — Ник; Книги Название.

I. — Пользователи-Место рождения; Пользователи-Фамилия + Имя + Во отчество; Пользователи-Рейтинг.CHECK — Ссылка-Электронный адрес книги должен начинаться с «http: // www.» ; Значение Пользователи-Рейтинг должно быть в пределах [0; 5], при этом тип данных допускает только два разряда после запятой; для Книги УДК обеспечить формат:

  2 произвольные буквы + ‘.’ + 3 цифры.

Формула — для таблицы Пользователи создать поле, объединяющее в себе Фамилия, Имя и Отчество; для таблицы Пользователи создать поле, выводило бы количество лет пользователю, как разницу между текущей системной датой и датой рождения.

2 БД семейного дерева (рис. 4.2).

PK — Фамильное дерево-Фамилия + Имя; Семейные супутники- Фамилия

+ Имя; Фамильные ценности-Название ценности. I. — Семейные спутники -дата рождения; Фамильное дерево-Дата смерти.

UI — Фамильное дерево-номер кредитной карты.CHECK — Семейные спутники -Фамилия не может заканчиваться на «ов» или «ова»; семейные

 

  спутники -дата рождения и Семейные спутники -дата смерти не могут быть больше текущую дату; для Фамильные ценности-код в каталоге ценностей обеспечить формат: 1 буква: A, M или Z + 5 цифр + 2 произвольные буквы.

Формула — для таблицы Фамильные ценности создать поле, содержащее определенный коэффициент, который рассчитывается по следующей формуле: SJN (минимальная стоимость) + COS (максимальная стоимость); для таблицы Фамильное дерево создать поле, объединяющее в себе Фамилия и Имя.

3 БД студентов, обучающихся на кафедре КСА (рис. 4.3). PK — студенты-Фамилия + Имя + Отчество, Город-город;
Задолженности-Название предмета.

I. — Студенты-Рейтинг, Законченный учреждение среднего образования- Ф.И.О директора школы.

CHECK — Студенты-номер студенческого билета обеспечить формат: ‘A’ + 8 цифр + произвольная буква, кроме S; Студенты-Электронный адрес должен обязательно содержать символ ‘@’; разница между Студенты-Дата поступления и Студенты-Дата рождения должна быть не менее 16 лет.Формула — для таблицы Студенты создать поле, выводило бы значение Номер студенческого билета + ‘-‘ + год поступления; для таблицы Студенты создать поле, объединяющее в себе Фамилия, Имя и Отчество.

4 БД сотрудников кафедры КСА (рис. 4.4).

PK — Сотрудники-Фамилия + Имя + Отчество; Дисциплины- Название дисциплины.

I. — Сотрудники-Трудовой стаж;

UI — Сотрудники-серия и номер паспорта; Дисциплины-код.

CHECK — значение Сотрудники-Трудовой стаж не может быть больше разницу между текущей датой и датой рождения; значение дисциплины-номер семестра должно быть в пределах [1; 10];

Формула — для таблицы Сотрудники создать поле, объединяющее в себе Фамилия, Имя и Отчество; для таблицы Сотрудники создать поле, содержащее определенный код, который вычисляется по формуле: SQRT (год рождения) + С08 (число месяца) — EXP (№ месяца).

5 БД аптечных учреждений г..Новоселки (рис. 4.5). PK — Спивробитники- Фамилия + Имя + Отчество; аптечная
учреждение-Название; Перечень лекарств-Название.

I. — Сотрудники-серия и номер паспорта.

UI — Сотрудники-Идентификационный номер; Перечень лекарств-код министерства.

CHECK -для Спивробитники- Идентификационный номер обеспечить формат: ’10 цифр ‘; Первая буква Перечень ликарств- Код министерства должна совпадать с первой буквой Перечень лекарств-Название.

Формула — для таблицы Сотрудники создать поле, объединяющее в себе Фамилия, Имя и Отчество; для таблицы Сотрудники создать поле, состоящее из: фамилии + 2-х последних цифр идентификационного номера; для

 

  таблицы Аптечная учреждение создать поле, содержащее значение поля Адрес вебстраницы, но с усеченными в начале и в конце случайными пробелами.
6 БД электронного ресурса с книгами (рис. 4.1). PK — Користувачи- Фамилия + Имя + Дата рождения; книги-
Название.

UI — Пользователи-Логин.

I. — Пользователи-Место рождения; Пользователи-Место

  проживания.

CHECK — Пользователи -Фамилия не может заканчиваться на «др» или «и на ‘; в поле Пользователи-Место проживания допускается ввод только следующих значений: ‘Львов’, ‘Киев’, ‘Донецк’ и ‘Одесса’.Формула — для таблицы Книги создать поле, объединяющее в себе автора и название; для таблицы Пользователи создать поле, выводило бы определенное число с плавающей запятой на основе Даты рождения, и которое формируется по следующей формуле: COS (piK рождения) + SIN (HOMep месяца в году) + TAN (deHb месяца), причем год, месяц и день отражают значение в градусах.

7 БД семейного дерева (рис. 4.2).

PK — Фамильное дерево-Фамилия + Имя; Семейные спутники — Фамилия + Имя; Фамильные ценности-Название ценности.

I. — Семейные спутники -место рождения; фамильное дерево-

Номер кредитной карты.

UI — Фамильные ценности кодом в каталоге ценностей.CHECK — для Фамильные дерево -номер кредитной карты обеспечить формат 4 цифры + пробел + 4 цифры + пробел + 4 цифры + пробел + 4 цифры; значение Фамильные ценности-Максимальная стоимость не может быть меньше значения Фамильные ценности- Минимальная стоимость, а значение Фамильные ценности-Ориентировочная стоимость должно находиться, соответственно, между максимальной и минимальной ценностями.

Формула — для таблицы Фамильное дерево создать поле, отражающий значение в следующем формате: Имя + пробел + Фамилия + ‘родился’ + номер дня в году + «дня» + год + «года Божьего ‘; для таблицы Фамильные ценности создать поле, содержащее чотирисимвольний код созвучности названий для поля Название ценности (функция SOUNDEX ()).

8 БД студентов, обучающихся на кафедре КСА (рис. 4.3).

PK — Студенты-номер студенческого билета; Законченный учреждение среднего образования-Название заведения; Задолженности-Название

предмета.

UI — Область кодом области.

I. — Студенты-Рейтинг, Законченный учреждение среднего образования- телефон.

CHECK — для Регион-код области обеспечить формат ввода:

  первая буква поля Область + 2 цифры; Студенты-номер студенческого не должен начинаться с «99».Формула — для таблицы Студенты создать поле, которое отражало бы во сколько лет студент поступил на кафедру (как

  разницу между годом поступления и годом рождения) для таблицы Законченный учреждение среднего образования создать поле, отражающий значение в таком формате: «Директор» + пробел + Название заведения + пробел + Ф.И.О. директора заведения.
9 БД сотрудников кафедры КСА (рис. 4.4).

PK — Сотрудники-серия и номер паспорта; Дисциплины- Название дисциплины.

I. — Дисциплины-номер семестра.

UI — Сотрудники-Фамилия + Имя + Отчество; Дисциплины-код.

CHECK — для Сотрудники-серия и номер паспорта обеспечить формат ввода: 2 буквы + пробел + 6 цифр; в поле Сотрудники -Имя допускается ввод только таких имен: «Андрей», «Оля», «Владимир» и «Оксана».Формула — для таблицы Сотрудники создать поле, выводит только номер паспорта; для таблицы Сотрудники создать поле, выводит год в котором сотрудник устроился на работу, как разницу между текущим годом и значением трудового стажа.

10 БД аптечных учреждений г..Новоселки (рис. 4.5).

PK — Спивробитники- Идентификационный номер; Аптечная учреждение-Название; Перечень лекарств-код министерства.I. — Сотрудники-Дата рождения.

UI — Сотрудники-Фамилия + Имя + Отчество; Перечень ликарств- Название.

CHECK — для Сотрудники-серия и номер паспорта обеспечить формат ввода: 2 буквы + пробел + 6 цифр; в поле Сотрудники -Имя допускается ввод только таких имен: «Василий», «Иван», «Галина» и «Александра».

Формула — для таблицы Сотрудники создать поле, выводит только серию паспорта; для таблицы Сотрудники создать поле, состоящее из: Фамилии и Имени + 2-х

первых цифр идентификационного номера.

11 БД электронного ресурса с книгами (рис. 4.1). PK — Пользователи-Логин; Книги Название.

I. — Пользователи-Место проживания; Пользователи-Фамилия + Имя + Во отчество; Книги УДК.

CHECK — Пользователи -Логин не должен начинаться с цифры и быть меньше 6 символов; значение Користувачи- Рейтинг должно находиться в пределах [1; 10].Формула — для таблицы Книги создать поле, объединяющее в себе автора и название; для таблицы Пользователи создать поле, выводит подряд первые буквы полей Фамилия, Имя, Отчество, а затем выводит символ ‘-‘ и значение Рейтинг.

12 БД семейного дерева (рис. 4.2).

PK — Фамильное дерево-Фамилия + Имя; Семейные спутники — Фамилия

+ Имя; Фамильные ценности-код в каталоге ценностей.

I. — Семейные спутники -место рождения; фамильное дерево-

   
Место рождения.

UI — Фамильные ценности -Название ценности.

CHECK — в поле Фамильное дерево -место смерти допускается ввод только следующих значений: ‘с.Стрелки ‘,’ с. Подкопана «,» с. Оврагов ‘; поле Фамильное дерево-Дата рождения не может быть больше текущую дату.

Формула — для таблицы Фамильные ценности создать поле, выводить следующее значение: «Название ценности:» + Название ценности; для таблицы Фамильное дерево создать поле, выводить цифровой код согласно такого арифметического выражения: Год рождения + номер месяца рождения + день месяца рождения.

13 БД студентов, обучающихся на кафедре КСА (рис. 4.3).

PK — группы-Название группы + Номер группы; Город-город; Студенты- Номер студенческого билета.

UI — Студенты-Фамилия + Имя + Отчество.

I. — область-код области; Законченный учреждение среднего образования-Ф.И.О. директора школы.

CHECK — для Законченный учреждение среднего образования-телефон обеспечить формат (код города + телефон): ‘(‘ + 3 цифры + ‘)’ + 3 цифры + ‘-‘ + 2 цифры + ‘-‘ + 2 цифры; в поле Студенты -Имя допускается ввод только таких имен: «Светлана», «Петр», «Оля», «Тарас», «Василий», «Антон».

  Формула — для таблицы Студенты создать поле, выводит подряд первые буквы полей Фамилия, Имя, Отчество, а затем выводит символ ‘-‘ и значение Дата поступления; для таблицы Законченный учреждение среднего образования создать поле, которое будет выводить только сам номер телефона (7 цифр), без разделительных рисков и кода области.
14 БД сотрудников кафедры КСА (рис. 4.4).

PK — Сотрудники-Фамилия + Имя + Отчество; Должность-Название должности.

I. — Сотрудники-Дата рождения; Дисциплини- Номер дисциплины.

UI — Сотрудники-серия и номер паспорта.CHECK — для Сотрудники-серия и номер паспорта обеспечить формат ввода: 2 буквы + пробел + 6 цифр; Сотрудники -Фамилия не может заканчиваться на «вой» или «ва».Формула — для таблицы Сотрудники создать поле, выводит сумму следующих значений: Трудовой стаж + год рождения; для таблицы Сотрудники создать поле, выводит модификацию значение Фамилия, то есть последнюю букву фамилии заменяет на соседней символ, согласно кодовой таблицы (ASCII или UNICODE).

15 БД аптечных учреждений г..Новоселки (рис. 4.5).

PK — Спивробитники- Серия и номер паспорта; Улица — Название улицы; Зона влияния-Название.

I. — Перечень лекарств-код министерства.

UI — Сотрудники-Фамилия + Имя + Отчество; Спивробитники- Идентификационный номер.

  CHECK — Спивробитники- Идентификационный номер не может заканчивать двумя нулями; для Перечень ликарств- Код министерства обеспечить формат ввода: 2 произвольные буквы, кроме Ми П + ‘-‘ + 3 цифры + ‘-‘ + 2 цифры.

Формула — для таблицы Сотрудники создать поле, выводит следующее значение: «Идент.№ ‘+ Идентификационный номер; для таблицы Сотрудники создать поле, выводило бы определенное число с плавающей запятой на основе Даты рождения, и которое формируется по следующей формуле: SQRT (год рождения) + TAN (номер месяца в году) + COS (день месяца), причем месяц и день отражают значение в радианах.

16 БД электронного ресурса с книгами (рис. 4.1). PK — Пользователи-Логин; Книги Название.

I. — Пользователи-Место рождения; Пользователи-Фамилия + Имя + Во отчество; Пользователи-Рейтинг.CHECK — Ссылка-Электронный адрес книги должен обязательно содержать ленту «www.» и ‘.ua’; Значение Пользователи-Рейтинг должно быть в пределах Г1; 101, при этом тип данных допускает только один разряд после запятой; для Книги- УДК обеспечить формат: 1 кириллическая буква + 2 цифры + ‘.’ + 3 цифры.

Формула — для таблицы Пользователи создать поле, объединяющее в себе Фамилия, Имя и Отчество; для таблицы Пользователи создать поле, выводило бы количество лет пользователю, как разницу между текущей системной датой и датой рождения.

17 БД семейного дерева (рис. 4.2).

PK — Фамильное дерево-номер кредитной карты; Семейные супутники- Фамилия + Имя; Фамильные ценности-Название ценности.

I. — Семейные спутники -место рождения; фамильное дерево-

Дата смерти.

UI — Фамильное дерево-Фамилия + Имя.

CHECK — Семейные спутники -Фамилия не может начинаться на букву ‘A’ и заканчиваться на «др» или «и на ‘; Семейные спутники — Дата рождения и семейные спутники-Дата смерти не могут быть больше текущую дату; для Фамильные ценности-код в каталоге ценностей обеспечить формат: 1 произвольная буква, кроме F + 3 цифры + ‘/’ + 2 произвольные буквы.Формула — для таблицы Фамильные ценности создать поле, содержащее определенный коэффициент, рассчитывается по такой формуле: СО $> (минимальная стоимость) +

$> Ш (максимальная стоимость); для таблицы Семейные спутники создать поле, объединяющее в себе Фамилия и Имя.

18 БД студентов, обучающихся на кафедре КСА (рис. 4.3). PK — студенты-Фамилия + Имя + Отчество; Город-город;
Область-область.

I. — Студенты-Рейтинг; Законченный учреждение среднего образования- Ф.И.О директора школы.

  CHECK — Студенты-номер студенческого билета обеспечить формат: произвольная буква, кроме S, E, L + 8 цифр (набор цифр не может содержать цифру 7); Студенты-Электронный адрес должен быть расположен на

  Украинский ресурсе, то есть содержать подстроку ‘.ua’; ограничить поле Студенты-Дата рождения так, чтобы возраст нынешнего студента был не меньше 18 лет.

Формула — для таблицы Студенты создать поле, выводило бы значение: Фамилия + ‘-‘ + количество лет + ‘г.’ ; для таблицы Студенты создать поле, объединяющее в себе Фамилия, Имя и Отчество.

19 БД сотрудников кафедры КСА (рис. 4.4).

PK — Сотрудники-Фамилия + Имя + Отчество; Дисциплины- Название дисциплины.

I. — Сотрудники-Дата рождения.

UI — Сотрудники-серия и номер паспорта; Дисциплины-код.

CHECK — значение Сотрудники-Трудовой стаж не может быть больше разницу между текущей датой и датой рождения + 15 лет для Дисциплини- Код обеспечить формат ввода: буква Б, Мабо С + ‘.’ + 3 цифры; Формула — для таблицы Сотрудники создать поле, объединяющее в себе Фамилия, Имя и Отчество; для таблицы Сотрудники создать поле, содержащее определенный код, который вычисляется по формуле: 8ПЧ (год рождения) + ТА1Ч (число месяца) — COS (№ месяца).

20 БД аптечных учреждений г..Новоселки (рис. 4.5). PK — Спивробитники- Фамилия + Имя + Отчество; аптечная
учреждение-Название; Перечень лекарств-Название.

I. — Спивробитники- Идентификационный номер.

UI — Спивробитники- Серия и номер паспорта; Перечень лекарств-код министерства.

CHECK -для Спивробитники- Идентификационный номер обеспечить формат: ’10 цифр ‘; для Перечень ликарств- Код министерства обеспечить формат ввода: первая буква названия лекарства + 3 цифры.

Формула — для таблицы Сотрудники создать поле, объединяющее в себе Фамилия, Имя и Отчество; для таблицы

  Сотрудники создать поле, состоящее из: Фамилия + 2-е первые цифры идентификационного номера; для таблицы Аптечная учреждение создать поле, содержащее значение поля: «web:» + Адрес вебстраницы с усеченными в начале и в конце случайными пробелами.
21 БД электронного ресурса с книгами (рис. 4.1). PK — Користувачи- Фамилия + Имя + Дата рождения; книги
— Название.

UI — Пользователи-Логин.

I. — Пользователи-Место рождения; Пользователи-Место проживания.

CHECK — Пользователи -Фамилия не может начинаться на букву «Ю» или «Я»; в поле Пользователи-Место рождения допускается ввод только следующих значений: ‘Харьков’, ‘Винница «,» Днепропетровск «и» Ужгород «.

Формула — для таблицы Книги создать поле, объединяющее в себе автора и название; для таблицы Пользователи создать поле, выводило бы определенное число с

  плавающей запятой на основе Даты рождения, и которое формируется по следующей формуле: 8 (ЖТ (год рождения) + С08 (номер месяца в году) + 8ЕЧ (день месяца), причем месяц и день отражают значение в радианах.
22 БД семейного дерева (рис. 4.2).

PK — Фамильное дерево-Фамилия + Имя; Семейные спутники — Фамилия + Имя; Фамильные ценности-Название ценности.

I. — Семейные спутники -место рождения; фамильное дерево-

Номер кредитной карты.

UI — Фамильные ценности кодом в каталоге ценностей.CHECK — для Фамильные дерево -номер кредитной карты обеспечить формат 4 цифры + ‘-‘ +

4 цифры + ‘-‘ + 4 цифры + ‘-‘ + 4 цифры; значение Фамильные ценности- Максимальная стоимость не может быть меньше значения Фамильные ценности- Минимальная стоимость.

Формула — для таблицы Семейные спутники создать поле, отражающий значение в следующем формате: Имя + пробел + Фамилия + ‘народ. »

+ Номер дня в году + «дня» + год + ‘г. от рождества Христова «; для таблицы Фамильные ценности создать поле, содержащее чотирисимвольний код

  созвучности названий для поля Название ценности (функция SOUNDEX ()).
23 БД студентов, обучающихся на кафедре КСА (рис. 4.3).

PK — Студенты-номер студенческого билета; Законченный учреждение среднего образования-Название заведения; Задолженности-Название

предмета.

UI — Область кодом области.

I. — Студенты-Рейтинг; Законченный учреждение среднего образования- телефон.

CHECK — для Регион-код области обеспечить формат ввода: первые две буквы поля Область + 3 цифры; Студенты-номер студенческого не должен заканчиваться на «00».Формула — для таблицы Студенты создать поле, которое отражало бы во сколько лет студент поступил на кафедру (как разницу между годом поступления и годом рождения) для таблицы Студенты создать поле, отражающий значение в таком формате: «Студент» + пробел + Фамилия + пробел + Имя.

24 БД сотрудников кафедры КСА (рис. 4.4).

PK — Сотрудники-серия и номер паспорта; Дисциплины- Название дисциплины.

I. — Дисциплины-номер семестра.

UI — Сотрудники-Фамилия + Имя + Отчество; Дисциплины-код.

CHECK — для Сотрудники-серия и номер паспорта обеспечить формат ввода: 2 большие русские буквы + ‘-‘ + 6 цифр; в поле Сотрудники — Имя допускается ввод только таких имен: «Василий», «Анна», «Ирина», «Андрей» и «Юрий».Формула — для таблицы Сотрудники создать поле, выводит только серию паспорта; для таблицы Сотрудники создать поле, выводит год в котором сотрудник устроился на работу, как разницу между текущим

  годом и значением трудового стажа.
25 БД аптечных учреждений г..Новоселки (рис. 4.5).

PK — Спивробитники- Идентификационный номер; Аптечная учреждение-Название; Перечень лекарств-код министерства.I. — Сотрудники-Дата рождения.

  UI — Сотрудники-Фамилия + Имя + Отчество; Перечень ликарств- Название.

CHECK — для Сотрудники-серия и номер паспорта обеспечить формат ввода: 2 произвольные буквы + 2 пробелы + 6 цифр; в поле Сотрудники — Имя допускается ввод только таких имен: «Галина», «Александр», «Андриан» и «Илона».Формула — для таблицы Сотрудники создать поле, выводит только номер паспорта; для таблицы Сотрудники создать поле, состоящее из: Фамилии и Имени + 2-х последних цифр идентификационного номера.

26 БД электронного ресурса с книгами (рис. 4.1). PK — Пользователи-Логин; Книги Название.

I. — Пользователи-Место проживания; Пользователи-Фамилия + Имя + Во отчество; Книги УДК.

CHECK — Пользователи -Логин не должен начинаться с цифры или буквы F и быть менее 8 символов; значение Користувачи- Рейтинг должно находиться в пределах Г1; 51.Формула — для таблицы Книги создать поле, объединяющее в себе автора и название; для таблицы Пользователи создать поле, выводит подряд первые буквы полей Фамилия, Имя, Отчество, с точками на конце букв, а затем выводит символы ‘-‘ и значение Рейтинг.

27 БД семейного дерева (рис. 4.2).

PK — Фамильное дерево-Фамилия + Имя; Семейные спутники — Фамилия

+ Имя; Фамильные ценности-код в каталоге ценностей.

I. — Семейные спутники -место рождения; фамильное дерево-
Место рождения.

UI — Фамильные ценности -Название ценности.

CHECK — в поле Фамильное дерево -место рождения допускается ввод только следующих значений: ‘м.Львов «,» с. Зашков «,

‘С. Зарудцы ‘; поле Семейные спутники-Дата рождения не может быть больше текущую дату.

Формула — для таблицы Фамильные ценности создать поле, выводить следующее значение: «Стоимость:» + Ориентировочная стоимость; для таблицы Семейные спутники создать поле, выводить цифровой код согласно такого арифметического выражения: Год рожденияномер месяца рождениядень месяца рождения.

28 БД студентов, обучающихся на кафедре КСА (рис. 4.3).

PK — группы-Название группы + Номер группы, Город-город; Студенты- Номер студенческого билета.

UI — Студенты-Фамилия + Имя + Отчество.

  I. — область-код области; Законченный учреждение среднего образования-Ф.И.О. директора школы.

CHECK — для Законченный учреждение среднего образования-телефон обеспечить формат: ‘8’ + пробел + 3 цифры + ‘-‘ + 3 цифры + ‘-‘ + 2 цифры + ‘-‘ + 2 цифры; в поле Студенты -Имя допускается ввод только таких имен: «Анатолий», «Гавриил», «Юля», «Иван», «Виталий», «Ульяна».

Формула — для таблицы Студенты создать поле, выводит подряд первые буквы полей Фамилия, Имя, Отчество, а затем выводит символ ‘-‘ и значение года; для таблицы Законченный учреждение среднего образования создать поле, которое будет выводить номер телефона (11 цифр) без знаков препинания.

29 БД сотрудников кафедры КСА (рис. 4.4).

PK — Сотрудники-Фамилия + Имя + Отчество; Должность-Название должности.

I. — Сотрудники-Дата рождения; Дисциплини- Номер дисциплины.

UI — Сотрудники-серия и номер паспорта.CHECK — для Сотрудники-серия и номер паспорта обеспечить формат ввода: 2 буквы + ‘-‘ + 6 цифр; Сотрудники -Фамилия не может начинаться на «Ма» или «Па».Формула — для таблицы Сотрудники создать поле, выводит сумму следующих значений: Трудовой стаж + год рождения +20; для таблицы Сотрудники создать поле, выводит модификацию значение Фамилия, то есть первую букву фамилии заменяет на соседней символ, согласно кодовой таблицы (ASCII или UNICODE).

30 БД аптечных учреждений г..Новоселки (рис. 4.5).

PK — Спивробитники- Серия и номер паспорта; Улица — Название улицы; Зона влияния-Название.

I. — Перечень лекарств-код министерства.

UI — Сотрудники-Фамилия + Имя + Отчество; Спивробитники- Идентификационный номер.

  CHECK — Спивробитники- Идентификационный номер не может начинаться двумя девятками; для Перечень ликарств- Код министерства обеспечить формат ввода: 2 цифры, кроме п ‘ятирок +’ — ‘+ 3 латинские буквы +’. ‘ + 3 цифры.

Формула — для таблицы Сотрудники создать поле, выводит следующее значение: «Идент.№ ‘+ Идентификационный номер; для таблицы Сотрудники создать поле, выводило бы определенное число с плавающей запятой на основе Даты рождения, и которое формируется по следующей формуле: ТАN] (год рождения) + SIN (номер месяца в году) + COS (день месяца), причем год, месяц и день отражают значение в градусах

 

 

Рис. 4.1. База данных электронного ресурса с книгами

 

 

 

(!! !)Подчеркнуты поля обязательны для заполнения

Описание: Фамильное дерево представляет собой логическое дерево с раскрывая в глубину пунктами (представьте дерево с плюсами / минусами у обобщающих пунктов для развертывания / свертывания листьев).Каждый член рода имеет может иметь в жизни только одну жену / мужа. Фамильными ценностями могли владеть разные члены рода в разные времена.

Рис. 4.2. База данных семейного дерева

 

(!! !)Подчеркнуты поля обязательные для заполнения

 

 

Описание: Студенты приехали учиться на кафедре КСА из разных городов Украины.При этом они получили среднее образование на дому (в родном городе), но не обязательно. Студенты разбиты по группам. Для каждого студента ведется статистика имеющихся академзаборогованостей по разным предметам.

 

2

Рис. 4.3. База данных студентов, обучающихся на кафедре КСА

(!! !)Подчеркнуты поля обязательны для заполнения

 

Описание: Сотрудники кафедры (профессор, доцент, ст.преподаватель, ассистент, инженер, лаборант и т.д) могут преподавать студентам различные дисциплины.При этом тот же предмет (лекции, практические, лабораторные) могут выкладывать различные преподаватели.

 

Рис. 4.4. База данных сотрудников кафедры КСА

 

(!! !) Подчеркнутые поля обязательные для заполнения

 

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

Рис. 4.5. База данных аптечных учреждений г.. Новоселки

  1. содержание отчета

1. Номер и название лабораторной работы, с указанием ее исполнителя.

2. цель работы.

3. Задание к лабораторной работы.

4. Краткие теоретические сведения, необходимые для выполнения лабораторной работы (не более 3 страниц).

5. Логические выражения для всех заданных в БД проверочных ограничений CHECK и значения формул для вычислительных полей.

6. Диаграмма спроектированной базы данных.

7. Выводы.

 

6. контрольные вопросы

1. Что представляет собой продукт Microsoft SQL Server 2005?

2. Основные различия между различными редакциями MS SQL Server 2005.

3. Назовите два режима проверенной подлинности пользователя при подключении к MS SQL Server 2005, и которые различия между ними.

4. Какие существуют основные системные базы данных MS SQL Server 2005; для чего они нужны и их краткое описание?

5. Что такое файловые группы в базах данных MS SQL Server 2005?

6. Назовите основные режимы восстановления баз данных и их различия.

7. Что такое схемы в базах данных MS SQL Server 2005?

8. Что представляет собой таблица базы данных?

9. Назовите основные типы данных и их характеристики.10.Что такое автоинкрементное поля?

11.Представляющие собой вычислительные столбце и какую информацию они могут отражать?

12.Что такое GUID-идентификаторы?

13.Какие существуют типы ключей?

14.Которая существует различие между уникальными ключами и уникальными индексами? 15.Какая разница между кластеризованного и некластеризованимы индексами?

16.Согласно каких критериев выбирают столбце для индексирования? 17.Согласно которым критерии делают индексы кластерными?

18.Какие существуют типы ограничений?

19.Нужно ли для столбца с первичным ключом создавать дополнительно индекс? 20.Нужно ли для столбца с уникальным ключом создавать индекс?

21. Что представляет собой поверочное ограничения CHECK? 22.Назовите символы-шаблоны логического оператора LIKE и приведите

примеры их применения? 23. Для чего предназначены внешние ключи? 24.Как реализуется отношение «один к одному»? 25.Как реализуется отношение «один ко многим»?

26.Как реализуется отношение «многие ко многим»? 27.Как реализуется обратное (рекурсивное) отношение? 28.Что такое диаграммы баз данных?

 

7. список литературы

1. Роберт Виейра. Программирование баз данных Microsoft SQL Server 2005.Базовый курс .: Пер. с англ. — М .: ООО «И.Д. Вильямс ». — 2007. — 832 с.

2. Ростислав Михеев. MS SQL Server 2005 для администраторов. -СПб .: БХВ- Петербург. — 2007. — 544 с.

3. Пол Нильсен. Microsoft SQL Server 2005. Библия пользователя .: Пер. с англ. — М .: ООО «И.Д. Вильямс ». — 2008. — 1232 с.

4. Microsoft SQL Server 2005. Реализация и обслуживание. Учебный курс Microsoft / Пер. с англ. — М .: «Русская Редакция», СПб .:

«Питер». — 2007. — 768 с.

5. Уильям Р. Станек. Microsoft SQL Server 2005. Справочник админи- Стратор / Пер. с англ. — М .: «Русская Редакция». — 2006. — 544 с.

[Всего голосов: 3    Средний: 5/5]

Читать  Эволюция HTML – История языка и перспективы развития