Você está na página 1de 24

Laboratório de Análise de Dados – Banco de Dados Relacional Microsoft SQL Server 1

Faculdade de Economia, Administração e Contabilidade

EAD5754

Análise Preditiva de Dados

Laboratório de Análise de Dados


Microsoft SQL SERVER

Banco de Dados Relacional

Prof. Dr. Antonio Geraldo da Rocha Vidal

2019

EAD5754 – Análise Preditiva de Dados - Prof. Antonio Geraldo Vidal


Laboratório de Análise de Dados – Banco de Dados Relacional Microsoft SQL Server 2

Sumário

Laboratório de Banco de Dados Relacional .................................................................................. 3


Introdução ................................................................................................................................. 3
Bancos de Dados Relacionais .................................................................................................... 3
Modelo de Dados .................................................................................................................. 5
Linguagens de Bancos de Dados ......................................................................................... 11
O que você aprenderá neste Laboratório ............................................................................... 12
Requisitos ................................................................................................................................ 12
Etapas ...................................................................................................................................... 12
Cenário deste Laboratório ...................................................................................................... 13
Etapa 1: Criar um Banco de Dados Relacional ........................................................................ 13
Etapa 2: Criar Tabelas no Banco de Dados Relacional ............................................................ 15
Etapa 3: Inserir, consultar, atualizar e excluir dados das Tabelas........................................... 17
Etapa 5: Criar uma Visão de Dados no Banco Relacional ........................................................ 20
Etapa 6: Consultar e conhecer o Banco de Dados da Adventure Works ................................ 20
Etapa 7: Consultar e conhecer o Data Warehouse da Adventure Works ............................... 22
Etapa Final: Entrega das Evidências do Laboratório no SISNE ................................................ 24
Referências .............................................................................................................................. 24

EAD5754 – Análise Preditiva de Dados - Prof. Antonio Geraldo Vidal


Laboratório de Análise de Dados – Banco de Dados Relacional Microsoft SQL Server 3

Laboratório de Banco de Dados Relacional


Introdução
Dados corporativos são ativos estratégicos fundamentais para as organizações e administrar sua utilização
é vital. As organizações utilizam bancos de dados relacionais para armazenar e gerenciar grandes volumes
de dados que são utilizados em sistemas de informação que apoiam os seus negócios. O objetivo do
gerenciamento de dados é fornecer a infraestrutura para transformar dados brutos em informações
corporativas e conhecimentos de alta qualidade para a tomada de decisão e otimização de ações.
Os dados de uma organização são um ativo valioso, porém sua manutenção pode tornar-se um verdadeiro
fardo. O propósito de um gerenciamento de dados apropriado é facilitar e reduzir o ônus da manutenção
dos dados, além de aprimorar o poder do seu uso.

Bancos de Dados Relacionais


Conjuntos de dados são constituídos por Objetos que representam entidades, eventos ou fatos de
interesse de uma organização, por exemplo:
• Entidades: clientes, pessoas, produtos, matérias-primas, equipamentos etc.; ou seja, recursos
utilizados ou com os quais os negócios são realizados.
• Eventos ou Fatos: vendas, compras, pagamentos, recebimentos, cotações etc.; ou seja,
ocorrências, operações ou transações através das quais os negócios são realizados.
Quando armazenados em um Banco de Dados Relacional, os Objetos de interesse do negócio são
normalmente referidos como registros ou linhas de um arquivo ou tabela de dados.
Um Atributo representa uma característica ou dimensão de um Objeto. Por exemplo, atributos
descrevendo o objeto cliente podem incluir:
• Número de Identificação (ID)
• Nome
• Sobrenome
• Endereço
• Cidade
• Município
• CEP
• Telefone
• E-mail
• Sexo
• Data de Nascimento
• Etc.
Quando armazenados em um Banco de Dados, os Atributos são referidos como colunas ou campos dos
registros ou linhas de uma tabela de dados.
Quanto ao seu valor ou conteúdo, os Atributos podem ser de diversos tipos:
• Nominais: valores ou nomes de “coisas”, normalmente caracteres de texto.
• Binários: apenas dois valores opostos, 0 ou 1 ou F (falso) ou V (verdadeiro).
• Ordinais: valores que possuem uma ordem e/ou intensidade ordenada, como “pequeno”,
“médio” e “grande”.
• Numéricos: valores que representam quantidades em números inteiros ou reais.
• Cronológicos: valores que representam o tempo.
• Geográficos: valores que representam a localização geográfica.
Os Atributos também pode ser:
• Discretos: quando possuem um número finito de valores possíveis, por exemplo, sexo, país,
região, etc.
• Contínuos: quando possuem infinitos valores possíveis.

EAD5754 – Análise Preditiva de Dados - Prof. Antonio Geraldo Vidal


Laboratório de Análise de Dados – Banco de Dados Relacional Microsoft SQL Server 4

Usando a Tecnologia da Informação (TI), todos os objetos de interesse de um negócio ou organização são
normalmente armazenados numa estrutura lógica denominada Banco de Dados ou Base de Dados. Em
um banco de dados relacional os Objetos que correspondem a entidades e eventos de interesse do
negócio são armazenados em registros ou linhas de tabelas de dados. Cada atributo, característica ou
qualidade que descreve um Objeto (uma entidade ou um evento em particular), é armazenado em uma
coluna ou campo da tabela de dados. Um registro é, portanto, formado por um conjunto de atributos
(valores de dados) que descrevem um Objeto (entidade ou evento) de interesse de uma organização.
Os objetos ou registros, por sua vez são armazenados em arquivos de dados. Um arquivo ou tabela de
dados é formado por um conjunto de registros ou objetos que descrevem através dos atributos as
mesmas entidades ou eventos; por exemplo, todos os clientes ou todas as vendas de uma organização.
Cada objeto em uma tabela de dados deve conter pelo menos um atributo (ou dado) que identifique de
forma única este objeto, para que ele possa ser recuperado (lido), atualizado e classificado, ou seja,
processado e utilizado de forma adequada. Esse atributo identificador único de cada objeto contido numa
tabela de dados é chamado de chave primária ou primary-key (PK).
Chaves secundárias são outros atributos do objeto ou registro que contém alguma característica
identificadora da entidade ou evento, mas, em geral, não os identificam de forma única, sendo utilizados
apenas para fins de processamentos como ordenação e busca.
Chaves estrangeiras ou foreign-key (FK) são dados que permitem o relacionamento entre objetos ou
tabelas de dados diferentes, por exemplo, como um evento venda sempre está relacionado a uma
entidade cliente, o dado identificador do cliente (chave-primaria) precisa fazer parte dos atributos da
venda (chave-estrangeira), de forma a permitir que saiba para qual cliente foi feita cada venda.
Assim, portanto, um banco de dados relacional é composto por um conjunto de arquivos ou tabelas de
dados que armazenam objetos de interesse do negócio. Uma tabela armazena um conjunto de objetos e
cada objeto é composto por um conjunto de atributos ou dados que o descrevem de acordo com o
interesse da organização. O dado em si corresponde ao valor ou conteúdo que está armazenado no campo
ou coluna reservado para cada atributo dentro das linhas das tabelas de dados.
A estrutura lógica de um arquivo de dados relacional é facilmente representada através de uma tabela.
Nesta tabela, as linhas correspondem aos objetos ou registros do arquivo e as colunas correspondem aos
atributos ou campos de dados descritivos de cada objeto. Cada coluna é identificada pelo nome do
atributo que será nela armazenado, enquanto que cada linha é identificada pela chave primária (PK) de
cada objeto. Na figura a seguir é representada a estrutura lógica típica de um banco de dados relacional,
bem como a representação dos arquivos ou tabelas de dados que o compõem.

