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

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

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

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

Оглавление

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

Файлы: 1 файл

1.doc

— 724.00 Кб (Скачать)

      [Оклад] [money] NULL

) ON [PRIMARY]

GO 

CREATE TABLE [dbo].[Зарплаты] (

      [Фамилия] [char] (20) COLLATE Cyrillic_General_CI_AS NOT NULL ,

      [Имя] [char] (20) COLLATE Cyrillic_General_CI_AS NOT NULL ,

      [Отчество] [char] (20) COLLATE Cyrillic_General_CI_AS NOT NULL ,

      [Дата] [datetime] NOT NULL ,

      [Зарплата] [money] NULL ,

      [Премия] [money] NULL

) ON [PRIMARY]

GO 

CREATE TABLE [dbo].[Отделы] (

      [Отдел] [char] (80) COLLATE Cyrillic_General_CI_AS NOT NULL ,

      [Заведующий] [char] (20) COLLATE Cyrillic_General_CI_AS NULL ,

      [Телефон] [int] NULL

) ON [PRIMARY]

GO 

CREATE TABLE [dbo].[Отпуска] (

      [Фамилия] [char] (20) COLLATE Cyrillic_General_CI_AS NOT NULL ,

      [Имя] [char] (20) COLLATE Cyrillic_General_CI_AS NOT NULL ,

      [Отчество] [char] (20) COLLATE Cyrillic_General_CI_AS NOT NULL ,

      [Год] [int] NOT NULL ,

      [Начало отпуска] [datetime] NULL ,

      [Конец  отпуска] [datetime] NULL

) ON [PRIMARY]

GO 

CREATE TABLE [dbo].[Поставки] (

      [Номерпост] [int] NOT NULL ,

      [Поставщик] [char] (35) COLLATE Cyrillic_General_CI_AS NULL ,

      [Дата] [datetime] NULL

) ON [PRIMARY]

GO 

CREATE TABLE [dbo].[Поставляемые препараты] (

      [Номерпост] [int] NOT NULL ,

      [Препарат] [char] (70) COLLATE Cyrillic_General_CI_AS NOT NULL ,

      [Форма  выпуска] [char] (30) COLLATE Cyrillic_General_CI_AS NOT NULL ,

      [Количество] [int] NULL ,

      [Цена  за единицу] [char] (10) COLLATE Cyrillic_General_CI_AS NULL

) ON [PRIMARY]

GO 

CREATE TABLE [dbo].[Поставщики] (

      [Поставщик] [char] (35) COLLATE Cyrillic_General_CI_AS NOT NULL ,

      [Адрес] [adr] NULL ,

      [Телефон] [phone] NULL

) ON [PRIMARY]

GO 

CREATE TABLE [dbo].[Препараты] (

      [Препарат] [char] (70) COLLATE Cyrillic_General_CI_AS NOT NULL ,

      [Форма  Выпуска] [char] (30) COLLATE Cyrillic_General_CI_AS NOT NULL ,

      [Цена] [money] NULL ,

      [Отдел] [char] (80) COLLATE Cyrillic_General_CI_AS NULL ,

      [По  рецепту] [bit] NULL ,

      [Показания] [char] (120) COLLATE Cyrillic_General_CI_AS NULL ,

      [Условия  хранения] [char] (100) COLLATE Cyrillic_General_CI_AS NULL

) ON [PRIMARY]

GO 

CREATE TABLE [dbo].[Препараты  по рецептам] (

      [Препарат] [char] (70) COLLATE Cyrillic_General_CI_AS NOT NULL ,

      [Форма  выпуска] [char] (30) COLLATE Cyrillic_General_CI_AS NOT NULL ,

      [№  рецепта] [int] NOT NULL ,

      [Количество  по рецепту] [int] NULL

) ON [PRIMARY]

GO 

CREATE TABLE [dbo].[Рецепты] (

      [№  рецепта] [int] NOT NULL ,

      [Фамилия] [char] (20) COLLATE Cyrillic_General_CI_AS NULL ,

      [Имя] [char] (20) COLLATE Cyrillic_General_CI_AS NULL ,

      [Отчество] [char] (20) COLLATE Cyrillic_General_CI_AS NULL ,

      [Дата] [data] NULL

) ON [PRIMARY]

GO 

CREATE TABLE [dbo].[Сотрудники] (

      [Фамилия] [char] (20) COLLATE Cyrillic_General_CI_AS NOT NULL ,

      [Имя] [char] (20) COLLATE Cyrillic_General_CI_AS NOT NULL ,

      [Отчество] [char] (20) COLLATE Cyrillic_General_CI_AS NOT NULL ,

      [Серия  паспорта] [int] NULL ,

      [№  паспорта] [int] NULL ,

      [Дата  выдачи паспорта] [datetime] NULL ,

      [Адрес] [char] (80) COLLATE Cyrillic_General_CI_AS NULL ,

      [Домашний  телефон] [int] NULL ,

      [Отдел] [char] (80) COLLATE Cyrillic_General_CI_AS NULL ,

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

) ON [PRIMARY]

