Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];

Вниз

помогите советом с выбором BD для cgi проги   Найти похожие ветки 

 
NORDmen ©   (2006-08-24 21:54) [0]

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

прога по тестированию учащихся. клиент работает через броузер по сети, сервер на на отдельном компе - cgi (т.е. обрашение к бд будет из этой cgi)
основные критерии к бд:
1 простота установки и относительно малый дистрибутив (мне то все равно, а клиенты просто не потянут слишком сложное ПО)
2 быстродействие - компы заведомо слабые. множественые обрашения к cgi (хак?) смогут все повесить
3 чтоб легко программировалось :) т.е. отсутствие подводных камней и наличие готовых компонент для удобства (если не сложно скажите, что юзать). прога freeware, делаю только я и времени на разбирательства со всяким глюкалом у меня нет.

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

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


 
_dimka ©   (2006-08-25 00:43) [1]

хм.. ятак понял что программа будет под веб?
если так то MySQL будет то что нужно
(ИМХО)


 
Fay ©   (2006-08-25 01:17) [2]

Платформа, конечно, BeOS ?


 
NORDmen ©   (2006-08-25 01:27) [3]

прога ориентирована на использование в локалке (windows разумеется), но может работать и в вебе. а какая разница где? ИМХО - для данной проги нет разницы.

код на дельфях... если мускул, то юзать zeos, так? (почитал немного в тырнете).
а вообще, приемлимо ли юзать cgi+bd?


 
roottim ©   (2006-08-25 08:59) [4]

Если cgi в делфях, то ближе и лучше FireBird. А для тестирования учащихся думаю хватит и его Embended версии. MySQL хорош при больших количествах несложных select, которых в твоей программе не будет (актуально для хостеров).


 
ANB ©   (2006-08-25 09:22) [5]


> 1 простота установки и относительно малый дистрибутив (мне
> то все равно, а клиенты просто не потянут слишком сложное
> ПО)
> 2 быстродействие - компы заведомо слабые. множественые обрашения
> к cgi (хак?) смогут все повесить
> 3 чтоб легко программировалось :) т.е. отсутствие подводных
> камней и наличие готовых компонент для удобства (если не
> сложно скажите, что юзать). прога freeware, делаю только
> я и времени на разбирательства со всяким глюкалом у меня
> нет.

Oracle XE. Официально халявый, диструбитив 267 метров, скачать можно с сайта оракла, при установке задает 3 вопроса :
1) согласен ли с лицензией
2) куда поставить
3) пароль сиса
ставится без проблем, имеет тихий режим.
Охринительный диалект SQL для запросов и PL/SQL для хранимок, CGI не нужен, так как сам умеет быть HTTP сервером.
Если база разрастется (а так всегда бывает), без всякой переделки можно переехать на полную версию оракла, которая обойдется около 750 баксов (если не покупать всякие навороты, которые особо и не нужны).


 
StriderMan ©   (2006-08-25 09:47) [6]


> Oracle XE. Официально халявый, диструбитив 267 метров, скачать
> можно с сайта оракла, при установке задает 3 вопрос

халявный Оракл?? впервые слышу! а в чем урезан по сравнению с платным?


 
StriderMan ©   (2006-08-25 09:53) [7]


> StriderMan ©   (25.08.06 09:47) [6]

все, нашел, почитал.
бесплатный FireBird посолиднее будет,
хотя Oracle XE это все же Oracle, хоть и маленький еще...

http://www.oracle.com/database/product_editions.html


 
ANB ©   (2006-08-25 10:09) [8]


> бесплатный FireBird посолиднее будет,

Гы гы. Чем посолидней то ? Может в FB PL/SQL реализовали ? Там же даже привычной NVL нету. Чуть посложнее логика и пиши ее на клиенте.


 
StriderMan ©   (2006-08-25 10:27) [9]

