Similar presentations:
Лекция_БД_1
1.
2. Материалы для самостоятельной работы (общие)
1. Для совсем-совсем начинающих – учимся алгоритмическому мышлению:• 7 Billion Humans
• Human Resource Machine
• Coding Game – здесь от самых простых задач до полной жести. Очень рекомендую всем.
2. Для желающих прокачать логическое мышление:
• Мартин Гарднер. Математические досуги.
• Мартин Гарднер. Математические головоломки и развлечения.
• Мартин Гарднер. Математические чудеса и тайны.
• Мартин Гарднер. А ну-ка, догадайся!
• Мартин Гарднер. Загадки Сфинкса и другие математические головоломки.
• Яков Перельман. Занимательная … (все что угодно).
• Яков Перельман. Первая и вторая сотня головоломок.
• Яков Перельман. Научные задачи и развлечения.
3. Учите и пользуйтесь Google Sheets. Решайте любые повседневные задачи, научитесь хорошо
пользоваться формулами, можно посмотреть на JavaScript внутри Sheets.
4. Учите python на pythontutor.ru
3. Материалы для самостоятельной работы
1. SQL Murder Mystery – немного развлечения перед работой.2. Практика SQL:
• sql-ex.ru – исключительно хороший тренажер.
• sql-tutorial.ru – документация к нему.
3. Концепции построения баз данных от Oracle.
• разделы 4-6 – таблицы, индексы, представления, партиции – для общего ознакомления с объектами,
которые бывают в базах данных;
• раздел 7 изучать внимательно;
• раздел 8 – прочитать про справочники СУБД, тоже для общего ознакомления;
• раздел 9 – собственно особенности SQL для Orcale;
• раздел 10 – только для тех, кто хочет посвятить себя работе с Oracle;
• раздел 11-12 – сейчас прочитать для общего развития, далее после 3-6 месяцев работы вернуться и
изучить детально.
4. Документация PostgreSQL.
5. Справочник команд *nix. Учебник по bash: попроще и посложнее.
6. Интерактивный тур по git.
7. Регулярные выражения: введение, тренировка-развлечение, платформа проверки регулярных
выражений.
4. Материалы для самостоятельной работы (глубокое погружение)
1. Установка СУБД PostgreSQL локально – страница с дистрибутивами.2. Виртуальная машина Oracle (ODI).
3. Книги по SQL и базовой архитектуре баз данных:
• Мартин Грубер. Понимание SQL.
• К.Дж. Дейт. Введение в системы баз данных.
4. Книги по архитектуре хранилищ данных (только для тех, кто пришел
учиться строить хранилище в своей компании):
• Vincent Rainardi Building a Data Warehouse With Examples in SQL Server
• Ralph Kimball, Margy Ross (2013). The Data Warehouse Toolkit: The Definitive Guide
to Dimensional Modeling
• Building the Data Warehouse, Fourth Edition W. H. Inmon
• Haq, Q. M. R. U. (2016). Data Mapping for Data Warehouse Design
• Alex Gorelik (2019). The Enterprise Big Data Lake: Delivering the Promise of Big Data
and Data Science
5. Инструменты для самостоятельного изучения
1. Для начала работы junior data engineer требуется владение SQL,каким-либо языком программирования, основами *nix, git. Остальное
эффективно изучается на рабочем месте. Но если вы хотите получить
представление об инструментарии, то можно обратить внимание на
следующие вещи:
1. Транзакционные СУБД: Oracle или Postgres (физика работы)
2. Аналитические СУБД: Greenplum (концепция MPP – massive parallel
processing)
3. Hadoop – компоненты hdfs, Hive, Spark, Yarn (концепция
распределенного хранения данных, in-memory вычислений)
4. Airflow (оркестрация и планирование процессов)
5. Kafka или Flink (концепция потоковой обработки данных)
6. Kubernetes (концепция контейнеризации и микросервисов)
6. Виды баз данных
Разница в терминах:• База данных – собственно систематизированные данные.
• СУБД (система управления базами данных) – программы, обеспечивающие
возможность создания, управления и использования баз данных.
• Обычно говорят «база данных» и из контекста понятно о чем идет речь.
Типы баз данных:
• Простые структуры (например, простые файлы).
• Иерархические (например, дерево каталогов).
• Реляционные (с ними работаем в курсе, пояснения далее).
• NoSQL – (key-value, документные, графовые).
7. Виды нагрузки
1. OLTP (Online Transaction Processing) – транзакционная система,предназначена для быстрого выполнения коротких операций.
Типичные представители:
• Oracle
• SQL Server (MS SQL)
• MySQL
• PostgreSQL
2. OLAP (Online Analytical Processing) – система для подготовки
суммарной (агрегированной) информации на основе больших
массивов данных. Типичные представители:
Oracle
Teradata
Vertica
Greenplum
Стек Hadoop
8. Что такое SQL?
1. SQL – Structured Query Language – декларативный язык программированиядля манипуляции данными в базах данных.
2. Есть диалекты SQL (практически у каждого вендора), но также существует и
стандарт SQL:2023.
9. Компоненты SQL
1. DDL – Data Definition Language (сильно зависит от СУБД)• CREATE
• DROP
• ALTER
• TRUNCATE
2. DML – Data Manipulation Language (во многом следует стандарту)
• SELECT
• INSERT
• UPDATE
• DELETE
• MERGE
3. DCL – Data Control Language (ролевая модель специфична для каждой СУБД)
• GRANT
• REVOKE
4. TCL – Transaction Control Language (стандарт)
• COMMIT
• ROLLBACK
10. SQL. Фиксация транзакции
Важные дополнения про завершение транзакции.Правило для тех, кто не хочет вникать – если у вас не включен режим AutoCommit, то после
каждого действия INSERT, UPDATE, DELETE необходимо подать команду COMMIT.
В некоторых СУБД DDL команды сопровождаются неявным COMMIT.
11. Прежде чем начать. Где редактируем код?
Best practice:• DBeaver – IDE (integrated development environment) – интегрированная среда разработки, где вы пишете код, и
тут же его исполняете.
• Любая другая IDE, которая может подключиться к СУБД PostgreSQL.
• Любой редактор «плоских» файлов, то есть без разметки:
• Notepad++
• Sublime
• Atom
Категорически нельзя редактировать код в MS Word, MS Power Point и другим подобным
редакторам WYSIWYG. MS Excel может использоваться для кодогенерации, но очень
аккуратно.
Минутка юмора: почему MS Word является лучшей средой разработки в мире.
12. Прежде чем начать. Стиль написания кода.
В каждой компании (и даже команде) принят свой codestyle. Поэтому заранее изучать что-токонкретное бессмысленно. Но важно понять суть: codestyle помогает быстро понимать суть
написанного кода. Придерживайтесь этого правила.
Поскольку у нас нет стандартов, воспользуйтесь этим: www.sqlstyle.guide
13. SQL. Представления.
Представление (на сленге «вьюха») – SQL код, сохраненный в справочнике базы данных подсвоим собственным именем. Данный код исполняется каждый раз при обращении к
представлению. Обратите внимание, что представление само по себе не хранит данные,
только SQL код.
Представления используются для двух целей:
• замаскировать нежелательные данные (best practice)
• спрятать в представление бизнес-логику (worth practice)
CREATE VIEW SchemaName.ViewName AS
SELECT * FROM SchemaName.TableName;
CREATE OR REPLACE VIEW SchemaName.ViewName AS
SELECT * FROM SchemaName.TableName WHERE 1=1;
DROP VIEW SchemaName.ViewName;
14. SQL. Типы данных.
1.INTEGER, DECIMAL, NUMERIC, NUMBER – целое число;
2.
VARCHAR( length ), в Oracle VARCHAR2( length ) – строка переменной длины;
3.
CHAR( length ) – строка фиксированной длины;
4.
DECIMAL( scale, precision ), NUMERIC( scale, precision ), NUMBER( scale, precision ) – дробное
число
5.
DATE, TIME, TIMESTAMP, DATETIME – дата, время в разных конфигурациях.
6.
И многие, многие другие, которые используются очень нечасто (в DWH почти никогда).
Читайте документацию PostgreSQL если хотите расширить кругозор. В каждой СУБД есть
свой набор типов, но предыдущие 5 обычно есть в любой.
15. SQL. Пример неаккуратной работы с типом.
16. SQL. Приведение типов.
• Стандартный способ для SQL:• SELECT CAST( '123' AS INTEGER )
• SELECT CAST( 123 AS VARCHAR )
• SELECT CAST( 12.34 AS INTEGER )
• SELECT CAST( null AS INTEGER )
• Аналогично можно работать с другими типами, но с типом даты/времени
есть нюансы
• PostgreSQL-специфичный способ приведения типов:
• SELECT '123'::INTEGER
• SELECT 123::VARCHAR
17. SQL. Конструкция SELECT.
SELECT[DISTINCT | DISTINCTROW | ALL]
select_expression, ...
FROM table_references
[WHERE where_definition]
[GROUP BY {unsigned_integer | col_name | formula}]
[HAVING where_definition]
[ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC], ...]
В select_expression может быть использовано:
• Поле
• Поле с переименованием
• Выражение или функция
• Групповая операция • Подзапрос
database