Оракл, Делфи или чтото ещ е?
4895
44
я немного отстал от темы по поводу возможностей сабжей.... Хотелось бы услышать разные мнения на тему:
на базе какого софта оптимальнее всего разработать справочно-информационную систему, чтобы была оптимальна по скорости обработи запроса, не ела слишком многоаппаратных ресурсов и т.д.
Общие характеристики планируемой системы:
не менее 30 полей на каждую запись, многие поля имеют нефиксированную длину (размер) и могут содержать графическую, текстовую информацию, заархивированные файлы и т.д. В общем размер каждой записи - до 10мбайт.
Должна производится выборка по любому количеству полей (выбирает пользователь), должно быть разделение прав на доступ к записям.
Vovasa
Если писать будешь сам, делай на чем умеешь - например, переходить с Делфи на C++ и обратно будет в любом случае дольше.

А так есть сложное соотношение - скорость работы/быстрота разработки и доработки/надежность(/цена). Связка Оракл/Делфи во многом оптимальна.
Vovasa
Файлы не обязательно хранить в базе. В базе мона хранить путь/название файла.
tpi
базе мона хранить путь/название файла.
-----

в базе будет не менее 15000 записей и хранить каждый файл отдельно - неразумное решение :ухмылка:
Anomander
Если писать будешь сам, делай на чем умеешь - например,
----
писать я сам в любом случае не буду :)))
максимум - тех.задание :))))
просто мне определиться с оптимальным выбором :)))
Vovasa
в базе будет не менее 15000 записей и хранить каждый файл отдельно - неразумное решение :ухмылка:
У нас как минимум в 3 раза больше, и практика показала, что это разумное решение :ухмылка:
tpi
Если это будет многопользовательская система, то может разумнее писать под web?
Я вот последние два проекта делал так - ставил сервак, на него апач + перл + мускул и под ними все делал.
А клиенты просто по http ходили с простого Ослика и радовались... и я радовался, т.к. никаких дополнительных дров и клиентов не надо было делать!:улыб:
Max_13
Я вот последние два проекта делал так - ставил сервак, на него апач + перл + мускул и под ними все делал.
----------

детский сад :ухмылка:
какой может быть веб в серьезном проекте?! где защищенность данных от утери и от несанкционированного доступа?
Vovasa
где защищенность данных от утери и от несанкционированного доступа?
В руках программиста. Есть такое понятие - SSL. Очень часто вэб-доступ - весьма удобное решение, и готовых решений очень много.
Ну, а с другой стороны, любая современная визуальная система разработки нынче имеет встроенные наборы для работы со всеми распространенными базами данных...

Вот только мышца для хранения больших баз не всегда подходит. Лучше, все-таки Oracle. Ну, или PostgreSQL. Да и MS SQL хороша, только денег стоит...

ЗЫ. Хранить файлы бинарно в базе - моветон и пустая трата ресурсов (на те же бэкапы, например)...
PN
...Да и MS SQL хороша, только денег стоит...

ЗЫ. Хранить файлы бинарно в базе - моветон и пустая трата ресурсов (на те же бэкапы, например)...
1. А Oracle бесплатный что-ли???
2. Ужжжас, то есть если в процессе работы "из файловой системы пропадёт" файлик с фотографией клиента, то это для вас ерунда???
И только бэкапы Вас и спасут.

В нашей схемке около 1000 таблиц, во многих >100 полей, и из них достаточно много BLOB. И всё хорошо, если не сказать отлично.

У web интерфейса преимуществ почти нет. А для Builder, Delphi существует масса компонентов прямого доступа для работы с Orcale(Odac,Doa).
На клиенте никаких дров и доп. программ не надо.
Ох, что-то ник знакомый... :-)

Oracle, при правильном подходе, бесплатный. Совершенно свободно на оф. сайте скачивается...

А файло, все-таки, гораздо проще хранить и бэкапить отдельно.

А вэб-интерфейс хорош тем, что платформонезависим...
PN
Oracle+pl/sql тож платформонезависим:улыб:
tpi
> Oracle+pl/sql тож платформонезависим

