powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Ищу структуру данных для хранения информации о sql-запросах
25 сообщений из 50, страница 1 из 2
Ищу структуру данных для хранения информации о sql-запросах
    #38537303
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно дать пользователю формировать простые (без СТЕ и пр.) sql -запросы по существующей структуре данных.
Есть ли на просторах готовая структура данных для хранения информации о запросах или это лисапед?)
...
Рейтинг: 0 / 0
Ищу структуру данных для хранения информации о sql-запросах
    #38537315
Фотография lLocust
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sp,

Совсем не понятно что нужно... можно более развернуто?
...
Рейтинг: 0 / 0
Ищу структуру данных для хранения информации о sql-запросах
    #38537350
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lLocust,

Нужно чтоб пользователь мог составить запрос на клиенте (не руками написав select......, а с помощью дизайнера запросов создал запрос) и сохранить его в БД в виде структуры, которую можно валидировать на корректность и доступность объектов и анализировать и повторно представлять юзеру для изменений
...
Рейтинг: 0 / 0
Ищу структуру данных для хранения информации о sql-запросах
    #38537363
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lLocust,

- запрос должен именоваться
- запрос должен предоставлять список результирующих колонок, чтоб можно было в интерфейсе выбирать какие прятать/показать
- запрос должен ограничить пользователя разрешенными объектами (есть таблица прав доступа)
- запрос должен хранить правила и способы соединения сущностей
- .....
...
Рейтинг: 0 / 0
Ищу структуру данных для хранения информации о sql-запросах
    #38537365
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- запрос должен хранить условия выборки
- запрос должен хранить порядок группировки и сортировки
- ...
...
Рейтинг: 0 / 0
Ищу структуру данных для хранения информации о sql-запросах
    #38537369
Фотография lLocust
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sp,

Встречал нечто подобное в Business Intelligence (вреде от Microsoft).

Что там было:
возможность как в режиме мастера добавлять, связывать таблицы и вьюхи (в том числе с указанием характеристик связи: Left, Full jons...)
На счет выбора колонок уже не помню, но что понравилось что можно было даже оракловые хинты указывать.
И с правами уже не помню что было, но продукт использовался так:
На основные формы системы строились такие "структуры", указывались возможные фильтры и настройки, и все это хозяйство ложилось в базу. Далее при запуске системы из базы тянулись настройки фильтров (по ним динамически формировались компоненты для фильтрации в ИС), а для работы с эти добром была целая схема с энным количество таблиц и пакетов.
Только инструмент для рядового пользователя был мягко говоря сложноват....
...
Рейтинг: 0 / 0
Ищу структуру данных для хранения информации о sql-запросах
    #38537370
Фотография lLocust
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sp,

ну и группировки и сортировки там естественно были...
...
Рейтинг: 0 / 0
Ищу структуру данных для хранения информации о sql-запросах
    #38537377
~
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
~
Гость
lLocust,
А задача то какая, написать своими силами промышленную BI систему?
...
Рейтинг: 0 / 0
Ищу структуру данных для хранения информации о sql-запросах
    #38537398
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
~lLocust,
А задача то какая, написать своими силами промышленную BI систему?

Написать хранилище запросов! БИ весь нам не нужен)
...
Рейтинг: 0 / 0
Ищу структуру данных для хранения информации о sql-запросах
    #38537407
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spсохранить его в БД
spхранилище запросов

Поле в таблице БД типа nvarchar(8000).
...
Рейтинг: 0 / 0
Ищу структуру данных для хранения информации о sql-запросах
    #38537466
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
splLocust,

Нужно чтоб пользователь мог составить запрос на клиенте (не руками написав select......, а с помощью дизайнера запросов создал запрос) и сохранить его в БД в виде структуры, которую можно валидировать на корректность и доступность объектов и анализировать и повторно представлять юзеру для измененийА диазйнер запросов в SSMS не подойдёт? Или ваши требования намного больше его функциональности?
Если боьше, то ещё взгляните на Access
...
Рейтинг: 0 / 0
Ищу структуру данных для хранения информации о sql-запросах
    #38537493
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не вырисовывается пока, что именно надо.

Есть сервер и есть дизайнер запросов. Последний (как я вижу такой дизайнер) берет из БД инфу о существующих таблицах и видах, графически показывает её пользователю, пользователь перетаскивает квадратики, ставит галочки, а на выходе дизайнер генерит SQL строку, которая передается на сервер для выполнения, или может быть сохранена на сервере как View.