BANCO DE
DADOS

TABELA TABELA TABELA TABELA TABELA


CLIENTE PRODUTO VENDA COMPRA ...... ....

Objeto Cliente Identificação (1) Nome do Cliente Endereço Cidade Estado

Objeto Cliente Identificação (2) Nome do Cliente Endereço Cidade Estado

Objeto Cliente Identificação (3) Nome do Cliente Endereço Cidade Estado

Objeto Cliente Identificação (N) Nome do Cliente Endereço Cidade Estado

Chave Primária Atributos (dados) do Cliente

EAD5754 – Análise Preditiva de Dados - Prof. Antonio Geraldo Vidal


Laboratório de Análise de Dados – Banco de Dados Relacional Microsoft SQL Server 5

Dependendo do porte e da natureza do empreendimento, um banco de dados corporativo normalmente


é composto por centenas de tabelas relacionadas. Cada tabela possui dezenas ou centenas de colunas de
dados e milhares ou milhões de linhas ou registros.
Entretanto, quando se trata do conceito de Big Data, o volume, a variedade e a velocidade (de obtenção)
dos dados é muito maior. Ou seja, muitas vezes não é possível estruturar estes dados em tabelas de um
banco de dados relacional. Mesmo que fosse, cada tabela teria que possuir um número de colunas e linhas
muito superior às capacidades normais de um banco de dados relacional. Portanto, em se tratando de Big
Data um banco de dados relacional muitas vezes não é a ferramenta mais adequada para trata-los. Porém
podem ser utilizados outros tipos de bancos de dados, denominados NoSQL, ou não relacionais. Os bancos
de dados NoSQL possuem estruturas de armazenamento e recursos de processamento mais adequados
para o tratamento dados com características de Big Data. Porém, em análise de dados, mesmo em se
tratando de um problema de Big Data, os bancos de dados relacionais ou SQL, são utilizados em conjunto
com os bancos de dados não relacionais ou NoSQL, como resultado do tratamento e preparação de dados
de Big Data para análise.
Um banco de dados relacional é, portanto, um agrupamento limitado, lógico e organizado de tabelas de
dados relacionadas. Em um banco de dados relacional os dados estão integrados e relacionados para que
um conjunto de softwares especializados forneça acesso a todos eles, reduzindo problemas de
redundância, isolamento e inconsistência de dados, além de oferecer segurança e integridade. Os
softwares aplicativos e os dados permanecem independentes entre si, ou seja, os softwares aplicativos
acessam o banco de dados para obter e atualizar as informações dos objetos de negócio que utilizam.
Bancos de dados relacionais centralizados mantêm todas as suas tabelas de dados em uma única
localização física. Bancos de dados relacionais distribuídos contém cópias completas de um banco de
dados ou partes do banco de dados, em mais de uma localização física.
O software (ou conjunto de softwares) que fornece acesso a um banco de dados relacional é conhecido
como Sistema de Gerenciamento de Banco de Dados Relacional - SGBDR ou Relational Database
Management System – RDBMS. Um RDBMS permite que uma organização centralize os dados, gerencie-
os com eficiência e os forneça para os softwares aplicativos que utiliza em seus sistemas de informação
empresariais ou de negócios.
Um RDBMS atua como uma interface entre os softwares aplicativos e as tabelas de dados físicas,
fornecendo com desempenho e segurança recursos para adicionar, excluir, manter, exibir, pesquisar,
selecionar, classificar, calcular e atualizar dados. Além disso, um RDBMS permite que, embora haja apenas
uma tabela física de dados, possa haver inúmeras visões ou exibições diferentes (tabelas virtuais) de
acordo com as necessidades de informação de cada aplicação. Cada visão pode conter dados de diversas
tabelas físicas relacionadas, podendo ser criadas para atender especificamente cada necessidade de
informação do negócio.

Modelo de Dados
Antes de se construir um banco de dados é necessário desenvolver um modelo dos dados que serão
utilizados pela organização. Em um modelo de dados, cada entidade ou evento de interesse do negócio
deve ser representado pelo menos por uma tabela de dados. Consequentemente, algo que não requeira
pelo menos dois dados para ser descrito não será uma entidade ou um evento, e sim um atributo ou dado
de outro objeto de informação. Desta forma, uma data não é uma entidade ou um evento, mas apenas
um dado ou atributo de uma entidade. Por exemplo: a "data de admissão" da entidade Funcionário, ou a
"data da compra" de uma transação de Compra.
Como regra geral, cada tabela de dados armazena os dados que descrevem entidades e eventos de
interesse dos processos de negócio da organização e que, consequentemente, farão parte de seu sistema
de informação. Um banco de dados é composto por várias tabelas de dados relacionadas umas às outras.
Assim, por exemplo, um cliente poderá estar relacionado a várias vendas, uma venda relacionada a vários
produtos vendidos, um vendedor relacionado a várias vendas, e assim por diante.
Uma vez que as entidades que formarão o banco de dados estão relacionadas de forma consistente e
lógica, será através desses relacionamentos que são geradas as informações para o negócio, como por
exemplo, “todos os produtos vendidos para um cliente”.

EAD5754 – Análise Preditiva de Dados - Prof. Antonio Geraldo Vidal


Laboratório de Análise de Dados – Banco de Dados Relacional Microsoft SQL Server 6

Para o desenvolvimento e entendimento de um banco de dados que será usado como base para os
sistemas de informação e ações de inteligência de negócios de uma organização, é preciso definir todas
as tabelas e seus respectivos dados e relacionamentos através de um modelo de dados.
O Modelo Relacional de Dados (RDM) é um diagrama gráfico através do qual são identificadas todas as
entidades ou tabelas que formarão o banco de dados da organização e definidos todos os
relacionamentos entre elas. Por esse motivo, o RDM é fundamental para o projeto do banco de dados de
uma organização ou projeto de pesquisa.
O RDM mostra os três tipos de relacionamento possíveis entre as entidades e eventos de interesse da
organização (ou tabelas de dados):
1. Um-para-um (1, 1);
2. Um-para-muitos (1, ∞ ou 1, N);
3. Muitos-para-muitos (∞, ∞ ou N, N).
No RDM cada entidade ou tabela de dados é representada por um retângulo, e o relacionamento entre
elas por uma linha unindo os retângulos. O tipo do relacionamento pode ser representado por vários
símbolos. Particularmente, neste texto adotaremos a notação utilizada pelo RDBMS Microsoft SQL Server,
representada por um par de símbolos nas extremidades da linha de relacionamento entre tabelas de
dados relacionadas:
• 1 identifica um relacionamento com uma única entidade da tabela;
• ∞ identifica um relacionamento com muitas ou N entidades.
Na figura a seguir é representado o relacionamento entre as tabelas PESSOA e DEPARTAMENTO. O
número 1 indica que uma pessoa trabalha em um único departamento. Por outro lado, o símbolo ∞ indica
que em um departamento podem trabalhar várias ou N ( ∞) pessoas.

Relacionamento 1:N entre PESSOA e DEPARTAMENTO


Portanto, uma pessoa está relacionada a um departamento e um departamento está relacionado a várias
ou N (∞) pessoas.

Relacionamento 1:N entre VENDA E ITENS DA VENDA


No exemplo da figura anterior, cada VENDA envolve um ou mais ITENS VENDIDOS (∞), mas um ITEM ou
produto vendido é parte de uma única VENDA (1).

EAD5754 – Análise Preditiva de Dados - Prof. Antonio Geraldo Vidal


Laboratório de Análise de Dados – Banco de Dados Relacional Microsoft SQL Server 7