Это-то да, но есть еще толстый клиент, которого надо писать для каждой платформы и синхронизировать.
Anomander
> но есть еще толстый клиент, которого надо писать для каждой платформы...
Скажите честно, много у Вас будет "разных клиентских платформ"... :миг:
Builder + Oracle = серъёзные возможности. У нас для отдельных целей (только некоторые функции) есть и web приложение. Но там только посмотреть мона. web user имеет права только на просмотр некоторых view. И никаких проблем с безопасностью.
Vovasa
Интересен масштаб будующей системы. Еси небольшая, то лучший выбор, ИМХО, InterBase etc. Оччень шустрый благодаря очень хорошим компонентам, позволяющим не напрягать лишний раз сервер (яркий пример, изменилось поле (1 из 100), дык мона просто галку поставить и автоматически будут только те данные гоняться до сервера, которые нужны). В компонентах под Oracle такого НЕТУ!
Anomander
> Oracle+pl/sql тож платформонезависим

Это-то да, но есть еще толстый клиент, которого надо писать для каждой платформы и синхронизировать.
Так клиента на том самом платформонезависимом pl/sql и пишут!
Интересен масштаб будующей системы. Еси небольшая, то лучший выбор, ИМХО, InterBase etc.
--------
не менее 10000 записей, каждая от 3мб до 10мб,
возьмем серелину - 5мб, умножаем на 10000 записей,
получается 5гб как минимум.... размер базы...
tpi
> Так клиента на том самом платформонезависимом pl/sql и пишут!

Так не клиентскую же оболочку!:улыб:
Vovasa
> получается 5гб как минимум.... размер базы...

Вот отсюда и соображение, что файлы лучше BLOB-ов. Если перевести все документы и картинки в файловую систему, сколько реально в базе останется? Конечно, к хранению таких файлов надо будет отнестись со всей серьезностью.
Anomander
> Так клиента на том самом платформонезависимом pl/sql и пишут!

Так не клиентскую же оболочку!:улыб:
Ее родимую!
tpi
> Ее родимую!

Сам PL/SQL - это только консоль. Конечно, универсально, как командная строка UNIX-а, но вряд ли приемлемо для юзеров 21 века:улыб:
А если вы об Oracle Forms... в принципе можно, но где взять толкового специалиста?
Компонент с прямым доступом однозначно определяет необходимость клиент БД.
У веб интерфейса один существенный плюс - ничего больше не надо, достаточно уже имеющегося браузера. Еще плюс - доступ можно организовать с любой точки мира, где есть инет.
Разграничение прав и защита - вопросы к администрированию сети. ASP.NET/C#/любая БД приемлимая связка.
Недостаток (почти) - интерфейс навороченный сваять трудно. Но иногда это лучше.
Компонент с прямым доступом однозначно определяет необходимость клиент БД
НУНУНУ! ODAC НЕ ТРЕБУЕТ. DOA -возможно, да. Достаточно одной таблетки - имя сервера в сети, порт (для Ora по умолчанию 1521), и имя экземпляра БД. (пароль, логин - по желанию:миг:). А то о чём вы (по видимому) написали - это не "net" компоненты.

По поводу пользовательского интерфейса и клиентов и т.д. Да, всё это может храниться в БД. Всё так и есть - клиент - "наитончайший". Но это всё не слишком хорошо сказывается на производительности, да и в разработке - громоздко. И используется в основном, в банковском и финансовом "секторах".
Vovasa
не менее 10000 записей, каждая от 3мб до 10мб, возьмем серелину - 5мб, умножаем на 10000 записей,получается 5гб как минимум.... размер базы...
Вполне нормально для InterBase. И проще, ибо худо бедно, но Oracle сможет поддерживать в рабочем состоянии, только специально обученный человек :). InterBase проще админить. Вот тут мне кажется оч хорошо написано по вашему вопросу...Если что - ещё ссылками заделюсь:улыб:
Vovasa
Размер - это не совсем масштаб... Сколько одновременно работающих пользователей будет?
Если - десятки - сотни, то IB - нормально, если больше - то Oracle всё же.
не более пяти человек в одном помещнии,
причем основные критерии системы: быстрая выборка из базы по нескольким полям, а через год, полтора доступ к этой базе через интернет
Vovasa
Как минунимум нужно еще критерии определить, под какими платформами будет база (нужна ли кроссплатформенность), и сумма покупки/непокупки.
tpi
конечно очень желательно под Windows 2003:улыб:
Vovasa
Бесплатные: Firebird, PostgreSQL
Платные: MS SQL, Sybase, Oracle, IBM DB2

