Базы данных (Data Base)
8.21K subscribers
566 photos
468 videos
19 files
545 links
Базы данных (Data Base). По всем вопросам @evgenycarter
Download Telegram
Шпаргалка по основам SQL

#db

👉 @database_info
👍7
This media is not supported in your browser
VIEW IN TELEGRAM
Как выполняются SQL-запросы👨‍💻

Порядок выполнения SQL запроса определяет последовательность выполнения различных частей запроса SQL. Этот порядок важен, потому что он определяет, как данные фильтруются, группируются и упорядочиваются.

Вот упрощенное объяснение порядка выполнения SQL:

• 𝐅𝐑𝐎𝐌/𝐉𝐎𝐈𝐍: Оператор FROM указывает таблицы, из которых будут извлечены данные. Клауза JOIN может использоваться для объединения данных из нескольких таблиц.
• 𝐖𝐇𝐄𝐑𝐄: Оператор WHERE используется для фильтрации данных на основе определенных условий.
• 𝐆𝐑𝐎𝐔𝐏 𝐁𝐘: Оператор GROUP BY используется для группировки данных по одной или нескольким колонкам.
• 𝐇𝐀𝐕𝐈𝐍𝐆: Оператор HAVING используется для фильтрации сгруппированных данных на основе определенных условий.
• 𝐒𝐄𝐋𝐄𝐂𝐓: Оператор SELECT указывает столбцы, которые будут возвращены в наборе результатов.
• 𝐃𝐈𝐒𝐓𝐈𝐍𝐂𝐓: Ключевое слово DISTINCT может использоваться для обеспечения возврата только уникальных строк в наборе результатов.
• 𝐎𝐑𝐃𝐄𝐑 𝐁𝐘: Оператор ORDER BY используется для сортировки набора результатов по возрастанию или убыванию.
• 𝐋𝐈𝐌𝐈𝐓: Оператор LIMIT может использоваться для ограничения количества возвращаемых строк.

#db

👉 @database_info
👍9
Самый старый код в MSSQL

Ваш покорный слуга работал с MSSQL с версии 6.5, но в качестве экзотики застал версии 6.0 и 4.2. Да, я супер стар!

Но осталось ли в MS SQL что-либо с тех времен?

https://habr.com/ru/articles/788988/

#db

👉 @database_info
👍6
Media is too big
VIEW IN TELEGRAM
Нормальные формы баз данных: Объясняем на пальцах

00:00 - О чём пойдёт речь в статье
00:45 - Коротко о реляционных БД
01:20 - Что такое нормализация
01:46 - Зачем нужна нормализация БД
02:08 - Что такое избыточность данных с примерами
04:51 - Какие бывают нормальные формы БД и о процессе нормалиции в целом
08:00 - Ненормализованная форма или нулевая нормальная форма с примером
09:37 - Первая нормальная форма с примером нормализации
11:24 - Вторая нормальная форма с примером нормализации
15:29 - Что такое декомпозиция
16:18 - Третья нормальная форма с примером нормализации
18:54 - Нормальная форма Бойса-Кодда с примером нормализации
21:54 - Четвертая нормальная форма с примером нормализации
27:45 - Почему обычно никто не нормализует БД до 5 или 6 нормальной формы
29:14 - Пятая нормальная форма с примером нормализации
34:23 - Доменно-ключевая нормальная форма
35:39 - Шестая нормальная форма
38:02 - Выводы и заключение

источник

#db

👉 @database_info
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
DBDiagram

Бесплатный, простой инструмент для построения ER-диаграмм путем простого написания кода.
Предназначен для разработчиков и аналитиков данных.

https://dbdiagram.io/home

👉 @database_info
👍5
Объединить значения из нескольких строк таблицы в одну, группируя по определённому параметру.

Например, есть таблица:

id name value
1 A 4
1 B 8
2 C 9


В результате нужно получить следующее:

id column
1 A:4, B:8
2 C:9


В SQL Server 2017, Azure можно использовать функцию STRING_AGG:

