Реляционная база данных для небольшой сети.

Статус
В этой теме нельзя размещать новые ответы.

Ognev

ex-Team DUMPz
Местный
Регистрация
20 Авг 2004
Сообщения
2,079
Реакции
908
Credits
0
Всем доброго времени суток!

Хотелось бы услышать мнения специалистов о плюсах и минусах различных платформ реляционных БД под Windows для небольшой сети (несколько десятков компьютеров). В качестве критериев хотелось бы видеть:
1) Удобство разработки под них программного обеспечения (предположительно на Delphi).
2) Надежность работы.
3) Степень реализации стандартного SQL и его расширений.
4) Необходимость сопровлждения и настройки самого сервера.
5) Цена.
6) Может что-то еще ... )))

Были бы очень интересны личные ощущения от работы с разными БД.
________________________________________________________________

Ну что ж, подведем некоторые итоги. Итоги пойдут в порядке поступления.

I. Бесплатные БД

1) MySQL (Для просмотра ссылки Войди или Зарегистрируйся)
MySQL:
  1. Бесплатна.
  2. Есть ODBC и .NET библиотека, так что доступ можно организовать в прогамме, написанной почти на всем, чем угодно.
  3. Надежность: UNIX-хостинг по всему инету в качестве серверов баз данных юзает MySQL. Так что лично я не сомневаюсь.
...
Надежность под Windows:
Прогнозировать поведение при солидных объемах данных, есстественно, не возьмусь. Но факт, что у меня ни разу не падала. В принципе, завалить можно все что угодно В MySQL есть настройки - сколько отжирать мозгов и т.д. То есть ее можно оптимизировать под любой объем данных.
MySQL лично мне неудобна, "певчая птичка с ярким оперением" нравится намного больше.

2) Access
А чем Access тебя не устраивает?
Я сделал пару проектов именно s нем.. Просто и наглядно..
По моему, идеален для малых проектов..
Большинство задач, с которыми реально сталкивался, по большей части прекрасно решались в MS Access, хотя она и не сетевая (с возможностью элементарного перехода к SQL Server). А современные парадигмы создания распределённых систем не предполагают общения с сервером путём посылки SQL-запросов. Всё равно "слой абстракции данных / слой бизнес-логики / слой взаимодействия с пользователем".

3) Firebird (Для просмотра ссылки Войди или Зарегистрируйся)
Мой "ответ Черчилю": Firebird
1. Бесплатная
2. Open source и притом проект развивается.
3. Доступен вариант и как серверная СУБД и как локальная база (Embedded) - особенно радует мощь сервака БД в качестве локальной СУБД
4. что не понравилось - но это изза моего опыта работы с T-SQL - транзакционность (но это может быть и плюсом) и мизерная надстройка над языком SQL - слишком мало нестандартных функций SQL.
Присоединяюсь Firebird очень приятный движок. А транзакции - это основа любого нормального сервера. Функции без проблем подключаются из dll. Единственный недостаток, на мой взгляд это работа из PHP. Но человек просил Delphi, так что наверное лучше не придумаешь :)
Присоединяюсь к коллеге рекомендовавшему Firebird и постараюсь добавить аргументов в его пользу
1) наиболее продвинутые компоненты для Дельфи из всех что я видел,я имею в виду Fib+ (Для просмотра ссылки Войди или Зарегистрируйся), это отечественная разработка , просто супер, для ex-USSR стоит недорого , но если что, есть у китайцев , возможностей море, одни макросы в SQL запросах чего стоят
2) Очень надежная - особенно версии Classic for Unix(Linux) - лично у меня работает 2 сервера (уже несколько лет ) - всего 2 сбоя - оба по моей вине.
3) По транзакциям - все то что говорится про транзакции - вопрос скорее религии , кто-то считает что блокировки это хорошо , а как для меня так зная что такое версионность и two phase commit можно работать просто отлично.
вдогонку
там говорилось что у firebird мало функций , так вот уже давно есть куча библиотек для всего что хочешь, причем включать их в свою бд можно по желанию , особенно рекомендую RFUNC
все это можно постмотреть и взять на _www.ibase.ru

4) PostgreSQL (Для просмотра ссылки Войди или Зарегистрируйся)
За PostgreSQL на Windows слова не замолвлю. Под Unix - совсем другое дело.


II. Бесплатные версии платных БД.

