Информационная система управления

Разработка информационной системы управления, ориентированной на учет закупленного товара, работу с историческими данными компании и анализ данных для принятия стратегически верных решений. Хранилище данных в 3NF Билла Инмона. Компоненты Data Vault.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 22.09.2016
Размер файла 3,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

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

Модель витрины данных представляет собой схему Снежинка и представлена в общем виде на рис. 17.

3.6 Создание мета-слоя с использованием SAP Business Objects

Так как ключевыми пользователями разрабатываемой системы являются аналитики и топ-менеджеры компании, в базис знаний которых не входит написание SQL-запросов для извлечения информации из ХД, то целесообразно будет предложить им программный продукт, упрощающий работу с данными.

В данной работе таким продуктом был выбран SAP Business Objects [15]. При помощи модуля Universe Designer можно создать, так называемый, юниверс - семантический слой, который изолирует конечного пользователя от технических подробностей структуры базы данных.

Business Objects помещает особый слой между пользователями и их данными, который называется семантическим слоем. Это упрощает процесс создания запросов к хранилищу данных, позволяя пользователям создавать запросы в терминах конкретного бизнеса, которые они хорошо понимают (например, «Доход от продаж» вместо названия соответствующего поля в хранилище данных). Business Objects переводит запрос в форму SQL и отправляет его на обработку.

Слой метаданных или семантический слой основывается на парадигме юниверсов, классов и объектов.

Юниверс - это бизнес-ориентированное отображение структуры данных в ХД: таблицы, колонки, связи между ними и т.д. Он состоит из набора объектов, сгруппированных в классы. Объекты отражают предметную область пользователей.

Методология разработки юниверсов состоит из двух основных фаз - создание физической модели хранилища данных (описание структуры ХД) и создание логических объектов на основе таблиц хранилища.

Процесс создания юниверса начинается с настройки соединения с ХД. В первой фазе идет описание всех таблиц, колонок и связей. Во второй фазе создаются объекты бизнеса путем SQL-запросов.

Реляционная структура и логическое представление созданного юниверса представлены на рис. 18.

Рис. 18. Юниверс в Universe Designer

3.7 Визуализация данных в аналитических отчетах

Построение отчетов осуществляется при помощи модуля Web Intelligence. Создание любого отчета начинается с выбора источника - юниверса, из которого необходимо получить данные. Выбрав ранее созданный юниверс, следует перейти к следующему шагу - построению запроса. Панель запросов выглядит так, как представлено на рис. 19.

Панель делится на три основных окна:

- Список объектов юниверса. Здесь расположены объекты, которые определены в юниверсе. Объекты сгруппированы по классам.

- Объекты результата. Окно объектов результата расположено в верхней части панели запросов. В него помещаются объекты, которые необходимы в отчете, т.е. те данные, которые нужно получить из ХД.

- Условия. В правом нижнем окне описываются ограничения, которые накладываются на запрос.

Синтаксис SQL генерируется в Web Intelligence автоматически после добавления объекта в запрос.

Далее представлены фрагменты разработанных отчетов (рис. 20-22).

Рис. 22. Фрагмент отчета «Продажи сотрудников за выбранный год»

Заключение

В данной работе описан процесс создания информационной системы по управлению запасами и закупками для интернет-магазина на основе хранилища данных. Важные свойства разработанного хранилища - наличие темпоральности и масштабируемости - являются преимуществами данной ИС, поскольку пользователям предоставляется наиболее актуальная и точная информация о текущем состоянии бизнеса.

Был проведен анализ существующих методологий по созданию хранилища данных, а именно: ХД в третьей нормальной форме Билла Инмона и Star Schema Ральфа Кимбалла. В качестве основных недостатков вышеперечисленных подходов были выделены соответственно сложность реализации и отсутствие масштабируемости. Далее была подробно рассмотрена современная методология Data Vault, в соответствии с которой выполнялась работа.

Были выполнены следующие задачи:

- Анализ источника данных с выявлением ключевых бизнес-процессов.

- Проектирование хранилища данных по методологии Data Vault.

- Создание ETL-процессов по очистке и загрузке данных из источника в хранилище.

- Построение виртуальной витрины данных.

- Разработка семантического слоя в приложении для бизнес-аналитики.

- Визуализация данных в отчетах.

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

Перечень сокращений

ИС - Информационная система

ХД - Хранилище данных

ETL - Extract Transform Load

3NF - Third Normal Form

CIF - Corporate Information Factory

BPMN - Business Process Model and Notation

ER - Entity Relationship

BI - Business Intelligence

JDBC - Java DataBase Connectivity

СУБД - Система управления базами данных

Список используемой литературы

1. Васильев Р.Б., Калянов Г.Н., Лёвочкина Г.А. Управление развитием информационных систем. -- М.: Горячая линия - Телеком, 2009.

2. Rainer, R. Introduction to Information System: Support and Transforming Business Fourth Edition. New Jersey: John Wiley and Sons, Inc., 2012.

3. Onlinecampus.bu.edu, "Management Information Systems and Decision-Making: An Overview". URL: https://onlinecampus.bu.edu/bbcswebdav/pid-843933-dt-content-rid-2221759_1/courses/13sprgmetad715_ol/module_03a/metad715_m03l02t02_managementinfosystems.html (дата обращения: 10.04.2016).

4. Devlin, B. "Temporal data reality: In BI, time is of the essence". URL: http://searchbusinessanalytics.techtarget.com/feature/Temporal-data-reality-In-BI-time-is-of-the-essence (дата обращения: 10.04.2016).

5. Inmon, W.H., Imhoff, C., Sousa R. Corporate Information Factory. New Jersey: Wiley, 2001.

6. Inmon W.H. "The evolution of corporate information factory". URL: http://www.ewsolutions.com/resource-center/rwds_folder/rwds-archives/rwds-2001-10/corporate-information-factory (дата обращения: 12.04.2016).

7. Centhala S. "Comparison of Bill Inmon and Ralph Kimball paradigm", 2009. URL: http://srinicenthala.blogspot.ru/2009/01/comparison-of-bill-inmon-and-ralph.html (дата обращения: 13.04.2016).