Что дальше?

Не вдаваясь в эти детали могу предложить использовать какой нить yacc, что бы распарсить запрос и сохранить дерево, каждый узел в отдельной строке, у каждого узла будет своя семантика, там всё это "...можно валидировать на корректность и доступность объектов и анализировать...". Но
1) для этого BNF надо в точности знать (если его знать, то и самому парсер написать не сильно сложнее, чем yacc пользовать)
2) такой анализ с успехом делает сама СУБД.
...
Рейтинг: 0 / 0
Ищу структуру данных для хранения информации о sql-запросах
    #38537498
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
splLocust,

Нужно чтоб пользователь мог составить запрос на клиенте (не руками написав select......, а с помощью дизайнера запросов создал запрос) и сохранить его в БД в виде структуры, которую можно валидировать на корректность и доступность объектов и анализировать и повторно представлять юзеру для изменений
Ну, есть реляционный язык QBE. Он графический. И "дизайеры" для него. Например, В Аксцессе он юзается. Есть тулсы и для других СУБД. Сохраненные запросы в РБД - это собственно представления. В Аксцессе просто сохраняются запросы.
Другое дело, что пользователь, который "составлят запросы", все равно должен иметь понятия в БД. Ить о должен знать структуру БД, а не представления данных в окнах клиентской проги.
...
Рейтинг: 0 / 0
Ищу структуру данных для хранения информации о sql-запросах
    #38537503
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petalvikspсохранить его в БД
spхранилище запросов
Поле в таблице БД типа nvarchar(8000).

я б может понял вас еслиб в вопросе не обозначил требования..
...
Рейтинг: 0 / 0
Ищу структуру данных для хранения информации о sql-запросах
    #38537504
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene,

вы мне предлагаете хранить текст, а мне нужно хранилище реляционное - связанные таблицы, условия связей, поля результата...
...
Рейтинг: 0 / 0
Ищу структуру данных для хранения информации о sql-запросах
    #38537505
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfo,

мне не нужно сразу готовый запрос в виде представления - мне нужна структура хранящая метаданные запроса по которым можно легко сгенерировать вью или сформировать динамический скуль.
...
Рейтинг: 0 / 0
Ищу структуру данных для хранения информации о sql-запросах
    #38537508
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spU-gene,

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

нет, я говорю, что "структуру запроса" можно вытащить из запроса после того, как его распарсили, представили в виде дерева. Дерево - это не текст. По узлам дерева, по их семантике, можно дальше вытаскивать все, что угодно.

И я ничего не предлагаю. Я вопроса то еще не понял... а Вы еще загадок подкидываете. Что такое "метаданные запроса"? Ка понимать фразу "а мне нужно хранилище реляционное - связанные таблицы"? Вы запятыми хотя бы озаботьтесь, или согласованием слов.

Я дал схему типичного (в моем понимании) взаимодействия дизайнера запросов и СУБД. Ваш случай с ней как соотносится?
...
Рейтинг: 0 / 0
Ищу структуру данных для хранения информации о sql-запросах
    #38537512
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene,

таблица "запрос", таблица "связанные сущности", таблица "условия связей сущностей" и т.д. это и есть метаданные по которым можно сгенерировать запрос - это и есть метаданные хранящие информацию о запросе
...
Рейтинг: 0 / 0
Ищу структуру данных для хранения информации о sql-запросах
    #38537526
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sp,

я предлагаю хранить sql в виде - кто бы мог подумать? - sql! Именно в виде простой строки текста.

Пользователь может вводить эту строку в любом текстовом поле ввода.
Если нужно сделать визуальный конструктор - делай. Как именно - можно подсмотреть в имеющихся софтинах, например, в DbForgeStudio.

Для парсинга sql в виде строки заюзать парсер. Берём грамматику отсюда . Генерируем парсер - используем в своём приложении.

Если по какой-либо причине (какой?) хранение запроса в виде обычной строки не подходит, ничто не мешает хранить его в виде дерева/коллекции узлов с параметрами. Тут уже вопрос используемого языка, используемого диалекта sql и т. п.
...
Рейтинг: 0 / 0
Ищу структуру данных для хранения информации о sql-запросах
    #38537531
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sp,
Смотрите структур каталога БД. Там же все запросы храняться? И СУБД их как то валидирует?

