datubaze.files.wordpress.com · web viewdarba ietvaros tiks apskatīts iedomāts uzņēmums x,...

52
Multibāzu sistēma Izpildīja: Rolands Krumbergs

Upload: others

Post on 28-Feb-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

Multibāzu sistēma

Izpildīja: Rolands Krumbergs

Page 2: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

SATURS

UZDEVUMA NOSTĀDNE..........................................................................................3

1. PROBLĒMSFĒRAS APRAKSTS.........................................................................4

1.1. Mārketinga nodaļas datu shēma......................................................................5

1.2. Kases aparātu sistēmas datu shēma.................................................................6

1.3. Noliktavas datu shēma.....................................................................................7

2. SHĒMU INTEGRĀCIJAS ANALĪZE...................................................................8

3. SQL SERVER INTEGRATION SERVICES IZMANTOŠANA........................18

3.1. Vadības plūsmas definēšana..........................................................................20

3.2. Datu izgūšana no faila...................................................................................20

3.3. Datu izgūšana no Excel faila.........................................................................23

3.4. Datu izgūšana no MS SQL datubāzes...........................................................25

3.5. Datu izvade SQL Server mākoņpakalpojumā Windows Azure....................31

3.5.1. Kļūdu tabulas transformēšana................................................................32

3.5.2. 1:1 datu konvertēšana.............................................................................37

3.5.3. Klientu datu konvertēšana......................................................................37

3.5.4. Saistītu datu pārvietošana.......................................................................39

3.5.5. Papildus veidņu izmantošana.................................................................39

SECINĀJUMI..............................................................................................................40

Page 3: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

UZDEVUMA NOSTĀDNE

1) tiek izveidoti datu avotu shēmu modeļi un veikta to integrācija, lai izveidotu globālās shēmas modeli;

2) tiek izpētīti informācijas avotu interfeisi un izstrādāta datu apmaiņas kopējais projekts;

3) izmantojot IDE rīkus realizēt daudzbāzu sistēmu.

Page 4: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

1. PROBLĒMSFĒRAS APRAKSTS

Darba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku veiksmīgi strādā un plāno paplašināties. Viens no paplašināšanās aspektiem ir efektīvas IT sistēmas ieviešana uzņēmuma darbības nodrošināšanai. Darba ietvaros apskatīsim daļu no tās.

Uzņēmumā ir izveidojusies mārketinga nodaļa, kura uztur informāciju par lojālajiem klientiem un veic PR funkcijas. Šajā nodaļā darbinieki ne pārāk labi pārzina informācijas tehnoloģijas un visu informāciju glabā Microsoft Excel dokumentā.

Uzņēmums sastāv no galvenā biroja/veikala, noliktavas un filiālēm dažās pilsētās. Katrā no veikaliem tiek izmantoti kases aparāti, kas informāciju saglabā teksta faila formā. Šajos failos tiek glabāta informācija par katru pirkumu – preces ID, daudzums, kases aparāta ID, samaksātā summa, datums.

Noliktavā tiek izmantota specializēta programmatūra, kas visu informāciju glabā Microsoft SQL datu bāzē. Tur ir iespējams saglabāt informāciju par noliktavu – pieejamajām precēm, to daudzumu.

Uzņēmums ir uzrādījis labus pārdošanas rādītājus un plāno modernizēt savu darbību, lai spētu palielināt apgrozījumu. Pirmkārt, tiks izstrādāta kopēja informācijas sistēma uzņēmuma iekšienē, lai atvieglotu datu par uzņēmuma darbību izgūšanu reāllaikā un spētu pieņemt ātrus lēmumus. Šīs sistēmas ietvaros būs nepieciešams integrēt gan mārketinga komandas pienākumus, gan saglabāt informāciju par veiktajiem pirkumiem, kā arī pārskatīt noliktavu statusu. Lai nezaudētu eksistējoši informāciju, tai jābūt pārsūtītai un saglabātai jaunizveidotās sistēmas datu bāzē. Bez eksistējošās informācijas pieņemts lēmums par citiem datiem, kas uzņēmumam varētu būt svarīgi, un būs nepieciešami jaunajā informācijas sistēmā.

Page 5: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

1.1. Mārketinga nodaļas datu shēma

Mārketinga nodaļa datus glabā Excel tabulās. Pirmkārt, tiek glabāta informācija par cilvēkiem, kas ir atstājuši savu kontaktinformāciju uzņēmumam – vārdu, uzvārdu, adresi, dzimšanas datumu, tālruņa numuru, epastu. Otrkārt, tiek glabāta informācija par veiktajām PR aktivitātēm – sūtītajiem epastiem, kā arī mārketinga aktivitātēm pasākumu ietvaros, pieejamajiem mārketinga materiāliem (plakātiem, krūzītēm un tml).

Fiziski Microsoft Excel failā ir 4 lapas – Klienti, Sūtītie epasti, Mārketinga aktivitātes, Mārketinga materiāli.

Kopumā datus var attēlot šādi:

Jāņem vērā, ka šīs ir 4 tabulas ir savā starpā nesaistītas. Tāpat apskatot klientu datus, var redzēt, ka ir lietderīgi uzvārda, vārda lauku sadalīt divos laukos, kā arī adresi sadalīt sīkākos laukos, lai vēlāk varētu vieglāk veidot pārskatus, kas balstīti uz reģioniem. Tāpat mārketinga aktivitātēm ieguldījumu varētu izveidot kā atsevišķu tabulu, kurā varētu sīkāk aprakstīt, kāds ieguldījums tika izmantots.

Page 6: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

1.2. Kases aparātu sistēmas datu shēma

Kases aparāti izmanto izstrādātāja nodrošināto programmatūru, taču papildus tam nosūta žurnalēšanas datus par veiktajiem pirkumiem. Tā satur dažādu informāciju par iegādātajām precēm – preces kodu, preces nosaukumu, pirkuma datumu, summu, skaitu, kases aparāta kodu -, kā arī par veiktajiem pirkumiem – to datumu, summu un maksājuma veidu. Tāpat tiek saglabāti dati par kļūdām, kas radušās, - kļūdas kods, kļūdas apraksts, diagnostikas datu vērtības kļūdas laikā, kļūdas laiks.

