SQL и Анализ данных
12.6K subscribers
679 photos
66 videos
3 files
693 links
Базы данных и всё, что с ними связано!

Сотрудничество: @haarrp

РКН № 6766085482
Download Telegram
💻 Блокировки в PostgreSQL: Часть 2. Блокировки строк

В статье объясняется, как работают блокировки строк в PostgreSQL и зачем нужны разные режимы вроде FOR UPDATE и FOR SHARE.

Разбираются механизмы отслеживания блокировок, мультитранзакции и влияние этих процессов на параллельную работу с таблицами.

Читать статью

tags: #статья

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21
— Как можно писать одну фичу ГОДАМИ?
— У меня почасовая оплата 🙂

SQL Community | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁333🔥2👍1
Вопрос с собеседования

Почему нельзя создать индекс на представление (VIEW)?

Ответ: Потому что обычное представление — это не таблица, а просто сохранённый SQL-запрос. Оно не содержит собственных данных, а строится на лету при каждом обращении.

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


tags: #собеседование

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍146🔥2
💻 Краеугольные камни ClickHouse

В статье подробно объясняются архитектурные принципы ClickHouse: от хранения данных и механики слияний до точечных чтений и join-ов.

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

Читать статью

tags: #статья

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥1
Фатальная ошибка

SQL Community | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁45😱4🔥3😭2👾2
Вопрос с собеседования

Почему Redis работает так быстро?

Ответ: Потому что Redis хранит все данные в оперативной памяти и использует простые, заранее оптимизированные операции над структурами данных.

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


tags: #собеседование

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍53🥱2
💻 Postgres: первое знакомство

Делимся бесплатной книгой об основах PostgreSQL 17 — от установки и подключения до первых запросов, работы с pgAdmin, транзакциями, JSON и полнотекстовым поиском.

Плюс — полезные советы по настройке БД для приложений и интеграции с 1С.

Скачать в PDF

tags: #полезное

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍84🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁48🔥5
Вопрос с собеседования

Что такое MongoDB и чем она отличается от SQL-баз?

Ответ: MongoDB — это документо-ориентированная NoSQL база данных, в которой данные хранятся в виде документов формата BSON (расширенный бинарный JSON).

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


tags: #собеседование

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍141
💻 Блокировки в PostgreSQL: Часть 3. Блокировки других объектов

В статье рассказывается о том, как устроены блокировки различных объектов в PostgreSQL, включая роли, схемы, индексы и абстрактные ресурсы.

Автор разбирает взаимоблокировки, предикатные и рекомендательные блокировки, показывая, как они влияют на поведение транзакций.

Читать статью

tags: #статья

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52🔥1
Коротко об опенсорсе:

SQL Community | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁33🔥2
Вопрос с собеседования

Что такое S3-хранилище и зачем оно нужно?

Ответ: Amazon S3 (Simple Storage Service) — это облачное хранилище объектов, предназначенное для хранения любых файлов: от изображений и резервных копий до статических сайтов.

Оно масштабируемое, надёжное и предоставляет доступ к файлам через URL. В отличие от традиционных файловых систем, в S3 нет иерархии папок — всё хранится как объекты в “бакетах” (контейнерах), а доступ можно контролировать через политики и права.


tags: #собеседование

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍175🔥3
💻 Резервное копирование PostgreSQL по-взрослому

В статье рассказывается о том, как грамотно организовать резервное копирование PostgreSQL с помощью стандартных инструментов командной строки.

Автор подробно сравнивает форматы дампов (plain, custom, tar, directory), объясняет, в каких сценариях лучше использовать каждый из них, и показывает замеры по времени, объёму и возможностям восстановления.

Читать статью

tags: #статья

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥52
Вопрос с собеседования

Почему в WHERE нельзя использовать алиасы из SELECT?

Ответ: Потому что SQL-запрос выполняется не в том порядке, в котором написан. На этапе выполнения WHERE часть SELECT ещё не обработана, а значит, её алиасы (псевдонимы) не существуют. Алиасы определяются только на этапе SELECT, который идёт после WHERE.

tags: #собеседование

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯10👍95
💻 Путеводитель по базам данных

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

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

Скачать в PDF

tags: #полезное

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍41
Please open Telegram to view this post
VIEW IN TELEGRAM
😁37🔥4
Forwarded from Data Science. SQL hub
Media is too big
VIEW IN TELEGRAM
📜 История SQL — от лабораторной идеи до «языка данных» № 1

Как появился самый известный язык работы с базами, почему он едва не остался «Сиквелом» и какие любопытные факты о нём редко всплывают в учебниках.