1) Microsoft SQL Server
По Microsoft SQL Server 2005 Express Edition информации много на сайте MS:
Для просмотра ссылки Войди или Зарегистрируйся

Продукт действительно очень удачный. Особенно удались (по сравнению с предыдущими версиями и конкурентами) средства развёртывания и сопровождения.
Для начала особенно интересно посмотреть Video Series: SQL Server 2005 Express Edition for Beginners (Для просмотра ссылки Войди или Зарегистрируйся).

Замечу, что вся прелесть решений Microsoft раскрывается при интеграции продуктов и принятии идеологии их использования. Например, приложение .NET + ADO.NET 2.0 + MSSQL Express (или нормальный SQL Server) = rulezz, то есть удобство разработки и сопровождения, надёжность и т.п. на высоком уровне. В противном случае всё не так хорошо, как могло бы быть.

2) Oracle
Довольно долгое время работал с Firebird. Недавно, в силу обстоятельств, попробовал Oracle (10g XE). Теперь больше не буду работать ни с какой другой базой!!! Кстати, Oracle 10g XE бесплатный, с ограничением на размер базы (4Гб) и используемой памяти (1Гб). Таких возможностей нет больше ни в какой другой СУРБД! Рекомендую всем!!!
С моей точки зрения и по сравнению с Firebird:
1. Очень понравилось использовать PL/SQL. В одном компоненте TSQL можно написать обработку, для которой в Firebird требовалось объединять несколько SQL-запросов.
2. Не блокирует данные при транзакциях (сам проверял). В Firebirde часто попадал на deadlock.
3. Работает очень быстро (особенно под Linux-ом).
4. В инете документации по ораклу - вагон.
Это если не копать вглубь.
...
Установка и сопровождение под Windows.
Опять повторюсь - работаю с Ораклом недавно, не гуру, перешел с Firebird в силу обстоятельств. Особых сложностей не заметил - куча документации в интернете. Поставился 10gXE легко - запросил только каталог установки. Есть Web-интерфейс для администрирования. Много компонентов под Delphi для разработки приложений. Сейчас переписываю проекты с FB на Оракл.
________________________________________________________________

Некоторые попытки сравнения разных БД вот и вот.
 
Последнее редактирование модератором:

Ognev

ex-Team DUMPz
Местный
Регистрация
20 Авг 2004
Сообщения
2,079
Реакции
908
Credits
0
JackKetch,
я вроде спрашивал про плюсы и минусы, а не про названия, которые и так все знают.

P.S. Попрошу впредь высказываться в теме предметно )))
 

ZeVS

Специалист
Местный
Регистрация
2 Окт 2005
Сообщения
220
Реакции
77
Credits
10
MySQL:
  1. Бесплатна.
  2. Есть ODBC и .NET библиотека, так что доступ можно организовать в прогамме, написанной почти на всем, чем угодно.
  3. Надежность: UNIX-хостинг по всему инету в качестве серверов баз данных юзает MySQL. Так что лично я не сомневаюсь.
 

Ognev

ex-Team DUMPz
Местный
Регистрация
20 Авг 2004
Сообщения
2,079
Реакции
908
Credits
0
Да, совсем забыл написать, что БД будет под Windows! Добавил в шапку. Как у MySQL с надежностью именно под эту ОС?

Шибко еще мне в свое время нахваливали Postgre SQL, но подразумевая реализацию под *nix. Сейчас он и под Windows есть, но остаются некие сомнения в надежности его именно под виндой.
 

ZeVS

Специалист
Местный
Регистрация
2 Окт 2005
Сообщения
220
Реакции
77
Credits
10
Как у MySQL с надежностью именно под эту ОС?
У меня в базе объем данных невелик. Тысячи 1.5-2 записей по всем таблицам. Да и обращения нечастые. Прогнозировать поведение при солидных объемах данных, есстественно, не возьмусь. Но факт, что у меня ни разу не падала. В принципе, завалить можно все что угодно ;) В MySQL есть настройки - сколько отжирать мозгов и т.д. То есть ее можно оптимизировать под любой объем данных.
 

y.victor

Местный
Регистрация
19 Июл 2004
Сообщения
57
Реакции
15
Credits
132
А чем Access тебя не устраивает?
Я сделал пару проектов именно s нем.. Просто и наглядно..
По моему, идеален для малых проектов..
 

dreadangel

Местный
Регистрация
12 Янв 2007
Сообщения
84
Реакции
15
Credits
130
А чем Access тебя не устраивает?
..


