Создание базы данных аптеки

Автор: Пользователь скрыл имя, 16 Декабря 2010 в 13:07, курсовая работа

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

База данных обеспечивает хранение информации и представляет собой поименованную совокупность данных, организованных по определенным правилам, включающим общие принципы описания, хранения и манипулирования данными.
Система управления базами данных представляет собой пакет прикладных программ и совокупность языковых средств, предназначенных для создания, сопровождения и использования баз данных.

Оглавление

1. Теоретическая часть 3
2. Проектирование базы данных 16
3. Разработка объектов БД 29
4. Список литературы 31
Приложение 1. Сценарий создания структуры базы данных 32
Приложение 2. Скрипт создания запросов 41
Приложение 3. Скрипт создания хранимых процедур и триггеров 42

Файлы: 1 файл

1.doc

— 724.00 Кб (Скачать)
>Не выполняется, т.к. все отношения находятся в  БКНФ и нет нераспределенных атрибутов. 
 
 
 
 
 
 
 
 
 
 
 
 
 

8 Этап. Построение  схемы БД. 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

3. Разработка объектов  БД

 

      В курсовом проекте были созданы пользовательские типы данных:

  • «Телефон» – 10 символьная строка. Допускаются NULL-значения
  • «Адрес» - 100 символьная строка. Допускаются NULL-значения
  • «Дата» – Основан на типе smalldatetime. Допускаются NULL-значения
 

      В базе данных созданы правила:

  • Price_rule – Правило задающее положительное значение величины но не большей чем 1000.
  • ZAGLAV – Правило определяющее первую букву закглавной.
  • Num – правило предполагает, что строка должна начинаться с цифр
 

      В базе данных созданы умолчания:

  • Bomj– задает значение n/а по умолчанию
  • God – задает 2009 год по умолчанию.
  • Obr – задает значение поля  по умолчанию равным «среднее»
 

      В рамках курсового проекта были разработаны  представления:

  • Преппрод – Преддставление, содержащее список препаратов, отдел и цену. Является минимальной информацией о препарате.
  • Сотрвыс – Представление с сотрудниками имеющими высшее образование.
  • Пост3 – Представление содержащее препараты с 3 номером поставки
 
 
 

      Были разработаны хранимые процедуры:

  • Изменить_Поставщик – изменяет информацию о поставщике и обновляет таблицу
  • Новый_Поставщик – добавляет информацию о новом поставщике в таблицу Поставщики(Имя поставщика, Адрес и телефон)
  • Удаляем_Поставщики – позволяет удалять поставщика из таблицы Поставщики с ее информацией о нем.
 

      При разработке данной БД были спроектированы триггеры:

  • TRIGGER T1 – Alter триггер позволяющий удалять информацию о поставках из таблицы поставки и других таблиц содержащую информацию об удаляемой поставки, кроме поставки под номером 6
  • TRIGGER Print_Update – Выводит информации обновлении/модификации Таблицы Рецепты, при добавлении нового рецепта.
  • TRIGGER УДАЛ_СОТР – позволяет удалять (увольнять) сотрудников из таблицы сотрудники. Удалять можно всех кроме заведующего аптекой.

4. Список литературы

 
 

1. И.Ф. Астахова, А.П. Толстобров, В.М. Мельников «SQL в примерах и задачах» М., Новое знание, 2002 г.

2. А.Д. Хомоненко «Базы данных» СПб, Корона-принт, 2004 г

3. Мартин Грубер «Понимание SQL» М., 1993 г

4. Кевин Клайн «SQL справочник» М, Кудиц-образ, 2006

5. Леон Аткинсон  «MySQL. Библиотека профессионала» M, «Вильяме», 2002

6. Артеменко  Ю.Н. «MySQL. Справочник по языку» M, «Вильяме», 2005

7. INTUIT.RU

8. Роб Хортон. Разработка баз данных Microsoft SQL Server 2000 на примерах. Вильямс. 2001

9. Функции SQL. Справочник программиста, Эйри Джоунс, Райан К. Стивенз, Рональд Р. Плю, Роберт Ф. Гарретт, Алекс Кригель

10. Луис Дэвидсон. Проектирование баз данных на SQL Server 2000.: Бином. Лаборатория знаний, 2003» и «Kursach_Log.mdl» а также текстовых файлов, содержащих скрипты создания БД, запросов, триггеров, хранимых процедур. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Приложение 1. Сценарий создания структуры базы данных

 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Сотрудники_Должности]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)

ALTER TABLE [dbo].[Сотрудники] DROP CONSTRAINT FK_Сотрудники_Должности

GO 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Препараты_Отделы]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)

ALTER TABLE [dbo].[Препараты] DROP CONSTRAINT FK_Препараты_Отделы

GO 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Сотрудники_Отделы]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)

