Как стать автором
Поиск
Написать публикацию
Обновить
6.55

Oracle *

Система управления базами данных

Сначала показывать
Порог рейтинга
Уровень сложности

Liquibase: пример автоматизированного наката изменений на реляционную БД на примере Oracle HR Sample Schema

Время на прочтение2 мин
Количество просмотров24K

Вместо предисловия


Статья будет интересна тем, кто хоть раз задумывался о вопросе наката изменений (патча) на реляционную БД. Статья не будет интересна тем, кто уже освоил и использует Liquibase. Главной целью данной статьи является указание ссылки на репозиторий с примером использования. В качестве примера я выбрал накат sample-схемы HR на БД Oracle (список всех поддерживаемых БД) — любой желающий может скачать себе репозиторий и поиграться в домашних условиях. Желание продемонстрировать пример вызвано обсуждением этого вопроса на ресурсе sql.ru.

Читать дальше →

Аналитика в госсекторе: особенности больших систем хранения данных

Время на прочтение7 мин
Количество просмотров8.2K
Принято считать, что информационные технологии в государственных ведомствах приживаются тяжелее, и для этого мнения есть ряд объективных причин. Однако, как говорил Альф: «Вы не любите котов? Значит, вы не умеете их готовить!». И сегодня мы хотим поговорить о том, как отличаются проекты в госкомпаниях с точки зрения бизнес-IT интегратора, и для каких целей госы создают большие хранилища для аналитических проектов.

Исторически государственные ведомства отличаются большей инертностью, потому что в них принято дольше согласовывать каждый шаг, потому что точка принятия решения в них размыта, потому что заказчик может многократно менять задание, уточняя, что же ему необходимо в действительности. Сами чиновники в своем большинстве воспринимают ИТ-проекты без лишнего энтузиазма. В госструктурах обычно нет какого-то сильного сопротивления новому, но и стремления к нему тоже нет, в частности, оказывается непросто найти заинтересованный в результатах «локомотив» внедрения новых решений. В итоге внедрение идет медленнее, и со стороны начинает казаться, что заказчику вообще не нужен тот или иной проект.

Читать дальше →

Анатомия распределённых бизнес-процессов: Oracle SOA и BPM

Время на прочтение11 мин
Количество просмотров10K

Все переплетено, море нитей, но.
Потяни за нить, за ней потянется клубок.
Этот мир – веретено
Oxxxymiron – Переплетено

Мир построения крупных ИС в топ-100 компаниях, как и любые другие ИТ-направления, подвержен веяниям моды. Еще пять лет назад SOA казалось решением всех проблем сложных архитектур. Банки и крупные ритейлеры активно перестраивали свои системы в интеграционном SOA-стиле. BPM-платформы внедряли там, где руководство придерживается современного подхода в построении бизнес-приложений и интеграционной архитектуры самой компании.

Сегодня сервис-ориентированной архитектурой уже никого не удивишь, а в особо продвинутых кругах это уже моветон — ведь есть микросервисы, новое лекарство от всех болезней.

Но велико число тех организаций, где всё делается «по-старинке» — такие заказчики очень часто мыслят категориями имеющихся у них ИТ-систем. Мол, «мы купили вот такую крутую CRM-систему и счастливы». Или «у нас есть SAP ERP, нам его хватает на все случаи жизни». Хотя на самом деле сложности возникают: нередка ситуация, когда компания приобретает какую-то систему и начинает нашпиговывать её несвойственной ей функциональностью и ставить задачи, на которые вендоры и не рассчитывали. В итоге система превращается в неповоротливого монстра, чьи дополнительные возможности плохо задокументированы, с ней очень тяжело разбираться и работать. И самое главное — её тяжело развивать.

Вторая распространённая ситуация: каждый отдел внутри организации лепит что-то своё. В одном подразделении скачали Open Source систему учёта заявок, в другом заказали решение у местного программиста, и так далее. В итоге возникает зоопарк систем, решающих одни и те же задачи.

И выходом из двух этих крайних ситуаций по-прежнему являются интеграционные и BPM-решения. Замечательные представители которых — Oracle SOA Suite и Oracle BPM Suite. Что это такое и зачем они нужны?
Читать дальше →

