Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КонспектЛекций.doc
Скачиваний:
71
Добавлен:
14.05.2015
Размер:
1.26 Mб
Скачать

5Nf (pj/nf).

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

Определение: Отношение R (A, B, … Z) удовлетворяет зависимости соединения (А, B, … Z) в том и только в том случае, когда R восстанавливается без потерь путём соединения своих проекций на A, B, … Z (наборы атрибутов отношения R). Полной декомпозицией отношения называют такую совокупность произвольного числа его проекций, соединение которых полностью совпадает с содержимым исходного отношения.

Иными словами, отношение находится в пятой нормальной форме тогда и только тогда, когда в каждой его полной декомпозиции все проекции содержат возможный ключ.

Пример отношения, которое находится в 4NF, но НЕ находится в 5NF: почасовики.

Дано отношение: R( преподаватель, кафедра, дисциплина). Считается, что приглашённый преподаватель может работать на нескольких кафедрах и вести различные дисциплины. В этом случае ключом отношения является полный набор из трёх атрибутов. В отношении отсутствуют многозначные зависимости, и поэтому оно находится в 4NF. Однако в нём нет наборов атрибутов, которые составляют возможные ключи отношения, и потому это отношение не в PJ/NF. При этом провести полную декомпозицию на два отношения нельзя.

Возможна декомпозиция следующего вида:

  1. R1 ( преподаватель, кафедра).

  2. R2 (преподаватель, дисциплина ).

  3. R3 (кафедра, дисциплина).

Отношение, не имеющее ни одной полной декомпозиции, также находится в пятой нормальной форме.

Глава 2. Язык sql.

1. История развития и стандарты.

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

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

  • 1992 – стандарт SQL92 или SQL2. В настоящее время все возможности стандарта ни одна СУБД не поддерживает, обычно предлагая свои собственные расширения языка.

  • 1999 – стандарт SQL3. Если отличия между предыдущими стандартами во многом были количественными, то в SQL3 введены новые типы данных, при этом предполагается возможность задания сложных структурированных типов, которые соответствуют объектно-ориентированной идеологии программирования. Также введены стандарты на события и триггеры, которые ранее не затрагивались в стандартах. Попытка следовать стандарту SQL3 хорошо прослеживается в последней версии СУБД Oracle.

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

SQL не является традиционным языком программирования: он не содержит операторы, позволяющие осуществлять действия на низком уровне, и ориентирован на работу со множествами. Обычно реализация SQL в какой-либо СУБД является подмножеством собственного языка системы, включающего в себя ещё и средства построчного доступа к таблицам, средства управления ходом выполнения программы и т.п. Например, в случае MS SQL Server языком системы является Transact-SQL, добавляющий к базовому SQL, помимо вышеперечисленного, дополнительные инструкции и ключевые слова почти для каждого оператора SQL.