Автор: Пользователь скрыл имя, 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>