1. Всё началось с таблицы на бумаге

- 1970 г. — британский математик Эдгар Ф. Кодд публикует культовую статью *“A Relational Model of Data for Large Shared Data Banks”*.
- В ней впервые прозвучала идея: хранить данные в виде связанных таблиц, а не как запутанные иерархии (IMS) или сетевые графы (Codasyl).
- Коллеги в IBM скептически называли это «бумагой на буквы», но разрешили сделать прототип, чтобы проверить утопию Кодда на практике.

2. SEQUEL — «английский» запрос к таблицам

- 1973–1974 гг. — в лаборатории IBM San José (ныне Almaden) двое молодых исследователей, Дональд Чемберлин и Рэймонд Бойс, берутся за проект System R.
- Чтобы обращаться к реляционным таблицам, они придумывают Structured English QUEry Language — SEQUEL.
- Ключевая фишка — запросы выглядят почти как английские предложения:

SELECT name, salary
FROM employees
WHERE dept = 'R&D';

- В 1974‑м публикуют первую спецификацию; академики критикуют за «слишком поверхностный английский», но программисты в восторге.

3. Почему SEQUEL стал SQL

- Торговая марка “SEQUEL” уже принадлежала авиастроительной компании *Hawker Siddeley*.
- IBM, опасаясь суда, в 1976 г. официально отказывается от «E» и оставляет SQL (Structured Query Language).
- *Небольшая путаница осталась навсегда: кто‑то произносит «эс‑кью‑эл», кто‑то — «сиквел».*

4. Коммерческий взлёт


- 1978 | Первая демонстрация System R внутри IBM | показала, что SQL работает быстрее ожиданий |
- 1979 | Стартап Relational Software (позже Oracle**) выпускает **Oracle V2 — первый коммерческий SQL‑движок | IBM ещё не успела выйти на рынок
- 1981 | IBM выпускает SQL/DS для мейнфреймов | стандарт де‑факто закрепляется
- 1983 | Дебют DB2 — теперь SQL есть почти в каждом крупном банке

5. Стандартизация и эволюция

- ANSI SQL‑86SQL‑92 (появился `JOIN ... ON`) → SQL:1999 (рекурсия, триггеры) → SQL:2003 (XML) → … → SQL:2023 (JSON, property graphs).
- Каждые 3–5 лет комитет добавляет «модные» возможности, но 90 % повседневных запросов всё ещё укладываются в синтаксис 1980‑х.

6. Забавные факты, которые украсят small talk 🍸

1. NULL ≠ 0 и NULL ≠ NULL — «неизвестное значение» нарушает законы логики, за что его зовут *“пятой ногой”* реляционной алгебры.
2. `SELECT *` — наследие печати на станке. Звёздочка означала «все колонки», чтобы не писать их руками в 132‑символьных перфокартах.
3. Команда GO в MS SQL Server не принадлежит стандарту SQL — это директива из старого клиента isql.
4. В Oracle долго не было LIMIT, а в MySQL —QL — от лабора Поэтому админы шутили: «истинный межплатформенный SQL — это `SELECT 1;`».
5. Первый SQL‑вирус — червь *Slammer* (2003) — парализовал интернет за 10 минут через уязвимость в SQL Server 2000.
6. SQL — декларативный язык, но внутри СУБД каждый SELECT превращается в процедурный план.
7.Ф. Кодд публикуетпридумали позже, чемлабораторн Сначала удалять целую БД казалось слишком опасным.

7. Почему SQL живёт дольше модных NoSQL‑наследников

- Математическая база. Таблицы + операции Кодда образуют алгебру с предсказуемой оптимизацией.
- Стандарты и переносимость. Код двадцатилетней давности можно запустить в современной Postgres или MariaDB.
- Большая экосистема. От Excel‑плагинов до BigQuery — везде так или иначе поддерживается SQL‑диалект.
- Сопротивляемость моде. Каждый «убийца SQL» (MapReduce, GraphQL, документные БД) в итоге добавляет свой адаптер SELECT ….

Итог: SQL родился как эксперимент IBM, пережил смену названий и юридические баталии, но в итоге стал «лентой Мёбиуса» мира данных: можно зайти с любой стороны — и всё равно окажешься в FROM.

https://www.youtube.com/shorts/EuFjzuVHkHE

@sqlhub -подписаться
👍23🔥114🤨4🥰1💊1
Друзья, мы создали канал с книгами по SQL и залили туда наверное самую большую подборку книг по SQL. Около 200 книг. Каждую неделю выходят еще новые книги.

