Oracle DBA Forum  

Вернуться   Oracle DBA Forum > Oracle University Official Study Notes (RUS) > База данных Oracle 10g Администрирование > База данных Oracle 10g Администрирование I

Ответ
 
Опции темы Опции просмотра
  #11  
Старый 24.09.2009, 12:58
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию Состояния ограничений целостности



Состояния ограничений целостности

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

Ограничение целостности может находиться в одном из следующих состояний:

отключенное непроверенное (DISABLE NOVALIDATE);
отключенное проверенное (DISABLE VALIDATE);
включенное непроверенное (ENABLE NOVALIDATE);
включенное проверенное (ENABLE VALIDATE).

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

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

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

ENABLE VALIDATE (включенное непроверенное состояние)
Как новые, так и существующие данные соответствуют ограничению. Это обычное, устанавливаемое по умолчанию состояние ограничения целостности.
__________________
Телеграм чат
Ответить с цитированием
  #12  
Старый 24.09.2009, 13:01
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию Проверка ограничений



Проверка ограничений

Проверка ограничений может быть отложена и произведена в конце транзакции.

Неотложенные проверки ограничений, которые также называют немедленными (IMMEDIATE), производятся в конце каждого оператора DML. Нарушение ограничения вызывает откат соответствующего оператора. Если ограничение приводит к такому действию, как, например, каскадное удаление (delete cascade), то это действие выполняется как часть вызвавшего его оператора.
Если при определении ограничения не была задана возможность отложенной проверки (deferrable), тогда его нельзя изменить так, чтобы эта возможность стала доступной.


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


Ограничение, определенное как откладываемое (DEFERRABLE), может быть задано:

изначально с немедленной проверкой (INITIALLY IMMEDIATE) - т.е. по умолчанию функционирует как ограничение с немедленной проверкой, пока не будет явно указано иное;
изначально с отложенной проверкой (INITIALLY DEFERRED) - т.е. по умолчанию это ограничение проверяется только в конце транзакции.
__________________
Телеграм чат
Ответить с цитированием
  #13  
Старый 24.09.2009, 13:03
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию Примеры команд SQL, создающих ограничения



Примеры команд SQL, создающих ограничения

На слайде приведены три примера создания ограничений:

A). После выполнения этой команды любые операции вставки и обновления (update) над таблицей COUNTRIES должны удовлетворять требованию уникальности значений в столбце COUNTRY_NAME. Однако при этом допускается присутствие в таблице ранее существовавших повторяющихся значений в столбце COUNTRY_NAME. Ключевое слово NOVALIDATE означает, что такие значения игнорируются, а проверяются только новые строки.

B). По этой команде для таблицы employees добавляется ограничение главного ключа с именем РК, определяемое над столбцом EMPLOYEE_lD.

C). Ограничения определяются сразу при создании таблицы, а не позднее при использовании команды ALTER TABLE. Ограничение RI требует, чтобы значения в столбце FK совпадали с каким-либо значением в столбце главного ключа таблицы Т1. В соответствие с ограничением СК1 значения столбцов РК и С1 должны быть больше нуля.

Примечание: Каждое ограничение имеет имя. Если оно не указывается при создании в команде DDL, тогда система генерирует свое наименование, которое начинается с SYS_.
__________________
Телеграм чат
Ответить с цитированием
  #14  
Старый 24.09.2009, 13:04
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию Просмотр атрибутов столбцов таблицы



Просмотр атрибутов столбцов таблицы

Атрибуты столбцов таблицы можно просмотреть с помощью Enterprise Manager:

1. Щелкните на ссылке Tables в секции Schema на странице Administration.
2. Выберите таблицу в выводимом наборе и щелкните на кнопке View. Появятся атрибуты таблицы.
__________________
Телеграм чат
Ответить с цитированием
  #15  
Старый 24.09.2009, 13:05
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию Просмотр содержимого таблицы



Просмотр содержимого таблицы

Просмотреть строки таблицы можно, используя Enterprise Manager:

1. Выберите таблицу на странице Tables.
2. В выпадающем списке поля Actions выберите View Data и щелкните на кнопке Go.

Появится страница View Data. Строки с данными таблицы выводятся в секции Results. В окне Query выводится SQL-команда запроса, по которому были выведены результаты. На этой странице можно щелкнуть на любое имя столбца и отсортировать строки по этому столбцу в возрастающем или убывающем порядке.

Чтобы изменить запрос, щелкните на кнопке Refine Query. На странице Refine Query for Table можно выбрать выводимые столбцы и задать фразу WHERE, ограничивающую результирующий набор.

Дополнительные сведения о фразе WHERE в командах SQL см. в документе Oracle Database SQL Reference.
__________________
Телеграм чат
Ответить с цитированием
  #16  
Старый 24.09.2009, 13:07
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию Операции с таблицами



Операции с таблицами

