C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

стр.: (2) < 1 [2] >
Выбор СУБД, Выбор СУБД
Yuriy_R
Отправлено: 04.11.2004, 18:37


Ученик-кочегар

Группа: Участник
Сообщений: 9



В силу различных, не всегда от нас зависящих причин, "юзать в полный рост" Oracle не получается. Да и от offline в ближайшее время избавиться не удастся. Посему будем дальше думать. Спасибо всем за советы.
** vadoo
Отправлено: 09.11.2004, 21:39


Не зарегистрирован







Это вечная тема. Однако самая лучшая СУБД это та которую ты знаешь. Если ты работаешь на VFP то не парь мозги и работай на ней дальше. В ней есть всё что нужно и хорошо отработано. И с локалкой и интернетом-интранетом умеет работать. А если знаешь английский походи по штатовским сайтам про FoxPro и мож тан накачать компонентов для украшательств как для Билдера. И на VFP мож писать не только проги под БД, я наклепал редактор типа навороченного блокнота и пару приколов.
Классные сервера и клиентские девелоперы всех уровней есть у Sybase — в штатах очч популярная фирма правда наши её проги почемуто не хотят ломать. :-))
Классная вещь PowerBuilder, правда с огромным недостатком — у нас на него почти нет литературы, но кто хоть чуток на нём работал — просто влюбляется в него по уши.
Удачи.
Yuriy_R
Отправлено: 11.11.2004, 15:08


Ученик-кочегар

Группа: Участник
Сообщений: 9



2 vadoo

Спору нет. VFP — чудесная СУБД для своего класса задач, что бы там ее недруги не говорили. CBuilder заинтересовал меня прежде всего как универсальный инструмент для построения приложения практически любого класса, в т.ч. и баз данных. На VFP я бы уже давно все сделал и забыл, но это же не значит, что больше ничего не надо изучать ?
Ответ на критику Access
Отправлено: 18.11.2004, 16:48


Не зарегистрирован







QUOTE (pagan @ 13/10/2004, 10:53)
Во первых уважаемый разберитесь что такое СУБД (система управления баз данных) и фаловая БД, и чем они друг от друга отличаются. После чего исключите Access (который даже файловой БД можно назвать с трудом) из своего списка cool.gif
Если же отвечать на вопрос — то я бы порекоммендовал Oracle — все-таки это бесспорный мировой лидер в секторе СУБД. Правда нужно быть специалистом в этой области, чтобы с ней работать (ну или по крайней мере прочесть 2-3 книги Oracle по настройке и работе). Ну а если надо че по проще, то вам уже подсказали.

Уважаемый! вы просто далеко не знаете Access. Я делал в нем такие вещи, что вам даже и не снились.
AVC
Отправлено: 18.11.2004, 17:33


Ветеран

Группа: Модератор
Сообщений: 1583



Уважаемый "Ответ на критику Access" если уж вы вступаете в дискуссию, то могли бы и представиться.
Во вторых Access и по моему мнению то же действительно слабая и глючная система. От общения с ней остался самый неприятный осадок.


Отредактировано AVC — 19/11/2004, 17:23
Gedeon
Отправлено: 18.11.2004, 17:43


Ветеран

Группа: Модератор
Сообщений: 1742



QUOTE (Ответ на критику Access @ 18/11/2004, 17:50)
Я делал в нем такие вещи, что вам даже и не снились.

Ну-ну поставьте мне задачку, к-рая мне не снилась, сделанную на Access и к-рую я не смог бы ее решить на других БД если не более изящно, то по крайней мере не хуже smile.gif .

Отредактировано Gedeon — 18/11/2004, 19:05
Nick
Отправлено: 18.11.2004, 17:56


Машинист паровоза

Группа: Участник
Сообщений: 247



То же

остался неприятный осадок от работы с Access.

Снится в кошмарных снах
Gedeon
Отправлено: 18.11.2004, 19:12


Ветеран

Группа: Модератор
Сообщений: 1742



