Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
 Помогите новичку с выбором  [new]
Safr
Member

Откуда:
Сообщений: 13
Здрастуйте!:)
меня тут попросили для одной начинающей конторы написать програмку для учета их людей. попросили хорошие знакомые, и по этому бесплатно:) типа и сам я не мега кодер и у них фирма не Юкос:)
в общем ситуация такова: сам я пишу (пытаюсь:)) на дельфи. пробовал запускать Mssql 2000, писать хранимки и т.д. Еще читал книгу про FireBird, и совершал с ним все вышеописанные действия;) как вы видите опыт очень не велик:)
требования к БД: пока 1 оператор, с возможностью увелчения до 5-6. без веба.
уважаемые знатоки, подскажите, что мне сейчас лучше изучать? точнее так: какую БД надо изучать (всмысле детально, а не так как я изучал предыдущие: поверхностно)
и еще: желательно что бы бд была бесплатна.... но я почитал: и Mssql server и oracl и firebird все бесплатно. ну первые 2 с ограничениями, но мне до них пока далеко....
оффтоп:про ограничения MSSQL пишут '1 прочессор' это что обозначает? а если в системе 2 прочессора, то сервер работать не будет? или забьет на 2й процессор? а если камень двухядерный то что?
заранее благодарю:)
5 авг 07, 15:38    [4480861]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку с выбором  [new]
Иван Салазкин
Member

Откуда: лес с лосями и грибами
Сообщений: 3630
MSDE
5 авг 07, 16:00    [4480898]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку с выбором  [new]
Safr
Member

Откуда:
Сообщений: 13
а MSDE это вообще что? кастрированный MSSQLServer??? или как понимать? если впроследствии переходить на Server то что изменится? добавятся новые фичи? или вообще все заново?
заранее спасибо:)
5 авг 07, 17:45    [4481011]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку с выбором  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67534
Блог
Safr
уважаемые знатоки, подскажите, что мне сейчас лучше изучать? точнее так: какую БД надо изучать (всмысле детально, а не так как я изучал предыдущие: поверхностно)

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

Если с точки зрения "что изучать, чтобы потом пригодилось", то берите Oracle.
5 авг 07, 18:03    [4481031]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку с выбором  [new]
Safr
Member

Откуда:
Сообщений: 13
а вот насколько быстро в Оракле можно накрапать мини табличку и пару хранимок? в МССКУЛСервере у меня получилось за день. это с нуля. а по описаниям(отзывам) оракл сложнее. насколько хороши в дельфи средства связи с ораклом? АДО? или еще что нибудь есть?
5 авг 07, 18:10    [4481039]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку с выбором  [new]
Safr
Member

Откуда:
Сообщений: 13
и еще пару вопросов:
- какая БД сейчас самая востребованная?
- какие ограничения бесплатной версии Oracle?
5 авг 07, 18:13    [4481044]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку с выбором  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 122217
Safr
- какие ограничения бесплатной версии Oracle?


Oracle Database 10g Express Edition

автор

Oracle Database XE can be installed on any size host machine with any number of CPUs (one database per machine), but XE will store up to 4GB of user data, use up to 1GB of memory, and use one CPU on the host machine.
5 авг 07, 18:20    [4481051]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку с выбором  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67534
Блог
Safr
а вот насколько быстро в Оракле можно накрапать мини табличку и пару хранимок? в МССКУЛСервере у меня получилось за день. это с нуля.

Как Вам сказать... боюсь, десять лет назад мне проще было бы ответить на этот вопрос :) Ответил бы "за две минуты", но, думаю, Вы спрашивали немного не об этом :)

SQL> create table mini ( id integer not null primary key, value varchar2(100), 
 2     locked char(1) default 'N' check ( locked in ( 'Y', 'N' ))) ;

Table created

SQL> create sequence mini_seq ;

Sequence created

