Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Java+базы данных, Построение шаблонов запросов! 
:(
    Опции темы
Aleksandr83
Дата 22.6.2005, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 22.6.2005

Репутация: нет
Всего: нет



Привет всем! Помогите пожалуйста! У меня проблема такая, нужно написать ИС которая формирует шаблоны запросов для доступа к реляционной базе данных, я пока даже незнаю с чего начать! Какой посоветуете компилятор? Компонет JDBC я так понял и будет обеспечивать работу базы в Java но еще проблема, где найти инфу про него? Заранее спасибо! smile
PM MAIL   Вверх
batigoal
Дата 22.6.2005, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Вот учебник по JDBC: http://java.sun.com/docs/books/tutorial/jdbc/basics/

Я не очень понял, что значит "шаблоны запросов" и почему для запросов нужен компилятор.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Aleksandr83
Дата 30.6.2005, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 22.6.2005

Репутация: нет
Всего: нет



Lamer George Спасибо что откликнулся, шаблон запроса - представляет собой форму которая позволяет пользователю формировать свой запрос на выборку(или добавление) в/из базы данных! Ты 1С:предприятие 8-ю версию видел? Ну там что-то подобное реализовано! Я просто даже незнаю с какого боку подойти, компилятор это не тот что используется для построения трансляторов, я имел ввиду среду разработки, как думаешь что больше подойдет JBuilder, IntelliIdeaJ, или NetBeans? smile
PM MAIL   Вверх
3,14
Дата 30.6.2005, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

Репутация: 6
Всего: 24



Цитата(Aleksandr83 @ 30.6.2005, 09:17)
что больше подойдет JBuilder, IntelliIdeaJ, или NetBeans?

Имхо это не так существенно, ты лучше ТЗ получше опиши, там и советы конкретные пойдут


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
Aleksandr83
Дата 30.6.2005, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 22.6.2005

Репутация: нет
Всего: нет



3,14 Прости за возможную негрмотность, Что за Т3?
PM MAIL   Вверх
AntonSaburov
Дата 30.6.2005, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



Техническое Задание. Что конкретно надо сделать ? Может мы сможем найти более приличное решение.
PM MAIL WWW ICQ   Вверх
Aleksandr83
Дата 5.7.2005, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 22.6.2005

Репутация: нет
Всего: нет



Для построения запросов можно использовать готовые типовые шаблоны - запросов с последующей их корректировкой, а также создать новый шаблон - запрос, то есть все основа-ния предполагать, что с течением времени их станет еще больше. Составление отдельных за-просов для каждого требования конечного пользователя становится затруднительным не только с точки зрения задержки в получении результата на время программирования каждого запроса, но и ввиду неудобств, связанных с использованием большого количества ранее со-ставленных программ. Эта проблема связана с часто встречающимися практическими зада-чами по повышению оперативности обслуживания конечного пользователя и снижению об-щей эксплуатационной стоимости ИС.
Целью данной работы является разработка методики и средств конструирования шаб-лонов запросов к ИС, что позволяет значительно повысить оперативность обслуживания ко-нечных пользователей и производительность ИС в целом.
Для выявления принципов создания шаблонов, следует проанализировать предложе-ние SELECT языка SQL.
С точки зрения настройки шаблона предложение SELECT можно разбить на шесть час-тей.
1. Фраза SELECT. Редактированию может подвергаться список полей таблиц.
2. Фраза FROM. Редактированию может подвергаться список используемых таблиц.
3. Фраза WHERE. Редактированию может подвергаться список условий.
4. Фраза ORDER BY. Редактированию может подвергаться список полей, по которым про-изводится сортировка и тип сортировки.
5. Фраза GROUP BY. Редактированию может подвергаться список полей для группировки.
6. Фраза HAVING (совместно с GROUP BY). Редактированию может подвергаться условия, накладываемые на группы.
Проанализируем возможность участия пользователя в редактировании указанных фраз запроса типа SELECT.
Редактирование списка выбора полей для фразы SELECT предусматривает предоставле-ние пользователю списка всех полей соответствующих таблиц, доступ к которым разрешен для данного пользователя. Имеется возможность включать и удалять из списка выбора любые доступные поля.
Формирования списка используемых таблиц может происходить по схеме, изложенной в предыдущем пункте. Однако подключение или удаление таблицы из списка FROM автомати-чески приводит к редактированию фраз SELECT, WHERE и т. д. Иначе говоря, пользователю практически невозможно предоставить шаблон запроса и мы переходим к проблеме свобод-ного конструирования запроса конечным пользователем. По указанным причинам данную настройку можно включать в шаблон только в некоторых особых случаях.
Редактирование списка условий для фразы WHERE удобно представить несколькими ва-риантами.
А) Выбор границы значений параметра (У1):
<<Имя поля>> <<операция отношения>> << значение>>
Здесь имя_поля зафиксировано, операция отношения выбирается из предлагаемого спи-ска, а значение вводится пользователем произвольно либо также из предлагаемого списка до-пустимых значений.
Б) Выбор диапазона или границ значений поля (У2):
У1 «логическая операция» У1
Здесь дополнительно к определению значений и операций отношения пользователь дол-жен выбрать логическую операцию, определяющую диапазон или допустимые области зна-чений поля.
В) Выбор полей в заданных границах и (или) диапазонах и их соотношения (У3):
У2 «логическая операция» У2
Для такого условия наиболее вероятно, что шаблон не будет содержать все имена полей условия, поэтому пользователю, очевидно, понадобиться воспользоваться выбором из списка полей. В этом случае также можно заменить в У1 «значение» на имя некоторого поля.
Редактирование фразы ORDER BY предусматривает две настройки – списка полей, по которым можно выполнять сортировку результирующей таблицы, и типа сортировки (по возрастанию или по убыванию значений). В этом случае в распоряжение пользователя пре-доставляются средства аналогичные используемым при редактировании фразы SELECT.
Редактирование списка группировки не может быть позволено пользователю, так как на-значение фразы GROUP BY трудно понять без знания структуры таблиц базы данных. Един-ственная возможность, которая может быть предоставлена пользователю – это использование для некоторых полей агрегирующих функций. Однако, для пользователя данная возможность будет выглядеть как редактирование списка выбора.
Редактирование списка условий для групп для фразы HAVING повторяет варианты А и Б редактирования списка условий для фразы WHERE.
Введем ориентировочную оценку сложности С формирования запроса с точки зрения ко-нечного пользователя, приняв за единицу сложности одно или группу аналогичных действий по выбору поля, значения, операции.
Тогда получим следующие оценки трудоемкости настройки шаблонов в зависимости от выбранных списков.
― Формирование списка выбора. С=1(выбор из списка полей).
― Формирование списка сортировки. С=2 (выбор из списка полей, выбор типа сортиров-ки).
― Формирование списка условий зависит от структуры условия.
Для условия типа У1 С=2 (установка или выбор значения, выбор операции отноше-ния).
Для условия типа У2 С=3 (дополнительно выбирается логическая операция, связы-вающая значения одного поля).
Для условия типа У3 С=5 (дополнительно выбираются поля и логические операции для связи этих полей).
Сложность формирования остальных списков значительно выше, так как требуется зна-ние структуры БД, которым пользователь не обладает.
Так, при формировании списка таблиц пользователь не может знать, какие таблицы име-ет смысл связывать и по каким полям. Редактирование списка группировки требует четкого представления о типах хранящихся в БД данных и связях реляционных таблиц, что также не является доступным для конечного пользователя. В связи с этим функции по редактированию списков таблиц и группировки при формировании шаблона не рассматриваются. Функция редактирования списка условий для групп без функции группировки не имеет смысла и так-же не будет рассмотрена. То есть в шаблоне запросов должны быть представлены три функ-ции редактирования: списка выбора, сортировки и условий.
Для создания непосредственно шаблона необходимо определить группу так называе-мых родственных запросов, которые имеют общие черты (одинаковые имена полей таблиц) которые будут указываться в программном коде.
Например
SELECT snum, sname, city, comm.
FROM Salespeople
FROM Buyers people

