Автор Тема: Как отобразить сложные запросы в БД на диаграммах?  (Прочитано 2755 раз)

predator_ua

  • Newbie
  • *
  • Сообщений: 47
  • Рейтинг читателей: 3
    • Просмотр профиля
Всем доброго времени суток

Имеется некая выборка из Х таблиц с большим набором всевозможных условий. С помощью каких диаграмм возможно описать данный алгоритм?

Пробовал на через диаграмму последовательностей не получилось ... через диаграмму деятельности тоже не особо ясно.

Заранее Спасибо!


Григорий Печенкин

  • Member of CAR
  • Hero Member
  • *****
  • Сообщений: 1318
  • Рейтинг читателей: 57
    • Просмотр профиля
    • http://www.greesha.ru
Алгоритм - это последовательность шагов. Какие шаги вам нужно изобразить?
Приведите пример, иначе непонятна задача, которую вы решаете.
greesha.ru

Реальность - это убийство прекрасной теории бандой мерзких фактов. (Роберт Гласс)

predator_ua

  • Newbie
  • *
  • Сообщений: 47
  • Рейтинг читателей: 3
    • Просмотр профиля
Попробую упростить до нельзя суть проблемы

у меня есть SQL запрос (да я прекрасно понимаю что SQL сам по себе является языком действий но все же)

Пример

select x.id, y.id from x_table x, y_table y
  where x.z = y.z
    and y.value = pkg.getValue(x.value)

то есть мне нужно отобразить на диаграмме объединение трех сущностей (x_table, y_table, pkg.getValue) и на результат наложить ограничение


Denis Beskov

  • Member of CAR
  • Hero Member
  • *****
  • Сообщений: 2405
  • Рейтинг читателей: 90
    • Просмотр профиля
    • Школа системного анализа
Почему обязательно на диаграмме, а не в таблице?

Если обязательно хочется залезть на шкафчик, смотрите в сторону UML + OCL

predator_ua

  • Newbie
  • *
  • Сообщений: 47
  • Рейтинг читателей: 3
    • Просмотр профиля