Šī informācija glabājas uz diska teksta failā, lauki ir atdalīti ar semikolu.

Kopumā informāciju var attēlot šādi:

Jāņem vērā, ka šīs tabulas/dati nav saistītas.

Tāpat daudzums šajā gadījumā ir simbolu virkne, kura sākas ar “GB”, ja preces cena ir par preces vienību, ar “L”, ja cena norādīta par tilpumu (litru) vai “KG”, ja preces cena ir norādīta par svara vienību (kilogramu).

Page 7: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

1.3. Noliktavas datu shēma

Noliktavā tiek izmantota specializēta datora programmatūra. Tā datus glabā SQL datu bāzē – tur ir pieejama informācija par precēm, to daudzumu noliktavā, veiktajiem papildinājumiem.

Pirmkārt, ir redzama informācija par noliktavām (tādas var būt vairākas). Katrā noliktavā ir pieejamas preces – tām ir konkrēts daudzums un derīguma termiņš. Katrai precei ir unikāls kods (svītru kods), kopā tās veido preču katalogu jeb uzņēmumā pārdotās preces. Tāpat uzņēmumam ir vairāki piegādātāji un informācija par katru piegādi tiek saglabāta.

Page 8: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

2. SHĒMU INTEGRĀCIJAS ANALĪZE

Uzņēmums plāno visas atsevišķās komponentes integrēt vienā kopējā sistēmā, lai uzņēmumam būtu viena centrāla pārvaldības sistēmas, kas nākotnē varētu būt papildināma, kā arī būtu centrāla informācijas ieguves vieta, kas saturētu aktuālo informāciju un uzņēmums, balstoties uz to, spētu pieņemt pamatotus lēmumus.

Apskatot kases aparātu datu shēmu un noliktavas datu shēmu, var redzēt, ka tabulas “Pirkumu dati” un “Prece” ir iespējams sasaistīt, balstoties uz preces svītru kodu. Tas nozīmē, ka tabula “Pirkuma dati” tiks iekļauta jaunās sistēmas datu shēmā, taču ar nosaukumu “Iegādātās preces” un sasaistīta ar tabulu “Prece”. Jaunās tabulas lauki būs tādi paši kā sākumā, taču tiks papildināti ar jaunu lauku – “Vienība”, kura saturēs vērtību “L”, “KG” vai “GB” atkarībā no tā, kāda vērtība būs “Pirkumu dati” laukā “Daudzums”.

Tabula “Kļūdas” tiks iekļauta kopējā sistēmā, taču tiks veidota viena kopēja tabula, kur glabāsies visas sistēmas kļūdas, līdz ar to tiks izveidots papildus lauks “Kļūdas avots”, kura vērtība kases aparātu kļūdu ierakstiem būs “KasesAparats”.

Uzņēmums paplašināšanās ietvaros plāno izveidot arī pārdošanas portālu, kurā klienti varēs preces iegādāties tiešsaistē. Lai to darītu, lietotājiem nāksies veikt reģistrāciju. Tas ļaus uzņēmuma uzturēt datus par klientiem, apskatīt to iepirkšanās paradumus. Tas nozīmē, ka būs nepieciešams pievienot divas jaunas tabulas “Klients” un “Pasūtījumi”.

Tabula “Klients” saturēs visu reģistrācijas informāciju, kas kopumā ir vairāk informācijas lauku, kā šobrīd uzņēmuma mārketinga nodaļas pārvaldībā. Rezultātā pieņemts lēmums “Klients” tabulā iekļaut tādu lauku kā “Reģistrēts”, kas noteiks, vai lietotājs ir reģistrējies. Kā lietotājvārds kalpos e-pasts, līdz ar to nedrīkst būt divi reģistrētie lietotāji, kuriem e-pasts sakritīs. Gadījumā, kad sistēmā būs reģistrēts lietotājs ar tādu pašu e-pastu, kā nereģistrētam lietotājam, sistēma tos apvienos, ja pārējie lauki sakritīs.

Tabula “Pasūtījumi” būs saistīti ar preču kataloga tabulu, balstoties uz preces svītru kodu.

Jaunajā sistēmā tabulas “Mārketinga aktivitātes”, “Sūtītie e-pasti”, “Mārketinga materiāli saglabāsies”, taču tabula “Mārketinga aktivitātes”, tiks saistīts ar jaunu tabulu “MārketingaPreces”, kurā glabāsies informācija par mārketinga aktivitāšu laikā izmantotajām precēm (bieži vien uzņēmumi izmanto savu produkciju mārketinga aktivitātēs).

Tālāk var apskatīt vienā attēlā apvienotos datu elementus, kā arī Visual Studio rīkā izstrādātu ER diagrammu, kura veido rezultāta sistēmas datu bāzi. Tā tiks izmantota, lai uzģenerētu datu bāzes shēmu.

Page 9: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku
Page 10: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku
Page 11: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

Uzģenerētais SQL skripts gala datu bāzes sagatavošanai:

-- ---------------------------------------------------- Entity Designer DDL Script for SQL Server 2005, 2008, 2012 and Azure-- ---------------------------------------------------- Date Created: 09/27/2015 22:09:58-- Generated from EDMX file: E:\Visual Studio Projects\MultibazesModeling\ErDiagram\Marketings.edmx-- --------------------------------------------------

SETQUOTED_IDENTIFIEROFF;GOUSE [multibazestesting];GOIFSCHEMA_ID(N'dbo')ISNULLEXECUTE(N'CREATE SCHEMA [dbo]');GO

-- ---------------------------------------------------- Dropping existing FOREIGN KEY constraints-- --------------------------------------------------

-- ---------------------------------------------------- Dropping existing tables-- --------------------------------------------------

-- ---------------------------------------------------- Creating all tables-- --------------------------------------------------

-- Creating table 'PieejamasPrecesSet'CREATETABLE [dbo].[PieejamasPrecesSet]( [Id] intIDENTITY(1,1)NOTNULL, [Daudzums] nvarchar(max)NOTNULL, [DerigumaTerminaSakums] nvarchar(max)NOTNULL, [DerigumaTerminaBeigas] nvarchar(max)NOTNULL, [Prece_Id] intNOTNULL, [Noliktava_NoliktavasId] intNOTNULL);GO

