Автор работы: Пользователь скрыл имя, 09 Декабря 2013 в 18:42, курсовая работа
Базы данных являются составной частью информационной системы (ИС), осуществляющей хранение и обработку данных в широком смысле, включая ввод и корректировку данных, удаление данных, выполнение различных запросов, арифметические и логические преобразования данных, составление отчетов, выдачу информации в различных формах на экране и в бумажном виде.
Введение 3
1. Проектирование базы данных 6
1.1. Инфологическая модель базы данных 6
1.1.1. Характеристика связей и язык моделирования 6
1.1.2. Классификация сущностей 7
1.1.3. О первичных и внешних ключах 7
1.1.4. Ограничения целостности 8
2. СУБД Oracle Database XE 9
2.1. Назначения языка SQL, основные операторы 9
2.2. Приложения на СУБД Oracle Database XE 11
3. Постановка задачи 12
3.1. Описание инфологической модели базы данных ВУЗа на языке инфологического проектирования 12
Инфологическая модель БД созданная в CASEStudio(рис.10) 17
3.3. Вертикальная диаграмма 17
3.4. Создание таблицы на СУБД Oracle Database XE 18
3.5. Создание запросов на SQL 19
3.6. Создание пользовательских приложений на СУБД Oracle Database XE 24
4. Заключение 29
5. Литература 30
Учебный процесс регламентируется учебным планом, в котором указывается, какие учебные дисциплины на каких курсах и в каких семестрах читаются, с указанием количества часов на каждый вид занятий по дисциплине (виды занятий: лекции, семинары, лабораторные работы, консультации, курсовые работы, ИР и т.д.) и формы контроля (зачет, экзамен). Сведения о проведенных экзаменах и зачетах собираются деканатом.
Student(id_stud, imya_stud, familiya_stud, data_rojd, stipendia, deti, pol, id_gruppa)
Gruppa(id_gruppa, gruppa, kurs, id_fakultet)
Fakultet(id_fakultet, fakultet, den_sozdaniya, imya_dekana, familiya_dekana)
Kafedra(id_kafedra, kafedra, id_fakultet)
Prepod(id_prep, imya_prep, familiya_prep, kategoriya, zarplata, id_kafedra)
Vid_zanyatiy(id_zanyatiya, vid)
Predmet(id_predmet, predmet)
Otsenki(id_stud, id_predmet, otsenka)
Raspisaniya(id_zanyatiya, id_prep, id_predmet, id_gruppa, den)
Ekzamen(id_ekzamen, id_prep, id_predmet, id_gruppa, semestr)
Bali_po_ekzamenam(id_stud, id_ekzamen, ball)
Таблица 1. Таблица “Student”
Student |
имя |
ключ |
тип |
Домен |
id студента |
id_stud |
первичный |
целое |
Уникальное |
Имя студента |
imya_stud |
текстовое |
а-я, А-Я | |
Фамилия студента |
familiya_stud |
текстовое |
а-я, А-Я | |
Дата рождения студента |
data_rojd |
текстовое |
1980-1994 | |
Стипендиа студента |
stipendia |
дата |
183500, 134866, 255460 | |
Наличие детей |
deti |
текстовое |
есть, нет | |
Пол студента |
pol |
текстовое |
М, Ж | |
id группы |
id_gruppa |
внешний |
целое |
Набор значений из поля id_gruppa таблицы Gruppa |
Таблица 2. Таблица “Gruppa”
Gruppa |
имя |
ключ |
тип |
Домен |
id группы |
id_gruppa |
первичный |
целое |
Уникальное |
Название группы |
gruppa |
текстовое |
A-Z, “-”, 0-9 | |
Курс группы |
kurs |
целое |
1, 2, 3, 4 | |
id факултета |
id_fakultet |
внешний |
текстовое |
Набор значений из поля id_fakultet таблицы Fakultet |
Таблица 3. Таблица “Fakultet”
Fakultet |
имя |
ключ |
тип |
Домен |
id факультета |
id_fakultet |
первичный |
целое |
Уникальное |
Название факультета |
fakultet |
текстовое |
а-я, А-Я | |
Год образования |
den_sozdaniya |
Дата |
1931-2008 | |
Имя декана |
imya_dekana |
текстовое |
а-я, А-Я | |
Фамилия декана |
familiya_dekana |
текстовое |
а-я, А-Я |
Таблица 4. Таблица “Kafedra”
Kafedra |
имя |
ключ |
тип |
Домен |
Id кафедры |
id_kafedra |
первичный |
целое |
Уникальное |
Название кафедры |
kafedra |
текстовое |
А-Я, а-я | |
id факультета |
id_fakultet |
внешний |
Целое |
Набор значений из поля id_fakultet таблицы Fakultet |
Таблица 5. Таблица “Prepod”
Prepod |
имя |
ключ |
тип |
Домен |
id преподавателя |
id_prep |
первичный |
целое |
Уникальное |
Имя преподователья |
imya_prep |
текстовое |
А-Я, а-я | |
Фамилия преподователья |
familiya_prep |
текстовое |
А-Я, а-я | |
Категория |
kategoriya |
текстовое |
А-Я, а-я | |
Зарплата преподователья |
zarplata |
текстовое |
0-9, сум | |
id кафедры |
id_kafedra |
внешний |
целое |
Набор значений из поля id_kafedra таблицы Kafedra |
Таблица 6. Таблица “Vid_zanyatiy”
Vid_zanyatiy |
имя |
ключ |
тип |
Домен |
id занятия |
id_zanyatiya |
первичный |
целое |
Уникальное |
Вид занятия |
vid |
текстовое |
семинар, консультфция, лекция, курсавая работа, лабораторная работа |
Таблица 7. Таблица “Predmet”
Predmet |
имя |
ключ |
тип |
Домен |
id предмета |
id_predmet |
первичный |
целое |
Уникальное |
Название предмета |
predmet |
текстовое |
а-я, А-Я |
Таблица 8. Таблица “Otsenki”
Otsenki |
имя |
ключ |
тип |
Домен |
id студента |
id_stud |
внешний |
целое |
Набор значений из поля id_stud таблицы Student |
id предмета |
id_predmet |
внешний |
целое |
Набор значений из поля id_predmet таблицы Predmet |
Отценка студента по предмету |
otsenka |
целое |
56-100 |
Таблица 9. Таблица “Raspisaniya”
Raspisaniya |
имя |
ключ |
тип |
Домен |
id занятия |
id_zanyatiya |
внешний |
целое |
Набор значений из поля id_zanyatiya таблицы Vid_zanyatiya |
id преподавателя |
id_prep |
внешний |
целое |
Набор значений из поля id_prep таблицы Prepod |
id предмета |
id_predmet |
внешний |
целое |
Набор значений из поля id_predmet таблицы Predmet |
id группы |
id_gruppa |
внешний |
целое |
Набор значений из поля id_gruppa таблицы Gruppa |
день занятия |
den |
текстовое |
понедельник, вторник, среда, четверг, пятница, суббота |
Таблица 10. Таблица “Ekzamen”
Ekzamen |
имя |
ключ |
тип |
Домен |
id экзамена |
id_ekzamen |
внешний |
целое |
Набор значений из поля id_ekzamen таблицы Vid_ekzamen |
id преподавателя |
id_prep |
внешний |
целое |
Набор значений из поля id_prep таблицы Prepod |
id предмета |
id_predmet |
внешний |
целое |
Набор значений из поля id_predmet таблицы Predmet |
id группы |
id_gruppa |
внешний |
целое |
Набор значений из поля id_gruppa таблицы Gruppa |
семестр |
den |
целое |
1, 2, 3, 4, 5, 6, 7, 8 |
Таблица 11. Таблица “Bali_po_ekzamenam”
Bali_po_ekzamenam |
имя |
ключ |
тип |
Домен |
id студента |
id_stud |
внешний |
целое |
Набор значений из поля id_stud таблицы Student |
id экзамена |
id_ekzamen |
внешний |
целое |
Набор значений из поля id_ekzamen таблицы Ekzamen |
Балы студента по экзамену |
otsenka |
целое |
56-100 |
3.2. Расширенная инфологическая модель ER модель
На рис. 9 изображена ER диаграмма базы данных ВУЗа
рис. 9 ER диаграмма БД
рис. 10 ER диаграмма в CASEStudio БД
рис. 11 Вертикальная диаграмма БД
CREATE TABLE RASPISANIYA (
ID_ZANYATIYA NUMBER (15),
ID_PREP NUMBER (15),
ID_PREDMET NUMBER (15),
ID_GRUPPA NUMBER (15),
DEN VARCHAR2 (50));
рис. 12 Таблица “Raspisaniya”
CREATE TABLE STUDENT (
ID_STUD NUMBER (15) NOT NULL PRIMARY KEY,
IMYA_STUD VARCHAR2 (50),
FAMILIYA_STUD VARCHAR2 (50),
DATA_ROJD_STUD DATE,
STIPENDIA NUMBER (15),
DETI VARCHAR2 (10),
ID_GRUPPA NUMBER (15),
GOROD VARCHAR2 (100),
POL VARCHAR2 (4));
рис. 13 Таблица “Student”
Запросы:
1. Получить перечень и общее число студентов указанных групп либо указанного курса (курсов) факультета полностью, году рождения, возрасту, признаку наличия детей, по признаку получения и размеру стипендии:
а) По группам(рис.14):
Select "STUDENT"."IMYA_STUD" as "Имя",
"STUDENT"."FAMILIYA_STUD" as "Фамилия",
"STUDENT"."DATA_ROJD_STUD" as "Дата рожд.",
"STUDENT"."POL" as "Пол",
"STUDENT"."GOROD" as "Место жител.",
"STUDENT"."STIPENDIA" as "Стипендия",
"STUDENT"."DETI" as "Наличия детей",
"GRUPPA"."GRUPPA" as "Группа"
From "GRUPPA" "GRUPPA",
"STUDENT" "STUDENT"
Where "STUDENT"."ID_GRUPPA"="GRUPPA"
And "GRUPPA"."ID_GRUPPA" =1
рис. 14 Результат запроса
б) По Курсам(рис.15):
Select "STUDENT"."IMYA_STUD" as "Имя",
"STUDENT"."FAMILIYA_STUD" as "Фамилия",
"STUDENT"."DATA_ROJD_STUD" as "Дата Рожд.",
"STUDENT"."POL" as "Пол",
"STUDENT"."GOROD" as "Место Житель.",
"STUDENT"."STIPENDIA" as "Стипендия",
"STUDENT"."DETI" as "Наличия детей",
"GRUPPA"."GRUPPA" as "Группа",
"GRUPPA"."KURS" as "Курс"
From "GRUPPA" "GRUPPA",
"STUDENT" "STUDENT"
Where "STUDENT"."ID_GRUPPA"="GRUPPA"
And "GRUPPA"."KURS" =3
рис. 15 Результат запроса
2. Получить список и общее число студентов указанных групп, сдавших зачет либо экзамен по указанной дисциплине с указанной оценкой:
а) Оценка по экзамену(рис.16):
Select "STUDENT"."IMYA_STUD" as "Имя",
"STUDENT"."FAMILIYA_STUD" as "Фамилия",
"PREDMET"."IMYA_PREDMET" as "Предмет",
"BALI_PO_EKZAMENAM"."BALL" as "Балл по эк."
From "PREDMET" "PREDMET",
"EKZAMEN" "EKZAMEN",
"BALI_PO_EKZAMENAM" "BALI_PO_EKZAMENAM",
"STUDENT" "STUDENT"
Where "STUDENT"."ID_STUD"="BALI_PO_
And "BALI_PO_EKZAMENAM"."ID_