Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД Отчёт 4741 Полищук.docx
Скачиваний:
2
Добавлен:
15.08.2019
Размер:
54.87 Кб
Скачать

Содержание

Техническое задание…………………………………………………………………………………………………………………………………………2

Название БД

Решаемые задачи

Актуальность

Сущности

Инфологическая модель……………………………………………………………………………………………………………………………………3

Описание полей…………………………………………………………………………………………………………………………………………………4

SQL листинги………………………………………………………………………………………………..……………………….……………………………7

Создание таблиц………………………………………………………………………………………………..……………………….………..………7

Вставка данных в таблицы………………………………………………………………………………..……………………….………..…….14

Обновление данных……………………………………………………………………………………………………………………………………20

Выборки………………………………………………………………………………………………..……………………….……………………………21

Выводы…………………………………………………………………………………………………………………………………………………………….22

Техническое задание

Название базы данных

«База данных для редакции газеты «Одуванчик»

Для каких целей и для кого разрабатывается база данных

База данных разрабатывается для использования в работе редакции газеты. Для хранения всей необходимой для организации информации.Для структурирования информации. Для упрощения процесса хранения, обновления, изменения, поиска, удаления информации. База будет использоваться секретарём редакции.

Актуальность

Разработка БД в выбранной области актуальна, так как для любой редакции газеты, которая имеет большое количество данных или данные связанные, с различными сторонами её деятельности (финансирование, кадры, производство, коммуникативная сторона), необходимо хранить всю важную информацию. Все эти составляющие (перечислены выше) присутствуют в функционировании редакции газеты. Для систематизации этих данных необходима БД.

Сущности

Работники, должности, трудовые контракты, командировки, отпуска, поощрения, оборудование, выпуски (№) газеты, статьи, изображения, вкладыши, организации-сотрудники. документы на отправку, внутренние документы, статьи расходов ,закупка материалов .

Также выделяются роли. В сущности «Должности» — начальник. В сущности «Документ» —внешний документ. В сущности «Другие организации» — типографии.

Описание полей

workers Хранит данные о работниках

id_worker

int

уникальный идентификатор

surname

varchar (20)

фамилия работника

name

varchar(20)

имя

patronymic

varchar(20)

отчество

birth

date

дата рождения

sex

enum(‘м’, ‘ж’)

пол

passport_data

varchar(50)

паспортные данные

place_of_above

varchar(50)

место жительства

inn

varchar(20)

ИНН

pension_certificate

varchar(20)

пенсионное свидетельство

workpositions Хранит данные о должностях

id_workposition

int

уникальный идентификатор

title

varchar(50)

Название должности

worker_workposition

id_workposition

int

уникальный идентификатор

id_worker

int

уникальный идентификатор

id_contract

int

уникальный идентификатор

date_start

date

дата начала работы по должности

date_end

date

дата окончания работы по должности

contracts Хранит информацию о контрактах

id_contract

int

уникальный идентификатор

contract_start

date

дата заключения контракта

contract_end

date

дата окончания контракта

worktrips Хранит информацию о командировках

id_worktrip

int

уникальный идентификатор

address

varchar(50)

адрес места командировки

trip_start

date

дата начала командировки

trip_end

date

дата окончания командировки

purpose

varchar(60)

цель командировки

id_worker

int

уникальный идентификатор

encouragements Хранит данные о поощрениях

id_encouragement

int

уникальный идентификатор

date_enc

date

дата получения поощрения

type_enc

varchar(20)

тип поощрения

workers_encouragements

id_encouragement

int

уникальный идентификатор

id_worker

int

уникальный идентификатор

holidays Хранит информацию об отпусках

id_holiday

int

уникальный идентификатор

start_holiday

date

дата начала отпуска

end_holiday

date

дата окончания отпуска

type_holiday

enum (‘осн‘, ‘доп‘)

тип отпуска

id_worker

int

уникальный идентификатор

expenseitems Хранит информацию о статьях расходов

id_expenseitem

int

уникальный идентификатор

date_exp

date

дата закупки статьи расходов

title

varchar(20)

наименование статьи расходов

year_ budget

int

годовой бюджет статьи

id_worker

int

уникальный идентификатор

costs Хранит данные о закупках

id_cost

int

уникальный идентификатор

title

varchar(20)

наименование закупки

article

varchar(20)

артикль

num

int

количество экземпляров

amount

int

общая стоимость

id_expenseitem

int

уникальный идентификатор

documents Хранит информацию о документах

id_document

int

уникальный идентификатор

date_doc

date

дата публикации документа

title

varchar(20)

название документа

id_worker

int

уникальный идентификатор

equipment Хранит информацию об оборудовании

id_equip

int

уникальный идентификатор

title

varchar(20)

наименование оборудования

date_buy

date

дата покупки оборудования

seriin_num

varchar(20)

