Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_BD_Full.docx
Скачиваний:
37
Добавлен:
13.09.2019
Размер:
945.28 Кб
Скачать
  1. Субд Oracle. Определенные пользователем типы данных. Создание синонимов

Определенные пользователем типы данных – это типы полей, которые отличаются, от предусмотренных в Oracle.

CREATE TYPE name_info AS OBJECT (

ename VARCHAR2 (10),

address VARCHAR2 (10),

city VARCHAR2 (10));

CREATE TABLE tmp (TmpID NUMBER (4), tmp_info name_info);

INSERT INTO tmp VALUES(100,name_info(“Ivanov”,NULL,”Moskow”));

Синоним (Synonym) – это альтернативное имя (псевдоним) для объекта схемы. Если для какого либо объекта базы данных Oracle существует синоним, то к объекту из SQL запроса можно обращаться либо по его настоящему имени, либо по синониму. Так же они обеспечивают некоторый уровень безопасности, поскольку скрывают имя объекта и его владельца, а так же делают прозрачным местоположение удаленных объектов распределенных баз данных.

Различают два типа синонимов:

  • Частный (PRIVATE)- синонимы содержаться в схеме конкретного пользователя и доступны только самому пользователю, и тем, кому он предоставил соответствующие права доступа.

  • Общий (PUBLIC)- этими синонимами владеет специальная группа пользователей – PUBLIC, в результате чего эти синонимы доступны всем пользователям базы данных.

Для создания синонимов используется конструкция CREATE SYNONYM или CREATE PUBLIC SYNONYM, в зависимости от типа создаваемого синонима. При создании наличие реального объекта и привилегий доступа к нему не требуется.

В общем случае:

CREATE SYNONYM [имя_синонима] FOR[имя_объекта]

CREATE PUBLIC SYNONYM [имя_синонима] FOR[имя_объекта]

Удаление синонима:

DROP SYNONYM A;

DROP PUBLIC SYNONYM B;

Пример:

CREATE SYNONYM zakd FOR student.Zakupkad;

  1. Субд Oracle. Создание ограничений

Ограничения (Constraints) — правила для данных, которые гарантирует их непротиворечивость (в рамках одной таблицы или по отношению к данным из других таблиц). Могут применяться на уровне столбца или таблицы. Могут налагаться после создания таблицы.

Существует 2 основных типа ограничений:

  1. Целостности данных (Data Integrity Constraints)

  2. Ограничения целостности ссылок (Referential Constraints) — относятся к связям между таблицами (например, на основе первичного и внешнего ключей).

Для облегчения вставки данных в связанные таблицы можно использовать команды DISABLE/ENABLE CONSTRAINT, которые позволяют временно игнорировать ограничения.

ALTER TABLE имя_таблицы DISABLE CONSTRAINT имя_ограчения [CASCADE];

позволяет удалить ограничение и все связанные с ним при использовании параметра CASCADE.

ALTER TABLE имя_таблицы ENABLE CONSTRAINT имя_ограничения;

позволяет снова наложить ограничение.

Пример:

Следующие два оператора устанавливают пределы значений столбцов BirthDate и DeceasedDate:

ALTER TABLE ARTIST ADD CONSTRAINT BDLimit CHECK (BirthDate BETWEEN 1400 AND 2100):

ALTER TABLE ARTIST ADD CONSTRAINT DDLimit CHECK (DeceasedDate BETWEEN 1400 AND 2100).

  1. Субд Oracle. Создание табличных пространств

Файл данных БД, представляет собой реальный файл, операционной системы. Он доступен для просмотра, но выполнять с ним какие либо действия рекомендуется только с помощью средств БД! Файлы данных хранят "табличные пространства", один файл данных хранит только одно "табличное пространство"! Создаются файлы данных с помощью, команд CREATE TABLESPACE и ALTER TABLESPACE. Размер, этих файлов определяется при создании и может быть изменен в процессе работы, как в сторону увеличения, так и в сторону уменьшения, но не меньше чем объем данных, которые в нем находятся! Так же, если вы создали файл данных (объявив новое табличное пространство), скажем 20Мгб, то файл и будет размером 20Мгб, не смотря на то, что будет в нем, таблица с одной строкой или с миллионом строк! Просмотреть все файлы данных ("табличные пространства") можно заглянув в каталог, C:\Oracle\ORADATA\proba, все файлы с расширением dbf и есть файлы данных или "табличные пространства". Либо можно дать, такой запрос в SQL*Plus, естественно войдя пользователем SYSTEM с паролем MANAGER:

SQL> SELECT tablespace_name, file_name, bytes

2 FROM dba_data_files

3 ORDER BY tablespace_name, file_name

4 /

TABLESPACE_NAME FILE_NAME BYTES

------------------------------ ------------------------------------------------------------ ----------

INDX C:\ORACLE\ORADATA\PROBA\INDX01.DBF 2097152

