
- •Теоретический материал
- •Задание практического занятия
- •Задания 1
- •Задание 2.
- •План проведения практического занятия
- •4. Оценка активности студентов на практических занятиях
- •Приложение 2. Краткое описание языка sql
- •Сущности метаязыка
- •Определение синтаксических категорий языка sql
- •Пояснение к синтаксическим категориям языка sql
- •Грамматика простого подмножества языка sql
- •Упрощенный оператор select
КАЗАНСКИЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
им. А.Н.Туполева
Кафедра АСОИУ
В.А. Суздальцев
А.Л. Осипова
ФИЗИЧЕСКОЕ ПРОЕКТИРОВАНИЕ И ВНЕДРЕНИЕ
ИНФОРМАЦИОННЫХ
СИСТЕМ
Практическое занятие № 7
«Навигация в базе данных»
Методические указания по выполнению практических работ
Казань 2010
«Навигация в базе данных»
Практическое занятие № 7.
Теоретический материал
Для описания запросов используются языки запросов, ориентированные на реляционное исчисление или реляционную алгебру.
Целью практического занятия ознакомить студентов с языком реляционной алгебры.
В табл. 1 определены понятия, относящиеся к реляционной базе данных. Операторы реляционной алгебры формально определены в табл. 2.
Таблица 1
N |
Наименование понятия |
Обозначение |
Определение |
1 |
Атрибут |
Ai (i=1,m) |
|
2 |
Схема отношения |
R |
R={Ai/i=1,m)} |
3 |
Домен |
Dj ,(j=1,n) |
|
4 |
Домены атрибутов |
D |
D={Dj / j=1,n} |
5 |
Домен атрибута Ai |
Dom(Ai) |
Dom:RD |
6 |
Множество значений атрибутов |
D |
D= Dj j=1,n |
7 |
Кортеж |
t |
t: R D / t(Ai) dom(Ai), i=1,m |
8 |
Множество всевозможных кортежей |
U |
U = dom(R)={ t } |
9 |
А-значение кортежа t |
t(A), A R |
|
10 |
Отношение |
r |
r U |
11 |
Активный домен Ai в r |
adom(Ai, r) |
adom(Ai, r) = {d / d dom(Ai), t(t r, t(Ai) = d)} |
12 |
Отображение t, ограниченное на Z, Z-значение кортежа t |
t|Z T(Z) |
t|z t, Z R
t(Z) t, Z R |
13 |
Неопределенное значение кортежа t |
|
T()= |
14 |
Ключ отношения r со схемой r(R) |
K, K R |
(KR) & P(K) & & K’ K P(K’), P(K): t1r t2r (t1 t2 t1(K) t2(K)) |
Таблица 2
N |
Наименование понятия |
Обозначение |
Определение |
1 |
Объединение |
r = r1 r2 |
r = {t / t r1 t r2} |
2 |
Пересечение |
r = r1 r2 |
r = {t / t r1 & t r2} |
3 |
Разность |
r = r1 \ r2 |
r = {t / t r1 & t r2} |
4 |
Симметричная разность |
r = r1 r2 |
r = {t / t r1 t r2} |
5 |
Декартово произведение |
r= r1 r2 |
r={t/t= t1 t2, t1r1, t2r2} |
6 |
Выбор |
r'Сr |
С 2,r( r2U,r'r), t r( (t U &tC(r) ) C({t}) = {t}) |
7 |
Выбор |
r'СAar r' = r[Aa] |
r'={t/ t r, t(A)a, a Da AR, dom(A) Da, |
8 |
Выбор |
r'СAr r' = r[A] |
r'={t/ t r, t(A) t(B), AR,R, dom(A) dom(B), |
9 |
Проекция |
r' = z(r), r' = r[Z] |
r'={t|Z/ Z R} |
10 |
Соединение |
q= r[A]s |
q={t/ t = tr ts, t(A) t(B), AR, S, dom(A) dom(B), } |
11 |
Естественное соединение |
q=r[A*]s |
q= (r[A=]s)[(RS)\B] |
12 |
Деление |
q=r[AB]s |
q = r[R\A]\ \ ( s[B] r[R\A]\r)[R\A] |
Примеры выполнения операторов реляционной алгебры
Представление отношений в виде таблицы:
r1 (НМ) r2(НП) r3(НМ, НП) r4(НМ)
НМ1 НП1 НМ1 НП1 НМ1
НМ2 НП2 НМ1 НП2 НМ2
НМ3 НП3 НМ1 НП3 НМ4
НМ2 НП1
НМ2 НП3
НМ3 НП1.
Представление отношений в виде множества кортежей:
r1={{(НМ,НМ1)}, {( НМ,НМ2)}, {(НМ,НМ3)}};
r2={{(НП,НП1)}, {(НП,НП2)}, {(НП,НП3)}};
r3={{(НМ,НМ1), (НП,НП1)}, {(НМ,НМ1), (НП,НП2)};
{(НМ,НМ1), (НП,НП3)}, {(НМ,НМ2), (НП,НП1)};
{(НМ,НМ2), (НП,НП3)}, {(НМ,НМ3), (НП,НП1)}};
r4={{(НМ,НМ1)}, {(НМ,НМ2)}, {(НМ,НМ4)}}.
Объединение: r= r1 r4
Материалы, используемые для производства на предприятии, хранятся на складах № 1 и № 2. Список материалов хранимых на складах № 1 и № 2, задан отношениями r1 и r4. Определить все наименования материалов, используемые в производстве.
R1 (НМ) R4(НМ) R(НМ)
НМ1 НМ1 НМ1
НМ2 НМ2 НМ2
НМ3 НМ4 НМ3
НМ4.
Пересечение: r= r1 r4
Материалы, используемые для производства на предприятии, хранятся на складах № 1 и № 2. Список материалов хранимых на складах № 1 и № 2, задан отношениями r1 и r4. Определить наименования материалов хранимых и на складе №1 и на складе №2.
R1 (НМ) R4(НМ) R(НМ)
НМ1 НМ1 НМ1
НМ2 НМ2 НМ2
НМ3 НМ4.
Разность: r= r1 \ r4
Материалы, используемые для производства на предприятии, хранятся на складах № 1 и № 2. Список материалов хранимых на складах № 1 и № 2, задан отношениями r1 и r4. Определить наименования материалов хранимых и на складе №1 и отсутствующих на складе №2.
.
R1 (НМ) R4(НМ) R(НМ)
НМ1 НМ1 НМ3
НМ2 НМ2
НМ3 НМ4.
Симметричная разность: r= r1 r4
Материалы, используемые для производства на предприятии, хранятся на складах № 1 и № 2. Список материалов хранимых на складах № 1 и № 2, задан отношениями r1 и r4. Определить наименования материалов хранимых либо на складе №1 либо на складе №2.
R1 (НМ) R4(НМ) R(НМ)
НМ1 НМ1 НМ3
НМ2 НМ2 НМ4
НМ3 НМ4
Декартово произведение r= r1 r2
Материалы, используемые для производства, заданы отношением r1, а продукты, производимые на предприятии отношением r2. Построить отношения r, в котором содержится информация о том, что каждый материал используется для производства каждого продукта:
R1 (НМ) R2(НП) R(НМ, НП)
НМ1 НП1 НМ1 НП1
НМ2 НП2 НМ1 НП2
НМ3 НП3 НМ1 НП3
НМ2 НП1
НМ2 НП2
НМ2 НП3
НМ3 НП1
НМ3 НП2
НМ3 НП3.
6. Выбор: r= r3[НМ=НМ1]
Материалы, используемые при производстве каждого продукта, заданы отношением r3. Построить отношения r, содержащее информация о продуктах при производстве которых используется материал НМ1:
R3(НМ, НП) R(НМ, НП)
НМ1 НП1 НМ1 НП1
НМ1 НП2 НМ1 НП2
НМ1 НП3 НМ1 НП3
НМ2 НП1
НМ2 НП3
НМ3 НП1.
Проекция: r= r3[НП]
Материалы, используемые при производстве каждого продукта, заданы отношением r3. Определить все производимые продукты:
R3(НМ, НП) R(НП)
НМ1 НП1 НП1
НМ1 НП2 НП2
НМ1 НП3 НП3
НМ2 НП1
НМ2 НП3
НМ3 НП1.
8. Соединение: r=r4[НМ=НМ']r3
Материалы, используемые при производстве каждого продукта, заданы отношением r3, а материалы, хранимые на складе № 2 содержаться в отношении r2. Построить отношение r, содержащее информация о продуктах, при производстве которых используются материалы, только хранимые на складе № 2:
R4 (НМ) R3(НМ', НП') R(НМ, НМ', НП)
НМ1 НМ1 НП1 НМ1 НМ1 НП1
НМ2 НМ1 НП2 НМ1 НМ1 НП2
НМ4 НМ1 НП3 НМ1 НМ1 НП3
НМ2 НП1 НМ2 НМ2 НП1
НМ2 НП3 НМ3 НМ2 НП3
НМ3 НП3.
9. Естественное соединение: r=r4[НМ*НМ']r3
Материалы, используемые при производстве каждого продукта, заданы отношением r3, а материалы, хранимые на складе № 2 содержаться в отношении r2. Построить отношение r, содержащее информация о продуктах, при производстве которых используются материалы, только хранимые на складе № 2:
R4 (НМ) R3(НМ', НП') R(НМ, НП)
НМ1 НМ1 НП1 НМ1 НП1
НМ2 НМ1 НП2 НМ1 НП2
НМ4 НМ1 НП3 НМ1 НП3
НМ2 НП1 НМ2 НП1
НМ2 НП3 НМ2 НП3
НМ3 НП3.
10. Деление: r=r3[НПНП']r2
Материалы, используемые при производстве каждого продукта, заданы отношением r3. Построить отношение r, содержащее материалы, которые используются при производстве всех продуктов, заданных отношением r2:
R2 (НП') R3(НМ, НП) R(НМ)
НП1 НМ1 НП1 НМ1
НП2 НМ1 НП2
НП3 НМ1 НП3
НМ2 НП1
НМ2 НП3
НМ3 НП3.
Пример задания
Используемые сокращения: НГ-номер группы,НС- номер специальности, НЗ-номер зачетки, ФС-фамилия студента, ДЭ-дата экзамена, НД-наименование дисциплины, КФ-кафедра, ОЦ-оценка.
Найти сведения о студентах: НГ,НС НЗ, ФС, ДЭ, НД, КФ, которые не сдали экзамены. Структура базы данных задана отношениями:
r1(НГ',НС);
r2(НЗ,ФС,НГ);
r3(НД', КФ);
r4(НЗ',НД,ОЦ);
r5(НГ,ДЭ,НД').
НЗ,НЗ’
Результат выполнения задания:
s1=r2[НЗ*НЗ']r4; S1(НЗ,ФС,НГ, НД,ОЦ)
s2=s1[ОЦ<3]; S2(НЗ,ФС,НГ, НД,ОЦ)
s3=s2[НГ*НГ']r1; S3(НЗ,ФС,НГ,НД,ОЦ, НС)
s4=s3[НГ*НГ]r5; S4(НЗ,ФС,НГ,НД,ОЦ,НС,ДЭ,НД')
s5=s4[НД=НД'] ; S5(НЗ,ФС,НГ,НД,ОЦ,НС,ДЭ,НД')
s6=s5[НД*НД']r3 S6(НЗ,ФС,НГ,НД,ОЦ,НС,ДЭ,КФ)
s7=s6 [НЗ,ФС,НГ,НД,ОЦ,НС,ДЭ,КФ] S7 [НЗ,ФС,НГ,НД,ОЦ,НС,ДЭ,КФ]
Приложение1