-- Creating table 'PrecuKatalogsSet'CREATETABLE [dbo].[PrecuKatalogsSet]( [Id] intIDENTITY(1,1)NOTNULL, [PrecesKods] nvarchar(max)NOTNULL, [Nosaukums] nvarchar(max)NOTNULL, [MarketingaIegulditasPreces_Id] intNOTNULL);GO

Page 12: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

-- Creating table 'PiegadatajsSet'CREATETABLE [dbo].[PiegadatajsSet]( [PiegadatajaId] intIDENTITY(1,1)NOTNULL, [Nosaukums] nvarchar(max)NOTNULL, [Adrese] nvarchar(max)NOTNULL);GO

-- Creating table 'PiegadatajuPrecesSet'CREATETABLE [dbo].[PiegadatajuPrecesSet]( [Id] intIDENTITY(1,1)NOTNULL, [Cena] nvarchar(max)NOTNULL, [PiegadesIlgums] nvarchar(max)NOTNULL, [Piegadatajs_PiegadatajaId] intNOTNULL, [Prece_Id] intNOTNULL);GO

-- Creating table 'NoliktavaSet'CREATETABLE [dbo].[NoliktavaSet]( [NoliktavasId] intIDENTITY(1,1)NOTNULL, [Adrese] nvarchar(max)NOTNULL, [Komentari] nvarchar(max)NOTNULL);GO

-- Creating table 'PiegadatasPrecesSet'CREATETABLE [dbo].[PiegadatasPrecesSet]( [Id] intIDENTITY(1,1)NOTNULL, [Daudzums] nvarchar(max)NOTNULL, [DerigumaTerminaSakums] nvarchar(max)NOTNULL, [DerigumaTerminaBeigas] nvarchar(max)NOTNULL, [Prece_Id] intNOTNULL, [Noliktava_NoliktavasId] intNOTNULL);GO

-- Creating table 'KlientsSet'CREATETABLE [dbo].[KlientsSet]( [Id] intIDENTITY(1,1)NOTNULL, [Vards] nvarchar(max)NOTNULL, [Uzvards] nvarchar(max)NOTNULL, [DzimsanasGads] nvarchar(max)NOTNULL, [Pilseta] nvarchar(max)NOTNULL, [Iela] nvarchar(max)NOTNULL, [Novads] nvarchar(max), [Talrunis] nvarchar(max)NOTNULL, [Epasts] nvarchar(max)NOTNULL, [Registrets] intNOTNULL, [ParolesHash] nvarchar(max));

Page 13: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

GO

-- Creating table 'PasutijumiSet'CREATETABLE [dbo].[PasutijumiSet]( [Id] intIDENTITY(1,1)NOTNULL, [Daudzums] nvarchar(max)NOTNULL, [PasutijumaDatums] nvarchar(max)NOTNULL, [Klients_Id] intNOTNULL);GO

-- Creating table 'MarketingaMaterialiSet'CREATETABLE [dbo].[MarketingaMaterialiSet]( [Id] intIDENTITY(1,1)NOTNULL, [Pozicija] nvarchar(max)NOTNULL, [Daudzums] nvarchar(max)NOTNULL, [PedejoReiziAtjaunots] nvarchar(max)NOTNULL);GO

-- Creating table 'MarketingaAktivitatesSet'CREATETABLE [dbo].[MarketingaAktivitatesSet]( [Id] intIDENTITY(1,1)NOTNULL, [Nosaukums] nvarchar(max)NOTNULL, [NorisesSakums] nvarchar(max)NOTNULL, [NorisesBeigas] nvarchar(max)NOTNULL, [SasniegtaisCilvekuSkaits] nvarchar(max)NOTNULL, [Komentari] nvarchar(max)NOTNULL);GO

-- Creating table 'MarketingaIegulditasPrecesSet'CREATETABLE [dbo].[MarketingaIegulditasPrecesSet]( [Id] intIDENTITY(1,1)NOTNULL, [Daudzums] nvarchar(max)NOTNULL, [MarketingaAktivitates_Id] intNOTNULL);GO

-- Creating table 'SutitieEpastiSet'CREATETABLE [dbo].[SutitieEpastiSet]( [Id] intIDENTITY(1,1)NOTNULL, [Merkis] nvarchar(max)NOTNULL, [Saturs] nvarchar(max)NOTNULL, [Adresati] nvarchar(max)NOTNULL, [SutisanasDatums] nvarchar(max)NOTNULL);GO

-- Creating table 'IegadatasPrecesSet'CREATETABLE [dbo].[IegadatasPrecesSet](

Page 14: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

[Id] intIDENTITY(1,1)NOTNULL, [IegadesDatums] nvarchar(max)NOTNULL, [IegadesCena] nvarchar(max)NOTNULL, [IegadesDaudzums] nvarchar(max)NOTNULL, [KasesAparataKods] nvarchar(max)NOTNULL, [Vieniba] nvarchar(max)NOTNULL, [PrecuKatalogs_Id] intNOTNULL);GO

-- Creating table 'VeiktiePirkumiSet'CREATETABLE [dbo].[VeiktiePirkumiSet]( [Id] intIDENTITY(1,1)NOTNULL, [PirkumaDatums] nvarchar(max)NOTNULL, [PirkumaSumma] nvarchar(max)NOTNULL, [MaksajumaVeids] nvarchar(max)NOTNULL);GO

-- Creating table 'KludasSet'CREATETABLE [dbo].[KludasSet]( [Id] intIDENTITY(1,1)NOTNULL, [KludasKods] nvarchar(max)NOTNULL, [KludasApraksts] nvarchar(max)NOTNULL, [DiagnostikasDati] nvarchar(max)NOTNULL, [KludasLaiks] nvarchar(max)NOTNULL);GO

-- Creating table 'PasutijumiPrecuKatalogs'CREATETABLE [dbo].[PasutijumiPrecuKatalogs]( [Pasutijumi_Id] intNOTNULL, [Preces_Id] intNOTNULL);GO

-- ---------------------------------------------------- Creating all PRIMARY KEY constraints-- --------------------------------------------------