После определения условий формирования шаблона, нам необходимо уточнить крите-рии выборки необходимой нам информации для этого пользователю необходимо будет про-сто выбрать те или иные необходимые условия поиска. Предложение HAVING используется в операторе select совместно с предложением order by и сообщает последнему, какие группы данных должны быть включены в результирующий набор запросов что и является критерия-ми выбора. Предложение HAVING играет в отношении group by ту же роль, что и предложе-ние where в отношении select. Другими словами, предложение where налагает условия на вы-бранные столбцы, в то время как предложение HAVING налагает условия на группы, создан-ные с помощью предложения group by.
Обратите внимание на место предложения HAVING среди других предложений запро-са:
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
Предложение HAVING должно следовать в запросе за предложением group by и предшествовать предложению order by (разумеется, в том случае, если последнее использует-ся).
Синтаксис оператора select после включения в него предложения HAVING имеет сле-дующий вид:
SELECT СТОЛБЕЦ1, СТОЛБЕЦ2
FROM ТАБЛИЦА1, ТАБЛИЦА2
WHERE УСЛОВИЯ
GROUP BY СТОЛБЕЦ1, СТОЛБЕЦ2
HAVING УСЛОВИЯ
ORDER BY СТОЛБЕЦ1, СТОЛБЕЦ2
Для уточнения критериев выборки используются реляционные и булевы операции,
Реляционная операция - математический символ, который указывает на определённый тип сравнения двух значений:
= Равно
> Больше
< Меньше
>= Больше или равно
<= Меньше или равно
<> Не равно
Основные булевы операции также распознаются в SQL. Выражения Буля являются или верными/true, или неверными/false, подобно предикатам. Булевы операции связывают одно или более верных/неверных значений и производят верное единственное или неверное значение.
Стандартными булевыми операциями, распознаваемыми в SQL, являются AND, OR и NOT.
Для конечного создания шаблона нам необходимо после выбора всех необходимых критериев составить так называемый общий код (динамического характера), этот код должен иметь свойство преобразования в любой из необходимых пользователю запросов.
Конечный пользователь может осуществлять лишь выборку необходимых ему дан-ных из предложенных в шаблоне, в зависимости от его выбора и будет формироваться ко-нечный запрос так например если его интересует информация о студентах ему будет пред-ложено при помощи шаблона произвести поиск необходимого и критерии могут быть вы-браны из предложенных в самом шаблоне.
После завершения выбора необходимых значений полей шаблона, необходимо сфор-мировать это изменение в нашем общем коде, что бы он мог преобразоваться в необходи-мый многокритериальный запрос.
Сам конечный интерфейс шаблона выглядит примерно так
P.S. Смотреть влоржение
Проведенный анализ способов формирования шаблонов и оценки их сложности опре-деляет общий подход к формированию шаблонов, позволяет сократить время на создание шаблона и оценить возможность его использования конечным пользователем.

