Являются ли пакеты реляционных баз данных и их соответствующие производные от SQL IDE SDK или просто реализациями структур Collection? - PullRequest
0 голосов
/ 15 октября 2011

Этот вопрос чисто из соображений любопытства.

где СУБД, такие как Oracle и сервер SQL, находятся в иерархии «языков программирования»?

Я полагаю, что было бы возможно запрограммировать приложение с использованием (например) классов коллекции c #, которые бы действовали аналогично СУБД.

Но так ли работают СУБД или они напрямую обращаются к системным ресурсам так же, как это делают языки программирования более высокого уровня?

Редактировать Или, проще говоря, Oracle более эквивалентен .net или Microsoft Office?

Ответы [ 2 ]

1 голос
/ 16 октября 2011

Типичная клиент-серверная СУБД - это не просто один язык, а комбинация нескольких языков и технологий, которые работают вместе, включая (но не ограничиваясь):

  • Сервер:
    • Физическое хранилище - обычно файлы ОС или даже необработанные разделы, поверх которых находятся процессы и потоки СУБД.
    • Модель данных - таблицы, индексы, ограничения и т. Д.
    • Язык описания модели данных - обычно SQL Data Definition Language (DDL).
    • Язык запросов - обычно SQL языка управления данными (DML).
    • Процедурные расширения SQL для написания триггеров и хранимых процедур, таких как PL / SQL в Oracle или Transact-SQL в MS SQL Server.
    • Управляемый язык, такой как Java или C #, который выполняется «внутри» СУБД, а также может использоваться для реализации триггеров и хранимых процедур.
  • Клиент:
    • Различные инструменты администрирования, обычно как из командной строки, так и с графическим интерфейсом.
    • Драйверы и API, обеспечивающие доступ к базе данных на языках общего назначения. Это включает независимые от СУБД API, такие как ODBC, OLEDB, ADO.NET, JDBC, BDE и т. Д., А также специфичные для СУБД API, такие как Oracle OCI.
    • Вдобавок ко всему, в которых находятся клиентские приложения, которые фактически реализуют некоторые полезные функции, написанные на этих языках общего назначения. Есть все виды клиентов, от «классических» до многоуровневых, но это уже другая тема ...

Существуют также гораздо более простые «встроенные» СУБД, предназначенные для использования в качестве локального «частного» хранилища для конкретного приложения, а не в клиент-серверной среде.

Большинство СУБД являются «реляционными», но существуют также системы «объектно-ориентированного» и «без SQL» / «хранилища ключей-значений» и все их гибриды.

Итак, не могли бы вы реализовать СУБД на «нормальном» языке, таком как Java или C #?

Теоретически да. Практически нет!

Предоставление клиентам доступа к данным одновременно, безопасно и быстро - сложная проблема, которую решают СУБД. Просмотр базы данных в виде набора таблиц обманчиво прост - существует масса сложности, которая позволяет СУБД поддерживать эту иллюзию (относительной) простоты.

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

0 голосов
/ 16 октября 2011

SQL - язык структурированных запросов - это действительно язык, используемый для управления данными в управляемой системе реляционной базы данных. SQL Server, Oracle и Access - это системы управления реляционными базами данных, которые используют язык структурированных запросов для программного доступа и обновления данных / вставки данных.

Итак, чтобы ответить на ваш вопрос «где СУБД, такие как Oracle и сервер SQL, основаны на иерархии« языков программирования »?», СУБД - это не языки программирования, а системы управления реляционными базами данных, но SQL - это язык. Эти системы СУБД, вероятно, будут хранить данные и управлять ими высоко оптимизированным и закрытым способом, но все они предоставляют общий интерфейсный -SQL в этом случае в качестве метода доступа.

СУБД - это программное обеспечение, SQL - это язык. Я думаю, что вы, возможно, путаете их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...