Разница между базами данных MySQL / SQLite / etc? - PullRequest
9 голосов
/ 12 января 2012

Я впервые пытаюсь работать с базой данных, поэтому терпите меня.

Мне нужно написать программу, которая будет использовать базу данных, к которой у меня пока нет доступа.Я знаю, что есть MySQL, SQLite и куча других вещей SQL, но я не уверен, в чем разница между ними.Нужно ли мне знать, что это за база данных, прежде чем я смогу ее использовать (т.е. отличается ли файл .db MySQL от файла .db SQLite?) Или сам файл будет таким же, и разница в томк нему обращаются?

РЕДАКТИРОВАТЬ: Я программирую для планшета Android, это, вероятно, имеет значение.Но я не буду создавать базу данных, она будет предоставлена ​​мне, и мне придется работать с ней.

Ответы [ 4 ]

8 голосов
/ 12 января 2012

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

Доступ к каждому из них включает адаптеры, несмотря на создание необходимых вам таблиц, доступ пользователя (имя пользователя / пароль / роль для доступа к таблице).

Вот прямое руководство по sqlite: http://zetcode.com/db/sqlite/

Вот простой учебник по sql: http://zetcode.com/databases/mysqlphptutorial/

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

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

EDIT:

Если вы работаете на Android, то учите SQLite.

Я очень рекомендую этот учебник, чтобы помочь вам увидеть SQLite, используемый в проекте Android: http://developer.android.com/resources/tutorials/notepad/index.html

Для абстракции данных / ORM вы должны ознакомиться с поставщиками контента и курсорами (http://developer.android.com/guide/topics/providers/content-providers.html)

Хороший запрос!

4 голосов
/ 12 января 2012

Прежде всего, вам нужно знать, какая это база данных, прежде чем вы сможете подключиться к ней, так как вам нужно будет использовать соответствующий драйвер базы данных для вашей платформы. mySQL, Oracle, Postgres, SQL Server и т. д. будут использовать разные драйверы, поскольку двоичный протокол, используемый для связи с ними (аутентификация и передача информации туда и обратно), отличается.

Что касается вашего реального кода SQL, это зависит. По большей части вы можете рассчитывать на SELECT * FROM Foo работу с любой SQL-совместимой базой данных на планете. Однако, как только вы начнете делать что-то более сложное или использовать нестандартные ключевые слова, у вас могут возникнуть проблемы. Например, некоторые базы данных поддерживают ключевое слово USING для JOIN s, а некоторые нет.

Одна вещь, на которую вы можете обратить внимание, это ORM . Это позволит вам абстрагировать фактический диалект SQL от вашей программы, и тогда (по большей части) не придется беспокоиться о реальном SQL. Некоторые популярные ORM - это ActiveRecord (для Ruby on Rails) и Entity Framework для .NET. Надеюсь, это поможет!

UPDATE:

Поскольку к сообщению был добавлен тег Android, я быстро выполнил поиск ORM SqlLite, поддерживающих Android, и нашел this . Может быть, стоит проверить, или кто-то может прокомментировать, хорошо ли это:)

3 голосов
/ 12 января 2012

Уровень абстракции базы данных - это стратегия, предусматривающая наличие умного посредника, поэтому вы можете программировать, не зная точно, какая у вас система баз данных.Абстракция базы данных не так утопична на практике, как кажется, и большинство людей заканчивают программировать непосредственно для конкретной базы данных.Скорее всего, вы обнаружите, что чем больше опыта вы получаете с выбранной базой данных, тем больше вы хотите, чтобы вы лучше знали ее специфические нюансы.Таким образом, короткий ответ - достаточно разницы, чтобы иметь значение!

Если вы используете программный архитектурный шаблон, такой как Model-View-Controller, он может позволить вам выполнять большую часть ваших программ независимо от используемой базы данных.Взяв Model-View-Controller в качестве примера, вы можете программировать свои Controllers и ваши Views, не зная, какую базу данных вы используете.

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

Если бы я не знал, какая база данных будет использоваться, я бы начал программировать свой View, а затем мой Controller.Если PHP является вашим языком, вы можете найти учебное пособие по CodeIgniter.

2 голосов
/ 12 июня 2015

Статья о «Соответствующем использовании для SQLite»

http://www.sqlite.org/whentouse.html

Сводка : Контрольный список для выбора правильного ядра базы данныхданные отделены от приложения сетью?→ выберите клиент / сервер

Много писателей одновременно?→ выберите клиент / сервер Большие данные?→ выберите клиент / сервер В противном случае → выберите SQLite!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...