- •Понятие автоматизированной системы, автоматизированного банка данных (абд). Состав и роли пользователей абд.
- •Иерархическая модель данных.
- •Сетевая модель данных.
- •Реляционная модель данных. Понятие домена, отношения, атрибута, кортежа, арности отношения реляционной базы данных.
- •Структура данных в рбд. Свойства столбца и ограничения таблицы. Использование ключей для идентификации строк, ссылочной целостности и логической связи строк. Индексы таблиц.
- •Язык запросов к рбд, основанный на реляционном исчислении. Примеры запросов.
- •Язык запросов к рбд, основанный на реляционной алгебре, примеры запросов.
- •Назначение и общая структура оператора Select в sql. Общая схема выполнения оператора Select. Примеры.
- •Элементы списка вывода в операторе Select Transact sql. Назначение и использование параметра Order by. Примеры.
- •Типы табличных источников в операторах управления данными в sql. Способы соединения строк в параметре From. Примеры соединений.
- •Критерий отбора строк в параметре Where операторов sql. Примеры фильтрующих запросов.
- •Назначение и использование агрегатных функций, параметров Group by и Having оператора Select. Примеры группирующих запросов.
- •Операторы union [all] , except, intersect. Примеры.
- •Структура, назначение параметров и примеры использования оператора insert. Примеры применения.
- •Структура, назначение параметров и примеры использования операторов delete, truncate.
- •Структура, назначение параметров и примеры применения оператора update.
- •Организация ms sql Server: режимы использования сервера и поддерживающие их службы Windows, системные базы, исходные учетные записи сервера.
- •Правила именования постоянных и временных объектов баз данных в ms sql Server. Примеры.
- •Структурные операторы Transact sql: if, go to, while, waitfor. Примеры применения.
- •Обработка исключений в программах Transact sql. Функции для анализа причины исключений и вывода сообщений.
- •Логическая организация базы данных в ms sql Server: словарь (системные таблицы и системные представления) базы master и пользовательской бд. Типы объектов пользовательской базы.
- •Физическая организация базы данных в ms sql Server: файлы и файловые группы. Структура и параметры оператора create database.
- •26.. Изменение параметров базы оператором alter. Реорганизация базы данных командой dbcc.
- •27.. Опции базы данных. Способы задания и проверки опций базы. Процедуры отсоединения и присоединения баз данных к серверу.
- •28.. Базовые типы данных в ms sql Server
- •29.. Специальные типы данных в ms sql Server. Функции приведения значения выражения к требуемому типу. Примеры.
- •30.. Пользовательские типы данных в ms sql Server. Операторы создания и удаления. Примеры создания и применения.
- •31. Создание пользовательской таблицы оператором create table: параметры, определяющие структуру, свойства столбцов и ограничения таблицы.
- •32.. Фрагментарное размещение таблицы в файловых группах: использование схем и функций размещения для таблицы бд. Модификация структуры таблицы оператором alter table. Примеры.
- •33.. Индексы таблиц в ms sql Server: назначение, типы, способы создания. Использование индексов.
- •34.. Статистика столбцов и индексная статистика. Операторы создания обновления статистики.
- •35.. Правила и умолчания в Transact sql. Примеры создания и использования.
- •36.. Представление (view) базы данных. Операторы создания и удаления представлений. Примеры. Ограничения при использовании представлений для внесения изменений в бд.
- •37.. Хранимые процедуры базы данных. Операторы Transact-sql для создания, исполнения и модификации процедур. Пример создания и использования.
Язык запросов к рбд, основанный на реляционном исчислении. Примеры запросов.
Реляционное исчисление над переменными кортежами.
Выражение РИ определяет новое отношение, являющееся результатом запроса к исходным отношениям. Для определения множества кортежей, создающих результат запроса, предлагается использовать определяющую функцию, записываемую в виде предиката первого порядка. Кортежи исходных отношений, для которых определяющая функция принимает значение истина, и образуют результат запроса. n–местным предикатом первого порядка называется выражение, содержащее n переменных из предметной области и обращающееся в высказывание (логическое выражение) при задании значений этим переменным. Предметные переменные связываются с кортежами исходных отношений Те кортежи отношений, для которых предикат принимает значение истина, формируют результат запроса. Выражения для запроса в РИ использует форму записи элементов множества с определяющей функцией:
{<элемент множества>| <определяющая функция – условие для элемента множества>} .
Например, {x | x mod (2) ≡ 0}.
Здесь x mod (2) ≡ 0 - предикат (определяющая функция). Операция x mod (2) вычисляет остаток от деления. Поэтому x mod (2) ≡ 0 является одноместным предикатом, принимающим истинное значение при четных x. Таким образом, запись { x | x mod (2) ≡ 0} определяет множество четных чисел.
Общая форма записи запроса в РИ имеет вид: {t | φ(t) }, где φ(t) – формула (предикат), являющаяся условием (определяющей функцией) для t, а t – переменная, принимающая значения кортежей результирующего отношения. Формула φ(t) строится из следующих элементарных (атомарных) условий:
1. R(t) – предикат, принимающий значения истина, если переменная t является кортежом в отношении R. Тогда запись {t | R(t) } является запросом,
возвращающим все кортежи отношения R;
2. u[i] Θ v[j] или u[i] Θ u[j], логическое выражение с переменными u, v, областью возможных значений которых являются кортежи каких-либо
отношений, i, j – номера или имена атрибутов в отношении, тогда u[i] и v[j] - поля i-го и j-го атрибутов кортежей отношений. u[i] и [j] выполняют роль предметных переменных в предикатах определяющей функции. Как и в РА, Θ – операция бинарного сравнения элементов кортежей разных отношений (u[i] Θ v[j]) или элементов кортежа одного отношения (u[i] Θ u[j]), Θ ∈ { >, <, <=, >= , =, # };
3. u[i] Θ <константное выражение> - логическое выражение для сравнения значения элемента u[i] (поля) кортежа в отношении со значением
выражения, построенного на константах и скалярных функциях. Из перечисленных элементарных условий по следующим правилам рекурсивно строятся определяющие функции:
1 каждое элементарное условие является функцией;
2) если ψ1 и ψ2 - являются определяющими функциями, то выражения вида:
ψ1 ∧ ψ2 , ψ1 ∨ ψ2 и ¬ψ1 – также являются определяющими функциями, в
которых:
∧ - операция конъюнкции (логическое И),
∨ - операция дизъюнкции (логическое ИЛИ),
¬ - одноместная операция отрицания (логическое НЕ);
3) если ψ - определяющая функция, то (∃s) (ψ(s)) и ∀s ( ) (ψ(s)) являются
определяющими функциями, в которых s – обозначает предметную переменную, являющуюся кортежом отношения, связанную квантором существования - ∃или общности - ∀. Предикат (∃s) (ψ (s)) принимает значения истина, если существует хотя бы одно значение предметной переменной s, для которого ψ (s) имеет значение истина. Предикат (∀s(ψ(s))
принимает значения истина, если для всех значений предметной переменной s выражение ψ(s) имеет значение истина.
При вычислении значений предиката первыми выполняются операции связывания переменных кванторами ∃ и ∀, затем операции сравнения (Θ),
затем по старшинству ¬, ∧, ∨ – обычные логические операции Порядок выполнения операций можно задавать скобками.
С помощью приведенных правил могут быть построены запросы, приводящие к практически бесполезным, но при этом весьма объемным результатам. Например, если правильным являетя выражение {t | R(t)}, то формально правильным в соответствии с правилом 2 является выражение {t | ¬ R(t)}. Данное выражение требует возвратить все кортежи, отсутствующие в отношении R. Ответ на такой запрос можно представить в виде разности отношения, получаемого декартовым произведением доменов, используемых атрибутами отношения R (всеми возможными кортежами) и существующими кортежами отношения R. Поскольку многие домены реальных баз задаются допустимыми типами данных, например, фамилия – строка фиксированной длины, дата рождения – произвольная дата из заданного интервала, то большинство кортежей, полученное декартовым произведением таких доменов, не имеет смысла. Поэтому в запросах {t | φt)} РИ рассматривают подмножества определяющих функций φ(t), называемых безопасными. Безопасные определяющие функции не позволяют создавать в результате запроса данные которые не представлены в используемых отношениях БД или в самой определяющей функции. Безопасные выражения для запросов оказываются всегда вычислимы по БД.