Автор: Пользователь скрыл имя, 05 Мая 2012 в 16:06, курсовая работа
Работников театpа можно подpазделить на актеpов, музыкантов, постановщиков и служащих. Каждая из перечисленных категорий имеет уникальные атрибуты-характеристики и может подразделяться (например, постановщики) на более мелкие категории. Актеpы, музыканты и постановщики, pаботающие в театpе, могут уезжать на гастpоли. Актеpы театpа могут иметь звания заслуженных и наpодных аpтистов, могут быть лауpеатами конкуpсов. Также актеpами театpа могут быть и студенты театpальных училищ.
| Министерство образования и науки Российской Федерации Федеральное агентство по образованию 
 Западно-Сибирский филиал в г. Томске Российского государственного университета инновационных технологий и предпринимательства (ЗСФ РГУИТП) 
 Кафедра прикладной информатики (ПИ) 
 
 
 
 
 
 
 «Информационная система театра» 
 Курсовая работа 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 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епеpтуаpе театpа указывается какие спектакли, в какие дни и в какое вpемя будут пpоходить, а также даты пpемьеp. В кассах театpа можно заpанее пpиобpести билеты или абонемент на любые спектакли. Абонемент обычно включает в себя билеты на спектакли либо конкpетного автоpа, либо конкpетного жанpа. Цена билетов зависит от места, и спектакля. Hа пpемьеpы билете доpоже. Администpацией театpа фиксиpуется количество пpоданных билетов на каждый спектакль.
Для данной задачи была разработана и создана база данных «Theater» со следующими таблицами:
1) Rabotniki – Работники. В данной таблице находиться полная информация о работниках театра, со следующими полями:
 IDrabotnik – столбец с уникальным именем, который является первичным ключом;
 fio – ФИО работника;
 pol – пол работника;
 born – год рождения;
 deti – дети;
 zarplata – заработная плата;
 dataptiema –дата приема;
 IDdolzhnos – должность работника;
 IDpodrazd – подразделение;
 IDsocstatus – статус.
2) Dolzhnosti – должность работника. В данной таблице располагается данные о должностях:
 IDdolzhos – является первичным ключом;
 nazvanie – название.
3) Podrazdeleniya – подразделения. Содержит данные о подразделениях:
 IDpodrazd – первичный ключ таблицы;
 nazvaniya – название.
4) vidanniezvaniya – выданные звания. Содержит данные о выданных званиях:
 IDvydzvani – первичный ключ таблицы;
 data – дата выдачи;
 IDrabotnik – работник получивший звание;
IDzvaniya – полученное звание.
5) zvaniya – звания. В данной таблице содержатся данные о званиях:
 IDzvaniya – первичный ключ таблицы;
 nazvanie – название.
6) vidannieroli – выданные роли. Таблица содержит сведения о выданных ролях:
 IDvydan – первичный ключ таблицы;
 data – дата выдачи;
 IDrabotnik – работник получивший звание;
 IDvseroli – все роли;
 IDspektakl – спектакль в котором выдана роль.
7) vseroli – все роли. Таблица содержит все роли.
 IDvseroli – первичный ключ таблицы;
 nazvanie – название;
8) Spektakli – спектракли. Содержит данные о спектаклях:
 IDspektakl – первичный ключ таблицы;
 nazvanie – название;
 IDzhanr – жанр спектакля;
 IDauditori – аудитория;
 IDavtor – автор.
9) auditoriya – аудитория.
 IDauditori – первичный ключ таблицы;
 nazvanie – название.
10) avtor – автор спектакля. В данной таблице располагаются сведения об авторе спектакля:
 IDavtor – первичный ключ таблицы;
 fio – ФИО автора;
 vek – век;
 strana – страна.
11) zhanri – жары. Содержит сведения о жанрах:
 IDzhanr – первичный ключ таблицы;
 nazvanie – название.
12) abonement – абонемент. Таблица содержит данные об абонементе:
 IDassortim – первичный ключ таблицы;
 IDzhanr – жанр спектакля;
 data – дата;
 IDavtor – автор.
13) kassa – касса.
 IDpoziciya – первичный ключ таблицы;
 kolichestvob – количество билетов;
 stoimost – стоимость;
 mesto – место;
 IDassortim – абонемент;
 IDrepert – репертуар;
 data – дата.
14) repertuar – репертуар. Содержит сведения о репертуаре:
 IDrepert – первичный ключ таблицы;
 IDspektakl – спектакль;
 premera – премьера;
 vremya – время;
15) gastroli – гастроли. Таблица содержит сведения о гастролях.
 IDgastroli – первичный ключ таблицы;
 Datapriezda – дата приезда.
 IDvydan – роль с которой актер уехал на гастроли.
16) aktgast – актеры уехавшие на гастроли.
 IDaktgastr – первичный ключ таблицы;
 IDgastroli – гастроли;
 IDvydan – роль с которой актер уехал на гастроли.
17) socstatus – статус.
 IDsocstatus – первичный ключ таблицы;
 Nazvanie – название.
24
24
24
Для реализации БД был использован язык SQL.
1) Получить список и общее число всех 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
2) Получить:
 перечень спектаклей:
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
3) Получить список:
 авторов, живших в указанном веке:
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
4) Получить список актеров театра, имеющих звания, получивших их за некоторый период, по половому признаку, по возрасту:
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
5) Получить список для указанного спектакля: акте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>
<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>