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