Разработка базы данных "Университет"

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

?е столбцаТип данныхОграничениеКомментарииDiscipline(Дисциплина)1DISCIPLINENUMBERVARCHAR (20) NOT NULLПервичный ключ2NAMEVARCHAR (250) NOT NULLНазвание дисциплины3HOURSSMALLINT NOT NULLКоличество часовWeekType(Тип недели)1WEEKTYPEIDSMALLINT NOT NULL PRIMARY KEYПервичный ключ2NAMEVARCHAR (100) NOT NULLНазваниеTime(Начало пары)1TIMEIDSMALLINT NOT NULL PRIMARY KEYПервичный ключ2HOURSMALLINT NOT NULLЧас начала пары3MINUTESMALLINT NOT NULLМинута начала парыChairType(Тип кафедры)1CHAIRTYPEIDSMALLINT NOT NULL PRIMARY KEYПервичный ключ2NAMEVARCHAR (250) NOT NULLНазвание типа кафедрыUniversity(Университет)1UNIVERSITYIDINTEGER NOT NULL PRIMARY KEYПервичный ключ2NAMEVARCHAR (100) NOT NULL3ACCREDITATIONLEVELSMALLINT NOT NULLУровень аккредитации4CREATIONDATEDATE NOT NULLДата создания5ADDRESSVARCHAR (250)Адрес ВУЗА6PHONEVARCHAR (40)Контактный телефонDepartment(Факультет)1DEPARTMENTIDINTEGER NOT NULL PRIMARY KEYПервичный ключ2UNIVERSITYIDINTEGER NOT NULLСсылка на таблицу University3NAMEVARCHAR (250) NOT NULLНазвание4CREATIONDATEDATE NOT NULLДата созданияChair(Кафедра)1CHAIRIDINTEGER NOT NULL PRIMARY KEYПервичный ключ2CHAIRTYPEIDSMALLINT NOT NULLСсылка на таблицу Chair3DEPARTMENTIDINTEGERСсылка на таблицу Department4NAMEVARCHAR (250) NOT NULLНазвание5CREATIONDATEDATE NOT NULLДата созданияLecturer(Лектор)1LECTURERIDINTEGER NOT NULL PRIMARY KEYПервичный ключ2CHAIRIDINTEGER NOT NULLСсылка на таблицу Chair3LASTNAMEVARCHAR (70) NOT NULLФамилия4FIRSTNAMEVARCHAR (70) NOT NULLИмя5MIDDLENAMEVARCHAR (70) NOT NULLОтчество6ACADEMICDEGREENAMEVARCHAR (120) NOT NULLУченая степень7POSTVARCHAR (250) NOT NULLЗанимаемая должностьLecture(Лекция)1GROUPNAMEINTEGER NOT NULL PRIMARY KEYПервичный ключ2LECTURERIDVARCHAR(20) NOT NULL PRIMARY KEYСсылка на таблицу Lecturer3DISCIPLINENUMBERINTEGER NOT NULLСсылка на таблицу Discipline4TIMEIDSMALLINT NOT NULL PRIMARY KEYСсылка на таблицу Time5WEEKTYPEIDSMALLINT NOT NULL PRIMARY KEYСсылка на таблицу WeekType6DAYOFWEEKNUMBERSMALLINT NOT NULL PRIMARY KEYДень недели7AUDITORIUMVARCHAR (20) NOT NULLНомер аудитории8BUILDINGNAMEVARCHAR (20) NOT NULLНазвание корпуса

5. Создание процедурных ограничений целостности

 

При анализе структуры данных и предметной области было установлено, что структура базы данных обеспечивает целостность данных. В большинстве случаев данные, которые хранятся, не противоречат друг другу.

Хотя может возникнуть ситуация, когда в таблице лекций можно внести значение дня недели, превышающее значение 7, что изначально не является верным. Одним из возможных выходов из такой ситуации является создание триггера.

Назначим код ошибки 75001 и текст сообщения 'The DayOfWeekNumber is incorrect'.

Текст на создание триггера находится в приложении.

 

6. Создание типичных запросов к базе данных

 

.1 Примеры операторов, которые записывают данные в таблицы

 

Для каждой таблицы приведем примеры запросов.

Таблица WeekType:INTO WEEKTYPE(NAME) VALUES('Первая');INTO WEEKTYPE(NAME) VALUES('Вторая');

Таблица Time:INTO TIME(HOUR, MINUTE) VALUES(8, 30);INTO TIME(HOUR, MINUTE) VALUES(10, 25);

Таблица ChairType:INTO CHAIRTYPE(NAME) VALUES('Общая');

Таблица University:INTO UNIVERSITY(NAME, ACCREDITATIONLEVEL, CREATIONDATE, ADDRESS, PHONE)('Национальный Технический Университет - "Харьковский политехнический институт"', 4,

'3/09/1885', 'Украина 61002, г. Харьков, ул. Фрунзе, 21',

'706-27-49');