Можно выбрать таблицу и затем выполнить с ней следующие действия:

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

Create Index; создание индекса для таблицы.

Generate DDL; в результате генерируется команда DDL для создания выбранной таблицы. Ее можно перенести в текстовый файл, чтобы затем вставить в скрипт-файл или в подготавливаемые документы.

Grant Privileges: По умолчанию после создания таблицы только владелец может выполнять с ней какие-либо действия. Владелец может предоставить привилегии другим пользователям, чтобы те могли выполнять команды DML и некоторые команды DDL с этой таблицей.

Show Dependencies; показываются объекты, от которых зависит данная таблица и объекты, которые зависят от выбранной таблицы.

View Data; выполняется команда запроса данных из таблицы. Данные изменить нельзя.
__________________
Телеграм чат
Ответить с цитированием
  #17  
Старый 24.09.2009, 13:09
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию Удаление таблицы



Удаление таблицы

Синтаксис:

Код:
DROP TABLE   [схема.]таблица   [CASCADE CONSTRAINTS]   [PURGE]

Команда DROP TABLE удаляет данные, описание структуры таблицы, а также соответствующие объектные привилегии. Ниже приведены некоторые указания по применению команды DROP TABLE.

При отсутствии предложения PURGE определение таблицы, соответствующие индексы и триггеры помещаются в корзину удаленные объектов (recycle bin). Таблица все еще существует, но недоступна без своего определения таблицы. При удалении таблицы с помощью Enterprise Manager предложение PURGE не используется.

Для восстановления объектов схемы из корзины используйте команду FLASHBACK TABLE. Корзина удаленных объектов очищается по команде PURGE RECYCLEBIN.

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


Примечание: Если при удалении не указывается опция PURGE, тогда место, занимаемое таблицей и ее индексами продолжает учитываться при проверке квоты пользователя на табличное пространство. Таким образом, считается, что это пространство пользователь продолжает использовать.
__________________
Телеграм чат
Ответить с цитированием
  #18  
Старый 24.09.2009, 13:11
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию Очищение таблицы



Очищение таблицы

Синтаксис:

Код:
TRUNCATE TABLE   [схема.]таблица   [{DROP   |   REUSE}   STORAGE]
В результате выполнения этой команды:

Таблица помечается как пустая после перемещения в ее начало отметки максимального заполнения (high-water mark, HWM). В результате такого перемещения HWM строки таблицы становятся недоступными.
Данные отмены (undo data) не генерируются; команда фиксируется неявно, так как TRUNCATE TABLE является командой DDL.
Очищаются соответствующие индексы.
Таблица, на которую организована ссылка при помощи внешнего ключа, очищена быть не может.
При выполнении этой команды не запускаются триггеры удаления.


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

база данных Oracle производит переустановку HWM для таблицы вместо обработки каждой строки при выполнении операции DELETE;
данные отмены не генерируются.
__________________
Телеграм чат
Ответить с цитированием
  #19  
Старый 24.09.2009, 13:12
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию Индексы



Индексы

Индексы - необязательные структуры, связанные с таблицами. Они могут быть созданы для повышения производительности при выполнении обновления (update) или выборки данных. Индекс Oracle предоставляет прямой путь доступа к строке данных.

Индексы могут быть созданы над одним или несколькими столбцами таблицы. После создания индекс автоматически сопровождается и используется сервером Oracle. Изменение данных таблицы (например, добавление, обновление или удаление строк) автоматически распространяется на соответствующие индексы и выполняется для пользователей совершенно прозрачно.
__________________
Телеграм чат
Ответить с цитированием
  #20  
Старый 24.09.2009, 13:14
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию Типы индексов



Типы индексов

Следующие типы индексов используются наиболее часто:

индекс В-дерева;
битовый индекс.


Индекс В-дерева (B-Tree Index) хранит ключевые значения в сбалансированном дереве (В-дереве), обеспечивающем быстрый двоичный поиск.

Битовый индекс (bitmap index) содержит битовую матрицу для каждого отличающегося ключевого значения индекса. Внутри битовой матрицы для каждой строки индексируемой таблицы имеется бит с соответствующим значением. Такой индекс обеспечивает быстрый поиск, если в нем содержится небольшое число отличающихся значений, то есть, когда индексируемый столбец имеет низкую кардинальность. В качестве примера можно привести столбец, содержащий сведения о поле и имеющий только одно из двух значений ("М" или "F"). В нем для поиска создаются только две битовые матрицы. Если же, например, использовать битовый индекс для столбца phone_number (номера телефонов), тогда потребуется сопровождать такое большое количество битовых матриц, что это будет очень неэффективно. Поэтому битовые индексы следует использовать для столбцов с низкой кардинальностью.
__________________
Телеграм чат
Ответить с цитированием
Ответ
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 12:52. Часовой пояс GMT +3.


Powered by vBulletin®