Relacionamento N:N entre FORNECEDOR e PRODUTO


No exemplo da figura anterior cada FORNECEDOR fornece um ou mais produtos (∞) e cada PRODUTO
pode ser fornecido por um ou mais fornecedores (∞).
Um relacionamento entre duas entidades ou eventos poderá ser lido em qualquer uma das direções como
"entidade 1 está relacionada à entidade 2" ou a "entidade 2 está relacionada à entidade 1". Por exemplo,
"um fornecedor fornece um ou vários produtos (1, ∞)" ou "um produto é fornecido por um ou vários
fornecedores (1, ∞)".
Se duas entidades forem realmente distintas, cada uma deverá ter seus atributos ou dados armazenados
em uma tabela específica e identificados por um dado que distinga cada ocorrência das demais. Este dado
chave é fundamental para estabelecer relacionamentos entre entidades e, como já vimos, recebe a
denominação de chave primária da tabela (primary key ou PK). É identificado no diagrama do RDM pelo
símbolo de uma chavinha, como ilustrado nas figuras.
O relacionamento entre duas entidades ou tabelas é realizado através de uma chave de relacionamento,
denominada chave estrangeira (foreign key ou FK). A chave estrangeira é uma cópia da chave primária da
entidade principal (parent - mãe) na entidade relacionada (child - filha). A chave estrangeira recebe este
nome porque, na verdade, ela não é um atributo da entidade relacionada, mas sim a chave primária da
entidade à qual se relaciona. Portanto, como vem de fora é estrangeira.
No caso do relacionamento um-para-vários (1, ∞) entre disciplina e o professor que a leciona, temos a
chave primária da DISCIPLINA (código que a identifica) e a chave primária do PROFESSOR (número que o
identifica). Se admitirmos que um PROFESSOR está relacionado com uma única DISCIPLINA, então a chave
estrangeira, que realiza o relacionamento (código da disciplina) deve ser armazenada na tabela de dados
que descreve o professor, e aponta ou determina a disciplina por ele lecionada, como ilustrado pela figura.

Relacionamento e suas chaves


Portanto, na tabela PROFESSOR, o dado "código da disciplina" é uma chave estrangeira, significando que
se trata de um dado da tabela DISCIPLINA, mas que precisa existir na tabela PROFESSOR para permitir o
relacionamento entre ambas. Note que neste modelo de relacionamento entre DISCIPLINA e PROFESSOR,
um professor pode lecionar apenas uma única disciplina.
Outra forma alternativa de relacionar professores e disciplinas seria admitir que uma disciplina somente
pode ser ministrada por um professor e que este pode lecionar várias disciplinas. Isto significa incluir a

EAD5754 – Análise Preditiva de Dados - Prof. Antonio Geraldo Vidal


Laboratório de Análise de Dados – Banco de Dados Relacional Microsoft SQL Server 8

chave estrangeira "número do professor" na tabela DISCIPLINA e retirar a chave estrangeira “código da
disciplina” da tabela PROFESSOR.

Chave estrangeira PROFESSOR x DISCIPLINA


Embora estes dois modelos sejam possíveis para o relacionamento entre PROFESSOR e DISCIPLINA,
nenhum deles soluciona o problema, pois não satisfaz a realidade do negócio. Uma solução melhor deve
permitir que um professor possa lecionar várias disciplinas e que uma disciplina possa ser ministrada por
vários professores. Ou seja, o relacionamento entre PROFESSOR e DISCIPLINA não é um-para-um (1,1), ou
um-para-muitos (1, ∞), mas muito-para-muitos (∞, ∞).
Um relacionamento muitos-para-muitos sempre deve ser resolvido por dois relacionamentos um-para-
muitos (1, ∞), pois não é possível em um banco de dados relacional que tanto PROFESSOR como
DISCIPLINA recebam chaves estrangeiras. Neste caso, inicialmente, as chaves primárias de ambas as
entidades relacionadas ∞, ∞ deverão ser identificadas e, a seguir, uma "entidade associativa" deve ser
criada. A chave primária da entidade associativa será a combinação ou concatenação das chaves primárias
das duas entidades a serem associadas.
Para determinar os dados que deverão estar contidos na entidade associativa a ser criada, devemos
analisar o relacionamento muitos-para-muitos entre DISCIPLINA e PROFESSOR fazendo perguntas como:
• Qual deve ser a entidade que possui uma chave primária que corresponda à concatenação de
um determinado "código de disciplina" e de um determinado "número de professor"?
• Quais dados ou atributos dependem exclusivamente desta combinação?
• Quais dados podem ser obtidos se soubermos que estamos lidando com uma determinada
disciplina ministrada por um determinado professor?
Ao tentarmos responder estas perguntas verificaremos que diferentes disciplinas podem ser ministradas
por diferentes professores em determinados horários e salas de aula ou, por outro lado, diferentes
professores lecionam diferentes disciplinas em determinadas salas de aula e em determinados horários.
Portanto, como uma dada disciplina poderá ser ministrada por diferentes professores em diferentes salas
de aula e em diferentes horários, podemos criar uma entidade associativa denominada TURMA. Desta
forma, um determinado professor poderá lecionar várias disciplinas, cada uma em sua respectiva turma,
sala de aula e horário; assim como cada disciplina poderá ser ministrada por vários professores, e para
cada professor haverá uma determinada turma, sala de aula e horário.
A figura a seguir ilustra o relacionamento muitos-para-muitos (∞, ∞) entre DISCIPLINA e PROFESSOR
resolvido por um relacionamento um-para-muitos (1, ∞) entre DISCIPLINA e TURMA e um relacionamento
um-para-muitos (1, ∞) entre PROFESSOR e TURMA.

EAD5754 – Análise Preditiva de Dados - Prof. Antonio Geraldo Vidal


Laboratório de Análise de Dados – Banco de Dados Relacional Microsoft SQL Server 9

Relacionamento muitos-para-muitos resolvido


Para que uma TURMA seja identificada é necessário saber qual é a disciplina e qual é o professor. Assim,
a chave primária de TURMA deve ser composta pelo código da disciplina e número do professor ou então,
deve-se criar um código específico para identificar cada turma, que será a chave primária da TURMA.
Como o "código da disciplina" pertence à DISCIPLINA e o "número do professor" pertence ao PROFESSOR,
eles são chaves estrangeiras em TURMA.
Consideremos agora outro exemplo, o relacionamento entre VENDA e ITEM VENDIDO. Uma venda possui
vários itens ou produtos vendidos, mas um item ou produto vendido somente pode fazer parte de uma
venda. O relacionamento entre VENDA e ITEM VENDIDO é, portanto, um-para-muitos (1, ∞), como indica
a figura a seguir.

Relacionamento entre VENDA e ITEM VENDIDO


Consideremos agora o lado dos produtos. Deve haver um relacionamento entre ITEM VENDIDO e
PRODUTO. Como cada produto pode ser vendido várias vezes, o relacionamento deve ser um-para-muitos
(1, ∞), ou seja, um produto pode estar relacionado a vários itens vendidos. Para estabelecer o
relacionamento entre PRODUTO e ITEM VENDIDO, a chave primária de PRODUTO, CodigoProduto, precisa
aparecer como chave estrangeira em ITEM VENDIDO, como ilustra a figura a seguir.

Relacionamento entre ITEM VENDIDO e PRODUTO


Se agora considerarmos pelo lado dos clientes, verificaremos que para um mesmo cliente poderá haver
várias vendas e, portanto, o "código do cliente", identificador do cliente, deverá ser parte da tabela de
dados VENDA, mas não é parte de sua chave primária, pois apenas o "número da nota fiscal" por si só é
suficiente para identificar unicamente cada venda, como ilustrado na figura a seguir.

