Смекни!
smekni.com

Информационная система для поддержки учебной деятельности ДЮСШ (стр. 4 из 7)

ГОРОДА (код_города, город);

УРОВЕНЬ СОРЕВНОВАНИЙ (код_ур, ур_сор);

РАЗРЯД (код_разр, разряд);

УРОЕНЬ ЗДОРОВЬЯ (код_ур_з, уровень здор);

КАТЕГОРИИ (код_кат, категория);

ПРОГРАММА СОРЕВНОВАНИЙ (код_прогр_сор, прогр, сор);

ОБРАЗОВАНИЕ (код_образ, образование);

Обозначения:

СПИСОК ГРУПП (код_группы, группа, код_отделения,) [ОТДЕЛЕНИЯ];

ОБРАЗОВАНИЕ СОТРУДНИКОВ (таб_ном,код_образ) [СПИСОК СОТРУДНИКОВ] [ОБРАЗОВАНИЕ];

ЗАЧИСЛЕНИЕ УЧАЩИХСЯ (код_зач, ном_уч, дата_зач, №прик_зач) [СПИСОК УЧАЩИХСЯ];

ВЫПУСК УЧАЩИХСЯ (код_зач, дата_оконч, №прик_отч, №прик_разр_к) [СПИСОК УЧАЩИХСЯ];

СЕМЬЯ УЧАЩЕГОСЯ (ном_уч, код_стат) [СПИСОК УЧАЩИХСЯ] [СОЦ СТАТУС СЕМЬИ];

АТТЕСТАЦИЯ ТРЕНЕРОВ (таб_ном, код_эксп, код_заяв_кат, код_утв_кат, дата_атт_трен) [СПИСОК СОТРУДНИКОВ] [КАТЕГОРИИ];

СОРЕВНОВАНИЯ (Код_сор, код_города, ранг, код_ур, код_прогр_сор, фин_сор, дата_сор) [ГОРОДА] [УРОВЕНЬ СОРЕВНОВАНИЙ] [ПРОГРАММА СОРЕВНОВАНИЙ];

КОМПЛЕКТОВАНИЕ УЧ (код_группы, ном_уч) [СПИСОК ГРУПП] [СПИСОК УЧАЩИХСЯ];

РЕЗУЛЬТАТ ВЫСТУПЛЕНИЙ НА СОРЕВНОВАНИЯХ (ном_уч, код_сор, кол_бал, таб_ном) [СПИСОК УЧАЩИХСЯ] [СПИСОК СОТРУДНИКОВ] [СОРЕВНОВАНИЯ];

СПОРТСМЕНЫ – РАЗРЯДНИКИ (код_с_р, ном_уч, код_разр, дата_разр, таб_ном, ном_прик) [СПИСОК УЧАЩИХСЯ] [СПИСОК СОТРУДНИКОВ] [РАЗРЯД];

ОЗДОРОВЛЕНИЕ УЧАЩИХСЯ (ном_уч, дата_з, код_ур_з) [СПИСОК УЧАЩИХСЯ] [УРОВЕНЬ ЗДОРОВЬЯ];

ЗАСЛУЖЕННЫЕ РАБОТНИКИ (таб_ном, код_звания,) [СПИСОК СОТРУДНИКОВ] [ПОЧЕТНЫЕ ЗВАНИЯ];

ДОЛЖНОСТИ СОТРУДНИКОВ (таб_ном, код_долж, дата_зач_должн) [СПИСОК СОТРУДНИКОВ] [ДОЛЖНОСТИ];

Далее было проектирование базовых реляционных таблиц.

2.3 Проектирование даталогической модели

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

CREATE TABLE СПИСОКСОТРУДНИКОВ

(Таб_ном INTEGER PRIMARY KEY,

Ф.И.О._сотр TEXT(30) NOT NULL,

Дата_р_с DATE NOT NULL,

Телефон_с CHAR(10),

Пасп_дан CHAR (100) UNIQUE NOT NULL,

Адрес_с CHAR(100) NOT NULL,

Дата_нач_р DATE NOT NULL,

Дата_оконч_р DATE,

№полисаCHAR (10) UNIQUE,

ставка

штат_сотр

пол TEXT (1) NOT NULL,

CHECK (пол IN («м», «ж»)));

CREATE TABLE СПИСОКУЧАЩИХСЯ

(ном_уч INTEGER PRIMARY KEY,

Ф.И.О._уч TEXT(30) NOT NULL,

дата_р_уч DATE NOT NULL,

тел_уч CHAR(10),

адрес_уч CHAR(100) NOT NULL,

Ф.И.О._м TEXT(30),

Ф.И.О._п TEXT(30),

пол TEXT (1) NOT NULL,

CHECK (пол IN («м», «ж»)));

