Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
1
Vežba 1
Zadatak 1: Upoznavanje sa AdventureWorksDW2012 bazom
1. Pokrenite SQL Server Management Studio (SSMS) i konektujte se na lokalnu instancu SQL servera.
2. Otvorite novi prozor upita klikom na ikonu ili prečicom CTRL + N.
3. Iz padajućeg menija sa bazama odaberite AdventureWorksDW2012 bazu podataka. Meni se nalazi u
gornjem levom uglu.
4. U Object Explorer-u, proširite karticu Databases, zatim proširite AdventureWorksDW2012 bazu.
Desni klik na opciju Database Diagrams, New Database Diagram.
Slika 1. Kreiranje dijagrama
Ukoliko do sada nije korišćena ova opcija, iskočiće upozorenje da baza podataka ne sadrži potrebne
objekte za kreiranje dijagrama. Klikom na yes, SSMS dodaje objekte koji nedostaju.
5. Sledeći korak je odabir tabela koje želimo da prikažemo na dijagramu.
2
Slika 2. Odabir tabela za kreiranje dijagrama
Odaberite sledeće tabele (klik na naziv tabele i add za dodavanje pojednične tabele, ili selektujte vise
željenih tabela kombinacijom tastera CTRL + levi klik):
DimCustomer
DimDate
DimGeography
DimProduct
DimProductCategory
DimProductSubcategory
FactInternetSales
Nakon potvrde, dijagram bi trebalo da izgleda kao na slici 3.
3
Slika 3. Dijagram InternetSales
4. Analizirajte tabele, kolone i veze između tabela.
5. Sačuvajte dijagram kombinacijom tastera CTLR + S sa nazivom Cas_1_InternetSales.
4
Zadatak 2: Upoznavanje sa AdventureWorksDW2012 dimenzijama
U ovoj vežbi kreiramo dijagram za tabele dimenzija.
1. Ukoliko ste zatvorili SSMS, pokrenite ponovo i konektujte se na default SQL Server instancu.
2. Desni klik na opciju Database Diagrams, New Database Diagram.
3. Sa opcije Add Table, odaberite sledeće tabele:
DimProduct
DimProductCategory
DimProductSubcategory
Dijagram bi trebalo da izgleda kao na slici.
Slika 4. Dijagram Dimensions
4. Sačuvajte dijagram kombinacijom tastera CTLR + S sa nazivom Cas_1_Dimensions.
5
Zadatak 3: Upoznavanje sa AdventureWorksDW2012 fakt tabelama
U ovoj vežbi kreiramo dijagram za fakt tabele.
1. Ukoliko ste zatvorili SSMS, pokrenite ponovo i konektujte se na default SQL Server instancu.
2. Desni klik na opciju Database Diagrams, New Database Diagram.
3. Sa opcije Add Table, odaberite sledeće tabele:
DimProduct
DimDate
FactProductInventory
Dijagram bi trebalo da izgleda kao na slici.
Slika 5. Dijagram ProductInventory
4. Sačuvajte dijagram kombinacijom tastera CTLR + S sa nazivom Cas_1_ ProductInventory.
6
Zadatak 4: Kreiranje baze za “skladište podataka” (Data Warehouse) i sekvence
1. Ukoliko ste zatvorili SSMS, pokrenite ponovo i konektujte se na default SQL Server instancu. Otvorite
novi prozor upita klikom na ikonu ili prečicom CTRL + N.
2. U sledećem koraku potrebno je napraviti novu bazu podataka koja će se zvati TK463DW.
Kod za kreiranje baze se nalazi u sledećem koraku.
USE master; IF DB_ID('TK463DW') IS NOT NULL DROP DATABASE TK463DW; GO CREATE DATABASE TK463DW ON PRIMARY (NAME = N'TK463DW', FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\TK463DW.mdf', SIZE = 307200KB , FILEGROWTH = 10240KB ) LOG ON (NAME = N'TK463DW_log', FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\TK463DW_log.ldf', SIZE = 51200KB , FILEGROWTH = 10%); GO ALTER DATABASE TK463DW SET RECOVERY SIMPLE WITH NO_WAIT; GO
3. U okviru baze TK463DW, kreiramo sekvencu (objekat u bazi koji generiše niz numeričkih vrednosti
prema specifikaciji koja se zadaje prilikom kreiranja sekvence). Nazvacemo je SeqCustomerDwKey. U
deljem tekstu vežbe dat je kod za kreitanje sekvence.
USE TK463DW; GO IF OBJECT_ID('dbo.SeqCustomerDwKey','SO') IS NOT NULL DROP SEQUENCE dbo.SeqCustomerDwKey; GO CREATE SEQUENCE dbo.SeqCustomerDwKey AS INT START WITH 1 INCREMENT BY 1; GO
7
Zadatak 5: Kreiranje tabela Dimenzija
1. Napraviti tabelu Customers.
Koristite sledeće podatke kako biste kreirali tabelu.
Column name Data type Nullability
CustomerDwKey INT NOT NULL
CustomerKey INT NOT NULL
FullName NVARCHAR(150) NULL
EmailAddress NVARCHAR(50) NULL
BirthDate DATE NULL
MaritalStatus NCHAR(1) NULL
Gender NCHAR(1) NULL
Education NVARCHAR(40) NULL
Occupation NVARCHAR(100) NULL
City NVARCHAR(30) NULL
StateProvince NVARCHAR(50) NULL
CountryRegion NVARCHAR(50) NULL
Age Inherited Inherited
CurrentFlag BIT NOT NULL
Kod za kreiranje tabele Customers:
CREATE TABLE dbo.Customers ( CustomerDwKey INT NOT NULL, CustomerKey INT NOT NULL, FullName NVARCHAR(150) NULL, EmailAddress NVARCHAR(50) NULL, BirthDate DATE NULL, MaritalStatus NCHAR(1) NULL, Gender NCHAR(1) NULL, Education NVARCHAR(40) NULL, Occupation NVARCHAR(100) NULL, City NVARCHAR(30) NULL, StateProvince NVARCHAR(50) NULL, CountryRegion NVARCHAR(50) NULL, Age AS CASE WHEN DATEDIFF(yy, BirthDate, CURRENT_TIMESTAMP) <= 40 THEN 'Younger' WHEN DATEDIFF(yy, BirthDate, CURRENT_TIMESTAMP) > 50 THEN 'Older' ELSE 'Middle Age' END, CurrentFlag BIT NOT NULL DEFAULT 1, CONSTRAINT PK_Customers PRIMARY KEY (CustomerDwKey) ); GO
8
2. Napraviti tabelu Products.
Koristite sledeće podatke kako biste kreirali tabelu.
Column name Data type Nullability
ProductKey INT NOT NULL
ProductName NVARCHAR(50) NULL
Color NVARCHAR(15) NULL
Size NVARCHAR(50) NULL
SubcategoryName NVARCHAR(50) NULL
CategoryName NVARCHAR(50) NULL
Kod za kreiranje tabele Products:
CREATE TABLE dbo.Products ( ProductKey INT NOT NULL, ProductName NVARCHAR(50) NULL, Color NVARCHAR(15) NULL, Size NVARCHAR(50) NULL, SubcategoryName NVARCHAR(50) NULL, CategoryName NVARCHAR(50) NULL, CONSTRAINT PK_Products PRIMARY KEY (ProductKey) ); GO
3. Napraviti tabelu Dates.
Koristite sledeće podatke kako biste kreirali tabelu.
Column name Data type Nullability
DateKey INT NOT NULL
FullDate DATE NOT NULL
MonthNumberName NVARCHAR(15) NULL
CalendarQuarter TINYINT NULL
CalendarYear SMALLINT NULL
Kod za kreiranje tabele Dates:
CREATE TABLE dbo.Dates ( DateKey INT NOT NULL, FullDate DATE NOT NULL, MonthNumberName NVARCHAR(15) NULL, CalendarQuarter TINYINT NULL, CalendarYear SMALLINT NULL, CONSTRAINT PK_Dates PRIMARY KEY (DateKey) ); GO
9
Zadatak 6: KreiranjeFakt tabela
U uprošćenoj verziji jednog skladišta podataka, kreiraćemo jednu fakt tabelu.
1. Napraviti InternetSales fakt tabelu. Ova tabela je ista kao i fakt tabela FactInternetSales u
AdventureWorksDW2012 bazi.
Koristite sledeće podatke kako biste kreirali tabelu.
Column name Data type Nullability
InternetSalesKey INT NOT NULL
CustomerDwKey INT NOT NULL
ProductKey INT NOT NULL
DateKey INT NOT NULL
OrderQuantity SMALLINT NOT NULL
SalesAmount MONEY NOT NULL
UnitPrice MONEY NOT NULL
DiscountAmount FLOAT NOT NULL
Kod za kreiranje tabele InternetSales:
CREATE TABLE dbo.InternetSales ( InternetSalesKey INT NOT NULL IDENTITY(1,1), CustomerDwKey INT NOT NULL, ProductKey INT NOT NULL, DateKey INT NOT NULL, OrderQuantity SMALLINT NOT NULL DEFAULT 0, SalesAmount MONEY NOT NULL DEFAULT 0, UnitPrice MONEY NOT NULL DEFAULT 0, DiscountAmount FLOAT NOT NULL DEFAULT 0, CONSTRAINT PK_InternetSales PRIMARY KEY (InternetSalesKey) ); GO
2. Povezati fakt tabelu InternetSales sa tabelama dimenzija, koje smo kreirali u prethodnoj vežbi
kreiranjem spoljnih ključeva (FOREIGN KEY).
Kod za ove izmene:
ALTER TABLE dbo.InternetSales ADD CONSTRAINT FK_InternetSales_Customers FOREIGN KEY(CustomerDwKey) REFERENCES dbo.Customers (CustomerDwKey); ALTER TABLE dbo.InternetSales ADD CONSTRAINT FK_InternetSales_Products FOREIGN KEY(ProductKey) REFERENCES dbo.Products (ProductKey); ALTER TABLE dbo.InternetSales ADD CONSTRAINT FK_InternetSales_Dates FOREIGN KEY(DateKey) REFERENCES dbo.Dates (DateKey); GO
10
3. Kako bismo proverili da smo dobro napravili tabele i veze između tabela, napravićemo dijagram, u koji
ćemo dodati četiri tabele iz baze TK463DW.
Sačuvajte dijagram kombinacijom tastera CTLR + S sa nazivom Cas_1_InternetSalesDW.
Dijagram bi trebalo da izgleda kao na slici.
Slika 6. Dijagram InternetSalesDW
Zadatak 7: Unošenje podataka u tabele
1. Ukoliko ste zatvorili SSMS, pokrenite ponovo i konektujte se na default SQL Server instancu . Otvorite
novi prozor upita klikom na ikonu ili prečicom CTRL + N.
2. Odaberite TK463DW bazu i izvršite sledeći kod za dodavanje podataka u Customers tabelu.
INSERT INTO dbo.Customers (CustomerDwKey, CustomerKey, FullName, EmailAddress, BirthDate, MaritalStatus, Gender, Education, Occupation, City, StateProvince, CountryRegion) SELECT NEXT VALUE FOR dbo.SeqCustomerDwKey AS CustomerDwKey, C.CustomerKey, C.FirstName + ' ' + C.LastName AS FullName, C.EmailAddress, C.BirthDate, C.MaritalStatus, C.Gender, C.EnglishEducation, C.EnglishOccupation, G.City, G.StateProvinceName, G.EnglishCountryRegionName FROM AdventureWorksDW2012.dbo.DimCustomer AS C INNER JOIN AdventureWorksDW2012.dbo.DimGeography AS G ON C.GeographyKey = G.GeographyKey; GO
11
3. Izvršite sledeći kod za dodavanje podataka u Products tabelu.
INSERT INTO dbo.Products (ProductKey, ProductName, Color, Size, SubcategoryName, CategoryName) SELECT P.ProductKey, P.EnglishProductName, P.Color, P.Size, S.EnglishProductSubcategoryName, C.EnglishProductCategoryName FROM AdventureWorksDW2012.dbo.DimProduct AS P INNER JOIN AdventureWorksDW2012.dbo.DimProductSubcategory AS S ON P.ProductSubcategoryKey = S.ProductSubcategoryKey INNER JOIN AdventureWorksDW2012.dbo.DimProductCategory AS C ON S.ProductCategoryKey = C.ProductCategoryKey; GO
4. Izvršite sledeći kod za dodavanje podataka u Dates tabelu.
INSERT INTO dbo.Dates (DateKey, FullDate, MonthNumberName, CalendarQuarter, CalendarYear) SELECT DateKey, FullDateAlternateKey, SUBSTRING(CONVERT(CHAR(8), FullDateAlternateKey, 112), 5, 2) + ' ' + EnglishMonthName, CalendarQuarter, CalendarYear FROM AdventureWorksDW2012.dbo.DimDate; GO
5. Izvršite sledeći kod za dodavanje podataka u InternetSales tabelu.
INSERT INTO dbo.InternetSales (CustomerDwKey, ProductKey, DateKey, OrderQuantity, SalesAmount, UnitPrice, DiscountAmount) SELECT C.CustomerDwKey, FIS.ProductKey, FIS.OrderDateKey, FIS.OrderQuantity, FIS.SalesAmount, FIS.UnitPrice, FIS.DiscountAmount FROM AdventureWorksDW2012.dbo.FactInternetSales AS FIS INNER JOIN dbo.Customers AS C ON FIS.CustomerKey = C.CustomerKey; GO
12
Zadatak 8: Prebacivanje podataka iz jedne baze u drugu
1. Pokrenite deo za import podataka (desni klik na bazu TK463DW → Tasks → Import Data…)
Slika 7. Import podataka
2. Na početnoj strani za import i export podataka (SQL Server Import and Export Wizard), kliknite na
dugme Next.
3. Na sledećem ekranu se bira baza iz koje će se prebacivati podaci. Ukoliko opcija Server name nije
popunjena, potrebno je uneti naziv instance na kojoj se nalazi baza ili uneti tačku kako bi SSMS sam
pronasao default instancu.
Za opciju Database odaberite bazu AdventureWorksDW2012.
Na slici 8 je prikazana ispravno urađena treća stavka vežbe.
13
Slika 8. Odabir baze iz koje se prebacuju podaci
Kliknite na Next.
4. Sledeći ekran predstavlja odabir baze na koju se prebacuju podaci. Ukoliko opcija Server name nije
popunjena, potrebno je uneti naziv instance na kojoj se nalazi baza ili uneti tačku kako bi SSMS sam
pronašao default instancu.
Za opciju Database odaberite bazu TK463DW.
Na slici 9 je prikazana ispravno urađena četvrta stavka vežbe.
14
Slika 9. Odabir baze u koju se prebacuju podaci
Kliknite na Next.
15
5. Na sledećem ekranu možemo odabrati da li želimo da podatke izvlačimo uz pomoć već postojećih
objekata iz baze ili uz pomoć upita. U ovom primeru čekiraćemo drugu opciju (Write a query to specify
the data to transfer), a zatim kliknite na dugme Next.
Slika 10. Biranje načina za import podataka
16
6. Na sledećem ekranu unesite sledeći kod:
SELECT C.CustomerDwKey, FIS.ProductKey, FIS.OrderDateKey as DateKey, FIS.OrderQuantity, FIS.SalesAmount, FIS.UnitPrice, FIS.DiscountAmount FROM AdventureWorksDW2012.dbo.FactInternetSales AS FIS INNER JOIN TK463DW.dbo.Customers AS C ON FIS.CustomerKey = C.CustomerKey;
Ekran sa ispravno unetim kodom izgleda kao na slici.
Slika 11. Ispravno popunjen ekran sa kodom za import podataka
Kliknite na Next.
17
7. U sledećem koraku je potrebno promeniti destination na tabelu dbo.InternetSales. Ovom izmenom
se SQL Server Import and Export Wizard-u govori da podatke iz prve baze unese u tabelu
dbo.InternetSales.
Slika 12. Biranje destination tabele za import
Klikom na dugme Edit Mappings otvara se prozor za povezivanje kolona. Na slici 13 se vidi da je SQL
Server Import and Export Wizard ispravno povezao kolone iz upita i tabele u koju će se podaci uneti.
18
Slika 13. Mapiranje source i destination kolona
Kliknite na dugme OK kako biste zatvorili prozor Column Mappings i kliknite na Next.
8. Na sledećem koraku, koji je prikazan na slici 14, možete odabrati da li želite da pokrenete import
podataka odmah, ili da sačuvate paket, kako biste ga izvršili kasnije, ili obe opcije. Ostavićemo default
opciju (Run immediately).
Slika 14. Čuvanje i pokretanje importa
19
Kliknite na Next.
9. Na sledećem ekranu, kako biste pokrenuli import podataka, kliknite na Finish.
Slika 15. Pokretanje importa
10. Nakon pokretanja otvoriće se automatski prozor za import. Ukoliko je sve u redu, na istom ekranu
ćete dobiti povratnu informaciju o uspešnosti import-a.
20
Slika 16. Uspešno završen import podataka
11. Klikom na dugme Close zatvarate SQL Server Import and Export Wizard.
NAPOMENA:
U sklopu foldera za prvu vežbu nalazi se i kod za celu vežbu.