- •1. Модели организации данных. Сетевая и иерархическая модели. Реляционная модель организации данных.
- •2. Организация процессов обработки данных в бд. Внутренняя схема бд фактографических ис. Физические структуры данных. Средства ускоренного доступа к данным. Индексирование данных. Хэширование данных.
- •4. Метод нормальных форм. Выявление зависимостей между атрибутами. Нормализация отношений.
- •Нормализация реляционных таблиц-отношений определяется требованиями атомарности значений полей, а также требованием рациональности группировки полей- атрибутов по различным таблицам.
- •5. Метод сущность-связь. Основные понятия метода. Правила формирования отношений.
- •Формирование отношений для связи 1:1
- •K1vk2 – означает, что ключом сформированного отношения может быть либо к1, либо к2.
- •Формирование отношений для связи 1: m
- •6. Языки баз данных. Обработка данных. Ввод-вывод данных. Запросы. Оптимизация запросов. Процедуры, правила (триггеры) и события в базах данных.
- •1. Понятие и содержание информационного обеспечения. Структура и классификация информационных систем.
- •Определение понятия «документ»
- •Структура информационных систем
- •Основные понятия автоматизированной информационной системы (аис)
- •Классификация информационных систем
- •2. По масштабу
- •Основные показатели эффективности функционирования дис
- •Механизмы поиска документов в полнотекстовых ипс
- •3. Гипертекст, гипертекстовые информационно-поисковые системы. Модели организации данных в гипертекстовых ипс. Формирование связей документов в гипертекстовых ипс.
- •4. Распределенные ис. Понятие распределенных ис, принципы их создания и функционирования. Техника представлений. Проблемы, связанные с практической реализацией техники представлений.
- •5. Распределенные ис. Технологии и модели «Клиент-сервер». Управление транзакциями.
- •Модель файлового сервера (fs)
- •Модель сервера приложений (as)
- •Модель удаленного доступа к данным (rda)
- •Модель сервера базы данных (dbs).
- •6. Распределенные ис. Управление распределенными данными. Доступ к общим данным. Технологии объектного связывания данных. Технологии реплицирования данных.
- •1. Понятие информационной технологии. Эволюция информационных технологий; их роль в развитии экономики и общества; свойства информационных технологий; понятие платформы.
- •3. Технологии открытых систем.
- •4. Сетевые информационные технологии: электронная почта, телеконференции, доска объявлений; авторские информационные технологии; гипертекстовые и мультимедийные информационные технологии.
- •Модель файлового сервера (fs)
- •Модель сервера приложений (as)
- •Модель удаленного доступа к данным (rda)
- •Модель сервера базы данных (dbs).
6. Языки баз данных. Обработка данных. Ввод-вывод данных. Запросы. Оптимизация запросов. Процедуры, правила (триггеры) и события в базах данных.
Для подготовки запросов с помощью различных СУБД чаще всего используются два основных языка описания запросов:
язык QBE(QueryByExample)- язык запросов по образцу;
SQL(StructuredQueryLanguage) - структурированный язык запросов.
Главное отличие между этими языками заключается в способе формирования запросов: язык QBEпредполагает ручное или визуальное формирование запроса, в то время как использованиеSQLозначает программирование запроса.
Язык QВЕпозволяет задавать сложные запросы к БД путем заполнения предлагаемой СУБД запросной формы. Такой способ задания запросов обеcпечивает высокую наглядность и не требует указания алгоритма выполнения операции - достаточно описать образец ожидаемого результата.
На языке QBE можно задавать запросы однотабличныеимноготабличные.
С помощью запросов на языке QBEможно выполнять следующие основные операции:
выборку данных;
вычисление над данными;
вставку новых записей;
удаление записей;
модификацию данных,
Результатом выполнения запроса является новая таблица, называемая ответной (первые две операции), или обновленная исходная таблица (остальные операции).
Выборка, вставка, удаление и модификациямогут производиться безусловно или в соответствии с условиями, задаваемыми с помощью логических выражений. Вычисления над данными задаются с помощью арифметических выражений и порождают в ответных таблицах новые поля, называемые вычисляемыми.
В современных СУБД многие действия по подготовке запросов с помощью языка QBEвыполняются визуально с помощью мыши. В частности, визуальное связывание таблиц при подготовке запроса выполняется не элементами примеров, а просто «протаскиванием» мышью поля одной таблицы к полю другой.
Язык SQLпредназначен для выполнения операций над таблицами (создание, удаление, изменение структуры) и над данными таблиц (выборка, изменение, добавление и удаление), а также некоторых сопутствующих операций.SQLявляетсянепроцедурнымязыком и не содержит операторов управления, организации подпрограмм, ввода-вывода и т. п. В связи с этимSQLавтономно не используется, обычно он погружен в среду встроенного языка программирования СУБД (например,VisualBasicforApplicationСУБДAccess).
Основным назначением языка SQLявляется подготовка и выполнение запросов. В результате выборки данных из одной или нескольких таблиц может быть получено множество записей, называемоепредставлением.
Обработка данныхвключает набор различных функций и операций, которые можно разделить натригруппы:
поиск, фильтрация и сортировка данных;
запросы к базе данных;
механизм реализации событий, правил (триггеров) и процедур в базе данных.
Запросыявляются наиболее распространенным видом обработки данных.Запроспредставляет собойспецификацию (предписание) па специальном языке (языке базы данных) для обработки данных.В реляционных СУБД запросы к базе данных выражаются на языкеSQL.
Формирование запросов в СУБД может осуществляться в специальном редакторе (командный режим) или через наглядно-диалоговые средства (конструкторы) и пошаговые мастера формирования запросов. Сформированный запрос в виде SQL-инструкции сохраняется в файле базы данных и впоследствии специальной командой СУБД может запускаться (открываться) на выполнение.
С точки зрения решаемых информационных задач и формы результатов исполнения запросов их можно разделить на три группы:
запросы на выборку данных;
запросы на изменение данных;
управляющие запросы.
Запросы на выборкуотносятся к одному из наиболее часто применяемых видов запросов. Данный вид запросов реализуетсяSQL-инструкциейSELECTс предложениемFROM. Результатомисполнения запроса на выборку являетсянабор данных,который представляетвременную таблицуданных со структурой (поля, их типы и параметры), определяемой параметрами запроса и параметрами полей таблиц, из которых выбираются данные. Результаты запросов на выборку помещаются в специальную временную таблицу, размещаемую на период исполнения («открытия») запроса в оперативной памяти.
Важное значение для решения различных технологических информационных задачпо ведению базы данных имеютзапросы на изменение данных. В отличие от непосредственного ввода данных в режимах открытой таблицы или формы онивносят изменения сразу в группу записей за одну операцию.Таким образом,результатомзапросов на изменение является не набор данных, как в запросах на выборку, аизменение данныхв самих таблицах.
При исполнении запроса на удаление за одну операциюосуществляетсяудаление группы записей из одной или нескольких таблиц.Запросы на удаление реализуютсяSQL-инструкциейDELETE:
DELETE(поля)FROM(таблица)WHERE(условие);
Запрос на обновление за одну операциювноситобщие изменения в группу записей одной или нескольких таблиц.РеализуютсяSQL-инструкциейUPDATE.Запросы на обновления применяются тогда, когда необходимо осуществитьглобальные однотипные измененияв каком-либо наборе данных.
UPDATE(таблица)SET(поле = значение)WHERE(условие);
Запрос на добавлениеосуществляет добавлениегруппы записейизодной или нескольких таблиц в конец другой или группы других таблиц.При этомколичествоитипы полейпри вставке записейдолжны совпадать.
INTERINTOтаблицаSELECTполяFROMтаблицаWHERE(условие);
Запросы на создание таблицы за одну операциюсоздают новую таблицу с заполненными данными на основе всех или части данных из одной или нескольких таблиц.
SELECTполяINTOтаблицаFROMтаблицаWHERE(условие);
В составе языка описания данных DDLимеются рядSQL-инструкций, на основе которых строятся запросы по созданию/модификации реляционных таблиц или отдельных их элементов. Такие запросы называются управляющими.
Запросы на создание таблицыреализуютсяSQL-инструкциейCREATEТАВLЕ с ключевыми словами, определяющими типы полей (СНАRACTER,INTEGER,DATETIMEи т.д.), предложениемCONSTRAINTдля создания ограничений на значения полей или связей между таблицами, ключевым словомUNIQUE, задающим свойство уникальности индекса таблицы, а также ключевого словаPRIMERYKEY, определяющего ключевое поле создаваемой таблицы.
Запросы на добавление полей или индексовреализуютсяSQL-инструкциейALTERTABLEс использованием зарезервированных словADDCOLUMN(добавить поле) иADDCONSTRAIN(добавить индекс). Этим же запросом с помощью зарезервированного словаDROPCOLUMNможно удалить поле из существующей таблицы. Как правило, запросы на добавление полей также используются для создания внешних ключей, задающих связи-отношения между таблицами. С этой целью используются зарезервированные словаFOREIGNKEYиREFERENCES.
Запросы на удаление таблицы или индексареализуютсяSQL– инструкциейDROPTABLEс указанием имени удаляемой таблицы или индекса.
Запросы на создание индексареализуютсяSQL-инструкциейCREATEINDEXс использованием зарезервированного словаUNIQUEзапрета повтора значений в индексируемом поле инеобязательного предложения WITH с параметрами DISALLOWNULLиIGNORENULLдля запрета/разрешения нулевых (пустых) значений в индексируемом поле. Зарезервированное словоPRIMERYпозволяет определить создаваемый индекс ключом таблицы (при этом создаваемый индекс по умолчанию является уникальным, т. е. повторы значений не допускаются).
Под оптимизацией запросов понимается такой способ их обработки, когда по начальному представлению запроса вырабатывается процедурный план его выполнения, наиболее оптимальный при существующих в базе данных управляющих структурах.
В общей схеме обработки запросов выделяются:
Лексический и синтаксический разбор запроса;
Логическую оптимизацию;
Семантическую оптимизацию;
Построение процедурных планов выполнения запросов и выбор оптимального;
Непосредственное выполнение запроса.
Лексический и синтаксический разборзапроса формируют внутреннее представление запроса, содержащее вместо имен таблиц, полей и связей базы данных их истинные внутренние идентификаторы и указатели, находящиеся в системном каталоге базы данных.
Логическая оптимизациязапроса может включать различные эквивалентные преобразования, «улучшающие» представление запроса. Такие преобразования можно разбить на три группы:
Преобразования предикатов сравнения;
Преобразования порядка реляционных операций (соединения, объединения, выборки);
Приведение запроса с подчиненными запросами к запросам на соединение (JOIN).
Преобразования предикатов сравнения,улучшающие в целях оптимизации представление запроса, в свою очередь, разделяются на:
Приведение предикатов сравнения к каноническому виду;
Приведение логического условия сравнения к каноническому виду.
Каноническим называется такой вид предикатов сравнения, который содержит сравнениепростых выражений. Можно выделить три типа таких сравнений:
Имя поля Операция сравненияКонстантное арифметическое выражение;
Имя поля Операция сравненияАрифметическое выражение;
Арифметическое выражение Операция сравненияКонстантное арифметическое выражение.
В первом типе под «Константным арифметическим выражением» понимается такое выражение, которое содержит константы и так называемыеобъемлющие переменные, в любой момент имеющие одинаковое значение в отношении всех кортежей таблицы.
Во втором типе под « Арифметическим выражением»понимается такое выражение, в котором может присутствовать имя другой таблицы, полностью раскрыты скобки, произведено приведение и упорядочение членов.
Приведение логических условий сравнения к каноническому видупреследует ту же цель снижения числа операций при выполнении запроса на основе поиска общих предикатов и различных упрощений логических выражений.
Преобразования порядка реляционных операцийтакже направлены на сокращение возможного количества операций при обработке запросов. Одними из наиболее частых реляционных операций в запросах являются операциисоединения(JOIN) и операцииограничения(WHERErestriction). В этом отношении общим правилом оптимизирующего преобразования запросов будет замена последовательности операции соединения с последующими ограничениями на предварительные ограничения и последующим соединением:
Очевидно, что в большинстве случаев количество операции по реализации наиболее затратной операции соединения таблиц будет меньше после предварительно проведенных операций ограничения по отбору записей из исходных таблиц. Особенно данное правило актуально при наличии ограничений на отбор полей при соединении таблиц, связанных отношений «Один-ко-многим». В этом случае перенос ограничений в условиях отбора на таблицу, находящуюся на стороне «многие» до операции JOINможет существенно ускорить выполнение запроса.
Одним из проявлений вариантности языка SQLявляется эквивалентность выражения некоторых подчиненных и сложных запросов с соединениями.При выполнении запросов с подчиненными запросами для каждого кортежа-записи в исходном наборе внешнего запроса выполняется подчиненный запрос. Иначе говоря, всякий раз при вычислении предиката внешнего запроса вычисляется подчиненный запрос. Поэтому резервом для оптимизации подобных запросов является поиск возможных путей сокращения количества операций за счет эквивалентных преобразований, приводящих к совмещению операций формирования набора кортежей-записей внешнего и внутреннего (подчиненного) запроса.
Каноническим представлением запросапо данным изnтаблиц называется запрос, содержащийn-1 предикат соединения и не содержащий предикатов с подчиненными запросами.
Логическаяоптимизация запросов не учитываетсемантикиконкретной базы данных, проявляемой в ограничениях целостности на значения полей таблиц и связей между ними. В результате ядро СУБД всякий раз при выполнении логически оптимизированного запроса еще и проверяет ограничения целостности. Часть записей-кортежей, сформированных по результатам операций запроса, при этом может быть отвергнута именно по ограничениям целостности. Семантическая оптимизациязапросов основывается наслиянии внутреннего представления запроса и ограничений целостностиконкретной базы данныхдо непосредственного выполнения запросаи призвана за счет совместной проверки ограничений целостности и условий запроса сократить количество выполняемых операций.
После логической и семантической оптимизации строится процедурный план выполнения запросов. Процедурным планом запросаназываетсядетализированный порядок выполнения операций доступа к базе данных физического уровня.Уже упоминавшаяся мультивариантность способов выполненияSQL-инструкций соответственно приводит к набору альтернативных процедурных планов выполнения запросов, среди которых оптимизатор запросов ядра СУБД должен выбрать оптимальный в соответствии с определеннымикритериями.
Общепринятым критерием оптимальности процедурных панов является минимизация стоимости выполнения запросов. При этом под стоимостью выполнения запроса понимают вычислительные ресурсы (ресурсы процессора и ресурсы дисковой и оперативной памяти), необходимые для выполнения запросов.
Суть идеи механизма событий, правил и процедурзаключается в том, что они после определенияхранятсявместе с данными. Ядро СУБДпри любом изменении состояния базы данных проверяет, не произошлили ранее «поставленные на учет»события,и, если они произошли, обеспечиваетпроверкусоответствующихправилизапусксоответствующихпроцедуробработки.
Функционирование базы данных осуществляется следующим образом:
1. В базе данных определяются так называемые события, связанные с изменениями данных —добавление новой записи в определенную таблицу, изменение, удаление записи.
2. Для каждого события в базеданных определяются правила (триггеры) по проверке определенных условий состояния данных.;
3. В зависимости от результатов проверки правилв базе данных запускаются на выполнение предварительно определенные процедуры.Процедуры представляют собойпоследовательности команд по обработке данных, имеющие отдельное смысловое значение,и могут реализовываться на упрощенном макроязыке (последовательность команд запуска запросов или выполнения других действий, например по открытию-закрытию форм, таблиц и т. п.) или на языке 4GL, встроенном в СУБД.
В отличие от традиционного подхода, когда специальные прикладные программы постоянно «опрашивают» базу данных для обнаружения ситуаций, требующих обработки, «событийная» техника более экономична и естественна в технологическом плане.
4. Информационные системы (Беликова М.А.).