Информационная система театра. 2
Министерство образования и науки Российской Федерации Федеральное агентство по образованию
Западно-Сибирский филиал в г. Томске Российского государственного университета инновационных технологий и предпринимательства (ЗСФ РГУИТП)
Кафедра прикладной информатики (ПИ)
«Информационная система театра»
Курсовая работа
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
- спектаки указанного жанра на данный сезон, они же за указанный период:
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
where repertuar.vremya > 20090617 and repertuar.vremya < 20090701
- Получить список:
- авторов, живших в указанном веке:
select repertuar.vremya, spektakli.nazvanie, avtor.fio as avtor, avtor.vek, avtor.strana from repertuar
join spektakli on repertuar.idspektakl = spektakli.idspektakl
join avtor on spektakli.idavtor = avtor.idavtor
where avtor.vek = 17 or avtor.vek = 13
- авторов, указанной страны:
select repertuar.vremya, spektakli.nazvanie, avtor.fio as avtor, avtor.vek, avtor.strana from repertuar
join spektakli on repertuar.idspektakl = spektakli.idspektakl
join avtor on spektakli.idavtor = avtor.idavtor
where avtor.strana = "Россия" or avtor.strana = "Украина"
- авторов спектаклей указанного жанра, когда-либо поставленных в этом театре:
select repertuar.vremya, spektakli.nazvanie, avtor.fio as avtor, avtor.vek, avtor.strana, janri.nazvanie from repertuar
join spektakli on repertuar.idspektakl = spektakli.idspektakl
join avtor on spektakli.idavtor = avtor.idavtor
join janri on janri.IDzhanr = spektakli.idzhanr
where janri.nazvanie = "Музыкальная комедия" and repertuar.vremya < 20090619
- Получить список актеров театра, имеющих звания, получивших их за некоторый период, по половому признаку, по возрасту:
select rabotniki.idrabotnik, rabotniki.pol, rabotniki.born, rabotniki.deti, Rabotniki.fio, rabotniki.datapriema, Doljnosti.nazvanie, vidanniezvaniya.idzvaniya, zvaniya.nazvanie, vidanniezvaniya.data as datavidachi, rabotniki.born from rabotniki
join doljnosti on rabotniki.iddolzhnos = doljnosti.iddolzhnos
join vidanniezvaniya on rabotniki.idrabotnik = vidanniezvaniya.idrabotnik
join zvaniya on vidanniezvaniya.IDzvaniya = zvaniya.idzvaniya
where doljnosti.iddolzhnos = 1 and vidanniezvaniya.idzvaniya != 4 and vidanniezvaniya.data < 20090618 and rabotniki.pol = "ж" and rabotniki.born < 19970624
- Получить список для указанного спектакля: актеpов, их дублеpов, имена pежисеpа-постановщика, художника-постановщика, диpижеpа-постановщика, автоpов, дату пpемъеpы.
select * from vidannieroli
join avtor on avtor.idavtor = spektakli.idavtor
where vidannieroli.idspektakl = 1 and idrabotnik = 1 or idrabotnik = 5 and spektakli.idavtor = 1
Таблица «Учет работников»:
Код таблицы:
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/
<html xmlns="http://www.w3.org/1999/
<head>
<body bgcolor=#000066>
<font color=white>
<b>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>База данных театра</title>
<style type="text/css">
<!--.style1 {font-family: Verdana, Arial, Helvetica, sans-serif}-->
</style>
</head>
<body>
<div align="center">
<table width="80%" border="1">
<tr>
<td bgcolor=#000066><div align="center"><span class="style1"><img width="100%" src="1.jpg"></span></div></td>
</tr>
</table>
<table width="80%" border="1">
<tr valign="top">
<td width="16%">
<table width="100%" border="1">
<tr>
<td><p class="style1" align="left"><a href="rab.php"><font color=white>Учет рабочих</font></a></p></td>
</tr>
<tr>
<td><p class="style1"
align="left"><a href="roli.php"><font
color=white>Роли</font></a></
</tr>
<tr>
<td><p class="style1" align="left"><a
href="spektakli.php"><font color=white>Спектакли</font></
</tr>
<tr>
<td><p class="style1" align="left"><a
href="repertuar.php"><font color=white>Репертуар</font></
</tr>
</table>
</td>
<td width="84%"><div align="center" class="style1">Список рабочих </div>
<table width="100%" border="1">
<tr>
<td>№</td>
<td>ФИО</td>
<td>Пол</td>
<td>Должность</td>
<td>Подразделение</td>
<td>Статус</td>
<td>ЗП</td>
<td>Дети</td>
<td>Принят</td>
<td>ДР</td>
<td></td>
</tr>
<tr>
<td>26</td>
<td>Екатеринова Елена Петровна</td>
<td>ж</td>
<td>Постановщики</td>
<td>Постановщик</td>
<td>Служащий</td>
<td>7000</td>
<td>1</td>
<td>2009-06-28</td>
<td>1987-06-25</td>
<td>
<form name='pr4' method='post' action='rab.php'>
<input name='rabdel' type='hidden' value='26' checked>
<input name='submit5' type='submit' value='x'></form>
</form>
</td>
</tr>
<tr>
<td>3</td>
<td>Иванова Ирина Григорьевна<
<td>ж</td>
<td>Актеры</td>
<td>Постановщик</td>
<td>Студент</td>
<td>3000</td>
<td>0</td>
<td>2009-06-02</td>
<td>1997-06-23</td>
<td>
<form name='pr4' method='post' action='rab.php'>
<input name='rabdel' type='hidden' value='3' checked>
<input name='submit5' type='submit' value='x'></form>
</form>
</td>
</tr>
<tr>
<td>1</td>
<td>Федот Федотович Федотов</td>
<td>м</td>
<td>Актеры</td>
<td>Оператор</td>
<td>Служащий</td>
<td>20000</td>
<td>2</td>
<td>2001-06-06</td>
<td>1990-06-18</td>
<td>
<form name='pr4' method='post' action='rab.php'>
<input name='rabdel' type='hidden' value='1' checked>
<input name='submit5' type='submit' value='x'></form>
</form>
</td>
</tr>
</table>
<br></br>
<table width="100%" border="1">
<tr>
<td width="50%"><span class="style1">Добавить работника:</span></td>
<td width="50%"><span class="style1">Прочие функции:</span></td>
</tr>
<tr>
<td>
<div align="left" class="style1">
<form name="primer1" method="post" action="rab.php">
Введите ФИО: <br>
<input type="text" name="fio" size="30">
<br>
Пол:<br>
<input name="pol" type="radio" value="м" checked>
Мужской<br>
<input name="pol" type="radio" value="ж">
Женский
<br>
Дата рождения:<br>
<input type="text" name="born" size="8">
<br>
Количество детей:<br>
<input type="text" name="deti" size="2">
<br>
Зарплата:<br>
<input type="text" name="zp" size="8">
<br>
Дата приема (Сегодняшняя по умолчанию)<br>
<input type="text" name="datapriema" value="2009-06-28" size="8">
<br>
Должность:<br>
<select name="doljnost" size="1">
<option value='1' >Актеры</option>
<option value='2' >Музыканты</option>
<option value='3' >Постановщики</option>
<option value='4' >Служащие</option>
<option value='5' >Дублер</option>
<option value='6' >Режисер</option>
<option value='7' >Подтанцовка</option>
</select>
<br>
Подразделение:<br>
<select name="podrazd" size="1">
<option value='1' >Постановщик</option>
<option value='2' >Оператор</option>
<option value='3' >Основное</option>
<option value='4' >По гриму</option>
<option value='5' >По костюмам</option>
</select>
<br>
Социальный статус:<br>
<select name="socstatus" size="1">
<option value='1' >Служащий</option>
<option value='2' >Студент</option>
<option value='3' >Другой статус</option>
<option value='4' >Умник</option>
</select>
<br><input name="submit" type="submit" value="Зарегистрировать" /></form></form>
</div>
</td>
<td valign="top">
<div align="left" class="style1">
<form name="p2" method="post" action="rab.php">
Должность: <br>
<input type="text" name="doljnostt" size="25">
<input name="submit2" type="submit" value="Добавить"></form>
<form name="p3" method="post" action="rab.php">
Подразделение: <br>
<input type="text" name="podrazdd" size="25">
<input name="submit3" type="submit" value="Добавить"></form>
<form name="p2" method="post" action="rab.php">
Социальный статус: <br>
<input type="text" name="socstatuss" size="25">
<input name="submit4" type="submit" value="Добавить"></form>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table width="80%" border="1">
<tr>
<td align="right"><span class="style1">© 2009 Горячева Елена, Соломенникова Валентина.
</span></td>
</tr>
</table>
</div>
</body>
</html>
Таблица «Роли»:
Код таблицы:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/
<html xmlns="http://www.w3.org/1999/
<head>
<body bgcolor="#000066">
<font color=white>
<b>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>База данных театра</
<style type="text/css">
<!--.style1 {font-family: Verdana, Arial, Helvetica, sans-serif}-->
</style>
</head>
<body>
<div align="center">
<table width="80%" border="1">
<tr>
<td bgcolor=#000066><div align="center"><span class="style1"><img width="100%" src="1.jpg"></span></div></td>
</tr>
</table>
<table width="80%" border="1">
<tr valign="top">
<td width="16%">
<table width="100%" border="1">
<tr>
<td><p class="style1" align="left"><a href="rab.php"><font color=white>Учет рабочих</font></a></p></td>
</tr>
<tr>
<td><p class="style1" align="left"><a
href="roli.php"><font color=white>Роли</font></a></
</tr>
<tr>
<td><p class="style1" align="left"><a
href="spektakli.php"><font color=white>Спектакли</font></
</tr>
<tr>
<td><p class="style1" align="left"><a
href="repertuar.php"><font color=white>Репертуар</font></
</tr>
</table>
</td>
<td width="84%"><div align="center" class="style1">Выданные роли</div>
<div align="left" class="style1">
<br>
<form name="pr7" method="post" action="roli.php">
Фильтр по ФИО:
<select name="rabb" size="1">
<option value='1' >Федот Федотович Федотов</option>
<option value='3' >Иванова Ирина Григорьевна</option>
</select>
<input name="submit8" type="submit" value="Показать" /></form><br>
</div>
<table width="100%" border="1">
<tr>
<td>Дата выдачи</td>
<td>ФИО</td>
<td>Название спектакля</td>
<td>Название роли</td>
<td></td>
</tr>
<tr>
<td>2009-06-28</td>
<td>Иванова Ирина Григорьевна<
<td>Белое озеро</td>
<td>Снегурочка</td>
<td>
<form name='pr5' method='post' action='roli.php'>
<input name='roldel' type='hidden' value='40'>
<input name='rabb' type='hidden' value=''>
<input name='submit5' type='submit' value='x'></form>
</form>
</td>
</tr>
<tr>
<td>2009-06-27</td>
<td>Федот Федотович Федотов</
<td>Белое озеро</td>
<td>Дед мороз</td>
<td>
<form name='pr5' method='post' action='roli.php'>
<input name='roldel' type='hidden' value='38'>
<input name='rabb' type='hidden' value=''>
<input name='submit5' type='submit' value='x'></form>
</form>
</td>
</tr>
</table>
<br></br>
<table width="100%" border="1">
<tr>
<td width="50%" height="24"><span class="style1">Выдать роль:</span></td>
<td width="50%"><span class="style1">Прочие функции:</span></td>
</tr>
<tr>
<td>
<div align="left" class="style1">
<form name="pr" method="post" action="roli.php">
Роль:<br>
<select name="rol" size="1">
<option value='1' >Дед мороз</option>
<option value='2' >Снегурочка</option>
<option value='3' >Снеговик</option>
<option value='4' >Волк</option>
<option value='5' >Клоун</option>
</select>
<br>
Спектакль:<br>
<select name="spekt" size="1">
<option value='1' >Белое озеро</option>
<option value='2' >Дикарь</option>
</select>
<br>
Работник: (Только актеры)<br>
<select name="rab" size="1">
<option value='1' >Федот Федотович Федотов</option>
<option value='3' >Иванова Ирина Григорьевна</
</select>
<br>
Дата выдачи (Сегодняшняя по умолчанию)<br>
<input type="text" name="datavidachi" value="2009-06-28" size="8">
<br>
<input name="submit" type="submit" value="Выдать роль" /></form> </div></td>
<td valign="top">
<div align="left" class="style1">
<form name="p6" method="post" action="roli.php">
Новая роль: <br>
<input type="text" name="nrol" size="25">
<input name="submit2" type="submit" value="Добавить"></form>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table width="80%" border="1">
<tr>
<td align="right"><span class="style1">© 2009 Горячева Елена, Соломенникова Валентина.
</span></td>
</tr>
</table>
</div>
</body>
</html>
Таблица «Спектакли»:
Код таблицы:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/
<html xmlns="http://www.w3.org/1999/
<head>
<body bgcolor="#000066">
<font color=white>
<b>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>База данных театра</
<style type="text/css">
<!--.style1 {font-family: Verdana, Arial, Helvetica, sans-serif}-->
</style>
</head>
<body>
<div align="center">
<table width="80%" border="1">
<tr>
<td bgcolor=#000066><div align="center"><span class="style1"><img width="100%" src="1.jpg"></span></div></td>
</tr>
</table>
<table width="80%" border="1">
<tr valign="top">
<td width="16%">

- Информационная система театра
- Информационная система телефонных служб города
- Информационная система торгового предприятия «Детский Мир»
- Информационная система тур операторов
- Информационная система управления денежными потоками на предприятиях транспорта и связи
- Информационная система управления контактами компьютерного магазина
- Информационная система управления персоналом
- Информационная система сети автосалонов продажи автомобилей
- Информационная Система сети магазинов компьютерного оборудования
- Информационная система склада
- Информационная система склада
- Информационная система складского учета книжного магазина
- Информационная система страховой организации
- Информационная система таксопарка