Объекты СУБД Microsoft SQL Server 2000

Страницы работы

Содержание работы

Министерство образования и науки Российской Федерации

Федеральное агентство по образованию

Государственное образовательное учреждение

высшего профессионального образования

«Комсомольский – на - Амуре государственный технический университет»

Кафедра математического обеспечения и применения ЭВМ

ЛАБОРАТОРНАЯ РАБОТА № 1

по курсу «Администрирование информационных систем»

Студенты группы 4ВС-1:                                                                                      Рогозин В.А.

Шелестов И.А.                                                                                                                                       

Преподаватель:                                                                                                      Петрова А.Н.

2008

Тема:       Объекты СУБД Microsoft SQL Server 2000

Цель:       Получить навыки работы с объектами СУБД Microsoft SQL Server 2000

Задание: Разработать БД по продаже сотовых телефонов с возможностью подключиться к операторам сотовой связи и реализовать ее в СУБД Microsoft SQL Server 2000

Схема БД

Схема БД представлена на рис. 1.


Рис. 1. Схема БД

Таблица Clients – содержит информацию о покупателях.

·  [№ klienta] – уникальный идентификатор покупателя

·  [F.I.O.] – ФИО покупателя

·  [e-mail] – электронная почта

·  Adres – почтовый адрес покупателя

Данная таблица не содержит  триггеров

Таблица Operators – содержит информацию об операторах сотовой связи.

·  [№ operatora] – уникальный идентификатор  оператора сотовой связи

·  [Nazvanie operatora]– название  оператора сотовой связи

·  adres –  почтовый адрес  оператора сотовой связи

·  [telefon nomer] – телефонный номер оператора сотовой связи

Данная таблица не содержит  триггеров

Таблица Tarifs – содержит информацию о тарифах.

·  [№ tarifa] – уникальный идентификатор тарифа

·  [Nazvanie tarifa]–  название тарифа

·  [№ operatora] – электронная почта

·  ishodyashie – стоимость исходящих вызовов

·  [SMS cena] - цена за СМС

·  [MMS cena] - цена за ММС

·  [abon plata] - абонентская плата

·  [Internet cena] - цена за Интернет

Данная таблица не содержит  триггеров

Таблица Phones – содержит информацию о телефонах.

·  [№ telefona] – уникальный идентификатор покупателя

·  Marka – фирма производитель

·  Model – модель телефона

·  Cena – цена телефоннов данной марки

·  [dop inf] - дополнительная информация о товаре

·  kolichestvo - количество товара на складе

Данная таблица не содержит  триггеров

Таблица Phones_Parameters – содержит дополнительную информации о телефоне

.

·  [dop inf] – уникальный идентификатор для дополнительной информации о телефоне

·  Heigth – высота (толшина) телефона

·  [Screen Size] – размер экрана

·  [mp3-player] – наличие mp3 плеера

·  Bluetooth - наличие Bluetooth

·  [fm-radio] - радио

·  [Senso screen] -  сенсорный экран

Данная таблица не содержит  триггеров

Таблица Korzina – содержит информацию о выбранных покупателем телефонов и операторов связи.

·  [№ korzini] – уникальный идентификатор корзины

·  [№ klienta] –  уникальный идентификатор покупателя

·  [№ telefona]–  уникальный идентификатор  телефона

·  [№ tarifa] –  уникальный идентификатор  тарифа

·  kolichestvo – количество выбранных телефонов

·  summ - сумма за модели выбранных  телефонах одной марки

Данная таблица содержит триггер проверяющий, чтобы покупатель не выбрал товару больше, чем этого товару находится на складе, в случае превышения, сумма уменьшается  до количества указанного товара на складе:

CREATE  TRIGGER [kolich K] ON dbo.Korzina

FOR INSERT, UPDATE

AS

DECLARE @kolich1 int

DECLARE @kolich2 int

SELECT @kolich1 = (SELECT Inserted.kolichestvo FROM Inserted,Korzina WHERE Inserted.[№ korzini]=Korzina.[№ korzini])

SELECT @kolich2 =  (SELECT Phones.kolichestvo FROM Phones, Inserted WHERE Phones.[№ telefona]=Inserted.[№ telefona])

IF (@kolich1 > @kolich2)

BEGIN

PRINT 'Транзакция не может быть обработана'

PRINT 'Товара выбранно больше чем на складе'

UPDATE Korzina

SET Korzina.kolichestvo = Phones.kolichestvo

FROM Inserted, Phones WHERE Inserted.[№ telefona]=Phones.[№ telefona]              

END

А также триггер вычисляющий сумму за телефоны выбранной модели:

UPDATE Korzina

SET Korzina.summ = Phones.cena * Inserted.kolichestvo

FROM Inserted, Phones WHERE Inserted.[№ telefona]=Phones.[№ telefona]

Таблица Zakazi – содержит информацию о выбранных покупателем телефонах и операторов связи.

·  [№ zakaza] – уникальный идентификатор заказа

·  [Data zakaza]- дата оформления заказа

·  [№ klienta] –  уникальный идентификатор покупателя

·  [№ telefona]–  уникальный идентификатор телефона

·  [№ tarifa] –  уникальный идентификатор тарифа

·  kolichestvo – количество выбранных телефонов

·  [№ korzini] -  уникальный идентификатор корзины

·  summ - сумма за модели телефонов выбранных  телефонов одной марки

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

CREATE TRIGGER [kopir kolich Z] ON dbo.Zakazi

FOR INSERT, UPDATE, DELETE

AS

DECLARE @Ntelefona int

SELECT @Ntelefona =(SELECT Inserted.[№ korzini] FROM Phones, Inserted WHERE Inserted.[№ telefona]=Phones.[№ telefona])

UPDATE Zakazi

SET [Data zakaza]=GetDate()

FROM Inserted, Phones WHERE Inserted.[№ telefona]=Phones.[№ telefona]

UPDATE Phones

SET Phones.kolichestvo = Phones.kolichestvo -  Inserted.kolichestvo

FROM Inserted, Phones WHERE Inserted.[№ telefona]=Phones.[№ telefona]

Триггер очищающий корзину после овормления заказа

DELETE

FROM Korzina WHERE Korzina.[№ korzini]=@Ntelefona


Рис. 2. Данные в таблицах Korzina, Photes и Zakazi

Список использованных источников

  1. Учебный курс MCAD/MCSE, MCDBA проектирование и реализация баз данных в Microsoft SQL Server 2000. – М:. Русская редакция, 2003. – 510с.

Похожие материалы

Информация о работе