Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Управление_базами_данных&A2007_New.doc
Скачиваний:
17
Добавлен:
25.09.2019
Размер:
6.43 Mб
Скачать

Содержание таблицы Файл Содержание таблицы Дерево

Код

Имя

Тип

Длина

Файл

Папка

1

IMG_0855

jpeg

1043675

IMG_0855

Фото

2

IMG_0865

jpeg

1017453

IMG_0865

Фото

3

лекция

doc

2176582

лекция

Documents

4

конспект по СУБД

Adobe Acrobat

88314806

конспект по СУБД

Documents

5

metod_TOXOD

hlp

23444

metod_TOXOD

Tanya

6

Lab_Excel

xls

18666

Lab_Excel

Tanya

Содержание таблицы Каталог

КодКаталога

Папка

Родитель

Диск

1

Program Files

d:

2

Documents

e:

3

Nick

e:

4

Tanya

flash

5

DrWeb

Program Files

d:

6

MSOffice

Program Files

d:

7

Фото

Nick

e:

1. По записи на языке SQL нарисовать бланки запросов в режиме Конструктора и описать действия, выполняемые данными запросами.

Запрос 1.1.

SELECT Каталог.Диск, Каталог.Родитель, Каталог.Папка, Файл.Имя, Файл.Тип, Файл.Длина

FROM Файл INNER JOIN (Каталог INNER JOIN Дерево ON Каталог.КодКаталога = Дерево.Папка) ON Файл.Код = Дерево.Файл;

Запрос 1.2.

SELECT Дерево.Папка, Count(Файл.Имя) AS [Count-Имя]

FROM Файл INNER JOIN Дерево ON Файл.Код = Дерево.Файл

GROUP BY Дерево.Папка;

Запрос 1.3.

SELECT [Каталог]![Диск] & "\" & iif([Каталог]![Родитель]<>null, [Каталог]![Родитель] & "\" ) & [Каталог]![Папка] & "\" & [Файл]![Имя] AS Путь

FROM Файл INNER JOIN (Каталог INNER JOIN Дерево ON Каталог.КодКаталога = Дерево.Папка) ON Файл.Код = Дерево.Файл;

Запрос 1.4.

SELECT Папка INTO Подкаталоги

FROM Каталог

WHERE Родитель<>null;

Запрос 1.5.

TRANSFORM Sum(Файл.Длина) AS [Sum-Длина]

SELECT Каталог.Диск

FROM Каталог INNER JOIN (Файл INNER JOIN Дерево ON Файл.Код = Дерево.Файл) ON Каталог.КодКаталога = Дерево.Папка

GROUP BY Каталог.Диск

PIVOT Каталог.Папка;

2. Разработать запросы на языке SQL и нарисовать бланки этих запросов в режиме Конструктора.

Запрос 2.1. Запрос, который подсчитает, сколько файлов на диске (имя диска задать как параметр).

Запрос 2.2. Найти самый длинный файл.

Запрос 2.3. Найти папки, не имеющие вложенных каталогов.

Запрос 2.4. Подсчитать место, занимаемое на каждом диске содержимым файлов.

3. Для запросов 1.1, 1.3, 1.4, 2.4 нарисовать таблицы результатов.

4. Операции реляционной алгебры:

4.1. Нарисовать таблицу результатов для операции 4=flash(Каталог) или Каталог(Диск = flash)

4.2. В таблице К хранится информация о размещении сотрудников по кабинетам. В таблице C хранится информация о сотрудниках. Какой оператор соединения используется для результата, который получен в таблице __ JOIN C. Описать смысловое значение полученного отношения.

К

C

К__JOIN С

Кабинет

Сотрудник

Сотрудник

Фамилия

Кабинет

Фамилия

1

1

1

Иванов

1

Иванов

2

4

2

Петров

1

Петров

1

2

3

Сидоров

2

Вариант 8. База данных «Дети» имеет схему данных, представленную на рис. 7.10.

Рис. 7.10. Схема базы данных «Дети»

Содержание таблицы Работник

КодРаботника

ФИО

Должность

Отдел

ГодРождения

1

Разоренова Т.Р.