Padding Oracle Attack: криптография по-прежнему пугает

Время на прочтение6 мин
Количество просмотров15K

Эту уязвимость чинят уже пятнадцать лет


В хабрапереводе текста четырёхгодовалой давности «Padding Oracle Attack или почему криптография пугает» была подробно описана атака на режим шифрования CBC. В этом режиме каждый очередной блок открытого текста xor-ится с предыдущим блоком шифротекста: в результате каждый блок шифротекста зависит от каждого блока открытого текста, который был обработан к тому моменту.

Чтобы пропустить исходное сообщение (произвольной длины) через CBC-шифр, к нему дописывается MAC (хеш для проверки целостности, обычно 20-байтный SHA-1) и затем padding, чтобы дополнить открытый текст до целого числа блоков (обычно 16-байтных):


Padding («набивка») состоит из одинаковых байтов, на единицу меньших своей длины: (0) или (1,1) или (2,2,2) или т.п.
Таким образом, получатель шифротекста должен
  1. расшифровать все его блоки;
  2. прочитать последний байт последнего блока, чтобы определить длину набивки и, соответственно, позицию MAC в открытом тексте;
  3. проверить корректность набивки и MAC.

В 2002 г. французский криптограф Серж Воденэ обнаружил в CBC уязвимость к атакам типа «padding oracle»:
Читать дальше →

Подход к разделению схем (пользователей) при проектировании OLTP баз данных

Время на прочтение2 мин
Количество просмотров6.6K

Проблематика и назначение:


Разделение схем в основе своей реализуется для масштабируемости и безопасности:

  • Масштабируемость с точки зрения баз данных должна быть такой, чтобы схему можно было вынести в другую базу без ущерба функционалу.
  • Безопасность с точки зрения баз данных должна быть такой, чтобы внешние пользователи оперировали только бизнес логикой, к которой раздаются гранты, и не имели доступа к первичным данным.
Читать дальше →

Dive into BerkeleyDB JE. Introduction to Collections API

Время на прочтение5 мин
Количество просмотров1.4K

Введение


Немного о сабже. BerkleyDB — высокопроизводительная встраиваемая СУБД, поставляемая в виде библиотеки для различных языков программирования. Это решение предполагает хранение пар ключ-значение, также поддерживается возможность ставить одному ключу в соответствие несколько значений. BerkeleyDB поддерживает работу в многопоточной среде, репликацию, и многое другое. Внимание данной статьи будет обращено в первую очередь в сторону использования библиотеки, предоставленной Sleepycat Software в бородатых 90х.

В предыдущей статье мы рассмотрели основные аспекты работы с Direct Persistence Layer API, благодаря которому можно работать с Berkeley как с реляционной БД. Сегодня же внимание будет обращено в сторону Collections API, которое предоставляет возможность работы через всем привычные Java Collections интерфейс-адаптеры.

Примечание: все примеры в данной статье будут приведены на языке Kotlin.
Читать дальше →

Использование Graphviz для построения блок-схем

Время на прочтение3 мин
Количество просмотров33K
Мы создаем ПО для разработки и поддержки баз данных Oracle, и статический анализатор PL/SQL является одной из основных фич наших приложений. Кто знаком с Oracle, тот хорошо знает что такое PL/SQL.

Известная поговорка гласит: «Лучше один раз увидеть, чем сто раз услышать». Поэтому мы решили заимпрувить статический анализатор таким образом, чтобы он визуализировал код в виде блок-схем (Flowcharts) и диаграмм вызовов (Call Trees). Хоть и нарисовать блоки и их связи несложно, оптимизировать их расположение на «листе» представлялось задачей, требующей значительных усилий. Чтобы стрелки минимально пересекались и обтекали блоки, блоки объединялись в группы, и диаграмма при этом не превращалась в «кашу», нужно было потратить много сил и времени.

И тогда мы решили поискать готовое решение, дабы не изобретать велосипед. Наше внимание сразу привлек Graphviz – open source решение по визуализации диаграмм. Первые его версии были разработаны компанией AT&T, а теперь он доступен как набор утилит и библиотек, а также в исходниках под лицензией Eclipse Public License (EPL).

