Главная » Просмотр файлов » Введение в системы БД

Введение в системы БД (542480), страница 78

Файл №542480 Введение в системы БД (Введение в системы БД) 78 страницаВведение в системы БД (542480) страница 782015-08-16СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 78)

По крайней мере (как уже отмечалось выше), когда лля реализации ссылочных действий потребуется использовать некоторые процедуры, это должно указываться декларативно. 8.9. Средства языка Я;Н, Классификация ограничений целостности в языке Щ. довольно сильно отличается от схемы, описанной в разделах 8.1 — 8.5. В языке ЯО1. все ограничения делятся на три категории: ° отграничения домена; ° ограничения базовой таблицы; ° общие ограничения (иначе называемые утвержденилии). Однако ограничения домена — это не то же самое, что обсуждавшиеся выше ограничения типа, а ограничения базовой таблицы отличаются от обсуждавшихся здесь ограничений переменной-отношения.

Аналогично утверждения отличаются от понятия ограничений базы данных. Укажем некоторые особенности, касающиеся упомянутых понятий языка ЯЯ.. ° В действительности в языке Я,)1. вовсе нет ограничений типа (поскольку язык 8О1. не поддерживает никаких типов, за исключением небольшого количества встроенных типов). ° Понятие ограничения домена в языке БО). представляет некоторую сомнительную обобщенную форму нашего ограничения атрибута (напомним, что домены в стиле языка ЕО1. в реляционном смысле доменами не являются). ° Ограничения базовой таблицы и утверждения языка Я;)1 (которые фактически взаимозаменяемы) упрощенно можно считать равносильными нашим ограничениям переменной-опюшения и базы данных, вместе взятым.

Также отметим, что в языке ЕО1. совершенно отсутствует поддержка ограничений перехола. В настоящее время не полдерживаются и триггерные процедуры, хотя их поддержка уже включена в новый стандарт Я)1.3 (см, приложение Б). 322 Чаег~ь 11 Реляционная модель Ограничения домена В языке Я()Ь ограничения домена представляют собой ограничения, применяемые к каждому столбцу, объявленному принадлежащим к данному домену. Приведем пример определения домена. СКЕАТЕ ООИАХН СОЬОК СНАК(б) ОЕРАО?Т '???' СОИБТКА1НТ ЧАВ?0 СОЬОКБ СНЕСК ( ЧАЬНЕ 1Н ( 'Кеб', '?е11ои', 'В1це', 'Огееп', '???' ) ] Предположим, что оператор СКЕАТЕ ТАВЬЕ для базовой таблицы Р (таблицы деталей) выглядит следующим образом. СКЕАТЕ ТАВЬЕ Р ( ..., СОЬОК СОЬОК, ...

) Если пользователь вставляет в таблицу Р только часть новой строки, не содержащую значение для столбца СОЬОК, то по умолчанию в этот столбец будет помещено значение '???'. Если же пользователь укажеш значение для столбца СОЬОК, но это значение не будет принадлежать диапазону допустимых для него значений, то операция не будет выполнена и система выдаст сообщение, в котором будет указано о нарушении пользователем ограничения ЧАЬ10 СОЬОКБ.

Как было показано в разделе 8.2, концептуально ограничения домена являются (или, скорее, должны являться) ничем иным, как перечнем значений, которые составляют этот домен, и приведенный выше пример ограничения ЧАЬ10 СО1 ОКЕ, конечно, следует этому определению.

Однако в общем случае язык ЯО). позволяет включать в определение ограничений доменов логические выражения произвольной сяожмостм. Это предоставляет возможность указывать, например, что допустимые значения некоторого домена 0 могут зависеть от значений указанного атрибута, присутствующих в настоящий момент в некоторой таблице Т. Читатель может поразмышлять о возможных последствиях такой неоправданной вседозволенности. Ограничения базовой таблицы В языке Я >Ь существуют следующие виды ограничений базовой таблицы: ° определение потенциального ключа; ° определение внешнего ключа; ° определение "проверочного условия".

Ниже каждое из них обсуждается подробнее. Замечание. В языке ЯОЬ каждому определению ограничений может предшествовать предложение вида СОНБТКА1ИТ <лмя огранлченляэ, задающее имя нового оЧэаничения (это замечание верно и для ограничений доменов, как мы уже убедились на примере ограничения ЧАЬ10 СОЬОКБ). В приводимых ниже примерах мы будем игнорировазь эту возможнос~ь. Лотеициальные ключи Определение потенциального ключа записывается в следующем виде.