QUOTE (AVC @ 18/11/2004, 18:35)
Есть таблица с двумя атрибутами: номер группы и номер аудитории.
Нужно сделать выборку таким образом, чтобы в результате получилась таблица: группа и наиболее частая для нее аудитория.

Вложенные запросы допускаются?
olegenty
Отправлено: 19.11.2004, 08:01


Ветеран

Группа: Модератор
Сообщений: 2412



ответ на этот вопрос и с подзапросами и без давно имеет место на xportal. т.е. для MSSQL, Oracle и IB/FB/Yaffil smile.gif
AVC
Отправлено: 19.11.2004, 08:55


Ветеран

Группа: Модератор
Сообщений: 1583



Давно — это всего неделя. smile.gif
Подзапросы допускаются. Главное, что бы все было в одном Selecte и,естественно, без дополнительных таблиц. Мой вариант для Oracle можно посметреть там, куда отправляет olegenty (здесь) (решив для Oracle поленился искать решение для обычного SQL). Но а вдруг получится smile.gif .
PS. Это была первая задачка, пришедшая в голову и достаточно сложная.
olegenty
Отправлено: 19.11.2004, 12:09


Ветеран

Группа: Модератор
Сообщений: 2412



относительно сложности поспорю. smile.gif
Guest
Отправлено: 19.11.2004, 12:21


Не зарегистрирован







2olegenty
В постановке "что бы все было в одном Selecte и, естественно, без дополнительных таблиц"
Не забыл? smile.gif
AVC
Отправлено: 19.11.2004, 12:28


Ветеран

Группа: Модератор
Сообщений: 1583



Ну, вобщем, понятно предыдущий пост мой biggrin.gif .
Эк тема то оживилась из-за одного неразумного юсера. biggrin.gif
Gedeon
Отправлено: 19.11.2004, 14:06


Ветеран

Группа: Модератор
Сообщений: 1742



Вот что я родил вчера, на скорую руку, вроде работает на той табличке к-рую сотворил я для теста, ну и вроде как должно на всех БД работать.
SQL
SELECT Grupa, aud
FROM( SELECT
Grupa, aud, COUNT(Aud) ca
FROM GrAu GROUP BY Grupa, aud
) t1
WHERE ca=( SELECT MAX(ca)
FROM( SELECT
Grupa, aud, COUNT(Aud) ca
FROM GrAu GROUP BY Grupa, aud
) t2
WHERE t1.grupa=t2.grupa
)
ORDER BY 1


Еще бы по хорошему решить вопрос, что выбирать если у группы 2 ||> равных максимальных аудитории.

P.S. По поводу OVER (analytic_clause) поддержка с 8,1,6EE что не есть хорошо, для себя юзать можно, а так вопрос переносимости очень не радует.

Отредактировано Gedeon — 19/11/2004, 15:15
AVC
Отправлено: 19.11.2004, 15:07


Ветеран

Группа: Модератор
Сообщений: 1583



2Gedeon
Явно не оговаривалось но подрозумевалось, что запрос будет возвращать ровно по одной строке для каждой группы (любой с максимальным значением). Это и есть тонкое место. smile.gif

QUOTE

P.S. По поводу OVER (analytic_clause) поддержка с 8,1,6 что не есть хорошо, для себя юзать можно, а так вопрос переносимости очень не радует.

Как показывает мой, и не только мой, опыт: в крупном приложении о вопросе переносимости можно забыть. По крайней мере текст запроса это далеко не единственное что нужно менять biggrin.gif . Я считаю, что если уж используешь какой либо сервер то стоит его "использовать на всю катушку". (Ведь глупо иметь Oracle а использовать его как Access)


Отредактировано AVC — 19/11/2004, 15:16
Gedeon
Отправлено: 19.11.2004, 16:04


Ветеран

Группа: Модератор
Сообщений: 1742



QUOTE (AVC @ 19/11/2004, 16:09)
Как показывает мой, и не только мой, опыт: в крупном приложении о вопросе переносимости можно забыть. По крайней мере текст запроса это далеко не единственное что нужно менять biggrin.gif . Я считаю, что если уж используешь какой либо сервер то стоит его "использовать на всю катушку". (Ведь глупо иметь Oracle а использовать его как Access)

