Какую базу данных выбрать java

Какую базу данных лучше всего использовать с Java-программой?

Я пытался получить Java-программу для подключения к MS SQL Server, и я начинаю задаваться вопросом, будет ли MySQL лучшим выбором для моего (обучающего) проекта. Учебники Sun относятся к Java DB, но я никогда не слышал об этом ни в каком другом контексте, так что это не самая полезная база данных, о которой можно узнать. Я ценю любое понимание наиболее естественного способа подключения Java к обычно используемой базе данных.

11 ответов

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

Возможно, вы могли бы описать проблемы, с которыми вы столкнулись при подключении к MS SQL. Конечно, это возможно, поэтому, вероятно, что-то маленькое, что у вас есть или не было сделано это, препятствуя работе соединения. Существует много серверов баз данных с открытым исходным кодом с драйверами JDBC. Один из них, который вы можете рассмотреть, — HSQLDB, который имеет полностью встроенный режим, поэтому вам даже не нужно думать о настройке сервера, Вероятно, это отличный способ изучить основы SQL.

Помимо HSQLDB, H2 ( h2database.com ) также может быть хорошим выбором для изучения программирования баз данных. Лично я предпочитаю H2 HSQLDB из-за его хорошего веб-интерфейса и лучшей изоляции транзакций.

Java DB — это Apache Derby, переименованный и включенный в JDK. Это нормально, и его гораздо проще установить, чем изначально запущенных баз данных.

Очень важно использовать хороший драйвер для базы данных! Это может решить все проблемы с подключением.

Также обратите внимание, что если вы переключаете базу данных, вам, скорее всего, также потребуется изменить свой SQL, если вы не используете такой слой, как Hibernate или JPA.

Дерби, вероятно, не очень хорошая СУБД для обучения. Это мучительно медленно, и в области SQL не хватает. Последнее, что я использовал (6 месяцев назад), это включало оператор DML «MERGE» / «INSERT . ON DUPLICATE KEY» и параметры LIMIT / OFFSET для запросов. Среди многих других недостающих функций.

Я был бы признателен за ссылки на хорошие страницы, описывающие «мучительно медленную» часть. LIMIT / OFFSET зависят от базы данных, поэтому это, вероятно, называется чем-то другим.

Вы можете попробовать PostgreSQL или MySQL

Но MySQL не поддерживает многие функции, как в SQL, такие как проверка ограничений и многое другое . Есть ли SQL, кроме Microsoft SQL для использования в Java

Я рекомендую MySQL или Oracle. Из Oracle вы также можете получить бесплатную базу данных, однако размер базы данных ограничен.

Читайте также:  Html примеры страниц новостей

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

Самый простой способ подключения к внешней реляционной базе данных (в отличие от базы данных памяти, такой как berkeley db), — через JDBC. Вы должны ознакомиться с JDBC, прежде чем переходить к другим методам хранения. Для большинства проектов вы будете хорошо использовать mysql или postgresql. Не беспокойтесь о том, чтобы принять решение об одном над другим, для небольших проектов различия не так важны. Пока вы используете jdbc, вы можете переключаться между двумя позже, если вам действительно нужно.

Чтобы начать работу, я буду загружать mysql и следовать руководству jdbc на сайте sun http://java.sun.com/docs/books/tutorial/jdbc/index.html).

На более позднем этапе вы можете решить, что вам нужно использовать инструмент объектно-реляционного сопоставления, например, спящий режим, но теперь я бы не стал беспокоиться об этом, просто ознакомьтесь с jdbc и mysql или postgresql.

Источник

Популярные базы данных (СУБД)

Oracle — это не самая популярная база данных, но зато самая известная. Хотя можно утверждать, что и самая популярная. Смотря как считать. Если просто смотреть на количество компаний, то СУБД MySQL — самая популярная: она довольно хороша и полностью бесплатна 🙂

Но ведь можно считать и по-другому. Если есть одна компания с миллионом клиентов , которая использует Oracle, и 5 компанией с сотней клиентов , которые используют MySQL, то получается, что Oracle обслуживает миллион клиентов, а MySQL – только 500 человек.

В общем, если взять крупные компании, у которых есть деньги, и смотреть, какую СУБД они выбирают, то где-то треть всех компаний в мире сидят на Oracle. Как-то так.

У тебя как у программиста больше шансов работать в будущем на СУБД Oracle, чем на MySQL. В интернете есть отличное видео, которое демонстрирует, как менялась популярность СУБД за последние 20 лет.

MySQL

Вторая по популярности среди всех СУБД – это MySQL. И она первая по популярности среди всех бесплатных СУБД. Теперь ты понимаешь, почему мы учим SQL именно на ее примере. Хайп хайпом, а бизнес довольно консервативен в выборе инфраструктуры.

В принципе про MySQL мы уже говорили. Когда-то их купила компания Sun, затем — Oracle. Которую ну очень сложно назвать корпорацией добра.

Именно они после приобретения Sun все время пытаются сделать Java платной.

Да, компания Sun владела и Java, и MySQL перед тем, как их купила Oracle.

Этот факт и репутация Oracle немного напугала разработчиков MySQL, которые решили сделать fork проекта MySQL и назвали его MariaDB.

Читайте также:  Python lib local path

MariaDB – это фактически клон MySQL с некоторыми особенностями реализации, которые позволяют обойти нюансы закрытие патентами и лицензиями.