-- Creating primary key on [Id] in table 'PieejamasPrecesSet'ALTERTABLE [dbo].[PieejamasPrecesSet]ADDCONSTRAINT [PK_PieejamasPrecesSet]PRIMARYKEYCLUSTERED ([Id] ASC);GO

-- Creating primary key on [Id] in table 'PrecuKatalogsSet'ALTERTABLE [dbo].[PrecuKatalogsSet]ADDCONSTRAINT [PK_PrecuKatalogsSet]PRIMARYKEYCLUSTERED ([Id] ASC);GO

Page 15: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

-- Creating primary key on [PiegadatajaId] in table 'PiegadatajsSet'ALTERTABLE [dbo].[PiegadatajsSet]ADDCONSTRAINT [PK_PiegadatajsSet]PRIMARYKEYCLUSTERED ([PiegadatajaId] ASC);GO

-- Creating primary key on [Id] in table 'PiegadatajuPrecesSet'ALTERTABLE [dbo].[PiegadatajuPrecesSet]ADDCONSTRAINT [PK_PiegadatajuPrecesSet]PRIMARYKEYCLUSTERED ([Id] ASC);GO

-- Creating primary key on [NoliktavasId] in table 'NoliktavaSet'ALTERTABLE [dbo].[NoliktavaSet]ADDCONSTRAINT [PK_NoliktavaSet]PRIMARYKEYCLUSTERED ([NoliktavasId] ASC);GO

-- Creating primary key on [Id] in table 'PiegadatasPrecesSet'ALTERTABLE [dbo].[PiegadatasPrecesSet]ADDCONSTRAINT [PK_PiegadatasPrecesSet]PRIMARYKEYCLUSTERED ([Id] ASC);GO

-- Creating primary key on [Id] in table 'KlientsSet'ALTERTABLE [dbo].[KlientsSet]ADDCONSTRAINT [PK_KlientsSet]PRIMARYKEYCLUSTERED ([Id] ASC);GO

-- Creating primary key on [Id] in table 'PasutijumiSet'ALTERTABLE [dbo].[PasutijumiSet]ADDCONSTRAINT [PK_PasutijumiSet]PRIMARYKEYCLUSTERED ([Id] ASC);GO

-- Creating primary key on [Id] in table 'MarketingaMaterialiSet'ALTERTABLE [dbo].[MarketingaMaterialiSet]ADDCONSTRAINT [PK_MarketingaMaterialiSet]PRIMARYKEYCLUSTERED ([Id] ASC);GO

-- Creating primary key on [Id] in table 'MarketingaAktivitatesSet'ALTERTABLE [dbo].[MarketingaAktivitatesSet]ADDCONSTRAINT [PK_MarketingaAktivitatesSet]PRIMARYKEYCLUSTERED ([Id] ASC);GO

-- Creating primary key on [Id] in table 'MarketingaIegulditasPrecesSet'ALTERTABLE [dbo].[MarketingaIegulditasPrecesSet]

Page 16: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

ADDCONSTRAINT [PK_MarketingaIegulditasPrecesSet]PRIMARYKEYCLUSTERED ([Id] ASC);GO

-- Creating primary key on [Id] in table 'SutitieEpastiSet'ALTERTABLE [dbo].[SutitieEpastiSet]ADDCONSTRAINT [PK_SutitieEpastiSet]PRIMARYKEYCLUSTERED ([Id] ASC);GO

-- Creating primary key on [Id] in table 'IegadatasPrecesSet'ALTERTABLE [dbo].[IegadatasPrecesSet]ADDCONSTRAINT [PK_IegadatasPrecesSet]PRIMARYKEYCLUSTERED ([Id] ASC);GO

-- Creating primary key on [Id] in table 'VeiktiePirkumiSet'ALTERTABLE [dbo].[VeiktiePirkumiSet]ADDCONSTRAINT [PK_VeiktiePirkumiSet]PRIMARYKEYCLUSTERED ([Id] ASC);GO

-- Creating primary key on [Id] in table 'KludasSet'ALTERTABLE [dbo].[KludasSet]ADDCONSTRAINT [PK_KludasSet]PRIMARYKEYCLUSTERED ([Id] ASC);GO

-- Creating primary key on [Pasutijumi_Id], [Preces_Id] in table 'PasutijumiPrecuKatalogs'ALTERTABLE [dbo].[PasutijumiPrecuKatalogs]ADDCONSTRAINT [PK_PasutijumiPrecuKatalogs]PRIMARYKEYCLUSTERED ([Pasutijumi_Id], [Preces_Id] ASC);GO

-- ---------------------------------------------------- Creating all FOREIGN KEY constraints-- --------------------------------------------------

-- Creating foreign key on [Prece_Id] in table 'PieejamasPrecesSet'ALTERTABLE [dbo].[PieejamasPrecesSet]ADDCONSTRAINT [FK_PieejamasPrecesPrecuKatalogs]FOREIGNKEY ([Prece_Id])REFERENCES [dbo].[PrecuKatalogsSet]([Id])ONDELETENOACTIONONUPDATENOACTION;GO

-- Creating non-clustered index for FOREIGN KEY 'FK_PieejamasPrecesPrecuKatalogs'CREATEINDEX [IX_FK_PieejamasPrecesPrecuKatalogs]

Page 17: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

ON [dbo].[PieejamasPrecesSet]([Prece_Id]);GO

-- Creating foreign key on [Prece_Id] in table 'PiegadatasPrecesSet'ALTERTABLE [dbo].[PiegadatasPrecesSet]ADDCONSTRAINT [FK_PiegadatasPrecesPrecuKatalogs]FOREIGNKEY ([Prece_Id])REFERENCES [dbo].[PrecuKatalogsSet]([Id])ONDELETENOACTIONONUPDATENOACTION;GO

-- Creating non-clustered index for FOREIGN KEY 'FK_PiegadatasPrecesPrecuKatalogs'CREATEINDEX [IX_FK_PiegadatasPrecesPrecuKatalogs]ON [dbo].[PiegadatasPrecesSet]([Prece_Id]);GO

-- Creating foreign key on [Noliktava_NoliktavasId] in table 'PieejamasPrecesSet'ALTERTABLE [dbo].[PieejamasPrecesSet]ADDCONSTRAINT [FK_PieejamasPrecesNoliktava]FOREIGNKEY ([Noliktava_NoliktavasId])REFERENCES [dbo].[NoliktavaSet]([NoliktavasId])ONDELETENOACTIONONUPDATENOACTION;GO