SELECT
id,
STRING_AGG(
CONCAT(name,’:’,[value], ‘, ‘)
FROM table
GROUP BY id


👉 @database_info
👍3
Магия оптимизации SQL запросов

Думаю, каждый хоть раз использовал команду explain или хотя бы слышал про нее. Эта команда демонстрирует план выполнения запроса, но как именно СУБД приходит к нему остается загадкой. Да и как вообще СУБД понимает, что выбранный запрос оптимален? Неужели она проверяет все возможные варианты?
В этой статье я постараюсь дать небольшое представление о том, как работают оптимизаторы запросов с теоретической точки зрения.

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

https://habr.com/ru/articles/709898/

#db

👉 @database_info
👍4
Как я искал ПДн в 300 базах данных [и сохранил рассудок]

Пришли как-то ко мне парни из службы безопасности и говорят: «Надо обойти все БД и собрать с них персональные данные». Потому что в России изменилось законодательство и теперь их нужно хранить в особо защищённых хранилищах.

Если этого не сделать, то рано или поздно данные могут утечь и ещё можно нарваться на высокие штрафы при утечке. Задача безопасников (и основная выгода от их наличия в компании) — минимизация таких рисков.

Вот только у нас несколько сотен баз данных, где-то около трёхсот. Даже если просто заглянуть в них и попытаться сделать выборку — это займёт весьма продолжительное время. И никто не имеет полной картины, где что хранится.

Скорее всего, вам скоро предстоит такое же, поэтому сейчас покажу артефакты, которые я нашёл в процессе.

https://habr.com/ru/companies/skyeng/articles/792494/

#db

👉 @database_info
👍7
Postgres: Графовая база данных, о которой вы не знали

PostgreSQL (Postgres) - это мощная реляционная база данных, которая может хранить широкий спектр типов и структур данных. Когда речь заходит о хранении структур данных графов, мы можем обратиться к базам данных, предназначенным для этого случая, например Neo4J или Dgraph. Придержите лошадей! Хотя Postgres обычно не рассматривается при работе с графовыми структурами данных, она прекрасно подходит для хранения и эффективного запроса графовых данных.

https://www.dylanpaulus.com/posts/postgres-is-a-graph-database

#db

👉 @database_info
👍6
Как работают атомарные транзакции в базе данных?

Атомарность делает возможным, чтобы транзакция имела только 2 результата:
- она успешно выполняет все операции и фиксируется
- прерывается из-за сбоя и отменяет все изменения

В единой базе данных атомарность возможна благодаря сохранению всех изменений в данных в журнале опережающей записи (WAL).
Каждый раз при внесении изменений WAL сохраняет их на диске, чтобы они сохранились надолго.
Каждая запись в WAL содержит всю информацию для отмены всех изменений.
Однако подход WAL недостаточен, если транзакция затрагивает более одной базы данных.
В таких ситуациях часто используется протокол двухфазной фиксации (2PC).
Согласно этому протоколу, один процесс должен быть координатором, а остальные - участниками.
Задача координатора - следить за тем, чтобы участники выполняли свою часть работы.
Чаще всего координатором является клиентский процесс, которому требуется транзакция.

Протокол состоит из 2 этапов:

1. Подготовка.
Координатор просит всех приготовиться к завершению транзакции. Каждый участник отвечает, может ли он совершить транзакцию или нет.

После ответа участники ждут дальнейших инструкций.

2. Коммит.
Если все участники готовы, координатор посылает им запрос на фиксацию. В противном случае он попросит прервать транзакцию.
Этот шаг является точкой невозврата: транзакция должна быть зафиксирована или прервана.

Протокол 2PC работает, но имеет ряд недостатков:
- он медленный, так как требует многократных обходов между процессами
- блокируется при сбое координатора или отказе участника на этапе фиксации.

Репликация задействованных процессов делает 2PC более надежным, но добавляет сложности.

#db

👉 @database_info
👍5
Симулятор SQL. Часть 2

JOIN
Выбираем нужный JOIN
JOIN практика
Оконные функции основы
Оконные функции RANK и LAG
Продуктовые метрики
Построение дашбордов
Анализ Retention
Заключение

Часть 1 https://t.iss.one/database_info/924


источник

#db

👉 @database_info
👍4🔥1