CREATE TABLE СОЦСТАТУССЕМЬИ

(код_стат INTEGER PRIMARY KEY,

соц_стат TEXT(20);

CHECK (соц_стат IN(«многодетная семья», «неполная семья», «опекаемые дети», «состоит на учете в ОППН», «малоимущая семья», «неблагополучная семья»)));

CREATETABLEОБРАЗОВАТЕЛЬНЫЕ УЧЕРЕЖДЕНИЯ

(код_обр_уч INTEGERPRIMARYKEY,

обр_уч CHAR(10)

CHECK (обр_уч IN(«МОУ СОШ №1»,» МОУ СОШ №2»,» МОУ СОШ №3»,» МОУ СОШ №4»,» МОУ СОШ №5»,» МОУ СОШ №6»,» МОУ СОШ №8»,» МОУ СОШ №10», «МОУ СОШ №12», «МОУ СОШ №15», «Профессиональные и высшие учебные заведения»,» МДОУ»)));

CREATE TABLE ОТДЕЛЕНИЯ

(код_отделенияINTEGER PRIMARY KEY,

отделение TEXT(20);

CHECK (отделение IN(«спортивная гимнастика»,» лёгкая атлетика»,» волейбол»)));

CREATE TABLE ПОЧЕТНЫЕЗВАНИЯ

(Код_званияINTEGER PRIMARY KEY,

звание TEXT(30)

CHECK (звание IN («Заслуженный тренер России»,» Почётный работник общего образования»,» Отличник физической культуры и спорта РФ»,» Мастер спорта международного класса»,» Мастер спорта РФ»,» Знак «80-лет Министерству по физической культуре, спорту и туризму Свердловской области»)));

CREATE TABLE ДОЛЖНОСТИ

(код_должINTEGER PRIMARY KEY,

должность TEXT(15)

CHECK (должность IN («тренер», «методист», «директор»)));

CREATE TABLE ГОРОДА

(код_городаINTEGER PRIMARY KEY,

города TEXT(20)

CHECK (города IN («Алапаевск», «Екатеринбург», «Челябинск», «Нижний Тагил»)));

CREATE TABLE УРОВЕНЬСОРЕВНОВАНИЙ

(код_урINTEGER PRIMARY KEY,

ур_сор TEXT(20)

CHECK (ур_сор IN («международные», «всероссийские», «зональные», «областные», «районные», «городские»)));

CREATE TABLE РАЗРЯД

(код_раздINTEGER PRIMARY KEY,

разряд TEXT(20)

CHECK (разряд IN («первый юношеский», «второй юношеский», «третий юношеский», «первый взрослый», «второй взрослый», «третий взрослый», «четвертый взрослый», «пятый взрослый», «кандидат в мастера спорта», «мастер спорта России», «мастер спорта России международного класса»)));

CREATE TABLE УРОВЕНЬЗДОРОВЬЯ

(код_ур_зINTEGER PRIMARY KEY,

Ур_здор TEXT

CHECK(группа IN(«низкий», «ниже среднего», «средний», «выше среднего», «высокий»)));

CREATE TABLE КАТЕГОРИИ

(код_катINTEGER PRIMARY KEY,

категория CHAR(10)

CHECK(группа IN(«первая», «вторая», «высшая»)));

CREATETABLEПРОГРАММА СОРЕВНОВАНИЙ