EAD5754 – Análise Preditiva de Dados - Prof. Antonio Geraldo Vidal


Laboratório de Análise de Dados – Banco de Dados Relacional Microsoft SQL Server 10

Relacionamento entre CLIENTE e VENDA


É claro que se um cliente está relacionado a várias vendas, cada venda está relacionada a vários itens
vendidos e cada item vendido a um produto e um produto a vários fornecedores, surge, então, um
conjunto mais amplo de relacionamentos um-para-muitos de objetos de interesse do negócio, como
ilustrado pela figura a seguir.

Relacionamento CLIENTE - VENDA - ITEM VENDIDO – PRODUTO – ORIGEM - FORNECEDOR


Não é necessário incluir o "código do cliente" também na tabela ITEM VENDIDO, pois se desejarmos
produzir um relatório que informe a quais clientes foram vendidos produtos, é possível pesquisar todos
os "números de notas fiscais" na tabela ITEM VENDIDO à procura dos produtos da tabela PRODUTO e
depois, usando estes números, pesquisar todos os clientes nas tabelas VENDA e CLIENTE.
No projeto de um banco de dados relacional, como no trecho exemplificado pela figura a seguir, devemos,
portanto, incluir chaves primárias e chaves estrangeiras nas tabelas, com o objetivo de criar os
relacionamentos necessários para a obtenção das informações que deverão ser fornecidas aos usuários.
A análise dos relacionamentos e dados chave que deverão ser incluídos em cada tabela de dados deve ser
feita com a ajuda do modelo de relacionamento de dados (RDM - Relational Data Model).

EAD5754 – Análise Preditiva de Dados - Prof. Antonio Geraldo Vidal


Laboratório de Análise de Dados – Banco de Dados Relacional Microsoft SQL Server 11

Conjuntos de Relacionamento para VENDAS e COMPRAS são “simétricos”

Linguagens de Bancos de Dados


Um sistema de gerenciamento de banco de dados relacional (RDBMS) contém cinco componentes
importantes:
1. Modelo de Dados: define como os dados são estruturados sendo mais utilizado o modelo
relacional.
2. Linguagem de Definição de Dados (DDL – Data Definition Language): é utilizada para especificar
os tipos de dados e criar a estrutura do banco de dados.
3. Linguagem de Manipulação de Dados (DML – Data Manipulation Language): é utilizada para
manipular os dados, contendo comandos que permitem a realização de diversas operações sobre
os dados, como selecionar, inserir, atualizar, excluir e classificar dados.
4. Linguagem de Controle de Dados (DCL – Data Control Language): é utilizada para controlar as
permissões de acesso e operações sobre os dados, isto é, quem pode ter qual tipo de acesso a
quais dados do banco de dados.
5. Dicionário de Dados (metadados): armazena as definições dos elementos e as características
dos dados, por exemplo, uso, representação física, posse (quem na organização é responsável
por manter os dados), autorização e segurança. Dicionários de dados são uma forma de
metadados. Metadados são informações sobre dados.
A linguagem SQL (Structured Query Language) é a linguagem padrão universalmente utilizada para a
implementação destes componentes por todos os bancos de dados relacionais. Originalmente
desenvolvida pela IBM, foi padronizada pelo American National Standards Institute (ANSI), tornando-se a
linguagem padrão dos modernos bancos de dados relacionais.

EAD5754 – Análise Preditiva de Dados - Prof. Antonio Geraldo Vidal


Laboratório de Análise de Dados – Banco de Dados Relacional Microsoft SQL Server 12

O que você aprenderá neste Laboratório


Este laboratório mostra como utilizar o Microsoft SQL Server Management Studio para gerenciar o banco
de dado relacional Microsoft SQL Server e executar comandos básicos da linguagem SQL.
Neste laboratório, você aprenderá a:
• Criar um banco de dados relacional.
• Criar tabelas num banco de dados relacional.
• Inserir, atualizar e excluir dados nas tabelas de um banco de dados relacional.
• Consultar dados em tabelas.
• Criar uma visão de dados envolvendo várias tabelas.
• Consultar o banco de dados exemplo da empresa Adventure Works.

Requisitos
Os componentes e ferramentas a seguir são necessários para este laboratório:
• Microsoft SQL Server: gerenciador de banco de dados relacional (SQL) da Microsoft
• Microsoft SQL Server Management Studio: ferramenta para administração do banco de dados
SQL Server da Microsoft.
• Banco de dados de exemplo Adventure Works: banco de dados da empresa Adventure Works,
que utilizaremos neste e nos próximos laboratórios de análise de dados.
Todos estes componentes podem ser obtidos gratuitamente, em português, no SISNE – Laboratório de
Sistemas de Negócios (www.idigital.fea.usp.br) ou através dos seguintes endereços:
• SQL Server: https://imagine.microsoft.com/pt-br/catalog
• Bancos de dados exemplo da Adventure Works: http://sqlserversamples.codeplex.com/
Além disso, você deve atender aos seguintes pré-requisitos para concluir com êxito este laboratório:
• Você deve ser um membro do grupo de Administradores locais no seu computador.
• Você deve ser um membro do grupo de Administradores do banco de dados Microsoft SQL Server
instalado no seu computador.

Etapas
Este laboratório é dividido nas seguintes etapas:
1. Criar um Banco de Dados Relacional
Nesta etapa, você criará um banco de dados relacional no gerenciador de bancos de dados
Microsoft SQL Server.
2. Criar tabelas no Banco de Dados Relacional
Nesta etapa, você criará algumas tabelas que comporão o banco de dados criado na etapa
anterior, e as relacionará através de suas chaves-primárias e estrangeiras.
3. Inserir, atualizar e excluir dados das Tabelas
Nesta etapa, você manipulará as tabelas criadas na etapa anterior, inserindo, atualizando e
excluindo dados.
4. Consultar dados das Tabelas
Nesta etapa, você consultará os dados que foram inseridos nas tabelas na etapa anterior.

EAD5754 – Análise Preditiva de Dados - Prof. Antonio Geraldo Vidal


Laboratório de Análise de Dados – Banco de Dados Relacional Microsoft SQL Server 13

5. Criar uma Visão de dados no Banco Relacional


Nesta etapa, você criará uma visão de dados que envolverá duas ou mais tabelas criadas,
permitindo consultar os dados nelas armazenados de forma mais prática e completa, de acordo
com suas necessidades.
6. Consultar dados do Banco de Dados Transacional da Adventure Works
Nesta etapa, você terá acesso ao banco de dados da empresa Adventure Works, fabricante de
bicicletas e acessórios para bicicletas, que será utilizado neste laboratório. O objetivo será
familiarizar-se com os dados que descrevem as operações da Adventure Works e começar a
imaginar como eles poderiam ser utilizados para melhorar o desempenho dos negócios da
empresa.
7. Consultar dados do Data Warehouse da Adventure Works
Nesta etapa, você terá acesso ao data warehouse da empresa Adventure Works, fabricante de
bicicletas e acessórios para bicicletas, que será utilizado neste e nos próximos laboratórios. O
objetivo será familiarizar-se com os dados que descrevem as dimensões e os fatos de negócio
relevantes para a Adventure Works e começar a analisar como eles poderiam ser utilizados para
melhorar o desempenho dos negócios da empresa.

Cenário deste Laboratório