немного не понял насчет Flashback, Transaction Query.
Это механизм отката изменения? типа Transaction.Rollback в FB?


 
evvcom ©   (2006-08-25 10:47) [10]

> [9] StriderMan ©   (25.08.06 10:27)

Это что-то другое. Rollback - он и в Оракле rollback. + еще есть rollback to savepoint


 
ANB ©   (2006-08-25 11:04) [11]


> немного не понял насчет Flashback, Transaction Query.

Это откуда ты откопал ? Я таких фичей даже не видел. :(


 
roottim ©   (2006-08-25 11:08) [12]

flashback позволяет достать данные с rollback сегмента (т.е стертые и уже закоммитенные), это фича 10g


 
roottim ©   (2006-08-25 11:17) [13]

Точнее не с сегмента а с flashback логов, И еще реализует корзину с удаленными таблицами. Короче читать надо. Пользовался 1 раз, ничаянно удалил табличку.

вот пример для select из доки по восстановлению данных на некий интервал назад.

Using Flashback Queries: Example The following statements show a current value from the sample table hr.employees and then change the value. The intervals used in these examples are very short for demonstration purposes. Time intervals in your own environment are likely to be larger.

SELECT salary FROM employees
  WHERE last_name = "Chung";
 
   SALARY
----------
     3800

UPDATE employees SET salary = 4000
  WHERE last_name = "Chung";
1 row updated.

SELECT salary FROM employees
  WHERE last_name = "Chung";

   SALARY
----------
     4000

To learn what the value was before the update, you can use the following Flashback Query:

SELECT salary FROM employees
  AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL "1" MINUTE)
  WHERE last_name = "Chung";
 
   SALARY
----------
     3800

To learn what the values were during a particular time period, you can use a version Flashback Query:

SELECT salary FROM employees
 VERSIONS BETWEEN TIMESTAMP
   SYSTIMESTAMP - INTERVAL "10" MINUTE AND
   SYSTIMESTAMP - INTERVAL "1" MINUTE
 WHERE last_name = "Chung";

To revert to the earlier value, use the Flashback Query as the subquery of another UPDATE statement:

UPDATE employees SET salary =      
  (SELECT salary FROM employees
  AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL "2" MINUTE)
  WHERE last_name = "Chung")
  WHERE last_name = "Chung";
1 row updated.

SELECT salary FROM employees
  WHERE last_name = "Chung";
 
   SALARY
----------
     3800


 
ANB ©   (2006-08-25 11:22) [14]


> И еще реализует корзину с удаленными таблицами.

Корзину видел. Она теперь в тоаде и девелопере видна. Удобно. Я пару раз зазевавшись таблички грохал, приходилось дамп поднимать. Теперь поудобнее. А про старые данные ща почитаем . . .


 
StriderMan ©   (2006-08-25 11:26) [15]


> ANB ©   (25.08.06 11:04) [11]
> Это откуда ты откопал ? Я таких фичей даже не видел. :(

http://www.oracle.com/technology/deploy/availability/htdocs/Flashback_Overview.htm


 
ANB ©   (2006-08-25 11:43) [16]

Разобрался. Да, Flashback Queries - охринительная штука. Особенно для кривых рук :)
Во всяком случае на других серверах я про такое даже не слышал.

Плюс встроенная поддержка генерации HTML страниц (типа ASP), плюс ява, плюс можно подрубать свои DLL, плюс удобная работа с XML и еще куча фич . . .
Оракл рулит по полной программе. Если бы его еще не индийцы писали, цены бы ему не было.


 
evvcom ©   (2006-08-25 11:54) [17]

> [16] ANB ©   (25.08.06 11:43)
> Плюс ...
> и еще куча фич . . .

ну это уже и до 10-ки было :)

> Оракл рулит по полной программе. Если бы его еще не индийцы
> писали, цены бы ему не было.

