Например, что происходит, когда пользовательская программа пытается получить доступ к файлу?Это зависит от того, как пользовательская программа обращается к файлу.Вызовы fopen / read / write предлагаются файловой системой, управляемой ОС.
Вызывается ли системный вызов, который затем обрабатывается ОС для поиска правильного файла и данных?Если используется база данных, она управляет собственным набором файлов данных и индексирует эти файлы данных.Ядро базы данных выполняет запросы ввода-вывода, которые обрабатываются базовой ОС.Кроме того, база данных, скорее всего, также будет выполнять кэширование, чтобы уменьшить количество операций ввода-вывода.
Или вызов обрабатывается СУБД, которая затем может более эффективно находить данные (кортеж / запись), например, с использованием дерева B +?И затем СУБД обращается к ОС для фактического получения данных?В зависимости от запроса к базе данных, данные могут быть прочитаны последовательно или доступны произвольно через поиск по индексу.
Доступ к базе данных возможен только при использовании языка программирования, такого как SQL?Если я просто напишу простую программу на C, которая записывает файл на диск, действительно ли данные хранятся в «базе данных» или просто в каком-то блоке на диске, где информация для файла хранится в inode для этого файла?Он хранится в файловой системе, которая может использовать блочный дизайн.Простая программа на C должна использовать SDK для подключения к базе данных, а затем вызывать операторы SQL.
Надеюсь, это поможет!