27_SH43-0144-00 (1038594), страница 31

Файл №1038594 27_SH43-0144-00 (КП - Библиотека) 31 страница27_SH43-0144-00 (1038594) страница 312017-12-26СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Целью является поддержаниецелостности в случаях, когда один объект базы данных ссылается на другой.Например, пусть и первичный, и внешний ключи содержат столбец с номеромотдела фирмы. В таблице сотрудников EMPLOYEE этот столбец называетсяWORKDEPT (отдел), а в таблице отделов DEPARTMENT - DEPTNO (номеротдела). Связь между двумя этими таблицами задается следующимиограничениями:v Для каждого работника в таблице EMPLOYEE существует только один номеротдела и этот номер отдела существует в таблице DEPARTMENT.v Каждая строка таблицы EMPLOYEE связана не более чем с одной строкойтаблицы DEPARTMENT.

Между таблицами существует отношение.v Каждая строка таблицы EMPLOYEE, содержащая непустое значениеWORKDEPT, связана со строкой с столбце DEPTNO таблицы DEPARTMENT.v Таблица DEPARTMENT является родительской таблицей, а таблицаEMPLOYEE - зависимой таблицей.Оператор SQL, определяющий родительскую таблицу DEPARTMENT:CREATE TABLE DEPARTMENT(DEPTNOCHAR(3)NOT NULL,DEPTNAME VARCHAR(29) NOT NULL,MGRNOCHAR(6),ADMRDEPT CHAR(3)NOT NULL,LOCATION CHAR(16)PRIMARY KEY (DEPTNO)IN RESOURCE,)Оператор SQL, определяющий зависимую таблицу EMPLOYEE:CREATE TABLE EMPLOYEE(EMPNOCHAR(6)NOT NULL PRIMARY KEY,FIRSTNME VARCHAR(12) NOT NULL,LASTNAME VARCHAR(15) NOT NULL,WORKDEPT CHAR(3),PHONENO CHAR(4),PHOTOBLOB(10m) NOT NULL,FOREIGN KEY DEPT (WORKDEPT)REFERENCES DEPARTMENT ON DELETE NO ACTION)IN RESOURCEЗадав столбец DEPTNO в качестве первичного ключа таблицы DEPARTMENT истолбец WORKDEPT в качестве внешнего ключа таблицы EMPLOYEE, выопределяете реляционное ограничение на значения WORKDEPT.

Этоограничение обеспечивает реляционную целостность значений в этих двухтаблицах. В данном случае для всех работников, добавляемых в таблицуEMPLOYEE, должны задаваться номера отделов, существующие в таблицеDEPARTMENT.130Руководство администратора: РеализацияДля этого реляционного ограничения в таблице EMPLOYEE задано правилоудаления NO ACTION, что означает, что отдел не будет удаляться из таблицыDEPARTMENT, если в этом отделе есть сотрудники.Хотя в предыдущих примерах для добавления реляционного ограниченияиспользовался оператор CREATE TABLE, для этого можно также использоватьоператор ALTER TABLE. Смотрите раздел “Изменение структуры исодержимого таблицы” на стр. 194.Другой пример: Используются те же определения таблиц, что и в предыдущемпримере.

Таблица DEPARTMENT создается раньше таблицы EMPLOYEE.Каждый отдел имеет руководителя и эти руководители указаны в таблицеEMPLOYEE. Столбец MGRNO (номер руководителя) в таблице DEPARTMENTиспользуется как внешний ключ таблицы EMPLOYEE. Реляционные связиобразуют цикл, что порождает некоторые проблемы с этим ограничением.Внешний ключ можно добавить позднее (смотрите раздел “Добавлениепервичных и внешних ключей” на стр. 197). Можно также использоватьоператор CREATE SCHEMA, чтобы создать обе таблицы EMPLOYEE иDEPARTMENT одновременно (смотрите пример в руководстве SQL Reference).Условие FOREIGN KEY: Внешний ключ ссылается на первичный ключ илиключ уникальности в той же или другой таблице.

Задание внешнего ключауказывает, что реляционная целостность должна поддерживаться в соответствиис заданными реляционными ограничениями. Для определения внешнего ключаиспользуется условие FOREIGN KEY оператора CREATE TABLE или ALTERTABLE.Число столбцов внешнего ключа должно совпадать с числом столбцовсоответствующего первичного или уникального ограничения (называемогородительским ключом) родительской таблицы.

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