SQL> create function insert_mini ( p_value varchar2 ) return integer is
  2    result integer ;
  3  begin
  4    insert into mini ( id, value, locked )
  5      values ( mini_seq.nextval, p_value, default ) 
  6      returning id into result ;
  7    return result ;
  8  end ;
  9  /

Function created

SQL> create procedure update_mini ( p_id integer, p_newvalue varchar2, p_newlocked char ) is
  2  begin
  3    update mini set
  4      value = p_newvalue,
  5      locked = p_newlocked
  6    where id = p_id ;
  7  end ;
  8  /

Procedure created

SQL> create procedure delete_mini ( p_id integer ) is
  2  begin
  3    delete from mini where id = p_id ;
  4    if sql%rowcount <> 1 then raise_application_error ( -20100, 'Something wrong with delete' ) ; end if ;
  5  end ;
  6  /

Procedure created

SQL> create trigger mini_bd before delete on mini for each row
  2  begin
  3    if :old.locked = 'Y' then 
  4      raise_application_error ( -20101, 'Record ' || :old.id || ' is locked and cannot be deleted' ) ;
  5    end if ;
  6  end ;
  7  /

Trigger created

SQL> var new_id number ;

SQL> begin :new_id := insert_mini ( 'Первая запись' ) ; end ;
  2  /

PL/SQL procedure successfully completed

new_id
---------
1

SQL> begin :new_id := insert_mini ( 'Вторая запись' ) ; end ;
  2  /

PL/SQL procedure successfully completed

new_id
---------
2

SQL> begin :new_id := insert_mini ( 'Третья запись' ) ; end ;
  2  /

PL/SQL procedure successfully completed

new_id
---------
3

SQL> begin update_mini ( p_id => 2, p_newvalue => 'Обновленная вторая запись', p_newlocked => 'Y' ) ; end ;
  2  /

PL/SQL procedure successfully completed

SQL> begin delete_mini ( 1 ) ; end ;
  2  /

PL/SQL procedure successfully completed

SQL> select * from mini ;

                                     ID VALUE                                                                            LOCKED
--------------------------------------- -------------------------------------------------------------------------------- ------
                                      2 Обновленная вторая запись                                                        Y
                                      3 Третья запись                                                                    N

SQL> begin delete_mini ( 2 ) ; end ;
  2  /

ORA-20101: Record 2 is locked and cannot be deleted
ORA-06512: at "TEST.MINI_BD", line 3
ORA-04088: error during execution of trigger 'TEST.MINI_BD'
ORA-06512: at "TEST.DELETE_MINI", line 3
ORA-06512: at line 1

SQL> begin delete_mini ( 10 ) ; end ;
  2  /

ORA-20100: Something wrong with delete
ORA-06512: at "TEST.DELETE_MINI", line 4
ORA-06512: at line 1

Safr
а по описаниям(отзывам) оракл сложнее.

Как Вам сказать.... это чушь из серии "слышал звон". Глобально это тема для больших и бессмысленных флеймов, а локально скажу так: для задач, с которыми Вы столкнетесь в первые год-два, "разницы в сложности" точно не будет. Будет исключительно разница в том, насколько хорошая литература Вам попадется, насколько Вам будут интуитивно понятны подходы, предлагаемые тем или иным сервером (там, где они различаются) итп.

Safr
насколько хороши в дельфи средства связи с ораклом? АДО? или еще что нибудь есть?

АДО, может быть и годится для связи с MSSQL, не готов судить во всей полноте, но Oracle им лучше не насиловать. Средства в дельфе... ну как сказать, если я скажу "идеально", это будет небольшим преувеличением. Поиск по форуму дельфы даст Вам груду информации на этот счет.
5 авг 07, 18:57    [4481118]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку с выбором  [new]
Safr
Member

