- •1. Модели данных.
- •2.Реляционная модель. 3.Отношения: определение, свойства, ключ.
- •Реляционные ключи. Начало{
- •4. Реляционные ключи (дополнительно можно взять из вопроса 2).
- •5. Реляционные языки.
- •6. Реляционная алгебра. (Унарные операции).
- •7. Реляционная алгебра. ( Бинарные операции).
- •8. Реляционное исчисление доменов.
- •9. Реляционное исчисление кортежей.
- •10. Языки баз данных.
- •11. Концепция er-модели.
- •12. Основные положения проектирования схем реляционных баз данных.
- •13. Избыточность данных и аномалии обновления.
- •14. Функциональные зависимости и нормализация отношений.
- •14. Функциональные зависимости и нормализация отношений.
- •15. Ограничения целостности и пять основных типов подобных ограничений.
- •16. Типы стратегий, которые могут применяться для обработки попыток удаления строки родительского отношения, на которую имеются ссылки в дочернем отношении.
- •17. Третья нормальная форма и нормальная форма Бойса-Кодда.
- •17. Третья нормальная форма и нормальная форма Бойса-Кодда.
- •18. Обзор процесса нормализации.
- •19. Основные этапы проектирования баз данных.
- •20. Смысл понятия "представление пользователя" и основные источники информации для него.
- •21. Методология концептуального проектирования.
- •22. Методология логического проектирования. 23. Основные задачи логического этапа проектирования базы данных.
- •24. Проверка логической модели с помощью правил нормализации и в отношении транзакций пользователей.
- •25. Определение требований поддержки целостности данных.
- •26. Общий обзор методологии физического проектирования реляционных баз данных.
- •27. Основные этапы обработки запросов.
- •28. Эксплуатация баз данных.
- •29. Администрирование баз данных.
- •30. Защита информации в базах данных.
8. Реляционное исчисление доменов.
В исчислении доменов областью определения переменных являются не отношения, а домены. Применительно к базе данных СОТРУДНИКИ-ОТДЕЛЫ можно говорить, например, о доменных переменных ИМЯ (значения - допустимые имена) или НОСОТР (значения - допустимые номера сотрудников).
Основным формальным отличием исчисления доменов от исчисления кортежей является наличие дополнительного набора предикатов, позволяющих выражать так называемые условия членства. Если R - это n-арное отношение с атрибутами a1, a2, ..., an, то условие членства имеет вид R (ai1:vi1, ai2:vi2, ..., aim:vim) (m <= n),
где vij - это либо литерально задаваемая константа, либо имя кортежной переменной. Условие членства принимает значение true в том и только в том случае, если в отношении R существует кортеж, содержащий указанные значения указанных атрибутов. Если vij - константа, то на атрибут aij задается жесткое условие, не зависящее от текущих значений доменных переменных; если же vij - имя доменной переменной, то условие членства может принимать разные значения при разных значениях этой переменной.
Во всех остальных отношениях формулы и выражения исчисления доменов выглядят похожими на формулы и выражения исчисления кортежей. В частности, конечно, различаются свободные и связанные вхождения доменных переменных.
Для примера сформулируем с использованием исчисления доменов запрос "Выдать номера и имена сотрудников, не получающих минимальную заработную плату" (будем считать для простоты, что мы определили доменные переменные, имена которых совпадают с именами атрибутов отношения СОТРУДНИКИ, а в случае, когда требуется несколько доменных переменных, определенных на одном домене, мы будем добавлять в конце имени цифры):
СОТР_НОМ, СОТР_ИМЯ WHERE EXISTS СОТР_ЗАРП1
(СОТРУДНИКИ (СОТР_ЗАРП1) AND
СОТРУДНИКИ (СОТР_НОМ, СОТР_ИМЯ, СОТР_ЗАРП) AND
СОТР_ЗАРП > СОТР_ЗАРП1)
Реляционное исчисление доменов является основой большинства языков запросов, основанных на использовании форм. В частности, на этом исчислении базировался известный язык Query-by-Example, который был первым (и наиболее интересным) языком в семействе языков, основанных на табличных формах.
9. Реляционное исчисление кортежей.
Реляционное исчисление доменов и кортежей является основоположником непроцедурных языков. На их основе написан язык SQL.
Существуют язык БД – QBE (Query By Example). В его основу положено реляционное исчисление доменов
Реляционное исчисление кортежей состоит в отыскании таких кортежей, для которых предикат является истинным.
Например: staff – отношение работник.
Staff (code, FIO, salary)
RANGE OF s IS – определяем область, на которой задается отношение.
Атрибуты s.code, s.FIO | условие s.salary.
Если необходимо указать число кортежей, то используется формула квантор общности () и квантор сущности ().
Например: RANGE OF s IS STAFF
s {s.FIO=”Иванов”s.salary>300 000}
Квант общности используется, когда необходимо применять его ко всем экземплярам отношений.
s – переменная. Переменные делятся на свободные и связные (в данном случае s – связное).
Branch (OTD, NotD, City)
RANGE OF b IS Branch
b {b.OTD, b.NotD | b.City=”Минск”}
Используются переменные, которые берутся из доменов отношения. Если у нас p (d1, d2, ... , dn) – представляют предикат заданный на переменных d1, d2, ... , dn, то множество всех переменных { d1, d2, ... , dn | P(d1, d2, ... , dn)}
Отыщем сотрудников, заработная плата которых превышает заданную:
{FIO | salary (staff(FIO, salary) salary>250 000)}