Его движок диаграмм использует язык описания графов DOT, который представляет собой текстовое описание структуры графа: вершины, их связи, группы и атрибуты для их визуального оформления.
Читать дальше →

Dive into BerkeleyDB JE. Introduction to DPL API

Время на прочтение9 мин
Количество просмотров3K

Введение


Немного о сабже. BerkeleyDB — высокопроизводительная встраиваемая СУБД, поставляемая в виде библиотеки для различных языков программирования. Это решение предполагает хранение пар ключ-значение, также поддерживается возможность ставить одному ключу в соответствие несколько значений. BerkeleyDB поддерживает работу в многопоточной среде, репликацию, и многое другое. Внимание данной статьи будет обращено в первую очередь в сторону использования библиотеки, предоставленной Sleepycat Software в бородатых 90х. В этой статье будут рассмотрены основные аспекты работы с DPL (Direct Persistence Layer) API.

Примечание: все примеры в данной статье будут приведены на языке Kotlin.
Читать дальше →

Сопоставление типов данных Oracle с PostgreSQL

Время на прочтение2 мин
Количество просмотров36K
Один из самых первых и распространенных вопросов в процессе миграции базы данных с Oracle на PostgreSQL — «Как типы данных Oracle сопоставимы с типами PostgreSQL?».

Простой ответ заключается в том, что они очень совместимы и легко сопоставляются. В приведенной ниже таблице показано сравнение и сопоставление типов данных Oracle с PostgreSQL для наиболее распространенных типов Oracle. Эти базовые типы данных лишь поверхностно демонстрируют то, что может сделать PostgreSQL, — она ​​имеет очень богатую систему типов и поддерживает настраиваемые типы. В состав встроенных типов входят JSON, массивы, UUID, IP-адреса, геометрические типы, перечисления и многое другое.
Читать дальше →

Visual Plugin Pack в OBIEE: с чем его едят и как готовят

Время на прочтение4 мин
Количество просмотров4K


Привет, Хабр! В этом посте речь пойдет об интересной разработке для Oracle Business Intelligence под названием Visual Plugin Pack.

Один из продуктов в составе пакета Oracle BI — интерактивные панели (Interactive Dashboard) — основан на web-интерфейсе и поддерживает комплекс средств визуализации: шкалы, диаграммы, сводные отчеты, сценарии анализа на базе условий. В нем также реализован механизм drilldown, который может быть настроен и как иерархия в OBIEE, и как ссылка на другое действие. Таким образом, обеспечивается неограниченная детализация отчетных показателей.
Читать дальше →

Сравнение* древовидных графов

Время на прочтение8 мин
Количество просмотров12K
Привет, Хабр!

* На самом деле не совсем так. При разработке информационной системы, частью которой является различная обработка конструкторско-технологической документации, у меня возникла проблема, которую вкратце можно описать следующим образом. Сегодня мы имеем один состав изделия, за день приходит несколько изменений по различным частям этого изделия и к вечеру уже неясно, что же изменилось? Изделия порой могут иметь более 10 000 элементов в составе, элементы не уникальны, а реальность такова, что изменения по составу могут активно приходить, хотя изделие уже почти готово. Непонимание объема изменений усложняет планирование.

Состав изделия можно представить в виде древовидного графа. Не найдя подходящего способа сравнения двух графов, я решил написать свой велосипед.
Читать дальше →

Oracle Data Integrator. SubstitutionAPI: Порядок выполнения подстановок. Часть 2

Время на прочтение5 мин
Количество просмотров2.8K
Для кого эта статья
Статья предназначена для опытных разработчиков ODI (Oracle Data Integrator). Здесь рассмотрены плохо документированные аспекты связанные с порядком выполнения BeanShell-подстановок.
Это продолжение Части 1.