Откуда:
Сообщений: 13
ну вот... хотел углубляться в ФиреБирд.... :) мона сказать вы меня убедили:)
тогда так: какие книжки по Вашему мнению стоит читать? точнее так: что из присутствующего на рынке стоит читать? рассматриваются варианты на русском. на инглише, как я понимаю хелп от оракла:)
и есче: меня напрягает условие 1 CPU.
на 2х он работать не будет? я не просто так спрашиваю: у меня десктоп двухядерный камень.
и как насчет средств администрирования? в МССКУЕЛе они сразу были. а здесь как? придется искать? они платные?
5 авг 07, 19:05    [4481125]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку с выбором  [new]
Ktulhu
Guest
softwarer
Safr
а вот насколько быстро в Оракле можно накрапать мини табличку и пару хранимок? в МССКУЛСервере у меня получилось за день. это с нуля.

Как Вам сказать... боюсь, десять лет назад мне проще было бы ответить на этот вопрос :) Ответил бы "за две минуты", но, думаю, Вы спрашивали немного не об этом :)

SQL> create table mini ( id integer not null primary key, value varchar2(100), 
 2     locked char(1) default 'N' check ( locked in ( 'Y', 'N' ))) ;

Table created

SQL> create sequence mini_seq ;

Sequence created

SQL> create function insert_mini ( p_value varchar2 ) return integer is
  2    result integer ;
  3  begin
  4    insert into mini ( id, value, locked )
  5      values ( mini_seq.nextval, p_value, default ) 
  6      returning id into result ;
  7    return result ;
  8  end ;
  9  /

Function created

SQL> create procedure update_mini ( p_id integer, p_newvalue varchar2, p_newlocked char ) is
  2  begin
  3    update mini set
  4      value = p_newvalue,
  5      locked = p_newlocked
  6    where id = p_id ;
  7  end ;
  8  /

Procedure created

SQL> create procedure delete_mini ( p_id integer ) is
  2  begin
  3    delete from mini where id = p_id ;
  4    if sql%rowcount <> 1 then raise_application_error ( -20100, 'Something wrong with delete' ) ; end if ;
  5  end ;
  6  /

Procedure created

SQL> create trigger mini_bd before delete on mini for each row
  2  begin
  3    if :old.locked = 'Y' then 
  4      raise_application_error ( -20101, 'Record ' || :old.id || ' is locked and cannot be deleted' ) ;
  5    end if ;
  6  end ;
  7  /

Trigger created

SQL> var new_id number ;

SQL> begin :new_id := insert_mini ( 'Первая запись' ) ; end ;
  2  /

PL/SQL procedure successfully completed

new_id
---------
1

SQL> begin :new_id := insert_mini ( 'Вторая запись' ) ; end ;
  2  /

PL/SQL procedure successfully completed

new_id
---------
2

SQL> begin :new_id := insert_mini ( 'Третья запись' ) ; end ;
  2  /

PL/SQL procedure successfully completed

new_id
---------
3

SQL> begin update_mini ( p_id => 2, p_newvalue => 'Обновленная вторая запись', p_newlocked => 'Y' ) ; end ;
  2  /

PL/SQL procedure successfully completed

SQL> begin delete_mini ( 1 ) ; end ;
  2  /

PL/SQL procedure successfully completed

SQL> select * from mini ;

                                     ID VALUE                                                                            LOCKED
--------------------------------------- -------------------------------------------------------------------------------- ------
                                      2 Обновленная вторая запись                                                        Y
                                      3 Третья запись                                                                    N

SQL> begin delete_mini ( 2 ) ; end ;
  2  /

ORA-20101: Record 2 is locked and cannot be deleted
ORA-06512: at "TEST.MINI_BD", line 3
ORA-04088: error during execution of trigger 'TEST.MINI_BD'
ORA-06512: at "TEST.DELETE_MINI", line 3
ORA-06512: at line 1

SQL> begin delete_mini ( 10 ) ; end ;
  2  /

ORA-20100: Something wrong with delete
ORA-06512: at "TEST.DELETE_MINI", line 4
ORA-06512: at line 1