ст. преподаватель

Таможенное дело

1955

2

Галай Т.А.

ст. преподаватель

Таможенное дело

1965

3

Пищик Т.В.

доцент

Таможенное дело

1970

4

Копко Ю.А.

преподавтель

Таможенное дело

1977

5

Бухвалова И.А.

ст. преподаватель

ПОВТиАС

1957

6

Кучерявенко Л.И.

ст. преподаватель

ПОВТиАС

1955

7

Разоренов Н.А.

доцент

ПОВТиАС

1948

8

Гурский Н.Н.

доцент

ПОВтиАС

1954

9

Гурская Л.Б.

инженер

ПОВТиАС

1950

Содержание таблицы Ребенок Содержание таблицы Дети

КодРебенка

Фамилия

Имя

ДатаРождения

КодРаботника

КодРебенка

1

Разоренов

Дмитрий

05.03.1983

5

5

2

Галай

Виталий

19.06.1985

5

6

3

Пищик

Иван

18.08.1992

2

2

4

Пищик

Алина

21.12.1995

9

7

5

Дежурко

Мария

11.11.1989

8

7

6

Дежурко

Юля

03.05.1985

6

8

7

Голубева

Александра

12.12.1988

6

9

8

Кучерявенко

Полина

05.06.1990

3

4

9

Смитт

Анна

13.01.1982

3

3

7

1

1

1

1. По записи на языке SQL нарисовать бланки запросов в режиме Конструктора и описать действия, выполняемые данными запросами.

Запрос 1.1.

SELECT Работник.ФИО, Ребенок.Фамилия, Ребенок.Имя

FROM Ребенок INNER JOIN (Работник INNER JOIN Дети ON Работник.КодРаботника = Дети.КодРаботника) ON Ребенок.КодРебенка = Дети.КодРебенка;

Запрос 1.2.

SELECT Работник.ФИО, Count(Дети.КодРебенка) AS [Сколько детей]

FROM Работник INNER JOIN Дети ON Работник.КодРаботника = Дети.КодРаботника

GROUP BY Работник.ФИО;

Запрос 1.3.

SELECT (Left([ФИО], InStr([ФИО]," ")-1)) AS фамилия

FROM Работник

WHERE КодРаботника IN (SELECT КодРаботника FROM Дети);

Запрос 1.4.

SELECT Ребенок.Фамилия, Ребенок.Имя, MonthName(Month([ДатаРождения]),1) AS [Месяц Рождения]

FROM Ребенок;

Запрос 1.5.

TRANSFORM Count(Фамилия) AS [Количество Детей]

SELECT ФИО, Count(Фамилия) AS [Всего Детей]

FROM Ребенок INNER JOIN (Работник INNER JOIN Дети ON Работник.КодРаботника = Дети.КодРаботника) ON Ребенок.КодРебенка = Дети.КодРебенка

GROUP BY ФИО

PIVOT Отдел;

2. Разработать запросы на языке SQL и нарисовать бланки этих запросов в режиме Конструктора.

Запрос 2.1. Запрос, который подсчитает, сколько детей в каждом отделе.

Запрос 2.2. Найти самого взрослого ребенка

Запрос 2.3. Найти тех, кто не имеет детей.

Запрос 2.4. Кому надо сделать новогодний подарок, если их дают детям до 10 лет.

3. Для запросов 1.1, 1.3, 1.4, 2.4 нарисовать таблицы результатов.

4. Операции реляционной алгебры:

4.1. Нарисовать таблицу результатов для операции 3=Дмитрий Or 3=Юля(Ребенок) или Ребенок(Имя = Дмитрий или Имя=Юля)

4.2. В таблице К хранится информация о размещении сотрудников по кабинетам. В таблице С хранится информация о сотрудниках. Какой оператор соединения используется для результата, который получен в таблице К __ JOIN C. Описать смысловое значение полученного отношения.

К

C

К__JOIN С

Кабинет

Сотрудник

Сотрудник

Фамилия

Кабинет

Фамилия

1

1

1

Иванов

1

Иванов

2

4

2

Петров

1

Петров

1

2

3

Сидоров