серийный номер

zavodsk_num

varchar(20)

заводской номер

inventarn_num

varchar(20)

инвентаризационный номер

id_worker

int

уникальный идентификатор

outerdocuments Хранит данные о внешних документах

id_outerdocument

int

уникальный идентификатор

send_or_get

enum(‘Отправлен’, ‘Получен’)

Вид передачи внешнего документа

type_send

varchar(20)

Способ передачи

organisations Хранит информацию об организациях-сотрудниках

id_organisation

int

уникальный идентификатор

title

varchar(20)

наименование организации

adress

varchar(20)

адрес организации

phone

varchar(15)

телефон

email

varchar(15)

электронная почта

boss

varchar(50)

ФИО директора организации

printers

Хранит информацию о типографиях

id_printer

int

уникальный идентификатор

print_type

varchar(50)

вид печати, осуществляемый в типографии

publications Хранит данные о выпусках газеты

id_publication

int

уникальный идентификатор

newspaper_num

int

номер газеты

date_publ

date

дата выхода газеты

copies

int

тираж

pages

int

количество полос

id_printer

int

уникальный идентификатор

id_duty

int

уникальный идентификатор

articles Хранит информацию о статьях

id_article

int

уникальный идентификатор

title

varchar(20)

название статьи

author

varchar(20)

автор статьи

simbols

int

количество символов

page_start

int

начальная страница статьи

page_end

int

конечная страница статьи

images Хранит информацию об изображениях

id_image

int

уникальный идентификатор

title

varchar(20)

название изображения

author

varchar(20)

автор изображения

images_articles

id_article

int

уникальный идентификатор

id_image

int

уникальный идентификатор

publications_articles

id_publication

int

уникальный идентификатор

id_article

int

уникальный идентификатор

type_inclusions Хранит информацию о типах вкладышей

id_type_incl

int

уникальный идентификатор

title

varchar(20)

название вкладыша

inclusions Хранит информацию о вкладышах

id_inclusion

int

уникальный идентификатор

Id_type_incl

int

уникальный идентификатор

pages

int

количество страниц

id_publication

int

уникальный идентификатор

inclusions_articles

id_inclusion

int

уникальный идентификатор

id_article

int

уникальный идентификатор

publications_inclusions

id_publication_incl

int

уникальный идентификатор

id_inclusion

int

уникальный идентификатор

id_publication

int

уникальный идентификатор

SQL листинги

Создание таблиц

CREATE TABLE workpositions (

id_workpositionint NOT NULL auto_increment primary key,

titlevarchar(50)

) engine=InnoDb;

CREATE TABLE workers (

id_workerint NOT NULL auto_increment primary key,

surnamevarchar(20),

namevarchar(20),

patronymicvarchar(20),

birth date,

sexenum('м', 'ж') default 'м',

passport_datavarchar(50),

place_of_abovevarchar(50),

innvarchar(20),

pension_certificatevarchar(20)

) engine=InnoDb;

CREATE TABLE contracts (

id_contractint NOT NULL auto_increment primary key,

contract_start date,

contract_end date

) engine=InnoDb;

CREATE TABLE worker_workposition (

id_workerint NOT NULL,

id_workpositionint NOT NULL,

id_contractint NOT NULL,

date_start date,

date_end date,

FOREIGN KEY(id_worker) REFERENCES workers(id_worker),

FOREIGN KEY(id_workposition) REFERENCES workpositions(id_workposition),

FOREIGN KEY(id_contract) REFERENCES contracts(id_contract)

) engine=InnoDb;

CREATE TABLE worktrips (

id_worktripint NOT NULL auto_increment primary key,

addressvarchar(50),

trip_start date,

trip_end date,

purposevarchar(60),

id_workerint NOT NULL,

FOREIGN KEY(id_worker) REFERENCES workers(id_worker)

) engine=InnoDb;

CREATE TABLE encouragements (

id_encouragementint NOT NULL auto_increment primary key,

date_enc date,

type_encvarchar(20)

) engine=InnoDb;

CREATE TABLE workers_encouragements (

id_encouragementint NOT NULL,

FOREIGN KEY(id_encouragement) REFERENCES encouragements(id_encouragement),

id_workerint NOT NULL,

FOREIGN KEY(id_worker) REFERENCES workers(id_worker),

) engine=InnoDb;

CREATE TABLE holidays (

id_holidayint NOT NULL auto_increment primary key,

start_holiday date,

end_holiday date,

type_holidayenum ('основной', 'дополнительный'),

id_workerint,

FOREIGN KEY(id_worker) REFERENCES workers(id_worker)

) engine=InnoDb;

CREATE TABLE expenseitems (

id_expenseitemint NOT NULL auto_increment primary key,

titlevarchar(20),

date_exp date,

year_budgetint,

id_workerint NOT NULL,

FOREIGN KEY(id_worker) REFERENCES workers(id_worker)

) engine=InnoDb;

