Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otchet_Petrov_KO[1].doc
Скачиваний:
6
Добавлен:
22.09.2019
Размер:
363 Кб
Скачать
☆

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

Приведение к 1НФ.

  1. требование (требование простой структуры).

Каждую сущность с атрибутами представил в виде множества строк. Объединённых ячеек нет.

2 требование (отсутствие одинаковых по смыслу полей). Повторяющихся полей нет.

  1. требование (отсутствие составных полей).

В таблице «Курсы» есть одинаковые поля, такие как количество лекционных, лабораторных и практических часов, но не следует объединять их в единое поле «количество часов», так как в таблице будет много повторений.

  1. требование (в табл. не должно быть одинаковых записей).

В таблице нет одинаковых записей.

Приведение ко 2НФ.

  1. Определяем у каждой сущности первичный ключ:

Для сущности «Преподаватели» выберем в качестве первичного ключа «табельный номер преподавателя» (табельный номер уникален и не может повториться). А для сущности «Курсы» выберем «№ предмета» (номер сам по себе уникален и не может повториться).

  1. Анализируем зависимости между полями таблицы:

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

  1. Разделение таблицы в соответствии с выделенными смысловыми зависимостями:

Вводим семантически незначащие первичные ключи: «Код города», «№ контроля», «№ группы»

Приведение к 3НФ.

Транзитивных зависимостей между полями таблиц нет. Таблицы приведены ко 2НФ, а значит приведены и к 3НФ. Рисунок 2.

Преподаватели Курсы Группы

Табельный № преподавателя

№ предмета

№ группы

ФИО

Кафедра

Должность

Стаж

Факультет

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

Адрес

Телефон

Код города

Предмет

№ группы

Лекции

Практические занятия

Лабораторные работы

Семестр

№ контроля

Табельный № преподавателя

Группа

Специальность

Факультет

Город Форма контроля

Код города

№ контроля

Город

Контроль

Рисунок 2.

    1. Проектирование таблиц.

В итоге получилось 5 таблиц.

Таблица 1 «Преподаватели» :

Название поля

Тип данных

Правило

Tab_№

Number(9)

PK

FIO1

Varchar2(50)

Обязательное поле

Cafedra

Varchar2(30)

Обязательное поле

Fakultet

Varchar2(30)

Обязательное поле

Doljnost

Varchar2(30)

Обязательное поле

Staj

Number(2)

>0

Uchenaya_Step

Varchar2(30)

Adres

Varchar2(50)

Обязательное поле

Telefon

Number(30)

>0

Cod_goroda

Number(10)

FK

В таблице 1 будет храниться информация о преподавателях. Таблица имеет следующие поля:

Tab_№ - первичный ключ таблицы – должен быть уникальным и не превышать 9 знаков.

FIO1 – определяет ФИО преподавателя.

Cafedra – определяет кафедру на которой работает преподаватель.

Fakultet – определяет на каком факультете работает преподаватель.

Doljnost – определяет на какой должности работает преподаватель.

Staj – определяет стаж работы преподавателя. Не должен превышать 2 знаков.

Uchenaya_Step – определяет имеется ли у преподавателя ученая степень.

Adres – определяет адрес по которому проживает преподаватель (улица, дом, кв).

Telefon – определяет номер телефона преподавателя. Не должен превышать 30 цифр, т.к. телефонов может быть несколько (домашний и мобильный).

Cod_goroda – определяет код города в котором проживает преподаватель. Не должен превышать 10 знаков.

Используемые типы данных:

VARCHAR2(L) – символьная строка переменной длины с максимальной длиной L байт.

Number(P,S) – число, имеющее точность P и масштаб S.

Таблица 2 «Город» :

Название поля

Тип данных

Правило

Cod_goroda

Number(10)

PK

Gorod

Varchar2(20)

Обязательное поле

В таблице 2 будет храниться информация о городах. Таблица имеет следующие поля:

Cod_goroda – первичный ключ таблицы – должен быть уникальным и не превышать 10 знаков.

Gorod – определяет город в котором проживает преподаватель.

Используемые типы данных:

VARCHAR2(L) – символьная строка переменной длины с максимальной длиной L байт.

Number(P,S) – число, имеющее точность P и масштаб S.

Таблица 3 «Курсы»:

Название поля

Тип данных

Правило

№_predmet

Number(9)

PK

Predmet

Varchar2(50)

Обязательное поле

№_group

Number(9)

FK

Lektions

Number(2)

>0

Practics

Number(2)

>0

Laboratorian

Number(2)

>0

Semestr

Number(2)

Обязательное поле, >0, <15

Tab_№

Number(9)

FK

№_kontrol

Number(9)

FK

В таблице 3 будет храниться информация о читаемых курсах. Таблица имеет следующие поля:

№_predmet - первичный ключ таблицы – должен быть уникальным и не превышать 9 знаков.

Predmet – определяет предмет который ведет преподаватель у группы.

№_group – определяет номер группы у которой ведет преподаватель данный предмет. Не должен превышать 9 знаков.

Lektions – определяет количество лекционных часов, читаемых группе по данному предмету. Не должен превышать 2 знаков.

Practics - определяет количество практических часов, проводимых у группы по данному предмету. Не должен превышать 2 знаков.

Laboratorian - определяет количество лабораторных часов, проводимых у группы по данному предмету. Не должен превышать 2 знаков.

Semestr – определяет в каком семестре читается данный предмет у группы. Не должен превышать 2 знаков.

Tab_№ - определяет табельный номер преподавателя, который ведет данный предмет у определенной группы. Не должен превышать 9 знаков.

№_kontrol – определяет номер контроля группы по данному предмету.

Используемые типы данных:

VARCHAR2(L) – символьная строка переменной длины с максимальной длиной L байт.

Number(P,S) – число, имеющее точность P и масштаб S.

Таблица 4 «Группы» :

Название поля

Тип данных

Правило

№_group

Number(9)

PK

Group_g

Varchar2(9)

Обязательное поле

Specialnost

varchar2(50)

Обязательное поле

Fakultet1

Varchar2(30)

Обязательное поле

В таблице 4 будет храниться информация о группах. Таблица имеет следующие поля:

№_group - первичный ключ таблицы – должен быть уникальным и не превышать 9 знаков.

Group_g – определяет группу.

Specialnost – определяет специальность, которой обучают группу.

Fakultet1 – определяет факультет на котором обучается группа.

Используемые типы данных:

VARCHAR2(L) – символьная строка переменной длины с максимальной длиной L байт.

Number(P,S) – число, имеющее точность P и масштаб S.

Таблица 5 «Форма контроля» :

Название поля

Тип данных

Правило

№_kontrol

Number(9)

PK

Kontrol

Varchar2(30)

Обязательное поле

В таблице 5 будет храниться информация о контроле группы. Таблица имеет следующие поля:

№_kontrol - первичный ключ таблицы – должен быть уникальным и не превышать 9 знаков.

Kontrol – определяет контроль группы.

Используемые типы данных:

VARCHAR2(L) – символьная строка переменной длины с максимальной длиной L байт.

Number(P,S) – число, имеющее точность P и масштаб S.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]