Санкт-Петербургский Государственный Технический Университет
Факультет переподготовки специалистов
КУРСОВОЙ ПРОЕКТ
Дисциплина: Основы построения баз данных
Тема: Проектирование БД
Выполнил студент гр. I __________________ Бородин Г.В.
Руководитель ____________________ Дюдин М.В.
"____" _________________ 2004 г.
Санкт-Петербург
2004
ВВЕДЕНИЕ
Вариант № 5.
Что может быть проще записной книжки, но после безуспешных попыток найти, кто из друзей занимается ремонтом квартир, Вы взялись за дело серьезно.
a) Все персоны разбиты на группы по только Вам известным признакам (инженеры занимаются ремонтом, любят сыр и т.д.). Причем каждая персона может входить в несколько групп.
b) Структура групп иерархическая (институт-кафедра-группа)
c) Информация по персонам быстро накапливается, а Вы не хотите постоянно перестраивать БД, нужно позволить работать с произвольным числом полей.
d) И еще не плохо бы записывать в журнал, что кому обещано, и от кого чего ждать (отдать 100 рублей долга или не забыть забрать любимую дрель).
Подсказка, минимальная информация:
ЗАДАНИЕ
1. Построить ER-диаграмму
2. Составить переменные-отношения
3. Составить запросы к БД
a. Список персон по количеству телефонов отсортированный по убыванию
b. Пары людей с одинаковыми телефонами
c. Список должников с суммами
1. ER-ДИАГРАММА
|
2. ПЕРЕМЕННЫЕ-ОТНОШЕНИЯ
Персоны: PER |
IDPR# |
Name |
Телефоны: PHN |
IDPH# |
IDPR |
PhNumb |
Дополнительная информация: EXINF |
IDEI# |
IDPR |
EIFld |
EIVal |
Группы: GRP |
IDG# |
IDGU |
IDPR |
GName |
Журнал: BOOK |
IDBK# |
IDPR |
Date |
BkMark |
Адреса: ADRS |
IDAD# |
IDPR |
Address |
Связь: LPRGR |
IDPR# |
IDGR# |
3. ЗАПРОСЫ К БД
a) Список персон по количеству телефонов отсортированный по убыванию
SELECT PER.NAME, Count(PHN.IDPH)
FROM PER, PHN
WHERE PER.IDPR = PHN.IDPR
GROUP BY PER.NAME
ORDER BY Count(PHN.IDPH) DESC
b) Пары людей с одинаковыми телефонами
SELECT PER.NAME, PER1.NAME, PHN.PhNumb
FROM PER, PER AS PER1, PHN, PHN AS PHN1
WHERE (PER.IDPR=PHN.IDPR)
AND (PER1.IDPR = PHN1.IDPR)
AND (PHN.PhNumb = PHN1.PhNumb)
c) Список должников с суммами
SELECT PER.NAME, BkMark, DATE
FROM PER, LPRGR, GRP, BOOK
WHERE (PER.IDPR = LPRGR.IDPR)
AND (LPRGR.IDG = GRP.IDG)
AND (GRP.Name LIKE %Должники%)
AND (BOOK.IDPR = PER.IDPR)
ORDER BY PER.NAME DESC
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.