CREATE TABLE costs (

id_costint NOT NULL auto_increment primary key,

titlevarchar(20),

articlevarchar(20),

numint,

amountint,

id_expenseitemint NOT NULL,

FOREIGN KEY(id_expenseitem) REFERENCES expenseitems(id_expenseitem)

) engine=InnoDb;

CREATE TABLE equipment (

id_equipint NOT NULL auto_increment primary key,

titlevarchar(20),

date_buy date,

seriin_numvarchar(20),

zavodsk_numvarchar(20),

inventarn_numvarchar(20),

id_workerint NOT NULL,

FOREIGN KEY(id_worker) REFERENCES workers(id_worker)

) engine=InnoDb;

CREATE TABLE documents (

id_documentint NOT NULL auto_increment primary key,

date_doc date,

titlevarchar(20),

id_workerint NOT NULL,

FOREIGN KEY(id_worker) REFERENCES workers(id_worker)

) engine=InnoDb;

CREATE TABLE outerdocuments (

id_outerdocumentint NOT NULL primary key,

FOREIGN KEY(id_outerdocument) REFERENCES documents(id_document),

send_or_getenum('Отправлен', 'Получен') default 'Отправлен',

type_sendvarchar(20)

) engine=InnoDb;

CREATE TABLE organisations (

id_organisationint NOT NULL auto_increment primary key,

titlevarchar(100),

adressvarchar(100),

phonevarchar(100),

emailvarchar(100),

bossvarchar(100)

) engine=InnoDb;

CREATE TABLE printers (

id_printerint NOT NULL,

FOREIGN KEY(id_printer) REFERENCES organisations(id_organisation),

print_typevarchar(100)

) engine=InnoDb;

CREATE TABLE outerdoc_organisation (

id_organisationint NOT NULL,

id_outerdocumentint NOT NULL,

FOREIGN KEY(id_organisation) REFERENCES organisations(id_organisation),

FOREIGN KEY(id_outerdocument) REFERENCES outerdocuments(id_outerdocument)

) engine=InnoDb;

CREATE TABLE publications (

id_publicationint NOT NULL auto_increment primary key,

newspaper_numint,

date_publ date,

copiesint,

pagesint,

id_printerint,

FOREIGN KEY(id_printer) REFERENCES printers(id_printer),

id_dutyint,

FOREIGN KEY(id_duty) REFERENCES workers(id_worker)

) engine=InnoDb;

CREATE TABLE type_inclusion (

id_type_inclint NOT NULL auto_increment primary key,

tilievarchar(20)

) engine=InnoDb;

CREATE TABLE inclusions (

id_inclusionint NOT NULL auto_increment primary key,

id_type_inclint NOT NULL,

pagesint,

id_publicationint NOT NULL,

FOREIGN KEY(id_type_incl) REFERENCES type_inclusion(id_type_incl),

FOREIGN KEY(id_publication) REFERENCES publications(id_publication)

) engine=InnoDb;

CREATE TABLE articles (

id_articleint NOT NULL auto_increment primary key,

titlevarchar(20),

authorvarchar(20),

symbolsint,

page_startint,

page_endint

) engine=InnoDb;

CREATE TABLE inclusion_article (

id_inclusionint NOT NULL,

FOREIGN KEY(id_inclusion) REFERENCES inclusions(id_inclusion),

id_articleint NOT NULL,

FOREIGN KEY(id_article) REFERENCES articles(id_article)

) engine=InnoDb;

CREATE TABLE publication_inclusion (

id_publicationint NOT NULL,

FOREIGN KEY(id_publication) REFERENCES publications(id_publication),

id_inclusionint NOT NULL,

FOREIGN KEY(id_inclusion) REFERENCES inclusions(id_inclusion)

) engine=InnoDb;

CREATE TABLE publication_article (

id_publicationint NOT NULL,

FOREIGN KEY(id_publication) REFERENCES publications(id_publication),

id_articleint NOT NULL,

FOREIGN KEY(id_article) REFERENCES articles(id_article)

) engine=InnoDb;

CREATE TABLE images (

id_imageint NOT NULL auto_increment primary key,

titlevarchar(20),

authorvarchar(20)

) engine=InnoDb;

CREATE TABLE image_article (

id_imageint NOT NULL,

FOREIGN KEY(id_image) REFERENCES images(id_image),

id_articleint NOT NULL,

FOREIGN KEY(id_article) REFERENCES articles(id_article)

) engine=InnoDb;

CREATE TABLE copies (

id_copies_adressint NOT NULL auto_increment primary key,

id_publicationint NOT NULL,

adressvarchar(50),

copiesint,

FOREIGN KEY(id_publication) REFERENCES publications(id_publication)

) engine=InnoDb;