Продолжаю изучать базы данных...
Реляционная модель данных обеспечивает поиск по значениям (ассоциативный поиск). Что способствует работе с набором объектов данных.
Для более ранних моделей данных (иерархическая и сетевая) характерны навигационный способ доступа (от одного объекта к другому по ссылке) и ориентация на обработку отдельных объектов.
Обработка отдельных записей и навигация не может обеспечить эффективную массовую обработку данных. Поэтому на их смену пришли реляционные системы.
Интересный момент, который я раньше не осозновал.
🔻🔻🔻🔻
Популярность в последнее время NoSQL систем связана с отказом от массовой обработки данных на уровне базы данных.
Реляционная модель данных обеспечивает поиск по значениям (ассоциативный поиск). Что способствует работе с набором объектов данных.
Для более ранних моделей данных (иерархическая и сетевая) характерны навигационный способ доступа (от одного объекта к другому по ссылке) и ориентация на обработку отдельных объектов.
Обработка отдельных записей и навигация не может обеспечить эффективную массовую обработку данных. Поэтому на их смену пришли реляционные системы.
Интересный момент, который я раньше не осозновал.
🔻🔻🔻🔻
Популярность в последнее время NoSQL систем связана с отказом от массовой обработки данных на уровне базы данных.
🔥3👍1
Критерии эффективности и требований к базам данных.
В 70-е годы считали важным эффективность доступа к отдельным объектам и навигации между ними.
Начиная с 80-х годов, начали считать эффективным другое, а именно массовость обработки данных и поиск значений по атрибутам (ассоциациативный поиск).
Именно поэтому произозошло массовое распространие реляционной модели данных.
В 70-е годы считали важным эффективность доступа к отдельным объектам и навигации между ними.
Начиная с 80-х годов, начали считать эффективным другое, а именно массовость обработки данных и поиск значений по атрибутам (ассоциациативный поиск).
Именно поэтому произозошло массовое распространие реляционной модели данных.
👍3
Вот это новости)
Не таблицы, а отношения.
Не колонки, а атрибуты.
Не строки, а кортежи.
Вот такие термины используются в реляционной алгебре.
Не таблицы, а отношения.
Не колонки, а атрибуты.
Не строки, а кортежи.
Вот такие термины используются в реляционной алгебре.
😁1🤔1
Всем привет! Последние недели в основном занят работой.
За это время:
- завершил 3 задачи по настройке обмена данными с поставщиком;
- научился формировать документы xml на стороне ms sql server и на стороне python и отправлять их по ftp;
- лучше осваиваю airflow;
- принимаю проект от другого разработчика по загрузке данных от клиентов;
Подробнее о проекте.
Клиенты высылают свои данные в различных форматах на почту. Задача настроить автоматическую загрузку в нашу базу. За это время научился работать с почтой с помощью модуля imap, считывать данные из почты, преобразовывать их в нужный датафрейм и загружать данные в базу.
Получаю большое удовольствие от автоматизации. Один раз подключаешь клиента и данные ежедневно загружаются в нашу базу без какого-либо участия. =)
За это время:
- завершил 3 задачи по настройке обмена данными с поставщиком;
- научился формировать документы xml на стороне ms sql server и на стороне python и отправлять их по ftp;
- лучше осваиваю airflow;
- принимаю проект от другого разработчика по загрузке данных от клиентов;
Подробнее о проекте.
Клиенты высылают свои данные в различных форматах на почту. Задача настроить автоматическую загрузку в нашу базу. За это время научился работать с почтой с помощью модуля imap, считывать данные из почты, преобразовывать их в нужный датафрейм и загружать данные в базу.
Получаю большое удовольствие от автоматизации. Один раз подключаешь клиента и данные ежедневно загружаются в нашу базу без какого-либо участия. =)
👍5
Также,
- завершается обучение в Яндекс.Практикум. Начал писать дипломный проект;
- поправил профили в linkidIn, hh - указал актуальное место работы;
- звонили рекрутеры из Армении) Предлагали работу с релокацией. Говорили, что у них тепло и вкусно)
Важно! Кажется я определился с направлением в разработке.
Это работа с данными - ETL Development / Data Engineering.
За время работы понял, что это увлекательное и востребованное направление.
- завершается обучение в Яндекс.Практикум. Начал писать дипломный проект;
- поправил профили в linkidIn, hh - указал актуальное место работы;
- звонили рекрутеры из Армении) Предлагали работу с релокацией. Говорили, что у них тепло и вкусно)
Важно! Кажется я определился с направлением в разработке.
Это работа с данными - ETL Development / Data Engineering.
За время работы понял, что это увлекательное и востребованное направление.
👍6
"Задача, стоящая перед программистом, - это интеллектуальный вызов высочайшего ранга."
Эдсгер Дейкстра🔥5
🔥🔥🔥Завершил курс "Python-разработчик" на ЯП.🔥🔥🔥
*Ознакомиться с кодом дипломной работы можно по ссылке: https://github.com/avagners/foodgram-project-react
Итого был пройден путь в 10 месяцев. Очень рад завершению обучения.
На нем я научился:
- писать довольно чистый код, который соответствует стандарту PEP8;
- оформлять README файлы в репозиториях проектов;
- создавать API и работать с ним;
- писать тесты;
- создавать бэкенд на Django;
- работать с Docker;
- делать деплой проектов на сервер;
- настраивать CI/CD;
- настраивать сервер на Яндекс.Облако;
- хорошо развил навык работы с git (за это время сделал около 700 коммитов);
*Ознакомиться с кодом дипломной работы можно по ссылке: https://github.com/avagners/foodgram-project-react
Итого был пройден путь в 10 месяцев. Очень рад завершению обучения.
На нем я научился:
- писать довольно чистый код, который соответствует стандарту PEP8;
- оформлять README файлы в репозиториях проектов;
- создавать API и работать с ним;
- писать тесты;
- создавать бэкенд на Django;
- работать с Docker;
- делать деплой проектов на сервер;
- настраивать CI/CD;
- настраивать сервер на Яндекс.Облако;
- хорошо развил навык работы с git (за это время сделал около 700 коммитов);
GitHub
GitHub - avagners/foodgram-project-react: Foodgram project
Foodgram project. Contribute to avagners/foodgram-project-react development by creating an account on GitHub.
🔥6👏2
Как дела на работе?
За эти 2 месяца прокачался:
- в MS SQL Server: научился работать с индексами, анализировать планы запросов, на основании анализа оптимизировать запросы, немного познакомился с созданием архитектуры БД, создавать job'ы для робота;
- в airflow: научился пользоваться хуками, переменными, некоторыми операторами, группировать таски, использовать ветвления, создавать довольно интересные графы; научился устанавливать и настраивать airflow локально, так и с помощью docker;
P.s. если вы не знаете как нагрузить все 16гигов оперативы, то просто запустите airflow в докер на wsl =)
За эти 2 месяца прокачался:
- в MS SQL Server: научился работать с индексами, анализировать планы запросов, на основании анализа оптимизировать запросы, немного познакомился с созданием архитектуры БД, создавать job'ы для робота;
- в airflow: научился пользоваться хуками, переменными, некоторыми операторами, группировать таски, использовать ветвления, создавать довольно интересные графы; научился устанавливать и настраивать airflow локально, так и с помощью docker;
P.s. если вы не знаете как нагрузить все 16гигов оперативы, то просто запустите airflow в докер на wsl =)
👍6
Кстати, каналу сегодня ровно год. :)
15 августа прошлого года создал канал в телеге и аккаунт на GitHub.
Быстро время летит.
15 августа прошлого года создал канал в телеге и аккаунт на GitHub.
Быстро время летит.
👏6
Последние 2 недели изучаю структуры данных.
На сегодня изучил след. структуры:
1) Связанный список;
2) Двунаправленный связный (связанный) список;
3) Динамический массив;
4) Стек;
5) Очередь;
6) Двусторонняя очередь (deque).
К каждой структуре данных:
- написал тесты. Итого написано тестов на 1700 строк кода;
- сделал оценку мер сложности для методов каждой структуры;
Важно! С написанием тестов находишь все ошибки, которые ты допустил во время написания методов структуры данных.
Для меня это открытие последних 2-х недель.
На сегодня изучил след. структуры:
1) Связанный список;
2) Двунаправленный связный (связанный) список;
3) Динамический массив;
4) Стек;
5) Очередь;
6) Двусторонняя очередь (deque).
К каждой структуре данных:
- написал тесты. Итого написано тестов на 1700 строк кода;
- сделал оценку мер сложности для методов каждой структуры;
Важно! С написанием тестов находишь все ошибки, которые ты допустил во время написания методов структуры данных.
Для меня это открытие последних 2-х недель.
🔥5❤1
Всем привет! 👨💻
За последние 7 дней прошёл 2 структуры данных:
- упорядоченный список;
- хэш-таблицы.
Написал тестов на 693 строки.
Не перестаю восхищаться покрытию кода тестами.
Пишу код без ошибок)
А как у вас прошла неделя?) 😊
За последние 7 дней прошёл 2 структуры данных:
- упорядоченный список;
- хэш-таблицы.
Написал тестов на 693 строки.
Не перестаю восхищаться покрытию кода тестами.
Пишу код без ошибок)
А как у вас прошла неделя?) 😊
🔥6
Всем привет!
Забыл в субботу отписаться о том, что успел сделать за 7 дней помимо работы.
Исправляюсь)
Изучил следующие структуры данных:
9) ассоциативный массив (словарь) ;
10) множества;
11) фильтр Блюма;
Написал тестов на 480 строк.
Все эти структуры данных в своей реализации используют хэш-функции и хэш-таблицы. Это позволяет получить сложность операций поиска до О(1).
Очень интересной показалась структура "фильтр Блюма".
Фильтр даёт возможность проверки элементов со скоростью O(1). Но фильтр даёт вероятностный ответ. То есть фильтр может вернуть ложноположительный ответ. Это ситуация, когда мы не включали в фильтр строку, но фильтр нам пишет, что данная строка в фильтре есть.
Такое возникает, когда хэш-функции, используемые в фильтре, расчитывают один и тот же хэш для разных строк.
Вероятность срабатывания ложноположительного ответа находится в обратной зависимости от количества бит выделяемых под сам фильтр. Чем больше битовый массив, тем меньше вероятность ложноположительного ответа.
Забыл в субботу отписаться о том, что успел сделать за 7 дней помимо работы.
Исправляюсь)
Изучил следующие структуры данных:
9) ассоциативный массив (словарь) ;
10) множества;
11) фильтр Блюма;
Написал тестов на 480 строк.
Все эти структуры данных в своей реализации используют хэш-функции и хэш-таблицы. Это позволяет получить сложность операций поиска до О(1).
Очень интересной показалась структура "фильтр Блюма".
Фильтр даёт возможность проверки элементов со скоростью O(1). Но фильтр даёт вероятностный ответ. То есть фильтр может вернуть ложноположительный ответ. Это ситуация, когда мы не включали в фильтр строку, но фильтр нам пишет, что данная строка в фильтре есть.
Такое возникает, когда хэш-функции, используемые в фильтре, расчитывают один и тот же хэш для разных строк.
Вероятность срабатывания ложноположительного ответа находится в обратной зависимости от количества бит выделяемых под сам фильтр. Чем больше битовый массив, тем меньше вероятность ложноположительного ответа.
🔥5👍1