Está disponível no SISNE um tutorial completo e bastante didático (em inglês) sobre a linguagem SQL.
Sugerimos que você dê uma boa olhada nele e o tenha em mãos para facilitar a realização deste
laboratório e aumentar seus conhecimentos sobre SQL, fundamental para um analista de dados que
procura agregar inteligência aos negócios.
Este laboratório é composto por duas partes. Na primeira realizaremos operações básicas com bancos de
dados relacionais e na segunda utilizaremos um banco de dados e um data warehouse exemplo para nos
familiarizarmos com sua estrutura e conteúdo. Este exemplo, em vários idiomas, menos em português,
baseia-se nos dados de uma empresa fictícia denominada Adventure Works.
A Adventure Works é uma grande empresa multinacional que produz e distribui bicicletas e componentes
para bicicletas para mercados comerciais na América do Norte, Europa e Ásia. A sede da Adventure Works
é em Bothell, Washington, onde a empresa emprega 500 trabalhadores. Além disso, a Adventure Works
emprega várias equipes de vendas regionais por toda a sua base de mercado.
Recentemente a Adventure Works adquiriu uma fábrica pequena, a Importadores Neptuno, situada no
México. A Importadores Neptuno fabrica vários subcomponentes importantes para a linha de produtos
da Adventure Works. Esses subcomponentes são transportados para as instalações de Bothell para a
montagem do produto final. A Importadores Neptuno se tornou o fabricante e o distribuidor exclusivo do
grupo para produtos de bicicletas de passeio.
Para oferecer suporte às necessidades de informação do seu negócio, a empresa possui um sistema de
gestão empresarial integrado (sistema ERP – Enterprise Resource Planning) que armazena os dados
operacionais e transacionais da empresa no banco de dados AdventureWorks que analisaremos neste
laboratório.

Etapa 1: Criar um Banco de Dados Relacional


Para criar um novo Banco de Dados
1. No menu do Windows, clique em Iniciar, aponte para Todos os Aplicativos, e clique em
Microsoft SQL Server e depois em Microsoft SQL Server Management Studio. Sugerimos que
você fixe na tela inicial do Windows o Microsoft SQL Server Management Studio, pois o
utilizaremos com frequência.
2. Você será solicitado a se conectar no Servidor definindo:
a. O Tipo de Servidor: deverá ser “Mecanismo de Banco de Dados”;
b. O Nome do Servidor: deverá ser o nome do seu dispositivo (ou notebook);

EAD5754 – Análise Preditiva de Dados - Prof. Antonio Geraldo Vidal


Laboratório de Análise de Dados – Banco de Dados Relacional Microsoft SQL Server 14

c. A Autenticação: deverá ser “Autenticação do Windows”.

3. Em seguida, clique no botão “Conectar”.


4. O ambiente de administração do banco de dados do Microsoft SQL Server é aberto. Clique na
árvore à esquerda sobre o [+] de Bancos de Dados para expandir este ramo e visualizar os bancos
de dados existentes, conforme mostra a figura a seguir.

5. Para criar um novo banco de dados, clique o botão “Nova Consulta” na barra de botões, logo
acima da árvore de objetos do banco de dados. Note que agora uma janela de edição em branco
será apresentada, na qual você poderá digitar e executar comandos da linguagem SQL.
6. Para criar o seu primeiro banco de dados, que denominaremos FEA, digite o comando abaixo e
depois clique o botão “!Executar”, logo acima da árvore de elementos do banco de dados.
CREATE DATABASE FEA
7. Se tudo tiver dado certo, você receberá a mensagem “Comando(s) concluído(s) com êxito.”
Muito bem, você criou com êxito o banco de dados FEA. Emocionante, não é mesmo?!
8. Clique com o botão direito do mouse sobre o ramo “Banco de Dados” e escolha a opção
“Atualizar” do menu que será apresentado para ver que o seu novo banco FEA já está lá! Clique
o sinal [+] do seu banco de dados para expandir os seus elementos componentes.
9. Clique o sinal [+] das Tabelas do seu banco de dados para expandi-las. Não, ainda não haverá
nenhuma tabela de dados, pois será justamente o que faremos na próxima etapa.

EAD5754 – Análise Preditiva de Dados - Prof. Antonio Geraldo Vidal


Laboratório de Análise de Dados – Banco de Dados Relacional Microsoft SQL Server 15

Etapa 2: Criar Tabelas no Banco de Dados Relacional


Para criar a Tabela FEAGRUPO
1. Clique no botão “Nova Consulta” e digite (ou cole) o comando apresentado a seguir na nova
janela de edição de comandos que será apresentada. Este comando cria a tabela FEAGRUPO,
suas colunas e índices de acesso. Um índice de acesso é um elemento associado à uma tabela de
dados que a ordena segundo a chave definida e aumenta o desempenho do banco de dados para
encontrar dados específicos que pertençam à essa chave.
2. Após digitar o comando, clique o botão “!Executar”. Se tudo tiver dado certo, você receberá a
mensagem “Comando(s) concluído(s) com êxito.”.
USE FEA
GO
CREATE TABLE FEAGRUPO (
idGrupo int IDENTITY(1,1) PRIMARY KEY,
codGrupo varchar(20) NOT NULL,
nomGrupo varchar(100) NOT NULL,
codDisciplina char(7) NOT NULL,
anoSemestre varchar(5) NOT NULL,
datAtualizacao datetime NOT NULL)
GO
CREATE UNIQUE INDEX IDX_CODGRUPO ON FEAGRUPO (codGrupo)
GO
CREATE INDEX IDX_NOMGRUPO ON FEAGRUPO (nomGrupo)
GO

Para criar a Tabela FEAPESSOA


1. Clique no botão “Nova Consulta” e digite (ou cole) o comando apresentado a seguir na nova
janela de edição de comandos que será apresentada. Este comando cria a tabela FEAPESSOA,
suas colunas e índices de acesso e diversas restrições (CONSTRAINT) que não permitirão que
dados incorretos sejam nela alimentados.
2. Após digitar o comando, clique o botão “!Executar”. Se tudo tiver dado certo, você receberá a
mensagem “Comando(s) concluído(s) com êxito.”.
USE FEA
GO
CREATE TABLE FEAPESSOA (
idPessoa int IDENTITY(1,1) PRIMARY KEY,
numCPF char(11) NOT NULL,
numUSP int NULL,
nomPessoa varchar(100) NOT NULL,
codGenero bit NOT NULL,
datNascimento date NOT NULL,
nomFormacao varchar(200) NOT NULL,
areaPesquisa varchar(200) NOT NULL,
nivelCurso char(2) NOT NULL,
nomOrganizacao varchar(200) NULL,
eMail varchar(200) NOT NULL,
notaExcel int,
notaBanco int,
notaProgramacao int,
notaEstatistica int,
notaAnalytics int,
notaHardware int,
datAtualizacao DATETIME NOT NULL)
GO
ALTER TABLE FEAPESSOA
ADD CONSTRAINT CHK_NIVEL CHECK (nivelCurso IN ('GD','MD','DO'))
GO

EAD5754 – Análise Preditiva de Dados - Prof. Antonio Geraldo Vidal


Laboratório de Análise de Dados – Banco de Dados Relacional Microsoft SQL Server 16

ALTER TABLE FEAPESSOA


ADD CONSTRAINT CHK_EXCEL CHECK (notaExcel>=0 AND notaExcel<=5)
GO
ALTER TABLE FEAPESSOA
ADD CONSTRAINT CHK_BANCO CHECK (notaBanco>=0 AND notaBanco<=5)
GO
ALTER TABLE FEAPESSOA
ADD CONSTRAINT CHK_PROG CHECK (notaProgramacao>=0 AND notaProgramacao<=5)
GO
ALTER TABLE FEAPESSOA
ADD CONSTRAINT CHK_ESTAT CHECK (notaEstatistica>=0 AND notaEstatistica<=5)
GO
ALTER TABLE FEAPESSOA
ADD CONSTRAINT CHK_ANALYTICS CHECK (notaAnalytics>=0 AND notaAnalytics<=5)
GO
ALTER TABLE FEAPESSOA
ADD CONSTRAINT CHK_HARD CHECK (notaHardware>=0 AND notaHardware<=5)
GO