8. Kimball, R., Ross, M. The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling. New Jersey: Wiley, 2013.

9. Zentut.com, "Kimball vs. Inmon Data Warehouse Architectures". URL: http://www.zentut.com/data-warehouse/kimball-and-inmon-data-warehouse-architectures/ (дата обращения: 13.04.2016).

10. Breslin, M. "Data Warehousing Battle of Giants: Comparing the Basics of the Kimball and Inmon Models". URL: http://www.olap.it/Articoli/Battle%20of%20the%20giants%20-%20comparing%20Kimball%20and%20Inmon.pdf (дата обращения: 16.04.2016).

11. Linstedt, D. "Data Vault Series 1 - Overview", 2002. URL: http://tdan.com/data-vault-series-1-data-vault-overview/5054 (дата обращения: 17.04.2016).

12. Linstedt, D. Super Charge Your Data Warehouse. North Charslton: Createspace, 2011.

13. Linstedt, D. "Data Vault Introduction and Overview", 2013. URL: http://biblogg.no/2013/02/15/data-vault-introduction-and-overview/ (дата обращения: 17.04.2016).

14. Businessstudio.ru, "Нотация BPMN". URL: http://www.businessstudio.ru/wiki/docs/v4/doku.php/ru/csdesign/bpmodeling/bpmn_notation (дата обращения: 19.04.2016).

15. Tadviser.ru, "SAP Business Intelligence", 2015. URL: http://www.tadviser.ru/index.php/%D0%9F%D1%80%D0%BE%D0%B4%D1%83%D0%BA%D1%82:SAP_Business_Intelligence_(SAP_BI) (дата обращения: 28.04.2016).

Приложения

Приложение 1

SQL-скрипт создания и заполнения таблицы «Календарь»

Приложение 2

SQL-скрипт создания таблиц в хранилище данных Data Vault

create table HUB_Customer (

HUB_Customer_HSK char(32) not null,

cust_ID int,

HUB_Customer_LDTS datetime,

HUB_Customer_RSRC nvarchar(50),

PRIMARY KEY(HUB_Customer_HSK)

);

create table HUB_Company (

HUB_Company_HSK char(32) not null,

comp_ID int,

HUB_Company_LDTS datetime,

HUB_Company_RSRC nvarchar(50),

PRIMARY KEY(HUB_Company_HSK)

);

create table HUB_SalesContract (

HUB_SalesContract_HSK char(32) not null,

salesC_ID int,

HUB_SalesContract_LDTS datetime,

HUB_SalesContract_RSRC nvarchar(50),

PRIMARY KEY(HUB_SalesContract_HSK)

);

create table HUB_Warehouse (

HUB_Warehouse_HSK char(32) not null,

wareh_ID int,

HUB_Warehouse_LDTS datetime,

HUB_Warehouse_RSRC nvarchar(50),

PRIMARY KEY(HUB_Warehouse_HSK)

);

create table HUB_Supplier (

HUB_Supplier_HSK char(32) not null,

suppl_ID int,

HUB_Supplier_LDTS datetime,

HUB_Supplier_RSRC nvarchar(50),

PRIMARY KEY(HUB_Supplier_HSK)

);

create table HUB_Responsible (

HUB_Responsible_HSK char(32) not null,

resp_ID int,

HUB_Responsible_LDTS datetime,

HUB_Responsible_RSRC nvarchar(50),

PRIMARY KEY(HUB_Responsible_HSK)

);

create table HUB_SupplierContract (

HUB_SupplierContract_HSK char(32) not null,

supplC_ID int,

HUB_SupplierContract_LDTS datetime,

HUB_SupplierContract_RSRC nvarchar(50),

PRIMARY KEY(HUB_SupplierContract_HSK)

);

create table HUB_Product (

HUB_Product_HSK char(32) not null,

prod_ID int,

HUB_Product_LDTS datetime,

HUB_Product_RSRC nvarchar(50),

PRIMARY KEY(HUB_Product_HSK)

);

create table HUB_ProductLine (

HUB_ProductLine_HSK char(32) not null,

prodLine_ID int,

HUB_ProductLine_LDTS datetime,

HUB_ProductLine_RSRC nvarchar(50),

PRIMARY KEY(HUB_ProductLine_HSK)

);

create table HUB_ProductCategory (

HUB_ProductCategory_HSK char(32) not null,

prodCat_ID int,

HUB_ProductCategory_LDTS datetime,

HUB_ProductCategory_RSRC nvarchar(50),

PRIMARY KEY(HUB_ProductCategory_HSK)

);

create table HUB_Sales (

HUB_Sales_HSK char(32) not null,

sales_ID int,

HUB_Sales_LDTS datetime,

HUB_Sales_RSRC nvarchar(50),

PRIMARY KEY(HUB_Sales_HSK)

);

create table HUB_CustomerOrder (

HUB_CustomerOrder_HSK char(32) not null,

custOrd_ID int,

HUB_CustomerOrder_LDTS datetime,

HUB_CustomerOrder_RSRC nvarchar(50),

PRIMARY KEY(HUB_CustomerOrder_HSK)

);

create table HUB_SupplierOrder (

HUB_SupplierOrder_HSK char(32) not null,

supplOrd_ID int,

HUB_SupplierOrder_LDTS datetime,

HUB_SupplierOrder_RSRC nvarchar(50),

PRIMARY KEY(HUB_SupplierOrder_HSK)

);

create table LNK_Sales (

LNK_Sales_HSK char(32) not null,

LNK_Sales_LDTS datetime,

LNK_Sales_RSRC nvarchar(50),

HUB_Sales_HSK char(32) not null,

HUB_Company_HSK char(32) not null,

HUB_Customer_HSK char(32) not null,

HUB_Warehouse_HSK char(32) not null,

HUB_SalesContract_HSK char(32) not null,

HUB_Responsible_HSK char(32) not null

PRIMARY KEY (LNK_Sales_HSK)

);

