Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив2 / курсовая docx40 / KURSOVAYa(60).docx
Скачиваний:
65
Добавлен:
07.08.2013
Размер:
1.13 Mб
Скачать

Функциональные зависимости.

ФЗ в НФБК

Детерминанты

Возможные ключи

id_ability

id_ability

id_blessing

id_blessing

id_character

id_character

id_clan

id_clan

id_country

id_country

id_form

id_form

id_god

id_god

id_government

id_government

id_governor

id_governor

id_kind

id_kind

id_race

id_race

id_rank

id_rank

id_specialization

id_spezialization

id_suscebtibility

id_suscebtibility

id_type

id_type

id_universe

id_universe

id_specialization id_ability

id_specialization id_ability

id_specialization id_suscebtibility

id_specializationid_suscebtibility

id_blessing id_ability

id_blessing id_heroes

id_blessing id_suscebtibility

id_blessing id_suscebtidility

id_race id_ability

id_race id_ability

id_race id_suscebtibility

id_race id_suscebtibility

id_character, id_god

id_character

id_god

id_specialization id_heroes

id_specialization

id_heroes

Sql листинги:

Create (Создание таблиц):

CREATE DATABASE IF NOT EXISTS `stud161161`;

USE `stud161161`;

DROP TABLE IF EXISTS `heroes_specialization`;

DROP TABLE IF EXISTS `suscebtibility_specialization`;

DROP TABLE IF EXISTS `ability_specialization`;

DROP TABLE IF EXISTS `ability_race`;

DROP TABLE IF EXISTS `ability_blessing`;

DROP TABLE IF EXISTS `suscebtibility_race`;

DROP TABLE IF EXISTS `god_character`;

DROP TABLE IF EXISTS `suscebtibility_blessing`;

DROP TABLE IF EXISTS `heroes`;

DROP TABLE IF EXISTS `governor`;

DROP TABLE IF EXISTS `heirs`;

DROP TABLE IF EXISTS `character`;

DROP TABLE IF EXISTS `god`;

DROP TABLE IF EXISTS `blessing`;

DROP TABLE IF EXISTS `specialization`;

DROP TABLE IF EXISTS `race`;

DROP TABLE IF EXISTS `suscebtibility`;

DROP TABLE IF EXISTS `ability`;

DROP TABLE IF EXISTS `type_god`;

DROP TABLE IF EXISTS `form`;

DROP TABLE IF EXISTS `rank`;

DROP TABLE IF EXISTS `clan`;

DROP TABLE IF EXISTS `country`;

DROP TABLE IF EXISTS `government`;

DROP TABLE IF EXISTS `universe`;

DROP TABLE IF EXISTS `kind_universe`;

CREATE TABLE `kind_universe` (

`id_kind` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Первичный ключ',

`kind` VARCHAR(20) NOT NULL DEFAULT '' COMMENT 'Вид Вселенной',

`description` TEXT COMMENT 'Краткое описание'

) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci

COMMENT = 'Вид Вселенной';

CREATE TABLE `universe` (

`id_universe` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Первичный ключ',

`id_kind` INT UNSIGNED NOT NULL COMMENT 'Вид вселенной (kind_universe)',

`name` VARCHAR(20) NOT NULL DEFAULT '' COMMENT 'Название Вселенной',

`technical_level` ENUM('low', 'average', 'high') NOT NULL COMMENT 'Технический уровень',

`moral_level` ENUM('low', 'average', 'high') NOT NULL COMMENT 'Уровень морали',

`author` VARCHAR(100) COMMENT 'Автор Вселенной',

`age` INT NOT NULL DEFAULT 0 COMMENT 'Возраст Вселенной',

`description` TEXT COMMENT 'Краткое описание',

FOREIGN KEY (`id_kind`)

REFERENCES `kind_universe`(`id_kind`)

ON UPDATE CASCADE ON DELETE RESTRICT

) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci

COMMENT = 'Вселенная';

