Нарастающий (накопительный) итог долго считался одним из вызовов SQL. Что удивительно, даже после появления оконных функций он продолжает быть пугалом (во всяком случае, для новичков). Сегодня мы рассмотрим механику 10 самых интересных решений этой задачи – от оконных функций до весьма специфических хаков.
Читать полностью »
Рубрика «sql» - 17
Нарастающий итог в SQL
2019-11-15 в 18:04, admin, рубрики: cumulative sum, running sum, running total, sql, tricks, window functions, накопительный итог, нарастающий итог, оконные функцииУровни изолированности транзакций для самых маленьких
2019-11-12 в 8:04, admin, рубрики: isolation levels, mysql, postgresql, sql, transactions, Администрирование баз данных, ПрограммированиеСегодня хотел бы довести крайне интересный, но часто покрытый тайнами для обычных смертных программистов раздел базы данных (БД) — уровни изолированности транзакций. Как показывает практика, многие люди, связанные с IT, в частности с работой с БД, слабо понимают зачем нужны эти уровни и как их можно использовать себе во благо.
Немного теории
Сами транзакции особых объяснений не требуют, транзакция — это N (N≥1) запросов к БД, которые выполнятся успешно все вместе или не выполнятся вовсе. Изолированность же транзакции показывает то, насколько сильно влияют друг на друга параллельно выполняющиеся транзакции.
Выбирая уровень транзакции, мы пытаемся прийти к консенсусу в выборе между высокой согласованностью данных между транзакциями и скоростью выполнения этих самых транзакций.
Читать полностью »
Поиск данных и объектов в базе данных MS SQL Server с помощью бесплатной утилиты dbForge Search
2019-11-12 в 7:37, admin, рубрики: .net, C#, database tools, devart, Microsoft SQL Server, MS Sql Server, search, sql, sql server, t-sql, Администрирование баз данных, базы данныхОписание общей потребности в поиске данных и объектов в базе данных
Поиск данных, а также хранимых процедур, таблиц и других объектов в базе данных является достаточно актуальным вопросом в том числе и для C#-разработчиков, а также и для .NET-разработки в целом.
Достаточно часто может возникнуть ситуация, при которой нужно найти:
- объект базы данных (таблицу, представление, хранимую процедуру, функцию и т д)
- данные (значение и в какой таблице располагается)
- фрагмент кода в определениях объектов базы данных
Существует множество готовых решений как платных, так и бесплатных.
Сначала рассмотрим как можно осуществлять поиск данных и объектов в базе данных с помощью встроенных средств самой СУБД, а затем рассмотрим как это сделать с помощью бесплатной утилиты dbForge Search.
Читать полностью »
Замена EAV на JSONB в PostgreSQL
2019-11-09 в 21:51, admin, рубрики: eav, jsonb, postgresql, sql, архитектура базы данных, базы данных, хранение данныхTL; DR: JSONB может значительно упростить разработку схемы БД без ущерба производительности в запросах.
Введение
Приведем классический пример, наверное, одного из старейших вариантов использования в мире реляционных БД (база данных): у нас есть сущность, и необходимо сохранить определенные свойства (атрибуты) этой сущности. Но не все экземпляры могут имеют одинаковый набор свойств, к тому же в будущем, возможное добавление ещё свойств.
Самый простой путь решения этой проблемы – это создание столбца в таблице БД для каждого значение свойства, и просто заполнять те, которые нужны для определенного экземпляра сущности. Отлично! Проблема решена… до того момента, пока ваша таблица не содержит миллионы записей и у вас не возникнет необходимость добавить новую запись.
Рассмотрим паттерн EAV (Entity-Attribute-Value), он встречается достаточно часто. Одна таблица содержит сущности (записи), другая таблица содержит имена свойств (атрибутов), а третья таблица связывает сущности с их атрибутами и содержит значение этих атрибутов для текущей сущности. Это дает вам возможность иметь разные наборы свойств для разных объектов, а также добавлять свойства “на лету”, не изменяя структуры БД.
На чем разрабатывать Oracle разработчику в 2019-м году (и после)
2019-10-31 в 0:16, admin, рубрики: Alt SQL Developer, DataGrip, IDE, IntellijIDEA, oracle, oracle database, Oracle SQL Developer, PL/SQL, pl/sql developer, sql, TOAD, выбор IDE, разработка поНекоторое время назад я в очередной раз сменил место работы. Новый работодатель был настолько любезен, что разрешил мне выбрать любую IDE, которая понравится, и оплатить лицензию (но в разумных пределах). Также (в кои-то веки) у меня были права администратора на рабочем компьютере, так что я мог ставить что угодно и пробовать сколько угодно. Я попробовал: Oracle SQL Developer, TOAD, Alt SQL Developer и (ВНЕЗАПНО!) IntelliJ IDEA (PL/SQL Developer не пробовал, но много работал раньше). Если вы регулярно пишете PL/SQL код, или хотя бы время от времени делаете запросы к Oracle Database, думаю, вам будет интересно почитать, к каким выводам я пришел.
PostgreSQL и настройки согласованности записи для каждого конкретного соединения
2019-10-21 в 9:16, admin, рубрики: compose, Governor, postgresql, sql, Администрирование баз данных, базы данных, Блог компании OTUS. Онлайн-образование, синхронные коммиты, согласованность записиПеревод статьи подготовлен специально для студентов курса «Базы Данных». Интересно развиваться в данном направлении? Приглашаем вас на День Открытых Дверей, где мы подробно рассказываем о программе, особенностях онлайн-формата, компетенциях и карьерных перспективах, которые ждут выпускников после обучения.
PostgreSQL и настройки согласованности записи для каждого конкретного соединения
Нам в Compose приходится иметь дело со многими базами данных, именно это дает нам возможность познакомиться поближе с их функционалом и недостатками. По мере того, как мы учимся любить функциональные особенности новых баз данных, мы иногда начинаем думать о том, как бы было хорошо, если бы подобные функции присутствовали и в более зрелых инструментах, с которыми мы работаем уже давно. Одна из новых особенностей, которую хотелось видеть в PostgreSQL, была настраиваемая согласованность записи под соединение во всем кластере. И как оказалось, она у нас уже есть, и сегодня мы хотим поделиться с вами информацией о том, как вы можете ее использовать.Читать полностью »
Песнь льда (кровавый Enterprise) и пламени (DevOps и IaC)
2019-10-10 в 12:29, admin, рубрики: amazon, AWS, chef, devops, iac, Jenkins, sql, terraform, Администрирование баз данныхТема DevOps и IaC очень популярна и развивается быстро. Однако большинство авторов касаются сугубо технических проблем на этом пути. Я же опишу проблемы, характерные для большой компании. Решения у меня нет — проблемы, в общем, фатальны и лежат в области бюрократии, аудита, и «soft skills».

