Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Клиент-сервер_ПРИМЕР .doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
5.06 Mб
Скачать

Содержание

Содержание 1

Постановка задачи. 2

Поставщик 3

Товар 3

Клиент 3

Поставка 3

Отгрузка 3

Списание 3

Создание и заполнение базы данных. 4

Создание запросов. 12

Процедуры 25

Триггеры 30

Безопасность 36

Заключение 37

Постановка задачи.

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

Поставщик

  • код PK

  • наименование

  • р/с

  • ИНН

  • БИК

  • Адрес

Товар

  • код PK

  • наименование

  • срок годности

  • остаток на складе

  • цена продажи

Клиент

  • код PK

  • наименование

  • р/с

  • ИНН

  • БИК

- Адрес

П оставка

  • код товара FK1

  • код поставщика FK2

  • дата поставки

  • цена поставки

  • количество

  • дата изготовления

  • дата оплаты

  • код партии PK

Отгрузка

  • код партии PK FK1

  • код клиента PK FK2

  • дата отгрузки PK

  • цена продажи

  • количество

  • дата оплаты

Списание

  • код партии PK FK

  • дата списания PK

  • количество

  • причина списания

Создание и заполнение базы данных.

Для начала работы необходимо запустить SQL Server Management Studio Express. Для этого необходимо последовательно открыть: «Пуск» - «Программы» - «Microsoft SQL Client» - «Query Analyzer».

Нажимаем «Подключиться» , после чего появляется рабочая область программы:

Для создания базы данных используется команда create database (Имя базы данных). Для ее выполнения введем:

Create database anichina

И нажмем «Выполнить » на панели инструментов (Зеленая стрелочка), либо «Запрос» - «Выполнить». Получим сообщение об успешном выполнении команды. В левой части в списке «Базы данных» появится название только что созданной базы данных «anichina» :

Переключимся на созданную базу данных:

После создания базы данных следует создать таблицы с помощью команды create table.

Создадим таблицу «Товар». Для этого введем:

create table tovar (id_tovar int identity (1,1) primary key,

t_name varchar(30) not null,

t_srok int,

t_ost int,

t_cena money check (t_cena>0))

Нажимаем «Выполнить». Получаем новую таблицу в базе данных «anichina»:

Аналогично создадим таблицы «Поставщик», «Поставка», «Клиент», «Отгрузка», «Списание»:

create table postavschic(id_post int identity (1,1) primary key,

p_name varchar(30) not null,

p_rsch varchar(20) not null,

p_inn varchar(10) not null unique,

p_bik varchar(20) not null,

p_adr varchar (50),

unique(p_rsch,p_bik))

create table postavka(id_part int identity (1,1) primary key,

tovar_id int not null references tovar(id_tovar),

post_id int not null references postavschic(id_post),

data_post datetime,

cena_post money check(cena_post>0),

kol_post decimal(7,2),

ost_post decimal(7,2),

data_izg datetime,

data_opl datetime)

create table client(id_client int identity (1,1) primary key,

c_name varchar(30) not null,

c_rsch varchar(20) not null,

c_inn varchar(10) not null unique,

c_bik varchar(20) not null,

c_adr varchar (50),

unique(c_rsch,c_bik))

create table otgruzka(id_part int not null references postavka(id_part),

id_client int not null references client(id_client),

data_otgr datetime,

cena_prod money check(cena_prod>0),

kol_otgr decimal(7,2),

data_opl datetime

primary key(id_part,id_client,data_otgr))

create table spisanie(id_part int not null references stavka(id_part),

data_spis datetime,

kol_spis decimal(7,2),

prich_spis varchar(50)

primary key(id_part,data_spis))

Нажимаем «Выполнить». В результате получим:

Заполним базу данных, используя команду «insert». Рассмотрим заполнение таблицы «Товар»:

Введем:

insert tovar(t_name,t_srok,t_ost,t_cena) values('Лосось',20,0,300)

insert tovar(t_name,t_srok,t_ost,t_cena) values('Радужная форель',16,0,220)

insert tovar(t_name,t_srok,t_ost,t_cena) values('Семга',18,0,100)

insert tovar(t_name,t_srok,t_ost,t_cena) values('Скумбрия',25,0,100)

insert tovar(t_name,t_srok,t_ost,t_cena) values('Килька',20,0,90)

Нажмем «выполнить». Для просмотра результата последовательно откроем: Базы данных – anichina – Таблицы. Выберем таблицу «tovar», щелкнем на нее правой клавишей мыши, нажмем «Открыть таблицу». В результате получим:

Заполним остальные таблицы:

insert postavschic(p_name,p_rsch,p_inn,p_bik,p_adr) values('Персей','12345678901234567890','1234567890','09876543210987654321','Пермь, Липатова, 18, оф.301')

insert postavschic(p_name,p_rsch,p_inn,p_bik,p_adr) values('Одиссей','22345678901234567890','2234567890','09876543210987654321','Пермь, Сибирская, 8, оф.201')

insert postavschic(p_name,p_rsch,p_inn,p_bik,p_adr) values('Тесей','32345678901234567890','3234567890','09876543210987654321','Пермь, Пушкина, 19, оф.35')

insert postavschic(p_name,p_rsch,p_inn,p_bik,p_adr) values('Кочубей','42345678901234567890','4234567890','09876543210987654321','Пермь, Советская, 29, оф.17')

insert postavka(tovar_id,post_id,data_post,cena_post,kol_post,ost_post,data_izg,data_opl) values(1,1,'02.02.08',290,50,50,'01.02.08',null)

insert postavka(tovar_id,post_id,data_post,cena_post,kol_post,ost_post,data_izg,data_opl) values(2,1,'02.09.08',200,70,70,'01.02.08',null)

insert postavka(tovar_id,post_id,data_post,cena_post,kol_post,ost_post,data_izg,data_opl) values(3,2,'02.15.08',100,100,100,'01.02.08',null)

insert postavka(tovar_id,post_id,data_post,cena_post,kol_post,ost_post,data_izg,data_opl) values(4,2,'02.16.08',90,90,90,'01.02.08',null)

insert postavka(tovar_id,post_id,data_post,cena_post,kol_post,ost_post,data_izg,data_opl) values(5,3,'02.27.08',70,200,200,'01.02.08',null)

insert postavka(tovar_id,post_id,data_post,cena_post,kol_post,ost_post,data_izg,data_opl) values(5,4,'03.02.08',60,100,100,'01.02.08',null)

insert postavka(tovar_id,post_id,data_post,cena_post,kol_post,ost_post,data_izg,data_opl) values(2,1,'03.03.08',200,100,100,'01.02.08',null)

insert postavka(tovar_id,post_id,data_post,cena_post,kol_post,ost_post,data_izg,data_opl) values(3,2,'03.12.08',200,100,100,'01.02.08',null)

insert client(c_name,c_rsch,c_inn,c_bik,c_adr) values('Петров','13345678901234567890','1334567890','09876543210987654321','Пермь, Липатова, 18, 166')

insert client(c_name,c_rsch,c_inn,c_bik,c_adr) values('Иванов','14345678901234567890','1434567890','09876543210987654321','Пермь, Липатова, 18, 167')

insert client(c_name,c_rsch,c_inn,c_bik,c_adr) values('Козлов','15345678901234567890','1534567890','09876543210987654321','Пермь, Липатова, 18, 168')

insert client(c_name,c_rsch,c_inn,c_bik,c_adr) values('Ветров','16345678901234567890','1634567890','09876543210987654321','Пермь, Липатова, 18, 169')

insert client(c_name,c_rsch,c_inn,c_bik,c_adr) values('Беш','17345678901234567890','1734567890','09876543210987654321','Пермь, Липатова, 18, 132')

insert otgruzka(id_part,id_client,data_otgr,cena_prod,kol_otgr,data_opl) values(3,1,'02.15.2008',160,20,null)

insert otgruzka(id_part,id_client,data_otgr,cena_prod,kol_otgr,data_opl) values(1,1,'02.15.2008',320,20,null)

insert otgruzka(id_part,id_client,data_otgr,cena_prod,kol_otgr,data_opl) values(2,1,'02.15.2008',250,20,null)

insert otgruzka(id_part,id_client,data_otgr,cena_prod,kol_otgr,data_opl) values(8,2,'02.15.2008',160,20,null)

insert otgruzka(id_part,id_client,data_otgr,cena_prod,kol_otgr,data_opl) values(4,3,'02.15.2008',130,20,null)

insert spisanie(id_part,data_spis,kol_spis,prich_spis) values(6,'02.16.2008',3,'Протухло')

insert spisanie(id_part,data_spis,kol_spis,prich_spis) values(6,'02.19.2008',3,'Поели мыши')

insert spisanie(id_part,data_spis,kol_spis,prich_spis) values(2,'02.16.2008',3,'Заплесневело')

insert spisanie(id_part,data_spis,kol_spis,prich_spis) values(1,'02.16.2008',3,'Намокло')

insert spisanie(id_part,data_spis,kol_spis,prich_spis) values(3,'02.16.2008',3,'Протухло')

insert spisanie(id_part,data_spis,kol_spis,prich_spis) values(5,'02.16.2008',3,'Украли')

insert spisanie(id_part,data_spis,kol_spis,prich_spis) values(7,'02.16.2008',3,'Протухло')

insert spisanie(id_part,data_spis,kol_spis,prich_spis) values(8,'02.16.2008',3,'Протухло')

Для просмотра результатов необходимо выполнить аналогичные описанным выше действия.