(код_прогр_сор INTEGERPRIMARYKEY,

прогр_сор TEXT

CHECK(прогр_сор IN(«произвольная», «общая»);

ОБРАЗОВАНИЕ СОТРУДНИКОВ (таб_ном, код_образ) [список сотрудников] [образование];

CREATETABLE ОБРАЗОВАНИЕ СОТРУДНИКОВ

(таб_номINTEGER

код_образINTEGER)

PRIMARYKEY (таб_ном, код_образ),

FOREINKEY (таб_ном) REFERENCES СПИСОК СОТРУДНИКОВ

ON DELETE CASCADE

ON UPDATE CASCADE

FOREIN KEY (код_образ) REFERENCES ОБРАЗОВАНИЕ

ON DELETE RESTRICT

ON UPDATE CASCADE

CREATE TABLE СПИСОКГРУПП

(код_группыINTEGER PRIMARY KEY,

код_отделения INTEGER PRIMARY KEY,

группа CHAR(10))

PRIMARY KEY (код_группы),

FOREIN KEY (код_отделения) REFERENCES ОТДЕЛЕНИЯ

ON DELETE CASCADE

ONUPDATECASCADE

CHECK(группа IN(«СОГ», «Н/П-1г», «Н/П-1в», «Н/П-1а», «Н/П-2г», «Н/П-2в», «Н/П-2а», «Н/П-3г», «Н/П-3в», «Н/П-3а», «УТГ-1г», «УТГ-1в», «УТГ-1а», «УТГ-2г», «УТГ-2в», «УТГ-2а», «УТГ-3г», «УТГ-3в», «УТГ-3а», «УТГ-4г», «УТГ-4в», «УТГ-4а», «УТГ-5г», «УТГ-5в», «УТГ-5а», «С/С-1г», «С/С-1в», «С/С-1а», «С/С-2г», «С/С-2в», «С/С-2а», «ВСМ»)));

CREATE TABLE ВЫПУСКУЧАЩИХСЯ

(ном_учINTEGER NOT NULL,

Дата_окончDATA

№прик_отч TEXT

№прик_разр_к TEXT),

PRIMARY KEY (ном_уч),

FOREIN KEY (ном_уч) REFERENCES СПИСОКУЧАЩИХСЯ

ON DELETE RESTRICT

ON UPDATE CASCADE

CREATE TABLE ЗАЧИСЛЕНИЕУЧАЩИХСЯ

(ном_учINTEGER NOT NULL,

код_обр_учINTEGER NOT NULL,

Дата_зач DATA

№прик_зач TEXT),

PRIMARY KEY (ном_уч)

FOREIN KEY (ном_уч) REFERENCES СПИСОКУЧАЩИХСЯ

ON DELETE RESTRICT

ON UPDATE CASCADE

FOREINKEY (код_обр_уч) REFERENCES ОБРАЗОВАТЕЛЬНЫЕ УЧЕРЕЖДЕНИЯ

ON DELETE RESTRICT

ON UPDATE CASCADE

CREATE TABLE СЕМЬЯУЧАЩЕГОСЯ

(ном_уч INTEGER NOT NULL

код_стат INTEGER NOT NULL)

PRIMARY KEY (ном_уч),

FOREIN KEY (ном_уч) REFERENCES СПИСОКУЧАЩИХСЯ

ON DELETE RESTRICT

ON UPDATE CASCADE

FOREIN KEY (код_стат) REFERENCES СОЦСТАТУССЕМЬИ

ON DELETE RESTRICT

ON UPDATE CASCADE;

CREATE TABLE АТТЕСТАЦИЯТРЕНЕРОВ

(таб_ном INTEGER NOT NULL

код_меропрINTEGER NOT NULL

месяц DATA

кат_заявINTEGER

утв_катINTEGER

дата_атт_трен DATA),

PRIMARY KEY (таб_ном, код_меропр),

FOREIN KEY (таб_ном) REFERENCES СПИСОКСОТРУДНИКОВ,

ON DELETE CASCADE

ON UPDATE CASCADE

FOREIN KEY (кат_заяв) REFERENCES КАТЕГОРИИ,

ON DELETE RESTRICT

ON UPDATE CASCADE

FOREIN KEY (утв_кат) REFERENCES КАТЕГОРИИ,

ON DELETE RESTRICT

ON UPDATE CASCADE

CREATE TABLE СОРЕВНОВАНИЯ

(код_сор INTEGER NOT NULL,

код_города INTEGER NOT NULL

ранг TEXT

код_ур INTEGER NOT NULL

прогр_сор TEXT

фин_сор LOGICAL

Дата_сор DATE),

PRIMARY KEY (код_сор),

FOREIN KEY (код_гор) REFERENCES ГОРОДА

ON DELETE RESTRICT

ON UPDATE CASCADE

FOREINKEY (код_ур) REFERENCES УРОВЕНЬ СОРЕВНОВАНИЙ;

ON DELETE RESTRICT

ON UPDATE CASCADE

FOREINKEY (код_прогр_сор) REFERENCES ПРОГРАММА СОРЕВНОВАНИЙ;

ON DELETE RESTRICT

ON UPDATE CASCADE

CREATE TABLE КОМПЛЕКТОВАНИЕУЧ

(код_группы INTEGER NOT NULL

ном_уч INTEGER NOT NULL),

PRIMARYKEY (код_группы, ном_уч),

FOREIN KEY (ном_уч) REFERENCES СПИСОКУЧАЩИХСЯ,

ON DELETE RESTRICT

ON UPDATE CASCADE

FOREIN KEY (код_группы) REFERENCES СПИСОКГРУПП;

ON DELETE RESTRICT

ON UPDATE CASCADE

CREATETABLEРЕЗУЛЬТАТ ВЫСТУПЛЕНИЙ НА СОРЕВНОВАНИЯХ

(ном_уч INTEGER NOT NULL

код_сор INTEGER NOT NULL

кол_бал INTEGER

таб_ном INTEGER NOT NULL),

PRIMARY KEY (ном_уч, код_сор),

FOREIN KEY (таб_ном) REFERENCES СПИСОКСОТРУДНИКОВ,

ON DELETE RESTRICT

ON UPDATE CASCADE

FOREIN KEY (код_сор) REFERENCES СОРЕВНОВАНИЯ,

ON DELETE RESTRICT

ON UPDATE CASCADE

FOREIN KEY (ном_уч) REFERENCES СПИСОКУЧАЩИХСЯ;

ON DELETE RESTRICT

ON UPDATE CASCADE

CREATE TABLE СПОРТСМЕНЫ– РАЗРЯДНИКИ

(код_с_р INTEGER NOT NULL

ном_уч INTEGER NOT NULL

ном_п_п INTEGER NOT NULL

разряд TEXT

код_отделения INTEGER NOT NULL

дата_разр DATA

таб_ном INTEGER NOT NULL

ном_прик INTEGER),

PRIMARY KEY (код_с_р),

FOREIN KEY (таб_ном) REFERENCES СПИСОКСОТРУДНИКОВ,

ON DELETE RESTRICT

ON UPDATE CASCADE

FOREIN KEY (ном_уч) REFERENCES СПИСОКУЧАЩИХСЯ

ON DELETE RESTRICT

ON UPDATE CASCADE

FOREIN KEY (код_отделения) REFERENCES ОТДЕЛЕНИЯ

ON DELETE RESTRICT

ON UPDATE CASCADE

CREATE TABLE ОЗДОРОВЛЕНИЕУЧАЩИХСЯ

(ном_уч INTEGER NOT NULL

дата_з DATA

код_ур_здор TEXT),

PRIMARY KEY (ном_уч, дата_з),

FOREIN KEY (ном_уч) REFERENCES СПИСОКУЧАЩИХСЯ

ON DELETE CASCADE

ON UPDATE CASCADE

FOREIN KEY (код_ур_з) REFERENCES СПИСОКУЧАЩИХСЯ

ON DELETE RESTRICT

ON UPDATE RESTRICT

CREATE TABLE ЗАСЛУЖЕННЫЕРАБОТНИКИ

(таб_ном INTEGER NOT NULL

код_звания INTEGER NOT NULL),

PRIMARYKEY (таб_ном, код_звания

FOREIN KEY (таб_ном) REFERENCES СПИСОКСОТРУДНИКОВ

ON DELETE CASCADE

ON UPDATE CASCADE

FOREIN KEY (код_звания) REFERENCES ЗВАНИЯ

ON DELETE RESTRICT

ON UPDATE CASCADE

CREATE TABLE ДОЛЖНОСТИСОТРУДНИКОВ

(таб_ном INTEGER NOT NULL

Ф.И.О._сотр TEXT

Код_долж INTEGER NOT NULL

Должность TEXT

Дата_зач_должн DATA),

PRIMARY KEY (таб_ном, код_долж

FOREIN KEY (таб_ном) REFERENCES СПИСОКСОТРУДНИКОВ

ON DELETE CASCADE

ON UPDATE CASCADE

FOREIN KEY (код_долж) REFERENCES ДОЛЖНОСТИ

ON DELETE RESTRICT

ON UPDATE CASCADE

2.4 Проверка нормализации спроектированных таблиц

1. Таблицы, состоящие из 2х атрибутов находятся в НФБК.

Это таблицы:

СОЦ СТАТУС СЕМЬИ (код_стат, соц_стат);

ОБРАЗОВАТЕЛЬНЫЕ УЧЕРЕЖДЕНИЯ (код_обр_уч, обр_уч);

ОТДЕЛЕНИЯ (код_отделения, отделение);

ПОЧЕТНЫЕ ЗВАНИЯ (Код_звания, звание);

ДОЛЖНОСТИ (код_долж, должность);

ГОРОДА (код_города, город);

УРОВЕНЬ СОРЕВНОВАНИЙ (код_ур, ур_сор);

РАЗРЯД (код_разр, разряд);

УРОЕНЬ ЗДОРОВЬЯ (код_ур_з, уровень здор);

КАТЕГОРИИ (код_кат, категория);

ПРОГРАММА СОРЕВНОВАНИЙ (код_прогр_сор, прогр, сор);

ОБРАЗОВАНИЕ (код_образ, образование);

КОМПЛЕКТОВАНИЕ ТРЕНЕР (таб_ном, код_группы) [список сотрудников] [список групп];

КОМПЛЕКТОВАНИЕ УЧ (код_группы, ном_уч) [список групп] [список учащихся];

ОБРАЗОВАНИЕ СОТРУДНИКОВ (Ф.И.О._сотр, образование) [список сотрудников] [образование];

СЕМЬЯ УЧАЩЕГОСЯ (ном_уч, код_стат) [список учащихся] [Соц статус семьи];

ЗАСЛУЖЕННЫЕ РАБОТНИКИ (таб_ном, код_звания,) [список сотрудников] [почетные звания];