CREATE UNIQUE INDEX IDX_NUMCPF ON FEAPESSOA (numCPF)


GO
CREATE UNIQUE INDEX IDX_NUMUSP ON FEAPESSOA (numUSP)
GO
CREATE INDEX IDX_NOMPESSOA ON FEAPESSOA (nomPessoa)
GO

Para criar a Tabela FEAGRUPOPESSOA


1. Clique no botão “Nova Consulta” e digite (ou cole) o comando apresentado a seguir na nova
janela de edição de comandos que será apresentada. Este comando cria a tabela
FEAGRUPOPESSOA, que relacionará as pessoas aos grupos, suas colunas, chave primária
(PRIMARY KEY) e chaves estrangeiras (FOREIGN KEY).
2. Após digitar o comando, clique o botão “!Executar”. Se tudo tiver dado certo, você receberá a
mensagem “Comando(s) concluído(s) com êxito.”.
USE FEA
GO
CREATE TABLE FEAGRUPOPESSOA (
idGrupo int NOT NULL,
idPessoa int NOT NULL,
datAdmissao date NOT NULL,
datDesligamento date NULL,
desObservacao varchar(500) NULL,
datAtualizacao datetime NOT NULL)

ALTER TABLE FEAGRUPOPESSOA


ADD CONSTRAINT PK_GRUPOPESSOA PRIMARY KEY (idGrupo, idPessoa)
GO

ALTER TABLE FEAGRUPOPESSOA


ADD FOREIGN KEY (idGrupo) REFERENCES FEAGRUPO (idGrupo)
GO
ALTER TABLE FEAGRUPOPESSOA
ADD FOREIGN KEY (idPessoa) REFERENCES FEAPESSOA (idPessoa)
GO

Para criar o Modelo de Dados do Banco FEA


1. Clique com o botão direito sobre o banco de dados FEA na árvore de objetos à esquerda e escolha
a opção “Atualizar” no menu que será apresentado. Clique em seguida no sinal [+] do ramo
Tabelas para expandi-lo e verifique se as tabelas que você acabou de criar são apresentadas.

EAD5754 – Análise Preditiva de Dados - Prof. Antonio Geraldo Vidal


Laboratório de Análise de Dados – Banco de Dados Relacional Microsoft SQL Server 17

2. Escolha cada uma das tabelas criadas e expanda seus elementos clicando sobre o respectivo sinal
de [+]. Em particular, expanda suas colunas, chaves, índices e restrições para verificar a estrutura
de cada tabela criada. Legal, não?!
3. Mais legal ainda será criar um diagrama com o Modelo de Dados do banco FEA. Para isso clique
no sinal [+] do ramo “Diagramas de Banco de Dados” e confirme com “Sim” caso o SQL Server
perguntar se você deseja criar os objetos para a diagramação do banco de dados.
4. Depois disso, clique com o botão direito do mouse sobre o ramo “Diagramas de Banco de Dados”
e escolha a opção “Novo diagrama de Banco de Dados”.
5. Será aberta uma nova janela para edição do Diagrama do banco de dados e você será solicitado
a selecionar as tabelas que deverão compor este diagrama. Selecione todas elas (Shift-Clique),
clique o botão “Adicionar” e depois o botão “Fechar” (requer alguma habilidade de Windows).
6. Pronto! Se tudo tiver dado certo, o diagrama ou Modelo de Dados do seu banco de dados será
apresentado na janela conforme abaixo.

7. Para fechar a janela do diagrama basta clicar sobre o botão [X] no topo. Note que o SQL Server
perguntará se você deseja gravar o diagrama solicitando que você digite um nome para ele.
Digite por exemplo “ModeloBanco” e clique o botão “OK”.
8. Para fechar as outras janelas de consulta/comando que estiverem abertas, clique sobre o botão
[X] no topo de cada uma; nestes casos não será necessário gravar ou salvar nenhum comando.
Porém caso você queira, o procedimento é equivalente, só que os comandos serão armazenados
nos arquivos texto (com extensão .SQL) que você indicar.

Etapa 3: Inserir, consultar, atualizar e excluir dados das Tabelas


Para inserir dados nas tabelas
1. Bem, agora que você já é praticamente um cientista em bancos de dados relacionais, vamos
inserir alguns dados nas tabelas do seu banco utilizando o comando SQL INSERT.
2. Para cada inserção, clique no botão “Nova Consulta” para que uma nova tela de edição de
consulta/comando seja aberta e digite os comandos abaixo de forma adequada para cada tabela,
substituindo os dados apresentados pelos dados dos elementos do seu grupo.
3. Para cada inserção você receberá a mensagem “1 linha afetada”.

EAD5754 – Análise Preditiva de Dados - Prof. Antonio Geraldo Vidal


Laboratório de Análise de Dados – Banco de Dados Relacional Microsoft SQL Server 18

Inserção de dados na Tabela FEAGRUPO


INSERT INTO FEAGRUPO (codGrupo, nomGrupo, codDisciplina, anoSemestre,
datAtualizacao)
VALUES ('G01','Grupo Um','EAD5754','20172',GETDATE())
GO

Inserção de dados na Tabela FEAPESSOA


INSERT INTO FEAPESSOA (
numCPF,
numUSP,
nomPessoa,
codGenero,
datNascimento,
nomFormacao,
areaPesquisa,
nivelCurso,
nomOrganizacao,
eMail,
notaExcel,
notaBanco,
notaProgramacao,
notaEstatistica,
notaAnalytics,
notaHardware,
datAtualizacao)
VALUES (
'95024131800',
86344,
'ANTONIO GERALDO DA ROCHA VIDAL',
1,
'08/03/1958',
'Engenharia Civil e Administração',
'Análise de Dados e Informações',
'DO',
'FEA/USP',
'vidal@usp.br',
4,
4,
4,
3,
4,
5,
GETDATE())
GO

Inserção de dados na Tabela FEAGRUPOPESSOA

INSERT INTO FEAGRUPOPESSOA (


idGrupo,
idPessoa,
datAdmissao,
datDesligamento,
desObservacao,
datAtualizacao)
VALUES (
1,
1,
GETDATE(),
NULL,
'Aprendendo SQL',
GETDATE())

EAD5754 – Análise Preditiva de Dados - Prof. Antonio Geraldo Vidal


Laboratório de Análise de Dados – Banco de Dados Relacional Microsoft SQL Server 19

GO
Para consultar dados das tabelas
1. Clique no botão “Nova Consulta” para que uma nova tela de edição de consulta/comando seja
aberta e digite os comandos abaixo.
2. Para cada consulta você receberá a mensagem “N linha(s) afetada(s)”.
SELECT * FROM FEAGRUPO
GO
SELECT * FROM FEAPESSOA
GO
SELECT * FROM FEAGRUPOPESSOA
GO

Para atualizar dados das tabelas


