КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Оптимизация. Реляционные операторы, как уже отмечалось, выполняются на уровне множеств
Реляционные операторы, как уже отмечалось, выполняются на уровне множеств. Поэтому реляционные языки называют непроцедурными, так как пользователь определяет, что делать, но не как делать. Фактически пользователь определяет, что ему нужно, без указания процедуры получения результата. Процесс «навигации» по хранимой БД с целью удовлетворения запроса пользователя выполняется автоматически, а не пользователем вручную. Поэтому реляционные системы иногда называют системами автоматической навигации. В нереляционных системах ответственность за навигацию по базе данных несет, в основном, сам пользователь. Можно сказать, что реляционные языки, такие как SQL, обладают более высоким уровнем абстракции, чем типичные языки программирования (например, C++), либо подъязыки данных, относящиеся к нереляционным СУБД. Ответственность за то, как именно выполняется автоматическая навигация, несет очень важный компонент СУБД – оптимизатор. Другими словами, работа оптимизатора заключается в том, чтобы для каждого запроса пользователя выбрать самый эффективный способ выполнения этого запроса. Пример 2.4. Предположим, что пользователь сделал следующий запрос: RESULT:= (Служащие WHERE НомСлужащего = ‘С4’) { Зарплата } Здесь выражение круглых скобках представляет запрос выборки строк, а выражение в фигурных скобках – выборку столбцов (или проекцию). В результате выполнения данного запроса результат будет содержать одну строку из одного столбца, содержащей величин зарплаты служащего с номером ‘C4’. В данном случае возможны несколько способов поиска необходимых данных: 1. Последовательный физический просмотр переменной-отношения «Служащие», пока требуемая запись не будет найдена. 2. Если есть индекс для столбца НомСлужащего переменной-отношения, то переход с помощью этого индекса непосредственно к данным служащего ‘C4’. Оптимизатор выберет, какую стратегию следует применить. В общем случае оптимизатор для реализации конкретного реляционного запроса будет осуществлять выбор стратегии, исходя из соображений, подобных следующим: § На какие переменные-отношения есть ссылки в запросе; § Насколько велики эти переменные-отношения; § Какие существуют индексы; § Насколько избирательны эти индексы; § Как физически группируются данные на диски; § Какие реляционные операции используются и т.д. Поэтому пользователь лишь указывает в запросе какие данные ему требуются, а не как их получить, тогда как стратегия доступа к данным определяется оптимизатором. В результате пользователь и пользовательские программы обретают независимость от применяемых стратегий доступа, что важно для достижения цели независимости от физического представления данных.
Дата добавления: 2014-01-13; Просмотров: 352; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |