Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Обеспечение целостности данных




На следующем этапе каждую из выделенных сущностей необходимо преобразовать в отдельную таблицу, присвоить ей имя, определить типы и размеры полей, назначить первичные и внешние ключи, определить ограничения. В результате получим базу данных, состоящую из 9 таблиц (таблицы 2-10).

 

Таблица 2 - Описание структуры таблицы «Operator»

Поле Тип данных Размер/ формат данных Ключ NULL значения Ограничения
ID_op integer 4 PK - Auto Increment
FIO varchar 50   -  
dolgnost varchar 100   +  
adress varchar 100   - DEFAULT 'unknown'
tel varchar 20   - DEFAULT 'unknown'
ID_otd integer 4 FK -  

 

Таблица 3 - Описание структуры таблицы «Otdel»

Поле Тип данных Размер/ формат данных Ключ NULL значения Ограничения
ID_otd integer 4 PK - AutoIncrement
nazvanie_otd varchar 100   -  

 

Таблица 4 - Описание структуры таблицы «Napravlenie»

Поле Тип данных Размер/ формат данных Ключ NULL значения Ограничения
ID_napr integer 4 PK - Auto Increment
nazvanie_napr varchar 100   -  
ID_op integer 4 FK -  

 

Таблица 5 - Описание структуры таблицы «Pokupatel»

Поле Типданных Размер/ форматданных Ключ NULL значения Ограничения
ID_pkp integer 4 PK - Auto Increment
naimenovanie varchar 100   -  
INN varchar 12   -  
adress varchar 100   - DEFAULT 'unknown'
tel varchar 20   - DEFAULT 'unknown'
kontact varchar 30   +  

 

 

Таблица 6 - Описание структуры таблицы «Tovar»

Поле Типданных Размер/ форматданных Ключ NULL значения Ограничения
ID_tvr integer 4 PK - Auto Increment
articul varchar 20   -  
nazvanie varchar 100   -  
ed_izm varchar 10   -  
ves decimal (10,2)   -  
kol integer 4   -  
price money -   -  
ID_kat integer 4 FK -  

 

 

Таблица 7 - Описание структуры таблицы «Kategoria»

Поле Типданных Размер/ форматданных Ключ NULL значения Ограничения
ID_kat integer 4 PK - Auto Increment
nazvanie_kat varchar 50   -  

 

Таблица 8 - Описание структуры таблицы «Prodazha»

Поле Типданных Размер/ форматданных Ключ NULL значения Ограничения
ID_prd integer 4 PK - Auto Increment
num_dog varchar 12   -  
data_dog datetime -   - CHECK (data_dog<= GetDate() AND Year(data_dog)>1900)
summa_dog money 100   - DEFAULT 0
ID_pkp integer 4 FK -  

 

Таблица 9 - Описание структуры таблицы «Otgruzka»

Поле Типданных Размер/ форматданных Ключ NULL значения Ограничения
ID_otgr integer 4 PK - Auto Increment
num_UPD varchar 15   -  
data_UPD datetime -   - CHECK (data_ UPD<= GetDate() AND Year(data_ UPD)>1900)
sum_ves decimal (10,2)   - Sum(UPD.ves_tvr) WHERE UPD.ID_otgr= Otgruzka.ID_otgr
cost money -   - Sum(UPD. cost_tvr) WHERE UPD.ID_otgr= Otgruzka.ID_otgr
ID_prd integer 4 FK -  
ID_op integer 4 FK -  

 

Таблица 10 - Описание структуры таблицы «UPD»

Поле Тип данных Размер/ формат данных Ключ NULL значения Ограничения
ID_upd integer 4 PK - Auto Increment
ID_tvr integer 4 FK -  
ID_otgr integer 4 FK -  
kol_tvr integer 4   -  
ves_tvr decimal (10,2)   - kol_tvr*Tovar.ves WHERE UPD.ID_tvr= Tovar.ID_tvr
cost_tvr money -   - kol_tvr*Tovar.price WHERE UPD.ID_tvr= Tovar.ID_tvr



Итоговая схема БД

 

На предыдущих этапах был определен перечень таблиц базы данных отдела выписки товаров фирмы «АвтоМАГ», была проведена нормализация полученных отношений, назначены первичные и вторичные ключи в таблицах.

В таблице 11 представлено краткое описание связей между разработанными таблицами.

Таблица 11 - Спецификация связей базы данных отдела выписки товаров ООО «АвтоМАГ»

Отношение 1 Отношение 2 Связующий ключ Степень связи
Operator Otdel ID_otd M:1
Operator Napravlenie ID_op 1:N
Tovar Kategoria ID_kat M:1
Prodazha Pokupatel ID_pkp M:1
Otgruzka Prodazha ID_prd M:1
Otgruzka Operator ID_op M:1
UPD Otgruzka ID_otgr M:1
UPD Tovar ID_tvr M:1
       
       

 

