Читайте также:
|
|
Допустим, пользователю на рабочей станции требуется найти среди данных на сервере строку заданного образца. Если данные хранятся в простых файлах и для доступа к ним используется сетевая ФС (файловая система), то файл (вручную или автоматически) будет скопирован с сервера на рабочую станцию, после чего на рабочей станции и будет произведён собственно поиск. Какая составляющая приведённой последовательности займёт наибольшее время? Ответ: копирование файла по сети. Более того, сетевые пересылки разных пользователей будут тормозить друг друга и тем самым замедлять скорость работы всё сильнее и сильнее.
Вместо этого предложим следующую схему. Во-первых, разместим на компьютере-сервере программу, которая будет непосредственно на сервере выполнять поиск запрашиваемого образца. Во-вторых, разработаем язык (протокол), на котором она будет получать с рабочей станции запрос на поиск образца в базе данных, и на котором будет посылать в ответ результат поиска. В-третьих, пользовательский интерфейс на рабочей станции переработаем таким образом, чтобы поиск данных на сервере осуществлялся не в виде обращения к файлам, а в виде формулирования запроса на нашем языке, отправке его на сервер, приёме ответа и его обработке.
В этой схеме за счёт переноса операции поиска с рабочей станции на сервер исчезает необходимость пересылки исходных данных через сеть. Теперь по сети пересылаются только запрос и результат операции, которые очевидно будут иметь существенно меньший объём, чем исходный файл. Следовательно, скорость работы возрастёт тем сильнее, чем больше исходные данные и медленнее сеть. Побочным эффектом является увеличение нагрузки на процессор и ОЗУ сервера (поскольку это он теперь обязан производить вычисления) и уменьшение нагрузки на процессор и ОЗУ рабочей станции (поскольку теперь она не вычисляет результат самостоятельно, а получает его в уже готовом виде извне).
Наиболее популярными языками для связи между клиентом и сервером реляционных БД являются язык SQL (S tructured Q uery L anguage, «Структурированный язык запросов») и протокол ODBC (O pen D ata b ase C onnectivity, «открытый метод подключения к базам данных»). Как правило, нечто называют языком, если его конструкции имеют читабельный вид, могут быть записаны и расшированы вручную. Если нечто имеет двоичный вид, используется только для связи между программами, его называют протоколом. Впрочем, предложенная градация весьма условна: в отличие от ODBC, многие сетевые протоколы имеют читабельный синтаксис.
Ещё одной конструктивной особенностью СУБД, ускоряющей работу с хранящейся в базах данных информацией по сравнению с информацией в простых файлах, является наличие в них дополнительных служебных сведений – индексов. Индексом называют последовательность номеров записей в базе, отсортированную по тому или иному критерию. Такие часто используемые операции, как вывод отсортированного оглавления или поиск, вместо чтения всего содержимого базы или отдельной таблицы могут быть сведены к чтению соответствующего индекса. Поскольку номера в индексе, в отличие от записей в базе, упорядочены и имеют фиксированный небольшой размер, поиск по индексу занимает существенно меньше времени, чем непосредственно по содержимому базы. Как правило, СУБД создают и используют индексы автоматически.
Дата добавления: 2015-09-10; просмотров: 28 | Поможем написать вашу работу | Нарушение авторских прав |