Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
399
Добавлен:
10.05.2014
Размер:
3.08 Mб
Скачать

Явные ограничения целостности

Из анализа поставленной задачи можно выделить следующие дополнительные ограничения целостности:

  • количество учеников в одном учебном классе (задаваемом годом обучения и группой) должно лежать в диапазоне от 3 до 20;

  • возраст ученика, включенного в класс, должен удовлетворять следующим правилам: в первом классе учатся дети в возрасте от 6 до 8 лет, во втором – от 7 до 9 и т.д.;

Рис. 4.3. Полноатрибутная концептуальная схема

  • на каждый предмет, изучаемый каким-либо классом, должен быть обязательно назначен учитель и, соответственно, каждый преподаваемый предмет должен обязательно изучаться каким-либо классом;

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

  • классным руководителем назначается один из учителей, проводящих занятия в данном классе по какому-либо предмету.

Даталогическая модель

В соответствии с приведенной структурой, внутренняя схема разрабатываемой базы данных представлена в табл. 4.10 – 4.15.

Таблица 4.10

Учитель/E3

Teacher

Имя атрибута

Имя колонки

Имя домена

Тип данных

Признак обязательности

Ключи

Правило удаления

Личный номер учителя

IdTeacher

Номер

Integer

Not null

PK

Фамилия

LastName

Имя

Varchar (50)

Not null

AK1.1

Имя

FirstName

Имя

Varchar (50)

Not null

AK1.2

Отчество

SecondName

Имя

Varchar (50)

Not null

AK1.3

Дата приема на работу

AdmitDate

Дата

Date

Not null

Статус учителя

Status

Статус

Varchar (10)

Null

Ставка

Rate

Часть

Decimal (5,2)

Not null

Описание таблицы на SQL:

Create table Teacher (

IdTeacher integer not null,

LastName varchar (50),

FirstName varchar(50),

SecondName varchar(50),

AdmitDate date not null,

Status varchar (10),

Rate decimal (5,2) not null,

Primary key (IdTeacher)

);

Commit;

Таблица 4.11

Класс/E2

Class

Имя атрибута

Имя колонки

Имя домена

Тип данных

Признак обязательности

Ключи

Правило удаления

Год обучения

SchoolYear

Номер

Integer

Not null

PK.1

Группа

Group

Буква

Varchar (1)

Not null

PK.2

Личный номер учителя

IdTeacher

Номер

Integer

Null

FK

Teacher; Set null

Дата формирования

CreateDate

Дата

Date

Not null

Категория

Category

Категория

Varchar (20)

Null

Описание таблицы на SQL:

Create table Class (

SchoolYear integer not null,

Group varchar (1) not null,

IdTeacher integer,

CreateDate date,

Category varchar (20),

Primary key (SchoolYear, Group),

Foreign key (IdTeacher) references Teacher on delete set null

);

Commit;

Таблица 4.12

Ученик/E1

Pupil

Имя атрибута

Имя колонки

Имя домена

Тип данных

Признак обязательности

Ключи

Правило удаления

Личный номер ученика

IdPupil

Номер

Integer

Not null

PK

Фамилия

LastName

Имя

Varchar (50)

Not null

AK1.1

Имя

FirstName

Имя

Varchar (50)

Not null

AK1.2

Дата рождения

Birthday

Дата

Date

Not null

AK1.3

Дата поступления в школу

EnterDay

Дата

Date

Not null

Год обучения

SchoolYear

Номер

Integer

Not null

FK1.1

Class, restrict

Группа

Group

Буква

Varchar (1)

Not null

FK1.2

Class, restrict

Описание таблицы на SQL:

Create table Pupil (

IdPupil integer not null,

LastName varchar (50),

FirstName varchar(50),

Birthday date,

EnterDay date,

SchoolYear integer not null,

Group varchar (1) not null,

Primary key (IdPupil),

Foreign key (SchoolYear, Group) references Class on delete restrict

);

Commit;

Таблица 4.13

Предмет/E4

Subject

Имя атрибута

Имя колонки

Имя домена

Тип данных

Признак обязательности

Ключи

Правило удаления

Код предмета

IdSubject

Номер

Integer

Not null

PK

Название

Name

Название

Varchar (20)

Not null

AK

Название

Name

Название

Varchar (20)

Not null

AK

Тип предмета

Type

Тип

Varchar (16)

Not null

Описание

Description

Описание

Varchar (256)

Null

Описание таблицы на SQL:

Create table Subject (

IdSubject integer not null,

Name varchar (20) not null,

Type varchar(16) not null,

Description varchar (256),

Primary key (IdSubject)

);

Commit;

Таблица 4.14

Изучаемый предмет/E5

LearnSubject

Имя атрибута

Имя колонки

Имя домена

Тип данных

Признак обязательности

Ключи

Правило удаления

Год обучения

SchoolYear

Номер

Integer

Not null

PK; FK1.1

Class; Restrict

Группа

Group

Буква

Varchar (1)

Not null

PK; FK1.2

Class; Restrict

Код предмета

IdSubject

Номер

Integer

Not null

PK; FK2

Subject; Restrict

Количество уроков

Qty

Количество

Integer

Not null

Описание таблицы на SQL:

Create table LearnSubject (

SchoolYear integer not null,

Group varchar (1) not null,

IdSubject integer not null,

Qty integer not null,

Primary key (SchoolYear, Group, IdSubject),

Foreign key (SchoolYear, Group) references Class on delete restrict,

Foreign key (IdSubject) references Subject on delete restrict

);

commit;

Таблица 4.15

Преподаваемый предмет/E6

TeachSubject

Имя атрибута

Имя колонки

Имя домена

Тип данных

Признак обязательности

Ключи

Правило удаления

Личный номер учителя

IdTeacher

Номер

Integer

Not null

PK; FK1

Teacher; Restrict

Код предмета

IdSuibject

Номер

Integer

Not null

PK; FK2

Subject; Restrict

Описание таблицы на SQL:

Create table TeachSubject (

IdTeacher integer not null,

IdSubject integer not null,

Primary key (IdTeacher, IdSubject),

Foreign key (IdTeacher) references Teacher on delete restrict,

Foreign key (IdSubject) references Subject on delete restrict

);

commit;

Кроме таблиц, можно привести и схему базы данных:

Ученик (Личный номер ученика, Фамилия (AK1), Имя (AK1), Дата рождения (AK1), Дата поступления в школу, Год обучения (FK1.1), Группа (FK1.2))

Класс (Год обучения, Группа, Личный номер учителя (FK), Дата формирования, Категория)

Учитель (Личный номер учителя, Фамилия (AK1), Имя (AK1), Отчество (AK1), Дата поступления на работу, Статус учителя, Ставка)

Предмет (Код предмета, Название (AK1), Тип предмета, Описание)

Изучаемый предмет (Год обучения (FK1), Группа (FK1), Код предмета (FK2), Количество уроков в неделю)

Преподаваемый предмет (Личный номер учителя (FK1), Код предмета (FK2))

Соседние файлы в папке docs