Основы проектирования реляционных баз данных
Элементы | Определение | ||
---|---|---|---|
1 | Источники данных | A | показывают места хранения данных. |
2 | Потоки данных | B | показывают операции, производимые над данными. |
3 | Хранилища данных | C | показывают, кто использует или работает с данными. |
4 | Процессы обработки данных | D | показывают способ передачи данных между источниками и хранилищами данных |
Тип приложения | Определение | ||
---|---|---|---|
1. | OLTP-система | A | - это такое приложение обработки данных, для которого база данных растет или сжимается в размерах периодически в зависимости от характера обработки данных. |
2. | DSS-система | Б | - это приложение, которое обеспечивает аналитическую обработку данных, включающую математический, статистический или иной анализ данных. |
3. | BATCH-системы | В | - это такое приложение, которое работает с базой данных в не интерактивном режиме. |
4. | OLAP-система | Г | - это такое приложение, которое работает с очень большой базой данных в режиме "только чтение". |
5. | VCDB-система | Д | - это такое приложение, которое содержит в основном транзакции вставки, обновления и удаления, с высокой частотой преимущественно транзакций обновления. |
Объект | Определение | ||
---|---|---|---|
1 | Хранимая процедура | А | - это объект базы данных, представляющий поименованный набор команд SQL и/или операторов специализированных языков программирования базы данных |
2 | Функция | Б | - это поименованный оператор SQL, который заранее откомпилирован и сохраняется в базе данных. Скорость обработки команды выше, чем у соответствующего ему оператора SQL, т.к. при этом не выполняются фазы синтаксического разбора и компиляции |
3 | Команда | В | - это объект базы данных, представляющий поименованный набор команд SQL и/или операторов специализированных языков обработки программирования базы данных, который при выполнении возвращает значение - результат вычислений |
4 | Триггер | Г | - это объект базы данных, который представляет собой специальную хранимую процедуру. Процедура запускается автоматически, когда происходит связанное с триггером событие (например, до вставки строки в таблицу) |
5 | Таймер | Д | - это объект базы данных, который состоит из поименованного, структурированного набора переменных, процедур и функций. |
6 | Пакет | Е | - это триггер, запускающийся событием таймера. |
Тип данных | Значение | ||
---|---|---|---|
1 | фаза синтаксического разбора | А | включает проверку синтаксиса команды, проверку имен таблиц и колонок в базе данных, а также подготовку исходных данных для оптимизатора |
2 | фаза оптимизации | Б | включает подстановку действительных имен таблиц и колонок базы данных в представление, идентификацию возможных вариантов выполнения команды, определения стоимости выполнения каждого варианта, выбор наилучшего варианта на основе внутренней статистики |
3 | фаза генерации исполняемого кода | В | включает выполнение кода команды |
4 | фаза выполнения команды | Г | включает построение выполняемого кода команды |
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 сделано, чтобы избежать создания второго индекса.
Является ли такое решение преимуществом с точки зрения утверждения: "Строки, имеющие специальные записи о клиенте, имеют более одной записи о клиенте".