
- •Курсовая работа
- •Оглавление:
- •Введение.
- •Постановка задачи.
- •1. Задание.
- •2. Общие требования к разработке приложений бд.
- •3. Перечень и способы самостоятельно решаемых задач.
- •4. Критерии оценки полученных компетенций по курсовой работе (заполняются преподавателем при защите работы), приведенные в таблице 1. На основе средней оценки выставляется оценка за курсовую работу.
- •Теоретическая часть. Основные понятия баз данных.
- •Принципы организации данных, лежащие в основе субд.
- •Реляционные Базы Данных
- •Системы управления базами данных
- •Проектирование Базы данных. Инфологическая модель.
- •Логическая модель.
- •Структура таблиц.
- •Проектирование sql-запросов.
- •Реализация базы данных. Классификация пользователей и их функций.
- •Структура и функции системы.
- •Руководство для пользователя.
- •Если вы выберите Запросы, то перед вами будут расположены все запросы нашей базы данных:
- •Руководство для программиста. Создание таблиц.
- •Создание приложения в Delphi.
- •Создание выпадающего списка.
- •Создание кнопок.
- •Then begin
- •Список литературы.
Проектирование sql-запросов.
Создать запрос по вычислению для каждой дисциплины количество всего часов с сортировкой по убыванию:
SELECT Disciplina.Nazvanie AS НазваниеДисциплины,
Sum(Zanyatiya.KolichestvoChasov) AS ОбщееКол
FROM Disciplina, Zanyatiya
WHERE (Disciplina.Kod=Zanyatiya.KodDisciplini)
GROUP BY Disciplina.Nazvanie
ORDER BY ОбщееКол DESC
2. Создать запрос по вычислению общего количества часов по всем дисциплинам учебного плана:
SELECT Sum(Zanyatiya.KolichestvoChasov) AS ОбщееКол
FROM Zanyatiya
3. Создать запрос по вычислению общего количества часов по видам занятий и тоже с разбивкой по циклам:
SELECT Disciplina.Cikl AS ЦиклДисциплин, Zanyatiya.TipZanyatiya AS ТипЗанятия,
Sum(Zanyatiya.KolichestvoChasov) AS ОбщееКол
FROM Disciplina, Zanyatiya
WHERE Disciplina.Kod=Zanyatiya.KodDisciplini
GROUP BY Disciplina.Cikl, Zanyatiya.TipZanyatiya
4. Создать запрос по вычислению общего количества часов по циклам дисциплин с указанием обязательных и самостоятельных часов с сортировкой по убыванию:
SELECT Disciplina.Cikl AS ЦиклДисциплин,
Sum(Zanyatiya.KolichestvoChasov) AS ОбщееСамост
FROM Disciplina, Zanyatiya
WHERE ((Disciplina.Kod=Zanyatiya.KodDisciplini) AND ((Zanyatiya.TipZanyatiya="Individ.rabota") OR (Zanyatiya.TipZanyatiya="Samost.rabota")))
GROUP BY Disciplina.Cikl
ORDER BY ОбщееСамост DESC
SELECT Disciplina.Cikl AS ЦиклДисциплин,
Sum(Zanyatiya.KolichestvoChasov) AS ОбщееОбяз
FROM Disciplina, Zanyatiya
WHERE ((Disciplina.Kod=Zanyatiya.KodDisciplini) AND ((Zanyatiya.TipZanyatiya="Lekciya") OR (Zanyatiya.TipZanyatiya="Practika")))
GROUP BY Disciplina.Cikl
ORDER BY ОбщееОбяз DESC
5. Создать запрос по выдачи для каждой дисциплины ФИО преподавателя, его должность, кафедру на которой он работает и контактный телефон:
SELECT Disciplina.Nazvanie AS НазваниеДисциплины,
Prepodavatel.FIO AS ФИОПреподавателя,
Prepodavatel.Dolshnost AS Должность, Prepodavatel.Kafedra AS Кафедра,
Prepodavatel.Telefon AS Телефон
FROM Prepodavatel,Disciplina,Prepodaet
WHERE (Disciplina.Kod = Prepodaet.KodDisciplini AND Prepodavatel.TabNomerPrepodavatelya = Prepodaet.TabNomerPrepodavatelya)
6. Создать запрос для каждого семестра по выдаче для каждой дисциплины этого семестра общего количества часов, количества занятий различного вида (лекций, практик и т.д.) с указанием коэффициента значимости. Для этого использовать формулу пересчета часов в количество (деление на два). В этом запросе отразить отчетность по каждому виду занятий, ФИО преподавателя:
SELECT Disciplina.Semestr AS Семестр, Disciplina.Nazvanie AS Дисциплина,
Prepodavatel.FIO AS ФИОПреподавателя, Zanyatiya.TipZanyatiya AS ТипЗанятия, Sum(Zanyatiya.KolichestvoChasov) AS ОбщееКол,
Zanyatiya.FormaOtchetnosti AS ФормаОт, Zanyatiya.KoefZnachimosti AS КоэффициентЗн, Sum(Zanyatiya.KolichestvoChasov)/2 AS КолЗанятий
FROM Disciplina, Zanyatiya, Prepodavatel,Prepodaet
WHERE (Disciplina.Kod=Prepodaet.KodDisciplini AND Prepodavatel.TabNomerPrepodavatelya=Prepodaet.TabNomerPrepodavatelya AND Disciplina.Kod=Zanyatiya.KodDisciplini)
GROUP BY Disciplina.Semestr, Disciplina.Nazvanie, Prepodavatel.FIO , Zanyatiya.TipZanyatiya, Zanyatiya.FormaOtchetnosti,
Zanyatiya.KoefZnachimosti
7. Создать аналогичный запрос для каждого преподавателя по выдаче для каждой его дисциплины общего количества часов, количества занятий различного вида (лекций, практик и т.д.). Для этого использовать формулу пересчета часов в количество (деление на два). Сформировать общее количество часов для каждого преподавателя и суммарное количество часов для него по семестрам, считая, что в осенний семестр включаются все дисциплины с нечетными номерами, а в весенний семестр- все дисциплины с четными номерами:
SELECT Prepodavatel.FIO AS ФИОПреподавателя, Disciplina.Nazvanie, Zanyatiya.TipZanyatiya AS ТипЗан, SUM(Zanyatiya.KolichestvoChasov) AS ОбщееКол,
Sum(Zanyatiya.KolichestvoChasov)/2 AS КолЗан
FROM Prepodavatel, Prepodaet, Disciplina, Zanyatiya
WHERE (Prepodavatel.TabNomerPrepodavatelya=Prepodaet.TabNomerPrepodavatelya AND Prepodaet.KodDisciplini=Disciplina.Kod AND
Disciplina.Kod=Zanyatiya.KodDisciplini )
GROUP BY Prepodavatel.FIO, Disciplina.Nazvanie, Zanyatiya.TipZanyatiya
SELECT Prepodavatel.FIO AS ФИОПреподавателя, Sum(Zanyatiya.KolichestvoChasov) AS ОбщееКол
FROM Disciplina,Zanyatiya,Prepodaet,Prepodavatel
WHERE (Disciplina.Kod=Zanyatiya.KodDisciplini AND Disciplina.Kod=Prepodaet.KodDisciplini AND Prepodaet.TabNomerPrepodavatelya=Prepodavatel.TabNomerPrepodavatelya)
GROUP BY Prepodavatel.FIO, Disciplina.Semestr
ORDER BY ОбщееКол