Основы проектирования реляционных баз данных
Термин | Определение | ||
---|---|---|---|
1. | Ключ секционирования | A | колонка таблицы, относительно значений которых СУБД будет делать физическое разнесение таблицы по различным табличным пространствам на жестких дисках |
2. | Секционирование по диапазону | Б | означает распределение строк таблицы на различные предопределенные табличные пространства в зависимости от значения ключа секционирования |
3. | Хеш-секционирование | В | означает, что таблица сначала распределяется среди табличных пространств на основе диапазона значений ключа секционирования, далее каждая из полученных секций диапазонов делится на подчиненные секции или подсекции, и затем строки равномерно распределяются среди подчиненных секций по значению хеш-ключа |
4. | Составное секционирование | Г | означает равномерное распределение строк таблицы по назначенным табличным пространствам в зависимости от значения ключа секционирования, который в данном случае хешируется |
Действия | |
---|---|
1. | Создание таблиц |
2. | Определение типов данных колонок |
3. | Определение первичного ключа |
4. | Задание ограничений на значения колонок |
5. | Создание таблиц для взаимосвязи многие-ко-многим |
6. | Создание индексов |
7. | Создание представлений |
8. | Проверка корректности созданной физической модели |
9. | Создание других объектов базы данных |
CREATE CLUSTER cust_c (cust_id varchar(8))INDEX;CREATE INDEX cust_c_id ON CLUSTER cust_c;CREATE TABLE cust (cust_id varchar2(8) NOT NULL REFERENCES customers,ent# number NOT NULL,date_ent date NOT NULL,comment varchar2(60) NOT NULL,…PRIMARY KEY(cust_id, ent#)) CLUSTER cust_c (cust_id);
Созданная таблица кластеризована по колонке cust_id, и все специальные записи о клиента в колонке comment будут расположены в одной странице физической базы данных, либо в смежных страницах. Их можно выбрать за одну операцию поиска по индексу:
SELECT date_ent, comment FROM cust_c WHERE cust_id=:cur_cust;
Комментарий. Ограничение первичного ключа в операторе CREATE сделано, чтобы избежать создания второго индекса.
Является ли такое решение преимуществом с точки зрения утверждения: "Строки, имеющие специальные записи о клиенте, имеют более одной записи о клиенте".
CREATE CLUSTER cust_c (cust_id varchar(8))INDEX;CREATE INDEX cust_c_id ON CLUSTER cust_c;CREATE TABLE cust (cust_id varchar2(8) NOT NULL REFERENCES customers,ent# number NOT NULL,date_ent date NOT NULL,comment varchar2(60) NOT NULL,…PRIMARY KEY(cust_id, ent#)) CLUSTER cust_c (cust_id);
Созданная таблица кластеризована по колонке cust_id, и все специальные записи о клиента в колонке comment будут расположены в одной странице физической базы данных либо в смежных страницах. Их можно выбрать за одну операцию поиска по индексу:
SELECT date_ent, comment FROM cust_c WHERE cust_id=:cur_cust;
Комментарий. Ограничение первичного ключа в операторе CREATE сделано, чтобы избежать создания второго индекса.
Является ли такое решение преимуществом с точки зрения утверждения: "Все записи о клиентах выбираются для ежегодного отчета".
CREATE CLUSTER cust_c (cust_id varchar(8))INDEX;CREATE INDEX cust_c_id ON CLUSTER cust_c;CREATE TABLE cust (cust_id varchar2(8) NOT NULL REFERENCES customers,ent# number NOT NULL,date_ent date NOT NULL,comment varchar2(60) NOT NULL,…PRIMARY KEY(cust_id, ent#)) CLUSTER cust_c (cust_id);
Созданная таблица кластеризована по колонке cust_id, и все специальные записи о клиента в колонке comment будут расположены в одной странице физической базы данных, либо в смежных страницах. Их можно выбрать за одну операцию поиска по индексу:
SELECT date_ent, comment FROM cust_c WHERE cust_id=:cur_cust;
Комментарий. Ограничение первичного ключа в операторе CREATE сделано, чтобы избежать создания второго индекса.
Является ли такое решение преимуществом с точки зрения утверждения: "При выборке специальных записей о клиенте для клиента выбираются все такие записи".
CREATE CLUSTER cust_c (cust_id varchar(8))INDEX;CREATE INDEX cust_c_id ON CLUSTER cust_c;CREATE TABLE cust (cust_id varchar2(8) NOT NULL REFERENCES customers,ent# number NOT NULL,date_ent date NOT NULL,comment varchar2(60) NOT NULL,…PRIMARY KEY(cust_id, ent#)) CLUSTER cust_c (cust_id);
Созданная таблица кластеризована по колонке cust_id, и все специальные записи о клиента в колонке comment будут расположены в одной странице физической базы данных, либо в смежных страницах. Их можно выбрать за одну операцию поиска по индексу:
SELECT date_ent, comment FROM cust_c WHERE cust_id=:cur_cust;
Комментарий. Ограничение первичного ключа в операторе CREATE сделано, чтобы избежать создания второго индекса.
Является ли такое решение преимуществом с точки зрения утверждения: "Очень немного строк о клиентах имеют специальные записи о клиенте".
Нормальная форма | Определение | ||
---|---|---|---|
1 | Первая нормальная форма (1НФ) | A | отношение должно удовлетворять зависимости по соединению относительно своих проекций. |
2 | Вторая нормальная форма (2НФ) | B | все неключевые атрибуты отношения функционально полно зависят от составного ключа отношения; отношение не должно содержать частичных ФЗ. |
3 | Третья нормальная форма (3НФ) | C | неключевые атрибуты отношения не зависят от ключей; отношение допускает наличия только таких нетривиальных ФЗ, в которых ключ определяет один или более других атрибутов: , где включает некоторый ключ. |
4 | Нормальная форма Бойса-Кодда (НФБК) | D | все неключевые атрибуты отношения зависят только от первичного ключа; отношение не должно содержать транзитивных ФЗ неключевых атрибутов от ключа |
5 | Четвертая нормальная форма (4НФ) | E | отношение не должно содержать независимых многозначных ФЗ. |
6 | Пятая нормальная форма (5НФ) | F | все атрибуты отношения являются простыми, т.е. не имеют компонентов. |
Ограничение | Описание | ||
---|---|---|---|
1 | CHECK | А | Гарантирует, что колонка всегда содержит значение и оно уникально в таблице |
2 | DEFAULT | Б | Помещает значение по умолчанию в колонку. Гарантирует, что колонка всегда имеет значение |
3 | FOREING KEY | В | Гарантирует, что значение существует как значение в колонке первичного ключа другой таблицы. Обеспечивает процедуры удаления дочерних строк при удалении связанных с ней родительских. |
4 | NOT NULL | Г | Гарантирует, что значение будет уникальным в таблице |
5 | PRIMARY KEY | Д | Гарантирует, что значения находятся в границах специфицированного интервала, задаваемого предикатом |
6 | UNIQUE | Е | Гарантирует, что колонка всегда содержит значение |
Термин | Определение | ||
---|---|---|---|
1. | Кластер | A | - это значение колонок, общих для кластеризуемых таблиц |
2. | Индексный кластер | Б | - это кластер, для физической организации которого используется индекс со структурой B-Tree |
3. | Хеш-кластер | В | - это кластер, для физической организации которого использует структура на основе преобразования ключа |
4. | Кластерный ключ | Г | - это группа таблиц, которая разделяет общие физические страницы данных при совместном использовании в запросах общих колонок этих таблиц |
Термин | Определение | ||
---|---|---|---|
1. | Локально секционированный индекс | A | имеет такой же ключ секционирования, количество табличных пространств и правила секционирования, что и отвечающая ему базовая таблица |
2. | Глобально секционированный индекс | Б | Ключ секционирования; секционирование выполняется по значениям, отличным от значений колонки индексирования |
3. | Префиксный секционированный индекс | В | означает, что индекс имеет то же число секций и те же правила секционирования, что и его базовая таблица |
4. | Непрефиксный секционированный индекс | Г | содержит предложение PARTITION BY RANGE, в котором задаются параметры секционирования, отличные от параметров секционирования соответствующей базовой таблицы |
5. | Локально равносекционированный секционированный индекс | Д | секционирование производится по ключу секционирования, который содержит основную часть индексного ключа |