Какую базу данных я должен использовать для домашнего проекта? - PullRequest
8 голосов
/ 03 декабря 2009

Я просмотрел все «связанные вопросы» с двумя или тремя разными названиями и ничего не увидел, так что вот так.

Я использовал SQL Server и Oracle в недавнем прошлом на работе. Я хочу пообщаться дома, в основном с Java, возможно, с Ruby on Rails или Python. Я использую Windows 7. Я обычно делаю веб-приложения, возможно, в конечном итоге они захотят разместить их удаленно, и, кроме того, не предъявляют особых требований заранее.

В этом случае мне не интересно изучать все тонкости SQL; Я, вероятно, буду использовать ORM, чтобы абстрагировать это, чтобы оно автоматически не зависело от диалекта. Я также собираюсь поработать с несколькими нереляционными хранилищами данных, но у меня там есть конкретные.

Какие базы данных мне следует рассмотреть?

  1. Я установил SQL Server Express, и он, кажется, довольно ограничен только работой с .NET, плюс установка SQL Server Express даже не выглядит должным образом интегрированной с выпуском Visual Studio C # Express, который он поставлял. (Я не могу создать базу данных автоматически, например.)
  2. Я рассматриваю Oracle XE, за исключением тех случаев, когда я когда-либо хотел сделать общедоступным любой мой код проекта, поиск хостинга для Oracle по разумной цене кажется камнем преткновения.
  3. SQLite кажется быстрым и быстрым, если мне не нужно много параллелизма.
  4. Похоже, что MySQL - это путь к тому, что легко разместить, и может быть абсолютным победителем. Надеюсь, что GUI все еще не ужасен.

Ответы [ 23 ]

18 голосов
/ 03 декабря 2009

SQLite - очень хороший вариант. Это всего лишь один файл, и быстро. Нет конфигурации, транзакции являются атомарными, поддерживает базы данных терабайтного размера. Существуют привязки к языку для Ada, C #, Lisp, Fortran, Java, Lua, PHP, Perl, Python, Ruby, Tcl и т. Д. *

Имеет хорошие параметры администратора GUI:

  1. Администратор SQLite для Windows
  2. Браузер SQLite для Linux, Mac и Windows снимки экрана
  3. Даже Плагин Firefox для просмотра / редактирования данных
  4. Многие другие

Используется в промышленности:

  1. Это базовая база данных, которую Firefox использует для закладок и истории. Он также может быть использован плагинами для хранения внутренних данных. ссылка
  2. iPhone также использует его для хранения данных и может использоваться самими приложениями для собственного хранения данных. Вот серия уроков по использованию в ваших собственных приложениях. ссылка
  3. Adobe использует его в качестве формата файла для Lightroom. Apple использует его для Mail и Aperture. Skype использует его в своих клиентах для Mac и Windows. Наконец, кажется, что это неотъемлемая часть Symbian, телефонной ОС Nokia. страница пользователя
11 голосов
/ 03 декабря 2009

Мне понравилось работать с SQLite3 - интерфейс Python очень прост, и вся база данных - это всего один файл!

7 голосов
/ 03 декабря 2009

PostgreSQL - превосходная база данных с открытым исходным кодом, которую можно использовать с Java, Python, Ruby, .NET и другими.

Вы можете легко найти множество сравнений PostgreSQL и MySQL. Я использовал и любил оба.

5 голосов
/ 03 декабря 2009

Я использую 2 разных движка баз данных с открытым исходным кодом дома:

  1. PostgreSQL
  2. Sqlite3 (встроенные драйверы, начиная с python 2.5)

Поскольку вы пришли из среды Oracle и SQL Server, я определенно рекомендовал бы использовать маршрут PostgreSQL, он работает в Windows (как служба, очень похожая на MSSQL / Oracle), а также в системах * NIX. Он также имеет довольно приличный кроссплатформенный графический интерфейс под названием pgAdmin . Кроме того, начиная с версии 8.3 PostgreSQL, с MySQL она в значительной степени соответствует производительности, не похожа на более старые версии 7.x, которые были s-l-o-w.