ОН1()ОЕ ( <сплсок имен столбцов> ) 323 Глава 8. Целостность данньп Возможна и другая форма записи. РН1НАНТ КЕТ ( <список имен столбцов> ) В обоих случаях параметр <список имен столбцов> не должен быть пустым. Для заданной базовой таблицы может существовать не более одной спецификации РН1НАНТ КЕТ (первичный ключ) и любое количество спецификаций ОН100Е (альгернативные ключи). В случае первичного ключа для каждого из указанных столбцов дополнительно подразумевается наличие в определении спецификации НОТ НОЬЬ, даже если эта спецификация не была указана явно. Проверка выполнения ограничений будет обсуждаться ниже. Внешние ключи Определение внешнего ключа записывается следующим образом. РОНЕ1ОН КЕТ ( <список имен столбцов> ) НЕРЕНЕНСЕЯ <имя базовой таблицы> [ ( <списох имен столбцов> ) [ ОН ОЕЬЕТЕ <ссыпанная операция> ] [ ОН ОРОАТЕ <ссыпанная операция> ] Здесь параметр <ссмлочная операция> может принимать значения НО АСТ10Н (по умолчанию), САБСАОЕ, БЕТ ОЕРАОЬТ и БЕТ НОЬЬ.

Опции БЕТ ОЕРАВЬТ и ЯЕТ НОЬЬ будут рассматриваться в главе )8. Второй параметр <списох имен столбцов> необходим в том случае, если внешний ключ ссылается на потенциальный ключ, который не является первичным ключом. Замечание. Соответствие "внешний ключ — потенциальный ключ" устанавливается не на основе имен столбцов, а на основе позиции (слева направо) в списках имен атрибутов. Проверочные условия Определение проверочного условия (проверочного ограничения) имеет следующий вид.

СНЕСК ( <усповное выражение> ) Попьнка создания строки т в базовой таблице Т рассматривае~ся как нарушение проверочного ограничения лля таблицы Т, если в результате вычисления указанного в этом ограничении условного выражения для строки г будет получено значение ложь. Замечание. Условное выражение в языке Я >Е является аналогом того, что ранее мы называли логическим (или булевым) выражением. Эти выражения подробно рассматриваются в приложении А. В час~ности, отметим, что в данном контексте условное выражение может быть сколь угодно сложным. Не требуется, чтобы условие ограничения включало ссылки только на таблицу Т; оно может иметь ссылки на что угодно в базе данных.

Читателю, опять-таки, будет полезно поразмышлять над тем, какими могут быть последствия такой неоправданной вседозволенности. Вот пример создания таблицы с помощью оператора СЙЕАТЕ ТАВЬЕ, в котором используются ограничения базовой таблицы всех трех типов. СНЕАТЕ ТАВЬЕ БР ( Б() Б() НОТ НОЬЬ, Р() Р$ НОТ НОЬЬ, ЦТТ ОТТ НОТ НОЬЬ, РН1МАНТ КЕТ ( Я(), Р]) ), РОНЕ16Н КЕТ ( Я]) ) НЕРЕНЕНСЕЯ Б 324 Часть 11.

Реляционная модель ОМ ОЕЬЕТЕ САЯСАОЕ ОМ НРОАТЕ САЯСАОЕ, ГОВЕ16М КЕТ ( Р() ) КЕРЕКЕМСЕЯ Р ОМ ОЕЬЕТЕ САЯСАОЕ ОМ ОРОАТЕ САБСАОЕ, СНЕСК ( ОТХ > 0 АМО ОТХ < 5001 ) ) Здесь подразумевается, что домены 8$. Р) и ОТХ уже определены, а атрибуты Б() и Р() явно определены как первичные ключи для таблиц Я и Р соответственно. Также здесь умышленно применяется соглашение по сокрашению, благодаря которому проверочное условие вида СНЕСК ( <имя столбца> 18 МОТ МНЬЬ ) в определении рассматриваемого столбца можно заменить простой спецификацией МОТ МНЬЬ.

В соответствии с данным правилом в этом примере три достаточно громоздких проверочных условия заменены тремя простейшими спецификациями МОТ МОЬЬ. Завершая подраздел, обратим внимание на некоторую "странность": считается, что ограничение базовой таблицы БОЬ всегда удовлетворено, если базовая таблица пуста, причем даже в случае ограничения вида "эта таблица не должна быть пустой"! Утверждения Рассмотрим третий случай: общие ограничения, иначе называемые утверждениями.

