Database Flashcards
- Какие СУБД вы знаете?
MySQL, PostgreSQL, SQLite, Mariadb
- В чем различия SQL и NoSQL?
Стуруктуры данных и их типы - реляционные БД используют строгие схемы данных, NoSQL БД допускают любой тип данных
Запросы - вне зависимости от типа лицензии, реляционные базы данных в той или иной мере соответствуют стандартам SQL, поэтому данные из них можно получать при помощи языка SQL. NoSQL БД используют специфические способы запросов к данным.
Масштабируемость - оба эти типа СУБД довольно легко поддаются вертикальному масштабированию (т.е. увеличение системных ресурсов). Тем не менее, так как NoSQL это более современный продукт, именно такие СУБД предлагают более простые способы горизонтального масштабирования (т.е. создание кластера из нескольких машин).
Надежность - когда дело доходит до сохранности данных и гарантии выполнения транзакций SQL БД по прежнему занимают лидирующие позиции.
- LEFT и INNER JOIN.
Простой JOIN - тоже самое что INNER JOIN и означает показывать только общие записи обоих таблиц. Каким образом записи считаются общими определяется полями в join-выражении. Например следующая запись
FROM t1 JOIN t2 on t1.id = t2.id
означает что будут показаны записи с одинаковыми id, существующие в обоих таблицах.
LEFT JOIN (или LEFT OUTER JOIN) означает показывать все записи из левой таблицы (той, которая идет первой в join-выражении) независимо от наличия соответствующих записей в правой таблице.
t1 k1 d1 1 1 2 2 3 3 4 4
t2 k1 d1 1 10 2 20 5 50 6 60
select d1, d2
from t1 inner join t2
on t1.k1 = t2.k2
d1 d2
1 10
2 20
select d1, d2
from t1 left join t2
on t1.k1 = t2.k2
1 10
2 20
3 null
4 null
- Что такое и как использовать UNION, GROUP BY, ORDER BY, CONCAT (CONCAT_WS)?
UNION - объединение результатов двух запросов в 1
GROUP BY - группировка результатов запроса по полю
ORDER BY - сортировка результатов запроса по полю
CONCAT - конкатенация строк
CONCAT_WS - конкатенация строк с разделителем |
- Что такое HAVING?
аналог WHERE, который используется после GROUP BY. Содержит условия для уже сгруппированных данных. Используется перед ORDER BY
- Использование LIKE в MySQL.
позволяет искать части строк в WHERE, где
% - любая последовательность символов
_ - один любой символ
- Что такое и зачем может использоваться VIEW?
Результат выполнения запроса SELECT
Упрощает работу с базой данных, ускоряет время ответа сервера, т.к. вместо запроса к нескольким таблицам проще обратиться к представлению.
Модифицируемые представления - при изменении данных в самом представлении, эти данные меняются и в таблицах.
- Master-slave репликация, зачем и когда?
Репликация — одна из техник масштабирования баз данных.
Состоит эта техника в том, что данные с одного сервера базы данных постоянно копируются (реплицируются) на один или несколько других (называемые репликами). Для приложения появляется возможность использовать не один сервер для обработки всех запросов, а несколько. Таким образом появляется возможность распределить нагрузку с одного сервера на несколько.
В режиме master-slave репликации есть один master-сервер, обрабатывающий запросы на изменения данных, и несколько slave-серверов, обрабатывающих запросы на чтение. В случае выхода мастера из строя, один из слейвов становится мастером.
В режиме master-master все сервера равноценны и могут обрабатывать любые запросы. Но она сложнее и если один из серверов дохнет, вы можете получить повреждение данных.