Для более наглядного представления полученные объекты БД и связи между ними отражены на рис. 2.

 

Рис. 2.  Схема базы данных отдела выписки товаров ООО «АвтоМАГ

 

Вывод по первой главе

Таким образом,


 


Глава 2: Программная реализация БД на основе SQLServer

 

Создание БД и ее объектов

Для создания базы данных отдела выписки товаров оптовой фирмы «АвтоМАГ» использовался графический интерфейс среды ManagementStudioСУБД SQLServer.

Для создания новой базы данных следует выбрать опцию «Создать базу данных…»в Обозревателе объектовManagementStudio в контекстном меню раздела «Базы данных». Откроется окно «Создание базы данных», в котором необходимо задать свойства новой БД, такие как имя БД и место расположения файлов БД (рис. 3). Остальные все параметры и свойства можно оставить по умолчанию.

 

 

Рис. 3. Создание БД в ManagementStudio, вкладка «Общие»

После нажатия кнопки «OК»созданная база данных появится в Обозревателе объектов в разделе «Базы данных» (рис.4).

 

 

Рис. 4.Обозреватель объектов ManagementStudio после создания новой БД

 

На следующем этапе необходимо создать таблицы базы данных. Таблицы также можно создавать с использованием графического интерфейса СУБД MSSQLServer, а можно использовать SQL-скрипт для создания таблиц. Второй способ является наиболее быстрым. Для запуска редактора команд в ManagementStudioнеобходимо воспользоваться кнопкой «Создать запрос» на панели управления и в открывшемся окне ввести текст команды. Запуск на исполнение осуществляется кнопкой «Выполнить»

Текст SQL-скрипта создания таблиц БД отдела выписки товаров ООО «АвтоМАГ» представлен ниже.

CREATETABLEOperator(

ID_opintNOTNULLIDENTITY(1,1),

FIOvarchar(50)NOTNULL,

dolgnostvarchar(100),

adressvarchar(100)NOTNULLDEFAULT'unknown',

telvarchar(20)NOTNULLDEFAULT'unknown',

ID_otdintNOTNULL,

CONSTRAINT[PK_OPERATOR]PRIMARYKEYCLUSTERED

(

[ID_op]ASC

)WITH (IGNORE_DUP_KEY=OFF)

 

)

GO

CREATETABLEOtdel(

ID_otdintNOTNULLIDENTITY(1,1),

nazvanie_otdvarchar(100)NOTNULL,

CONSTRAINT[PK_OTDEL]PRIMARYKEYCLUSTERED

(

[ID_otd]ASC

)WITH (IGNORE_DUP_KEY=OFF)

 

)

GO

 

CREATETABLENapravlenie(

ID_naprintNOTNULLIDENTITY(1,1),

nazvanie_naprvarchar(100)NOTNULL,

ID_opintNOTNULL,

CONSTRAINT[PK_NAPRAVLENIE]PRIMARYKEYCLUSTERED

(

[ID_napr]ASC

)WITH (IGNORE_DUP_KEY=OFF)

 

)

GO

 

CREATETABLEPokupatel(

ID_pkpintNOTNULLIDENTITY(1,1),

naimenovanievarchar(100)NOTNULL,

INNvarchar(12)NOTNULL,

adressvarchar(100)NOTNULLDEFAULT'unknown',

telvarchar(20)NOTNULLDEFAULT'unknown',

kontactvarchar(30),

CONSTRAINT[PK_POKUPATEL]PRIMARYKEYCLUSTERED

(

[ID_pkp]ASC

)WITH (IGNORE_DUP_KEY=OFF)

 

)

GO

 

CREATETABLETovar(

ID_tvrintNOTNULLIDENTITY(1,1),

articulvarchar(20)NOTNULL,

nazvanievarchar(100)NOTNULL,

ed_izmvarchar(10)NOTNULL,

vesdecimalNOTNULL,

kolintNOTNULL,

pricemoneyNOTNULL,

ID_katintNOTNULL,

CONSTRAINT[PK_TOVAR]PRIMARYKEYCLUSTERED

(

[ID_tvr]ASC

)WITH (IGNORE_DUP_KEY=OFF)

 

)

GO

 

CREATETABLEKategoria(

ID_katintNOTNULLIDENTITY(1,1),

nazvanie_katvarchar(50)NOTNULL,

CONSTRAINT[PK_KATEGORIA]PRIMARYKEYCLUSTERED

(

[ID_kat]ASC

)WITH (IGNORE_DUP_KEY=OFF)

 

)

GO

