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

Введение
Введение (практика)
Моделирование БД
Моделирование БД (практика)
Реляционная модель и функциональные зависимости
Реляционная модель и функциональные зависимости (практика)
Нормализация баз данных
Нормализация баз данных (практика)
Реляционная алгебра
Реляционная алгебра (практика)

источник

#db

👉 @database_info
👍3
Media is too big
VIEW IN TELEGRAM
NoSQL для начинающих 👨‍💻 На примере MongoDB

00:00 - Что такое NoSQL и где он применяется?
04:18 - Основные виды NoSQL
06:04 - Дополнительные темы
09:31 - SQL vs NoSQL
11:53 - Немного о MongoDB
14:37 - Практика. Моделирование структуры. Работа с shell и Compass

#db

👉 @database_info
👍4
SQL и NoSQL. Правда ли одно лучше другого?

Базы данных (БД) существуют с первых дней программирования, а появились они ещё раньше. Это — неотъемлемые части любых приложений. Хорошо спроектированная БД — это один из важнейших компонентов, влияющих на производительность программных проектов. Из-за этого множество архитекторов программных решений исследовали массу подходов к управлению данными, пытаясь выяснить то, какие из этих подходов работоспособны в определённых сценариях, а какие — нет. Выбор подходящей архитектуры БД обычно сводится к выбору между SQL и NoSQL, между реляционными и нереляционными базами данных. А иногда в одном проекте используют и то, и другое.

Rus https://habr.com/ru/company/wunderfund/blog/691178/

Eng https://medium.com/@enjonpodrimaj/sql-vs-nosql-e3887c58664d

#db

👉 @database_info
👍3
Шпаргалка по MySQL

Коннект к mysql по TCP
mysql --user root --host localhost --port 3306 --protocol tcp

Создать БД
CREATE DATABASE $DB_NAME character set utf8;

Добавить пользователя
CREATE USER $DB_USER@localhost IDENTIFIED BY '$DB_PASSWORD';

Дать права пользователю на БД
GRANT ALL ON $DB_NAME.* TO $DB_USER@localhost;

на удаленный доступ:
GRANT ALL PRIVILEGES ON $DB_NAME.* TO $DB_USER@'%' IDENTIFIED BY '$DB_PASSWORD';

на удаленный доступ на все таблицы:
grant all privileges on *.* to DB_USER@'%';

сменить пароль пользователю
SET PASSWORD FOR логин@localhost = PASSWORD('пароль'); SET PASSWORD FOR логин@"%" = PASSWORD('пароль');

что бы права вступили в силу:
flush privileges;

Посмотреть права пользователя
SHOW GRANTS for $DB_USER@localhost;

Если нужно залить большой дамп, то в /etc/my.cnf в секцию [mysqld] добавить:
max_allowed_packet = 16M

Работа с кластером мастер-слейв

посмотреть состояние мастера:
show master status;

посмотреть состояние слейва:
SHOW SLAVE STATUS\G

Посмотреть структуры таблицы в БД
describe <table_name>;

или
SHOW CREATE TABLE <table_name>;

Посмотреть состояние таблиц в БД
SHOW TABLE STATUS;

Сброс пароля mysql
1). В /etc/mycnf в секцию [mysqld] вставляем строку skip-grant-tables
2). Перезапустить mysqld.

После этого пароль будут сброшен и можно ввести любой другой.

#db

👉 @database_info
👍111🔥1
8 книг по PostgreSQL: от баз данных с «нуля» для самоучек до руководства про БД в облаках

В целом, эта объектно-реляционная СУБД в дополнительном представлении не нуждается. Разработанная более 20 лет назад, она предназначена для создания и поддержки баз данных серверных приложений, в том числе ресурсоемких аналитических БД. Одна из особенностей PostgreSQL — открытый исходный код. Мы любим ее за развитое комьюнити и возможность развернуть «постгрю» самостоятельно и бесплатно.

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

https://habr.com/ru/company/selectel/blog/713714/

👉 @database_info
👍8
Вопрос с собеседования Amazon

Напишите запрос, который будет идентифицировать возвращающихся активных пользователей. Вернувшийся активный пользователь — это пользователь, совершивший вторую покупку в течение 7 дней после любой другой покупки. Выведите список user_id этих вернувшихся активных пользователей.

amazon_transactions

id:int
user_id:int
item:varchar
created_at:datetime
revenue:int


Ответ

SELECT
DISTINCT(a.user_id)
FROM amazon_transactions a
JOIN amazon_transactions b
ON a.user_id = b.user_id
WHERE a.created_at - b.created_at BETWEEN 0 AND 7
AND a.id != b.id


#db

👉 @database_info
👍16
Рекомендуем к прочтению книгу Александра Бындю "Антихрупкость в IT"

Эта книга — результат многолетнего опыта построения IT-продуктов. И прежде всего она о том, как выстроить процессы разработки IT-систем таким образом, чтобы успевать вовремя подстроиться под любые изменения.

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

Сайт издания

Ознакомиться с книгой
Распределенный SQL: альтернатива шардированию баз данных

https://dzone.com/articles/distributed-sql-an-alternative-to-sharding

#db

👉 @database_info
👍3
Вопрос с собеседования Microsoft

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

ms_user_dimension

user_id:int
acc_id:int
ms_acc_dimension

acc_id:int
paying_customer:varchar
ms_download_facts

date:datetime
user_id:int
downloads:int


Ответ

with out AS(select date
, Sum (downloads) Filter(Where paying_customer = 'no') as non_paying
, Sum (downloads) Filter(Where paying_customer = 'yes') as paying
From ms_download_facts fact
Left Join ms_user_dimension a
on fact.user_id = a.user_id
Join ms_acc_dimension acc
on a.acc_id = acc.acc_id
Group by date
order by date)
Select date , non_paying , paying
From out
Where non_paying > paying


👉 @database_info
👍8
Порядок выполнения SQL-запросов

#db

👉 @database_info
👍17
Самоучитель SQL для начинающих: Изучите SQL за 7 дней
Бесплатные уроки по SQL на английском

Базы данных можно найти почти во всех программных приложениях. SQL - это стандартный язык для запросов к базе данных. Этот самоучитель SQL для начинающих научит вас проектированию баз данных. Кроме того, здесь вы узнаете о базовом и продвинутом SQL.

https://www.guru99.com/sql.html

#db

👉 @database_info
👍8