идеален только для чтения и отображения данных но с моей точки зрения там многовато недоработок и глюков особенно при работе с Delphi при использование ClientDataSet. и притом в теме было "Реляционная база данных для небольшой сети" - на мой взгляд даже для мааааленькой сети Access не подходит - только для локалки

Мой "ответ Черчилю": Firebird
1. Бесплатная
2. Open source и притом проект развивается.
3. Доступен вариант и как серверная СУБД и как локальная база (Embedded) - особенно радует мощь сервака БД в качестве локальной СУБД
4. что не понравилось - но это изза моего опыта работы с T-SQL - транзакционность (но это может быть и плюсом) и мизерная надстройка над языком SQL - слишком мало нестандартных функций SQL.
 
Последнее редактирование модератором:

Guard

Premium
Регистрация
6 Мар 2004
Сообщения
58
Реакции
2
Credits
223
Присоединяюсь Firebird очень приятный движок. А транзакции - это основа любого нормального сервера. Функции без проблем подключаются из dll. Единственный недостаток, на мой взгляд это работа из PHP. Но человек просил Delphi, так что наверное лучше не придумаешь :)
 

Ognev

ex-Team DUMPz
Местный
Регистрация
20 Авг 2004
Сообщения
2,079
Реакции
908
Credits
0
y.victor,
если коротко, то почти всем ))) А самое главное, разве даже Access 2007 является реляционной БД? А ведь тема именно о них. Access может быть и хорош для создания небольших утилит что называется "на коленке", но вряд ли может всерьез рассматриваться как БД для полнофункционального Win-приложения.

Чтобы придать теме некоторый импульс попробую высказать свое виденье этого вопроса.

Первый момент, на мой взгляд, который должен решить разработчик при выборе БД в наше время (время становления борьбы с пиратством на софтовом фронте), это хочет ли он (заказчик/шеф/etc) платить за нее деньги. Даже если ваш проект мал или вообще не коммерческий, все же стоит подумать и о возможности его дальнейшего развития. Таким образом, я бы изначально поделил все реляционные БД на два больших класса - Платные и Свободно Распространяемые.

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

Из бесплатных БД исторически первым был, пожалуй, теперешний PostgreSQL. Еще можно выделить MySQL, который родился как альтернатива PostgreSQL (их конкуренция продолжается и по сей день). И, наконец, не так уж давно, как-то вдруг вырос (из InterBase) и окреп Firebird. Не претендуя на полноту и объективность попробую, однако, их сравнить.
1) Интеграция с web. По отзывам и PostgreSQL и MySQL легко интегрируются с web. Кто лучше - не берусь судить, так как никогда этим не занимался. Если для вас критичен этот пункт, то Firebird, наверно, стоит отбросить.
2) Степень реализации языка SQL. PostgreSQL здесь по признаниям многих лидер. Однако, столь глубокая реализация поддержки SQL во многом специфична, и может оказаться, что вовсе не нужна для ваших задач. Firebird здесь прочно занимает второе место, но, на мой взгляд, имеет практически все необходимое для решения стандартных задач. MySQL пока что не может здесь похвастаться большими успехами, хотя работа в этом направлении усиленно ведется.
3) Скорость. Считается (и, думаю, не без основания), что конек MySQL - это скорость его работы. Однако, имею (ничем не проверенное) подозрение, что в реальных приложениях для небольшой сети эта разница будет незаметна пользователю. Однако, это может быть критично для web-приложений.
4) Удобство разработки под Delphi. Здесь я хочу остановиться лишь на одном моменте. Представьте, что к вам пришел заказчик и сказал - хочу вашу программу, но под Oracle. А вы писали под MySQL. Предполагая такой вариант, возможно, стоит использовать при разработке унифицированный способ доступа к БД. Например, набор компонентов dbExpress. Пока (на сколько мне известно) с Delphi поставляются драйвера dbExpress для работы с Firebird и MySQL. При работе с PostgreSQL придется использовать специализированный набор компонентов. Правда, остается вариант работы через ODBC, но лично мне он не симпатичен.
5) Установка сервера БД, стабильность работы в Windows, сопровождение. Здесь по личному опыту могу сказать только о Firebird. Установка банальна. Настройка и сопровождение практически не требуются. Работает стабильно. В общем, что называется - поставил и забыл. Наверно, то же самое можно сказать о MySQL. С PostgreSQL ситуация кажется сложнее. Версия этой БД для Widows появилась не так давно, и о стабильности ее работы встречаются негативные отзывы. Однако, как обстоит дело сейчас мне судить трудно. Кроме того, берусь предположить, что установка, настройка и сопровождение сервера для этой БД будет сложнее.

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

