Организация данных и структуры данных
Метод обменной сортировки с выбором Метод турнирной сортировки Методом квадратичной сортировки Метод вставки Методы Замещения Слияние рассортированных подфайлов Осциллирующей сортировки Многофазная сортировка Сравнение методов внешней сортировки Генераторы программ сортировки слияния Информация и ее представление в вычислительных машинах Ассоциативная структура Последовательная структура Связанный список Простые операции над списками Иерархические структуры Древовидная структура Линейное представление древовидной структуры Преобразование арифметических выражений в списковые структуры Сетевая структура Системы управления базами данных Инвертированные файлы Пример инвертированного файла Поиск по нескольким ключам Элементы системы управления базой данных Работа системы управления базой данных Роль администратора базы данных Определения Организация в записи Компоненты записи Блоки Форматы блоков и записей Организация и методы доступа Последовательная организация Метод доступа с очередями Библиотечная организация Оглавление тома Метки оглавления тома Метки тома магнитной ленты Прямая организация Прямая адресация Методы рандомизации Сравнение методов рандомизации Индексно-последовательная организация Область основных данных Области переполнения Области индексов Произвольный поиск Режимы обработки Добавление новых записей Статистика Общее про методы сортировки Сортировка в основной памяти Метод сортировки посредством выбора |
Работа системы управления базой данных
На рис. 9.39 [36] схематично показано, как СУБД взаимодействует с программой, пользователя и операционной системой: Большинство современных систем управления базами данных эффективны только в режиме пакетной обработки. Систем, которые с высокой степенью эффективности осуществляют как пакетную, так и оперативную обработку данных, очень мало. Если пользователю необходимо получить данные или запомнить их в базе данных, то его программа должна содержать соответствующий запрос на языке манипулирования данными (стрелка 1). СУБД анализирует запрос и добавляет к нему аргументы, выбираемые из полного описания данных и из описания данных, связанного с программой (стрелка 2). СУБД посылает операционной системе запрос на выполнение физических, операций ввода-вывода (стрелка 3). СУБД производит передачу данных между системными буферами и рабочей областью программы пользователя. Если представление данных в программе отличается от представления во вспомогательной памяти, то СУБД осуществляет все необходимые преобразования данных (стрелка 6). Данные, помещенные в системные буферы, передаются программе пользователя (если сделан запрос на операцию типа чтение), причем это может быть осуществлено в результате нескольких физических операций ввода, поскольку в базе данных отдельные части одной логической записи могут размещаться на разных физических записях. Используя описания, представленные на ЯОД, система управления базой данных определяет каким образом необходимо сгруппировать данные для конкретного программного запроса. То же самое характерно и для переписи данных из буфера в базу данных. Один запрос на такую перепись, поступивший из программы пользователя, может быть реализован несколькими командами вывода, которые разместят логическую запись программы по нескольким физическим адресам. СУБД сообщает программе пользователя о выполнении выданного ею запроса (стрелка 7). Обработка данных программой пользователя осуществляется с помощью средств базового языка программирования (стрелка 8). Заметим, что программа пользователя не может непосредственно обращаться к базе данных. Вся связь осуществляется только через СУБД. Однако эту связь автоматически устанавливают записанные на языке манипулирования данными команды, находящиеся в теле программы, составленной на базовом языке программирования. (Рассматриваемая схема соответствует подходу, когда языковые средства СУБД встроены в базовый язык. Однако использование самостоятельного языка СУБД не привнесёт существенных изменений в эту схему.) Большинство систем допускает чередование в прикладных программах команд языка манипулирования данными и операторов базового языка. При этом не используется никаких специальных операторов типа CALL, ENTER, EXIT или RETURN при переходе с одного языка на другой. Таким образом, программист использует «расширенный» базовый язык, который сочетает средства исходного языка и ЯМД. По-видимому, в ближайшем будущем большинство разработчиков программного обеспечения будут придерживаться этой концепции конструирования систем управления базами данных [57], хотя имеются также и другие плодотворные предложения [58, 59]. Многие из реализованных систем полностью или частично базируются на идеях, содержащихся в предложениях рабочей группы при CODASYL, которые мы рассмотрели в разд. 9.7.4. Конечно, исходя из практических соображений, некоторые требования могут быть опущены или ограничены с учетом фактической реализации, но основные принципы сохраняются. Почти все современные СУБД разрабатывались сначала как некий набор средств, частично удовлетворяющий перечисленным выше требованиям, к которому постоянно добавлялись другие средства, с тем чтобы удовлетворить наиболее необходимые запросы пользователей. |