Это сообщение отредактировал(а) Aleksandr83 - 5.7.2005, 13:46

Присоединённый файл ( Кол-во скачиваний: 10 )
Присоединённый файл  ______.rar 46,32 Kb
PM MAIL   Вверх
AntonSaburov
Дата 5.7.2005, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



Мда-а-а-а.

Дык это прямо визард из MS Access какого-нибудь. Туда бы еще relation между таблицами добавить - и полный абзац.
Тут простыми советами не прокатит - приложение достаточно приличное.

По идее надо писать процедуры, которые умеют делать неободимяе элементариные действия:
1. Получить список таблиц.
2. Получить список столбцов по имени таблицы

Конечный SQL запрос для этих действий будет зависеть от SQL сервера. Здесь даже больше проблема не в получении данных от SQL а построение логики приложения. Наверно надо начать именно в том порядке, в котором ты перечислил ключевые позиции.
1. Выбор таблиц и полей - сложно разделить данное действо.
2. Выбор полей для агрегатных функций
3. Выбор условий для соединения таблиц и других условий.
4. Группировка, которая автоматом должна учитывать агрегатные поля.

А больше и посоветовать особо нечего - надо работать. И задавай уже более конкретные вопросы.
PM MAIL WWW ICQ   Вверх
tux
Дата 5.7.2005, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 31
Всего: 132



Есть (точнее уже наверное была) такая библиотека - Village, надстройка над JDBC, позволяющая выполнять запросы к БД не знаю SQL (собственно здесь это и нужно, только в несколько другой форме). Как с ней работать не спрашивай, сам не использовал ни разу. Ее использует объектно-реляционная библиотека Torque для формирования запросов, возможно там можно найти примеры использования.
А вообще AntonSaburov совершенно прав - приложение глобальное и лучше задавать более мелкие и конкретные вопросы.

Это сообщение отредактировал(а) tux - 5.7.2005, 13:55
PM MAIL Skype GTalk Jabber YIM   Вверх
Aleksandr83
Дата 7.7.2005, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 22.6.2005

Репутация: нет
Всего: нет



Огромное спасибо за помощь, более конкретный вопрос это самое главное с чего начать? И что для этого необходимо установить на машину, и еще где можно достать маломальски приличный SQL - сервер, подскажите пожалуйста! Заранее спасибо!
PM MAIL   Вверх
AntonSaburov
Дата 7.7.2005, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



Во-первых - поставить JDK. Есть статья в FAQ - Как начатьработать с JAVA

Во-вторых - SQL вообщем-то любой. Можно поставить тот же MySQL или MS SQL Developer Edition. Можно вообще для начала использовать Access.

В-третьих - почитать JDBC и сделать хоть какой-то пример для работы с базой данных.

Когда ты поймешь, что доходишь до базы и все более-менее понятно в этом деле, начинаешь уже делать визард. Сначала только выбор таблиц, потом полей и потихонечку усложняешь.
PM MAIL WWW ICQ   Вверх
Guest
Дата 8.7.2005, 10:40 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











AntonSaburov Спавсибо огромное за совет!!!!! smile
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0578 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.