Да ему и так цены нет. :) Все ругаются на глюки и тем не менее ему уже не изменяют с другими СУБД по доброй воле, имхо.


 
sniknik ©   (2006-08-25 13:51) [18]

> Все ругаются на глюки и тем не менее ему уже не изменяют с другими СУБД по доброй воле, имхо.
это уже психология... трудно бросить то, на что потрачено столько времени, найдено куча "фич", обходов не стыковок, т.д.
а вот беспроблемное воспринимается простым, поставили, попробовали, сразу получилось, стерли. элементарщина. ну не может быть в такой простой вещи серьезных возможностей...

любители оперы по той же причине за нее держатся... и игрушки самые интересные те которые вначале сложные кажутся, учится им приходится...
тоже ИМХО конечно.


 
ANB ©   (2006-08-25 13:55) [19]


> ну не может быть в такой простой вещи серьезных возможностей.
> ..

Да и нету их в FB. Пришлось пару месяцев с ним насильно поработать. Матерился как сапожник. То одной привычной фичи не хватает, то другой. Нету даже элементарного NVL.


 
sniknik ©   (2006-08-25 14:08) [20]

> Да и нету их в FB.
fb не пользуюсь... вообще я про mssql (кто про что, а голыйпро баню :о)), т.к. это самый простой в установке/использовании sql сервер который пробовал. (оракле тоже пробовал 8i, не сказал бы что знакомство прошло удачно, проблем и непонимания было больше чем с mssql-ем который ставил раньше совсем "нулевый", а оракле уже поработав с тремя разными sql серверами. (кстати вызывали поддержку... сказали проблема ))

> Нету даже элементарного NVL.
что это? словами, может есть но ты/мы не знаем...


 
Anatoly Podgoretsky ©   (2006-08-25 14:31) [21]

sniknik ©   (25.08.06 14:08) [20]
Действительно очень простой в установке, обслуживании и использовании сервер. Низкая стоимость владения. Высокая степень масштабирования, от КПК до сверхмощных кластеров.

NVL это изобретение Оракла, в стандарте COALESQUE
После MySQL - Оракл очень далек от стандарта, но вроде ситуацию медленно, но улучшают.


 
sniknik ©   (2006-08-25 14:50) [22]

> в стандарте COALESQUE
COALESCE? ну тогда в FB должно быть, помню когда читал доки по FB встречалось... (сравнивал 1.5 с mssql, нашол много общего... в отличии от IB 6.5 под который одну прогу "подгонять" пришлось, вот там да, различия...;)


 
Anatoly Podgoretsky ©   (2006-08-25 15:00) [23]

sniknik ©   (25.08.06 14:50) [22]
Вроде есть, это входит в стандарт и возможности гораздо шире.
Поэтому плач по отсутсвию NVL совсем не обоснован, а говорит он о другом, о методе научного втыка, вместо изучения документации.
Мне MS SQL нравится также тем, что наряду со стандартом есть достаточное количество своих расширений в T-SQL, со включением многих я не согласен, шли явно на поводу в ущерб безопасности, но они есть и их необязательно использовать. А вот администрирование на уровне, большинство операций можно выполнить мышкой, без выполнения скриптов и соотвественно ниже уровень вхождения. Высокая степень интеграции с офисом, виндоус и большинство форматов данных. Гетерогенные и пакетные запросы.

Кандидат достойный для использования.


 
evvcom ©   (2006-08-25 15:09) [24]

NVL - упрощенный аналог COALESCE. У него всего 2 входных параметра.


 
Anatoly Podgoretsky ©   (2006-08-25 15:20) [25]

evvcom ©   (25.08.06 15:09) [24]
Вообще то это самостоятельное детище, ни о какой замене COALESCE они и не думали.


 
ANB ©   (2006-08-25 15:27) [26]

оракл поддерживает COALESCE. Но им никто не пользуется.

> Высокая степень интеграции с офисом, виндоус и большинство
> форматов данных. Гетерогенные и пакетные запросы.