Раз название статьи такое, то в качестве котика выступит Дайнерис, перешедшая на сторону Enterprise
Читать полностью »
FAQ.Net — записная книжка или программа для заметок под Windows бесплатно
2019-10-07 в 9:32, admin, рубрики: .net, C#, sql, sqlite, бесплатно, заметки, записная книжка, разработка под windowsFAQ.Net — программа для заметок, написанная под Windows на языке C# (.NET Framework 2.0).
История началась с того, что нужна была портативная программа для хранения накопленных знаний (копий статей из интернета, ссылки на статьи, SQL-запросы, программный код, пароли и т.д.), с возможностью быстрого поиска и редактирования документов. За основу интерфейса FAQ.Net был взят интерфейс из CHM-формата (файл справки или руководство о программе).
Так как я специализируюсь на базах данных, то решил все документы хранить в БД, используя встроенную СУБД — SQLite. Создал таблицы и написал интерфейс для работы с БД.
Многие программисты до сих пор создают заметки в текстовых документах, сохраняя их на компьютере и со временем теряют их местонахождение. Теперь, с помощью FAQ.Net все накопившиеся документы, можно хранить в одном месте, не опасаясь за их утрату.
В приложении FAQ.Net имеется возможность резервного копирования БД.
Крадущийся тигр, затаившийся SQLAlchemy. Основы
2019-10-06 в 7:39, admin, рубрики: postgresql, python, sql, sqlalchemyДоброго дня.
Сегодня хочу рассказать про ORM SQLAlchemy. Поговорим о том, что это, про его возможности и гибкость, а также рассмотрим случаи, которые не всегда понятно описаны.
Данная ORM имеет порог вхождения выше среднего, поэтому я попытаюсь объяснить всё простым языком и с примерами. Статья будет полезна тем, кто уже работает с sqlalchemy
и хочет прокачать свои навыки или только знакомится с этой библиотекой.
Мой первый взлом: сайт, позволяющий задавать любой пользовательский пароль
2019-09-24 в 14:33, admin, рубрики: javascript, raiffeisenIT, security, sql, Блог компании Райффайзенбанк, информационная безопасностьНедавно я нашёл интересную уязвимость, позволяющую установить любому пользователю конкретного сайта любой пароль. Круто, да?
Это было забавно, и я подумал, что можно написать интересную статью.
На неё вы и наткнулись.
Примечание: автор переведённой статьи не специалист по информационной безопасности, и это его первый экскурс в мир SQL-инъекций. Он просит быть «снисходительными к его наивности».
Предупреждение: автор переведённой статьи не станет раскрывать сайт с этой уязвимостью. Не потому, что он сообщил о ней владельцу и связан узами молчания, а потому что хочет приберечь уязвимость для себя. Если вы вычислите этот сайт, пожалуйста, держите рот на замке (цыц).
Читать полностью »