1. Индивидуальное задание


Построение концептуальной модели базы данных



Download 318,49 Kb.
bet2/9
Sana28.02.2022
Hajmi318,49 Kb.
#473855
1   2   3   4   5   6   7   8   9
Bog'liq
baza

3. Построение концептуальной модели базы данных

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


В результате имеем 9 таблиц. Определим для них первичные ключи.
Таблицы University, Department, Chair, Lecturer имеют первичные ключи, имя которых было образовано путем добавления к имени сущности выражения “ID”. Ключи имеют тип INTEGER ввиду того, что объем данных, которые могут содержаться в них, будет очень велик.
Такие таблицы как WeekType, Time, ChairType, имеют первичный ключ, название которого образовано по правилу, описанному выше, типа SMALLINT, поскольку данные в этих таблицах не будут изменяться с большой динамикой и как правило значения, хранящиеся в них, будут внесены однажды и без изменений.
Таблица Discipline имеет первичный ключ DisciplineNumber типа VARCHAR(20) для хранения символьного кода дисциплины.
Таблица Lecture имеет составной ключ, из полей GroupName, LecturerID, TimeID, WeekTypeID, DayOfWeekNumber.
В результате имеем следующую концептуальную модель:


Рис.2 Концептуальная модель.


4. Построение физической модели и создание базы данных

В разрабатываемой базе данных содержится 9 таблиц. Приведем описание каждой таблицы базы данных. Скрипты создания базы данных содержатся в приложении.





#

Название столбца

Тип данных

Ограничение

Комментарии



















Discipline(Дисциплина)

1

DISCIPLINENUMBER

VARCHAR (20) NOT NULL

Первичный ключ




2

NAME

VARCHAR (250) NOT NULL




Название дисциплины

3

HOURS

SMALLINT NOT NULL




Количество часов



















WeekType(Тип недели)

1

WEEKTYPEID

SMALLINT NOT NULL PRIMARY KEY

Первичный ключ




2

NAME

VARCHAR (100) NOT NULL




Название



















Time(Начало пары)

1

TIMEID

SMALLINT NOT NULL PRIMARY KEY

Первичный ключ




2

HOUR

SMALLINT NOT NULL




Час начала пары

3

MINUTE

SMALLINT NOT NULL




Минута начала пары



















ChairType(Тип кафедры)

1

CHAIRTYPEID

SMALLINT NOT NULL PRIMARY KEY

Первичный ключ




2

NAME

VARCHAR (250) NOT NULL




Название типа кафедры



















University(Университет)

1

UNIVERSITYID

INTEGER NOT NULL PRIMARY KEY

Первичный ключ




2

NAME

VARCHAR (100) NOT NULL







3

ACCREDITATIONLEVEL

SMALLINT NOT NULL




Уровень аккредитации

4

CREATIONDATE

DATE NOT NULL




Дата создания

5

ADDRESS

VARCHAR (250)




Адрес ВУЗА

6

PHONE

VARCHAR (40)




Контактный телефон



















Department(Факультет)

1

DEPARTMENTID

INTEGER NOT NULL PRIMARY KEY

Первичный ключ




2

UNIVERSITYID

INTEGER NOT NULL

Ссылка на таблицу University




3

NAME

VARCHAR (250) NOT NULL




Название

4

CREATIONDATE

DATE NOT NULL




Дата создания



















Chair(Кафедра)

1

CHAIRID

INTEGER NOT NULL PRIMARY KEY

Первичный ключ




2

CHAIRTYPEID

SMALLINT NOT NULL

Ссылка на таблицу Chair




3

DEPARTMENTID

INTEGER

Ссылка на таблицу Department




4

NAME

VARCHAR (250) NOT NULL




Название

5

CREATIONDATE

DATE NOT NULL




Дата создания



















Lecturer(Лектор)

1

LECTURERID

INTEGER NOT NULL PRIMARY KEY

Первичный ключ




2

CHAIRID

INTEGER NOT NULL

Ссылка на таблицу Chair




3

LASTNAME

VARCHAR (70) NOT NULL




Фамилия

4

FIRSTNAME

VARCHAR (70) NOT NULL




Имя

5

MIDDLENAME

VARCHAR (70) NOT NULL




Отчество

6

ACADEMICDEGREENAME

VARCHAR (120) NOT NULL




Ученая степень

7

POST

VARCHAR (250) NOT NULL




Занимаемая должность



















Lecture(Лекция)

1

GROUPNAME

INTEGER NOT NULL PRIMARY KEY

Первичный ключ




2

LECTURERID

VARCHAR(20) NOT NULL PRIMARY KEY

Ссылка на таблицу Lecturer




3

DISCIPLINENUMBER

INTEGER NOT NULL

Ссылка на таблицу Discipline




4

TIMEID

SMALLINT NOT NULL PRIMARY KEY

Ссылка на таблицу Time




5

WEEKTYPEID

SMALLINT NOT NULL PRIMARY KEY

Ссылка на таблицу WeekType




6

DAYOFWEEKNUMBER

SMALLINT NOT NULL PRIMARY KEY




День недели

7

AUDITORIUM

VARCHAR (20) NOT NULL




Номер аудитории

8

BUILDINGNAME

VARCHAR (20) NOT NULL




Название корпуса



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

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


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


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


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

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


Таблица WeekType:
INSERT INTO WEEKTYPE(NAME) VALUES('Первая');
INSERT INTO WEEKTYPE(NAME) VALUES('Вторая');
Таблица Time:
INSERT INTO TIME(HOUR, MINUTE) VALUES(8, 30);
INSERT INTO TIME(HOUR, MINUTE) VALUES(10, 25);
Таблица ChairType:
INSERT INTO CHAIRTYPE(NAME) VALUES('Общая');
Таблица University:
INSERT INTO UNIVERSITY(NAME, ACCREDITATIONLEVEL, CREATIONDATE, ADDRESS, PHONE)
VALUES('Национальный Технический Университет - "Харьковский политехнический институт"', 4,
'3/09/1885', 'Украина 61002, г. Харьков, ул. Фрунзе, 21',
'706-27-49');
Таблица Department:
INSERT INTO DEPARTMENT(UNIVERSITYID, NAME, CREATIONDATE)
VALUES(1, 'Биологический', '1/9/1900');
Таблица Chair:
INSERT INTO CHAIR(CHAIRTYPEID, DEPARTMENTID, NAME, CREATIONDATE)
VALUES(2, 1, 'Биохимии', '1/9/1901');
Таблица Lecturer:
INSERT INTO LECTURER(CHAIRID, LASTNAME, FIRSTNAME, MIDDLENAME, ACADEMICDEGREENAME, POST)
VALUES(1, 'Перский', 'Евгений', 'Ефроимович', 'Профессор', 'Заведующий кафедрой');
Таблица Discipline:
INSERT INTO DISCIPLINE(DISCIPLINENUMBER, NAME, HOURS) VALUES('54354551', 'Высшая математика', 120);
Таблица Lecture:
INSERT INTO LECTURE(GROUPNAME, LECTURERID, TIMEID, WEEKTYPEID, DISCIPLINENUMBER, DAYOFWEEKNUMBER, AUDITORIUM, BUILDINGNAME)
VALUES('КИТ-64', 27, 1, 1, '54354559', 1, '202', 'ГАК');



Download 318,49 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish