Разработка базы данных для кинотеатров

Автор работы: Пользователь скрыл имя, 27 Декабря 2010 в 17:04, курсовая работа

Краткое описание

Предметная область, подлежащая изучению – «кинотеатр». В сферу этой предметной области попадают предприятия, занимающиеся оказанием услуг проведения досуга. Цель функционирования предприятий этой предметной области – оказание услуг, таких как: показ кинофильмов, реклама и анонс будущих фильмов и получение прибыли, извлекаемой из оплаты этих услуг клиентами. Для оказания услуг необходимо наличие квалифицированных специалистов и помещений, удовлетворяющих нормам санитарных и других требований в соответствии с действующим законодательством.

Содержание

1 Постановка задачи 4
2 Анализ предметной области 5
3 Проектирование базы данных 9
4 Реализация базы данных в формате MS SQL Server 2000 10
5 Хранимые процедуры для вставки данных 21
6 Представления на выборку данных из базы данных 39
7 Проектирование программного обеспечения 42
8 Руководство пользователя 45
Список литературы 47
Приложение 48

Вложенные файлы: 1 файл

Шаблон пояснительной записки.doc

— 831.00 Кб (Скачать файл)
 

Возвращаемый результат процедуры: 1, если новая запись добавлена 

Листинг 3. SQL код создания и использования процедуры «Добавить_должность» 

use Moveis

if exists (select name from sysobjects where name = 'Добавить_должность' and type = 'P')

   drop procedure Добавить_должность

go 

create procedure Добавить_должность

      @res tinyint output, @Oklad money=1.0, @NameDolz nvarchar(25)=''

as

begin

  set @res=0

if not exists (select [Название должности] from Должность where [Название должности]=@NameDolz)

   insert into Должность (Оклад,[Название должности])

           values(@Oklad, @NameDolz)

       if @@rowcount>0 set @res = 1

end

go

Пример  использования:

use Moveis

declare @res tinyint

exec добавить_должность  @res output, 12000, 'Электромантер' 

3. Хранимая процедура для таблицы «Фильм» 

Имя процедуры: добавить_фильм

Назначение  процедуры: Добавление информации о новом фильме и описание его характеристик и актеров, принимавших участие в съемках.

Требования  к целостности  данных: При неверном вводе даты, в базу данных вставляется текущая дата.

Таблица 27 – Аргументы процедуры «добавить_фильм» 

Аргумент Смысл Вид аргумента Значение

по умолчанию

Тип
@FilmName Название фильма входной Пустая строка nvarchar(25)
@Operator Ф.И. Оператора входной Пустая строка nvarchar(25)
@Reziser Ф.И. Режиссера входной Пустая строка nvarchar(25)
@Scenarist Ф.И Сценариста входной Пустая строка nvarchar(25)
@DataOut Дата выхода фильма входной Пустая строка nvarchar(10)
@res Результат выполнения процедуры выходной нет tinyint
@Izobr Формат изображения входной Пустая строка nvarchar(10)
@FilmTime Продолжительность фильма входной 1 int
@Zanr Жанр фильма входной Пустая строка nvarchar(25)
@Subtitles Язык субтитров входной Пустая строка nvarchar(25)
@Language Язык звука входной Пустая строка nvarchar(30)
@Stream Аудио поток (стерео эффекты) входной Пустая строка nvarchar(25)
 

Возвращаемый  результат процедуры: 1, если новая  запись добавлена 

Листинг 4. SQL код создания и использования процедуры «добавить_фильм» 

Use Moveis

if exists (select name from sysobjects where name = 'добавить_фильм' and type = 'P')

drop procedure добавить_фильм

go 

create procedure добавить_фильм

      @FilmName nvarchar(25)='', @Operator nvarchar (25)='',

      @Reziser nvarchar(25)='', @Scenarist nvarchar (25)='',

      @DataOut nvarchar(10), @res tinyint output,

      @Izobr nvarchar(10)='', @FilmTime int=1,

      @Zanr nvarchar(25)='', @Subtitles nvarchar(25)='',

      @Language nvarchar(30)='', @Stream nvarchar(25)=''

as

begin

   set @res=0

    declare @datetmp datetime set @datetmp = getdate()

      if isdate(@DataOut)=1 --Если получен правильный  формат даты

      begin 

        declare @datetmp1 datetime --локальная переменная  для даты

        --конвертировать полученную дату  в формат datetime

        set @datetmp1 = cast(@DataOut as datetime)

        set @datetmp = @datetmp1

      end

insert into Фильм  ([Название фильма],Оператор,Режисер,

               Сценарист,[Дата  выхода фильма],Изображение,[Время  фильма],

               Жанр,Субтитры,Язык,[Аудио  поток])

      values (@FilmName,@Operator,@Reziser,@Scenarist,@datetmp,@Izobr,@FilmTime,

                @Zanr,@Subtitles,@Language,@Stream)

      if @@rowcount>0 set @res = 1