create table LNK_CustomerOrder (

LNK_CustomerOrder_HSK char(32) not null,

LNK_CustomerOrder_LDTS datetime,

LNK_CustomerOrder_RSRC nvarchar(50),

HUB_CustomerOrder_HSK char(32) not null,

HUB_Company_HSK char(32) not null,

HUB_Customer_HSK char(32) not null,

HUB_Warehouse_HSK char(32) not null,

HUB_SalesContract_HSK char(32) not null,

HUB_Responsible_HSK char(32) not null

PRIMARY KEY (LNK_CustomerOrder_HSK)

);

create table LNK_SupplierOrder (

LNK_SupplierOrder_HSK char(32) not null,

LNK_SupplierOrder_LDTS datetime,

LNK_SupplierOrder_RSRC nvarchar(50),

HUB_SupplierOrder_HSK char(32) not null,

HUB_Company_HSK char(32) not null,

HUB_Supplier_HSK char(32) not null,

HUB_Warehouse_HSK char(32) not null,

HUB_SupplierContract_HSK char(32) not null,

HUB_Responsible_HSK char(32) not null

PRIMARY KEY (LNK_SupplierOrder_HSK)

);

create table LNK_Sales_Details (

LNK_Sales_Details_HSK char(32) not null,

LNK_Sales_Details_LDTS datetime,

LNK_Sales_Details_RSRC nvarchar(50),

HUB_Sales_HSK char(32) not null,

HUB_Product_HSK char(32) not null,

salesDID int,

PRIMARY KEY (LNK_Sales_Details_HSK)

);

create table LNK_CustomerOrder_Details (

LNK_CustomerOrder_Details_HSK char(32) not null,

LNK_CustomerOrder_Details_LDTS datetime,

LNK_CustomerOrder_Details_RSRC nvarchar(50),

HUB_CustomerOrder_HSK char(32) not null,

HUB_Product_HSK char(32) not null,

custODID int,

PRIMARY KEY (LNK_CustomerOrder_Details_HSK)

);

create table LNK_SupplierOrder_Details (

LNK_SupplierOrder_Details_HSK char(32) not null,

LNK_SupplierOrder_Details_LDTS datetime,

LNK_SupplierOrder_Details_RSRC nvarchar(50),

HUB_SupplierOrder_HSK char(32) not null,

HUB_Product_HSK char(32) not null,

suppODID int,

PRIMARY KEY (LNK_SupplierOrder_Details_HSK)

);

create table LNK_Product_PLine (

LNK_Product_PLine_HSK char(32) not null,

LNK_Product_PLine_LDTS datetime,

LNK_Product_PLine_RSRC nvarchar(50),

HUB_Product_HSK char(32) not null,

HUB_ProductLine_HSK char(32) not null,

PRIMARY KEY (LNK_Product_PLine_HSK)

);

create table LNK_PLine_PCategory (

LNK_PLine_PCategory_HSK char(32) not null,

LNK_PLine_PCategory_LDTS datetime,

LNK_PLine_PCategory_RSRC nvarchar(50),

HUB_ProductLine_HSK char(32) not null,

HUB_ProductCategory_HSK char(32) not null,

PRIMARY KEY (LNK_PLine_PCategory_HSK)

);

create table LNK_Company_Warehouse (

LNK_Company_Warehouse_HSK char(32) not null,

LNK_Company_Warehouse_LDTS datetime,

LNK_Company_Warehouse_RSRC nvarchar(50),

HUB_Company_HSK char(32) not null,

HUB_Warehouse_HSK char(32) not null,

PRIMARY KEY (LNK_Company_Warehouse_HSK)

);

create table LNK_Company_Contract (

LNK_Company_Contract_HSK char(32) not null,

LNK_Company_Contract_LDTS datetime,

LNK_Company_Contract_RSRC nvarchar(50),

HUB_Company_HSK char(32) not null,

HUB_SalesContract_HSK char(32) not null,

PRIMARY KEY (LNK_Company_Contract_HSK)

);

create table LNK_Supplier_Contract (

LNK_Supplier_Contract_HSK char(32) not null,

LNK_Supplier_Contract_LDTS datetime,

LNK_Supplier_Contract_RSRC nvarchar(50),

HUB_Supplier_HSK char(32) not null,

HUB_SupplierContract_HSK char(32) not null,

PRIMARY KEY (LNK_Supplier_Contract_HSK)

);

create table SAT_Product (

ProductName nvarchar(255) not null,

VendorCode nvarchar(50) not null,

Producer nvarchar(50) not null,

Price real not null,

HUB_Product_HSK char(32) not null,

SAT_Product_LDTS datetime not null,

SAT_Product_RSRC nvarchar(50),

SAT_Product_HDIFF char(32),

PRIMARY KEY (HUB_Product_HSK, SAT_Product_LDTS),

FOREIGN KEY (HUB_Product_HSK) REFERENCES HUB_Product (HUB_Product_HSK)

);

create table SAT_ProductLine (

ProductLineName nvarchar(100) not null,

HUB_ProductLine_HSK char(32) not null,

SAT_ProductLine_LDTS datetime not null,

SAT_ProductLine_RSRC nvarchar(50),

SAT_ProductLine_HDIFF char(32),

PRIMARY KEY (HUB_ProductLine_HSK, SAT_ProductLine_LDTS),

FOREIGN KEY (HUB_ProductLine_HSK) REFERENCES HUB_ProductLine (HUB_ProductLine_HSK)

);

create table SAT_ProductCategory (

ProductCategoryName nvarchar(50) not null,

HUB_ProductCategory_HSK char(32) not null,

SAT_ProductCategory_LDTS datetime not null,

SAT_ProductCategory_RSRC nvarchar(50),

SAT_ProductCategory_HDIFF char(32),

PRIMARY KEY (HUB_ProductCategory_HSK, SAT_ProductCategory_LDTS),

FOREIGN KEY (HUB_ProductCategory_HSK) REFERENCES HUB_ProductCategory (HUB_ProductCategory_HSK)

);

