Рассмотрим необходимость разработки легкого настольного приложения БД на платформах Microsoft.
Это можно сделать довольно легко с помощью MS Access, но я хотел бы иметь возможность распространять его среди других, и я не хочу платить за лицензию на выполнение.
Требования:
Соображения и кандидаты:
Вопрос: Какие недорогие или бесплатные альтернативы базам данных MS Access?
Смотрите также:Системы отчетности с открытым исходным кодом
@Schnapple
Брюсатк как бы понял то, о чем я думаю; это не столько движок БД, сколько мне нужны другие тонкости, которые Access привносит на вечеринку. Хороший конструктор форм, хороший механизм отчетов и т. д. Но вы поднимаете очень хороший вопрос об объеме установки. Я обдумывал это, но пока еще не принял твердого решения о том, как я буду поступать с этим. В любом случае это, вероятно, будет что-то довольно легкое, и небольшая занимаемая площадь для установки определенно будет плюсом.
@Remou,
Нет, я не знал, что среда выполнения MS Access 2007 бесплатна; Спасибо что подметил это. В прошлый раз, когда я потрудился изучить это (не помню, когда это было), я думаю, что это была довольно дорогая лицензия для среды выполнения, потому что я думаю, что они пытались продать ее корпоративным ИТ-отделам.
И спасибо всем, кто откликнулся; Я совершенно не подозревал о тех других вариантах, на которые вы все указали.
@ Патрик Онорез, изначально вопрос задал не pcampbell; Я сделал. Я только что преобразовал его в Community Wiki давным-давно, и pcampbell был последним, кто его редактировал. Я хотел что-то, что включало бы серверную часть, визуальный механизм запросов и отчетов. Backend прост - визуальный запрос и отчеты, которые я никогда не встречал, кроме Access.
Я не обнаружил, что Access нестабилен, пока у вас есть правильная JRE. Также можно попробовать Libre Office Base. Хотя вы можете импортировать таблицы из Access и хотя вы, вероятно, не ожидаете, что сможете запускать в нем VBA, вы также не можете импортировать формы. Кроме того, OOBase - вполне жизнеспособная БД (по крайней мере, для небольших баз данных с меньшими требованиями).