CREATE TABLE `government` (

`id_government` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Первичный ключ',

`id_universe` INT UNSIGNED NOT NULL COMMENT '',

`name` VARCHAR(20) NOT NULL DEFAULT '' COMMENT 'Название Правительства',

`type_power` VARCHAR(20) NOT NULL COMMENT 'Вид власти',

FOREIGN KEY (`id_universe`)

REFERENCES `universe`(`id_universe`)

ON UPDATE CASCADE ON DELETE RESTRICT

) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci

COMMENT = 'Правительство';

CREATE TABLE `country` (

`id_country` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Первичный ключ',

`id_universe` INT UNSIGNED NOT NULL COMMENT 'Вселенная (universe)',

`id_government`INT UNSIGNED NOT NULL COMMENT 'Правительство (government)',

`name` VARCHAR(30) NOT NULL DEFAULT '' COMMENT 'Название Страны',

`location` ENUM('N','S','W','E','N-W','N-E','S-W','S-E') NOT NULL COMMENT 'Место расположение',

`landscape` VARCHAR(100) NOT NULL DEFAULT '' COMMENT 'Ландшафт',

`flora` TEXT COMMENT 'Краткое описание флоры',

`fauna` TEXT COMMENT 'Краткое описание фауны',

FOREIGN KEY (`id_universe`)

REFERENCES `universe`(`id_universe`)

ON UPDATE CASCADE ON DELETE RESTRICT,

FOREIGN KEY (`id_government`)

REFERENCES `government`(`id_government`)

ON UPDATE CASCADE ON DELETE RESTRICT

) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci

COMMENT = 'Страна';

CREATE TABLE `clan` (

`id_clan` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Первичный ключ',

`id_universe` INT UNSIGNED NOT NULL COMMENT 'Вселенная (universe)',

`name` VARCHAR(20) NOT NULL DEFAULT '' COMMENT 'Название Клана',

`pedigree` TEXT COMMENT 'Родословная клана или семьи',

`roots` VARCHAR(100) COMMENT 'Корни',

FOREIGN KEY (`id_universe`)

REFERENCES `universe`(`id_universe`)

ON UPDATE CASCADE ON DELETE RESTRICT

) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci

COMMENT = 'Клан';

CREATE TABLE `rank` (

`id_rank` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Первичный ключ',

`type` VARCHAR(20) NOT NULL DEFAULT '' COMMENT 'Класс'

) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci

COMMENT = 'Класс';

CREATE TABLE `form` (

`id_form` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Первичный ключ',

`name` VARCHAR(20) NOT NULL DEFAULT '' COMMENT 'Название форм',

`type` ENUM('positive','negative', 'neutral') NOT NULL COMMENT 'Воздействие формы'

) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci

COMMENT = 'Форма(способности или восприимчивости)';

CREATE TABLE `type_god` (

`id_type` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Первичный ключ',

`type` VARCHAR(20) NOT NULL DEFAULT '' COMMENT 'Вид Бога',

`description` TEXT COMMENT 'Краткое описание'

) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci

COMMENT = 'Вид Бога';

CREATE TABLE `suscebtibility` (

`id_suscebtibility` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Первичный ключ',

`id_rank` INT UNSIGNED NOT NULL COMMENT 'Принадлежность к Классу (rank)',

`id_form` INT UNSIGNED NOT NULL COMMENT 'Форма (form)',

`name` VARCHAR(30) NOT NULL DEFAULT '' COMMENT 'Название Страны',

`power` INT COMMENT 'Мощность в %',

`repercusion` VARCHAR(255) NOT NULL DEFAULT '' COMMENT 'Последствия',

FOREIGN KEY (`id_rank`)

REFERENCES `rank`(`id_rank`)

ON UPDATE CASCADE ON DELETE RESTRICT,

FOREIGN KEY (`id_form`)

REFERENCES `form`(`id_form`)

ON UPDATE CASCADE ON DELETE RESTRICT

) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci

COMMENT = 'Восприимчивость или Сопротивление';