Самая большая причина, по которой я рекомендую PostgreSQL людям, имеющим больший опыт работы с Oracle / MSSQL (в отличие от MySQL), заключается в том, что синтаксис SQL и общее представление о механизме базы данных очень близко совпадают. На самом деле PostgreSQL во многом похож на Oracle в том, как он обрабатывает блокировку базы данных и одновременное чтение.

3 голосов
/ 03 декабря 2009

это зависит от ваших требований.

первая попытка: если вам нужна быстрая и встроенная база данных, и у вас не так много данных (нет кластеризации, нет распределения), я бы взял H2. эта база данных быстрая, ее можно использовать с hibernate / orm, и если вы хотите использовать специальные функции этой базы данных (ее легко расширить с помощью java-разработчика с функциями ...)

вторая попытка: у вас не так много реляционных данных, вы хотите использовать графики объектов разных типов. Вы хотите быстрое и полностью встраиваемое решение, чем я бы использовал db4o или другой db в стиле объектно-ориентированной памяти. (без норм)

третья попытка: если вы хотите хранить гораздо больше данных (например, миллион записей в таблице), но без кластеризации, репликации, распространения, чем я бы использовал mysql. это быстро и приятно в использовании. Я обнаружил, что Postgres в моем опыте медленнее, чем MySQL. MySQL идеально подходит для использования непосредственно в Java, а также в спящем режиме и совместно. также.

четвертая попытка: если у вас намного больше данных ... о, извините, я забыл, что вы спрашивали о домашнем решении :)

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

о графическом инструменте: вы можете найти множество из них для разных баз данных, но также для решения, независимого от базы данных ...

веселись!

3 голосов
/ 03 декабря 2009

Если вы уже знакомы с Oracle, то Oracle Express Edition гораздо проще установить, чем уродливое чудовище.

2 голосов
/ 03 декабря 2009

Если вы знакомы с SQL Server с работы, почему бы не использовать абсолютно бесплатный SQL Server Express ??

Вокруг него также есть множество инструментов, то есть SQL Server Management Studio Express и другие. Он даже поддерживает расширенные функции, такие как полнотекстовый поиск и многое другое.

2 голосов
/ 03 декабря 2009

Учитывая, что вы в основном будете использовать Java, я бы также рассмотрел HSQLDB в качестве альтернативы SQLite.

1 голос
/ 03 декабря 2009

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

Учитывая, что я бы порекомендовал postgresql. Это SQL гораздо более ANSI-совместимым, чем MySQL - так что позже использование Oracle, SQL Server, SQLite и т. Д. Должно быть очень простым. И конечно, вы можете (и должны, если это возможно) использовать ORM - но вы все равно будете иметь дело с синтаксисом базы данных для отчетов или очень сложным SQL.

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

С Oracle Express можно легко работать, но, как вы указали, размещение на производстве обычно очень дорого. С SQL Server также приятно работать, но он также очень дорог в производстве. У него также есть способ работы с окнами, который я считаю более неудобным для автоматизации процессов, чем то, что вы обычно делаете с Unix-ориентированными базами данных. Обратите внимание, что вы также можете использовать DB2 Express - это бесплатно для 2 процессоров, 4 ГБ памяти и столько данных, сколько вы хотите. Все это отлично подходит для коммерческих настроек, но вы не найдете их в меню на дешевых хостингах.

MySQL, конечно, еще один вариант. Это лидер свободного рынка. Но проблемы переносимости - это боль, а ошибки и тихие ошибки вызывают дополнительную работу для разработки - если важно качество данных. Тогда есть сложность лицензирования и неопределенность его будущего. В 2002 году я бы определенно сказал MySQL, но в 2009 году большую часть времени я бы сказал Postgresql.

1 голос
/ 03 декабря 2009

Если бы вы интересовались разработкой некоторых классных приложений дома, я бы не слишком беспокоился о том, с какой базой данных работать. Лично я бы сделал это как можно проще - на мой взгляд, SQLite3 (как уже рекомендовано другими). ​​

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...