close

Вход

Забыли?

вход по аккаунту

?

отчет(2)

код для вставкиСкачать
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
"ИВАНОВСКИЙ ГОСУДАРСТВЕННЫЙ ЭНЕРГЕТИЧЕСКИЙ УНИВЕРСИТЕТ
имени В.И. Ленина"
Факультет Информатики и вычислительной техники
Отчет по лабораторному практикуму
на тему:
РАЗРАБОТКА БАЗЫ ДАННЫХ
"Продуктовый магазин"
С ИСПОЛЬЗОВАНИЕМ MS SQL SERVER 2008 R2
Выполнил(а):
Савельев Н.А., гр. 3-42Проверила(а):Игнатьева Е.Е.
Иваново 2012
Задание
Описание предметной области:
Продуктовый магазин №17 торгует продуктами питания: мясо, рыба, бакалея, хлеб, напитки и т.п. Товары характеризуются закупочной стоимостью, ценой для покупателя, датой изготовления партии и сроком годности. Они могут продаваться штучно (торт, йогурт и т.д.) или на развес (яблоки, конфеты, и т.д.), в каждом случае указывается количество штук или килограммов на складе соответственно.
Проектирование
Диаграмма вариантов использования: Диаграмма классов:
Логическая модель: Физическая модель:
Значения по умолчанию (PRODUCT_DATE=ТекущаяДата и SUPPLY_DATE=ТекущаяДата):
Ограничения на ввод данных(SUPPLY_QUANTITY>0 и PRODUCT_QUANTITY>0):
Правила удаления(SUPPLY<->PRODUCT - каскадно и SOLDBYWEIGHT<->PRODUCT- каскадно):
SQL-запросы:
1. Insert
INSERT INTO Product(PRODUCT_ID,PRODUCT_NAME)
VALUES (7,'Чоколатка')
INSERT INTO supply (SUPPLY_ID, SUPPLY_QUANTITY,supply_cost,supply_date, PRODUCT_ID)
VALUES (2,177, 453.45, '25.09.2009', 1)
INSERT Supply(SUPPLY_DATE, PRODUCT_ID, SUPPLY_ID)
VALUES (DEFAULT, 3,3)
2. Update UPDATE Product
SET PRODUCT_DATE = GETDATE()
UPDATE Product
SET PRODUCT_EXPIRATION_DATE=PRODUCT_DATE+CAST(30-0-0000 as datetime)
WHERE PRODUCT_DATE is null
UPDATE Product
SET PRODUCT_NAME=PRODUCT_NAME+'*акция*'
WHERE PRODUCT_QUANTITY>0 AND PRODUCT_QUANTITY<100
3. Delete
DELETE Product
WHERE PRODUCT_ID IN (1, 3, 6)
DELETE Product
WHERE Product.PRODUCT_QUANTITY<1 OR PRODUCT_EXPIRATION_DATE<GETDATE()
DELETE Product
SELLECT запросы
1.
2. 3. 4. 5. 6. 7. 8. 9. 10. Триггеры
1.
CREATE TRIGGER tr_new_supply
ON supply
INSTEAD OF INSERT
AS
IF EXISTS (SELECT *
FROM INSERTED
WHERE supply_date > GETDATE())
BEGIN
RAISERROR ('Недопустимая дата поставки!', 16, 1)
ROLLBACK TRAN
END
ELSE INSERT INTO supply (supply_id, product_id, supply_date, supply_quantity)
SELECT supply_id, product_id, supply_date, supply_quantity
FROM INSERTED
2.
CREATE TRIGGER tr_new_product_supply
ON supply
FOR INSERT
AS
UPDATE product
SET product_quantity = d.product_quantity + i.supply_quantity
FROM product d JOIN INSERTED i ON d.product_id = i.product_id
Хранимые процедуры
1.
CREATE PROCEDURE proc_get_products_sold_by_count
AS
SELECT PRODUCT_NAME, PRODUCT_ITEM_COST
FROM product JOIN SoldByCount ON product.PRODUCT_ID = SoldByCount.PRODUCT_ID
2.
CREATE PROC proc_add_product
@name VARCHAR (50) = 'Не задано', @date datetime,
@id INT,
@quantity INT=100
AS
INSERT INTO product (PRODUCT_NAME, PRODUCT_DATE, PRODUCT_QUANTITY, PRODUCT_ID)
VALUES (@name, @date,@quantity, @id) Клиентское приложение
1. Просмотр всех товаров на складе
2. Просмотр просроченных товаров
Документ
Категория
Разное
Просмотров
22
Размер файла
743 Кб
Теги
отчет
1/--страниц
Пожаловаться на содержимое документа