DB, Oracle, SQL Flashcards

1
Q

Что такое DDL, DML, DCL?

A

DDL - Data Definition Language (Create, Alter, Drop and Truncate)
DML - Data Manipulation Language(Insert, Delete, Update)
DCL - Data Control Language (REVOKE, GRANT)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Какие свойства транзакции?(ACID)

A

Атомарность
Согласованность
Изоляция
Стойкость

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Что такое атомарность?

A

Атомарность гарантирует, что никакая транзакция не будет зафиксирована в системе частично. Будет либо выполнены все её под операции, либо не выполнено ни одной.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Что такое изоляция?

A

Во время выполнения транзакции параллельные транзакции не должны оказывать влияния на её результат. Изолированность требование дорогое, поэтому в реальных БД существуют режимы, не полностью изолирующие транзакцию.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Что такое долговечность?

A

Независимо от проблем на нижних уровнях, изменения, сделанные успешно завершенной транзакцией, должны остаться сохраненными после возвращения в работу. Другими словами, если пользователь получил подтверждение от системы, что транзакция выполнена, он может быть уверен, что сделанные им изменения не будут отменены из-за какого-либо сбоя.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Что такое Database Lock?

Какие есть типы database lock-ов?

A

Это блокировка данных транзакцией.
Типы:
Shared Lock - позволяет совместное использование
Exclusive Lock - запрещает доступ к ресурсу, пока проходит операция.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Что такое нормализация базы данных?

A

Процесс приведения базы данных к виду, в котором она будет соответствовать правилам нормальных форм.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Какие есть три нормальных формы базы данных?

A

1 NF - нет повторений элементов или груп элементов.
2 NF - 1 NF + все неключевые атрибуты полностью функционально зависят от первичного ключа.
3 NF - 2 NF + нет транзитивных функциональных зависимостей.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Что такое первичный ключ(primary key)

A

Это столбец или несколько столбцов, которые однозначно идентифицируют каждую запись в таблице.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Что такое внешний ключ (foreign key )

A

Это поле которое указывает на первичный ключ в другой таблице.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Что такое связь one-to-one?

A

В связи “один-к-одному” строке таблицы А может сопоставляться только одна строка таблицы Б, и наоборот.
Связь один-к-одному создается, если для обоих связанных ключей определены ограничения первичного ключа или уникальности.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Что такое связь one-to-many?

A

Когда одной строке таблицы А может сопоставляться несколько строк таблицы Б.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Связь many-to-many

A

В строке таблицы А может сопоставляться несколько строк таблицы Б и наоборот. Такие связи создаются определением третьей таблицы, которая называется таблицей соединения, чей первичный ключ состоит из внешних ключей А и Б.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Что такое self referencing?

A

Такой тип связи используется когда у таблицы должна быть связь с собой. Это можно представить как древовидную структуру.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Какой оператор в SQL используется для поиска по шаблону?

A

LIKE

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Какие есть типы JOIN операторов?

A

LEFT JOIN все записи А и записи Б совпадающие с А
RIGHT JOIN все из Б
INNER JOIN пересечение А и Б
FULL OUTER JOIN и А и Б

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Что такое CROSS JOIN?

A

Это оператор перекрестного соединения, или декартова произведения CROSS JOIN соединяет две таблицы.
Декартово произведение это “все со всеми”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Что такое представление в БД (view)

A

Это виртуальные таблицы, которые используют запросы чтобы динамически получить данные.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Что такое индекс в базе данных?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Что такое materialized view?

A

Это такое представление(view), которое сохраняется на диске, может обновляться и индексироваться.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Какие преимущества и недостатки использования представлений (view)?

A

Преимущества:
Физически не храним данные, абстрагируемся от деталей, ограничение доступа.
Недостатки:
не используются после удаления таблицы, замедление при запросе, на больших таблицах используется много памяти.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Что такое хранимая процедура(stored procedure)?

A

Это функция, которая содержит набор SQL запросов, может принимать входные параметры и возвращать результат.

23
Q

Как создать хранимую процедуру?

A

CREATE OR REPLACE
PROCEDURE procedure_name
….
END procedure_name;

24
Q

Что такое триггер?

A

Это набор команд, которые выполняются на событие. Например, перед вставкой записи или после обновления.

25
Q

Чем отличаются команды DELETE, TRUNCATE и DROP?

A

После DELETE данные можно восстановить, а после TRUNCATE нет.
DROP удаляет таблицу или столбец.

26
Q

Чем отличается WHERE от HAVING?

A

WHERE и HAVING работают как фильтры для записей.
HAVING для столбцов с агрегатными записями.
WHERE для статических столбцов.

27
Q

Что такое schema в Oracle?

A

Коллекция объектов (таблицы, представления, индексы и т.д.) которые принадлежат пользователю.

28
Q

Что такое Sequence?

A

Объект базы данных, который используется для генерации уникальных int значений.

29
Q

Что такое курсор в SQL?

A