CREATE TABLE `ability` (

`id_ability` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Первичный ключ',

`id_rank` INT UNSIGNED NOT NULL COMMENT 'Принадлежность к Классу (rank)',

`id_form` INT UNSIGNED NOT NULL COMMENT 'Форма (form)',

`name` VARCHAR(30) NOT NULL DEFAULT '' COMMENT 'Название Страны',

`power` INT COMMENT 'Сила воздействия',

`lasting` INT COMMENT 'Продолжительность способности в секундах',

`repercusion` VARCHAR(255) NOT NULL DEFAULT '' COMMENT 'Последствия',

FOREIGN KEY (`id_rank`)

REFERENCES `rank`(`id_rank`)

ON UPDATE CASCADE ON DELETE RESTRICT,

FOREIGN KEY (`id_form`)

REFERENCES `form`(`id_form`)

ON UPDATE CASCADE ON DELETE RESTRICT

) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci

COMMENT ='Способность';

CREATE TABLE `race` (

`id_race` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Первичный ключ',

`id_universe` INT UNSIGNED NOT NULL COMMENT 'Вселенная (universe)',

`name` VARCHAR(20) NOT NULL DEFAULT '' COMMENT 'Название Расы',

`life_expect` INT NOT NULL DEFAULT 0 COMMENT 'Средняя продолжительность жизни в годах',

`growth` VARCHAR(20) NOT NULL DEFAULT '' COMMENT 'Средний рост в см',

`weight` VARCHAR(20) NOT NULL DEFAULT '' COMMENT 'Средний вес в кг',

`color_skin` VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Цвет кожи',

`color_hair` VARCHAR(50) COMMENT 'Цвет волос',

`description` TEXT COMMENT 'Краткое описание Расы',

FOREIGN KEY (`id_universe`)

REFERENCES `universe`(`id_universe`)

ON UPDATE CASCADE ON DELETE RESTRICT

) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci

COMMENT = 'Раса';

CREATE TABLE `specialization` (

`id_specialization` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Первичный ключ',

`id_rank` INT UNSIGNED NOT NULL COMMENT 'Принадлежность к Классу (rank)',

`name` VARCHAR(20) NOT NULL DEFAULT '' COMMENT 'Название Специализации',

`description` TEXT COMMENT 'Краткое описание Специализации',

FOREIGN KEY (`id_rank`)

REFERENCES `rank`(`id_rank`)

ON UPDATE CASCADE ON DELETE RESTRICT

) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci

COMMENT = 'Специализация';

CREATE TABLE `blessing` (

`id_blessing` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Первичный ключ',

`name` VARCHAR(20) NOT NULL DEFAULT '' COMMENT 'Название Благословения',

`repercusion` VARCHAR(255) NOT NULL DEFAULT '' COMMENT 'Последствия'

) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci

COMMENT = 'Благословение Бога';

CREATE TABLE `god` (

`id_god` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Первичный ключ',

`id_universe` INT UNSIGNED NOT NULL COMMENT 'Вселенная (universe)',

`id_type` INT UNSIGNED NOT NULL COMMENT 'Вид Бога (type_god)',

`id_blessing` INT UNSIGNED NOT NULL COMMENT 'Благословение Бога (blessing)',

`name` VARCHAR(20) NOT NULL DEFAULT '' COMMENT 'Имя Бога',

`side` ENUM('evil','neutral','good') NOT NULL COMMENT 'Мировоззрение Бога',

`description` TEXT COMMENT 'Краткое описание',

FOREIGN KEY (`id_universe`)

REFERENCES `universe`(`id_universe`)

ON UPDATE CASCADE ON DELETE RESTRICT,

FOREIGN KEY (`id_type`)

REFERENCES `type_god`(`id_type`)

ON UPDATE CASCADE ON DELETE RESTRICT,

FOREIGN KEY (`id_blessing`)

REFERENCES `blessing`(`id_blessing`)

ON UPDATE CASCADE ON DELETE RESTRICT

) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci

COMMENT = 'Бог';