1. Para atualização de dados das tabelas, clique no botão “Nova Consulta” para que uma nova tela
de edição de consulta/comando seja aberta e digite os comandos abaixo de forma adequada
para cada tabela, substituindo os dados apresentados pelos dados dos elementos do seu grupo.
Note que você precisará indicar, através da cláusula WHERE do comando UPDATE, qual é o
registro ou objeto de dado que deseja alterar. Se você não especificá-lo corretamente, todos os
registros ou objetos da tabela serão afetados. Cuidado!!
2. Para cada atualização você receberá a mensagem “1 linha afetada”.
UPDATE FEAGRUPO SET
nomGrupo = 'Novo Nome do Grupo'
WHERE idGrupo=1
GO
UPDATE FEAPESSOA SET
nomPessoa = 'Novo Nome da Pessoa',
nomFormacao = 'Nova Formação da Pessoa'
WHERE idPessoa=1
GO
Para excluir dados das tabelas
1. Para exclusão de dados das tabelas, clique no botão “Nova Consulta” para que uma nova tela de
edição de consulta/comando seja aberta e digite os comandos abaixo de forma adequada para
cada tabela, substituindo os dados apresentados pelos dados dos elementos do seu grupo. Note
que você precisará indicar, através da cláusula WHERE do comando DELETE, qual é o registro ou
objeto de dado que deseja excluir. Se você não o especificar corretamente, todos os registros ou
objetos da tabela serão excluídos. Cuidado Duplo!!
2. Para cada atualização você receberá a mensagem “N linha(s) afetada(s)”.
3. Caso ocorram problemas, você receberá uma mensagem indicando o problema. Tente
interpretá-la para entender o que aconteceu. Se não conseguir, pergunte para o professor, afinal,
ele está aí para tirar dúvidas.
DELETE FROM FEAGRUPO WHERE idGrupo=1
GO
DELETE FROM FEAPESSOA WHERE idPessoa=1
GO

EAD5754 – Análise Preditiva de Dados - Prof. Antonio Geraldo Vidal


Laboratório de Análise de Dados – Banco de Dados Relacional Microsoft SQL Server 20

Etapa 5: Criar uma Visão de Dados no Banco Relacional


Para criar uma visão de dados no Banco Relacional
1. Para criar uma visão de dados (VIEW) envolvendo dados de diversas tabelas, clique no botão
“Nova Consulta” para que uma nova tela de edição de consulta/comando seja aberta e digite os
comandos a seguir:
CREATE VIEW vFeaTurma AS
SELECT
G.codGrupo,
G.codDisciplina,
G.nomGrupo,
P.numUSP,
P.nomPessoa,
P.nomFormacao,
P.areaPesquisa
FROM FEAGRUPO G
INNER JOIN FEAGRUPOPESSOA GP ON GP.idGrupo = G.idGrupo
INNER JOIN FEAPESSOA P ON P.idPessoa = GP.idPessoa
GO

Após a criação da VIEW (ou visão) execute o comando a seguir para ver o resultado. Note que a VIEW
permite que você relacione diversas tabelas (no exemplo as três) e consulte simultaneamente os seus
dados através de um único comando de consulta SELECT.
SELECT * FROM vFeaTurma
GO

Etapa 6: Consultar e conhecer o Banco de Dados da Adventure Works


Nesta etapa vamos conhecer e explorar o banco de dados transacional da Adventure Works que
utilizaremos posteriormente em laboratório de análise de dados.
Restaurando o Back-up do Banco de Dados Adventure Works
1. Posicione o apontador do mouse no elemento “Banco de Dados” da árvore de elementos do SQL
Server e clique o botão direito.
2. No menu que será apresentado escolha a opção “Restaurar Banco de Dados”.
3. Na janela “Restaurar Banco de Dados” que será apresentada, escolha como “Origem” a opção
Dispositivo e clique sobre o botão [...] à direita para selecionar o arquivo de backup (.BAK) a ser
restaurado.
4. Na nova caixa de diálogo apresentada, clique o botão “Adicionar” e selecione no disco do seu
computador o arquivo ADWBD.BAK (já descompactado), que foi baixado do SISNE.
5. Após o arquivo selecionado ser apresentado na área “Mídia de backup” clique o botão “OK”.
6. De volta para a janela “Restaurar Banco de Dados”, clique o botão “OK” novamente e aguarde
até que o banco de dados seja restaurado.
7. Após o término da restauração, posicione novamente o apontador do mouse no elemento
“Banco de Dados” da árvore de elementos do SQL Server, clique o botão direito do mouse e
escolha a opção “Atualizar” do menu. Verifique se o banco de dados AdventureWorks aparece
agora na relação de bancos de dados do SQL Server.
Consultando os Diagramas do Banco de Dados Adventure Works
1. Expanda os elementos do banco de dados Adventure Works clicando sobre o sinal [+].
2. Expanda os Diagramas de Bancos de Dados do Adventure Works clicando sobre o sinal [+].
3. Dê um duplo-clique sobre cada um dos diagramas apresentados (COMPRAS, PESSOA,
PRODUÇÃO, RECURSOS_HUMANOS e VENDAS) para abri-lo e visualizá-lo.
4. Observe as tabelas, os relacionamentos e os dados apresentados em cada diagrama.

EAD5754 – Análise Preditiva de Dados - Prof. Antonio Geraldo Vidal


Laboratório de Análise de Dados – Banco de Dados Relacional Microsoft SQL Server 21

Consultando as Tabelas do Banco de Dados Transacional AdventureWorks

Vamos agora nos colocar no papel de gerentes de negócio da Adventure Works. Através dos dados
armazenados em seu banco de dados transacional, vamos procurar informações que nos permitam
melhorar o desempenho dos seus negócios. Desta forma, inicialmente vamos procurar conhecer os seus
produtos, clientes e as suas vendas realizando simples consultas nas tabelas do seu banco de dados.
1. Clique sobre o banco de dados AdventureWorks para selecioná-lo e, em seguida, clique o botão
“Nova Consulta” para abrir a janela de edição de consultas e comandos do SQL Server
Management Studio.
2. Para alcançar os objetivos desta etapa, vamos consultar e analisar os dados das seguintes tabelas
através de comandos SQL e suas variações:
a. Produtos: SELECT * FROM Production.ProductCategory;
b. Produtos: SELECT * FROM Production.ProductSubcategory;
c. Produtos: SELECT * FROM Production.ProductModel;
d. Produtos: SELECT * FROM Production.Product;
e. Produtos: SELECT * FROM Production.ProductDescription;
f. Vendas: SELECT * FROM Sales.Customer;
g. Vendas: SELECT * FROM Sales.CustomerAddress;
h. Pessoas: SELECT * FROM Person.AddressType;
i. Pessoas: SELECT * FROM Person.Address;
j. Pessoas: SELECT * FROM Person.StateProvince;
k. Pessoas: SELECT * FROM Person.CountryRegion;
l. Vendas: SELECT * FROM Sales.Individual;
m. Vendas: SELECT * FROM Sales.SalesOrderHeader;
n. Vendas: SELECT * FROM Sales.SalesOrderDetail;
o. Vendas: SELECT * FROM Sales.SalesReason;
p. Vendas: SELECT * FROM Sales.SalesOrderHeaderSalesReason;
q. Vendas: SELECT * FROM Sales.SpecialOffer;
r. Vendas: SELECT * FROM Sales.SpecialOfferProduct;
3. Como você pode observar, devido à natureza transacional do banco de dados da Adventure
Works, os dados de interesse estão distribuídos em diversas tabelas. Para melhor poder analisa-
los teríamos que:
a. Selecionar apenas os dados de interesse de cada tabela;
b. Relacionar as tabelas, criando visões, de forma a obter informações mais completas
sobre os nossos objetos de interesse de análise: CLIENTES, PRODUTOS e VENDAS;

EAD5754 – Análise Preditiva de Dados - Prof. Antonio Geraldo Vidal


Laboratório de Análise de Dados – Banco de Dados Relacional Microsoft SQL Server 22

c. Transformar alguns dados que estão armazenados como documentos XML