create table SAT_Responsible (

ResponsibleCode nvarchar(50) not null,

ResponsibleName nvarchar(50) not null,

Email nvarchar(50) not null,

Telephone nvarchar(20) not null,

HUB_Responsible_HSK char(32) not null,

SAT_Responsible_LDTS datetime not null,

SAT_Responsible_RSRC nvarchar(50),

SAT_Responsible_HDIFF char(32),

PRIMARY KEY (HUB_Responsible_HSK, SAT_Responsible_LDTS),

FOREIGN KEY (HUB_Responsible_HSK) REFERENCES HUB_Responsible (HUB_Responsible_HSK)

);

create table SAT_Supplier (

SupplierCode numeric(18) not null,

SupplierName nvarchar(50) not null,

Address nvarchar(100) not null,

INN numeric(32) not null,

HUB_Supplier_HSK char(32) not null,

SAT_Supplier_LDTS datetime not null,

SAT_Supplier_RSRC nvarchar(50),

SAT_Supplier_HDIFF char(32),

PRIMARY KEY (HUB_Supplier_HSK, SAT_Supplier_LDTS),

FOREIGN KEY (HUB_Supplier_HSK) REFERENCEs HUB_Supplier (HUB_Supplier_HSK)

);

create table SAT_SupplierContract (

ContractNumber nvarchar(50) not null,

Date date not null,

FinishDate date,

HUB_SupplierContract_HSK char(32) not null,

SAT_SupplierContract_LDTS datetime not null,

SAT_SupplierContract_RSRC nvarchar(50),

SAT_SupplierContract_HDIFF char(32),

PRIMARY KEY (HUB_SupplierContract_HSK, SAT_SupplierContract_LDTS),

FOREIGN KEY (HUB_SupplierContract_HSK) REFERENCEs HUB_SupplierContract (HUB_SupplierContract_HSK)

);

create table SAT_SalesContract (

ContractNumber nvarchar(50) not null,

Date date not null,

FinishDate date not null,

HUB_SalesContract_HSK char(32) not null,

SAT_SalesContract_LDTS datetime not null,

SAT_SalesContract_RSRC nvarchar(50),

SAT_SalesContract_HDIFF char(32),

PRIMARY KEY (HUB_SalesContract_HSK, SAT_SalesContract_LDTS),

FOREIGN KEY (HUB_SalesContract_HSK) REFERENCEs HUB_SalesContract (HUB_SalesContract_HSK)

);

create table SAT_Company (

CompanyCode nvarchar(50) not null,

CompanyName nvarchar(50) not null,

Address nvarchar(100) not null,

HUB_Company_HSK char(32) not null,

SAT_Company_LDTS datetime not null,

SAT_Company_RSRC nvarchar(50),

SAT_Company_HDIFF char(32),

PRIMARY KEY (HUB_Company_HSK, SAT_Company_LDTS),

FOREIGN KEY (HUB_Company_HSK) REFERENCEs HUB_Company (HUB_Company_HSK)

);

create table SAT_Warehouse (

WarehouseCode nvarchar(50) not null,

WarehouseName nvarchar(50) not null,

WarehouseType nvarchar(20) not null,

HUB_Warehouse_HSK char(32) not null,

SAT_Warehouse_LDTS datetime not null,

SAT_Warehouse_RSRC nvarchar(50),

SAT_Warehouse_HDIFF char(32),

PRIMARY KEY (HUB_Warehouse_HSK, SAT_Warehouse_LDTS),

FOREIGN KEY (HUB_Warehouse_HSK) REFERENCEs HUB_Warehouse (HUB_Warehouse_HSK)

);

create table SAT_Customer (

CustomerCode numeric(18) not null,

CustomerName nvarchar(50) not null,

Address nvarchar(100) not null,

Email nvarchar(50) not null,

HUB_Customer_HSK char(32) not null,

SAT_Customer_LDTS datetime not null,

SAT_Customer_RSRC nvarchar(50),

SAT_Customer_HDIFF char(32),

PRIMARY KEY (HUB_Customer_HSK, SAT_Customer_LDTS),

FOREIGN KEY (HUB_Customer_HSK) REFERENCEs HUB_Customer (HUB_Customer_HSK)

);

create table SAT_CustomerOrder (

CustomerOrderNumber numeric(18) not null,

OrderDate date not null,

HUB_CustomerOrder_HSK char(32) not null,

SAT_CustomerOrder_LDTS datetime not null,

SAT_CustomerOrder_RSRC nvarchar(50),

SAT_CustomerOrder_HDIFF char(32),

PRIMARY KEY (HUB_CustomerOrder_HSK, SAT_CustomerOrder_LDTS),

FOREIGN KEY (HUB_CustomerOrder_HSK) REFERENCEs HUB_CustomerOrder (HUB_CustomerOrder_HSK)

);

create table SAT_SupplierOrder (

SupplierOrderNumber numeric(18) not null,

OrderDate date not null,

HUB_SupplierOrder_HSK char(32) not null,

SAT_SupplierOrder_LDTS datetime not null,

SAT_SupplierOrder_RSRC nvarchar(50),

SAT_SupplierOrder_HDIFF char(32),

PRIMARY KEY (HUB_SupplierOrder_HSK, SAT_SupplierOrder_LDTS),

FOREIGN KEY (HUB_SupplierOrder_HSK) REFERENCEs HUB_SupplierOrder (HUB_SupplierOrder_HSK)

);

create table SAT_Sales (

SalesDocNumber numeric(18) not null,

DocumentDate date not null,

HUB_Sales_HSK char(32) not null,

SAT_Sales_LDTS datetime not null,

SAT_Sales_RSRC nvarchar(50),

SAT_Sales_HDIFF char(32),

PRIMARY KEY (HUB_Sales_HSK, SAT_Sales_LDTS),

FOREIGN KEY (HUB_Sales_HSK) REFERENCEs HUB_Sales (HUB_Sales_HSK)

);

create table SAT_Sales_Details (

Quantity numeric(18) not null,

Price real not null,

Summ real not null,

LNK_Sales_Details_HSK char(32) not null,

SAT_Sales_Details_LDTS datetime not null,

SAT_Sales_Details_RSRC nvarchar(50),

SAT_Sales_Details_HDIFF char(32),

PRIMARY KEY (LNK_Sales_Details_HSK, SAT_Sales_Details_LDTS),

FOREIGN KEY (LNK_Sales_Details_HSK) REFERENCEs LNK_Sales_Details (LNK_Sales_Details_HSK)

);

