- •Для чего нужны базы данных? Основные термины и определения. Компоненты субд.
- •Системы, основанные на файлах. Свойства, недостатки и пути их устранения.
- •Основные типы данных и их классификация. Модели данных и их компоненты. Типы моделей субд.
- •Методы доступа к данным. Поиск по дереву. Хеширование.
- •Назначение модели «сущность-связь». Элементы модели «сущность-связь».
- •Обор нотаций, используемых при построении диаграмм «сущность-связь». Нотация Чена
- •Сетевая модель данных. Структура данных. Операции над данными. Ограничения целостности.
- •Нотация idef1x
- •Нотация Баркера
- •Иерархическая модель данных. Структура данных. Операции над данными. Ограничения целостности.
- •10. Реляционная модель данных. Структура данных. Отношения. Свойство отношений.
- •Целостность реляционных данных. Null – значения. Трехзначная логика. Потенциальные ключи. Целостность сущностей.
- •Целостность реляционных данных. Внешние ключи. Родительские и дочерние отношения. Целостность внешних ключей.
- •Целостность реляционных данных. Операции, влияющие на целостность внешних ключей. Стратегии поддержания ссылочной целостности.
- •Этапы разработки баз данных. Критерии оценки качества логической модели данных.
- •15. Нормальные формы отношений. Первая нормальная форма (1нф). Аномалии обновления 1нф.
- •1Нф (Первая Нормальная Форма)
- •Третья нормальная форма (3нф). Сравнение нормализованных и ненормализованных моделей данных. Oltp и olap-системы.
- •Нормальная форма Бойса-Кодда (нфбк).
- •Многозначная зависимость. Четвертая нормальная форма (4нф).
- •Зависимость соединения. Пятая нормальная форма (5нф).
- •Обзор реляционной алгебры. Замкнутость реляционной алгебры. Отношения, совместимые по типу. Оператор переименования атрибутов.
- •Операции реляционной алгебры: объединение, пересечение, вычитание.
- •Операции реляционной алгебры: декартово произведение, выборка, проекция.
- •Операции реляционной алгебры: соединение, разновидности соединения, общая операция соединения, тэта-соединение.
- •Операции реляционной алгебры: соединение, разновидности соединения, экви-соединение, естественное соединение.
- •Операции реляционной алгебры: деление.
- •27.Язык sql. История развития. Структура языка. Типы данных sql.
- •Язык sql. Операторы создания и модификации схемы базы данных (database, table). Примеры написания операторов.
- •Язык sql. Операторы создания индексов. Операторы управления правами доступа. Примеры написания операторов
- •Язык sql. Команды модификации данных, условия отбора записей. Примеры написания операторов.
- •31.Язык sql. Оператор select. Синтаксис оператора, простые формы оператора, условия отбора записей. Примеры написания операторов.
- •32.Язык sql. Выборка из нескольких таблиц, синтаксис соединения таблиц. Примеры написания операторов.
- •33. ЯзыкSql. Использование алиасов и псевдонимов, вложенные запросы (подзапросы). Примеры написания операторов.
- •34.ЯзыкSql.Вычисления внутри оператора, группировка данных, сортировка данных, операция объединения. Примеры написания операторов
- •Оператор select. Формальный порядок выполнения оператора select. Как на самом деле выполняется оператор select.
- •37.ЯзыкSql. Использование представлений (View). Изменение данных в представлениях. Хранимые процедуры. Триггеры.
- •38.Транзакции, блокировки и многопользовательский доступ к данным.
- •1. Концептуальное проектирование;
- •2. Логическое проектирование;
- •3. Физическое проектирование.
- •41.Концептуальное моделирование. Пример построения модели «сущность-связь».
- •43.Проектирование реляционной базы данных на основе декомпозиции универсального отношения.
- •44.Создание приложений, работающих с базами данных при помощи языка sql. Общие подходы. Специализированные библиотеки доступа. Cli-интерфейс уровня вызова.
- •46.Архитектура "клиент-сервер". Структура сервера базы данных.
Многозначная зависимость. Четвертая нормальная форма (4нф).
Пусть R - отношение, и X, Y, Z - некоторые из его атрибутов (или непересекающиеся множества атрибутов), Тогда атрибуты Y и Z многозначно зависят от X (обозначается X ®® Y | Z ), тогда и только тогда, когда из того, что в отношении R содержатся кортежи r1=(x,y,z1) и r2=(x,y1,z) следует, что в отношении R содержится также и кортеж r3=(x,y,z).
Если в отношении R имеется не менее трех атрибутов X, Y, Z и есть функциональная зависимость X ® Y, то есть и многозначная зависимость X ®® Y|Z. Таким образом, понятие многозначной зависимости является обобщением понятия функциональной зависимости.
Отношение находится в четвертой нормальной форме (4НФ) тогда и только тогда, когда отношение находится в НФБК и не содержит нетривиальных многозначных зависимостей. Многозначная зависимость X ®® Y|Z называется нетривиальной многозначной зависимостью, если не существует функциональных зависимостей X ® Y и X ® Z.
Отношение находится в нормальной форме Бойса-Кодда (НФБК) тогда и только тогда, когда детерминанты всех функциональных зависимостей являются потенциальными ключами.
Зависимость соединения. Пятая нормальная форма (5нф).
Пусть R является отношением, а A, B, …, Z- произвольными (возможно пересекающимися) подмножествами множества атрибутов отношения R. Тогда отношение R удовлетворяет зависимости соединения *(A, B, …, Z) тогда и только тогда, когда оно равносильно соединению всех своих проекций с подмножествами атрибутов A, B, …, Z. Зависимость соединения *(A, B, …, Z) называется нетривиальной зависимостью соединения, если выполняется два условия:
- Одно из множеств атрибутов A, B, …, Z не содержит потенциального ключа отношения R.
- Ни одно из множеств атрибутов не совпадает со всем множеством атрибутов отношения R.
Зависимость соединения *(A, B, …, Z) называется тривиальной зависимостью соединения, если выполняется одно из условий:
- Либо все множества атрибутов A, B, …, Z содержат потенциальный ключ отношения R.
- Либо одно из множеств атрибутов совпадает со всем множеством атрибутов отношения R.
Отношение R находится в пятой нормальной форме (5НФ) тогда и только тогда, когда любая имеющаяся зависимость соединения является тривиальной.
Обзор реляционной алгебры. Замкнутость реляционной алгебры. Отношения, совместимые по типу. Оператор переименования атрибутов.
Третья часть реляционной модели, манипуляционная часть, утверждает, что доступ к реляционным данным осуществляется при помощи реляционной алгебры или эквивалентного ему реляционного исчисления.
В реализациях конкретных реляционных СУБД сейчас не используется в чистом виде ни реляционная алгебра, ни реляционное исчисление. Фактическим стандартом доступа к реляционным данным стал язык SQL (StructuredQueryLanguage). Язык SQL представляет собой смесь операторов реляционной алгебры и выражений реляционного исчисления, использующий синтаксис, близкий к фразам английского языка и расширенный дополнительными возможностями, отсутствующими в реляционной алгебре и реляционном исчислении. Вообще, язык доступа к данным называется реляционно-полным, если он по выразительной силе не уступает реляционной алгебре (или, что то же самое, реляционному исчислению), т.е. любой оператор реляционной алгебры может быть выражен средствами этого языка. Именно таким и является язык SQL.
Замкнутость реляционной алгебры
Реляционная алгебра представляет собой набор операторов, использующих отношения в качестве аргументов, и возвращающие отношения в качестве результата. Таким образом, реляционный оператор выглядит как функция с отношениями в качестве аргументов:
R = f(R1,R2,…,Rn)
Реляционная алгебра является замкнутой, т.к. в качестве аргументов в реляционные операторы можно подставлять другие реляционные операторы, подходящие по типу:
R = f(f1(R11,R12,…),f2(R21,R22,…),…)
Таким образом, в реляционных выражениях можно использовать вложенные выражения сколь угодно сложной структуры.
Отношения, совместимые по типу
Некоторые реляционные операторы (например, объединение) требуют, чтобы отношения имели одинаковые заголовки. Действительно, отношения состоят из заголовка и тела. Операция объединения двух отношений есть просто объединение двух множеств кортежей, взятых из тел соответствующих отношений. Но будет ли результат отношением? Во-первых, если исходные отношения имеют разное количество атрибутов, то, очевидно, что множество, являющееся объединением таких разнотипных кортежей нельзя представить в виде отношения. Во-вторых, пусть даже отношения имеют одинаковое количество атрибутов, но атрибуты имеют различные наименования. Как тогда определить заголовок отношения, полученного в результате объединения множеств кортежей? В-третьих, пусть отношения имеют одинаковое количество атрибутов, атрибуты имеют одинаковые наименования, но определенны на различных доменах. Тогда снова объединение кортежей не будет образовывать отношение.
Определение 1. Будем называть отношения совместимыми по типу, если они имеют идентичные заголовки, а именно:
- Отношения имеют одно и то же множество имен атрибутов, т.е. для любого атрибута в одном отношении найдется атрибут с таким же наименованием в другом отношении;
- Атрибуты с одинаковыми именами определены на одних и тех же доменах.
Некоторые отношения не являются совместимыми по типу, но становятся таковыми после некоторого переименования атрибутов. Для того чтобы такие отношения можно было использовать в реляционных операторах, вводится вспомогательный оператор переименования атрибутов.
Оператор переименования атрибутов
Оператор переименования атрибутов имеет следующий синтаксис:
R RENAME Atr1,Atr2,… AS NewAtr1,NewAtr2,…
где
R- отношение,
Atr1,Atr2- исходные имена атрибутов,
NewAtr1,NewAtr2- новые имена атрибутов.
В результате применения оператора переименования атрибутов получаем новое отношение, с измененными именами атрибутов.
