ГОРОДА (код_города, город);
УРОВЕНЬ СОРЕВНОВАНИЙ (код_ур, ур_сор);
РАЗРЯД (код_разр, разряд);
УРОЕНЬ ЗДОРОВЬЯ (код_ур_з, уровень здор);
КАТЕГОРИИ (код_кат, категория);
ПРОГРАММА СОРЕВНОВАНИЙ (код_прогр_сор, прогр, сор);
ОБРАЗОВАНИЕ (код_образ, образование);
Обозначения:
СПИСОК ГРУПП (код_группы, группа, код_отделения,) [ОТДЕЛЕНИЯ];
ОБРАЗОВАНИЕ СОТРУДНИКОВ (таб_ном,код_образ) [СПИСОК СОТРУДНИКОВ] [ОБРАЗОВАНИЕ];
ЗАЧИСЛЕНИЕ УЧАЩИХСЯ (код_зач, ном_уч, дата_зач, №прик_зач) [СПИСОК УЧАЩИХСЯ];
ВЫПУСК УЧАЩИХСЯ (код_зач, дата_оконч, №прик_отч, №прик_разр_к) [СПИСОК УЧАЩИХСЯ];
СЕМЬЯ УЧАЩЕГОСЯ (ном_уч, код_стат) [СПИСОК УЧАЩИХСЯ] [СОЦ СТАТУС СЕМЬИ];
АТТЕСТАЦИЯ ТРЕНЕРОВ (таб_ном, код_эксп, код_заяв_кат, код_утв_кат, дата_атт_трен) [СПИСОК СОТРУДНИКОВ] [КАТЕГОРИИ];
СОРЕВНОВАНИЯ (Код_сор, код_города, ранг, код_ур, код_прогр_сор, фин_сор, дата_сор) [ГОРОДА] [УРОВЕНЬ СОРЕВНОВАНИЙ] [ПРОГРАММА СОРЕВНОВАНИЙ];
КОМПЛЕКТОВАНИЕ УЧ (код_группы, ном_уч) [СПИСОК ГРУПП] [СПИСОК УЧАЩИХСЯ];
РЕЗУЛЬТАТ ВЫСТУПЛЕНИЙ НА СОРЕВНОВАНИЯХ (ном_уч, код_сор, кол_бал, таб_ном) [СПИСОК УЧАЩИХСЯ] [СПИСОК СОТРУДНИКОВ] [СОРЕВНОВАНИЯ];
СПОРТСМЕНЫ – РАЗРЯДНИКИ (код_с_р, ном_уч, код_разр, дата_разр, таб_ном, ном_прик) [СПИСОК УЧАЩИХСЯ] [СПИСОК СОТРУДНИКОВ] [РАЗРЯД];
ОЗДОРОВЛЕНИЕ УЧАЩИХСЯ (ном_уч, дата_з, код_ур_з) [СПИСОК УЧАЩИХСЯ] [УРОВЕНЬ ЗДОРОВЬЯ];
ЗАСЛУЖЕННЫЕ РАБОТНИКИ (таб_ном, код_звания,) [СПИСОК СОТРУДНИКОВ] [ПОЧЕТНЫЕ ЗВАНИЯ];
ДОЛЖНОСТИ СОТРУДНИКОВ (таб_ном, код_долж, дата_зач_должн) [СПИСОК СОТРУДНИКОВ] [ДОЛЖНОСТИ];
Далее было проектирование базовых реляционных таблиц.
Описание таблиц на 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
1. Таблицы, состоящие из 2х атрибутов находятся в НФБК.
Это таблицы:
СОЦ СТАТУС СЕМЬИ (код_стат, соц_стат);
ОБРАЗОВАТЕЛЬНЫЕ УЧЕРЕЖДЕНИЯ (код_обр_уч, обр_уч);
ОТДЕЛЕНИЯ (код_отделения, отделение);
ПОЧЕТНЫЕ ЗВАНИЯ (Код_звания, звание);
ДОЛЖНОСТИ (код_долж, должность);
ГОРОДА (код_города, город);
УРОВЕНЬ СОРЕВНОВАНИЙ (код_ур, ур_сор);
РАЗРЯД (код_разр, разряд);
УРОЕНЬ ЗДОРОВЬЯ (код_ур_з, уровень здор);
КАТЕГОРИИ (код_кат, категория);
ПРОГРАММА СОРЕВНОВАНИЙ (код_прогр_сор, прогр, сор);
ОБРАЗОВАНИЕ (код_образ, образование);
КОМПЛЕКТОВАНИЕ ТРЕНЕР (таб_ном, код_группы) [список сотрудников] [список групп];
КОМПЛЕКТОВАНИЕ УЧ (код_группы, ном_уч) [список групп] [список учащихся];
ОБРАЗОВАНИЕ СОТРУДНИКОВ (Ф.И.О._сотр, образование) [список сотрудников] [образование];
СЕМЬЯ УЧАЩЕГОСЯ (ном_уч, код_стат) [список учащихся] [Соц статус семьи];
ЗАСЛУЖЕННЫЕ РАБОТНИКИ (таб_ном, код_звания,) [список сотрудников] [почетные звания];