-- Creating non-clustered index for FOREIGN KEY 'FK_PieejamasPrecesNoliktava'CREATEINDEX [IX_FK_PieejamasPrecesNoliktava]ON [dbo].[PieejamasPrecesSet]([Noliktava_NoliktavasId]);GO

-- Creating foreign key on [Noliktava_NoliktavasId] in table 'PiegadatasPrecesSet'ALTERTABLE [dbo].[PiegadatasPrecesSet]ADDCONSTRAINT [FK_NoliktavaPiegadatasPreces]FOREIGNKEY ([Noliktava_NoliktavasId])REFERENCES [dbo].[NoliktavaSet]([NoliktavasId])ONDELETENOACTIONONUPDATENOACTION;GO

-- Creating non-clustered index for FOREIGN KEY 'FK_NoliktavaPiegadatasPreces'CREATEINDEX [IX_FK_NoliktavaPiegadatasPreces]ON [dbo].[PiegadatasPrecesSet]([Noliktava_NoliktavasId]);GO

-- Creating foreign key on [Pasutijumi_Id] in table 'PasutijumiPrecuKatalogs'

Page 18: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

ALTERTABLE [dbo].[PasutijumiPrecuKatalogs]ADDCONSTRAINT [FK_PasutijumiPrecuKatalogs_Pasutijumi]FOREIGNKEY ([Pasutijumi_Id])REFERENCES [dbo].[PasutijumiSet]([Id])ONDELETENOACTIONONUPDATENOACTION;GO

-- Creating foreign key on [Preces_Id] in table 'PasutijumiPrecuKatalogs'ALTERTABLE [dbo].[PasutijumiPrecuKatalogs]ADDCONSTRAINT [FK_PasutijumiPrecuKatalogs_PrecuKatalogs]FOREIGNKEY ([Preces_Id])REFERENCES [dbo].[PrecuKatalogsSet]([Id])ONDELETENOACTIONONUPDATENOACTION;GO

-- Creating non-clustered index for FOREIGN KEY 'FK_PasutijumiPrecuKatalogs_PrecuKatalogs'CREATEINDEX [IX_FK_PasutijumiPrecuKatalogs_PrecuKatalogs]ON [dbo].[PasutijumiPrecuKatalogs]([Preces_Id]);GO

-- Creating foreign key on [Klients_Id] in table 'PasutijumiSet'ALTERTABLE [dbo].[PasutijumiSet]ADDCONSTRAINT [FK_KlientsPasutijumi]FOREIGNKEY ([Klients_Id])REFERENCES [dbo].[KlientsSet]([Id])ONDELETENOACTIONONUPDATENOACTION;GO

-- Creating non-clustered index for FOREIGN KEY 'FK_KlientsPasutijumi'CREATEINDEX [IX_FK_KlientsPasutijumi]ON [dbo].[PasutijumiSet]([Klients_Id]);GO

-- Creating foreign key on [MarketingaIegulditasPreces_Id] in table 'PrecuKatalogsSet'ALTERTABLE [dbo].[PrecuKatalogsSet]ADDCONSTRAINT [FK_PrecuKatalogsMarketingaIegulditasPreces]FOREIGNKEY ([MarketingaIegulditasPreces_Id])REFERENCES [dbo].[MarketingaIegulditasPrecesSet]([Id])ONDELETENOACTIONONUPDATENOACTION;GO

-- Creating non-clustered index for FOREIGN KEY 'FK_PrecuKatalogsMarketingaIegulditasPreces'

Page 19: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

CREATEINDEX [IX_FK_PrecuKatalogsMarketingaIegulditasPreces]ON [dbo].[PrecuKatalogsSet]([MarketingaIegulditasPreces_Id]);GO

-- Creating foreign key on [MarketingaAktivitates_Id] in table 'MarketingaIegulditasPrecesSet'ALTERTABLE [dbo].[MarketingaIegulditasPrecesSet]ADDCONSTRAINT [FK_MarketingaAktivitatesMarketingaIegulditasPreces]FOREIGNKEY ([MarketingaAktivitates_Id])REFERENCES [dbo].[MarketingaAktivitatesSet]([Id])ONDELETENOACTIONONUPDATENOACTION;GO

-- Creating non-clustered index for FOREIGN KEY 'FK_MarketingaAktivitatesMarketingaIegulditasPreces'CREATEINDEX [IX_FK_MarketingaAktivitatesMarketingaIegulditasPreces]ON [dbo].[MarketingaIegulditasPrecesSet]([MarketingaAktivitates_Id]);GO

-- Creating foreign key on [PrecuKatalogs_Id] in table 'IegadatasPrecesSet'ALTERTABLE [dbo].[IegadatasPrecesSet]ADDCONSTRAINT [FK_IegadatasPrecesPrecuKatalogs]FOREIGNKEY ([PrecuKatalogs_Id])REFERENCES [dbo].[PrecuKatalogsSet]([Id])ONDELETENOACTIONONUPDATENOACTION;GO

-- Creating non-clustered index for FOREIGN KEY 'FK_IegadatasPrecesPrecuKatalogs'CREATEINDEX [IX_FK_IegadatasPrecesPrecuKatalogs]ON [dbo].[IegadatasPrecesSet]([PrecuKatalogs_Id]);GO

-- Creating foreign key on [Piegadatajs_PiegadatajaId] in table 'PiegadatajuPrecesSet'ALTERTABLE [dbo].[PiegadatajuPrecesSet]ADDCONSTRAINT [FK_PiegadatajsPiegadatajuPreces]FOREIGNKEY ([Piegadatajs_PiegadatajaId])REFERENCES [dbo].[PiegadatajsSet]([PiegadatajaId])ONDELETENOACTIONONUPDATENOACTION;GO

-- Creating non-clustered index for FOREIGN KEY 'FK_PiegadatajsPiegadatajuPreces'CREATEINDEX [IX_FK_PiegadatajsPiegadatajuPreces]ON [dbo].[PiegadatajuPrecesSet]

Page 20: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

([Piegadatajs_PiegadatajaId]);GO