create table SAT_CustomerOrder_Details (

Quantity numeric(18) not null,

Price real not null,

Summ real not null,

LNK_CustomerOrder_Details_HSK char(32) not null,

SAT_CustomerOrder_Details_LDTS datetime not null,

SAT_CustomerOrder_Details_RSRC nvarchar(50),

SAT_CustomerOrder_Details_HDIFF char(32),

PRIMARY KEY (LNK_CustomerOrder_Details_HSK, SAT_CustomerOrder_Details_LDTS),

FOREIGN KEY (LNK_CustomerOrder_Details_HSK) REFERENCEs LNK_CustomerOrder_Details (LNK_CustomerOrder_Details_HSK)

);

create table SAT_SupplierOrder_Details (

Quantity numeric(18) not null,

Price real not null,

Summ real not null,

LNK_SupplierOrder_Details_HSK char(32) not null,

SAT_SupplierOrder_Details_LDTS datetime not null,

SAT_SupplierOrder_Details_RSRC nvarchar(50),

SAT_SupplierOrder_Details_HDIFF char(32),

PRIMARY KEY (LNK_SupplierOrder_Details_HSK, SAT_SupplierOrder_Details_LDTS),

FOREIGN KEY (LNK_SupplierOrder_Details_HSK) REFERENCEs LNK_SupplierOrder_Details (LNK_SupplierOrder_Details_HSK)

);

Приложение 3

SQL-скрипт создания представлений

USE DWH_DataVault go

CREATE VIEW dimCompany AS SELECT hc.HUB_Company_HSK AS CompanyHSK,sc.CompanyCode,sc.CompanyName,sc.Address,hc.comp_ID AS CompanyID

FROM HUB_Company hc, SAT_Company sc

WHERE hc.HUB_Company_HSK=sc.HUB_Company_HSK AND sc.SAT_Company_LDTS = (SELECT

MAX(sc2.SAT_Company_LDTS) FROM SAT_Company sc2 WHERE sc.HUB_Company_HSK=sc2.HUB_Company_HSK);

CREATE VIEW dimProduct AS SELECT hp.HUB_Product_HSK AS ProductHSK, lpp.HUB_ProductLine_HSK AS ProductLineHSK, sp.ProductName, sp.VendorCode,

sp.Producer, sp.Price, hp.prod_ID AS ProductID, hpl.prodLine_ID AS ProductLineID

FROM HUB_Product hp, SAT_Product sp, LNK_Product_PLine lpp, HUB_ProductLine hpl

WHERE hpl.HUB_ProductLine_HSK=lpp.HUB_ProductLine_HSK AND hp.HUB_Product_HSK=sp.HUB_Product_HSK AND lpp.HUB_Product_HSK=hp.HUB_Product_HSK AND sp.SAT_Product_LDTS = (SELECT

MAX(sp2.SAT_Product_LDTS) FROM SAT_Product sp2 WHERE sp.HUB_Product_HSK=sp2.HUB_Product_HSK) AND lpp.LNK_Product_PLine_LDTS = (SELECT

MAX(lpp2.LNK_Product_PLine_LDTS) FROM LNK_Product_PLine lpp2 WHERE lpp.HUB_Product_HSK=lpp2.HUB_Product_HSK);

CREATE VIEW dimCustomer AS SELECT hc.HUB_Customer_HSK AS CustomerHSK, sc.CustomerCode,sc.CustomerName,sc.Address,sc.Email,hc.cust_ID AS CustomerID

FROM HUB_Customer hc, SAT_Customer sc

WHERE hc.HUB_Customer_HSK=sc.HUB_Customer_HSK AND sc.SAT_Customer_LDTS = (SELECT

MAX (sc2.SAT_Customer_LDTS) FROM SAT_Customer sc2 WHERE sc.HUB_Customer_HSK=sc2.HUB_Customer_HSK);

CREATE VIEW dimProductCategory AS SELECT hpc.HUB_ProductCategory_HSK as ProductCategoryHSK,spc.ProductCategoryName,hpc.prodCat_ID as ProductCategoryID

FROM HUB_ProductCategory hpc,SAT_ProductCategory spc

WHERE hpc.HUB_ProductCategory_HSK=spc.HUB_ProductCategory_HSK AND spc.SAT_ProductCategory_LDTS = (SELECT

MAX (spc2.SAT_ProductCategory_LDTS) FROM SAT_ProductCategory spc2 WHERE spc.HUB_ProductCategory_HSK=spc2.HUB_ProductCategory_HSK);

CREATE VIEW dimProductLine AS SELECT hpl.HUB_ProductLine_HSK AS ProductLineHSK, lpp.HUB_ProductCategory_HSK AS ProductCategoryHSK, spl.ProductLineName,

hpl.prodLine_ID AS ProductLineID, hpc.prodCat_ID AS ProductCategoryID

FROM HUB_ProductLine hpl, SAT_ProductLine spl, LNK_PLine_PCategory lpp, HUB_ProductCategory hpc

WHERE hpc.HUB_ProductCategory_HSK=lpp.HUB_ProductCategory_HSK AND hpl.HUB_ProductLine_HSK=spl.HUB_ProductLine_HSK AND hpl.HUB_ProductLine_HSK=lpp.HUB_ProductLine_HSK AND spl.SAT_ProductLine_LDTS = (SELECT

MAX(spl2.SAT_ProductLine_LDTS) FROM SAT_ProductLine spl2 WHERE spl.HUB_ProductLine_HSK=spl2.HUB_ProductLine_HSK) AND lpp.LNK_PLine_PCategory_LDTS = (SELECT

MAX(lpp2.LNK_PLine_PCategory_LDTS) FROM LNK_PLine_PCategory lpp2 WHERE lpp.HUB_ProductLine_HSK=lpp2.HUB_ProductLine_HSK);

