Какую базу данных выбрать, чтобы не беспокоиться об ограничении размера? - PullRequest
1 голос
/ 13 февраля 2010

Я хочу сделать довольно простую базу данных, в которой должны храниться видеофайлы и звуковые файлы. Я хотел использовать базу данных MS Access (mdb), но это ограничено 2 ГБ . Я не хочу использовать сервер-клиентское решение, потому что это должно быть одно приложение, использующее только локальную базу данных, хранящуюся на локальном жестком диске. Это идея.

Можете ли вы дать мне совет?

1007 * спасибо *

Ответы [ 9 ]

11 голосов
/ 13 февраля 2010

Я бы пошел со встроенным Firebird . Вы можете иметь настольное приложение, не требующее обслуживания, и, если хотите, можете позже масштабировать его до полной системы C / S. Также у вас достаточно библиотек (бесплатных или нет - Zeos, UIB, IBObjects, FIBPlus), чтобы использовать их из Delphi. Не говоря уже о том, что последний Delphi имеет драйвер DBX OOTB.

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

НТН

6 голосов
/ 13 февраля 2010

Если вы хотите хранить двоичные данные, такие как видео / аудио данные, вам следует рассмотреть возможность использования файловой системы и помещения метаданных, таких как ширина, высота, длина, автор, ... в базу данных по вашему выбору. Мне нравится MySQL.

2 голосов
/ 13 февраля 2010

Firebird - один из лучших вариантов для Delphi и существует одна встроенная версия

И статья о Firebird и хранилище BLOB-объектов

1 голос
/ 14 февраля 2010

Как и предлагалось ранее, я также рекомендую ПТИЦУ . Delphi имеет встроенную поддержку для этого, она требует минимальных накладных расходов в коде, проста в установке, не требует обслуживания, переносима при необходимости, обладает супер-набором функций и, что самое главное, абсолютно бесплатна даже для коммерческих продуктов.

Сравнение MySQL и Firebird может быть рассмотрено при сравнении игрушечного набора инструментов (MySQL) с инструментами реального Pro (Firebird). - Надеюсь, это не начало войны ...

1 голос
/ 13 февраля 2010

Как насчет Sqlite ? Это будет соответствовать вашим потребностям, я уверен, плюс, это общественное достояние. Также есть привязки для разных языков. См. здесь для интерфейса Delphi для Sqlite.

Редактировать: после комментария zebrabox - Вы можете создать простую таблицу для идентификации различных ресурсов и путей ... что-то вроде этого

CREATE TABLE "BlobId" (
    "BLOB_TYPE" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
);
CREATE TABLE sqlite_sequence(name,seq);
CREATE TABLE "BlobInfo" (
    "BlobInfo_Id" INTEGER PRIMARY KEY NOT NULL,
    "BlobInfo_Date" TEXT NOT NULL,
    "BlobInfoPath" TEXT NOT NULL
);

BlobId таблица будет иметь значения 1 для изображения, 2 для аудио, 3 для видео и будет логически связана с BlobInfo таблицей

BlobInfo
1, 2010-02-13 04:05:40  C:\Blobs\SomeImage1.jpg
1, 2010-02-13 04:05:40  C:\Blobs\SomeImage2.jpg
2, 2010-02-13 04:05:40  C:\Blobs\SomeSound.wav
3, 2010-02-13 04:05:40  C:\Blobs\SomeVide.mp3

Использование Sqliteman, который является интерфейсом Sqlite Manager GUI для администрирования баз данных Sqlite, облегчит работу. На вас лежит обязанность убедиться, что путь достаточно гибкий, чтобы его можно было перемещать вместе с базой данных.

Надеюсь, это поможет, С наилучшими пожеланиями, Том.

0 голосов
/ 25 февраля 2010

Мы использовали postgreSQL с использованием pg-компонентов Devart с большим успехом в приложениях баз данных среднего размера. Мы провели несколько сравнительных тестов с этой комбинацией и обнаружили, что она в 2-3 раза быстрее использования ADO и т. Д.

0 голосов
/ 15 февраля 2010

Я рекомендую DB2 . DB2 начиная с версии 9 поддерживает очень большие таблицы. Максимум чудовищно велик. 512000 петабайт , половина зетабайта.

0 голосов
/ 14 февраля 2010

PostgreSQL не встроен, но вы можете запустить его на своем локальном компьютере (в отдельном процессе). Он может хранить большие двоичные объекты в типе данных «bytea». С открытым исходным кодом и бесплатно.

PS Я думаю, что максимальный размер поля байтов может составлять 4 ГБ, потому что есть поле длиной четыре байта, но я не вижу этого явно в документации postgres.

0 голосов
/ 13 февраля 2010

Я использую Сервер базы данных Advantage

и имеет опцию локального сервера и очень прост в использовании. У меня около 12000 записей в основной таблице, около 70000 связанных таблиц списков, каждая из которых содержит изображение и аудиофайл (полная песня в формате mp3) и около 800 видеоклипов в базе данных.

все работает очень хорошо.

Вы должны дать тест.

С наилучшими пожеланиями.

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