Аннотация курса: В спецкурсе будут изложены основы современной теории баз данных:
В первую очередь будет рассмотрена реляционная модель данных: реляционная алгебра, реляционное исчисление, язык определения и моделирования данными SQL.
Будут изложены основные подходы к проектированию баз данных (ER-моделирование структур данных, учет функциональных и многозначных зависимостей в реляционной модели, оптимизация основных запросов и т.д.).
Задача 1: Рассмотрим схему отношения R(A, B, C, D) и следующий набор FD: AB → C, C → D и D → A.
a) Каковы все нетривиальные FD, которые следуют из заданных FD? Ограничьтесь рассмотрением FD с единственным атрибутом в правой части.
b) Каковы все ключи отношения R?
c) Каковы все суперключи R, не являющиеся ключами?
Задача 2: Выполните задания предыдущего упражнения для следующих схем отношений и наборов FD:
i) S(A, B, C, D) с FD A → B, B → C и B → D.
ii) T(A, B, C, D) с FD AB → C, BC → D, CD → A и AD → B.
iii) U(A, B, C, D) с FD A → B, B → C, C → D и D → A.
Задача 3: Докажите, что (X +)+ = X +.
Задача 4: Пусть дано отношение R(A, B, C, D, E) с некоторым набором FD и необходимо отыскать FD, справедливые для отношения, которое получено проецированием R на схему S(A, B, C). Найдите FD, удовлетворяющие S, если наборы FD для R таковы:
a) AB → DE, C → E, D → C и E → A;
b) A → D, BD → E, AC → E и DE → B;
c) AB → D, AC → E, BC → D, D → A и E → B;
d) A → B, B → C, C → D, D → E и E → A.
В каждом из случаев достаточно предъявить минимальный базис для полного множества FD, справедливых для S.
Задача 5: Даны следующие схемы отношений и FD’s.
a) R(A, B, C,D) с FD's AB → C, C → D, and D → A.
b) R(A, B,C, D) с FD's B → C и B → D.
c) R(A, B,C, D) с FD's AB → C, BC → D, CD → A и AD → B.
d) R(A, B,C, D) с FD's A → B, B → C, C → D и D → A.
e) R(A, B, C, D, E) с FD's AB → C, DE → C, и B → D.
f) R(A, B, C, D, E) с FD's AB → C, C → D, D → B и D → E.
Выполнить:
i) Отметить все нарушения BCNF. Не забыть принять во внимание не только данные FD, но и логические следствия из них. Не нужно отмечать FD, содержащие в правой части более одного атрибута.
ii) Произвести декомпозицию (насколько это нужно) с получаемыми компонентами в BCNF.
iii) Отметить все нарушения 3NF.
iv) Произвести декомпозицию (насколько это нужно) с получаемыми компонентами в 3NF.
Задача 6: Спроектируйте структуру, адекватно описывающую университетскую базу данных, которая должна включать информацию о студентах, факультетах, профессорах, курсах, а также о том, какие студенты слушают какие курсы и какие профессора преподают эти курсы, какие курсы читаются на том или ином факультете, об отметках студентов и лучших достижениях студентов по каждому курсу. Вы вправе представить на ER-диаграмме и другие данные, которые покажутся вам уместными и значимыми. Это задание предусматривает большую свободу действий, нежели предыдущие, и при его выполнении вам придется принимать самостоятельные решения, касающиеся свойств множественности связей, выбора их типов и даже того, какого рода информация достойна представления в базе данных.
Задача 7: Пусть даны таблицы Государств, Поставщиков и Товаров. Построить SQL-запрос для выдачи всех поставщиков из государства N, которые поставляют более пятидесяти различных товаров.