end

go 

Пример использования: 

use Moveis

declare @res tinyint

exec добавить_фильм @res output, 'Человек паук 2','Билл Поул','Сэм Рэйми','Алвин Сарджент',

'20050101','3D',123,'Фантастика','Эстонские','DolbyDigital' 

4. Хранимая процедура для таблицы «Актеры» 

Имя процедуры: добавить_актера

Назначение  процедуры: вставка информации о актере в таблицу «Актеры»

Требования  к целостности  данных: При вводе данных, не должно оставаться пустых полей.

Таблица 28 – Аргументы процедуры «добавить_актера» 

Аргумент Смысл Вид аргумента Значение

по умолчанию

Тип
@res результат работы

процедуры

выходной нет tinyint
 

     Продолжение таблицы 28

Аргумент Смысл Вид аргумента Значение

по умолчанию

Тип
@SName Фамилия актера входной Пустая строка nvarchar(25)
@Name Имя актера входной Пустая строка nvarchar(25)
 

Возвращаемый  результат процедуры: 1, если новая  запись добавлена. 

Листинг 5. SQL код создания и использования процедуры «добавить_актера» 

Use Moveis

if exists (select name from sysobjects where name = 'добавить_актера' and type = 'P')

drop procedure добавить_актера

go 

create procedure добавить_актера

@res tinyint output, @SName nvarchar(25)='', @Name nvarchar(25)=''

as

  begin

    set @res=0

if @SName<>'' and @Name<>''

    begin

        insert into  Актеры (Фамилия, Имя)

      values (@SName, @Name)

    end

end

go

Пример  использования:

use Moveis

declare @res tinyint

exec добавить_актера @res output, 'Бондарчук','Федор' 

5. Хранимая процедура для таблицы «Кинотеатры» 

Имя процедуры: добавить_кинотеатр

Назначение  процедуры: вставка в таблицу «Кинотеатры» информации о адресах нахождения и названиях кинотеатров.

Требования  к целостности  данных: данная процедура должна обеспечить проверку на отсутствие повторяющихся «имен» кинотеатров, а так же при отсутствии дополнительных корпусов вставлять значение Null. 

Таблица 29 – Аргументы процедуры «добавить_кинотеатр» 

Аргумент Смысл Вид аргумента Значение

по умолчанию

Тип
@res результат выходной нет tinyint
@NameTheter Название кинотеатра входной Пустая строка nvarchar(25)
@BuildNum Номер здания входной 1 int
@Street Название улицы входной Пустая строка nvarchar(30)
@Liter Буквенный литер входной Пустая строка nvarchar(1)
 

Возвращаемый  результат процедуры: 1, если новая запись добавлена. 

Листинг 6. SQL код создания и использования процедуры «добавить_кинотеатр» 

use Moveis

if exists (select name from sysobjects where name = 'добавить_кинотеатр' and type = 'P')

   drop procedure добавить_кинотеатр

go 

create procedure добавить_кинотеатр

      @res tinyint output,

        @NameTheter nvarchar(25)='',

      @BuildNum int=1,

      @Street nvarchar(30)='',

      @Liter nvarchar(1)=''

as

  begin

      if not exists (select [Название кинотеатра] from Кинотеатр where

                   [Название кинотеатра] like @NameTheter)

            begin

              insert into Кинотеатр  ([Название кинотеатра],[Номер здания],

                                         Улица, [Номер корпуса])

                  values (@NameTheter,@BuildNum,@Street,@Liter)

   end

      if @@rowcount>0 set @res=1

  end

go 

Пример  использования:

Use Moveis

declare @res tinyint

exec добавить_кинотеатр  @res output,'Кинцо', 66,'Devil street',6 

6. Хранимая процедура для таблицы «Сеансы» 

Имя процедуры: добавить_сеанс

Назначение  процедуры: процедура добавляет в таблицу «Сеанс» с указанием даты, времени сеанса, а так же идентификатором фильма, который относится к таблице «Фильм»

Требования  к целостности  данных: Идентификатор фильма, должен существовать в соответствующей таблице. Время сеанса должно иметь прямое отношение к дате. 

Таблица 30 – Аргументы процедуры «добавить_сеанс» 

Аргумент Смысл Вид аргумента Значение

по умолчанию

Тип
@res результат выходной нет tinyint
@SeansDate Дата сеанса входной Пустая строка nvarchar (10)
@SeansTime Время сеанса входной Пустая строка nvarchar (20)
@FilmID Идентификатор показываемого фильма входной Null int

Информация о работе Разработка базы данных для кинотеатров