Однако в компании Oracle тоже не дураки сидят. Дабы клиенты и разработчики не утекли на MariaDB, компания Oracle продолжает финансировать развитие и разработку MySQL, который продолжает оставаться бесплатным.

И чтобы усидеть на двух стульях, для корпоративных клиентов был выпущен платный MySQL Enterprise, который ничем не отличается от MySQL Community Edition, но чьи лицензии лучше подходят для бизнеса.

PostgreSQL

Еще одна интересная СУБД – это PostgreSQL (читается как «поустгрес-кью-эль»).

Это еще одна бесплатная СУБД, которая очень быстро набирает популярность последние годы. Хотя до MySQL ей еще далеко.

PostgreSQL в первую очередь ориентирована на распределенную работу. Ее сильными сторонами считаются:

  • Высокопроизводительные и надёжные механизмы транзакций и репликации
  • Расширяемая система встроенных языков программирования: PL SQL, PL JS, PL Python, …
  • Наследование таблиц
  • Возможность индексирования геометрических (в частности, географических) объектов
  • Встроенная поддержка слабоструктурированных данных в формате JSON с возможностью их индексации
  • Расширяемость (возможность создавать новые типы данных, типы индексов, языки программирования, модули расширения, подключать любые внешние источники данных)

А знаешь, почему она так называется? Дело было так…

Где-то 50 лет назад, в начале 70-х годов в университете Беркли начали разрабатывать свою реляционную СУБД и назвали ее Ingres.

В начале 80-х из проекта вышел профессор Майкл Стоунбрейкер, который решил написать свою собственную СУБД с блэк-джеком и куртизанками. Он и его студенты начали писать свою СУБД, которую назвали просто Post Ingres, что в будущем сократили до Postgres.

А так как название Postgres ни о чем никому не говорило, в него было решено добавить суффикс SQL. Вот так и получился PostgresSQL, который тут же потерял двойную S, и стал писаться как PostgreSQL. Но произносишь название, нужно читать его как PostgresQL.

NoSQL

Если ты интересуешься базами данных, то точно слышал о NoSQL базах данных. Спешу тебя расстроить: NoSQL – это чисто маркетинговое название, и SQL там есть. Он просто урезанный.

На что это похоже? Вот представь хорошую веб-страницу, написанную на HTML, CSS и JavaScript. которую открыли на браузере 1995 года. Там работает от силы 10% от CSS и вообще не поддерживается JavaScript. И этот новый урезанный стандарт назвали… NoHtml.

Например, в NoSQL могут не поддерживаться JOIN-ы между таблицами, и тогда приходится или эмулировать это на уровне Java-кода в программе, или хранить все данные связанных таблиц в одной огромной таблице.

И если в случае с NoHtml мы как будто откатились на 20 лет назад, то в случае с NoSQL откат происходит где-то лет на 40.

Возьмем, например, NoSQL базу данных Cassandra, которую использует Facebook для хранения данных миллиардов пользователей. Собственно, они ее и разработали и потом выложили как OpenSource проект.

Читайте также:  Тег META, атрибут charset

Начнем с самого интересного – весь код СУБД написан на Java. Код на C++ скорее всего работал бы быстрее, но там было бы больше ошибок. А код на Java проще поддерживать и развивать.

Общий формат запросов к СУБД Casandra выглядит очень знакомо:

 SELECT колонки FROM таблица WHERE условие GROUP BY колонки ORDER BY сортировка LIMIT количество 

Как видишь, SQL тут есть. А знаешь, чего тут не хватает? Оператора JOIN! Можно выбирать данные только из одной таблицы 🙂

Вот вам цитата из официальной документации:

You cannot perform joins in Cassandra . If you have designed a data model and find that you need something like a join, you’ll have to either do the work on the client side , or create a denormalized second table that represents the join results for you.

Источник

Какую базу данных выбрать для типичного тестового задания на вакансию java разработчика?

Имеется типичное тестовое задания на вакансию java разработчика. Сделать Web-приложение для информационной системы, работающей с базой данных. Готовый проект будет выложен на github и работодателю будет отправлена ссылка на проект.

Насколько я знаю есть 2 вида бд: 1) бд требующие установку и настройку, которые работают как сервер (oracle, mysql, postgresql) и 2) встраиваемые (sqlite, hsqldb) которые хранятся в отдельном файле или нескольких файлах. Для того чтобы проверяющий смог скачать из github проект и сразу запустить, единственный вариант это использовать встраиваемую базу данных. Но вот в тестовом задании от последнего работодателя содержатся следующие слова: (Необходимо использовать одну из БД на выбор: MySQL, PostgreSQL, Oracle). Но на компе где проверяющий будет запускать задание нет такой же базы данных с такими же таблицами как у меня. В общем думаю знающие люди меня поняли. Как по мне
единственный вариант это использовать в проекте встраиваемую бд.

Хотел бы у вас поинтересоваться как бы вы решили данную проблему?

morihaos

Привет,
Если проверяющий оговаривает такие конкретности, как MySQL и т.п. базы, значит он понимает, что для проверки вашей работы, как разработчика, он сам должен обеспечить наличие БД у себя на своих серверах или рабстанциях. Ваше дело — создать приложение и мануал по которому проверяющий может развернуть все необходимое ваше и необходимое сторонее у себя и запустить весь комплект для проверки.

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

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

Источник

Оцените статью