Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билет1.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
365 Кб
Скачать
☆

Билет11

  1. Охарактеризуйте типовую организацию системы управления базами данных.

Организация типичной СУБД и состав ее компонентов соответствует набору функций СУБД, таких как:

  • управление данными во внешней памяти;

  • управление буферами оперативной памяти;

  • управление транзакциями;

  • журнализация и восстановление БД после сбоев;

  • поддержание языков БД.

  • обеспечение целостности и безопасности БД.

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

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

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

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

  1. Классификация запросов. Назовите этапы создания приложения для вывода данных из таблицы с помощью статического запроса. Программное использование компонента Query.

Классификация запросов — это разделение разных видов запросов по группам с определенными признаками.

Под термином «поисковый запрос» понимается последовательность символов (чаще слово или словосочетание), которая описывает какое-либо явление или объект и вводится пользователем в поисковую строку для получения информации об этом явлении или объекте.

По целям пользователей:

  • Информационные запросы — когда пользователи преследуют цель получить искомую информацию на любом сайте (погода в Хабаровске).

  • Навигационные запросы — когда пользователь ищет сайт или контакты конкретной компании (сайт Северсталь).

  • Транзакционные запросы — когда пользователь заинтересован в приобретении товаров, услуг и т.д. (купить квартиру в ЦАО Москвы).

По однозначности:

  • четкие. Объект поиска задан четко и недвусмысленно (например, купить дом в Самаре).

  • нечеткие. Формулировка может трактоваться неоднозначно (например, дома).

По длине запроса

  • однословные,

  • многословные (из двух и более слов).

По географии поиска

  • С географией. Объект поиска привязан к определенной стране, городу и т.д.

  • Без географии. Местонахождение объекта не имеет значения для пользователя или объект место в пространстве занимать не может.

  • С географией по умолчанию. Пользователь не задает месторасположение объекта, но подразумевает.

По частотности

  • Высокочастотные (ВЧ). Запросы, которые пользователи наиболее часто вводят в поисковую строку.

  • Среднечастотные (СЧ). Слова и фразы, популярность которых относительно высока.

  • Низкочастотные (НЧ). Запросы определенной тематики, наименее часто используемые посетителями.

По конкурентности

  • высококонкурентные запросы (ВК),

  • конкурентные (СК),

  • низкоконкурентные (НК).

По форме их построения

  • естественный запрос — имеет форму вопросительного предложения;

  • телеграфный запрос — строится без связи между словами;

  • запрос с операторами — расширенный поиск с применением специальных операторов;

  • запрос-цитата — например: «Чтобы перепрошить телефон…».

По языку

  • на одном языке;

  • на нескольких языках;

  • на одном языке, но с грамматическими ошибками;

  • из слов, имеющих в разных языках одинаковое значение

ррКомпонент Query имеет большинство свойств и методов, совпадающих с Table. Дополнительное преимущество Query – возможность формировать запросы на языке SQL. Если запрос SQL сводится к просмотру таблицы (запрос Select), то результат этого запроса (а не сама исходная таблица) помещается во временном файле на компьютере пользователя. Это таблица только для чтения и не допускает каких-либо изменений. Если же запрос связан с какими-либо изменениями содержания таблицы, то никаких временных таблиц не создается. BDE передает запрос на сервер, там он обрабатывается и в приложение возвращается информация о том, успешно ли завершена соответствующая операция. Таким образом, эффективность Query при работе в сети выше, чем у Table. Компонент Query (набор данных) помещается на форму вместе с компонентом DataSource (источник данных) и компонентами отображения данных, например,DBGrid. Основное свойство компонента Query – SQL, имеющее тип TString. Это список строк, содержащих запросы SQL. В процессе проектирования приложения необходимо сформировать в этом свойстве некоторый предварительный запрос SQL, который показал бы, с какой таблицей или таблицами будет проводится работа. Но далее во время выполнения приложения свойство SQL может формироваться программными методами, обычными для класса TString: Clear – очистка, Add – добавление строки и т.д. Свойство DataBaseName компонента Query служит для задания базы данных, с которой осуществляется связь путем выбора из выпадающего списка псевдонимов или указанием полного пути к файлу. Свойства TableName у компонента Query нет, так как таблица, с которой ведется работа, будет указываться в запросах SQL. Поэтому в свойство SQL надо занести запрос, содержащий таблицы и перечисляются параметры, если они используются в приложении. Пока такой запрос в SQL отсутствует, дальнейшая настройка Query невозможна. Если запрос, введенный в SQL , имеет вид Select * from pers при задании свойства Active=true можно сразу в процессе проектирования увидеть результаты работы этого запроса. Если работа проводится с несколькими таблицами: Select * from pers,dep Для управления отображением данных в компоненте Query, как и в компоненте Table имеется редактор полей Field Editor. Он вызывается либо двойным щелчком на компоненте Query, либо из контекстного меню и выбором пункта Fields Editor. В нем можно добавить имена получаемых полей (add), задать заголовки полей, отличающиеся от их имен, сделать поля невидимыми (visible), нередактируемыми (ReadOnly), в логических полях задать текст(например: да;нем, м;ж)., задать формат высвечивания чисел, создать вычисляемые поля, задать диапазоны значений и др.