Подпишитесь, там будут книги и марафоны задач по SQL и много редкой литературы. https://t.me/sql_lib
👍72🔥2💊2🤨1
🛢️ SQL-задача с подвохом: NULL ловушка

Условие:

Есть таблица employees:

| id | name | department |
|-----|----------|------------|
| 1 | Alice | Sales |
| 2 | Bob | NULL |
| 3 | Charlie | HR |
| 4 | Diana | NULL |
| 5 | Eve | Sales |

Ты хочешь выбрать всех сотрудников, которые не работают в отделе Sales. Пишешь простой запрос:


SELECT * FROM employees
WHERE department <> 'Sales';


Вопрос:
Какие строки вернёт этот запрос? Почему результат может удивить даже опытных специалистов?

---

🔍 Разбор:

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

- Bob (NULL)
- Charlie (HR)
- Diana (NULL)

Но вот главный подвох: NULL — это "неизвестное значение", и в SQL любые сравнения с NULL дают UNKNOWN.

Запрос:


WHERE department <> 'Sales'


- Charlie (HR): вернётся, потому что HR <> Sales.
- Bob (NULL): НЕ вернётся, потому что NULL <> 'Sales' даёт UNKNOWN (не TRUE).
- Diana (NULL): по той же причине.
- Alice и Eve: потому что у них Sales.

---

Фактический результат:

| id | name | department |
|-----|---------|------------|
| 3 | Charlie | HR |

---

💥 Подвох:

Многие думают, что NULL автоматически участвует в сравнении как будто это "значение", но SQL строго следует трёхзначной логике:

- TRUE
- FALSE
- UNKNOWN

В WHERE фильтре остаются только строки, где условие = TRUE. Строки с NULL дают UNKNOWN и отбрасываются.

---

🛠 Как исправить запрос, чтобы включить сотрудников без отдела (NULL):


SELECT * FROM employees
WHERE department <> 'Sales' OR department IS NULL;


Теперь вернётся:

| id | name | department |
|-----|---------|------------|
| 2 | Bob | NULL |
| 3 | Charlie | HR |
| 4 | Diana | NULL |

---

Вывод:

• В SQL сравнения с NULL всегда возвращают UNKNOWN.
• Обычные условия (`<>`, =, >, <`) **не учитывают NULL правильно**, если явно не проверить `IS NULL или IS NOT NULL.
• Даже простой фильтр может дать неожиданный результат, если в данных есть пропуски.

💡 Бонус-вопрос:
Что будет, если использовать NOT department = 'Sales' вместо department <> 'Sales'? 😉

SQL Community |
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25🔥126🤨2
Forwarded from Machinelearning
🔥 9 бесплатных курсов c HuggingFace по искусственному интеллекту!

➡️Узнайте, как обучать, настраивать и развертывать большие языковые модели с помощью HuggingFace Transformers.
https://huggingface.co/learn/llm-course/chapter1/1

➡️Курс по AI-агентам
Создавайте инструменты с многоэтапным мышлением, используя LangChain и HF.
https://huggingface.co/learn/agents-course/unit0/introduction

➡️ Курс по глубокому обучению с подкреплением (Deep RL)
Научите агентов принимать решения и учиться на основе окружающей среды.
https://huggingface.co/learn/deep-rl-course/unit0/introduction

➡️ Курс по компьютерному зрению
Изучите как работает OCR, сегментация и классификация изображений с моделями HuggingFace.
https://huggingface.co/learn/audio-course/chapter0/introduction

➡️ Курс по работе с аудио
Применяйте трансформеры к аудио: распознавание речи, тегирование музыки и синтез речи.
https://huggingface.co/learn/audio-course/chapter0/introduction

➡️ Курс по машинному обучению для игр
Узнайте, как ИИ меняет разработку игр: от поведения NPC до генерации контента.
https://huggingface.co/learn/ml-games-course/unit0/introduction

➡️ Курс по машинному обучению для 3D
Работайте с 3D-данными, такими как облака точек и сетки, на стыке графики и ML.
https://huggingface.co/learn/ml-for-3d-course/unit0/introduction

➡️ Курс по диффузионным моделям
Погрузитесь в технологию, лежащую в основе DALL·E и Stable Diffusion, и научитесь генерировать изображения.
https://huggingface.co/learn/diffusion-course/unit0/1

➡️ Кулинарная книга по открытому ИИ (Open-Source AI Cookbook)
Коллекция практических ноутбуков от реальных разработчиков ИИ — учитесь, копируйте код и создавайте свои проекты. https://huggingface.co/learn/cookbook/index

@ai_machinelearning_big_data - подписаться

#free #courses #opensource #huggingface
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥3👍2💊2🤨1