После того как мы разобрались с каждым уровнем BeanShell-подстановок по отдельности, посмотрим, как эти уровни согласуются друг с другом при совместном использовании. Здесь пойдет речь пока только о тесном сотрудничестве разных и одинаковых подстановок, когда они буквально проникают друг в друга. Как происходит их интерпретация, когда они вложены друг в друга?
Читать дальше →

Oracle Data Integrator. SubstitutionAPI: Порядок выполнения подстановок. Часть 1

Время на прочтение6 мин
Количество просмотров6.1K
Для кого эта статья
Статья предназначена для опытных разработчиков ODI (Oracle Data Integrator). Здесь рассмотрены плохо документированные аспекты, связанные с порядком выполнения BeanShell-подстановок.

Подстановки %?$@


Спокойно! «%?$@» — это не эвфемизм, а спецсимволы, используемые для BeanShell-подстановок разных типов. Хотя именно таким образом мог бы сказать о них разработчик, решивший использовать их все вместе, и не разобравшись в ряде тонкостей. А между тем — это чрезвычайно мощный инструмент, обеспечивающий гибкое формирование кода, выполняемого в сценариях.

Когда и где выполняются подстановки? Повторяются ли они в Target-коде для каждой source-строки? Можно ли вкладывать подстановки разных уровней? А одинаковых? Если я объявил Java-переменную, то где я всё ещё могу её использовать? Почему иногда не работают функции Substitution API, а иногда работают (не документировано в каком уровне подстановок какие функции применимы)? И так далее. Этим слабо документированным тонкостям и посвящается серия статей. И это первая из них.
Читать дальше →

Ближайшие события

Повышаем качество данных с Oracle Enterprise Data Quality

Время на прочтение5 мин
Количество просмотров4.9K
В большинстве проектов по внедрению Siebel, так или иначе, приходится сталкиваться с проблемами качества данных. В этой части Oracle предлагает интересное решение – Enterprise Data Quality с возможностью интегрирования в Siebel (что нас собственно и привлекло). В данном материале я вкратце расскажу о самом продукте, его архитектуре, а также покажу, как можно создать простой процесс повышения качества данных.

Коротко о продукте


EDQ ‒ продукт, позволяющий управлять качеством информации. Основой для анализа EDQ могут служить разные источники данных, такие как:

  • базы данных (Oracle, Postgres, DB2, MySql и т.д.),
  • текстовые файлы,
  • XML-файлы,
  • MS Office файлы,
  • системные файлы и прочее.
Читать дальше →

«Технологический центр Дойче Банка — это структура для IT-поддержки глобального бизнеса банка» — Александр Халухин

Время на прочтение9 мин
Количество просмотров3.4K
Предлагаем вашему вниманию свежий выпуск интервью с ведущими мастер-классов на PG Day'17 Russia. Сегодня мы побеседовали с Александром Халухиным, разработчиком баз данных Oracle с 10-тилетним стажем. Александр профессионально занимается разработкой уже более 12-ти лет. Последние четыре года своей карьеры посвятил разработке крупных проектов для технологического центра Deutsche Bank в Москве.

На PG Day'17 Russia Александр представит интенсивный практический курс по диагностике производительности Oracle Database.

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


PG Day: Александр, расскажи немного о себе. Как давно работаешь в профессии, какими квалификациями обладаешь?

Александр: В разработке — с 18 лет, именно тогда состоялась моя первая постоянная работа за зарплату. Текущая специализация сейчас — это PL/SQL Oracle. Занимаюсь этим на постоянной основе более десяти лет. Начинал, как и многие приходящие в Oracle в те годы, со всевозможных сред быстрой разработки Delphi и C++ Builder. За свою карьеру успел поработать в разных местах. В настоящий момент работаю в Технологическом Центре Дойче Банка.
Читать дальше →

От Oracle Database 12c EE к PostgreSQL, или основные отличия PostgreSQL при разработке под IEM-платформу Ultimate

Время на прочтение7 мин
Количество просмотров8.1K
В предыдущей статье я рассказал о выходе Solid12 — версии IEM-платформы для PostgreSQL. Как и обещал, рассказываем более детально о том, с чем придется столкнуться разработчикам (и с чем столкнулись мы при миграции).

