Теория и практика построения баз данных (1088289), страница 110
Текст из файла (страница 110)
Что произойдет, если хранимой процедуре в листинге 13.2 будет передано неправильное значение атрибута Сору? 24. Объясните, почему триггер в листинге 13.3 является рекурсивным. Что остановит рекурсию? 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Создайте таблицу 5С?ОЕ-5НОИ (презентация), имеющую столбцы 5Ьоч«10 (номер презентации), Мате (название), Оезспрйоп (описание), Рвгрозе (цель). Пусть 5Ьоп?0 будет суррогатным ключом. Задайте тип данных для столб- цов пате и Юезспрйоп так, как считаете нужным.
Для столбца Рвгрозе ука- жите тип данных 5вЬ?есб Используйте БО?.-оператор СКЕАТЕ или средство графического проектирования таблиц. Создайте таблицу 5НОФ-Р?СТ!?КЕ-?МТ, представляющую собой пересечение таблиц Р?СТОКЕ и 5С?ЮЕ-5НОЧI. Создаите необходимые связи между таблицами Р1СТОКЕ и БНО?в-Р?СТЮКЕ- 1йТ, а также между таблицами 51?ОЕ-5НЮВ и 5НОЧ!!-Р?СТОКЕ-?МТ.
Установите режим обеспечения ссылочной целостности таким образом, чтобы запре- тить удаление из таблицы 5С?ЮЕ-5НЮ?Ч строк, имеющих связанные с ними строки в таблице 5НОЧ«'-Р?СТОКЕ-?МТ. Обеспечьте также каскадные удаления при удалении строки из таблицы Р!СТОКЕ. Объясните, как установить свойство Сазсабе Ордаге для связей из во- проса 12. Напишите БЯ?.-оператор, создающий представление Роро!аг5Ьо«чз (по- пулярные презентации), содержащее столбцы БС?ОЕ-5НОЧ?.Мате и Р1СТОКЕ. Мате всех презентаций, у которых столбец Рцгрозе имеет значение «Ноте» или «Ре?з». Запустите этот оператор на выполнение с помощью БЯ?.
0пегу Апа!угег. Откройте средство для проектирования представлений и убедитесь, что представление Роро!аг5Ьо«чз было спроектировано правильно. Модифици- руйте это представление, добавив в него столбцы Оезспрйоп и Н!ейате. Может ли БЯ?.-оператор ОЕСЕТЕ использоваться с представлением Роро!зг- 5Ьовз? Почему? При каких условиях представление Роро(аг5Ьо«чз допускает вставку и мо- дификацию7 Создайте индекс по столбцу Рщрозе. Воспользуйтесь для этого средством графического проектирования Мапайе 1пбех.
Для чего используется переменная ~Сввп! в листинге 13.1? 512 Глава 13. Работа с базами данных в 80С Берег 2000 Вопросы к проекту Еггеоыр 513 25. Обьясните, почему в листинге 13А значение 9Соцп1, большее 2, означает, что еще до вызова триггера Оп ЙОРК 1пзей произошла ошибка. 25. Что произойдет при выполнении оператора КОГ СВАСК в листинге 13.4? 27. Каковы три основных фактора, определяющие блокировочное поведение 5О1.
5егчег? 28. Раскройте смысл каждого из четырех уровней изоляции транзакции, перечисленных в табл. 13.3. 29. Раскройте смысл каждого из трех типов поведения курсора, перечисленных в табл. 13.3. 30. В чем назначение блокировочных подсказок? 31. Чем полная резервная копия отличается от дифференциальной? В каких случаях рекомендуется делать полные резервные копии, а в каких — дифференциальные? 32. Объясните разницу между простой, полной и выборочной моделями восстановления.
Для каждой модели опишите условия, при которых вы ее выбрали бы. 33. Когда необходимо восстановление к состоянию на определенный момент времени? Проекты Для следующих проектов создайте базу данных тг1етч КЫВе с помощью 5О1. Зегчег, как описано в этой главе. Рассмотрим представление АггЬГ Ч1етч, о котором шла речь в вопросах группы П в конце главы!О. 1. Напишите на ТВАМБАСТ-5О1 процедуру, считываюшую ту часть представления, которая относится к таблице АКТ15Т.
Отобразите полученные данные в Оцегу Апа)угег, как показано в этой главе. Пусть имя художника будет входным параметром процедуры. 2. Напишите на ТКАМБАСТ-5О1. процедуру, считывающую ту часть представления, которая включает данные из таблиц АКТ15Т, ТКАН5АСТ10Н и С05ТОМЕК (клиентов берите только тех, для которых имеются транзакции).
Отобразите полученные данные в Оцегу Апа1угег, как показано в этой главе. Пусть имя художника будет входным параметром процедуры. 3. Напишите на ТВАХ5АСТ-5О1 процедуру, считывающую данные из всех таблиц, содержащихся в представлении. Отобразите полученные данные в Оцегу Апа1угег, как показано в этой главе. Пусть имя художника будет входным параметром процедуры. 4. Напишите на ТКАХ5АСТ-5ОТ. процедуру, регистрирующую интерес клиента к определенному художнику.
Пусть имя художника и имя клиента будут входными параметрами. Если имя клиента не уникально, выведите сообшение об ошибке. Прежде чем вставлять новую строку, проверьте, нет ли одинаковых строк в таблице С05ТОМЕК АКТ15Т 1НТ, Выведите сообщение об ошибке, если такие строки обнаружатся. 5, Напишите завершающий триггер, который контролировал бы вставку в таблицу АКТ15Т и другие ее модификации. Если в ходе этих операций столбцу Наг)опайту присваивается значение «Вгййп», поменяйте его на «Епй()зп». Вопросы к проекту Нгеб0р С помогцью 5О(. Бегчег создайте базу данных со следующими таблицами: КЛИЕНТ (НомерКяиеита, Имя, Телефон, ЭлектроииыйАдрес) ГОРЕЛКА (СерийныйНомер, Тип, Версия, ДатаВыпуска) РЕГИСТРАЦИЯ (НомерКлиента, СерийныйНомер, ДатаРегистрации) РЕМОНТ-ГОРЕЛКИ (НомерСчетаЗаРемонт, СерийныйНомер, ДатаРемонта, Описание, Стоимость, НомерКлиента) Пусть первичные кл|очи таблиц КЛИЕНТ, ГОРЕЛКА и РЕМОНТ-ГОРЕЛКИ являются суррогатными ключами.
Создайте связи, которые обеспечивали бы выполнение следуюгцих ограничений ссылочной целостности: + НомеРКлиеита в таблице РЕГИСТРАЦИЯ является подьпюжеством НомерКлиента н таблице КЛИЕНТ; + СерийиыйНомер в таблице РЕГИСТРАЦИЯ является подмножеством Серийный- Номер в таблице ГОРЕЛКА; + СерийныйНомер в таблице РЕМОНТ-ГОРЕЛКИ является подмножеством СерийиыйНомер в таблице ГОРЕЛКА; + НомерКлиента в таблице РЕМОНТ-ГОРЕЛКИ является подмножеством Номер- Клиента в таблице КЛИЕНТ.
Не включайте каскадные удаления. 1. Заполните таблицы данными и выведите нх па экран. 2. Создайте хранимую процедуру, которая регистрировала бы горелку. В качестве входных параметров процедура должна принимать имя, телефон и адрес электронной почты клиента, а также серийный номер горелки.
Если запись о данном клиенте уже имеется в базе данных (имя, телефон и электронный адрес совпадают), используйте для регистрации его НомерКлиента. Будем предполагать, что горелка с данным серийным номером уже занесена в базу данных. Если это не так, выведите сообщение об ошибке и отмените изменения, произведенные в таблнце КЛИЕНТ. Протестируйте написанную процедуру. 3.
Создайте хранимую процедуру, которая записывала бы информацию о ремонте горелки. В качестве входных параметров процедура должна принимать имя, телефон и адрес электронной почты клиента, серийньш номер 514 Глава 13. Работа с базами данных в 80С Вегчег 2000 горелки, описание ремонта и его стоимость. Действуйте в предположении, что заданный серийный номер существует; если нет, выведите сообщение об ошибке и не производите в базе данных никаких изменений. Если запись о данном клиенте уже имеется в базе данных (имя, телефон и электронный адрес совпадают), используйте существующую строку в таблице КЛИЕНТ, если нет — создайте новую.
В таблицу РЕМОНТ-ГОРЕЛКИ должна быть внесена новая запись. Если необходимо, зарегистрируйте горелку. 4. Создайте представление, содержащее всю информацию об указанном клиенте, которой обладает Е)гегП)р. Назовите это представление ДанныеКлиента. Это представление должно соединять в себе данные из таблиц КЛИЕНТ, РЕГИСТРАЦИЯ, ГОРЕЛКА и РЕМОНТ-ГОРЕЛКИ. Напишите хранимую процедуру, принимающую в качестве аргумента имя клиента и выводящую все данные этого клиента. Часть ЧН Обработка организационных баз данных Часть Ъ'1 книги посвящена технологиям публикации и использования организационных баз данных.
В главах 14 — 16 рассматривается обработка баз данных с использованием интернет-технологий. Речь идет о технологиях, первоначально разработанных для Интернета, но в настояшнй момент применяемых также в закрытых интрасетях. В главе 14 излагаются основы — разновидности сетевого окружения, трехуровневые и многоуровневые архитектуры и ХМ).. Глава 15 иллюстрирует использование технолопш М)сгока11 (ОЕЕ Е)В, А1)0 и Ас11че Зегчег Радея) для публикации приложений баз данных.
В главе 16 демонстрируется решение тех же задач с помошыо 1РВС, 1ача и 1ача 5егчег Радек. Завершается часть Ъ'1 книги главой 17, в которой обсуждаются другие виды архитектур организационных баз данных, 01.АР-приложения и администрирование данных. Многие из описываемых в этой главе технологий быстро развиваются. Информациго о них вы можете найти на следугощих сайтах: новые технологии Огас1е — чгаа.агас1е.сош, новые технологии Мгсгокой — игвв.ппсгокоГГ.сов, последние новости ХМ1. и связанных с ним технолопш — аигчг.чгЗ.ога, последние новости,)ача-технологггГг — чгигиг.квп.сошг)ача.