ОЦЕНКА СЛОЖНОСТИ И ОБОСНОВАНИЕ ПРАВИЛЬНОСТИ И КОНЕЧНОСТИ ПРОГРАММ




МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

ТВЕРСКОЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

 

Факультет – Информационных технологий

Направление – Информационные системы и технологии

Кафедра – Информационных систем

 

 

ОЦЕНКА СЛОЖНОСТИ И ОБОСНОВАНИЕ ПРАВИЛЬНОСТИ И КОНЕЧНОСТИ ПРОГРАММ

Отчёт по лабораторной работе № 1

по курсу «Управление данными»

Вариант №17

 

 

Выполнил студент группы:

 

Ильин Александр ИСТ.18.07.

 

Проверил:

Полтавцев А.А.

 

 

Тверь, 2020

Оглавление

Описание предметной области. 3

Бизнес правила. 3

Нормализация. 3

 

 

Описание предметной области

Вариант 17. Предметная область ИС: Личные данные о студентах. Минимальный список характеристик данных: Фамилия и инициалы студента, курс, факультет, специальность, дата рождения студента, семейное положение, сведения о семье.

 

Бизнес правила

1. Каждый студент имеет номер зачетной книжки.

2. Каждый студент имеет ФИО.

3. На каждой специальности может читаться несколько курсов.

4. Каждый студент учится на одном факультете.

5. На одном факультете может быть несколько специальностей.

6. Каждый студент учится на одной специальности.

7. Каждый студент имеет дату рождения.

8. Каждый студент имеет данные о семейном положении.

9. Каждый студент имеет сведения о семье.

 

Нормализация

1 нормальная форма

 

CREATE TABLE Student_data

(

number INT NOT NULL, -- номер зачетной книжки

name VARCHAR (40) NOT NULL, -- ФИО

code_sub INT NOT NULL, -- код курса

subject VARCHAR (60) NOT NULL, -- курс

faculty VARCHAR (40) NOT NULL, -- факультет

code_spec INT NOT NULL, -- код специальности

specialty VARCHAR (40) NOT NULL, -- специальность

date_birth DATE NOT NULL, -- дата рождения

status VARCHAR (60) NULL, -- семейное положение

family VARCHAR (60) NULL, -- сведения о семье

);

 

Функциональные зависимости (Functional Dependencies - FD):

1.number->(name, code_sub, code_spec, date_birth, status, family)

 

Выводимые ФЗ:

1.number->subject (из number->code_sub->subject)

2.number->(specialty, faculty) (из number->code_spec->(specialty, faculty))

 

Нахождение PK

number->(name, code_sub, code_spec, date_birth, status, family)

code_sub->subject

code_spec->(specialty, faculty)

 

number->(name, code_sub, subject, faculty, code_spec, specialty, date_birth, status, family)

ПЕРВИЧНЫЙ КЛЮЧ: number. number->(name, code_sub, subject, faculty, code_spec, specialty, date_birth, status, family)

 

ALTER TABLE Student_data

ADD CONSTRAINT PK_Student_data PRIMARY KEY (number);

 

diagramm_0

 

2 нормальная форма

 

Student_data в 2NF, но не в 3NF

 

 

3 нормальная форма

 

number->(name, code_sub, code_spec, date_birth, status, family)

 

CREATE TABLE Student

(

number INT NOT NULL, -- номер зачетной книжки

name VARCHAR (40) NOT NULL, -- ФИО

code_sub INT NOT NULL, -- код курса

code_spec INT NOT NULL, -- код специальности

date_birth DATE NOT NULL, -- дата рождения

status VARCHAR (60) NULL, -- семейное положение

family VARCHAR (60) NULL, -- сведения о семье

);

 

Функциональные зависимости (Functional Dependencies - FD):

number->(name, code_sub, code_spec, date_birth, status, family)

 

ПЕРВИЧНЫЙ КЛЮЧ: number. number->(name, code_sub, code_spec, date_birth, status, family)

 

ALTER TABLE Student

ADD CONSTRAINT PK_Student PRIMARY KEY (number);

 

Student в 3NF

 

 

code_sub->subject

 

CREATE TABLE Subject

(

code_sub INT NOT NULL, -- код курса

subject VARCHAR (60) NOT NULL, -- курс

number INT NOT NULL, -- номер зачетной книжки

code_spec INT NOT NULL, -- код специальности

);

 

Функциональные зависимости (Functional Dependencies - FD):

code_sub->subject

 

ПЕРВИЧНЫЙ КЛЮЧ: code_sub. code_sub->subject

 

ALTER TABLE Subject

ADD CONSTRAINT PK_Subject PRIMARY KEY (code_sub);

 

Subject в 3NF

 

 

code_spec->(specialty, faculty)

 

CREATE TABLE Unit

(

code_spec INT NOT NULL, -- код специальности

specialty VARCHAR (40) NOT NULL, -- специальность

faculty VARCHAR (40) NOT NULL, -- факультет

);

 

Функциональные зависимости (Functional Dependencies - FD):

code_spec->(specialty, faculty)

 

ПЕРВИЧНЫЙ КЛЮЧ: code_spec. code_spec->(specialty, faculty)

 

ALTER TABLE Unit

ADD CONSTRAINT PK_Unit PRIMARY KEY (code_spec);

 

Unit в 3NF

 

 

Внешние ключи:

 

ALTER TABLE Subject

ADD CONSTRAINT FK_Subject_Student FOREIGN KEY (number)

REFERENCES Student (number);

 

ALTER TABLE Subject

ADD CONSTRAINT FK_Subject_Unit FOREIGN KEY (code_spec)

REFERENCES Unit (code_spec);

 

diagramm_1

 

 

ОЧИСТКА (cleanup)

 

DROP TABLE Student_data;

 

ALTER TABLE Subject

DROP CONSTRAINT FK_Subject_Student;

 

ALTER TABLE Subject

DROP CONSTRAINT FK_Subject_Unit;

 

DROP TABLE Student;

DROP TABLE Subject;

DROP TABLE Unit;

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2021-01-23 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: