DB, Oracle, SQL Flashcards
Что такое DDL, DML, DCL?
DDL - Data Definition Language (Create, Alter, Drop and Truncate)
DML - Data Manipulation Language(Insert, Delete, Update)
DCL - Data Control Language (REVOKE, GRANT)
Какие свойства транзакции?(ACID)
Атомарность
Согласованность
Изоляция
Стойкость
Что такое атомарность?
Атомарность гарантирует, что никакая транзакция не будет зафиксирована в системе частично. Будет либо выполнены все её под операции, либо не выполнено ни одной.
Что такое изоляция?
Во время выполнения транзакции параллельные транзакции не должны оказывать влияния на её результат. Изолированность требование дорогое, поэтому в реальных БД существуют режимы, не полностью изолирующие транзакцию.
Что такое долговечность?
Независимо от проблем на нижних уровнях, изменения, сделанные успешно завершенной транзакцией, должны остаться сохраненными после возвращения в работу. Другими словами, если пользователь получил подтверждение от системы, что транзакция выполнена, он может быть уверен, что сделанные им изменения не будут отменены из-за какого-либо сбоя.
Что такое Database Lock?
Какие есть типы database lock-ов?
Это блокировка данных транзакцией.
Типы:
Shared Lock - позволяет совместное использование
Exclusive Lock - запрещает доступ к ресурсу, пока проходит операция.
Что такое нормализация базы данных?
Процесс приведения базы данных к виду, в котором она будет соответствовать правилам нормальных форм.
Какие есть три нормальных формы базы данных?
1 NF - нет повторений элементов или груп элементов.
2 NF - 1 NF + все неключевые атрибуты полностью функционально зависят от первичного ключа.
3 NF - 2 NF + нет транзитивных функциональных зависимостей.
Что такое первичный ключ(primary key)
Это столбец или несколько столбцов, которые однозначно идентифицируют каждую запись в таблице.
Что такое внешний ключ (foreign key )
Это поле которое указывает на первичный ключ в другой таблице.
Что такое связь one-to-one?
В связи “один-к-одному” строке таблицы А может сопоставляться только одна строка таблицы Б, и наоборот.
Связь один-к-одному создается, если для обоих связанных ключей определены ограничения первичного ключа или уникальности.
Что такое связь one-to-many?
Когда одной строке таблицы А может сопоставляться несколько строк таблицы Б.
Связь many-to-many
В строке таблицы А может сопоставляться несколько строк таблицы Б и наоборот. Такие связи создаются определением третьей таблицы, которая называется таблицей соединения, чей первичный ключ состоит из внешних ключей А и Б.
Что такое self referencing?
Такой тип связи используется когда у таблицы должна быть связь с собой. Это можно представить как древовидную структуру.
Какой оператор в SQL используется для поиска по шаблону?
LIKE
Какие есть типы JOIN операторов?
LEFT JOIN все записи А и записи Б совпадающие с А
RIGHT JOIN все из Б
INNER JOIN пересечение А и Б
FULL OUTER JOIN и А и Б
Что такое CROSS JOIN?
Это оператор перекрестного соединения, или декартова произведения CROSS JOIN соединяет две таблицы.
Декартово произведение это “все со всеми”
Что такое представление в БД (view)
Это виртуальные таблицы, которые используют запросы чтобы динамически получить данные.
Что такое индекс в базе данных?
Это вспомогательная структура данных (хеш таблица или бинарное дерево), которая позволяет быстрее проводить поиск.
Что такое materialized view?
Это такое представление(view), которое сохраняется на диске, может обновляться и индексироваться.
Какие преимущества и недостатки использования представлений (view)?
Преимущества:
Физически не храним данные, абстрагируемся от деталей, ограничение доступа.
Недостатки:
не используются после удаления таблицы, замедление при запросе, на больших таблицах используется много памяти.
Что такое хранимая процедура(stored procedure)?
Это функция, которая содержит набор SQL запросов, может принимать входные параметры и возвращать результат.
Как создать хранимую процедуру?
CREATE OR REPLACE
PROCEDURE procedure_name
….
END procedure_name;
Что такое триггер?
Это набор команд, которые выполняются на событие. Например, перед вставкой записи или после обновления.
Чем отличаются команды DELETE, TRUNCATE и DROP?
После DELETE данные можно восстановить, а после TRUNCATE нет.
DROP удаляет таблицу или столбец.
Чем отличается WHERE от HAVING?
WHERE и HAVING работают как фильтры для записей.
HAVING для столбцов с агрегатными записями.
WHERE для статических столбцов.
Что такое schema в Oracle?
Коллекция объектов (таблицы, представления, индексы и т.д.) которые принадлежат пользователю.
Что такое Sequence?
Объект базы данных, который используется для генерации уникальных int значений.
Что такое курсор в SQL?
Курсор это именованный кусок информации, к которому можно доступиться. Курсоры используются для запросов, которые возвращают несколько строк.
Какие операторы работают с NULL значениями в Oracle?
NVL - конвертирует NULL в другое специфическое значение.
IS NULL и IS NOT NULL проверяют значения переменной.
Какие есть уровни изоляции транзакций в Oracle?
Read committed(default)
Serializable transaction
Read only
Как в Oracle начать и закончить транзакцию?
Нет SQL выражения для начала транзакции, закончить - COMMIT/ROLLBACK
Начинается автоматически с первого запроса.
Что такое DUAL таблица и для чего используется.
В большинстве запросов должна быть ссылка на таблицу или представление. Как правило, для таких запросов используется таблица DUAL. Таблица DUAL - это реальная таблица схеме SYS, содержащая только одну запись.
Как превратить дату в строку?
Использовать функцию TO_CHAR.
Какие вызнаете агрегатные функции?
AVG COUNT FIRST LAX MAX MEDIAN MIN SUM
Что такое подзапрос?
Подзапросы, внутренние или вложенные запросы - это запрос внутри запроса. Обычно, подзапрос используется в конструкции WHERE.
Что такое настройка запроса?
Это оптимизация проблемных запросов.
Использование подсказок(hint), что бы перехитрить оптимизатор.
Эффективное использование объединений.
Использование опции Pфrallel Query,для разделения запроса.
Использование простых математичских методов для предвидения производительности запроса.
Что такое data block в Oracle?
Блок данных соответствует числу байт физического пространства базы данных.
Что такое data extends в Oracle?
Это определенное количество смежных блоков данных, выделенных для хранения конкретного типа информации.
Что такое разделение(partitioning) в Oracle?
Это разделение таблицы или индекса на несколько логически связанных частей, фрагментов, секций с неким общим признаком. Допустим, у нас есть таблица начислений, мы разбиваем эту таблицу на множество секций, например по начислениям за каждый месяц.
Какие типы таблиц есть в Oracle?
Таблицы, организованные в виде кучи. Таблицы в кластере. Таблицы в хеш-кластере. Вложенные таблицы. Временные таблицы. Объектные таблицы.
Какие типы индексов есть в Oracle?
B-Tree index - наиболее часто используемый тип индексов, организованных как сбалансированное дерево ключей. Function based index Inverted index Reversed index Bitmap index Spatial index
Какие символьные типы данных есть в Oracle?
CHAR
NCHAR
NVARCHAR2
VARCHAR2
Чем отличаются CHAR и NCHAR
CHAR размер определяется в байтах по умолчанию (1-4 байт)
NCHAR размер задается в символах по умолчанию. Храниться d Unicode
Какие числовые типы данных в Oracle?
NUMBER
BINARY_FLOAT
BINARY_DOUBLE
Какие типы дат есть в Oracle??
DATE
TIMESTAMP
INTERVAL YEAR TO MONTH
INTERVAL DAY TO SECOND
Что такое TableSpace?
Это логическое пространство, которое СУБД использует для хранения объектов базы данных, таких как индексы, таблицы и т.п.
Эти объекты хранятся в виде сегментов. При создании табличного пространства определяется его имя, которое используется для указания на пространство в запросах СУБД
Что такое NoSQL?
Ряд подходов, направленных на реализацию хранилищ баз данных, имеющих существенные отличия от моделей используемых в традиционных реляционных базах данных.
NoSQL стал общим термином для различных баз данных и хранилищ, но он не обозначает какую-либо одну конкретную технологию или продукт.
Какие основные характеристики NoSQL баз данных?
Не использует SQL.
Неструктурированные(schemaless)
Представление в виде агрегатов(aggregates)
Слабые ACID свойства
Распределенные системы, без совместно используемых ресурсов (share nothing)
Какие есть типы хранилищ баз данных NoSQL
Хранилище “ключ-значчение
Хранилище семейств колонок (или Bigtable-подобные базы данных)
Документо-ориентированная СУБД
Базы данных на основе графов
Что такое MapReduce, для каких данных используется?
MapReduce - модель распределенных вычислений представленная компанией Google, используемая для параллельных вычислений на очень большими, несколько петабайт, наборами данных в компьютерных кластерах.
Какой принцип работы MapReduce?
Работа MapReduce состоит из двух шагов: Map и Reduce
Map предварительная обработка входных данных.
Reduce свертка предварительно обработанных данных. Главный узел получает ответы от рабочих узлов и на их основе формирует результат.
Какое преимущество MapReduce?
Преимущество MapReduce заключается в том, что он позволяет распределено производить операции предварительной обработки и свертки. Операции предварительной обработки работают независимо друг от друга и могут производиться параллельно (хотя на практике это ограничено источником входных данных и/или количеством используемых процессоров)