В порядке возрастания мощьности:
Firebird
MS SQL, Sybase
PostgreSQL
Oracle, IBM DB2

С файлами, хорошо если есть критерий по которому присваивать названия каталогов, а в БД хранить только имена файлов.
tpi
...под какими платформами будет база (нужна ли кроссплатформенность)...
Не понял, а какая разница на какой платформе (платформАХ?)база? Ставите, допустим, Oracle, на Solaris, и с любой платформы (клиент чтоб под ней был) работаем...

Под описанные требования InterBase + Builder/Delphi подходит.
tpi
> В порядке возрастания мощьности

Откуда дровишки?
Что мы здесь понимаем под "мощностью"?
Нельзя так категорично, особенно ставить PostgreSQL четко между другими системами. Еще не утихают споры, что же лучше - Postgres или MySQL. Так что все далеко не так однозначно...
tpi
C#/.NET/MS SQL - тоже не плохо...
В мире вообще много хорошего и замечательного есть... На предыдущий мой пост ответьте plz... Мож я в чём то заблуждаюсь...
Anomander
Нельзя так категорично, особенно ставить PostgreSQL четко между другими системами.
По личному опыту, и отзывам. Да, пожалуй ИМХО забыл там вставить.
А здесь по-моему, понятно, что tpi имел в виду систему на сервере.

> Ставите, допустим, Oracle, на Solaris
А если не Solaris, а Red Hat, допустим? А если Win2K?
Anomander
а Red Hat, допустим? А если Win2K?
А не дороговато ли будет?
Связка Солярки и Оракла как раз бесплатна... Ну, разве что админ ей умелый нужен...
PN
Что как раз и подчеркивает важность выбора серверной платформы:улыб:
Не понял, а какая разница на какой платформе (платформАХ?)база?
Если для кого-то важна платформа Linux, то автоматически из вариантов выбора баз исключается MS SQL. Только подобный критерий я имел в виду, и ни чего более.
Anomander
На Информационных Системах (ИС) такого масштаба вы вообще разницы в скорости не заметите (win, linux, oracle, ib да что угодно ). Но бесплатные СУБД гооораздо менее требовательны к ресурсам. И IB возможно и "по шустрее" будет. Каждая СУБД для своей целевой аудитории. Oracle потому и крут, что супер масштабируемый. А когда 5 человек в одной комнате... Для такой "поделки" берите что попроще
(в разумных пределах, конечно). Ибо "погоня за халявой на MySql" до добра не доведёт.
IB платная, ее клон Firebird пошустрее и бесплатный. И лично я не замечал, что бесплатные чем-то лучше/хуже платных. Тем более, что платить все равно прийдется, не за базу так за среду разработки клиента.

А MySQL собственно не база - хранилище, с быстрой выборкой...
tpi
...И лично я не замечал, что бесплатные чем-то лучше/хуже платных....
Ну вы сказанули...

??? А если нет разницы зачем платить больше ???

Хочу сказать (и уже, вроде, сказал) одно - если сервер сeleron1700 + 256 mb то Oracle там будет явно тесно, а вот IB (я уже и так упоминал о FireBird etc) там будет в самый раз.

По поводу среды разработки клиента (лицензии??) - вообще без комментариев. Точка
??? А если нет разницы зачем платить больше ???
Разница есть, она не в плоскости лучше/хуже. Я так понимаю вам дюже нравится IB, поэтому вы знаете только 2 субд IB и если надо круче Oracle. А другие варианты недостойны существования...
tpi
На личности не переходим, ага?
PN
Разве я переходил?? Я только показал субъективизм точки зрения, ни че личного.
tpi
Да, я ЗНАЮ Oracle и IB etc. Свои советы автору топика я уже дал. Пойду работать. Хех...