CREATE VIEW dimResponsible AS SELECT hr.HUB_Responsible_HSK AS ResponsibleHSK,sr.ResponsibleCode,sr.ResponsibleName,sr.Email,sr.Telephone,hr.resp_ID AS ResponsibleID

FROM HUB_Responsible hr, SAT_Responsible sr

WHERE hr.HUB_Responsible_HSK=sr.HUB_Responsible_HSK AND sr.SAT_Responsible_LDTS = (SELECT

MAX(sr2.SAT_Responsible_LDTS) FROM SAT_Responsible sr2 WHERE sr.HUB_Responsible_HSK=sr2.HUB_Responsible_HSK);

CREATE VIEW dimWarehouse AS SELECT hw.HUB_Warehouse_HSK AS WarehouseHSK,lcw.HUB_Company_HSK AS CompanyHSK,sw.WarehouseCode,sw.WarehouseName,sw.WarehouseType,

hw.wareh_ID AS WarehouseID,hc.comp_ID as CompanyID

FROM HUB_Warehouse hw, LNK_Company_Warehouse lcw, SAT_Warehouse sw, HUB_Company hc

WHERE hc.HUB_Company_HSK=lcw.HUB_Company_HSK AND hw.HUB_Warehouse_HSK=sw.HUB_Warehouse_HSK AND hw.HUB_Warehouse_HSK=lcw.HUB_Warehouse_HSK AND sw.SAT_Warehouse_LDTS = (SELECT

MAX(sw2.SAT_Warehouse_LDTS) FROM SAT_Warehouse sw2 WHERE sw.HUB_Warehouse_HSK=sw2.HUB_Warehouse_HSK) AND lcw.LNK_Company_Warehouse_LDTS = (SELECT

MAX(lcw2.LNK_Company_Warehouse_LDTS) FROM LNK_Company_Warehouse lcw2 WHERE lcw.HUB_Warehouse_HSK=lcw2.HUB_Warehouse_HSK);

CREATE VIEW dimSupplier AS SELECT hs.HUB_Supplier_HSK AS SupplierHSK,ss.SupplierCode,ss.SupplierName,ss.Address,ss.INN,hs.suppl_ID AS SupplierID

FROM HUB_Supplier hs, SAT_Supplier ss

WHERE hs.HUB_Supplier_HSK=ss.HUB_Supplier_HSK AND ss.SAT_Supplier_LDTS = (SELECT

MAX(ss2.SAT_Supplier_LDTS) FROM SAT_Supplier ss2 WHERE ss.HUB_Supplier_HSK=ss2.HUB_Supplier_HSK);

CREATE VIEW dimSalesContract AS SELECT hsc.HUB_SalesContract_HSK AS SalesContractHSK,lcc.HUB_Company_HSK AS CompanyHSK,ssc.ContractNumber,ssc.Date,ssc.FinishDate,

hsc.salesC_ID AS SalesContractID, hc.comp_ID as CompanyID

FROM HUB_SalesContract hsc, LNK_Company_Contract lcc, SAT_SalesContract ssc, HUB_Company hc

WHERE hc.HUB_Company_HSK=lcc.HUB_Company_HSK AND hsc.HUB_SalesContract_HSK=ssc.HUB_SalesContract_HSK AND hsc.HUB_SalesContract_HSK=lcc.HUB_SalesContract_HSK AND ssc.SAT_SalesContract_LDTS = (SELECT

MAX(ssc2.SAT_SalesContract_LDTS) FROM SAT_SalesContract ssc2 WHERE ssc.HUB_SalesContract_HSK=ssc2.HUB_SalesContract_HSK) AND lcc.LNK_Company_Contract_LDTS = (SELECT

MAX(lcc2.LNK_Company_Contract_LDTS) FROM LNK_Company_Contract lcc2 WHERE lcc.HUB_SalesContract_HSK=lcc2.HUB_SalesContract_HSK);

CREATE VIEW dimSupplierContract AS SELECT hsc.HUB_SupplierContract_HSK AS SupplierContractHSK,lsc.HUB_Supplier_HSK AS SupplierHSK,ssc.ContractNumber,ssc.Date,ssc.FinishDate,

hsc.supplC_ID AS SupplierContractID,hs.suppl_ID as SupplierID

FROM HUB_SupplierContract hsc, LNK_Supplier_Contract lsc, SAT_SupplierContract ssc, HUB_Supplier hs

WHERE hs.HUB_Supplier_HSK=lsc.HUB_Supplier_HSK AND hsc.HUB_SupplierContract_HSK=ssc.HUB_SupplierContract_HSK AND hsc.HUB_SupplierContract_HSK=lsc.HUB_SupplierContract_HSK AND ssc.SAT_SupplierContract_LDTS = (SELECT

MAX(ssc2.SAT_SupplierContract_LDTS) FROM SAT_SupplierContract ssc2 WHERE ssc.HUB_SupplierContract_HSK=ssc2.HUB_SupplierContract_HSK) AND lsc.LNK_Supplier_Contract_LDTS = (SELECT

MAX(lsc2.LNK_Supplier_Contract_LDTS) FROM LNK_Supplier_Contract lsc2 WHERE lsc.HUB_SupplierContract_HSK=lsc2.HUB_SupplierContract_HSK);

CREATE VIEW factSales AS SELECT hs.HUB_Sales_HSK AS SalesHSK, lsd.LNK_Sales_Details_HSK AS SalesDetailsHSK,ls.HUB_Company_HSK AS CompanyHSK,

ls.HUB_Customer_HSK AS CustomerHSK,ls.HUB_Warehouse_HSK as WarehouseHSK,ls.HUB_SalesContract_HSK as SalesContractHSK,

ls.HUB_Responsible_HSK AS ResponsibleHSK,lsd.HUB_Product_HSK AS ProductHSK,ss.DocumentDate,ssd.Quantity,ssd.Price,ssd.Summ,hs.sales_ID AS SalesID,

lsd.salesDID AS SalesDetailsID,hp.prod_ID AS ProductID