Гетерогенность - это да, лучше чем у оракла.
Но T-SQL - птичий язык, ужасно реализована работа с курсорами, нету понятия "исключение" и, соответственно, его обработки, нету удобных средств для работы с XML, нету HTTP сервера.
MS то и продвигает трехслойку, чтобы скрыть явные недоработки своего сервака. Продвинули его за счет российской налоговой, а сделать толком не сделали. Фичей мышовых навтыкали и все. Под оракл тоже есть целая куча программ для администрирования, где можно одной мышей работать.
Не в первой конторе работаю, у которой клиенты сидят на оракле. Так вот у большинства клиентов вообще админа DB не было. И ничего не падало.


 
Sergey13 ©   (2006-08-25 15:42) [27]

> [26] ANB ©   (25.08.06 15:27)
> Не в первой конторе работаю, у которой клиенты сидят на
> оракле. Так вот у большинства клиентов вообще админа DB
> не было. И ничего не падало.

Я подозреваю, что многим этим конторам и ФБ бы хватило, но в силу "халявности" почему бы и Оракл не поставить. 8-)


 
ANB ©   (2006-08-25 15:50) [28]


> Я подозреваю, что многим этим конторам и ФБ бы хватило,
> но в силу "халявности" почему бы и Оракл не поставить. 8-
> )

Им бы и DBF хватило, но стоимость разработки на оркале намного ниже, а надежность намного выше.


 
Sergey13 ©   (2006-08-25 15:52) [29]

> [28] ANB ©   (25.08.06 15:50)

Обоснуй про стоимость.


 
ANB ©   (2006-08-25 15:57) [30]


> Sergey13 ©   (25.08.06 15:52) [29]

Правильный код на PL/SQL пишется раз в 5 быстрее, а на отладку убью раз в 10 меньше времени.
А стоимость крутого спеца по ораклу максимум вдвое выше, чем на остальные СУБД.


 
Anatoly Podgoretsky ©   (2006-08-25 15:58) [31]

ANB ©   (25.08.06 15:50) [28]
Я думаю наоборот, поскольку на Оракле много дороже, чем на DBF


 
evvcom ©   (2006-08-25 15:58) [32]

> [25] Anatoly Podgoretsky ©   (25.08.06 15:20)

Ну я не знаю о чем они думали, в их мозгах не копался. Детище самостоятельное или нет тоже спорить не буду, вероятно, самостоятельное, более оптимизированное. COALESCE принимает переменное количество параметров, т.е. такой синтаксис преобразуется во внутренее представление с указателем на список аргументов, внутри цикл по списку, сравнение, соответственно накладные расходы на все эти дела. С NVL все проще, всего 2 параметра, которые и сравниваются внутри функции. Потому использование этой функции является более оптимальным. При одинаковом количестве параметров (т.е. 2) результат выполнения этих функций идентичен. Я не говорю, что NVL - это замена, но для 2 параметров, чего достаточно в большинстве случаев, является более оптимальным аналогом функции COALESCE.
Кстати для COALESCE в оракловой документации:
This function is a generalization of theNVL function.


 
Sergey13 ©   (2006-08-25 16:06) [33]

> [30] ANB ©   (25.08.06 15:57)

Быстрее пишется и отлаживается там где лучше знаешь. А ПЛ/СКЛ не всегда и нужен то, по большому счету. Можно и без него.
Так что про стоимость ты ИМХО зря.


 
sniknik ©   (2006-08-25 16:16) [34]

> С NVL все проще, всего 2 параметра
тогда это наверное IsNull() в "понятиях" mssql, теже 2 параметра, но только тогда не знаю есть ли оно в FB.


 
Sergey13 ©   (2006-08-25 16:20) [35]

> [34] sniknik ©   (25.08.06 16:16)

UDF-ку надо подключать вроде из стандартного набора.


 
Anatoly Podgoretsky ©   (2006-08-25 16:37) [36]