Здесь следует иметь в виду, что продукт MS Access - это гораздо больше, чем просто движок необработанной базы данных. Он предоставляет полную платформу разработки приложений, включая конструктор форм и меню, язык и среду клиентского приложения (VBA), а также дизайнер отчетов. Если взять все это вместе, у MS Access действительно нет равных.
Но в рамках этого вопроса нас интересует необработанный движок базы данных. С этим в мыслях:
SQLlite,
Жар-птица,
VistaDB (платно),
SQL Server Compact Edition (не экспресс)
а теперь SQL Server LocalDB
все приходит в голову.
Еще одна мысль: в то время как исходный вопрос действительно касается настольных баз данных, вполне вероятно, что некоторые люди попадут сюда в поисках базы данных для использования с веб-сайтом. Важно помнить, что это все базы данных в процессе, и поэтому они редко, если вообще когда-либо, подходят для использования в сети. Если вы хотите создать веб-сайт, где обычно требуется поддержка значительного одновременного доступа, вам обычно нужен механизм базы данных сервер, такой как MS SQL, Postgresql, MySQL, Oracle или их собратья. В то же время, эти механизмы сервер редко, если вообще когда-либо, подходят для однопользовательского настольного приложения.
... за исключением Firebird, который пересекает границу и может использоваться в любом сценарии. Тем не менее, хорошие моменты.
SQLite, мне это нравится.
Почему SQL Server Compact Edition, а не Express? Это просто из-за размера?
@Mark - Express Edition по-прежнему является базой данных серверного класса, а не внутрипроцессной базой данных, как другие. Прочтите вторую часть ответа, и все, что там говорится о серверных механизмах (включая последнее предложение), относится к Express Edition.
Хорошо, я не знал, что база данных Compact Edition находится в обработке. Спасибо что подметил это.
Также обратите внимание, что вы можете использовать MySQL Workbench, проверьте это ... mysql.com/products/workbench
@TheBumpster, который по-прежнему полагается на движок MySql Server, так что это не лучший выбор. Кроме того, я больше не считаю MySql современным движком БД. За последние 10 лет он не поспевает за другими вариантами, а теперь значительно отстает по ряду важных языковых функций.
Вы можете изучить SQLite (http://sqlite.org/). Однако все зависит от вашего использования. Например, параллелизм - не его главное достоинство. Но, например, Firefox использует его для хранения настроек и т. д.
Вы в курсе, что Доступ к среде выполнения 2007 можно скачать бесплатно?
Ссылки на более новые версии:
Я почти уверен, что лицензии среды выполнения Access 2003 не были бесплатными ... но да ... с Access 2007 вам не нужно платить за лицензии.
А как насчет Microsoft Visual Studio Express? http://www.microsoft.com/express/default.aspx SQL Server Express также находится по этой ссылке ...
для sqlite проверьте расширение firefox. Он предлагает удобный графический интерфейс.
Разве это не позволит вам управлять базой данных, а не создать «легкое настольное приложение»?
Верно, но я думаю, что спрашивающий просил базу данных, а не легкое настольное приложение. MSAccess неплохо справляется с этим, его сложнее заменить.
@Christopher Mahan: точно ли вы уловили идею из неоднократных утверждений исходного автора вопроса, который он спрашивает обо всем пакете (особенно о разработке интерфейса), что он «запрашивал базу данных, а не легкое настольное приложение»? Вопрос совершенно ясен: это весь пакет, поэтому любой ответ, касающийся только базы данных, совершенно неверен для вопроса.
@ Дэвид: Конечно, ты прав. Я построил много-много баз данных с доступом. Это была моя постоянная работа в 1997–1999 годах. Я помню, как создавал функцию модуля для автоматического повторного связывания таблиц на основе сетевого окружения.
Когда люди спрашивают о замене Access, многие из них думают только о базе данных, но на самом деле они спрашивают обо всех других функциях Access. Обычно им все равно, какую базу данных использует Access.
Некоторые из функций, предоставляемых Access: формы, построение запросов, отчеты, макросы, управление базами данных и какой-то язык, когда вам нужно выйти за рамки того, что предоставляют мастера.
SQLite, MySQL и FireBird - это бесплатные серверные части базы данных. В них нет встроенных дополнительных функций Access. Любые бесплатные альтернативы Access требуют от вас сочетания чего-то вроде SQLite и языка разработки.
Вероятно, лучшим бесплатным вариантом будет SQLite и Visual Basic 2008 или C# 2008 Express Edition. Это будет иметь сильную зависимость от времени выполнения, поэтому установка на голом клиенте может занять довольно много установщика.
На самом деле нет бесплатного варианта без доступа с минимальными требованиями к времени выполнения. Я бы хотел, чтобы это было.
Мне будет интересно услышать, знает ли кто-нибудь какие-нибудь хорошие альтернативы.
да ... люди не осознают мощь доступа как интегрированной среды разработки, как вы подчеркнули ... нет ничего бесплатного, что можно сравнить с доступом Microsoft даже с большинством (не говоря уже обо всех) встроенных функций. когда у вас есть доступ ... вы можете делать многие вещи за доли времени, которые требуются для достижения другими способами ... 100% согласны с вашим ответом @bruceatk
В контексте форума по программированию мы обычно не думаем, что программисту также нужна прикладная часть базы данных. Обычно программист хочет использовать свою собственную среду разработки для бизнес-логики и внешнего интерфейса и просто использовать возможности хранения, запроса, извлечения и обработки данных в базе данных.
Если вы действительно хотите всего этого, то вы говорите о гораздо более крупной и сложной среде выполнения. Вы больше не найдете ничего «легкого». Даже сам MS Access больше не подходит, потому что он вряд ли легкий. Просто повезло в том, что у многих пользователей он уже может быть, что делает его появляться легким.
Это не значит, что вы ничего не найдете. Просто он вряд ли будет иметь такой же уровень зрелости или распространения, как Access, тем более, что базовый механизм доступа уже встроен в Windows.
VistaDB имеет бесплатную экспресс-версию, синтаксис и драйвер которой совместим с SQL Server. VistaDB - это отдельный файл, и для работы в вашем проекте asp.net или winforms требуется только драйвер .dll.
Поскольку он совместим с синтаксисом и источниками данных, при необходимости вы можете обновить его до SQL Server.
со своего сайта:
VistaDB is a fully managed and typesafe ASP.NET and WinForms applications using C#, VB.NET and other CLR-compliant languages.
Вы имеете в виду концепцию бесплатной базы данных для распространения с приложением или базу данных типа Access «один файл, без установки»?
Например, для таких вещей, как SQL Server Express Edition, требуются такие вещи, как установка среды выполнения, создание и подключение баз данных, записи в меню запуска людей, которые они не узнают (моя жена спросила, почему на днях SQL Server был на ее ноутбуке) тогда как базу данных Access можно запустить в одном файле.
Я предполагаю, что я спрашиваю, хотите ли вы думать о базе данных как о документе, в который вы пишете, или как о экземпляре чего-то на чужой машине?
Я думаю, что в базе данных, включенной в OpenOffice.org, есть конструктор форм. Хотя я никогда не пробовал писать для него код. В сообщении на форуме, которое я видел, была ссылка на учебник, в котором, по их словам, был какой-то код.
Я начал настраивать базу данных для своей жены, и, насколько я мог судить, интерфейс выходил довольно неплохо.
Я бы хотел использовать вещи, включенные в OO.0, но в последний раз, когда я их проверял, они были слишком примитивными для использования.
Шнапл спрашивает:
Are you referring to the concept of a free database to distribute with an application, or an Access-like "single file, no installation" database?
Э-э, никто, кто имеет хоть какую-то компетенцию в разработке приложений Access, никогда не будет распространять один MDB / ACCDB в качестве хранилища приложений / данных. Любое нетривиальное приложение Access необходимо разделить на интерфейс с формами / запросами / отчетами (т.е. объекты пользовательского интерфейса) и серверную часть (только таблицы данных).
Понятно, что здесь нужен инструмент для разработки приложений базы данных, такой как Access. Ни один из ответов только для базы данных никоим образом не отвечает на это.
Пожалуйста, узнайте о Access, прежде чем отвечать на вопросы о Access:
Access - это приложение для базы данных инструмент разработки, который поставляется с ядро базы данных по умолчанию называется Jet.
Но приложение Access может быть создан для работы с данными почти в любая серверная база данных, пока есть ISAM, ODBC или OLEDB драйвер для этого ядра базы данных.
Сама Microsoft хорошо постаралась скрыть разницу между Access (средство разработки) и Jet (ядро базы данных), поэтому неудивительно, что многие люди не осознают разницу. Но разработчики должны использовать точный язык, и когда вы имеете в виду ядро базы данных, используйте Jet, а когда вы имеете в виду интерфейсную платформу разработки, используйте Access.
Технически, Дэвид, в Access 2007 и более поздних версиях файлов он использует версию Jet для Office, которая называется Access Connectivity Engine (ACE).
Проверьте Suneido.
Несколько лет назад я сделал довольно сложное приложение ГИС в качестве эксперимента с ним (база данных, сложный графический интерфейс, отчеты, клиент / сервер). Это был приятный опыт (не считая некоторых проблем с документацией ...), и я очень быстро освоил его.
Я больше не использую его в основном потому, что:
Лицензия времени выполнения Access никогда не была такой дорогой - стоимость инструментов / расширений разработчика составляла около 300 долларов, насколько я помню (это было бы еще до Access 2 Developers Toolkit, или ADT), но это дает вам возможность распространять ваше приложение со средой выполнения среди неограниченного числа пользователей. Пока ваше приложение среды выполнения использовалось тремя или более пользователями, вы бы экономили деньги (при условии, что установка полной копии Access будет стоить 100 долларов США на пользователя).
Среда выполнения для Access 2007 полностью бесплатна, но на самом деле стоимость до этого была не такой уж большой.
Марк Гравелл добавил (на мой взгляд, в том, что должно было быть комментарием):
Тем не менее, быть свободным - это, безусловно, воодушевление для людей, которые хотят попробовать, а цена в 300 долларов действительно обескуражила бы.
А как насчет r: Base? Давным-давно r: Base была очень надежной DOS (затем Windows) RDMBS, и это были дни до Access / до Paradox. Его ближайшим конкурентом был dBase, но в то время он не был полностью реляционным. Я разработал несколько очень хороших приложений r: Base И, как и Access сегодня, имел встроенный генератор отчетов, средства форм, запросов и манипуляции с таблицами ... К моему удивлению, он все еще жив! http://www.rbase.com/ Кажется, у него есть все, что предлагает доступ. Возможно, вам стоит подумать.
Вау, я подумал, что r: Base тоже пропало. Хорошая ссылка Оптимально.
@SmartMethod, есть ли у вас скрытый инструмент от RBase (* .rbf) до какой-то другой БД, например Access или MSSQL?
@Admiral Land - не в недавнем прошлом, нет. Прошло довольно много времени. Последнее, что я сделал, это r: Base to MS SQL Server еще в начале 2010 года для клиента.
@SmartMethod, я решил свою проблему, спасибо!
Oracle XE с Application Express.
Кекси 2007.1.1 может быть тем, что вы ищете.
Его экспресс-версия бесплатна, но размер БД ограничен. Полная версия стоила 72 доллара.
Описание с его домашней страницы: Kexi - это простое в использовании приложение для визуального проектирования баз данных для Linux и MS Windows. Kexi конкурирует с MS Access, FoxPro, Oracle Forms и FileMaker.
Посетите http://www.kexi-project.org/about.html для подробностей.
Из альтернатив бесплатного программного обеспечения они еще не упоминались:
Я также буду следить за тем, какие инструменты DB RAD предлагает сообщество Flex / Air, поскольку с помощью этих инструментов можно получить унифицированные настольные и веб-интерфейсы.
Рекалл кажется мертвым, а Глом - незрелым и еще мало использованным. Я бы полностью пропустил парадигму клиент-сервер и выбрал что-нибудь Web 2.0, например WaveMaker.
Похоже, что Glom не обновлялся с 2012 года, поэтому, вероятно, на данный момент мертв.
Apache Derby - прекрасная альтернатива базам данных.
Спасибо за указатель. Если кому нужна ссылка: db.apache.org/derby
VistaDB - единственная альтернатива, если вы собираетесь запускать свой веб-сайт на виртуальном хостинге (почти все они не позволяют запускать ваши веб-сайты в режиме полного доверия), а также если вам нужен простой веб-сайт с возможностью развертывания x-copy.
Вы упомянули Python, думали ли вы о Дабо?
Это позволило бы избежать кропотливой работы в пользовательском приложении.
Если честно - бесплатных альтернатив MS Access нет. По крайней мере, если вы имеете в виду инструмент разработки баз данных (формы, отчеты, запросы, поддержку VBA и т. д.). Если вы думаете о MS Access как о движке базы данных (на самом деле вы имеете в виду MS Jet или ACE), тогда да - у вас есть много возможностей. Существует множество бесплатных движков баз данных, наиболее популярными из которых являются MySQL и PostgreSQL. Я могу порекомендовать оба варианта - все зависит от того, чем вы хотите заниматься.
C++ - один из худших вариантов для написания внешних интерфейсов баз данных. Вам следует рассмотреть MS Visual C#, MS Visual Basic .NET или ... Даже Java / Swing (если мы говорим о настольном приложении). Если вы думаете о веб-интерфейсе - рассмотрите PHP (с MySQL или PostgreSQL на сервере) или ASP.NET (с сервером MSSQL на сервере).
Я настоятельно рекомендую вам не использовать C++ для такой работы. Этот язык очень эффективен и гибок, но продвинутая разработка интерфейса базы данных на C++ - не лучшая идея. C++ отлично подходит для системного программирования, разработки игр, математического и физического моделирования везде, где эффективность является ключевым фактором - например, приложений реального времени и т. д. Фронтенды не обязательно должны быть демонами скорости - они должны хорошо выглядеть и иметь продвинутого конечного пользователя функции (например, сортировка, раскраска и т. д.). Если вы ищете бесплатные инструменты - возможно, C# Express или Visual Basic.NET Express 2008 будут правильным выбором? Или, может быть, Java / Swing (проверьте IDE NetBeans)? Может, SharpDevelop? Но не C++ ... Оставьте C++ для того, что ему больше всего подходит.
Проблема заключается в поиске альтернативы MS Access, которая включает в себя визуальную среду разработки с перетаскиванием и «разумной» базой данных, в которой весь комплект и набор могут быть развернуты бесплатно.
Моим первым предложением было бы взглянуть на этот очень полный список альтернатив MS Access (многие из которых бесплатны), а затем взглянуть на этот список инструментов разработки баз данных с открытым исходным кодом на osalt.com.
Мое второе предложение - попробовать WaveMaker, который является своего рода PowerBuilder с открытым исходным кодом для облака (отказ от ответственности: я работаю там, поэтому не должен рассматриваться как беспристрастный источник информации ;-)
WaveMaker сочетает в себе IDE с перетаскиванием и внутреннюю часть Java с открытым исходным кодом. Он под лицензией Apache и может похвастаться сообществом разработчиков, насчитывающим 15 000 человек.
Я считаю, что оценки по указанному URL-адресу весьма благотворительны по сравнению с альтернативами Access. Ни один из них на самом деле и близко не подходит к воспроизведению набора функций Access. Это не означает, что они являются отличным выбором для любого количества проектов, просто они не могут заменить все, что делает Access. Единственная известная мне платформа, которая подходит близко, - это FileMaker, который сравнительно слаб с точки зрения написания сценариев и передачи данных.
Хорошая ссылка @C Keene. Спасибо, что поделились этим.
Я согласен с вами, @David Fenton - MS Access - очень зрелый и полнофункциональный продукт. Если вам нужно что-то, что делает все MS Access, тогда MS Access - единственный продукт, отвечающий вашим требованиям. «Правильный ответ» сводится к тому, на какие конкретные компромиссы вы готовы пойти (например, ограниченные сценарии или отчеты) и какие другие преимущества вы получаете от новой платформы (например, с открытым исходным кодом, на основе Java и т. д.)
У меня такая же проблема с тобой. У меня было приложение доступа к MS, но я хотел перейти к веб-приложению, доступному для всех и не платя MS денег. Поэтому я решил использовать MySql и Wavemaker (с открытым исходным кодом), чтобы получить объем ... Я очень рад этому решению. и вот результат http://www.mara-database.org/
Не думаю, что вы отвечаете на заданный вопрос.
Также ознакомьтесь с http://www.sagekey.com/installation_access.aspx, чтобы найти отличные сценарии установки для Ms Access. Также, если вам нужно интегрировать изображения в свое приложение, посетите DBPix на ammara.com.
Во многом в соответствии с ответом Аурелио теперь я работаю в Ruby on Rails над некоторыми приложениями, которые я мог раньше делать в MS Access. Внутренняя база данных для приложения Rails. обычно MySql (работает достаточно хорошо и доступен на большинстве общих веб-хостингов) или PostgreSQL (лучший выбор, когда это возможно).
Рад тебя видеть, Стив! Не слышал уже много лет, и надеюсь, у вас все хорошо ... Я хотел бы услышать больше о вашем опыте работы с Ruby on Rails. Я посмотрел на него, и он выглядит как слишком большое обязательство для слишком громоздкого проекта (с моей точки зрения, он выглядит как большая библиотека и, таким образом, обеспечивает свою собственную логику - не буквально, а метафорически).
Успех - дело относительное - я скоро расскажу об этом по другим каналам. Лично я люблю Rails уже много лет, но я бы никогда не стал утверждать, что он подходит всем. является - серьезное обязательство, но язык Ruby очень мощный и выразительный, и его приятно изучать, IMO. Rails - это «самоуверенный» фреймворк, включающий в себя большой набор библиотек по умолчанию, однако многие из библиотек являются необязательными и заменяемыми, поэтому он менее строг, чем может показаться на первый взгляд. Сообщество Rails также действительно велико, что, очевидно, имеет большое значение.
Кажется, вы ищете не просто программу базы данных, а базу данных с формами, отчетами и т. д. (В основном своего рода IDE). Я бы рекомендовал попробовать OpenOffice.org Base, который поставляется с офисным пакетом. Это бесплатно и с открытым исходным кодом. Он далеко не так совершенен, как доступ, но делает примерно то же самое.
Кроме того, если вы знаете доступ, он будет хотя бы отчасти знаком.
Обновлено: Извините, не удалось прочитать, что вы рассматриваете OpenOffice.org. Что касается стабильности, у меня он вылетал и делал некоторые "странные" вещи, когда играл с ним, но Access сделал то же самое. Лучший способ узнать это - немного поиграть с ним и посмотреть, подходит ли он вам.
NuBuilder (www.nubuilder.net) может быть прав.
NuBuilder - это веб-приложение PHP под лицензией GPLv3, которому в качестве серверной базы данных требуется MySQL. Пользователи и программисты используют веб-интерфейс.
Они продвигают его как бесплатную альтернативу MS Access в Интернете. Сейчас я создаю свое второе приложение NuBuilder. NuBuilder, похоже, очень активно развивается, и я нашел его стабильным и хорошо задокументированным (при условии, что вы можете выдержать видеоуроки).
Все решения, предложенные в выбранном ответе, касаются серверной части (самой db). Распространение базы данных по самолетам никогда не требовало никаких затрат! Таким образом, этот вопрос немного сбивает с толку, если pcampbell ищет интерфейсную часть, серверную часть или и то, и другое.