-- Creating foreign key on [Prece_Id] in table 'PiegadatajuPrecesSet'ALTERTABLE [dbo].[PiegadatajuPrecesSet]ADDCONSTRAINT [FK_PiegadatajuPrecesPrecuKatalogs]FOREIGNKEY ([Prece_Id])REFERENCES [dbo].[PrecuKatalogsSet]([Id])ONDELETENOACTIONONUPDATENOACTION;GO

-- Creating non-clustered index for FOREIGN KEY 'FK_PiegadatajuPrecesPrecuKatalogs'CREATEINDEX [IX_FK_PiegadatajuPrecesPrecuKatalogs]ON [dbo].[PiegadatajuPrecesSet]([Prece_Id]);GO

-- ---------------------------------------------------- Script has ended-- --------------------------------------------------

Izpildes rezultāts:

Page 21: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

3. SQL SERVER INTEGRATION SERVICES IZMANTOŠANA

Pēc veiktās globālās shēmas izveides ir sekojoša situācija:

- Ir definēts datu avots no teksta faila- Ir definēts datu avots no Excel faila- Ir definēts datu avots no SQL datubāzes- Ir definēta shēma datiem, kurā tiks apvienoti visi datu avoti

SQL Server Integration Services ir rīks, kas papildina .NET ietvara rīku klāstu ar iespēju integrēt dažādus datu avotus. Mūsu gadījumā būs jāapskata trīs dažādi datu ieguves veidi, kā arī viens datu izvades veids.

Kā pirmais ir jāizveido jauns projekts, izmantojot IDE rīku Visual Studio, ar tipu Integration Services:

Tālāk var definēt konkrēti datu izgūšanas un tālākās plūsmas, izmantojot veidnes no IDE klāsta:

Page 22: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

Kā redzams rīks atbalsta ļoti daudz dažādus veidus, kā izgūt datus, kā ar tiem manipulēt.

Page 23: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

3.1. Vadības plūsmas definēšana

Rīkā nepieciešams vispirms definēt vadības plūsmu (Control Flow). Mūsu gadījumā tā sastāvēs no vienkārša datu plūsmas uzdevuma (Data Flow Task), kas sevī ietvers arī datu transformācijas.

3.2. Datu izgūšana no faila

No rīka veidnēm tiek izvēlēta veidne “Flat File Source”:

Pēc tam tiek definētas tā vērtības:

Tiek definēts faila pārvaldnieks (Flat File manager) – definē kā failā tiek izkārtoti dati, kādi ir kolonu nosaukumi un datu tipi:

Page 24: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku
Page 25: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

Pēc tam var apskatīt, kādas kolonas būs datiem, kā arī apstiprināt pārvaldnieka izveidošanu.

Page 26: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

Tā kā katram failam nepieciešams izveidot savu faila pārvaldnieku, tāpēc nepieciešams pievienot vēl divas faila datu izgūšanas veidnes un tajās definēt datu struktūras:

Testēšanai tika izveidoti šādi trīs teksta faili:

3.3. Datu izgūšana no Excel faila

No rīku veidnēm tiek izvēlēta veidne “Excel Source”.

Pēc tam attiecīgi tā tiek nokonfigurēta – tiek izvēlēts fails un definētas kolonas:

Page 27: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku
Page 28: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

Tā nepieciešams izdarīt arī atlikušajām 3 darba lapām.

Kā avots tika izveidots Excel fails ar 4 darba lapām ar testa datiem.

3.4. Datu izgūšana no MS SQL datubāzes

Tika izveidota MS SQL datu bāze, balstoties uz definēto datu struktūru noliktavas sistēmai.

Izveidošanai tika izmantots sekojošs SQL skripts:

USE [multibazesnoliktava]GO

DROPTABLE [dbo].[PieejamasPreces]GO

DROPTABLE [dbo].[Noliktava]GO

Page 29: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

DROPTABLE [dbo].[PiegadatasPreces]GO

DROPTABLE [dbo].[Piegadatajs]GO

DROPTABLE [dbo].[PiegadatajuPreces]GO

DROPTABLE [dbo].[PrecuKatalogs]GO

CREATETABLE [dbo].[PieejamasPreces]([Id] [int] IDENTITY(1,1)NOTNULL,[PrecesKods] [nvarchar](50)NOTNULL,[Daudzums] [nvarchar](10)NOTNULL,[DerīgumaTerminaSakums] [datetime] NOTNULL,[DerigumatTerminaBeigas] [datetime] NOTNULL,[NoliktavaId] [int] NOTNULL,[PrecuKatalogsId] [int] NOTNULL

)ON [PRIMARY]

GO

CREATETABLE [dbo].[Noliktava]([Id] [int] IDENTITY(1,1)NOTNULL,[Adrese] [nvarchar](50)NOTNULL,[Komentari] [nvarchar](50)NOTNULL

)ON [PRIMARY]

GO

CREATETABLE [dbo].[PiegadatasPreces]([Id] [int] IDENTITY(1,1)NOTNULL,[PrecesKods] [nvarchar](50)NOTNULL,[Daudzums] [nvarchar](10)NOTNULL,[DerīgumaTerminaSakums] [datetime] NOTNULL,[DerigumatTerminaBeigas] [datetime] NOTNULL,[NoliktavaId] [int] NOTNULL,[PrecuKatalogsId] [int] NOTNULL

)ON [PRIMARY]

GO

CREATETABLE [dbo].[Piegadatajs]([Id] [int] IDENTITY(1,1)NOTNULL,[Nosaukums] [nvarchar](50)NOTNULL,[Adrese] [nvarchar](10)NOTNULL

)ON [PRIMARY]

GO

Page 30: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

CREATETABLE [dbo].[PiegadatajuPreces]([Id] [int] IDENTITY(1,1)NOTNULL,[Cena] [nvarchar](50)NOTNULL,[PiegadesIlgums] [nvarchar](10)NOTNULL,[PiegadatajsId] [int] NOTNULL,[PrecuKatalogsId] [int] NOTNULL

)ON [PRIMARY]

GO

CREATETABLE [dbo].[PrecuKatalogs]([Id] [int] IDENTITY(1,1)NOTNULL,[PrecesKods] [nvarchar](50)NOTNULL,[Nosaukums] [nvarchar](10)NOTNULL

)ON [PRIMARY]