sniknik ©   (25.08.06 16:16) [34]
Что то есть подобное, возможно тот же самый COALESCE.
По поводу использования я всегда отдам предпочтение стандарту.


 
ANB ©   (2006-08-25 16:37) [37]


> Быстрее пишется и отлаживается там где лучше знаешь. А ПЛ/СКЛ
> не всегда и нужен то, по большому счету. Можно и без него.
>
> Так что про стоимость ты ИМХО зря.

Даже если мне всего лишь нужно написать хитрый запрос, я в оракле его без проблем напишу. Более того, практически не встречал вариантов, когда данные нельзя вытащить одним запросом без хранимок. В FB так не получится, т.к. ущербный он. В MS SQL ты дерево без клиента или хранимки не раскрутишь.


 
ANB ©   (2006-08-25 16:41) [38]


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


По этой ссылочке был вопросик :
http://delphimaster.net/view/3-1156155450/

А это мой на него ответ :
select MT.MID, MT.MSoftName,
 ROW_NUMBER()
 OVER (PARTITION BY MT.MSoftName ORDER BY MT.MID) AS MNN
from MainTable MT

Изгальниська написать подобное на ANSI/FB/MSSQL


 
sniknik ©   (2006-08-25 17:22) [39]

> Так вот у большинства клиентов вообще админа DB не было. И ничего не падало.
год назад с одной конторой начали работать, поставили одну из своих прог (использует MSDE2000 (бесплатная версия MSSQL)), недавно (пару месяцев назад) начались проблемы пропадают описания товаров... проблема решилась, по логам нашли "диверсанта" ;), но это породило у них активность... типа а где лежат файлы с данными чтобы их время от времени копировать типа бэкапа... обясняем, бэкап уже делается (дежится три последних дня/можно поставить больше (на весь обьем диска ;о))) но он не для этого... (не подымать же вчерашнюю базу изза 10-20 испорченных (ну не "теме" человек как их по правилам писать, не показали, исправлял по своему разумению) описаний записей... паралельно с этим горздо больше внесли/исправили правильно) и файлов как таковых нет, есть MSSQL и ее база.
вот тут последовала довольно "оригинальная"(мягко сказано) реация, КАК!!! У ВАС MSSQL??? это же МЕЛКОСОСОФТ! у него же все такое глючное (типа не на винде сидят ;)...), нам же теперь в каждый магазин администратора бд нужно (год работали и не подозревали, и нужды не было, а узнали так все сразу "упало"... ;о)).

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

> А это мой на него ответ :
неправильный похоже... не знаток оракла конечно, но по моему пункт "6       4        V-10" в приведенном желательном результате, у тебя будет стоять на 4м месте. т.е. будет выглядеть "4       4        V-10".


 
Danilka ©   (2006-08-25 17:22) [40]

[38] ANB ©   (25.08.06 16:41)
в MSSQL 2005 есть уже какой-то WITH, до конца с ним не разобрался еще, однако дерево построить на манер connect by prior получилось, возможно и аналог ROW_NUMBER() с ним можно закрутить.
Правда, все равно, получается монстуозный запрос, совсем нет изящества орокловых аналитических функций.



Страницы: 1 2 вся ветка

Форум: "Базы";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.64 MB
Время: 0.039 c
2-1160032808
АлексЧерных
2006-10-05 11:20
2006.10.22
Нужна помощь!!!


2-1160028369
Officeman
2006-10-05 10:06
2006.10.22
как закрыть открытый Excel процесс.


2-1160297204
WoW
2006-10-08 12:46
2006.10.22
Нужен толковой пример по работе с интерфейсами...


2-1159884569
AlexeyT
2006-10-03 18:09
2006.10.22
"Полноэкранный режим" без установки BorderStyle


4-1149225549
Shopot
2006-06-02 09:19
2006.10.22
Как работать с USB портом?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский