Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Буланов ДС / Bulanov_BD_Otchet.doc
Скачиваний:
48
Добавлен:
06.02.2015
Размер:
135.68 Кб
Скачать

4.2. Построение er-диаграммы

4.2. Ограничение доменов

Имя домена

Допустимые значения

Разрешенные (вводимые) значения

Тип

Размер

Диапазон возможных значений

Значения по умолчанию

Клиент.Номер счета,

Клиент.Код тарифа,

Клиент.Код фирмы,

Тариф.Код тарифа,

Код тарифа

Звонок.Код фирмы,

ФирмаСС.Код Фирмы

int

-

0-9999

-

Клиент.ФИО,

Клиент.Телефон

Тариф.Название ФирмаСС.Название

ФирмаСС.Адрес фирмы

char

30

-

-

Клиент.Аванс,

Клиент.Сост_Сч,

smallmoney

10

0-30000

Ни одно из ключевых полей не может принимать значения NULL.

Ограничения уникальности на домены таблиц

n/n

Атрибут или группа атрибутов

Среди каких экземпляров, какой сущности

1

Дил_Догов

всех экз. сущности «Дил_догов»

3

Тариф.Код_Т

всех экз. сущности «Тариф»

4

Фирма_СС.Код_Ф

всех экз. сущности «Фирма_СС»

5

Клиент.Номер_Сч

всех экз. сущности «Клиент»

5.Диаграмма таблиц

6. Тексты программ.

1.Триггер для расчета состояния счета клиента в таблице «Клиент».

USE [Салон]

GO

/****** Object: Trigger [dbo].[SostSch] Script Date: 12/22/2010 19:51:25 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

ALTER TRIGGER [dbo].[SostSch]

ON [dbo].[Клиент]

FOR INSERT

AS

BEGIN

DECLARE @X1 SMALLMONEY

DECLARE @X2 SMALLMONEY

DECLARE @X3 SMALLMONEY

DECLARE @X4 INT

DECLARE @X5 INT

SELECT @X1=I.Аванс FROM INSERTED I

SELECT @X2=Цена FROM Звонок

SELECT @X4=Номер_Сч FROM Клиент

SELECT @X5=Номер_Сч FROM Звонок

IF(@X4=@X5)

BEGIN

SET @X3=@X1-@X2

END

ELSE

BEGIN SET @X3=@X1

END

UPDATE Клиент

SET Сост_Сч=@X3

WHERE Аванс=@X1

END

2.Хранимая процедура, формирующей отчет в целом по компании за запрашиваемый промежуток времени:

set ANSI_NULLS ON

set QUOTED_IDENTIFIER ON

GO

ALTER PROCEDURE [dbo].[Otchet1]

(@date1 datetime, @date2 datetime)

AS

BEGIN

SET NOCOUNT ON;

SELECT ФИО, Дата, Код_Ф, Код_Т, Телефон, Длительн, Номер_ТЗ, Цена

FROM Клиент, Звонок

WHERE (Дата BETWEEN @date1 AND @date2) AND

(Клиент.Номер_Сч=Звонок.Номер_Сч)

END

3.Хранимая процедура, формирующая упорядоченный список клиентов.

set ANSI_NULLS ON

set QUOTED_IDENTIFIER ON

GO

ALTER PROCEDURE [dbo].[Spisok]

AS

BEGIN

SET NOCOUNT ON;

SELECT ФИО, Номер_Сч, Адрес, Телефон, Код_Т, Код_Ф, Аванс, Сост_Сч

FROM Клиент ORDER BY ФИО

END

4. Хранимая процедура, организующая поиск клиентов по номеру счета и фамилии:

set ANSI_NULLS ON

set QUOTED_IDENTIFIER ON

GO

ALTER PROCEDURE [dbo].[Poisk](@Номер_Сч int,@Фамилия char(20))

AS

BEGIN

SET NOCOUNT ON;

SELECT Номер_Сч, ФИО, Адрес, Телефон, Сост_Сч FROM Клиент

WHERE Номер_Сч=@Номер_Сч AND ФИО=@ Фамилия

END

5.Хранимая процедура, осуществляющая расчет состояния счета клиента.

set ANSI_NULLS ON

set QUOTED_IDENTIFIER ON

GO

ALTER PROCEDURE [dbo].[Raschet](@nom int, @avans int)

AS

BEGIN

SET NOCOUNT ON;

UPDATE Клиент SET Сост_Сч = Сост_Сч + @avans WHERE Номер_Сч=@nom

SELECT Номер_Сч, Сост_Сч, Аванс, FROM Клиент WHERE Номер_Сч =@nom

END

Соседние файлы в папке Буланов ДС