Например тот же Access(что под руку попало) хранит всё о запросах в 2х таблицах MSysObjects и Msys Queries. В первой общее описание объекта (Имя, ID, тип) по строке на запрос, в другой на каждый запрос набор строк, в целом подозрительно напоминающих (кто бы мог подумать!) на сохраненный в таблицу узлы дерева синт. разбора SQL выражения. Но не совсем дерево. Навскидку, впечатление, что строки с атрибутом 5 перечисляют выводимые таблицы, с атрибутом 6 - поля, 7 - описывают JOINы между таблицами и тд. Покурите, как пример.

А общего решения наверное нет.
...
Рейтинг: 0 / 0
Ищу структуру данных для хранения информации о sql-запросах
    #38537610
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу задаться вопросом, в чем смысл и почему возникла необходимость "дать возможность пользователю самому формировать запросы" ?

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

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

Субъективно я вижу такие пути решения этих двух проблем.

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

Очень близко к этому тезису стоит возможность создания "пользовательских фильтров". Если разработчик не предусмотрел и не предугадал все актуальные и возможные в будущем бизнесовые фильтры (выраженные в терминах бизнеса) и возможность их комбинации для уточнения критериев отбора, то пользователи вынуждены считать за благо долгую возню в некоем бланке, вручную отмечая галками поля и соображая в каком порядке должны выполняться операции OR, AND.

Вторая. Система должна быть построена в виде конфигурации, сделанной на хорошем конфигураторе (примеры, часто появляющиеся в этом топике - искра, випрос). В системе должны быть высокоуровневые специализированные конфигураторы ключевых бизнес объектов, которые находятся под присмотром аналитика-конфигураста. Это может быть свой квалифицированный пользователь, внешний разработчик на договоре или по аутсорсингу. При появлении новых требований за счет настройки в этих конфигураторах поведение системы должно меняться во всех модулях, использующих эти ключевые объекты.

Мне самому удалось только в небольшой степени воплотить эти подходы в своих разработках. Желаю остальным читателям-писателям форума дальше пройти по этому пути.
...
Рейтинг: 0 / 0
Ищу структуру данных для хранения информации о sql-запросах
    #38537630
Программист-Любитель,

Возможно, у sp "пользоваетль" = у Вас "разработчик". Например, 1с разработчики с СУБД напрямую не общаются, но они не конечные пользователи.
...
Рейтинг: 0 / 0
Ищу структуру данных для хранения информации о sql-запросах
    #38537636
Программист-Любитель...
С моей точки зрения причин две - лень или недостаточная искусность разработчика , не предоставившего пользователю возможность манипулирования информацией во всех нужных разрезах, рассматривать ее с разных точек зрения на уровне презентации объектов в конечной бизнес-форме, в терминах бизнеса. ...


А если даст - запросы уже не нужны?
...
Рейтинг: 0 / 0
Ищу структуру данных для хранения информации о sql-запросах
    #38537689
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист-Любитель,

Ну тут 2 тезиса:
- все не предусмотриш
- по каждому хотению юзера напрягать программера - негоже!

А возможность самому юзеру формировать представления информации на основе сформулированных им критериев - это и правильно и гибко - демократия у на типа в конце концов или нормальные отношения с юзерами??))
...
Рейтинг: 0 / 0
Ищу структуру данных для хранения информации о sql-запросах
    #38538596
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot sp]"мне нужна структура хранящая метаданные запроса по которым можно легко сгенерировать вью или сформировать динамический скуль.[quot]

Ну по "методанным" описывающим схему (т.е. таблицы) QBE, можно, "возможно" максимально "легко" для РМД сгенерировать.

Но знание этих "методанных" и понимание QBE как бы выходит за рамки обычного конечного пользователя.

[quot sp]
А возможность самому юзеру формировать представления информации .....[quot]

Сегодня, таковая возможность реализуется в ОЛАП. Там все таки многомерные кубы про основные показатели для юзера: что делает построение запросов доступным для кажного - вращай себе кубы, делай срезы, не хочу.

РМД, скорее заточена, под максимальную "легкость" на уровне расработчика, иначе бы было бы уже в массах.
...
Рейтинг: 0 / 0
25 сообщений из 50, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Ищу структуру данных для хранения информации о sql-запросах
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]