OEM_REPOSITORY C:\ORACLE\ORADATA\PROBA\OEMREP01.DBF 5242880

RBS C:\ORACLE\ORADATA\PROBA\RBS01.DBF 26214400

SYSTEM C:\ORACLE\ORADATA\PROBA\SYSTEM01.DBF 146800640

TEMP C:\ORACLE\ORADATA\PROBA\TEMP01.DBF 2097152

USERS C:\ORACLE\ORADATA\PROBA\USERS01.DBF 3145728

Отсюда хорошо видно, что мы имеем 6-ть файлов данных, или - "табличные пространства".

Итак, что это такое? Это собственно и есть те самые файлы данных, основные табличные пространства, которые создаются при автоматической установке БД, хорошо видно из предыдущего запроса, а именно:

  1. SYSTEM - хранит все словари данных и системные объекты.

  2. USERS - для хранения пользовательских объектов.

  3. INDX - табличное пространство для организации индексов БД.

  4. RBS - табличное пространство сегментов отката.

Вспомогательные:

  1. OEM_REPOSITORY - специальное пространство, которое использует администратор БД (чуть позже).

  2. TEMP - для нужд, остальных пространств.

Данная классификация весьма не полная. Табличные пространства, это еще одна сущность сервера БД Oracle. То есть вся система собственно и базируется на табличных пространствах. Их основное отличие от файлов данных, это то, что табличное пространство может содержать несколько файлов данных. Табличное пространство, следуя строгим определениям, не что иное, как логическая структура, используемая для группировки данных с однотипными методами доступа. Надеюсь это понятно. Так же табличные пространства, это основные объекты операций резервного копирования и восстановления.

Для создания, удаления и изменения табличных пространств, пользователь должен иметь следующие привилегии - CREATE TABLESPACE, DROP TABLESPACE, ALTER TABLESPACE. Рассмотрим первую из них:

CREATE TABLESPACE -- (табличное_пространство) -- DATAFILE -- (спецификация_файла) - (авторасширение)-*

--* -- MINIMUM -> EXTENT - (целое число) - К(килобайт)/М(мегабайт) --

-- LOGGING --

-- NOLGGING --

-- DEFAULT STORAGE -

-- ONLINE --

-- OFFLINE --

-- PERMANENT --

-- TEMPORARY --

-- (конструкция_управления_экстентами) -- (;)

--*

*-- конструкция_максимального_размера --

-- MAXISIZE -- UNLIMITED --------------------------------

-- (целое число) - К(килобайт)/М(мегабайт) --

"конструкция_авторасширения"

-- AUTOEXTEND -- OFF

-- NEXT -- (целое число) - К(килобайт)/М(мегабайт) --

-- ON ----------------------------------- (конструкция_максимального_размера)

"конструкция_управления_экстентами"

------------------ DICTIONARY -----------------------------

---- AUTOALLOCATE -----------------

-- EXTEND -- MANAGEMENT -- LOCAL ---- UNIFORM -- SIZE -- (целое число) - К(килобайт)/М(мегабайт) --

Рассмотрим основные конструкции. С первого взгляда их здесь много, но это не столь важно, просто я привел полную конструкцию команды из руководства администратора, по этому не пугайтесь все будет понятно. Значок -* и *- в данном случае указывает, что строка продолжается как бы в одну строку. Начнем помаленьку:

  • "конструкция_авторасширения" - разрешает или запрещает авто расширение файла данных. ON разрешает и OFF запрещает соответственно. 

  •  "конструкция_максимального_размера" - указывает максимальное дисковое пространство, которое может быть выделено файлу данных. UNLIMITED - снимает ограничения на выделение дискового пространства файлу данных. 

  • LOGGING/NOLGGING - указывает атрибуты протоколирования, по умолчанию LOGGING. 

  • DEFAULT STORAGE - определяет для всех объектов создаваемых в табличном пространстве, значения параметров хранения по умолчанию. 

  • ONLINE/OFFLINE - определяет сразу после создания доступность табличного пространства. 

  • PERMANENT/TEMPORARY - постоянное или временное пространство для хранения объектов БД, по умолчанию PERMANENT. 

  • "конструкция_управления_экстентами" - определяет способ управления экстентами табличного пространства. 

  • DICTIONARY - установка по умолчанию, определяет управление по таблицам словаря данных. 

  • LOCAL - указывает на локальное управление экстентами. 

  • AUTOALLOCATE - управляется системой и пользователь не может влиять на размер экстента БД. 

  • UNIFORM - указывает, что экстенты имеют фиксированный размер в SIZE байт.

Пример:

CREATE TABLESPACE TBLSPCMYONE DATAFILE 'C:\ORACLE\ORADATA\PROBA\TEMP\ONE.DAT'

SIZE 100M REUSE AUTOEXTEND ON NEXT 2M MAXSIZE 200M

/

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]