Я не совсем уверен, что stackoverflow - это место для такого общего вопроса, но дайте ему попробовать.
Будучи подверженным необходимости хранить данные приложения где-то, я всегда использовал MySQL или sqlite, только потому, что это всегда делалось так. Поскольку кажется, что весь мир использует эти базы данных (прежде всего программные продукты, фреймворки и т.д.), Начинающему разработчику, как я, довольно сложно начать думать о том, является ли это хорошим решением или нет.
Хорошо, скажем, в нашем приложении есть объектно-ориентированная логика, и объекты каким-то образом связаны друг с другом. Нам нужно сопоставить эту логику с логикой хранения, поэтому необходимы отношения между объектами базы данных. Это приводит нас к использованию реляционной базы данных, и я в порядке с этим - чтобы это было просто, наши строки таблицы базы данных иногда должны иметь ссылки на строки других таблиц. Но зачем использовать язык SQL для взаимодействия с такой базой данных?
SQL-запрос - это текстовое сообщение. Я могу понять, что это здорово для понимания того, что он делает, но не глупо использовать текстовую таблицу и имена столбцов для части приложения, которую никто не видел после развертывания? Если вам пришлось писать хранилище данных с нуля, вы бы никогда не использовали этот вид решения. Лично я бы использовал некоторый байт-код "скомпилированного db-запроса", который будет собран один раз внутри клиентского приложения и передан в базу данных. И он наверняка назвал бы таблицы и двоеточия номерами id, а не ascii-строками. В случае изменений в структуре таблицы эти байтовые запросы могут быть перекомпилированы в соответствии с новой схемой db, хранящейся в XML или что-то в этом роде.
В чем проблемы моей идеи? Есть ли какая-то причина для того, чтобы я не писал ее сам и вместо этого использовал базу данных SQL?
ИЗМЕНИТЬ Чтобы сделать мой вопрос более ясным. Большинство ответов утверждают, что SQL, являющийся текстовым запросом, помогает разработчикам лучше понять сам запрос и отладить его легче. Лично я не видел, чтобы люди писали SQL-запросы вручную. Все, кого я знаю, включая меня, используют ORM. Эта ситуация, в которой мы создаем новый уровень абстракции, чтобы скрыть SQL, приводит к мысли, если нам нужен SQL или нет. Я был бы очень благодарен, если бы вы могли привести примеры, в которых SQL используется без ORM специально и почему.
EDIT2 SQL - это интерфейс между человеком и базой данных. Вопрос в том, почему мы должны использовать его для взаимодействия приложений и баз данных? Я все еще прошу примеры людей, которые пишут/отлаживают SQL.