ALTER TABLE [dbo].[Сотрудники] DROP CONSTRAINT FK_Сотрудники_Отделы

GO 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Поставляемые препараты_Поставки]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)

ALTER TABLE [dbo].[Поставляемые препараты] DROP CONSTRAINT FK_Поставляемые препараты_Поставки

GO 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Поставки_Поставщики]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)

ALTER TABLE [dbo].[Поставки] DROP CONSTRAINT FK_Поставки_Поставщики

GO 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Поставляемые препараты_Препараты]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)

ALTER TABLE [dbo].[Поставляемые  препараты] DROP CONSTRAINT FK_Поставляемые  препараты_Препараты

GO 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Препараты по рецептам_Препараты]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)

ALTER TABLE [dbo].[Препараты  по рецептам] DROP CONSTRAINT FK_Препараты  по рецептам_Препараты

GO 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Препараты по рецептам_Рецепты]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)

ALTER TABLE [dbo].[Препараты  по рецептам] DROP CONSTRAINT FK_Препараты  по рецептам_Рецепты

GO 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Зарплаты_Сотрудники]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)

ALTER TABLE [dbo].[Зарплаты] DROP CONSTRAINT FK_Зарплаты_Сотрудники

GO 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Отпуска_Сотрудники]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)

ALTER TABLE [dbo].[Отпуска] DROP CONSTRAINT FK_Отпуска_Сотрудники

GO 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ПОСТ3]') and OBJECTPROPERTY(id, N'IsView') = 1)

drop view [dbo].[ПОСТ3]

GO 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Преппрод]') and OBJECTPROPERTY(id, N'IsView') = 1)

drop view [dbo].[Преппрод]

GO 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[сотрвыс]') and OBJECTPROPERTY(id, N'IsView') = 1)

drop view [dbo].[сотрвыс]

GO 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Должности]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table [dbo].[Должности]

GO 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Зарплаты]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table [dbo].[Зарплаты]

GO 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Отделы]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table [dbo].[Отделы]

GO 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Отпуска]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table [dbo].[Отпуска]

GO 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Поставки]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table [dbo].[Поставки]

GO 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Поставляемые препараты]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table [dbo].[Поставляемые препараты]

GO 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Поставщики]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table [dbo].[Поставщики]

GO 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Препараты]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table [dbo].[Препараты]

GO 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Препараты по рецептам]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table [dbo].[Препараты по рецептам]

GO 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Рецепты]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table [dbo].[Рецепты]

GO 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Сотрудники]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table [dbo].[Сотрудники]

GO 

if exists (select * from dbo.systypes where name = N'adr')

exec sp_droptype N'adr'

GO 

if exists (select * from dbo.systypes where name = N'data')

exec sp_droptype N'data'

GO 

if exists (select * from dbo.systypes where name = N'phone')

exec sp_droptype N'phone'

GO 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Num ]') and OBJECTPROPERTY(id, N'IsRule') = 1)

drop rule [dbo].[Num ]

GO 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ZAGLAV]') and OBJECTPROPERTY(id, N'IsRule') = 1)

drop rule [dbo].[ZAGLAV]

GO 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[price_rule]') and OBJECTPROPERTY(id, N'IsRule') = 1)

drop rule [dbo].[price_rule]

GO 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Бомж]') and OBJECTPROPERTY(id, N'IsDefault') = 1)

drop default [dbo].[Бомж]

GO 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Обр-е]') and OBJECTPROPERTY(id, N'IsDefault') = 1)

drop default [dbo].[Обр-е]

GO 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[год]') and OBJECTPROPERTY(id, N'IsDefault') = 1)

drop default [dbo].[год]

GO 

create default [Бомж] as 'n/a'

GO

create default [Обр-е] as 'среднее'

GO

create default [год] as 2009

GO

create rule [Num ] as --правило, определяющее начало слова с цифры

  (@name LIKE '[0-9]%' ) 

GO

CREATE RULE ZAGLAV

AS

  (@Наименование LIKE '[А-Я, A-Z]%') 
 

GO

CREATE RULE price_rule AS

(@Цена >= .01 AND @Цена <= 1000.00)  

GO

setuser

GO 

EXEC sp_addtype N'adr', N'char (100)', N'null'

GO 

setuser

GO 

setuser

GO 

EXEC sp_addtype N'data', N'smalldatetime', N'null'

GO 

setuser

GO 

setuser

GO 

EXEC sp_addtype N'phone', N'char (10)', N'null'

GO 

setuser

GO 

CREATE TABLE [dbo].[Должности] (

      [Должность] [char] (50) COLLATE Cyrillic_General_CI_AS NOT NULL ,

      [Требуемое  образование] [char] (20) COLLATE Cyrillic_General_CI_AS NULL ,

Информация о работе Создание базы данных аптеки