Так а с этим никто и не спорит. biggrin.gif
Gedeon
Отправлено: 19.11.2004, 16:54


Ветеран

Группа: Модератор
Сообщений: 1742



QUOTE (AVC @ 19/11/2004, 16:09)
2Gedeon
Явно не оговаривалось но подрозумевалось, что запрос будет возвращать ровно по одной строке для каждой группы (любой с максимальным значением). Это и есть тонкое место. smile.gif

Элементарно:
SQL
SELECT Grupa, Max(aud)
FROM( SELECT Grupa, aud
FROM( SELECT
Grupa, aud, COUNT(Aud) ca
FROM GrAu GROUP BY Grupa, aud
) t1
WHERE ca=( SELECT DISTINCT MAX(ca)
FROM( SELECT
Grupa, aud, COUNT(Aud) ca
FROM GrAu GROUP BY Grupa, aud
) t2
WHERE t1.grupa=t2.grupa
)
) t2


Кстати по поводу аксеса там есть еще FIRST() && LAST()
AVC
Отправлено: 19.11.2004, 17:19


Ветеран

Группа: Модератор
Сообщений: 1583



Прекрасно. Все работает как надо. smile.gif
Подвела привычка использовать агрегатные функции biggrin.gif
Соглашаюсь с olegenty по поводу сложности и снимаю из теста.
Gedeon
Отправлено: 19.11.2004, 17:57


Ветеран

Группа: Модератор
Сообщений: 1742



QUOTE (AVC @ 19/11/2004, 18:21)
Соглашаюсь с olegenty по поводу сложности и снимаю из теста.

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

P.S. В запросе DISTINCT лишний, забыл убрать при экспериментах.
Guest
Отправлено: 19.11.2004, 18:50


Не зарегистрирован







Да. Distinct я нашел. Решение красивое, когда я его вижу — очевидное biggrin.gif . Жалею, что сам не додумался. smile.gif
По поводу сложности: в свое время неоднократно нарывался на проблему "where max" — нужно найти id первой встречной и ровно одной записи из группы по неким условиям отбора и упорядочивания и связать ее дальше. Без агрегатных функций эта проблема решается очень непросто и очень не быстро (по времени выполнения).
Когда искал решения для xPortal то же получил удовольствие.
olegenty
Отправлено: 23.11.2004, 11:06


Ветеран

Группа: Модератор
Сообщений: 2412



я не виноват, что IB/FB/Yaffil пока не поддерживают подзапросов. однако, дополнительных таблиц я не использовал, использовал вьюхи. ну, впредь могу тесты делать на MSSQL, всё равно начал с ним плотно работать по текущему заданию на работе.

и оффтопик — MSSQL поддерживает индексируемые вьюхи. иногда грех не воспользоваться.
pagan
Отправлено: 24.11.2004, 09:21


Ученик-кочегар

Группа: Участник
Сообщений: 22



QUOTE
Уважаемый! вы просто далеко не знаете Access. Я делал в нем такие вещи, что вам даже и не снились.

Извините, что давно не заходил, но раз уж критика прозвучала в мой адрес, то попробую ответить за свои слова, хотя коллеги это в общем-то уже сделали. Для начала можно было бы представиться, а то я не очень люблю разговаривать со стенкой. По-поводу первого пункта: Уважаемый, в свое время я пропахал Акцес вдоль и поперек, получив немоло шишек из-за ущербности данной системы, потому ваши сомнения насчет моих знаний будем считать несостоявшимися. Надеюсь спорить о том, что Акцес не является СУБД даже от части, не будем? Ну а по-поводу второго пункта вашего высказывания: Я знаете ли тоже делал в Акцес "такие вещи", правда утверждать что они вам не снились не буду. Но после перехода на настоящую СУБД, в данном случае Oracle, говорить о тех вещах вслух глупо — засмеют.

P.S. да, кстати чуть не забыл — Удачи Вам в вашем становлении программистом, мистер Unregistered!
стр.: (2) < 1 [2] >
Вернуться в Работа с базами данных в C++Builder