Этот обзор не является исчерпывающим, скорее его нужно рассматривать как минимальную вводную для разработчика под Oracle, приступающего к работе на PostgreSQL.
Читать дальше →

Жизнь Oracle I/O: трассировка логического и физического ввода-вывода с помощью SystemTap

Время на прочтение21 мин
Количество просмотров11K
Приглашаем всех специалистов принять участии в секции, посвященной коммерческим базам данных на PG Day'17 Russia! Александр Халухин из Deutsche Bank готовит интенсивный мастер-класс о диагностике производительности Oracle Database. Полный список выступлений смотрите в программе на сайте!

А мы продолжаем публиковать переводы статей от специалистов по базам данных из CERN. Сегодняшний материал является второй частью цикла статей, посвященных трассировке и отладке производительности Oracle DB с помощью SystemTap.




Эта статья посвящена отслеживанию логических и физических чтений в Oracle с помощью SystemTap. Здесь вы найдете несколько примеров, иллюстрирующих основные механизмы, используемые Oracle для выполнения физических и логических операций ввода-вывода, и узнаете, как создавать скрипты SystemTap для последующей диагностики и устранения неполадок ввода-вывода Oracle.
Читать дальше →

20 бесплатных утилит и 89 скриптов для мониторинга и управления базами данных

Время на прочтение2 мин
Количество просмотров35K
Ты сидишь — база растёт, идёшь — база растёт, спишь, ешь или делаешь ещё много всего, а база всё растёт и растёт. Кто-то очень умный сказал, что единственное, что в нашей жизни постоянно — это изменения. Главное — правильно на них реагировать. Любая нештатная ситуация с базой данных происходит именно из-за таких изменений. К сожалению, не всегда есть возможность вложиться в расшитую золотом и усыпанную драгоценными камнями в 60 карат промышленную систему мониторинга. И это заставляет прибегнуть к бесплатным или условно-бесплатным решениям. В статье я собрал 20 бесплатных утилит от компании IDERA (и не только), которые могут некисло помочь закрыть некоторые вопросы с мониторингом и управлением MS SQL, MySQL и Oracle. Поехали!

halyava_sir.jpg
Впитать знания

SystemTap в Oracle

Время на прочтение12 мин
Количество просмотров3.7K
В этом году в рамках PG Day'17 Russia пройдет двухдневный поток докладов по Oraclе DB: Ярослав Киселев расскажет о мониторинге и диагностике производительности приложения с точки зрения Oracle DB, Николай Кудинов сделает технический ликбез о минимизации ожиданий log file sync и log file parallel write, Александр Халухин из Deutsche Bank готовит интенсивный мастер-класс о диагностике производительности Oracle Database. Полный список выступлений смотрите у нас на сайте!

Для специалистов, интересующихся коммерческими базами данных мы подготовили перевод публикаций от специалистов по базам данных из CERN. Сегодняшний материал открывает цикл из нескольких статей, посвященных трассировке и отладке производительности Oracle DB с помощью SystemTap.




Эта статья посвящена использованию SystemTap для поиска и устранения неполадок в СУБД Oracle. В частности, вы узнаете, как исследовать процессы Oracle и их функции userspace. Эти методы будут полезны и увлекательны для всех, кто заинтересован в том, чтобы заглядывать под капот технологий и повышать свою эффективность в поиске и устранении неисправностей, а также в исследованиях производительности.
Читать дальше →

Механизм подсчета нейронной сети в PL/SQL для распознавания рукописных цифр

Время на прочтение10 мин
Количество просмотров16K
Дорогие коллеги, спешим порадовать всех, кто неравнодушен к наукоемким задачам. Сегодня мы приготовили для вас перевод любопытной публикации от экспертов по базам данных из CERN, посвященный обучению и эксплуатации нейронных сетей с помощью Python и инструментария на базе Oracle PL/SQL.



В этой статье вы найдете пример построения и развертывания базового механизма подсчета искусственной нейронной сети с использованием PL/SQL. Статья предназначена для учебных целей, в частности для практиков Oracle, которые хотят на конкретном примере познакомиться с нейронными сетями.
Читать дальше →

Вклад авторов