хоть вы и уважаемый человек но так писать нунафиг.....
А если у него в приложении будет не 1-10 а 5000 таблиц.. ему придется наплодить в 3 раза больше процедур!!!
ИМХО не стоит так советовать человеку делать.
Надо в первую очередь глубоко вникнуть и понять методологию написания клиентских приложений.
а так - если на коленке лабать то да....
5 авг 07, 19:14    [4481138]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку с выбором  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67534
Блог
Safr
ну вот... хотел углубляться в ФиреБирд.... :) мона сказать вы меня убедили:)

С точки зрения последующей профессиональной карьеры Firebird все же уступает.

Safr
тогда так: какие книжки по Вашему мнению стоит читать? точнее так: что из присутствующего на рынке стоит читать?

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

http://www.ozon.ru/context/detail/id/3279749/
http://www.ozon.ru/context/detail/id/2206151/

Safr
рассматриваются варианты на русском. на инглише, как я понимаю хелп от оракла:)

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

Safr
и есче: меня напрягает условие 1 CPU. на 2х он работать не будет? я не просто так спрашиваю: у меня десктоп двухядерный камень.

dmidek ответил на этот вопрос.

Safr
и как насчет средств администрирования? в МССКУЕЛе они сразу были. а здесь как? придется искать? они платные?

Смотря что Вы называете средствами администрирования. Под Oracle довольно большой выбор инструментов разного назначения, как самого оракла, так и третьих фирм. Есть платные, но и бесплатно можно собрать себе абсолютно адекватный комплект. Впрочем, на первое время средством администрирования я бы посоветовал сделать три простейших батника - "стартовать базу", "остановить базу" и "забэкапить базу", вывести их ярлыки на рабочий стол и наслаждаться.
5 авг 07, 19:19    [4481148]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку с выбором  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67534
Блог
Ktulhu
ИМХО не стоит так советовать человеку делать.

Я не "советую делать", скорее показываю, что "простые вещи делаются просто". Думаю, примерно такие процедуры и имелись в виду в вопросе.

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

А количество процедур определяется не столько количеством таблиц, сколько количеством необходимых бизнес-функций. Бывает и тридцать хранимок на одну таблицу.
5 авг 07, 19:23    [4481154]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку с выбором  [new]
Safr
Member

Откуда:
Сообщений: 13
так вот из ответа уважаемого dmidekа я и не понял ответа:( оракл просто не запустится? и чего тогда мне с моим 2х ядерным делать????

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

будем развиваться! спасибо:)
5 авг 07, 19:35    [4481169]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку с выбором  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67534
Блог
Safr
так вот из ответа уважаемого dmidekа я и не понял ответа:(

А он там есть. Считайте его поиск первым домашним заданием :) А вообще советую поверить - в оракле не дураки сидят.

Safr
а можете тогда вы посоветовать курсы по подготовке?

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

Safr
(это я к тому что не хочу постить новую тему в соответствующем форуме)

Для начала стоит почаще пользоваться кнопкой "поиск". Вопрос "как начать" весьма популярен и на этом форуме, и в гугле.
5 авг 07, 19:49    [4481180]     Ответить | Цитировать Сообщить модератору
 Re: Помогите новичку с выбором  [new]
Safr
Member

Откуда:
Сообщений: 13
гыгыг:) ответ нашел, как тока решился прочитать сначала:)

насчет последнего высказывания
"А такие, чтобы общедоступные и не "деньги на ветер" - может и есть, но никогда о таких не слышал."
можно лично, если конечно не затруднит, написать о тех, которые "деньги на ветер". буду очень благодарен:)
еси можно не лично, то это будет совсем хорошо, но мне кажется, что это не можно....:(
3760353948icq
5 авг 07, 20:47    [4481260]     Ответить | Цитировать Сообщить модератору
Все форумы / Сравнение СУБД Ответить