Автор работы: Пользователь скрыл имя, 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, если новая запись добавлена
Листинг
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 --локальная переменная для даты
--конвертировать полученную
set @datetmp1 = cast(@DataOut as datetime)
set @datetmp = @datetmp1
end
insert into Фильм
([Название фильма],Оператор,
Сценарист,[Дата
выхода фильма],Изображение,[
Жанр,Субтитры,Язык,[Аудио поток])
values
(@FilmName,@Operator,@Reziser,
@Zanr,@Subtitles,@Language,@
if @@rowcount>0 set @res = 1
end
go
Пример
использования:
use Moveis
declare @res tinyint
exec добавить_фильм @res output, 'Человек паук 2','Билл Поул','Сэм Рэйми','Алвин Сарджент',
'20050101','3D',123,'
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,@
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 |