Курсор это именованный кусок информации, к которому можно доступиться. Курсоры используются для запросов, которые возвращают несколько строк.

30
Q

Какие операторы работают с NULL значениями в Oracle?

A

NVL - конвертирует NULL в другое специфическое значение.

IS NULL и IS NOT NULL проверяют значения переменной.

31
Q

Какие есть уровни изоляции транзакций в Oracle?

A

Read committed(default)
Serializable transaction
Read only

32
Q

Как в Oracle начать и закончить транзакцию?

A

Нет SQL выражения для начала транзакции, закончить - COMMIT/ROLLBACK
Начинается автоматически с первого запроса.

33
Q

Что такое DUAL таблица и для чего используется.

A

В большинстве запросов должна быть ссылка на таблицу или представление. Как правило, для таких запросов используется таблица DUAL. Таблица DUAL - это реальная таблица схеме SYS, содержащая только одну запись.

34
Q

Как превратить дату в строку?

A

Использовать функцию TO_CHAR.

35
Q

Какие вызнаете агрегатные функции?

A
AVG
COUNT
FIRST
LAX
MAX
MEDIAN 
MIN 
SUM
36
Q

Что такое подзапрос?

A

Подзапросы, внутренние или вложенные запросы - это запрос внутри запроса. Обычно, подзапрос используется в конструкции WHERE.

37
Q

Что такое настройка запроса?

A

Это оптимизация проблемных запросов.
Использование подсказок(hint), что бы перехитрить оптимизатор.
Эффективное использование объединений.
Использование опции Pфrallel Query,для разделения запроса.
Использование простых математичских методов для предвидения производительности запроса.

38
Q

Что такое data block в Oracle?

A

Блок данных соответствует числу байт физического пространства базы данных.

39
Q

Что такое data extends в Oracle?

A

Это определенное количество смежных блоков данных, выделенных для хранения конкретного типа информации.

40
Q

Что такое разделение(partitioning) в Oracle?

A

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

41
Q

Какие типы таблиц есть в Oracle?

A
Таблицы, организованные в виде кучи.
Таблицы в кластере.
Таблицы в хеш-кластере.
Вложенные таблицы.
Временные таблицы.
Объектные таблицы.
42
Q

Какие типы индексов есть в Oracle?

A
B-Tree index - наиболее часто используемый тип индексов, организованных как сбалансированное дерево ключей.
Function based index
Inverted index
Reversed index
Bitmap index
Spatial index
43
Q

Какие символьные типы данных есть в Oracle?

A

CHAR
NCHAR
NVARCHAR2
VARCHAR2

44
Q

Чем отличаются CHAR и NCHAR

A

CHAR размер определяется в байтах по умолчанию (1-4 байт)

NCHAR размер задается в символах по умолчанию. Храниться d Unicode

45
Q

Какие числовые типы данных в Oracle?

A

NUMBER
BINARY_FLOAT
BINARY_DOUBLE

46
Q

Какие типы дат есть в Oracle??

A

DATE
TIMESTAMP
INTERVAL YEAR TO MONTH
INTERVAL DAY TO SECOND

47
Q

Что такое TableSpace?

A

Это логическое пространство, которое СУБД использует для хранения объектов базы данных, таких как индексы, таблицы и т.п.
Эти объекты хранятся в виде сегментов. При создании табличного пространства определяется его имя, которое используется для указания на пространство в запросах СУБД

48
Q

Что такое NoSQL?

A

Ряд подходов, направленных на реализацию хранилищ баз данных, имеющих существенные отличия от моделей используемых в традиционных реляционных базах данных.
NoSQL стал общим термином для различных баз данных и хранилищ, но он не обозначает какую-либо одну конкретную технологию или продукт.

49
Q

Какие основные характеристики NoSQL баз данных?

A

Не использует SQL.
Неструктурированные(schemaless)
Представление в виде агрегатов(aggregates)
Слабые ACID свойства
Распределенные системы, без совместно используемых ресурсов (share nothing)

50
Q

Какие есть типы хранилищ баз данных NoSQL

A

Хранилище “ключ-значчение
Хранилище семейств колонок (или Bigtable-подобные базы данных)
Документо-ориентированная СУБД
Базы данных на основе графов

51
Q

Что такое MapReduce, для каких данных используется?

A

MapReduce - модель распределенных вычислений представленная компанией Google, используемая для параллельных вычислений на очень большими, несколько петабайт, наборами данных в компьютерных кластерах.

52
Q

Какой принцип работы MapReduce?

A

Работа MapReduce состоит из двух шагов: Map и Reduce
Map предварительная обработка входных данных.
Reduce свертка предварительно обработанных данных. Главный узел получает ответы от рабочих узлов и на их основе формирует результат.

53
Q

Какое преимущество MapReduce?

A

Преимущество MapReduce заключается в том, что он позволяет распределено производить операции предварительной обработки и свертки. Операции предварительной обработки работают независимо друг от друга и могут производиться параллельно (хотя на практике это ограничено источником входных данных и/или количеством используемых процессоров)