Общие ограничения создаются с помощью оператора СКЕАТЕ АЯЯЕКТ1ОМ, имеющего следующий синтаксис. СКЕАТЕ АЯБЕВТ1ОМ <имя ограничения> СНЕСК ( <услолиое выражение> ) Здесь параметр <имя ограничения> задает имя создаваемого ограничения, а параметр <условное вмраяеиие> определяет проверяемое условное выражение. Для отмены общего ограничения используется оператор 0КОР АЯЯЕКТ10М.

ОВОР АЯЯЕВТ1ОМ <имя ограиичеиия> ! Отметим, что в отличие от всех других форм ЯОЬ-оператора отмены ОВОР, приведенных в этой книге (ОКОР ООНА1М, ОКОР ТАВЬЕ, ОВОР Ч1ЕМ), оператор ОКОР АЯБЕВТ1ОМ не содержит опций КЕБТВ1СТ и САЯСАОЕ. Вот несколько примеров утверждений, создаваемых с помощью оператора СВЕАТЕ АББЕКТ1ОМ. !.

Каждый поставщик должен иметь статус не менее 5. СКЕАТЕ АЯБЕКТТОМ 1С13 СНЕСК ( ( БЕЬЕСТ М1М ( Я.ЯТАТНЯ ) РВОМ Я » 4 ) ! 2. Значение веса любой детали должно быть положительным. СКЕЙТЕ АЯЯЕКТ1ОМ 1С18 СНЕСК ( МОТ ЕХ1ЯТБ ( ЯЕЬЕСТ * РВОМ Р ИНЕКЕ МОТ ( РЛЕ16НТ > 0 ] ) ) 325 Глава 8. Целостность данньп 3. Все красные детали должны храниться в Лондоне. СКЕЙТЕ йЯЯЕКТ10И 1С99 СНЕСК ( ИОТ ЕХ1ЯТБ ( ЯЕЬЕСТ * ГНОМ Р ИНЕКЕ Р.СОЬОК = 'Кеб' ЙМР Р.СЬТХ <> 'Ьопбоп' ) ) 4. Не допускаются поставки с общим весом (произведение количества деталей и их веса), превышающим 20 000 фунтов. СКЕАТЕ йЯБЕКТ10И 1С46 СНЕСК ( ИОТ ЕХ1ЯТЯ ( ЯЕЬЕСТ + ГНОМ Р, ЯР ИНЕКЕ Р.Р$ = ЯР.Р$ АИР ( Р.ИЕ10НТ * БР.ЦТГ ) > 20000.0 ) ) 5. Поставщики со статусом, меньшим 20, не имеют права поставлять любую деталь в количестве более 500 штук.

СКЕЙТЕ АЯЯЕКТ10И 1С95 СНЕСК ( ИОТ ЕХ1ЯТБ ( ЯЕЬЕСТ " ГНОМ Я, ЯР ИНЕКЕ Я.ЯТАТРЯ < 20 ЙИР Я.Я$ = ЯР.Я$ АКР ЯР.ОТХ > 500 ) ) Откладываемая проверка Классификация ограничений целостности в языке Б()Ь отличается от нашей также в отношении вопроса, ко~да должна выполняться проверка. В нашей схеме ограничения базы данных проверяются во время выполнения оператора СОММ1Т, а остальные ограничения проверяются немедленно. В языке БОЬ подход иной и ограничении могут быть определены как откладываемые и неоткладываемые (опции РЕГЕККАВЬЕ и ИОТ РЕГЕККЙВЬЕ соответственно).

Если ограничение откладываемое, оно дополнительно может быть определено как исходно откладываемое (1И1Т1ЙЬЬХ РЕГЕККЕР) или исходно выполняемое (1И1Т1АЬЬГ 1ММЕ01йТЕ), что определяет состояние ограничения в начале выполнения каждой транзакции. Неоткладываемые ограничения всегда проверяются немедленно, а откладываемые могут динамически включаться и отключаться с помощью оператора, синтаксис которого приведен ниже.

Характеристики

Тип файла
DJVU-файл
Размер
10,05 Mb
Тип материала
Предмет
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6430
Авторов
на СтудИзбе
306
Средний доход
с одного платного файла
Обучение Подробнее