CREATETABLEProdazha(

ID_prdintNOTNULLIDENTITY(1,1),

num_dogvarchar(12)NOTNULL,

data_dogdatetimeNOTNULLCONSTRAINT[CHECK_DATA_DOG]CHECK (data_dog<=GetDate()ANDYear(data_dog)>1900),

summa_dogmoneyNOTNULLDEFAULT'0',

ID_pkpintNOTNULL,

CONSTRAINT[PK_PRODAZHA]PRIMARYKEYCLUSTERED

(

[ID_prd]ASC

)WITH (IGNORE_DUP_KEY=OFF)

 

)

GO

 

CREATETABLEOtgruzka(

ID_otgrintNOTNULLIDENTITY(1,1),

num_UPDvarchar(15)NOTNULL,

data_UPDdatetimeNOTNULLCONSTRAINT[CHECK_DATA_UPD]CHECK (data_UPD<=GetDate()ANDYear(data_UPD)>1900),

sum_vesdecimalNOTNULL,

costmoneyNOTNULL,

ID_prdintNOTNULL,

ID_opintNOTNULL,

CONSTRAINT[PK_OTGRUZKA]PRIMARYKEYCLUSTERED

(

[ID_otgr]ASC

)WITH (IGNORE_DUP_KEY=OFF)

 

)

GO

 

CREATETABLEUPD(

ID_updintNOTNULLIDENTITY(1,1),

ID_tvrintNOTNULL,

ID_otgrintNOTNULL,

kol_tvrintNOTNULL,

ves_tvrdecimalNOTNULL,

cost_tvrmoneyNOTNULL,

CONSTRAINT[PK_UPD]PRIMARYKEYCLUSTERED

(

[ID_upd]ASC

)WITH (IGNORE_DUP_KEY=OFF)

 

)

GO

 

Внешний вид Обозревателя объектов ManаgementStudioпосле выполнения команд на создание таблиц представлен на рис. 5.

 

Рис. 5.Обозреватель объектов ManagementStudio после создания таблиц БД


 


Установление связей между таблицами

Установление связей между таблицами базы удобнее выполнять с помощью SQL–команд, которыеприведеныниже.

 

ALTERTABLEOperatorWITHCHECKADDCONSTRAINT[Operator_fk0]FOREIGNKEY ([ID_otd])REFERENCESOtdel([ID_otd])

ONUPDATECASCADE

GO

ALTERTABLEOperatorCHECKCONSTRAINT[Operator_fk0]

GO

 

ALTERTABLENapravlenieWITHCHECKADDCONSTRAINT[Napravlenie_fk0]FOREIGNKEY ([ID_op])REFERENCESOperator([ID_op])

ONUPDATECASCADE

GO

ALTERTABLENapravlenieCHECKCONSTRAINT[Napravlenie_fk0]

GO

 

ALTERTABLETovarWITHCHECKADDCONSTRAINT[Tovar_fk0]FOREIGNKEY ([ID_kat])REFERENCES[Kategoria]([ID_kat])

ONUPDATECASCADE

GO

ALTERTABLETovarCHECKCONSTRAINT[Tovar_fk0]

GO

 

ALTERTABLEProdazhaWITHCHECKADDCONSTRAINT[Prodazha_fk0]FOREIGNKEY ([ID_pkp])REFERENCES[Pokupatel]([ID_pkp])

ONUPDATECASCADE

GO

ALTERTABLEProdazhaCHECKCONSTRAINT[Prodazha_fk0]

GO

 

ALTERTABLEOtgruzkaWITHCHECKADDCONSTRAINT[Otgruzka_fk0]FOREIGNKEY ([ID_prd])REFERENCESProdazha([ID_prd])

ONUPDATECASCADE

GO

ALTERTABLEOtgruzkaCHECKCONSTRAINT[Otgruzka_fk0]

GO

ALTERTABLEOtgruzkaWITHCHECKADDCONSTRAINT[Otgruzka_fk1]FOREIGNKEY ([ID_op])REFERENCESOperator([ID_op])

ONUPDATECASCADE

GO

ALTERTABLEOtgruzkaCHECKCONSTRAINT[Otgruzka_fk1]

GO

 

ALTERTABLEUPDWITHCHECKADDCONSTRAINT[UPD_fk0]FOREIGNKEY ([ID_tvr])REFERENCESTovar([ID_tvr])

ONUPDATECASCADE

GO

ALTERTABLEUPDCHECKCONSTRAINT[UPD_fk0]

GO

ALTERTABLEUPDWITHCHECKADDCONSTRAINT[UPD_fk1]FOREIGNKEY ([ID_otgr])REFERENCESOtgruzka([ID_otgr])

ONUPDATECASCADE

GO

ALTERTABLEUPDCHECKCONSTRAINT[UPD_fk1]

GO

 

Схема полученных связей для таблиц БД отдела выписки товаров оптовой фирмы «АвтоМАГ» представлена в Приложении 1.


 










Последнее изменение этой страницы: 2018-04-12; просмотров: 268.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...