GO 

setuser

GO 

EXEC sp_bindefault N'[dbo].[Обр-е]', N'[Должности].[Требуемое образование]'

GO 

setuser

GO 

setuser

GO 

EXEC sp_bindefault N'[dbo].[год]', N'[Отпуска].[Год]'

GO 

setuser

GO 

setuser

GO 

EXEC sp_bindrule N'[dbo].[Num ]', N'[Поставщики].[Телефон]'

GO 

setuser

GO 

setuser

GO 

EXEC sp_bindrule N'[dbo].[price_rule]', N'[Препараты].[Цена]'

GO 

setuser

GO 

setuser

GO 

EXEC sp_bindefault N'[dbo].[Бомж]', N'[Сотрудники].[Адрес]'

GO 

EXEC sp_bindrule N'[dbo].[ZAGLAV]', N'[Сотрудники].[Фамилия]'

GO 

setuser

GO 

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO 
 

CREATE VIEW ПОСТ3

AS

   SELECT    *

   FROM      [Поставляемые препараты]

   WHERE     Номерпост = 3 

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO 

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO 
 

Create View Преппрод

As

SELECT    Препарат,

            Отдел,

            Цена

FROM  Препараты 

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO 

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO 

CREATE VIEW dbo.VIEW3

AS

SELECT     dbo.Сотрудники.Должность, dbo.Сотрудники.Фамилия, dbo.Сотрудники.Имя, dbo.Сотрудники.Отчество, dbo.Сотрудники.Адрес,

                      dbo.Сотрудники.Отдел, dbo.Сотрудники.[Домашний телефон], dbo.Должности.[Требуемое образование]

FROM         dbo.Сотрудники INNER JOIN

                      dbo.Должности ON dbo.Сотрудники.Должность = dbo.Должности.Должность

WHERE     (dbo.Должности.[Требуемое образование] = 'высшее') 

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Приложение 2. Скрипт создания запросов

use Apteka

go

--Препараты начинающиеся  на букву «Ц»

SELECT *

          FROM Препараты

          WHERE Препарат LIKE 'Ц%'

Go 

--Количество  сотрудников по должностям

SELECT Должность  ,count(Должность) AS 'Количество' From Сотрудники 

GROUP BY Должность

Go 

--вывод в валюте цены по наименованию препарата

DECLARE @Препарат char(70),           --наименование препарата 

        @Цена  money,           --цена препарата

        @val char(3),             --валюта

        @Цена_in_val money        --цена  в валюте

--Определить  наименование препарата и валюту

SET @Препарат='Ренни'

SET @val='$'

--Определить  цену препарата по названию  препарата

SELECT @Цена=Цена 

FROM Препараты

WHERE Препарат=@Препарат

--Определить  цену препарата в заданной  валюте

SELECT @Цена_in_val=

CASE @val

  WHEN 'руб' THEN @Цена 

  WHEN '$'   THEN @Цена /28

  WHEN 'EUR' THEN @Цена /34

END

--Вывод сообщения

PRINT CONVERT(char(5), @Цена_in_val) 

--препараты дешевле  20 р.

SELECT * From Препараты

Where Цена<20

Go 

--Сотрудники  с высшим образованием

SELECT * From Должности

Where [Требуемое  образование]='Высшее'

Go 

--Снижение цен  на препараты по рецепту

UPDATE Препараты

SET Цена=Цена*0.9

WHERE [По рецепту]=1

Go 

--вывод ближайших  поставок препаратов 

SELECT * From поставки

Where Дата>GetDate()

Go

Приложение  3. Скрипт создания хранимых процедур и триггеров

 

--изменение поставщика (ХП)

Use Apteka

go 

CREATE PROCEDURE Изменить_Поставщик(

                                                 @postavshik char(35),

                                                @adress char(20),

                                                @telephon char(20)  

                                                )

AS

BEGIN

      UPDATE Поставщики

      SET Адрес = @adress, Телефон = @telephon

      WHERE Поставщик = @postavshik

END

GO 

--Добавление  поставщика (ХП)

CREATE PROCEDURE Новый_Поставщик(

                                                      @post char(35),

                                                      @adress char(20),

                                                      @tel char(20)

                                                )

AS

BEGIN

      INSERT INTO Поставщики

      VALUE (@post,@adress,@tel)

END

GO 

--Удаление поставщика (ХП)

CREATE PROCEDURE Удаляем_Поставщики(@post char(35))

AS

BEGIN

      delete

      from Поставщики

      where Поставщик = @post;

END

GO 

--Триггер Т1

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