Приложения часто разделяются на «front-end» и «back-end»; часто это неформальное определение, но оно также может относиться к архитектуре «клиент / сервер» или «n-уровневой» архитектуре.
«Внешний интерфейс» - это обычно пользовательский интерфейс; «бэкэнд» - это все остальное.
Одной из ключевых задач «серверных» компонентов является хранение информации.
Есть много способов сделать это; если домен вашего приложения хорошо подходит для реляционных данных, обычно используют реляционную базу данных. Наиболее распространенной технологией для реляционных баз данных (rdbms) является SQL, который является стандартизированным языком для определения реляционных баз данных с помощью языка определения данных (DDL), а также для извлечения и изменения данных (DML).
Существует множество реализаций SQL, например, SQLite, MySQL, Postgres, Oracle, MS SQL Server. У каждой реализации есть свои сильные и слабые стороны; все они в какой-то степени соответствуют спецификации SQL, и многие имеют расширения, выходящие за рамки спецификации SQL, такие как хранимые процедуры, поддержка XML, поиск в произвольном тексте и т. д. Теоретически, существует возможность перехода между реализациями SQL (например, с Oracle на MS SQL). Server); на практике это обычно очень сложно. Насколько я знаю, не существует RDBMS, которая соответствует 100% стандарту; это, вероятно, было бы не очень полезно, потому что стандарт определяет язык, а не реализацию, а реализация делает базу данных полезной. Например, способ, которым база данных реализует индексы, оказывает огромное влияние на производительность.
T-SQL - проприетарный язык, изначально разработанный Sybase (MS SQL Server изначально был Sybase); он поддерживает такие вещи, как хранимые процедуры и т. д. Насколько я знаю, MS SQL Server является единственной платформой с поддержкой T-SQL.
В вашем подключении к базе данных указано несколько вещей:
- какой драйвер использовать для подключения к базе данных. Драйвер понимает, как подключаться через физическое оборудование (например, сеть) и как преобразовать ваши инструкции в то, что понимает сервер.
- местоположение сервера и какую конкретную базу данных использовать (один сервер может содержать несколько баз данных)
- учетные данные для аутентификации и авторизации.