jONES1979

Турист
Регистрация
16 Май 2007
Сообщения
8
Реакции
1
Credits
16
" А самое главное, разве даже Access 2007 является реляционной БД? "
гы? а разве не является?
"В соответствии с реляционной моделью база данных представляется в виде совокупности таблиц, над которыми могут выполняться операции, формулируемые в терминах реляционной алгебры и реляционного исчисления"

А у тя какие критерии, по которым Акцесс не соответсвует названию реляционной?

сорри за оффтоп
 

Ognev

ex-Team DUMPz
Местный
Регистрация
20 Авг 2004
Сообщения
2,079
Реакции
908
Credits
0
Извиняюсь за offtop, но какие у вас критерии включения Access в список реляционных баз? И что именно вы понимаете под термином "реляционная алгебра".

P.S. если ваш ответ предполагает голый флуд, то предлагаю сразу перенести дискуссию в личку.
 

jONES1979

Турист
Регистрация
16 Май 2007
Сообщения
8
Реакции
1
Credits
16
итак по порядку:

реляционная БД реализует хранение данных в соответсвии с реляционной моделью. Данные представляются в виде совокупности таблиц, над которыми могут выполняться операции, формулируемые в терминах реляционной алгебры.

в Акцесс данные хранятся как? В виде таблиц! Таблицы могут быть связаны - по этому критерию соответсвует!

Базовые операции(действия) реляционной алгебры:
Выборка, Сложение, Вычитание, Перемножение - любой из них реализуется в Accesss оператором SELECT с различными параметрами и условиями. - по этому критерию тоже соответсвует!
---------------------------------------------------------------
не знаю, голый ли это флуд. но точно оффтоп.

а вот критерии по которым вы решили что Access не относится к реляционным СУБД было бы интересно услышать. :) Так же, как и ваше мнение как КАКИМ же СУБД он тогда относится?
 

Ognev

ex-Team DUMPz
Местный
Регистрация
20 Авг 2004
Сообщения
2,079
Реакции
908
Credits
0
Ну, предлагаю оперется не на какие-то расплывчатые слова, которыми вы оперируете, а, например, на 12 правил Кодда (например Для просмотра ссылки Войди или Зарегистрируйся можно глянуть). Могу ошибаться, но на вскидку реализация пункта 4 в Access сильно под вопросом, 5, 6, 7, 11 на мой взгляд не выполняются.
 

jONES1979

Турист
Регистрация
16 Май 2007
Сообщения
8
Реакции
1
Credits
16
12 правил (на самом деле их 13), которым должна удовлетворять каждая система управления реляционными базами данных.
Ооо, ну с таким то подходом да, акцесс явно недореляционная субд. Точнее неудовлетворительно реляционная ;)

---
к сожалению модель данных используюмую "акцессом" у вас не получится отождествить с другими известными моделями данных. ... эээ ... наверное :)
---
а по теме топика. есть бесплатные версии Oracle(с прошлого года) и MS SQL сервер (Express Edition называется вариант 2005-ого сервака, MSDE - вариант 2000-ого).
Про Оракл ничего не скажу, слишком далек он от народа, а вот MS SQL 2005 Express Edition оч. хорош. "стал"в последнее время.
Нет ограничений по кол-ву пользователей. Макс размер БД - 4 гигабайта.
начиная с SP1 ему "вернули" оболочку (забыл как называется, раньше звалась Enterprise Manager), в комплекте идет Reporting Services (то есть можно делать отчеты и получать их с IIS)
1) Интеграция с web: Классическая (уже) связка +IIS+ASP.NET
2) Степень реализации языка SQL: T-SQL "мощщный, он может все" :) А если серьёзно, то он действительно много умеет, достаточно Book-On-Line почитать. Ну и собсна, раз он 2005ый сервер таки, то доступ из хранимок и триггеров ко всему что зарегено в .NET со всеми вытекающими возможностями...
3)4)5) тож всё хорошо, хотя на вкус и на цвет товарища нет, и тож если хорошо поискать то можно чо угодно найти и хорошее и плохое...

из минусов - тока моноплатформенность (виндовс онли). хотя оч. многим это без разницы.
 
Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.