Однако пустое значение внешнего ключа всегда допустимо,независимо от значений его непустых компонентов.Для определений внешних ключей применяются следующие правила:v Таблица может иметь много внешних ключейГлава 3. Создание базы данных131v У внешнего ключа допускается пустое значение, если какому-либо из егокомпонентов разрешено иметь пустые значенияv Внешний ключ имеет пустое значение, если любой из его компонентов имеетпустое значение.Условие REFERENCES: Условие REFERENCES задает родительскую таблицудля отношения и определяет необходимые ограничения. Его можно включить вопределение столбца или задать как отдельное условие, сопровождающееусловие FOREIGN KEY, в операторах CREATE TABLE или ALTER TABLE.Если условие REFERENCES задано в качестве ограничения для столбца, изперечисленных имен столбцов составляется неявный список столбцов.

Учтите,что у нескольких столбцов могут быть отдельные условия REFERENCES, а уодного столбца может быть несколько таких условий.Условие REFERENCES содержит правило удаления. В нашем примереиспользуется правило удаления ON DELETE NO ACTION, которое указывает,что отделы нельзя удалять, если в них есть сотрудники. Другие правилаудаления: ON DELETE CASCADE, ON DELETE SET NULL и ON DELETERESTRICT. Дополнительную информацию о правилах DELETE при реализацииреляционной целостности смотрите в руководстве Руководство администратора:Планирование.Влияние на операции утилит: Утилита LOAD отключает проверку ограниченийдля автореферентных и зависимых таблиц и переводит эти таблицы в состояниеотложенной проверки.

После завершения работы утилиты LOAD нужновключить проверку ограничений для всех таблиц, для которых она былаотключена. Например, если в состояние отложенной проверки были переведенытолько таблицы DEPARTMENT и EMPLOYEE, можно выполнить следующуюкоманду:SET INTEGRITY FOR DEPARTMENT, EMPLOYEE IMMEDIATE CHECKEDРеляционные ограничения влияют на утилиту IMPORT так:v Функции REPLACE и REPLACE CREATE не разрешены, если от таблицыобъектов зависят какие-либо другие таблицы.Чтобы использовать эти функции, сначала отбросьте все внешние ключи, вкоторых эта таблица является родительской.

Завершив импорт, зановосоздайте эти внешние ключи с помощью оператора ALTER TABLE.v Успех импорта в таблицу с автореферентными ограничениями зависит отпорядка, в котором импортируются столбцы.Определение проверочных ограничений таблицыПроверочное ограничение таблицы задает условие поиска, применяемое длякаждой строки таблицы, для которой определено это проверочное ограничениетаблицы. Для создания проверочного ограничения таблицы при создании или132Руководство администратора: Реализацияизменении этой таблицы с ней связывается определение проверочногоограничения. Это ограничение автоматически активируется, когда операторыINSERT или UPDATE изменяют данные в этой таблице. Проверочноеограничение таблицы не влияет на операторы DELETE или SELECT.Проверочное ограничение может быть связано с типизированной таблицей.Имя ограничения не может совпадать с именами других ограничений, заданныхв том же операторе CREATE TABLE.

Если имя ограничения не задано, системасгенерирует 18-символьный уникальный идентификатор для этого ограничения.Проверочное ограничение таблицы применяется для задания правилцелостности данных, не обеспечиваемых уникальностью ключей илиреляционными ограничениями. В некоторых случаях проверочное ограничениетаблицы может использоваться для выполнения проверки домена. Следующееограничение, заданное в операторе CREATE TABLE, гарантирует, что датаначала некоторого действия не будет больше даты его завершения:CREATE TABLE EMP_ACT(EMPNOCHAR(6)NOT NULL,PROJNOCHAR(6)NOT NULL,ACTNOSMALLINTNOT NULL,EMPTIMEDECIMAL(5,2),EMSTDATE DATE,EMENDATE DATE,CONSTRAINT ACTDATES CHECK(EMSTDATE <= EMENDATE) )IN RESOURCEХотя в предыдущих примерах для добавления проверочного ограничениятаблицы использовался оператор CREATE TABLE, для этого можно такжеиспользовать оператор ALTER TABLE.