Таблица Department:INTO DEPARTMENT(UNIVERSITYID, NAME, CREATIONDATE)(1, 'Биологический', '1/9/1900');

Таблица Chair:INTO CHAIR(CHAIRTYPEID, DEPARTMENTID, NAME, CREATIONDATE)(2, 1, 'Биохимии', '1/9/1901');

Таблица Lecturer:INTO LECTURER(CHAIRID, LASTNAME, FIRSTNAME, MIDDLENAME, ACADEMICDEGREENAME, POST)(1, 'Перский', 'Евгений', 'Ефроимович', 'Профессор', 'Заведующий кафедрой');

Таблица Discipline:INTO DISCIPLINE(DISCIPLINENUMBER, NAME, HOURS) VALUES('54354551', 'Высшая математика', 120);

Таблица Lecture:INTO LECTURE(GROUPNAME, LECTURERID, TIMEID, WEEKTYPEID, DISCIPLINENUMBER, DAYOFWEEKNUMBER, AUDITORIUM, BUILDINGNAME)('КИТ-64', 27, 1, 1, '54354559', 1, '202', 'ГАК');

 

7.2 Примеры операторов на выборку данных из базы данных

 

. Определить университет, который имеет наибольшее число профессоров.T.Name FROM

(SELECT U1.Name, count(L1.LecturerID) as ProfessorsCountUniversity U1, Department D1, Chair C1, Lecturer L1.AcademicDegreeName='Профессор'.ChairID=C1.ChairID.DepartmentID=D1.DepartmentID.UniversityID=U1.UniversityIDby U1.Name

) Tby T.ProfessorsCount DESCFIRST 1 ROWS ONLY

Результат выборки:

Харьковский Государственный Технический университет Радиоэлектроники

record(s) selected.

. Вывести информацию о факультетах каждого университета и указать количество кафедр для этого факультета..Name, D.CreationDate, count(C.ChairID) as ChairsCount, U.Name AS UniversityD, University U, Chair C.UniversityID=D.UniversityID.DepartmentID=D.DepartmentIDBY D.Name, D.CreationDate, U.NameBY U.Name, D.Name

Результат выборки:

SELECT. BuildingName, Lecturer, Chair, Department, University.Name='Национальный Технический Университет - "Харьковский политехнический институт"'. UniversityID=University. UniversityID. DepartmentID=Department. DepartmentID.ChairID=Chair.ChairID.LecturerID=Lecturer.LecturerIDBY Lecture.BuildingName

Результат выборки:

BUILDINGNAME

АК

ВЦ

ГАК

У1

У2

record(s) selected

. Выполнить предыдущий запрос используя представление..BuildingNameBY.BuildingName

Результат выборки:

BUILDINGNAME

АК

ВЦ

ГАК

У1

У2

record(s) selected

. Выбрать те дни недели для всех групп, предметы для которых будут различными в зависимости от типа недели.SV1.* FROMSV1, ScheduleView SV2.GroupName=SV2.GroupName.DayOfWeekNumber=SV1.DayOfWeekNumber.DayOfWeekNumber=SV1.DayOfWeekNumber.Hour=SV2.Hour.Minute=SV2.Minute.DisciplineName <> SV2.DisciplineNameBY.GroupName, SV1.DayOfWeekNumber, SV1.Hour, SV1.Minute

Результат выборки:

КИТ-44a 1 Вторая 10 25 Компьютерная графика Гладких Татьяна 506 У1 КИТ-44a 1 Первая

КИТ-44a 1 Первая 10 25 Теория алгоритмов Солощук Михаил 305 АК КИТ-44a 1 Вторая

КИТ-44a 3 Вторая 8 30 Высшая физика Старусев Олег 22 У2 КИТ-44a 3 Первая

КИТ-44a 3 Первая 8 30 Высшая математика Деревянко Александр 304 ГАК КИТ-44a 3 Вторая

КИТ-44a 5 Вторая 10 25 Философия Старусев Олег 803 У1 КИТ-44a 5 Первая

КИТ-44a 5 Первая 10 25 Культурология Старусев Олег 501 У1 КИТ-44a 5 Вторая

КИТ-64 1 Вторая 10 25 Компьютерная графика Гладких Татьяна 506 У1 КИТ-64 1 Первая

КИТ-64 1 Первая 10 25 Теория алгоритмов Солощук Михаил 305 АК КИТ-64 1 Вторая

КИТ-64 3 Вторая 8 30 Высшая физика Старусев Олег 22 У2 КИТ-64 3 Первая

КИТ-64 3 Первая 8 30 Высшая математика Деревянко Александр 304 ГАК КИТ-64 3 Вторая

КИТ-64 5 Вторая 12 35 Философия Старусев Олег 803 У1 КИТ-64 5 Первая

КИТ-64 5 Первая 12 35 Культурология Старусев Олег 501 У1 КИ?/p>