(Demographics), pois para análise e geração de conhecimento eles são muito
relevantes, ao passo que para execução de transações não.
d. Várias outros tratamentos e transformações, além destes sugeridos, também seriam
necessários para podermos trabalhar melhor com os dados e extrair deles melhores
informações para orientar estrategicamente os negócios da Adventure Works.
4. Certamente não vale a pena a área de negócio da Adventure Works fazer todos estes
tratamentos de dados toda vez que precisar tomar decisões. Assim, ela encomendou para a sua
área de TI um Data Warehouse que já lhes forneça os dados numa estrutura mais adequada para
análise.

Etapa 7: Consultar e conhecer o Data Warehouse da Adventure Works


Felizmente a área de TI da Adventure Works percebeu que não seria nada produtivo e adequado que os
analistas de dados e de negócio consultassem dados diretamente do banco de dados transacional. Assim,
de acordo com as necessidades do negócio da Adventure Works, em conjunto com os analistas de dados
e negócios, construíram e disponibilizaram um data warehouse para estes últimos desenvolverem seus
projetos de análise de dados.
Felizmente o banco de dados transacional da Adventure Works é único e centralizado, além de ser de
excelente qualidade. Desta forma, foi relativamente fácil construir o data warehouse. Porém, na maioria
dos casos reais, não é isso o que acontece: normalmente há vários bancos ou fontes de dados, a qualidade
dos dados em cada um deles é diferente, há dados redundantes e inconsistentes entre eles, os dados não
estão padronizados, isto é, em cada fonte de dados cada dado pode ter significado diferente, etc.
Nesta etapa vamos consultar e conhecer o data warehouse da Adventure Works, que iremos utilizar nos
próximos laboratórios de análise de dados.
Restaurando o Back-up do Data Warehouse Adventure Works
1. Posicione o apontador do mouse no elemento “Banco de Dados” da árvore de elementos do SQL
Server e clique o botão direito.
2. No menu que será apresentado escolha a opção “Restaurar Banco de Dados”.
3. Na janela “Restaurar Banco de Dados” que será apresentada, escolha como “Origem” a opção
Dispositivo e clique sobre o botão [...] à direita para selecionar o arquivo de backup (.BAK) a ser
restaurado.
4. Na nova caixa de diálogo apresentada, clique o botão “Adicionar” e selecione no disco do seu
computador o arquivo ADWDW.BAK (já descompactado), que foi baixado do SISNE.
5. Após o arquivo selecionado ser apresentado na área “Mídia de backup” clique o botão “OK”.
6. De volta para a janela “Restaurar Banco de Dados”, clique o botão “OK” novamente e aguarde
até que o banco de dados seja restaurado.
7. Após o término da restauração, posicione novamente o apontador do mouse no elemento
“Banco de Dados” da árvore de elementos do SQL Server, clique o botão direito do mouse e
escolha a opção “Atualizar” do menu. Verifique se o banco de dados AdventureWorksDW
aparece agora na relação de bancos de dados do SQL Server.
Consultado os Diagramas do Data Warehouse Adventure Works DW
1. Expanda os elementos do data warehouse Adventure Works DW clicando sobre o sinal [+].
2. Expanda os Diagramas de Bancos de Dados do Adventure Works clicando sobre o sinal [+].
3. Dê um duplo-clique sobre o diagrama MODELO para abri-lo e visualizá-lo.
4. Observe as tabelas, os relacionamentos e os dados apresentado no diagrama.
5. O data warehouse AdventureWorksDW foi obtido a partir do banco de dados transacional
AdventureWorks, de acordo com as necessidades e objetivos de análise definidos pela empresa
Adventure Works.

EAD5754 – Análise Preditiva de Dados - Prof. Antonio Geraldo Vidal


Laboratório de Análise de Dados – Banco de Dados Relacional Microsoft SQL Server 23

Consultado as Tabelas do Data Warehouse AdventureWorksDW


1. Felizmente a área de TI da Adventure Works compreendeu e atendeu o pedido da área de
negócio e construiu e alimenta um data warehouse para facilitar o trabalho dos analistas de
dados e negócio. Vamos, então, consulta-lo.
2. Clique sobre o banco de dados AdventureWorksDW para selecioná-lo. Expanda as tabelas do
data warehouse e verifique que elas são em número bem menor do que o banco de dados
original que lhe deu origem; isso sem dúvida facilitará o trabalho dos analistas;
3. Em seguida, clique o botão “Nova Consulta” para abrir a janela de edição de consultas e
comandos do SQL Server Management Studio.
4. Para consultar e analisar os dados sobre Produtos, Vendas e Clientes armazenados no data
warehouse da Adventure Works vamos executar os seguintes comandos SQL:
a. Produtos: SELECT * FROM DimProduct;
b. Produtos:
SELECT
ProductAlternateKey
,EnglishProductName
,ListPrice
,DealerPrice
,ProductLine
,ModelName
,EnglishDescription
FROM DimProduct

c. Clientes: SELECT * FROM DimCustomer


d. Clientes:
SELECT CustomerKey
,GeographyKey
,Title
,FirstName
,MiddleName
,LastName
,BirthDate
,MaritalStatus
,Gender
,EmailAddress
,YearlyIncome
,TotalChildren
,EnglishEducation
,EnglishOccupation
,HouseOwnerFlag
,NumberCarsOwned
,CommuteDistance
FROM DimCustomer

e. Vendas: SELECT * FROM FactInternetSales;

EAD5754 – Análise Preditiva de Dados - Prof. Antonio Geraldo Vidal


Laboratório de Análise de Dados – Banco de Dados Relacional Microsoft SQL Server 24

f. Vendas:
SELECT ProductKey
,OrderDateKey
,ShipDateKey
,CustomerKey
,PromotionKey
,OrderQuantity
,UnitPrice
,UnitPriceDiscountPct
,DiscountAmount
,ProductStandardCost
,TotalProductCost
,SalesAmount
,TaxAmt
,Freight
FROM FactInternetSales

Avalie os resultados das consultas através do data warehouse da Adventure Works. Não ficou bem melhor
do que realizá-las diretamente no banco de dados transacional?
Pronto agora com os dados armazenados no data warehouse os analistas de dados e a área de negócio já
podem dizer para os dirigentes da Adventure Works o que eles precisam fazer para “dobrar” o seu lucro.
SERÁ???
Parabéns! Você concluiu com sucesso o Laboratório de Banco de Dados.

Etapa Final: Entrega das Evidências do Laboratório no SISNE


Você deverá entregar o backup do banco de dados FEA criado neste laboratório no SISNE. Para gravar o
backup do banco de dados FEA siga os seguintes passos:
1. No Pesquisador de Objetos do SSMS selecione o banco de dados FEA e clique o botão direito do
mouse;
2. No menu que será apresentado escolha a opção Tarefas e no próximo menu a opção Fazer
Backup;
3. Na janela de Backup de Banco de Dados que será apresentada, escolha o destino do backup em
Fazer backup para: disco e, em seguida, clique o botão Adicionar;
4. Na janela Selecionar Destino do Backup defina o caminho e o Nome do arquivo que deverá ser
gravado. Normalmente utiliza-se a extensão .BAK para arquivos de backup e clique o botão OK.
5. Finalmente, clique novamente o botão OK para gravar o backup do banco FEA no arquivo .BAK
definido.
6. O arquivo de backup do banco FEA deve ser entregue no SISNE como evidência da elaboração
deste laboratório.

Referências
• Documentação e Tutoriais do Microsoft SQL Server
Microsoft
• Apostila SQL Tutorial – tutorialspoint.com

EAD5754 – Análise Preditiva de Dados - Prof. Antonio Geraldo Vidal

Você também pode gostar