Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы-ответы (БД экзамен).docx
Скачиваний:
297
Добавлен:
25.05.2018
Размер:
2.35 Mб
Скачать

10. Реляционная алгебра. Теоретико-множественные операции реляционной алгебры. Основные операции.

Алгеброй называется множество объектов с заданной на нем совокупностью операций, замкнутых относительно этого множества, называемого основным множеством.

Основной объект реляционной алгебры – это отношение. Всего Э. Ф. Коддом было предложено 8 операций. (множество избыточное, одни операции могут быть представлены через другие, но!!! максимально удобное при реализации произвольных запросов к БД.

Теоретико-множественные операции реляционной алгебры.

Объединение.

Пересечение.

Разность.

Операции объединения, пересечения и разности применимы только к отношениям с эквивалентными схемами.

Кроме перечисленных трех теоретико-множественных операций в рамках реляционной алгебры определена еще одна теоретико-множественная операция — расширенное декартово произведение. Эта операция не накладывает никаких дополнительных условий на схемы исходных отношений, поэтому операция расширенного декартова произведения, обозначаемая R1R2, допустима для любых двух отношений. Но прежде чем определить саму операцию, введем дополнительно понятие конкатенации, или сцепления, кортежей.

Сцеплением, или конкатенацией, кортежей с = <c1 с2, ..., сn> и q = <q1 q2, ..., qm> называется кортеж, полученный добавлением значений второго в конец первого. Сцепление кортежей с и q обозначается как (с, q).

(с, q) = <с1 с2, ... , cn, q1, q2, ... qm>,

здесь n — число элементов в первом кортеже с, m — число элементов во втором кортеже q.

Все предыдущие операции не меняли степени или арности отношений — это следует из определения эквивалентности схем отношений. Операция декартова произведения меняет степень результирующего отношения.

Группа теоретико-множественных операций избыточна, практически все сложные операции можно записать разными способами.

11. Реляционная алгебра. Специальные операции.

12. Язык sql. История развития sql. Структура sql. Типы данных.

SQL (Structured Query Language) — Структурированный Язык Запросов — стандартный язык запросов по работе с реляционными БД. Язык SQL появился после реляционной алгебры, и его прототип был разработан в конце 70-х годов в компании IBM Research. Он был реализован в первом прототипе реляционной СУБД фирмы IBM System R. В дальнейшем этот язык применялся во многих коммерческих СУБД и в силу своего широкого распространения постепенно стал стандартом «де-факто» для языков манипулирования данными в реляционных СУБД.

Первый международный стандарт языка SQL был принят в 1989 г. (SQL/89 или SQL1). Иногда стандарт SQL1 также называют стандартом ANSI/ISO, и подавляющее большинство доступных на рынке СУБД поддерживают этот стандарт полностью. Однако развитие информационных технологий, связанных с базами данных, и необходимость реализации переносимых приложений потребовали в скором времени доработки и расширения первого стандарта SQL.

В конце 1992 г. был принят новый международный стандарт языка SQL, который в дальнейшим будем называть SQL/92 или SQL2. И он не лишен недостатков, но в то же время является существенно более точным и полным, чем SQL/89. В настоящий момент большинство производителей СУБД внесли изменения в свои продукты так, чтобы они в большей степени удовлетворяли стандарту SQL2.

В 1999 г. появился новый стандарт, названный SQL3. Имеет серьезные качественные преобразования. (Введены новые структурированные типы данных, соответств.объектной ориентации. Добавлен стандарт на события и триггеры. В рамках управления транзакциями произошел возврат к старой модели транзакций, допускающей точки сохранения (savepoints), и возможность указания в операторе отката ROOLBACK точек возврата позволит откатывать транзакцию не в начало, а в промежуточную ранее сохраненную точку.

SQL нельзя, в полной мере, отнести к традиционным языкам программирования. Он не содержит традиционные операторы, управляющие ходом выполнения программы, операторы описания типов и многое другое. Он содержит только набор стандартных операторов доступа к данным, хранящимся в базе данных. Операторы SQL встраиваются в базовый язык программирования, которым может быть любой стандартный язык типа C++, PL, COBOL и т. д. Кроме того, операторы SQL могут выполняться непосредственно в интерактивном режиме.

Основные объекты реляционной базы данных.

Tables Отношения (таблицы) базы данных, в которых хранятся собственно данные. Имеют структуру, ограничения на типы данных и связи между таблицами.

Views Просмотры (виртуальные таблицы) для отображения данных из таблиц, содержимое которых определяется запросом. Информация, которую видит пользователь через представление, не сохраняется в базе данных как самостоятельный объект.

Indexes Индексы – дополнительные структуры(таблицы), создаваемые для повышения производительности работы с данными. Индекс определяется для одного или нескольких столбцов(индексированные столбцы). Он содержит отсортированные значения индексированных столбцов со ссылками на соответствующую строку исходной таблицы или представления. Повышение производительности достигается за счет сортировки данных. Использование индексов может существенно повысить производительность поиска, однако для хранения индексов необходимо дополнительное пространство в базе данных.

Constraints Ограничение целостности – объекты для обеспечения логической целостности данных – механизм, обеспечивающий автоматический контроль соответствия данных установленным условиям (или ограничениям). Ограничения целостности имеют приоритет над триггерами, правилами и значениями по умолчанию. К ограничениям целостности относятся: ограничение на значение NULL, проверочные ограничения, ограничение уникальности (уникальный ключ), ограничение первичного ключа и ограничение внешнего ключа. Последние три ограничения тесно связаны с понятием ключей

Keys Ключи – один из видов ограничений целостности данных

Stored Procedures Хранимые процедуры представляют собой группу команд SQL, объединенных в один модуль. Такая группа команд компилируется и выполняется как единое целое.

Triggers Триггеры – специальные хранимые процедуры, вызываемые автоматически при изменении данных в таблице(при добавлении, изменении или удалении данных из таблицы)

Sequence – генераторы последовательностей чисел

User Defined function Создаваемые пользователем функции. Функции в языках программирования – это конструкции, содержащие часто исполняемый код. Функция выполняет какие-либо действия над данными и возвращает некоторое значение.

User Defined Data Types Пользовательские типы данных - это типы данных, которые создает пользователь на основе системных типов данных, когда в нескольких таблицах необходимо хранить однотипные значения; причем нужно гарантировать, что столбцы в таблице будут иметь одинаковый размер, тип данных и чувствительность к значениям NULL.

Users Пользователи, обладающие доступом к базе данных.

Roles Роли, позволяющие объединять пользователей в группы.

Rules Правила базы данных, позволяющие контролировать логическую целостность данных.

Правила используются для ограничения значений, хранимых в столбце таблицы или в пользовательском типе данных. Они существуют как самостоятельные объекты базы данных, которые связываются со столбцами таблиц и пользовательскими типами данных. Контроль значений данных может быть реализован и с помощью ограничений целостности

Defaults Умолчания или стандартные установки базы данных – самостоятельный объект базы данных, представляющий значение, которое будет присвоено элементу таблицы при вставке строки, если в команде вставки явно не указано значение для этого столбца