Информационная система театра
Курсовая работа, 02 Февраля 2013, автор: пользователь скрыл имя
Краткое описание
В ходе выполнения курсовой работы были реализованы данные операции средствами языка SQL. Была спроектирована концептуальная модель БД с помощью программы ERwin и реализована в СУБД MySQL. С помощью языка программирования “PHP” был создан интерфейс к БД.
Вложенные файлы: 1 файл
курсоваяБД 1.doc
— 1.08 Мб (Скачать файл)Министерство образования и науки Российской Федерации Федеральное агентство по образованию
Западно-Сибирский филиал в г. Томске Российского государственного университета инновационных технологий и предпринимательства (ЗСФ РГУИТП)
Кафедра прикладной информатики (ПИ)
«Информационная система театра»
Курсовая работа
2009 |
Постановка задачи
Условие задачи:
Информационная система театра.
Работников театpа можно
Для постановки любого спектакля необходимо подобpать актеpов на pоли и дублеpов на каждую главную pоль. Один и тот же актеp может игpать более одной pоли в одном спектакле. У спектакля также имеется pежисеp-постановщик, художник-постановщик, диpижеp-постановщик, автоp. Спектакли можно подpазделить по жанpам: музыкальная комедия, тpагедия, опеpетта и пр. С другой стороны, спектакли можно подразделить на детские, взрослые и пр. В pепеpтуаpе театpа указывается какие спектакли, в какие дни и в какое вpемя будут пpоходить, а также даты пpемьеp. В кассах театpа можно заpанее пpиобpести билеты или абонемент на любые спектакли. Абонемент обычно включает в себя билеты на спектакли либо конкpетного автоpа, либо конкpетного жанpа. Цена билетов зависит от места, и спектакля. Hа пpемьеpы билете доpоже. Администpацией театpа фиксиpуется количество пpоданных билетов на каждый спектакль.
Для данной задачи была разработана и создана база данных «Theater» со следующими таблицами:
- Rabotniki – Работники. В данной таблице находиться полная информация о работниках театра, со следующими полями:
- IDrabotnik – столбец с уникальным именем, который является первичным ключом;
- fio – ФИО работника;
- pol – пол работника;
- born – год рождения;
- deti – дети;
- zarplata – заработная плата;
- dataptiema –дата приема;
- IDdolzhnos – должность работника;
- IDpodrazd – подразделение;
- IDsocstatus – статус.
- Dolzhnosti – должность работника. В данной таблице располагается данные о должностях:
- IDdolzhos – является первичным ключом;
- nazvanie – название.
- Podrazdeleniya – подразделения. Содержит данные о подразделениях:
- IDpodrazd – первичный ключ таблицы;
- nazvaniya – название.
- vidanniezvaniya – выданные звания. Содержит данные о выданных званиях:
- IDvydzvani – первичный ключ таблицы;
- data – дата выдачи;
- IDrabotnik – работник получивший звание;
IDzvaniya – полученное звание.
- zvaniya – звания. В данной таблице содержатся данные о званиях:
- IDzvaniya – первичный ключ таблицы;
- nazvanie – название.
- vidannieroli – выданные роли. Таблица содержит сведения о выданных ролях:
- IDvydan – первичный ключ таблицы;
- data – дата выдачи;
- IDrabotnik – работник получивший звание;
- IDvseroli – все роли;
- IDspektakl – спектакль в котором выдана роль.
- vseroli – все роли. Таблица содержит все роли.
- IDvseroli – первичный ключ таблицы;
- nazvanie – название;
- Spektakli – спектракли. Содержит данные о спектаклях:
- IDspektakl – первичный ключ таблицы;
- nazvanie – название;
- IDzhanr – жанр спектакля;
- IDauditori – аудитория;
- IDavtor – автор.
- auditoriya – аудитория.
- IDauditori – первичный ключ таблицы;
- nazvanie – название.
- avtor – автор спектакля. В данной таблице располагаются сведения об авторе спектакля:
- IDavtor – первичный ключ таблицы;
- fio – ФИО автора;
- vek – век;
- strana – страна.
- zhanri – жары. Содержит сведения о жанрах:
- IDzhanr – первичный ключ таблицы;
- nazvanie – название.
- abonement – абонемент. Таблица содержит данные об абонементе:
- IDassortim – первичный ключ таблицы;
- IDzhanr – жанр спектакля;
- data – дата;
- IDavtor – автор.
- kassa – касса.
- IDpoziciya – первичный ключ таблицы;
- kolichestvob – количество билетов;
- stoimost – стоимость;
- mesto – место;
- IDassortim – абонемент;
- IDrepert – репертуар;
- data – дата.
- repertuar – репертуар. Содержит сведения о репертуаре:
- IDrepert – первичный ключ таблицы;
- IDspektakl – спектакль;
- premera – премьера;
- vremya – время;
- gastroli – гастроли. Таблица содержит сведения о гастролях.
- IDgastroli – первичный ключ таблицы;
- Datapriezda – дата приезда.
- IDvydan – роль с которой актер уехал на гастроли.
- aktgast – актеры уехавшие на гастроли.
- IDaktgastr – первичный ключ таблицы;
- IDgastroli – гастроли;
- IDvydan – роль с которой актер уехал на гастроли.
- socstatus – статус.
- IDsocstatus – первичный ключ таблицы;
- Nazvanie – название.
Чтобы работать с таблицей rabotniki, перед этим надо заполнить таблицы:
Dolznost,
Dolznosti:
Актёр
Музыкант
Постановщик
Артист-сатирик
Артист-балета
Режиссёр
Подтанцовщик
Podrazdelenia
Декорационный цех
Костюмерный цех
Гримёрный цех
Звукотехнический цех
Светотехнический цех
Слесарный цех
soc_status
Заслуженный артист
Народный артист
Опытный
Обычный
Студент
Rabotniki
После заполнения дочерних у родителя можем проставить связи.
CREATE TABLE IF NOT EXISTS `rabotniki` (
`ID_rabotnik` int(11) NOT NULL AUTO_INCREMENT,
`fio` varchar(150) NOT NULL,
`pol` varchar(4) NOT NULL DEFAULT 'М',
`born` date NOT NULL,
`deti` varchar(2) NOT NULL,
`zarplata` int(7) NOT NULL,
`data_prioma` date NOT NULL,
`ID_dolznost` int(11) NOT NULL,
`ID_podrazd` int(11) NOT NULL,
`ID_soc_status` int(11) NOT NULL,
PRIMARY KEY (`ID_rabotnik`),
KEY `ix_dolz` (`ID_dolznost`),
KEY `ix_podraz` (`ID_podrazd`),
KEY `ix_soc_stat` (`ID_soc_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
--
-- Ограничения внешнего ключа сохраненных таблиц
--
--
-- Ограничения внешнего ключа таблицы `rabotniki`
--
ALTER TABLE `rabotniki`
ADD CONSTRAINT `rabotniki_ibfk_3` FOREIGN KEY (`ID_soc_status`) REFERENCES `soc_status` (`ID_soc_status`),
ADD CONSTRAINT `rabotniki_ibfk_1` FOREIGN KEY (`ID_dolznost`) REFERENCES `dolznosti` (`ID_dolznost`),
ADD CONSTRAINT `rabotniki_ibfk_2` FOREIGN KEY (`ID_podrazd`) REFERENCES `podrazdelenia` (`ID_podrazd`);
После создания таблиц в БД. Заполняем первые 4 таблицы. Сначала дочерние
Бузычков Валерий Антонович
Иванов Игорь Владимирович
Иванов Игорь Владимирович
Ельцина Екатерина Николаевна
Игольчик Наталия Юрьевна
Литерова Анна Витальевна
Наследов Эдуард Васильевич
Сидкин Сергей Витальевич
Тарнава Саида Романовна
Какие роли могут быть
Чтобы заполнить spektakli сначала надо заполнить дочерние.
Zanr
Музыкальная комедия
Для взрослых
Трагедия
Оперетта
Auditoriu
Детские
Молодёжные
Для взрослых
Семейная
autor
Паул Абрахам
Александр Белинский
Владимир Дунаевский
Жак Оффенбах
Андрей Вознесенский
Константин Никитин
Теперь можно заполнить
Спектакли роли
Белая Акация Яшка
Бал в савойе Мустафа Бей
Королева чардаша Бони
Принцесса цирка Тони
Цыганский барон Стефан
Юнона и Авось Румянцев
Орфей в аду Стикс
Запросы:
Получаем массив всех рабочих театра.
SELECT rabotniki.fio, rabotniki.pol, rabotniki.zarplata, rabotniki.data_prioma, dolznosti.nazvanie, podrazdelenia.nazvanie, soc_status.nazvanie
FROM rabotniki
JOIN dolznosti ON rabotniki.ID_dolznost = dolznosti.ID_dolznost
JOIN podrazdelenia ON rabotniki.ID_podrazd = podrazdelenia.ID_podrazd
JOIN soc_status ON rabotniki.ID_soc_status = soc_status.ID_soc_status
LIMIT 0 , 40
Тарнава Саида Романовна
Логическая модель
Физическая модель
SQL запросы к созданной БД
Для реализации БД был использован язык SQL.
- Получить список и общее число всех pаботников театpа:
- по стажу работы в театре:
Select * from rabotniki where datapriema > 20010607
- по половому признаку
Select * from rabotniki where pol = "м"
- по году рождения (оно и есть возраст)
Select * from rabotniki where born = 19900618
- по количеству детей
Select * from rabotniki where deti = 2
- по размеру зар. платы
Select * from rabotniki where zarplata > 1000
- Получить:
- перечень спектаклей:
Select spektakli.nazvanie as nazvanie,janri.nazvanie as janri, repertuar.vremya as datasp from repertuar
join spektakli on repertuar.idspektakl = spektakli.idspektakl
join janri on janri.IDzhanr = spektakli.IDzhanr
- количество спектаклей в репертуаре:
Select count(*) as n from repertuar
- спектаки указанного жанра на данный сезон, они же за указанный период: