Теория и практика построения баз данных (1088289), страница 109
Текст из файла (страница 109)
Однако важно здесь то, что вы можете организовать автоматическое резервное копирование данных и журналов по расписанию. Вопросы, не затронутые в этой главе Есть несколько важных вопросов, связанных с 3ЯТ. Вегчег, которые не были затронуты в этой главе. Во-первых, в 3Я! Вегттег имеются утилиты для измерения производительности базы данных.
Администратор базы данных может использо- 508 Глава 13.,Работа с базами данных в 80~ Зегчег 2000 Резюме 509 вать зти утилиты при настройке базы данных. Еще одна возможность, не описанная здесь, — это соединение Ассезв с 5ЯЕ 5егчег. Информацию по этой теме можно найти в документации на Ассезз. В 5ЯЕ 5егчег имеются средства для поддержки распределенной обработки баз данных, которая в 5(1ь 5егчег называется релликацией (гер1)сайоп). Эти средства используют модель распределенной обработки «публикация — подпискам которую мы будем рассматривать в главе 17. Тема распределешюй обработки данных, хотя и важна сама по себе, тем не менее выходит за рамки данной книги.
М1сгозо(г предоставляет сервер ОБЕ ПВ под названием П1зггйщгег1 ТгапзасВоп Мапаяег (диспетчер распределенных транзакций), который координирует распределенные транзакции. )ача поддерживает технолошпо под названием Епгегрг1зе )ача Веапз, служащую тем же целям. Мы коснемся этих вопросов в главах 15 и 16. Наконец, в 5(1ь 5егчег имеются средства для обработки представлений бзз данных в форме ХМ1-документов. Язык ХМ1 будет подробно обсуждаться нами в следующей главе.
Резюме 5ЯЕ 5егчег 2000 может устанавливаться на компьютерах под управлением 1гч'1пг1оиз ХТ и 1«г1пг1овз 2000. Есть два способа создания таблиц, представлений, индексов н других структур базы данных. Первый способ — использовать средства графического проектирования, подобные имеющимся в Ассезз. Второй способ состоит в написании 5ЯЕ-операторов, создающих эти структуры, и передаче их на выполнение 5ЯЕ 5егчег с помощью программы 5ЯЕ Яиегу Апа1угег. Типы данных 5(21 5егчег перечислены в табл.
13.3. 5Я1 5егчег поддерживает пользовательские типы данных, которые позволяют реализовать домены. Эти типы можно использовать для определения столбцов как в средствах графического проектирования, так и в 5Я1-операторах. Для столбцов и пользовательских типов данных можно задавать правила. В случае пользовательского типа правило реализуется для всех столбцов, имеющих заданный тип. Структуру таблицы можно менять с помощью графических средств или 5ЯЕ- оператора АПЕК ТАВЕЕ. Связи можно создавать путем рисования их па диаграммах базы данных или определения внешних ключей в 5(2ь-операторах.
Связи имеют ряд свойств (диалог РгореФез), относящихся к обеспечению ссылочной целостности. Если установлен флажок Еп(огсе Ре(абопзЫр, 5ЯЕ 5егчег не допустит появления в дочерних таблицах значений внешних ключейг, пе соответствующих первичным ключам родительских таблиц. Поддерживаются каскадные обновления и удаления. Если в структуре базы данных используются суррогатные ключи, в каскадных обновлениях нет необходимости. 5ЯЕ 5егчег поддерживает 5ЯЕчгредставления. Одни представления можно использовать для обновления данных, другие — нет.
Любое представление, ос- новывающееся на одной таблице, является обновляемым, если оно не включает в себя встроенные функции или производные столбцы. Чтобы представление допускало вставку, в нем должны присутствовать все ненулевые столбцы. Представление, содержащее данные более чем из одной таблицы, не может использоваться для удаления.
Многотабличные представления допускают вставку и обновление, если этн операции затрагивают только одну таблицу нз имеющихся в представлении. Представление, которое другим способом обновить невозможно, можно сделать обновляемым, определив для него замещающий триггер. Индексы — это специальные структуры данных, используемые для повышения производительности базы данных. 5ЯЕ 5егчег автоматически создает индекс по всем первичным и внешним ключам. Дополнительные индексы создаются с помощью оператора ЕКЕАТЕ 11«0ЕХ или графического средства Малайе 1пбех. 5Я1 5егчег поддерживает кластеризованные и некластеризованные индексы, 5Я1 5егчег имеет входной язык под названием ТКАН5АСТ-5Я)., в котором, помимо базовых 5Я(.-операторов, предусмотрены программные конструкции— параметры, переменные н логические структуры (1Е, )чН1ЕЕ и т.
д.). Реализация логики приложения в 5ЯЕ 5егчег возможна тремя способами: посредством процедур на ТКА)з)5АСТ-5ЯЕ и хранимых запросов, которые вызываются с помощью программы 5ЯЕ Яиегу Апа1угег, посредством хранимых процедур, которые вызываются из прикладных программ или через 5Я1 Япегу Апа1угег, и посредством триггеров, которые вызываются 5(2) 5егчег при выполнении определенных действий с базой данных. Хранимые процедуры могут находиться на компьютерах пользователей или в базе данных и вызываться из прикладных программ.
Последнее более характерно для интернет-приложений, как вы узнаете из главы 15. Хранимая процедура, записывающая в базу данных информацию о новом клиенте и его приобретении, показана в листинге 13.2. Примеры триггеров вставки и обновления приведены на рис, 13.21 и 13.22, Поведение 5Я1 5егчег при управлении параллельной обработкой определяется тремя факторами; уровнем изоляции транзакции, поведением курсора и блокировочными подсказками, данными пользователем в предложении 5ЕЕЕСТ.
Эти факторы представлены в табл. 13.3, Поведение также меняется в зависимости от того, каким образом происходят изменения — в контексте транзакций, в контексте курсоров или независимо. Имея блокировочные предпочтения, указанные разработчиком, 5з21 5егчег самостоятельно налагает блокировки. Блокировки могут налагаться с различной глубиной детализации, которая в ходе обработки может быть увеличена или уменьшена. 5ЯЕ 5егчег поддерживает создание резервных копий журналов, а также полных и дифференциальных резервных копий базы данных.
Предусмотрены три модели восстановления: простая, полная и выборочная. При простой модели журнал не ведется и записи из журнала не обрабатываются. При полной модели Вопросы 1 группы 511 510 Глава 13. Работа с базами данных в БС?С Веогег 2000 все операции, выполняемые с базой данных, заносятся в журнал и затем воспро- изводятся при восстановлении. В случае выборочной модели при ведении жур- нала опускаются определенные виды транзакций, для записи которых требуется много места. Вопросы ! группы 1 2 3 5 6 7 8 9 Установите БО? Бегчег 2000 и создайте базу данных под названием МЕ01А (мои картинки). Для размеров, имен и местоположения файлов оставьте параметры, задаваемые по умолчанию.
Напишите БЯ?.-оператор, создающий таблицу под названием Р?СТОКЕ (слайд) со столбцами Мате (название), Юезспрйоп (описание), ОагеТайеп (дата съемки) и Р1!ейзте (имя файла). Пусть Мате имеет тип сйаг(20), Оезспрйоп — чагсйаг(200), Юа?еТайеп — эта!(с$а1е, а Рйейап?е — сйаг(45). Кроме того, пусть атрибуты Мате и Оа1еТайеп являются обязательными.
Исполь- зуйте Мате в качестве первичного ключа. Задайте для столбца Оезспрг?оп по умолчанию значение «(йопе)». С помощью БО?. снегу Апа!ухег выполните оператор из вопроса 2 и соз- дайте в базе данных МЕ01А таблицу Р?СТОКЕ. Откройте базу данных МЕ01А в Епгегрг?зе Мапайег и откройте окно проек- тирования базы данных для таблицы Р?СТОКЕ. В этом окне добавьте в таб- лицу столбец-идентификатор Р?сбвге10, задав для него начальное значение 300 и приращение 25.
Поменяйте первичный ключ с йате на Р!с?вге?0. С помощью графического средства проектирования таблиц задайте значе- ние по умолчанию для столбца ЮагеТайеп равным системной дате. Создайте пользовательский тип данных под названием 5вЬ?ест (тема), опре- делив его как сйзг(30). Добавьте в таблицу Р?СТ??КЕ столбец Тор!с (тема), имеющий тип 5вЬ?есб Создайте правило под названием Ча!?б 5пЬ?ес1з (допустимые темы), опре- деляющее следующее множество значений: ('Ноп1е', '0(бсе', 'Ратйу', 'Кесгеайоп', 'Брег?з', 'Ре?з') (дом, работа, семья, отдых, спорт, животные). Привяжите это правило к пользовательскому типу данных 5цЬ?есй Напишите операторы АСТЕК, выполняющие следующие действия: 1.
Изменение длины столбца Мате до 50 символов. 2. Удаление столбца ЮагеТайеп. 3. Добавление столбца ТайепВу (кто снимал), имеющего тип сйаг(40). Передайте операторы, созданные вами в ответе на вопрос 8, на выполне- ние БО? Бегчег с помощью БО?. Оцегу Апа!угег. После этого откройте ок- но проектирования таблиц и убедитесь, что изменения произведены долж- ным образом. 20.
Зачем нужен оператор 5ЕСЕСТ, который начинается с БЕСЕСТ фС!б? 21. Объясните, как бы вы изменили хранимую процедуру в листинге 13.1, чтобы связать клиента со всеми художниками, которые (а) родились до 1900 года или (б) имеют нулевое значение атрибута В?гйОаге. 22. Объясните, в чем назначение транзакции в листинге 13.2. 23.