Автор работы: Пользователь скрыл имя, 23 Октября 2011 в 09:45, курсовая работа
Целью курсовой работы является проектирование и построение концептуальной информационной модели предметной области «Учебный процесс в ВУЗе». В начало работы мне была выдана соответствующая документация. В основе базы данных по предложенной предметной области лежат общие сведения об учебном процессе в ВУЗе, а также регулярные запросы пользователей и файлов существующей системы обработки информации. В процессе изучения документации было принято решение о создании двух виртуальных документов: «Сведения о факультетах» и «Контингент студентов». Они необходимы для дополнения исходных отношений и расчета вторичных атрибутов.
Содержание 2
Задание 3
Введение 4
Глава 1. Описание исходных отношений 5
1.1.Анализ документов 5
1.2.Отношения 6
1.3. Описание словарей и кодификаторов 13
1.4. Сопоставимость атрибутов 14
Глава 2. Уточнение исходных отношений. 15
2.1. Свертка и нормализация отношений 15
2.2. Объединение отношений 17
2.3. Отношения после нормализации 18
Глава 3. Связывание отношений и простых структур в единую схему данных 20
3.1. Логическая модель 20
3.2.Физическая модель 21
3.3. Дополнительные объекты БД 22
3.3. Расчет вторичных атрибутов 23
Заключение 26
Приложение 27
Код DDL 27
Кодификатор К2 для атрибута О5-5 «Кафедра»
№ | Код кафедры | Значение |
1 | ОСУ | |
2 | ИКСУ | |
… | ||
100 | ИПС |
Кодификатор К3 для атрибута ОВ6-6 «Пол»
№ | Код пола | Значение |
1 | Мужской | |
2 | Женский |
Отношение 1 | Атрибут 1 | Название | Отношение 2 | Атрибут 2 | Название | Вид сопоставимости |
О1 | О1-1 | Факультет | О5 | О5-1 | Сокращенное название факультета | = |
О6 | О6-1 | Факультет | = | |||
ОВ3 | ОВ3-2 | Дисциплина | О4 | О4-3 | Учебная дисциплина | = |
O4 | O4-1 | Шифр специальности | O7 | O7-1 | Шифр специальности | = |
О2 | О2-1 | Специальность | = | |||
O5 | O5-5 | Кафедра | O7 | O7-3 | Название кафедры | = |
ОВ2 «Студент»
О4 «Учебный план специальности»
О5 «Сведения о факультетах (институтах)»
ОВ6 «Студент на факультете»
О7 «Результаты защиты студентов»
Код отношения | Код атрибута | Название атрибута | Зависимость | Множественность | Домен |
ОВ2.1.1 | ОВ2.1.1-1 | Id студента | Ключ | - | 1÷1000000 |
ОВ2.1.1-2 | Фамилия | ОВ2.1.1-1 | - | Словарь | |
ОВ2.1.1-3 | Имя | ОВ2.1.1-1 | - | Словарь | |
ОВ2.1.1-4 | Отчество | ОВ2.1.1-1 | - | Словарь | |
ОВ2.1.1-5 | Дата поступления | ОВ2.1.1-1 | - | 01.01.1940-31.12.2200 | |
ОВ2.1.1-6 | Дата отчисления | ОВ2.1.1-1 | - | 01.01.1940-31.12.2200 | |
ОВ2.1.1-7 | Номер диплома | ОВ2.1.1-1 | - | Словарь | |
ОВ2.1.1-8 | Оценка за диплом | ОВ2.1.1-1 | - | 1÷5 | |
ОВ2.1.1-9 | Город прописки | ОВ2.1.1-1 | - | Словарь | |
ОВ2.1.1-10 | Пол | ОВ2.1.1-1 | - | Словарь | |
О4.1 | О4.1-1 | Шифр специальности | Ключ | - | 1÷999999 |
О4.1-2 | Год приема | Ключ | - | 01.01.1940-31.12.2200 | |
О4.1-3 | Учебная дисциплина | Ключ | - | Словарь | |
О4.1-4 | Число часов лекций | О4.1-1, О4.1-2, О4.1-3 | - | 1÷200 | |
О4.1-5 | Число часов практических занятий | О4.1-1, О4.1-2, О4.1-3 | - | 1÷200 | |
О4.1-6 | Число часов лабораторных занятий | О4.1-1, О4.1-2, О4.1-3 | - | 1÷200 | |
О4.1-7 | Общее число часов по дисциплине | О4.1-1, О4.1-2, О4.1-3 | - | 1÷200 | |
О4.2.1 | О4.2.1-1 | Шифр специальности | Ключ | - | 1÷999999 |
О4.2.1-2 | Название специальности | О4.2.1-1 | - | Словарь | |
О4.2.1-3 | Адрес общежития | О4.2.1-1 | - | Словарь | |
О5.1 | О5.1-1 | Факультет | Ключ | - | Словарь |
О5.1-2 | Кафедра | Ключ | - | Словарь | |
О5.1-3 | Адрес деканата | О5.1-1, О5.1-2 | - | 1÷100 | |
О5.1-4 | Id зам декана | О5.1-1, О5.1-2 | - | 1÷100 | |
О5.1-5 | Id декана | О5.1-1, О5.1-2 | - | 1÷100 | |
О5.2 | О5.2-1 | Id сотрудника | Ключ | - | 1÷100 |
О5.2-2 | Фамилия | О5.4-1 | - | Словарь | |
О5.2-3 | Имя | О5.4-1 | - | Словарь | |
О5.2-4 | Отчество | О5.4-1 | - | Словарь | |
О5.2-5 | Дата назначения зам декана на должность | О5.4-1 | - | Словарь | |
О5.2-5 | Телефон | О5.4-1 | |||
ОВ6.2 | ОВ6.2-1 | Id студента | Ключ | - | 1÷1000000 |
ОВ6.2-2 | Факультет | Ключ | - | Словарь | |
ОВ6.3 | ОВ6.3-1 | Id студента | Ключ | - | 1÷1000000 |
ОВ6.3-2 | Факультет | Ключ | - | Словарь | |
ОВ6.3-3 | Название олимпиады | Ключ | - | Словарь | |
ОВ6.4 | ОВ6.4-1 | Id студента | Ключ | - | 1÷1000000 |
ОВ6.4-2 | Факультет | Ключ | - | Словарь | |
ОВ6.4-3 | Название НИРС | Ключ | - | Словарь | |
О7.1 | О7.1-1 | Id кафедры | Ключ | - | 1÷100 |
О7.1-2 | Шифр специальности | Ключ | - | 1÷999999 | |
О7.1-3 | Количество студентов получившие диплом бакалавра | О7.1-1, О7.1-2 | - | 1÷150 | |
О7.1-4 | Количество студентов не защитивших дипломную работу | О7.1-1, О7.1-2 | - | 1÷150 |
Индексы
Код отношения (Таблицы) | Название | Атрибут в индексе |
ОВ3 | Успеваемость (Attainment) | Дисциплина (Sublect) |
ОВ6.4 | НИРС (NIRS) | Название НИРС (Name of NIRS) |
О4.2.1 | Специальность (Speciality) | Адрес общежития (Address hostel) |
Альтернативные ключи
Код отношения (Таблицы) | Название | Атрибут в индексе |
ОВ2.1.1 | Студент (Student) | Номер диплома (Number of diploma) |
О4.2.1 | Специальность (Speciality) | Название специальности (Name of speciality) |
Код отношения | Название | Вторичный атрибут | Запрос |
О1 | Сведение о движении контингента студентов | Количество студентов на начало года | SELECT COUNT(«Студент».«Id
студента»)
FROM «Студент», «Факультет» WHERE TO_NUMBER(TO_CHAR(«Дата поступления», ‘DD.MM.YY’))< TO_NUMBER(TO_CHAR(Sysdate, ‘DD.MM.YY’)) AND( «Дата отчисления» IS NULL ) AND («Номер диплома» IS NULL) ORDER BY «Факультет».«Название факультета»; |
О1 | Сведение о движении контингента студентов | Количество студентов на конец года | SELECT COUNT(«Студент».«Id
студента»)
FROM «Студент», «Факультет» WHERE TO_NUMBER(TO_CHAR(«Дата поступления», ‘DD.MM.YY’))< TO_NUMBER(TO_CHAR(Sysdate, ‘DD.MM.YY’)) AND(( «Дата отчисления» IS NOT NULL ) OR («Номер диплома» IS NOT NULL)) ORDER BY «Факультет».«Название факультета»; |
О2 | Динамика приема по специальностям | Количество студентов | SELECT COUNT («Студент».“Id
студента»)
FROM «Студент», «Специальность» WHERE TO_NUMBER(TO_CHAR(«Студент».« ORDER BY «Факультет».«Название факультета»; |
О3 | Сведения о текущей успеваемости | % на 5 | SELECT («Студент».“Id студента»)*100/«Количество
студентов»
FROM «Студент», «Факультет», «№ группы» WHERE «Количество студентов»= (SELECT COUNT(«Студент».«Id студента») FROM «Студент» WHERE TO_NUMBER(TO_CHAR(«Дата поступления», ‘DD.MM.YY’))< TO_NUMBER(TO_CHAR(Sysdate, ‘DD.MM.YY’)) AND( «Дата отчисления» IS NULL ) AND («Номер диплома» IS NULL) ) AND «Студент».«Успеваемость»=5 ORDER BY «№ группы», «Факультет»; |
О3 | Сведения о текущей успеваемости | % на 4 и 5 | SELECT («Студент».“Id студента»)*100/«Количество
студентов»
FROM «Студент», «Факультет», «№ группы» WHERE «Количество студентов»= (SELECT COUNT(«Студент».«Id студента») FROM «Студент» WHERE TO_NUMBER(TO_CHAR(«Дата поступления», ‘DD.MM.YY’))< TO_NUMBER(TO_CHAR(Sysdate, ‘DD.MM.YY’)) AND( «Дата отчисления» IS NULL ) AND («Номер диплома» IS NULL) ) AND «Студент».«Успеваемость»=(4,5) ORDER BY «№ группы», «Факультет»; |
О3 | Сведения о текущей успеваемости | % неуспевающих | SELECT («Студент».“Id студента»)*100/«Количество
студентов»
FROM «Студент», «Факультет», «№ группы» WHERE «Количество студентов»= (SELECT COUNT(«Студент».«Id студента») FROM «Студент» WHERE TO_NUMBER(TO_CHAR(«Дата поступления», ‘DD.MM.YY’))< TO_NUMBER(TO_CHAR(Sysdate, ‘DD.MM.YY’)) AND( «Дата отчисления» IS NULL ) AND («Номер диплома» IS NULL) ) AND «Студент».«Успеваемость»=(2,3) ORDER BY «№ группы», «Факультет»; |
О4 | Информация об учебных планах специальности | Общее число часов по дисциплине | SELECT («Число часов лекций»+«Число
часов практических занятий»+«Число часов
лабораторных занятий»)
FROM «Учебные планы специальности» ORDER BY «Шифр специальности»; |
О6 | Контингент студентов | Количество студентов на факультете | SELECT COUNT(«Студент».«Id
студента»)
FROM «Студент», «Факультет» WHERE («Студент».«Дата поступления» IS NOT NULL) AND («Студент».«Дата отчисления» IS NULL) ORDER BY «Факультет».«Название факультета»; |
О6 | Контингент студентов | Количество иногородних | SELECT COUNT («Студент».«Id
студента»)
FROM «Студент», «Факультет» WHERE «Город прописки» NOT LIKE «Томск» ORDER BY «Факультет».«Название факультета»; |
О6 | Контингент студентов | Количество участников олимпиад | SELECT COUNT(«Студент».«Id
студента»)
FROM «Студент», «Олимпиада», «Факультет» WHERE «Олимпиада».«Название олимпиады» IS NOT NULL ORDER BY «Факультет».«Название факультета»; |
О6 | Контингент студентов | Количество занимающихся НИРС | SELECT COUNT(«Студент».«Id
студента»)
FROM «Студент», «НИРС», «Факультет» WHERE «НИРС».«Название НИРС» IS NOT NULL ORDER BY «Факультет».«Название факультета»; |
О6 | Контингент студентов | Количество женщин | SELECT COUNT («Студент».«Id
студента»)
FROM «Студент», «Факультет» WHERE «Пол»=’Ж’ ORDER BY «Факультет».«Название факультета»; |
О6 | Контингент студентов | Количество мужчин | SELECT COUNT («Студент».«Id
студента»)
FROM «Студент», «Факультет» WHERE «Пол»=’М’ ORDER BY «Факультет».«Название факультета»; |
О7 | Результаты защиты студентов | Количество студентов, получившие диплом бакалавра | SELECT COUNT («Студент».«Id
студента»)
FROM «Студент», «Специальность» WHERE «Оценка за диплом» = ‘не удовлетворительно’ ORDER BY «Специальность».«Название специальности»; |
О7 | Результаты защиты студентов | Количество студентов, не защитивших дипломную работу | SELECT COUNT («Студент».«Id
студента»)
FROM «Студент», «Специальность» WHERE «Оценка за диплом» NOT LIKE ‘не удовлетворительно’ ORDER BY «Специальность». «Название специальности»; |
В ходе выполнения курсовой работы проведен анализ информационных потребностей пользователей предметной области «Учебный процесс в ВУЗе» и представление их в виде множества исходных отношений. После чего произведено уточнение множества исходных отношений, представление их в виде нормализованных, простых структур данных, что выражалось в выявлении отношений типа кодификатор, нормализации и объединении отношений. На конечной стадии полученные отношения связывались в концептуальную информационную модель предметной области с использованием инструментального средства моделирования данных Erwin. Таким образом, поставленная цель и обозначенные задачи выполнены. Полученная концептуальная информационная модель предметной области отразила все информационные потребности пользователей. Помимо того благодаря коррективам, вносимым в ходе анализа исходных документов, запросов и файлов, были учтены и отображены все особенности данной предметной области.
Таблица «K1__Subject»
CREATE TABLE K1__Subject (
Id_subject NUMBER(3) NOT NULL,
Name_of_subject VARCHAR2(20) NULL
);
CREATE UNIQUE INDEX XPKK1__Subject ON K1__Subject
(
Id_subject ASC
);
ALTER TABLE K1__Subject
ADD ( PRIMARY KEY (Id_subject) ) ;
CREATE SEQUENCE K1__Subject _SEQ
minvalue 1
maxvalue 9999999
star with 1
increment by 1
cache 20;
CREATE TRIGGER K1__Subject _ins_trg
before insert
on K1__Subject
for each row
begin
select K1__Subject _seq.nextval
into: new. Id_subject
from dual;
end;
Таблица « K2__Cathedra »
CREATE TABLE K2__Cathedra (
Name_of_cathedra VARCHAR2(50) NULL,
Id_cathedra NUMBER(3) NOT NULL
);
CREATE UNIQUE INDEX XPKK2__Cathedra ON K2__Cathedra
(
Id_cathedra ASC
);
ALTER TABLE K2__Cathedra
ADD ( PRIMARY KEY (Id_cathedra) ) ;
CREATE SEQUENCE K2__Cathedra _SEQ
minvalue 1
maxvalue 9999999
star with 1
increment by 1
cache 20;
CREATE TRIGGER K2__Cathedra _ins_trg
before insert
on K2__Cathedra
for each row
begin
select K2__Cathedra _seq.nextval
into: new. Id_cathedra
from dual;
end;
Таблица «K3__Gender»
CREATE TABLE K3__Gender (
Id_gender NUMBER(1) NOT NULL,
Gender VARCHAR2(7) NULL
);
CREATE UNIQUE INDEX XPKK3__Gender ON K3__Gender
(
Id_gender ASC
);
ALTER TABLE K3__Gender
ADD ( PRIMARY KEY (Id_gender) ) ;
CREATE SEQUENCE K3__Gender _SEQ
minvalue 1
maxvalue 9999999
star with 1
increment by 1
cache 20;
CREATE TRIGGER K3__Gender _ins_trg
before insert
on K3__Gender
for each row
begin
select K3__Gender _seq.nextval
into: new. Id_gender
from dual;
end;
Таблица « O3__Group »
CREATE TABLE O3__Group (
№_group VARCHAR2(6) NOT NULL
);
CREATE UNIQUE INDEX XPKO3__Group ON O3__Group
(
№_group ASC
);
ALTER TABLE O3__Group
ADD ( PRIMARY KEY (№_group) ) ;
Таблица «O4.1__Curriculum »