FROM HUB_Sales hs, LNK_Sales_Details lsd, SAT_Sales ss, SAT_Sales_Details ssd, LNK_Sales ls, HUB_Product hp

WHERE hp.HUB_Product_HSK=lsd.HUB_Product_HSK AND hs.HUB_Sales_HSK=ss.HUB_Sales_HSK AND hs.HUB_Sales_HSK=lsd.HUB_Sales_HSK AND ssd.LNK_Sales_Details_HSK=lsd.LNK_Sales_Details_HSK AND

ls.HUB_Sales_HSK=hs.HUB_Sales_HSK AND ss.SAT_Sales_LDTS = (SELECT MAX(ss2.SAT_Sales_LDTS) FROM SAT_Sales ss2 WHERE ss.HUB_Sales_HSK=ss2.HUB_Sales_HSK) AND

ssd.SAT_Sales_Details_LDTS = (SELECT MAX(ssd2.SAT_Sales_Details_LDTS) FROM SAT_Sales_Details ssd2 WHERE ssd.LNK_Sales_Details_HSK=ssd2.LNK_Sales_Details_HSK) AND

ls.LNK_Sales_LDTS = (SELECT MAX(ls2.LNK_Sales_LDTS) FROM LNK_Sales ls2 WHERE ls.HUB_Sales_HSK=ls2.HUB_Sales_HSK) AND

lsd.LNK_Sales_Details_LDTS = (SELECT MAX(lsd2.LNK_Sales_Details_LDTS) FROM LNK_Sales_Details lsd2 WHERE lsd.LNK_Sales_Details_HSK = lsd2.LNK_Sales_Details_HSK);

CREATE VIEW factCustomerOrder AS SELECT hco.HUB_CustomerOrder_HSK AS CustomerOrderHSK, lcod.LNK_CustomerOrder_Details_HSK as CustomerOrderDetailsHSK, lco.HUB_Company_HSK AS CompanyHSK,

lco.HUB_Customer_HSK AS CustomerHSK, lco.HUB_Warehouse_HSK as WarehouseHSK, lco.HUB_SalesContract_HSK AS SalesContractHSK, lco.HUB_Responsible_HSK AS ResponsibleHSK,

lcod.HUB_Product_HSK as ProductHSK, sco.OrderDate, scod.Quantity, scod.Price, scod.Summ,

hco.custOrd_ID as CustomerOrderID, lcod.custODID as CustomerOrderDetailsID, hp.prod_ID as ProductID

FROM HUB_CustomerOrder hco, LNK_CustomerOrder lco, LNK_CustomerOrder_Details lcod, SAT_CustomerOrder sco, SAT_CustomerOrder_Details scod, HUB_Product hp

WHERE hp.HUB_Product_HSK=lcod.HUB_Product_HSK AND hco.HUB_CustomerOrder_HSK=sco.HUB_CustomerOrder_HSK AND hco.HUB_CustomerOrder_HSK=lco.HUB_CustomerOrder_HSK AND

lcod.LNK_CustomerOrder_Details_HSK=scod.LNK_CustomerOrder_Details_HSK AND hco.HUB_CustomerOrder_HSK=lcod.HUB_CustomerOrder_HSK AND

sco.SAT_CustomerOrder_LDTS = (SELECT MAX(sco2.SAT_CustomerOrder_LDTS) FROM SAT_CustomerOrder sco2 WHERE sco.HUB_CustomerOrder_HSK=sco2.HUB_CustomerOrder_HSK) AND

scod.SAT_CustomerOrder_Details_LDTS = (SELECT MAX(scod2.SAT_CustomerOrder_Details_LDTS) FROM SAT_CustomerOrder_Details scod2 WHERE scod.LNK_CustomerOrder_Details_HSK=scod2.LNK_CustomerOrder_Details_HSK) AND

lco.LNK_CustomerOrder_LDTS = (SELECT MAX(lco2.LNK_CustomerOrder_LDTS) FROM LNK_CustomerOrder lco2 WHERE lco.HUB_CustomerOrder_HSK=lco2.HUB_CustomerOrder_HSK) AND

lcod.LNK_CustomerOrder_Details_LDTS = (SELECT MAX(lcod2.LNK_CustomerOrder_Details_LDTS) FROM LNK_CustomerOrder_Details lcod2 WHERE lcod.HUB_CustomerOrder_HSK=lcod2.HUB_CustomerOrder_HSK);

CREATE VIEW factSupplierOrder AS SELECT hso.HUB_SupplierOrder_HSK AS SupplierOrderHSK, lsod.LNK_SupplierOrder_Details_HSK as SupplierOrderDetailsHSK, lso.HUB_Company_HSK AS CompanyHSK,

lso.HUB_Supplier_HSK AS SupplierHSK, lso.HUB_Warehouse_HSK as WarehouseHSK, lso.HUB_SupplierContract_HSK AS SupplierContractHSK, lso.HUB_Responsible_HSK AS ResponsibleHSK,

lsod.HUB_Product_HSK as ProductHSK, sso.OrderDate, ssod.Quantity, ssod.Price, ssod.Summ,

hso.supplOrd_ID as SupplierOrderID, lsod.suppODID as SupplierOrderDetailsID, hp.prod_ID as ProductID

FROM HUB_SupplierOrder hso, LNK_SupplierOrder lso, LNK_SupplierOrder_Details lsod, SAT_SupplierOrder sso, SAT_SupplierOrder_Details ssod, HUB_Product hp

WHERE hp.HUB_Product_HSK=lsod.HUB_Product_HSK AND hso.HUB_SupplierOrder_HSK=sso.HUB_SupplierOrder_HSK AND hso.HUB_SupplierOrder_HSK=lso.HUB_SupplierOrder_HSK AND

lsod.LNK_SupplierOrder_Details_HSK=ssod.LNK_SupplierOrder_Details_HSK AND hso.HUB_SupplierOrder_HSK=lsod.HUB_SupplierOrder_HSK AND

sso.SAT_SupplierOrder_LDTS = (SELECT MAX(sso2.SAT_SupplierOrder_LDTS) FROM SAT_SupplierOrder sso2 WHERE sso.HUB_SupplierOrder_HSK=sso2.HUB_SupplierOrder_HSK) AND

