DB (Database) — совокупность данных, хранимых в соответствии со схемой данных, манипулирование которыми выполняют в соответствии с правилами средств моделирования данных.
DBMS (Database Management System) - совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных.
RDB (Relational Database) — это такая база данных, которая воспринимается ее пользователями как множество переменных (т.е. переменных отношения — relvar), значениями которых являются отношения или, менее формально, таблицы.
RDBMS (Database Management System) - DBMS, управляющая реляционными базами данных.
Table (Таблица) - объект DB, коллекция, состоящая из схемы (заголовка) и тела.
Scheme (Схема) - определяет поля таблицы.
Table Body (Тело таблицы) - множество записей, хранящих значения, соответствующие каждому столбцу таблицы.
Column (Столбец) - набор однотипных значений в таблице, соответствующий данному полю.
Field (Поле) - каждая таблица разделена на подразделы, называемые полями. Поле описывает один столбец, т.е. задает тип значения, которое будет в нем храниться, название столбца, ограничения, накладываемые на столбец.
Row (Строка) - элемент таблицы, который может состоять из нескольких значений (в зависимости от полей таблицы).
Нормальная форма определяется как совокупность требований, которым должно удовлетворять отношение.
Нормализация - процесс преобразования отношений базы данных к виду, отвечающему нормальным формам. Нормализация предназначена для приведения структуры БД к виду, обеспечивающему минимальную логическую избыточность.
Первая нормальная форма (1НФ) - отношение находится в 1НФ, если любое поле любой записи хранит только одно значение.
Вторая нормальная форма (2НФ) - выполняется условие 1НФ и любое неключевое поле полностью зависит от ключа.
Третья нормальная форма (3НФ) - выполняется условие 2НФ и нет неключевых полей зависящих от значения других неключевых полей.
Нормальная форма Бойса-Кодда (НФБК) - каждая нетривиальная неприводимая слева функциональная зависимость обладает потенциальным ключом в качестве детерминанта.
DML (Data Manipulation Language) - это семейство компьютерных языков, используемых в компьютерных программах или пользователями баз данных для получения, вставки, удаления или изменения данных в базах данных.
SELECT - получает определенные записи из одной или нескольких таблиц.
SELECT column1, column2....columnN
FROM table_name;
INSERT - вставляет в таблицу новую запись.
INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);
UPDATE - изменяет существующую запись.
UPDATE table_name SET column1 = value1, ...., columnN = valueN WHERE [condition];
DELETE - удаляет записи, удовлетворяющие условию.
DELETE FROM table_name
WHERE [condition];
DDL (Data Definition Language) - это семейство компьютерных языков, используемых в компьютерных программах для описания структуры баз данных.
CREATE - создает новую таблицу, представление таблицы или объект в базе данных или саму базу данных.
CREATE DATABASE DatabaseName;
CREATE TABLE table_name(column1 datatype, ... columnN datatype, PRIMARY KEY(M columns));
AFTER - модифицирует существующий объект БД, как например таблицу.
DROP - удаляет новую таблицу, представление таблицы или объект в базе данных или саму базу данных.
DROP TABLE table_name;
DROP DATABASE DatabaseName;
DDL (Data Definition Language) - подмножество языка управления базами данных SQL, предназначенное для осуществления административных операций, присваивающих или отменяющих право (привилегию) использовать базу данных, таблицы и другие объекты базы данных, а также выполнять те или иные операторы SQL.
GRANT - авторизует одного или более пользователей для представления операции или набора операций над объектом.
GRANT SELECT, UPDATE
ON example
TO some_user, another_user;
REVOKE - уничтожает возможность авторизации.
REVOKE SELECT, UPDATE
ON example
FROM some_user, another_user;
TCL (Transaction Control Language) - компьютерный язык и часть SQL, используемый для обработки транзакций.
COMMIT - оператор управления транзакциями языка SQL для успешного завершения транзакции. При выполнении оператора изменения, сделанные от начала транзакции и ранее не видимые для других транзакций, фиксируются в базе данных.
BEGIN TRANSACTION WORK;
INSERT INTO MyTable VALUES ('50', 'some string');
COMMIT WORK;
ROLLBACK - оператор языка SQL, который применяется для того, чтобы отменять все изменения, внесённые начиная с момента начала транзакции или с какой-то точки сохранения, очищать все точки сохранения данной транзакции, завершать транзакцию и освобождать все блокировки данной транзакции.
ROLLBACK TO SAVEPOINT_NAME;
SAVEPOINT - устанавливает точку сохранения внутри транзакции.
SAVEPOINT SAVEPOINT_NAME;
Отношение - фундаментальное понятие реляционной модели данных. Отношение обычно имеет простую графическую интерпретацию в виде таблицы, столбцы которой соответствуют атрибутам, а строки — кортежам, а в «ячейках» находятся значения атрибутов в кортежах.
Курсор - это средство языка SQL, позволяющее с помощью набора специальных операторов получить построчный доступ к результату запроса к БД.
Индекс — объект базы данных, создаваемый с целью повышения производительности поиска данных. Индекс формируется из значений одного или нескольких столбцов таблицы и указателей на соответствующие строки таблицы и, таким образом, позволяет искать строки, удовлетворяющие критерию поиска.
Некластерные индексы создаются СУБД по умолчанию. Данные физически расположены в произвольном порядке, но логически упорядочены согласно индексу. Такой тип индексов подходит для таблиц, где часто изменяются значения.
Кластерные индексы - данные физически упорядочены, что серьезно повышает скорость выборок данных (но только в случае последовательного доступа к данным).
Триггер - это SQL процедура, которая срабатывает при каком-нибудь событии (INSERT, DELETE или UPDATE). Триггер не может быть вызван или выполнен вручную, СУБД автоматически вызывает его после модификации данных в соответствующей таблице.
Ограничения - правила, накладываемые на таблицу или поле в таблице, призванные ограничить набор возможных записей в таблицу / столбец.
Представление - виртуальная таблица, представляющая данные одной или более таблиц альтернативным образом. Результат выполнения оператора SELECT.
Первичный ключ - столбец или множество столбцов в таблице, который функционально определяет все остальные столбцы.
id.CREATE TABLE City
(
id INTEGER NOT NULL PRIMARY KEY,
name CHAR(40)
)
Внешний ключ - столбец или множество столбцов в таблице, которое применяется для принудительного установления связи между данными в двух таблицах.
FOREIGN KEY при создании или изменении таблицы.Street имеет поле id_city, которое является внешним ключом и ссылается на таблицу City.
```sql
CREATE TABLE City
(
id INTEGER NOT NULL PRIMARY KEY,
name CHAR(40)
)CREATE TABLE Street ( id INTEGER NOT NULL PRIMARY KEY, name CHAR(40), id_city INTEGER NOT NULL FOREIGN KEY REFERENCES City(id) ) ```
Суррогатный ключ - это дополнительное служебное поле, добавленное к уже имеющимся информационным полям таблицы, единственное предназначение которого — служить первичным ключом.
id.Потенциальный ключ - столбец или множество столбцов в таблице, удовлетворяющих условиям уникальности и несократимости:
UNIQUE.JOIN или INNER JOIN - показывает только общие записи обоих таблиц.
SELECT table1.column1, table2.column2...
FROM table1
INNER JOIN table2 ON table1.common_field = table2.common_field;
OUTER JOIN или LEFT OUTER JOIN - показывает все записи из левой таблицы независимо от наличия соответствующих записей в правой таблице.
SELECT table1.column1, table2.column2...
FROM table1
LEFT JOIN table2 ON table1.common_field = table2.common_field;
FULL OUTER JOIN - показывает все возможные комбинации строк из обеих таблиц, соответствующие данному условию.
SELECT table1.column1, table2.column2...
FROM table1
FULL JOIN table2 ON table1.common_field = table2.common_field;
CROSS JOIN или декартово произведение образует все возможные комбинации строк из обеих таблиц.
SELECT table1.column1, table2.column2...
FROM table1, table2... ;
SELF JOIN используется для объединения таблицы с самой собой.
SELECT a.column_name, b.column_name...
FROM table1 a, table1 b
WHERE a.common_field = b.common_field;
Объединение с помощью вложенных циклов - это простейший способ объединения. Для каждой строки внешней зависимости ищуется совпадения по всем строкам внутренней зависимости. Временная сложность O(M*N).
Хеш-объединение - более сложная операция, но с низкой стоимостью. Считываются все элементы из внутренней зависимости; в памяти создается хеш таблица; один за другим считываются все эелменты из внешней зависимости. Для каждого элемента вычисляется хеш, чтобы можно было найти соответствующий блок внутренней зависимости; элементы из блока сравниваются с элементами из внешней зависимости. Временная сложность O(M + N), где M - стоимость создания хеш таблицы, а N - стоимость хеш функции.
Объединение слиянием - это единственный способ объединения, в результате которого данные получаются отсортированными. Сначала сортируются оба набора входных данных по ключам объединения, а затем осуществляется слияние (принцип сортировки слиянием). Временная сложность O(N + M), если входные зависимости отсортированны, иначе O(Nlog(N) + Mlog(M)).
Ограничения - правила, накладываемые на таблицу или поле в таблице, призванные ограничить набор возможных записей в таблицу / столбец.
NOT NULL - столбец не может иметь NULL значения.
DEFAULT - записывает в ячеку столбца дефолтное значение, если оно не было указано.
UNIQUE - обеспечивает отсутствие дубликатов в столбце или наборе столбцов. По умолчанию ограничение primary создает кластерный индекс на столбце, а unique - некластерный.
PRIMARY KEY - устанавливает ключевой столбец. По умолчанию ограничение primary создает кластерный индекс на столбце, а unique - некластерный.
FOREIGN KEY - устанавливает связь с ключевым стобцом другой таблицы.
CHECK - используется для ограничения множества значений, которые могут быть помещены в данный столбец.
INDEX - используется для быстрого создания и извлечения данных из БД.
Связь "один ко одному" (1:1) - в строке таблицы А может сопоставляться только одна строка таблицы Б, и наоборот. Реализуется с помощью указания внешних ключей в обеих таблицах у участников связи.
Связь "многие ко многим" (M:N) - в строке таблицы А может сопоставляться несколько строк таблицы Б, и наоборот. Реализуется с помощью отдельной таблицы с внешними ключами, ссылающимися на участников связи.
Связь "один ко многим" (1:N) - в этом типе связей у строки таблицы А может быть несколько совпадающих строк таблицы Б, но каждой строке таблицы Б может соответствовать только одна строка из А. Реализуется с помощью указания внешнего ключа в таблице Б, ссылающегося на участников связи таблицы А.
WHERE - используется для указания условия выборки данных из таблицы или при слиянии таблиц.
AND - связывающий оператор "И".
OR - связывающий оператор "ИЛИ".
LIMIT - выводит ограниченное число выделенных записей.
ORDER BY - выводит ограниченное число выделенных записей.
GROUP BY - группирует все записи с одинаковым условием.
DISTINCT - удаляет из выборки все записи с одинаковым условием.
AS - переименовывает таблицу или столбец для текущего запроса.
HAVING - используется для указания условия выборки данных из таблицы или при слиянии таблиц. В отличии от WHERE, HAVING применяется к результату операции и выполняется уже после того, как результат будет получен.
TRUNCATE - удаляет все значения из таблицы.
USE - выбирает доступную базу данных для подключения.
SHOW - выводит списк баз данных, таблиц или схем.
ALL - сравнивает значение с множеством других значений.
AND - позволяет устанавливать несколько условий.
ANY - сравнивает значение с множеством тех значений, которые удовлетворяют условию.
BETWEEN - возвращает множество значений, находящихся в указанном промежутке.
EXISTS - ищет вхождение строки в таблице, удовлетворяющее заданному критерию.
IN - сравнивает значение со списком указанных значений.
LIKE - сравнивает значение с другими похожими значениями используя wildcard.
NOT - реверсает результат логической операции.
OR - комбинирует условия.
IS NULL - сравнивает значение с NULL.
UNIQUE - ищет все уникальные строчки в таблице.
COUNT - подсчитывает количество строк в выборке.
MAX - выбирает максимальное значение из столца.
MIN - выбирает минимальное значение из столбца.
AVG - выбирает среднее значение из столбца.
SUM - подсчитывает сумму значений в числовом столбце.