GO

ALTERTABLE [dbo].[PieejamasPreces]ADDCONSTRAINT [PK_PieejamasPreces]PRIMARYKEYCLUSTERED ([Id] ASC);GO

ALTERTABLE [dbo].[Noliktava]ADDCONSTRAINT [PK_Noliktava]PRIMARYKEYCLUSTERED ([Id] ASC);GO

ALTERTABLE [dbo].[PiegadatasPreces]ADDCONSTRAINT [PK_PiegadatasPreces]PRIMARYKEYCLUSTERED ([Id] ASC);GO

ALTERTABLE [dbo].[Piegadatajs]ADDCONSTRAINT [PK_Piegadatajs]PRIMARYKEYCLUSTERED ([Id] ASC);GO

ALTERTABLE [dbo].[PiegadatajuPreces]ADDCONSTRAINT [PK_PiegadatajuPreces]PRIMARYKEYCLUSTERED ([Id] ASC);GO

ALTERTABLE [dbo].[PrecuKatalogs]ADDCONSTRAINT [PK_PrecuKatalogs]PRIMARYKEYCLUSTERED ([Id] ASC);GO

ALTERTABLE [dbo].[PieejamasPreces]ADDCONSTRAINT [FK_PieejamasPrecesNoliktava]

Page 31: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

FOREIGNKEY ([NoliktavaId])REFERENCES [dbo].[Noliktava]([Id])ONDELETENOACTIONONUPDATENOACTION;

GO

ALTERTABLE [dbo].[PieejamasPreces]ADDCONSTRAINT [FK_PieejamasPrecesPrecuKatalogs]FOREIGNKEY ([PrecuKatalogsId])REFERENCES [dbo].[PrecuKatalogs]([Id])ONDELETENOACTIONONUPDATENOACTION;

GO

ALTERTABLE [dbo].[PiegadatasPreces]ADDCONSTRAINT [FK_PiegadatasPrecesNoliktava]FOREIGNKEY ([NoliktavaId])REFERENCES [dbo].[Noliktava]([Id])ONDELETENOACTIONONUPDATENOACTION;

GO

ALTERTABLE [dbo].[PiegadatasPreces]ADDCONSTRAINT [FK_PiegadatasPrecesPrecuKatalogs]FOREIGNKEY ([PrecuKatalogsId])REFERENCES [dbo].[PrecuKatalogs]([Id])ONDELETENOACTIONONUPDATENOACTION;

GO

ALTERTABLE [dbo].[PiegadatajuPreces]ADDCONSTRAINT [FK_PiegadatajuPrecesNoliktava]FOREIGNKEY ([PiegadatajsId])REFERENCES [dbo].[Piegadatajs]([Id])ONDELETENOACTIONONUPDATENOACTION;

GO

ALTERTABLE [dbo].[PiegadatajuPreces]ADDCONSTRAINT [FK_PiegadatajuPrecesPrecuKatalogs]FOREIGNKEY ([PrecuKatalogsId])REFERENCES [dbo].[PrecuKatalogs]([Id])ONDELETENOACTIONONUPDATENOACTION;

GO

Page 32: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

Rezultātā tika iegūta sekojoša datubāze:

Page 33: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

Lai izgūtu datus no MS SQL datubāzes, nepieciešams izmantot veidni “ADO NET Source”:

Pēc tam ir jānokonfigurē savienojums ar datubāzi:

Page 34: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

Pēc tam jānorāda, kuras tabulas datus jāizmanto:

Page 35: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

Līdzīgā manierē jānokonfigurē datu izguves veidnes pārējām tabulām:

3.5. Datu izvade SQL Server mākoņpakalpojumā Windows Azure

Izmantojot mākoņpakalpojumu Windows Azure, tika izveidots datu bāžu serveris un MS SQL datu bāze. Tam pieslēgties var caur portālu vai izmantojot rīku Microsoft SQL Server Management Studio. Izvēlējos izmantot rīku. Jau iepriekš tika minēts, ka pēc shēmu integrācijas analīzes tika uzģenerēts SQL skripts, kas tika izpildīts minētajā datu bāzē. Tagad nepieciešams ievadīt tikai datus izveidotajā struktūrā.

Pirms tiek sākta datu izvades konfigurēšana, nepieciešams definēt savienojuma pārvaldnieku:

Ir jānorāda servera adrese, lietotājvārds, parole un datu bāzes nosaukums. Kad savienojuma pārvaldnieks ir izveidots, to var izmantot izejas plūsmu definēšanai:

Page 36: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

Šāda veidne būs nepieciešama katrai izejas tabulai. Kopā tādas ir 16.

3.5.1. Kļūdu tabulas transformēšana

Sākotnēji ir teksta fails, kurā tiek žurnalētas visas kļūdas kases aparātos. Rezultātā tika definēta datu bāzes tabulā, kurā šie dati tiks nosūtīti.

Lai definētu šādu datu plūsmu tiek savienotas veidnes (datu izguves veidne tiek savienota ar datu izvades veidni).

Pēc tam iespējams konfigurēt kādas būs saistības starp kolonnām.

Page 37: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

Tā kā teksta failā netiek izšķirti datu tipi, bet SQL tabulā tiek, tad nepieciešams veikt datu konvertāciju izmantojot veidni, kas jāievieto datu plūsmas vidū. Piemēram, kļūdu gadījumos tiek reģistrēts laiks, kuru nepieciešams konvertēt.

Page 38: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

Tāpat šeit varētu definēt arī, piemēram, citādākus garumus maksimālajam simbolu virknes garumam, taču mūsu gadījumā datu bāzē ir atstāti garumi 50 simbolu virkņu garumā.

Pēc tam, kad konvērtācija ir definēta, nepieciešams definēt, kā tiks kartētas kolonas. Kā redzams konvertēšana izveido papildus kolonas, līdz ar to konvertācijas veidnē nebija nepieciešams aprakstīt visas kolonas, bet gan tikai tās, kurās konvertācija nepieciešama.

Page 39: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