ssod.SAT_SupplierOrder_Details_LDTS = (SELECT MAX(ssod2.SAT_SupplierOrder_Details_LDTS) FROM SAT_SupplierOrder_Details ssod2 WHERE ssod.LNK_SupplierOrder_Details_HSK=ssod2.LNK_SupplierOrder_Details_HSK) AND

lso.LNK_SupplierOrder_LDTS = (SELECT MAX(lso2.LNK_SupplierOrder_LDTS) FROM LNK_SupplierOrder lso2 WHERE lso.HUB_SupplierOrder_HSK=lso2.HUB_SupplierOrder_HSK) AND

lsod.LNK_SupplierOrder_Details_LDTS = (SELECT MAX(lsod2.LNK_SupplierOrder_Details_LDTS) FROM LNK_SupplierOrder_Details lsod2 WHERE lsod.HUB_SupplierOrder_HSK=lsod2.HUB_SupplierOrder_HSK);

CREATE VIEW dimSalesDocs AS SELECT hs.HUB_Sales_HSK AS SalesHSK,

ss.SalesDocNumber,ss.DocumentDate

FROM HUB_Sales hs, SAT_Sales ss

WHERE hs.HUB_Sales_HSK=ss.HUB_Sales_HSK AND

hs.HUB_Sales_HSK=ss.HUB_Sales_HSK AND ss.SAT_Sales_LDTS =

(SELECT MAX(ss2.SAT_Sales_LDTS) FROM SAT_Sales ss2 WHERE ss.HUB_Sales_HSK=ss2.HUB_Sales_HSK);

CREATE VIEW dimCustOrderDocs AS SELECT hc.HUB_CustomerOrder_HSK AS CustomerOrderHSK,

sc.CustomerOrderNumber,sc.OrderDate

FROM HUB_CustomerOrder hc, SAT_CustomerOrder sc

WHERE hc.HUB_CustomerOrder_HSK=sc.HUB_CustomerOrder_HSK AND

hc.HUB_CustomerOrder_HSK=sc.HUB_CustomerOrder_HSK AND sc.SAT_CustomerOrder_LDTS =

(SELECT MAX(sc2.SAT_CustomerOrder_LDTS) FROM SAT_CustomerOrder sc2 WHERE sc.HUB_CustomerOrder_HSK=sc2.HUB_CustomerOrder_HSK);

CREATE VIEW dimSuppOrderDocs AS SELECT hs.HUB_SupplierOrder_HSK AS SupplierOrderHSK,

ss.SupplierOrderNumber,ss.OrderDate

FROM HUB_SupplierOrder hs, SAT_SupplierOrder ss

WHERE hs.HUB_SupplierOrder_HSK=ss.HUB_SupplierOrder_HSK AND

hs.HUB_SupplierOrder_HSK=ss.HUB_SupplierOrder_HSK AND ss.SAT_SupplierOrder_LDTS =

(SELECT MAX(ss2.SAT_SupplierOrder_LDTS) FROM SAT_SupplierOrder ss2 WHERE ss.HUB_SupplierOrder_HSK=ss2.HUB_SupplierOrder_HSK);

Размещено на Allbest.ru


Подобные документы

  • Хранение и обработка данных. Компоненты системы баз данных. Физическая структура данных. Создание таблиц в MS Access. Загрузка данных, запросы к базе данных. Разработка информационной системы с применением системы управления базами данных MS Access.

    курсовая работа [694,0 K], добавлен 17.12.2016

  • Программные продукты компании Microsoft: Access, Visual FoxPro7.0, dBASE. Возможности интеграции, совместной работы и использования данных. Системы управления базами данных (СУБД), их основные функции и компоненты. Работа с данными в режиме таблицы.

    курсовая работа [805,5 K], добавлен 15.12.2010

  • Система управления базами данных задач и составляющих их процессов предприятия. Требования к информационной системе. Состав запросов к базе данных. Связи и отношения между информационными объектами. Алгоритмы работы и архитектура информационной системы.

    курсовая работа [727,5 K], добавлен 02.02.2014

  • Понятие автоматизированной информационной системы, ее структурные компоненты и классификация. Основные функции систем управления процессом. Применение базы данных процесса для мониторинга и управления. Доступ к базе данных процесса, запросы и протоколы.

    реферат [457,1 K], добавлен 18.12.2012

  • Проектирование приложения для автоматизации процесса страхования, которое поможет страховым агентам сократить время на работу с документацией. Разработка прикладной программы доступа к базе данных в среде Delphi. Система управления базами данных.

    курсовая работа [1,2 M], добавлен 14.01.2015

  • Обслуживание двух встречных потоков информации. Структура информационных систем. Разработка структуры базы данных. Режимы работы с базами данных. Четыре основных компонента системы поддержки принятия решений. Выбор системы управления баз данных.

    курсовая работа [772,0 K], добавлен 21.04.2016

  • Рынок систем управления электрическими котлами. Архитектура информационной системы управления и обслуживания сети котельных на примере ОАО "РЖД". Технические требования, цели и задачи для проектирования. Разработка базы данных информационной системы.

    дипломная работа [2,4 M], добавлен 19.01.2017

  • Определение программы управления корпоративными данными, ее цели и предпосылки внедрения. Обеспечение качества данных. Использование аналитических инструментов на базе технологий Big Data и Smart Data. Фреймворк управления корпоративными данными.

    курсовая работа [913,0 K], добавлен 24.08.2017

  • Понятие экономической информационной системы. Функциональные особенности и классификационные признаки. Электронный архив как ядро информационной системы и централизованное хранилище документов. Способы создания таблиц, форм и диаграмм базы данных.

    контрольная работа [2,4 M], добавлен 14.07.2009

  • Разработка информационной системы "Библиотека Дорам" в архитектуре клиент - сервер; управление реляционными базами данных (СУБД) Microsoft SQL Server. Визуальная среда программирования и технические средства. Разработка структурированного приложения.

    курсовая работа [3,2 M], добавлен 12.01.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.