Смотрите раздел “Изменение структурыи содержимого таблицы” на стр. 194.||||||||Определение генерируемых столбцов в новых таблицахГенерируемый столбец определяется в базовой таблице, если сохраняемоезначение не задается операциями вставки или изменения, а вычисляется понекоторой формуле. Если при создании таблицы известно, что для нее все времябудут использоваться определенные выражения или предикаты, можно добавитьв эту таблицу один или несколько генерируемых столбцов. Генерируемыестолбцы позволяют улучшить производительность выполнения запросов дляданных этой таблицы.||||Например, вычисления выражений могут значительно влиять напроизводительность в следующих двух случаях:1. Вычисление выражения должно выполняться в запросе много раз.2.

Требуются сложные вычисления.||Чтобы улучшить производительность запроса, можно определитьдополнительный столбец, который будет содержать результаты вычислений дляГлава 3. Создание базы данных133|||данного выражения. Затем в запросе, в котором используется это же выражение,можно непосредственно использовать этот генерируемый столбец; этотгенерируемый столбец также может подставить вместо выражения оптимизатор.|Для генерируемого столбца можно также создать неуникальный индекс.|||Для запросов, объединяющих данные двух или нескольких таблиц, добавлениегенерируемого столбца может позволить оптимизатору выбрать лучшуювозможную стратегию объединения.|||||||Ниже показан пример определения генерируемого столбца в операторе CREATETABLE:|||Создав таблицу, можно использовать эти генерируемые столбцы для созданияиндексов. Например,|||Генерируемые столбцы может быть выгодно использовать в запросах.Например,||можно переписать как||Другой пример:||можно написать как|||||Генерируемые столбцы будут использоваться для улучшенияпроизводительности запросов.

Полученные генерируемые столбцы будуттакими же, как если бы они были добавлены после создания и заполнениятаблицы. Дополнительную информацию смотрите в разделе “Создание изаполнение таблицы” на стр. 123.CREATE TABLE t1 (c1c2c3c4INT,DOUBLE,DOUBLE GENERATED ALWAYS AS (c1 + c2)GENERATED ALWAYS AS(CASE WHEN c1 > c2 THEN 1 ELSE NULL END))CREATE INDEX i1 ON t1(c4)SELECT COUNT(*) FROM t1 WHERE c1 > c2SELECT COUNT(*) FROM t1 WHERE c4 IS NOT NULLSELECT c1 + c2 FROM t1 WHERE (c1 + c2) * c1 > 100SELECT c3 FROM t1 WHERE c3 * c1 > 100Создание пользовательской временной таблицы|||||Для определения временной таблицы используется оператор DECLAREGLOBAL TEMPORARY TABLE. Этот оператор используется в прикладнойпрограмме. Эта пользовательская временная таблица существует, только покаприкладная программа соединена с базой данных.134Руководство администратора: Реализация|||Описание этой таблицы не появляется в системном каталоге, поэтому онанедоступна для других прикладных программам и не может имииспользоваться.|||Когда использующая эту таблицу прикладная программа завершает работу иотсоединяется от базы данных, из таблицы удаляются все данные и она неявноотбрасывается.||||||Пример определения временной таблицы:|||||||||||||Этот оператор создает пользовательскую временную таблицу с именемgbl_temp.

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

Если дляэтой таблицы не открыт указатель WITH HOLD, при выполнении операциипринятия (COMMIT) из нее удаляются все данные. Информация об измененияхдля пользовательской временной таблицы не записывается в журнал.Пользовательская временная таблица помещается в указанное пользовательскоевременное табличное пространство. Это табличное пространство должносуществовать, иначе объявление этой таблицы будет ошибочным.||Дополнительную информацию об операторе DECLARE GLOBAL TEMPORARYTABLE смотрите в руководстве SQL Reference.||||||Примечание: Пользовательские временные таблицы не поддерживают:v Столбцы с типом большой объект (или с пользовательскимтипом на основе большого объекта)|||||DECLARE GLOBAL TEMPORARY TABLE gbl_tempLIKE empltablON COMMIT DELETE ROWSNOT LOGGEDIN usr_tbspv Столбцы с пользовательскими типамиv Столбцы LONG VARCHARv Столбцы DATALINKОпределение столбца идентификации в новой таблицеСтолбец идентификации позволяет DB2 автоматически генерироватьгарантированно уникальное числовое значение для каждой строки, добавляемойк таблице.

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

Тип файла
PDF-файл
Размер
3,14 Mb
Тип материала
Высшее учебное заведение

Список файлов курсовой работы

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