Как? Как представить таблицей? Пример если можно или хоть подсказку по моему описанию,
Сама задача на порядок сложнее но пока не ясен способ описания этого примера развивать идею немогу.
При построении диограммы последовательности уткнулся в тот факт что данные выбираем из двух таблиц одновременно и даже если поставить предварительно opt то получим для каждой таблицы свой опцион и опять выйдем на параллельность которую показать немогу( через OCL будет таже проблема, если б в диограммах была бы некая сущность описывающая фильтрацию данных но такого невидел


predator_ua

  • Newbie
  • *
  • Сообщений: 47
  • Рейтинг читателей: 3
    • Просмотр профиля
Сожалею но в моей ситуации таблица это утопичное решение.


Denis Beskov

  • Member of CAR
  • Hero Member
  • *****
  • Сообщений: 2405
  • Рейтинг читателей: 90
    • Просмотр профиля
    • Школа системного анализа
Давайте сначала, в аналитическом ключе.

Кто и как будет использовать эту диаграмму?

predator_ua

  • Newbie
  • *
  • Сообщений: 47
  • Рейтинг читателей: 3
    • Просмотр профиля
Почему обязательно на диаграмме, а не в таблице?

Если обязательно хочется залезть на шкафчик, смотрите в сторону UML + OCL
Правильно ли я Вас понял(относительно примера)?
------------------------------
[select x.id, y.id from x_table x, y_table y] ---> [Выборка данных из таблиц x_table, y_table] ----> cursor(...)
[  where x.z = y.z and y.value = pkg.getValue(x.value)] ---> [проверка данных x.z = y.z and y.value = pkg.getValue(x.value)]
Но ведь с таким же успехом я могу написать смотри код .... и свести задачу к черному ящику ...

predator_ua

  • Newbie
  • *
  • Сообщений: 47
  • Рейтинг читателей: 3
    • Просмотр профиля
Давайте сначала, в аналитическом ключе.

Кто и как будет использовать эту диаграмму?

Диаграмма нужна для описания модели взаимодействий, повторюсь пример это ОЧЕНЬ упрощенная задача .. то есть та часть задачи которую я не смог описать в UML
а полная задача вот:
----
Есть в ORACLE такая сущность как Синоним
он ссылается на процедуру ..
процедура проверяет ряд условий .. готовит так сказать данные для дальнейшего запроса ... после чего по исходным данным + подготовленным "временкам" делает курсоры, которые в свою очередь используют промежуточные вызовы процедур.
всё это исключая блоки (select from dual) я описал на диаграмме последовательностей
---
А теперь внемание ... иногда!! при накате патчей на некоторые таблицы синоним перестает работать ... согласно документации он перестает работать из за того что процедура на которую смотрит синоним становится инвалидной, но перекомпилить её автоматом нельзя, процедура согласно документации падает если хотя-бы один объект на который она ссылается становится инвалидны ..

мне поставлена задача расписать логику синонима до уровня таблиц

Denis Beskov

  • Member of CAR
  • Hero Member
  • *****
  • Сообщений: 2405
  • Рейтинг читателей: 90
    • Просмотр профиля
    • Школа системного анализа
опять эта ритуальная фраза-заклинание в пассивном залоге "мне поставлена задача", которая дегуманизирует всю суть вашей работы и результатов, которые на самом деле нужна для людей и каких-то их нужд

зачем вы пришли на аналитический форум, если не отвечаете на вопросы?

1. КТО БУДЕТ ИСПОЛЬЗОВАТЬ ДИАГРАММУ?

2. В ХОДЕ КАКОЙ ДЕЯТЕЛЬНОСТИ?

3. ДЛЯ ЧЕГО?

Не хотите отвечать — идите на SQL.ru, там рыбу любят, жареную.

Если "мне поставлена задача", то должны быть критерии приёмки. Диаграмма должна быть такой, чтобы кто-то (1) мог с помощью неё что-то сделать (2) с каким-то качеством (3) (точностью, скоростью, удовлетворённостью и т.д.) и с какой-то целью (4).

Григорий Печенкин

  • Member of CAR
  • Hero Member
  • *****
  • Сообщений: 1318
  • Рейтинг читателей: 57
    • Просмотр профиля
    • http://www.greesha.ru
Диаграмма нужна для описания модели взаимодействий, повторюсь пример это ОЧЕНЬ упрощенная задача .. то есть та часть задачи которую я не смог описать в UML
а полная задача вот:
----
Есть в ORACLE такая сущность как Синоним
он ссылается на процедуру ..
процедура проверяет ряд условий .. готовит так сказать данные для дальнейшего запроса ... после чего по исходным данным + подготовленным "временкам" делает курсоры, которые в свою очередь используют промежуточные вызовы процедур.
всё это исключая блоки (select from dual) я описал на диаграмме последовательностей
---
А теперь внемание ... иногда!! при накате патчей на некоторые таблицы синоним перестает работать ... согласно документации он перестает работать из за того что процедура на которую смотрит синоним становится инвалидной, но перекомпилить её автоматом нельзя, процедура согласно документации падает если хотя-бы один объект на который она ссылается становится инвалидны ..

мне поставлена задача расписать логику синонима до уровня таблиц

С точки зрения пользователя, у синонима нет логики. Это просто другое имя объекта.
Вам нужно описать внутреннюю логику СУБД при разборе и выполнении запроса с использованием синонима? При этом синоним определён для процедуры, а не для таблицы?

Вы как-то очень запутанно описываете задачу. Такое ощущение, что вы сами её не поняли. А правильно поставленный вопрос, как известно, содержит половину ответа.
greesha.ru

Реальность - это убийство прекрасной теории бандой мерзких фактов. (Роберт Гласс)

predator_ua

  • Newbie
  • *
  • Сообщений: 47
  • Рейтинг читателей: 3
    • Просмотр профиля
зачем вы пришли на аналитический форум, если не отвечаете на вопросы?
Я пришел сюда за ответами как .. с помощью каких диаграмм описать мою ситуацию

1. КТО БУДЕТ ИСПОЛЬЗОВАТЬ ДИАГРАММУ?
2. В ХОДЕ КАКОЙ ДЕЯТЕЛЬНОСТИ?
3. ДЛЯ ЧЕГО?
Судя по Вашим вопросам я иду не туда, и решение не в диаграмме а в предписании ХМ...

Не хотите отвечать — идите на SQL.ru, там рыбу любят, жареную.
Зачем Вы так?

Если "мне поставлена задача", то должны быть критерии приёмки. Диаграмма должна быть такой, чтобы кто-то (1) мог с помощью неё что-то сделать (2) с каким-то качеством (3) (точностью, скоростью, удовлетворённостью и т.д.) и с какой-то целью (4).

Спасибо Денис что направили меня в нужное русло!
« Последнее редактирование: 30 Июля 2015, 12:53:16 от predator_ua »

Nataly

  • Newbie
  • *
  • Сообщений: 12
  • Рейтинг читателей: 5
    • Просмотр профиля
Для финансовой организации описывала правила контроля доли облигации в составе портфеля.
Может и не по правилам UML, зато для однозначного понимания алгоритма заказчиком, аналитиком и разработчиком хватило.
Рисовала в MagiсDraw.