CREATE TABLE `character` (

`id_character` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Первичный ключ',

`id_country` INT UNSIGNED NOT NULL COMMENT 'Страна (country)',

`id_race` INT UNSIGNED NOT NULL COMMENT 'Раса (race)',

`id_clan` INT UNSIGNED NOT NULL COMMENT 'Клан (clan)',

`name` VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Имя',

`gender` ENUM('male', 'female') NOT NULL COMMENT 'Пол',

`age` INT NOT NULL DEFAULT 0 COMMENT 'Возраст',

`title` VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Звание(титул)',

`ideology` VARCHAR(50) COMMENT 'Мировоззрение',

`property` TEXT COMMENT 'Имущество',

`description` TEXT COMMENT 'Дополнительные сведения(биография)',

FOREIGN KEY (`id_country`)

REFERENCES `country`(`id_country`)

ON UPDATE CASCADE ON DELETE RESTRICT,

FOREIGN KEY (`id_race`)

REFERENCES `race`(`id_race`)

ON UPDATE CASCADE ON DELETE RESTRICT,

FOREIGN KEY (`id_clan`)

REFERENCES `clan`(`id_clan`)

ON UPDATE CASCADE ON DELETE RESTRICT

) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci

COMMENT = 'Персонажи Вселенной';

CREATE TABLE `heroes` (

`id_heroes` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Первичный ключ',

`id_character` INT UNSIGNED NOT NULL COMMENT 'Персонаж(character)',

`birthday` DATE NOT NULL COMMENT 'Ваша Дата рождения',

`level` INT NOT NULL DEFAULT 0 COMMENT 'Уровень Героя',

FOREIGN KEY (`id_character`)

REFERENCES `character`(`id_character`)

ON UPDATE CASCADE ON DELETE RESTRICT

) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci

COMMENT = 'Герои';

CREATE TABLE `governor` (

`id_governor` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Первичный ключ',

`id_character` INT UNSIGNED NOT NULL COMMENT 'Персонаж(character)',

`id_government` INT UNSIGNED NOT NULL COMMENT 'Правительство (government)',

`reign` INT NOT NULL DEFAULT 0 COMMENT 'Время правления',

FOREIGN KEY (`id_character`)

REFERENCES `character`(`id_character`)

ON UPDATE CASCADE ON DELETE RESTRICT

) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci

COMMENT = 'Правитель';

CREATE TABLE `heirs` (

`id_heirs` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Первичный ключ',

`id_character` INT UNSIGNED NOT NULL COMMENT 'Персонаж(character)',

`id_governor` INT UNSIGNED NOT NULL COMMENT 'Правитель (governor)',

FOREIGN KEY (`id_character`)

REFERENCES `character`(`id_character`)

ON UPDATE CASCADE ON DELETE RESTRICT

) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci

COMMENT = 'Наследники Правителя';

CREATE TABLE `god_character` (

`id_god` INT UNSIGNED NOT NULL COMMENT 'Связь с god',

`id_character` INT UNSIGNED NOT NULL COMMENT 'Связь с character',

PRIMARY KEY (`id_god`, `id_character`),

FOREIGN KEY (`id_god`)

REFERENCES `god`(`id_god`)

ON UPDATE CASCADE ON DELETE RESTRICT,

FOREIGN KEY (`id_character`)

REFERENCES `character`(`id_character`)

ON UPDATE CASCADE ON DELETE RESTRICT

) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci

COMMENT = 'Связь персонажей с Богами, в которых они верят';

CREATE TABLE`ability_race`(

`id_ability` INT UNSIGNED NOT NULL COMMENT 'Связь с ability',

`id_race` INT UNSIGNED NOT NULL COMMENT 'Связь с race',

PRIMARY KEY (`id_ability`, `id_race`),

FOREIGN KEY (`id_ability`)

REFERENCES `ability`(`id_ability`)

ON UPDATE CASCADE ON DELETE RESTRICT,

FOREIGN KEY (`id_race`)

REFERENCES `race`(`id_race`)

ON UPDATE CASCADE ON DELETE RESTRICT

) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci

COMMENT = 'Связь Расы со Способностями, которые они дают';

CREATE TABLE`suscebtibility_race`(

`id_suscebtibility` INT UNSIGNED NOT NULL COMMENT 'Связь с suscebtibility',

`id_race` INT UNSIGNED NOT NULL COMMENT 'Связь с race',

PRIMARY KEY (`id_suscebtibility`, `id_race`),

FOREIGN KEY (`id_suscebtibility`)

REFERENCES `suscebtibility`(`id_suscebtibility`)

ON UPDATE CASCADE ON DELETE RESTRICT,

FOREIGN KEY (`id_race`)

REFERENCES `race`(`id_race`)

ON UPDATE CASCADE ON DELETE RESTRICT

) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci

COMMENT = 'Связь Расы со Сопротивлением или Восприимчивостью, которые она дает';

CREATE TABLE`ability_blessing`(

`id_ability` INT UNSIGNED NOT NULL COMMENT 'Связь с ability',

`id_blessing` INT UNSIGNED NOT NULL COMMENT 'Связь с blessing',

PRIMARY KEY (`id_ability`, `id_blessing`),

FOREIGN KEY (`id_ability`)

REFERENCES `ability`(`id_ability`)

ON UPDATE CASCADE ON DELETE RESTRICT,

FOREIGN KEY (`id_blessing`)

REFERENCES `blessing`(`id_blessing`)

ON UPDATE CASCADE ON DELETE RESTRICT

) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci

COMMENT = 'Связь Благословения со Способностями, которые они дают';

CREATE TABLE`suscebtibility_blessing`(

`id_suscebtibility` INT UNSIGNED NOT NULL COMMENT 'Связь с suscebtibility',

`id_blessing` INT UNSIGNED NOT NULL COMMENT 'Связь с blessing',

PRIMARY KEY (`id_suscebtibility`, `id_blessing`),

FOREIGN KEY (`id_suscebtibility`)

REFERENCES `suscebtibility`(`id_suscebtibility`)

ON UPDATE CASCADE ON DELETE RESTRICT,

FOREIGN KEY (`id_blessing`)

REFERENCES `blessing`(`id_blessing`)

ON UPDATE CASCADE ON DELETE RESTRICT

) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci

COMMENT = 'Связь Благословения Божьего со Сопротивлением или Восприимчивостью, которые оно дает';

CREATE TABLE`ability_specialization`(

`id_ability` INT UNSIGNED NOT NULL COMMENT 'Связь с ability',

`id_specialization` INT UNSIGNED NOT NULL COMMENT 'Связь с specialization',

PRIMARY KEY (`id_ability`, `id_specialization`),

FOREIGN KEY (`id_ability`)

REFERENCES `ability`(`id_ability`)

ON UPDATE CASCADE ON DELETE RESTRICT,

FOREIGN KEY (`id_specialization`)

REFERENCES `specialization`(`id_specialization`)

ON UPDATE CASCADE ON DELETE RESTRICT

) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci

COMMENT = 'Связь Специализации со Способностями, которые они дают';

CREATE TABLE`suscebtibility_specialization`(

`id_suscebtibility` INT UNSIGNED NOT NULL COMMENT 'Связь с suscebtibility',

`id_specialization` INT UNSIGNED NOT NULL COMMENT 'Связь с specialization',

PRIMARY KEY (`id_suscebtibility`, `id_specialization`),

FOREIGN KEY (`id_suscebtibility`)

REFERENCES `suscebtibility`(`id_suscebtibility`)

ON UPDATE CASCADE ON DELETE RESTRICT,

FOREIGN KEY (`id_specialization`)

REFERENCES `specialization`(`id_specialization`)

ON UPDATE CASCADE ON DELETE RESTRICT

) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci

COMMENT = 'Связь Специализации со Сопротивлением или Восприимчивостью, которые они дают';

CREATE TABLE`heroes_specialization`(

`id_heroes` INT UNSIGNED NOT NULL COMMENT 'Связь с heroes',

`id_specialization` INT UNSIGNED NOT NULL COMMENT 'Связь с specialization',

PRIMARY KEY (`id_heroes`, `id_specialization`),

FOREIGN KEY (`id_heroes`)

REFERENCES `heroes`(`id_heroes`)

ON UPDATE CASCADE ON DELETE RESTRICT,

FOREIGN KEY (`id_specialization`)

REFERENCES `specialization`(`id_specialization`)

ON UPDATE CASCADE ON DELETE RESTRICT

) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci

COMMENT = 'Связь героев со специализацией, к которой они относятся';

Соседние файлы в папке курсовая docx40