Pēc apstiprinājuma ir redzama kļūda, ka nevar tik konvertētas simbolu virknes, jo avotā ir ne Unicode simbolu kodējums, taču SQL datu bāzē simbolu virknes tiek kodētas Unicode kodējumā. Lai to labotu, nepieciešams papildus veikt simbolu virkņu konvertēšanu.

Page 40: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

Tagad kļūdas vairs nav redzamas.

Page 41: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

3.5.2. 1:1 datu konvertēšana

Līdzīgi kā kļūdu tabulu, jāaizpilda 1:1 ir arī tādas tabulas kā veiktie pirkumi, mārketinga materiāli, sūtītie epasti. Tajos ir kolonas, kuru tipu jāmaina uz Unicode simbolu virknēm, decimālu skaitļa tipu, datuma tipu.

3.5.3. Klientu datu konvertēšana

--->

Page 42: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

Šajā gadījumā tiek pievienotas papildus kolonas (Registrēts un ParolesHash). Laukam Reģistrēts būtu jāaizpildās ar vērtību “Nepatiess”, taču laukam ParolesHash būtu jāpaliek tukšam. Tāpat kolonas Uzvārds, vārds un Adrese tiek dalīta daļās.

Lai pievienotu papildus kolonas un veiktu manipulācijas ar datiem, jāizmanto veidne Derived Column Transformation. Tās ieejas dati ir dati no datu avota (Excel tabulas) un izejas dati tiek nodoti tālāk rezultāta tabulā.

Veidojot datu transformācijas, jāveido funkcijas. Piemēram, lai sadalītu Uzvārds, vārds kolonu divās kolonnās, tika izveidotas divas jaunas kolonnas, kuras dati tiek iegūti no kopīgās kolonnas, uzvārda kolonā ievietojot lauka pirmo daļu pirms komata, bet vārda kolonā ievietojot lauka otro daļu pēc komata.

SUBSTRING([Uzvārds, vārds],1,FINDSTRING([Uzvārds, vārds], ",", 1))

SUBSTRING([Uzvārds, vārds],FINDSTRING([Uzvārds, vārds], ",", 1)+2, LEN([Uzvārds, vārds]) - FINDSTRING([Uzvārds, vārds], ",", 1) -2)

Līdzīgi var izveidot jaunas kolonnas ar definētiem datiem, piemēram, ParolesHash lauku aizpildot ar NULL, Registrēts laukus aizpildot ar “0”.

NULL(DT_WSTR, 50)

0

Page 43: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

3.5.4. Saistītu datu pārvietošana

Saistītu datu izgūšana no SQL datu bāzes un pārvietošana saistītās tabulās visieteicamākais būtu 1:1 datu pārvietošana, atstājot tās pašas primāro atslēgu un ārējo atslēgu vērtības. Pēc tam, kad datu bāzi izmantos jaunā sistēma, tā varēs norādīt primārās atslēgas ar lielākām vērtībām (izvēloties jaunu pamata vērtību), kas neradīs konfliktus primārās atslēgas vērtības ģenerēšanas procesā. Otrs variants būtu izmantot veidnes Merge Join un OLE DB Command, lai sākumā visus datus apvienotu un ar SQL komandu palīdzību datus ievietotu jaunajās tabulās, kurās primārās atslēgas tad ģenerēsies pašas, taču šāda procesa izplānošana, implementācija un realizācija ir daudz sarežģītāka un neparedzamāka.

3.5.5. Papildus veidņu izmantošana

Priekšmeta ietvaros semināra laikā tika demonstrēta citu veidņu izmantošana. Semināra laikā tika parādītas veidnes, kuras ir tipiskas datu noliktavu veidošanā (pārskatu veidošanā). Šīs veidnes ir:

Aggregate ļauj veikt datu agregāciju pēc konkrētiem laukiem un izmantot agregācijas funkcijas, piemēram, COUNT, AVERAGE, MAX, SUM un citas.

Multicast ļauj datu plūsmas kopēt.

Conditional Split ļauj datu plūsmu sadalīt, balstoties uz konkrētu nosacījumu (kāda lauka vērtību).

Page 44: datubaze.files.wordpress.com · Web viewDarba ietvaros tiks apskatīts iedomāts uzņēmums X, kurš nodarbojas ar saimniecības preču mazumtirdzniecību. Uzņēmums jau kādu laiku

SECINĀJUMI

Darba ietvaros tika izdomāta problēmsfēra, kura tika aprakstīta ar nelielu uzņēmumu, kas plāno paplašināties un izstrādā jaunu IT sistēmu. Jaunajā IT sistēmā plānots iekļaut eksistējošos datus, kā arī to izmantot pārskatu veidošanai. Sākotnēji tiek izvēlēti 3 datu avoti – teksta faili, Excel tabulas, kā arī SQL datu bāze. Dati no tiem tiek pārvietoti uz mākoņpakalpojumā Azure izveidotu SQL datu bāzi.

Tika apskatīts rīks SSIS (Microsoft SQL Server Integration Services), kas ļauj izstrādāt datu pārvietošanas risinājumus. Tika apskatītas dažas tipiskas problēmas, kas jāatrisina ar SSIS rīku, lai nodrošinātu datu pārvietošanu – kā pārveidot datu tipus, kā sadalīt kolonas, kā ģenerēt jaunas kolonas, kā aizpildīt saistītas tabulas.

Tāpat semināra ietvaros tika apskatītas arī citas veidnes datu agregācijai un datu plūsmas sadalīšanai/kopēšanai.

SSIS rīks piedāvā ļoti plašas iespējas integrācijas risinājumu veidošanai. Tāpat jaunākās versijas ļauj veikt datizraces operācijas ar atsevišķu veidņu palīdzību. No lietotāju perspektīvas rīks bija ļoti vienkārši izprotams. Protams nācās pavadīt laiku mācoties saprast kā strādā dažādas veidnes un kā realizēt konkrētas problēmas.

Sākotnēji uzdevums bija jāveic komandās (pa diviem cilvēkiem), taču dažādu apstākļu dēļ beigās darbu izstrādāju viens un ieguldīju ļoti daudz laika tā izveidošanā. Darba ietvaros sastapos ar daudz un dažādām problēmām, kā arī sanāca izpētīt dažādas SSIS izmantošanas iespējas, kas, manuprāt, ļoti noderēs mana darba ikdienā.