Histórico de revisões
Data Versão Descrição Autor
C
ONTEÚDO¾ Passos para a instalação do SQL Server ¾ O MS SQL Server
¾ Conceitos relacionais
¾ Bancos de dados do SQL ServerQ
¾ SQL Server Mangement Studio e Query Analyser ¾ Design Lógico do Banco de Dados
¾ Criação de banco de dados e de Logon ¾ Criação de banco de dados e de Logon ¾ Entidade, relacionamentos e atributos
¾ Criação de tabelas, inserção, recuperação, alteração e deleção de dados
I
NSTALAÇÃO DOMS SQL S
ERVER2008
R2
I
NSTALAÇÃO DOMS SQL S
ERVER2008
R2
• Baixe e instale Microsoft .NET Framework 3.5 Service Pack 1
Contém muitos recursos do que oFramework 2.0 e 3.0, e inclui. NET Framework 2.0 Service Pack 1 e. NET Framework 3.0 Service Pack 1.
• Baixe e instale o MS SQL Server 2008 R2 contendo o SQL Server Management Studio.
MS SQL S
ERVER- I
NTRODUÇÃOMS SQL S
ERVERI
NTRODUÇÃO• Trata-se de um Sistema Gerenciador de Bancos de Dados, Relacionais, SGBDR, que funciona unicamente sob sistema
i l Wi d
operacional Windows.
• Para facilitar o gerenciamento e utilização do mesmo, utiliza-se o MS SQL Server Management Studio.g
• Uma vez instalado o SQL Server são criadas automaticamente quatro databases: master – master – model – tempdb db – msdb
• Depois, podemos criar e instalar nossos próprios bancos de dados livremente, os quais serão os bancos de dados de usuário.
Sistemas Gerenciadores de Banco de Dados
Sistemas Gerenciadores de Banco de Dados
• Um sistema gerenciador de banco de dados (SGBD) como o SQL Server é responsável por armazenar dados de forma confiável e
iti fá il ã t li ã d d d U SGBD permitir fácil recuperação e atualização desses dados. Um SGBD
relacional armazena dados de forma relacional, isto é na forma de
Conceitos relacionais
Conceitos relacionais
• Um registro [record] ou linha [row] é um grupo de variáveis com tipos de dados diferentes, que armazenam dados relacionados. Por
l i t d t d d l ti d t
exemplo, um registro pode conter os dados relativos a um produto vendido pela empresa, como descrição, código de identificação, quantidade em estoque.
• Um campo [field] ou coluna [column] é um dos itens de informação dentro de uma linha da tabela, como a descrição da informação. • Uma tabela [table] é um conjunto de linhas (registros) com a mesma • Uma tabela [table] é um conjunto de linhas (registros) com a mesma
estrutura, armazenados de forma permanente em disco.As tabelas são compostas de linhas(row) ou registros (record) e
l ( l ) fi ld( ) colunas(column) ou field(campo).
Conceitos relacionais
Conceitos relacionais
• Um banco de dados [database] é um conjunto de tabelas que
contêm dados relacionados. Por exemplo, um sistema de contas a d i t b d d d d t
pagar poderia ter um banco de dados de contas a pagar, com uma tabela para duplicatas, uma tabela para bancos, uma tabela para contas etc.
• Um índice [index, plural 'indexes' ou 'indices'] é um mecanismo que permite pesquisar rapidamente por linhas em uma tabela, dado o valor de uma determinada coluna (ou algumas colunas) da tabela valor de uma determinada coluna (ou algumas colunas) da tabela. Um índice primário ou chave primária define um valor único, que não pode ser repetido em outras linhas da tabela.
U lt [ ] é did d i b d d d
• Uma consulta [query] é um pedido de pesquisa no banco de dados, que permite obter todo um subconjunto da tabela ou de várias
BANCOS DE DADOS (DATABASES)
BANCOS DE DADOS (DATABASES)
master Bancos de dados do sistema System model tempdb msdb sistema System tables System tables System tables System tables System SAU02 System SAU05 Bancos de System tables System tables Bancos de dados de usuário
O BANCO DE DADOS MASTER
O BANCO DE DADOS MASTER
• Controla os bancos de dados de usuários e a operação do SQL
Server, por isso os dados armazenados em suas tabelas são críticos
d t b k t li d
e deve-se sempre manter back up atualizado. • Mantém:
– contas de login;g ;
– processos em andamento;
– mensagens de erro do sistema;
– databases armazenados no servidor;databases armazenados no servidor; – espaço alocado a cada database; – locks ativos;
– databases disponíveis e dispositivos de dump;databases disponíveis e dispositivos de dump;
O BANCO DE DADOS MODEL
O BANCO DE DADOS MODEL
• Fornece um protótipo (template) para um novo banco de dados. Contém as tabelas de sistema que serão inseridas em cada banco d d d d á i A i t i l t õ d
de dados de usuário. As seguintes implementações podem ser realizadas neste database:
– tipos definidos pelo usuário (user datatypes), regras (rules), padrões (defaults), stored procedures;
– usuários que terão acesso a todos os bancos adicionados ao sistema (administradores);
i ilé i d ã t d t á i t ( t t )
O BANCO DE DADOS TEMPDB
O BANCO DE DADOS TEMPDB
• Providencia um espaço de armazenamento para tabelas e outras ações temporárias ou intermediárias, tais como resultados que
l lá l GROUP BY ORDER BY DISTINCT
envolvam a cláusula GROUP BY, ORDER BY, DISTINCT e cursores (CURSORS). Possui as seguintes características:
– criado automaticamente no DEVICE MASTER (atenção, DEVICE e DATABASE são coisas diferentes);
– seu conteúdo é apagado quando o usuário fecha a conexão, exceto para tabelas temporárias globais;
d b é d ( t d) t úd é d l t t
– quando o banco é parado (stoped) seu conteúdo é apagado completamente; – pode ser colocado em memória RAM.
O BANCO DE DADOS MSDB
O BANCO DE DADOS MSDB
• Providencia suporte ao serviço SQL Executive Service (o qual
fornece serviços de schedulle de tarefas, replicação, gerenciamento d l t ) P i i t t b l d i t
de alertas). Possui as seguintes tabelas de sistema:
– sysalerts - armazena informações sobre todos os alertas definidos por usuários; – sysoperators - informações sobre os operadores;
– sysnotifications - relaciona quais operadores devem receber quais alertas; – systasks - mantém informações sobre todas as tarefas definidas por usuários; – syshistory - informações a respeito de quando um alerta e uma tarefa foram
executados, se com sucesso ou falha, identificação do operador, data e hora da execução;
LOCALIZAÇÃO DO BANCO DE DADOS
LOCALIZAÇÃO DO BANCO DE DADOS
• Os bancos de dados ficam armazenados em arquivos físicos que recebem o nome de DEVICES. Um DEVICE ocupa sempre a
tid d d di f l d ti d i d d t t d quantidade de disco que for a ele destinada, independentemente da existência ou não de bancos de dados em seu interior e
independentemente da taxa de ocupação destes databases. Ou seja, mesmo vazio ele ocupará a porção de disco a ele destinada com seu arquivo.
LOCALIZAÇÃO DO BANCO DE DADOS
LOCALIZAÇÃO DO BANCO DE DADOS
• Neste exemplo existe um banco de dados instalado no drive C: (o disco rígido do equipamento), o qual contém um arquivo chamado NOMEARQ DAT fi i t 500 Mb t d di
NOMEARQ.DAT, que fisicamente ocupa 500 Mbytes do disco.
Porém, dentro deste DEVICE, que recebe o nome lógico de TESTE, existe somente um banco de dados, de nome lógico MEUBANCO, o qual ocupa somente 40 Mbytes do espaço disponível.
Unidade de disco C:
DEVICE TESTE (C:\SQL\NOMEARQ.DAT)
Banco de dados MEUBANCO, ocupando 40 Mbytes de
espaço no DEVICE TESTE
P
RIMEIRO ACESSO AO BANCO DE DADOSEXECUTAR SQL SERVER MANAGEMENT STUDIO
SQL Server Enterprise Manager
O "SQL Server Enterprise Manager" é a porta de entrada para a Interface de usuário do SQL Server. Para iniciá-lo, selecione Iniciar, Programas, Microsoft SQL Server.
SQL Server Query Analyzer
O Analizador de Consultas [Query Analyzer] fornece uma interface gráfica para analisar [ y y ] g p o plano de execução de uma ou múltiplas consultas, ver os dados de resultado, e
DESIGN LÓGICO DO BANCO DE DADOS
DESIGN LÓGICO DO BANCO DE DADOS
Design Lógico do Banco de Dados
• Descreve a organização do banco de dados
É i d b bl d ó i
• É criado com base no problema de negócio • Produz o schema do banco de dados
O schema do banco de dados defini: • Qual informação será armazenada • A organização dos dadosg ç
• Quais tabelas serão necessárias • A definição das colunas
A implementação do design lógico do banco de dados inclui: • Determinar espaço de armazenamento
• Criação das tabelas com definição de chaves primárias e • Criação das tabelas com definição de chaves primárias e estrangeiras.
INTEGRIDADE DE DADOS
INTEGRIDADE DE DADOS
Depois de criar o banco de dados, o implementador pode criar
restrições para certos dados, criar valores default e funcionalidades d i i t ti i f õ d id d õ t i
administrativas e gerenciar funções do servidor de operações, tais como geração de alertas.
PROGRAMAR O SERVIDOR DO BANCO DE DADOS
PROGRAMAR O SERVIDOR DO BANCO DE DADOS
Envolve escrever processamentos batch, scripts, triggers e stored
procedures que podem garantir a i9ntegridade dos dados, prover infos procedures que podem garantir a i9ntegridade dos dados, prover infos aos usuários, automatizar.
PLANEJAR O DESIGN DO BANCO DE DADOS
PLANEJAR O DESIGN DO BANCO DE DADOS
Determine as necessidades do negócio e dos usuários considerando qual o problema de negócio você está tentando resolver e as tarefas
q p g
CRIANDO BANCOS DE DADOS
CRIANDO BANCOS DE DADOS
• Você cria um banco de dados [database] definindo o seu nome, nome do arquivo, tamanho inicial, tamanho máximo e taxa de
i I i i l t d i i t d d i t (SA) crescimeno. Inicialmente apenas o administrador do sistema (SA) pode criar, modificar o tamanho e excluir os bancos de dados, mas ele pode conceder permissões a outros usuários para isso.
• Depois de fazer excluir ou fazer alterações no do banco de dados é recomendável fazer backup do banco de dados master, porque ele contém informações sobre cada banco de dados Mais
contém informações sobre cada banco de dados. Mais
especificamente, a tabela de sistema sysdatabases, do banco de dados master, armazena as informações sobre todos os bancos de dados
O Log de Transações [Transaction Log]
O Log de Transações [Transaction Log]
• Quando você cria um banco de dados, é criado também um log de
transações [transaction log] para esse banco de dados. Esta é uma
á d d t d lt õ f it b d d d ã
área reservada onde todas as alterações feitas no banco de dados são registradas. Qualquer comando SQL que modifica os dados registra as alterações antes no log de transações, depois nas tabelas alteradas. • Quando é executado um comando que altera os dados (insere, altera ou exclui linhas numa tabela), essa alteração é salva primeiro no log de transações, escrevendo diretamente em disco. Os dados são alterados ç , apenas em memória.
• Periodicamente, o SQL Server faz um checkpoint, um processo que grava em disco as alterações feitas em memória (Geralmente um
grava em disco as alterações feitas em memória. (Geralmente um checkpoint é feito uma vez por minuto).
• O log de transações permite recuperar o banco de dados a um estado consistente em caso de uma pane no sistema
Prática 1 – Criar banco de dados dbProcessadoraCartao
Prática 1 Criar banco de dados dbProcessadoraCartao
CRIAÇÃO DE LOGON NO SQL SERVER
CRIAÇÃO DE LOGON NO SQL SERVER
Os usuários dos bancos de dados necessitam de logon SQL Server para se conectar a ele, devidamente configurado para seu perfil de acesso. O acesso é realizado após autenticação do usuário no
banco.
Tipos de autenticação:
• Autenticação do Windows (Recomendado, mais segura) • Autenticação do SQl Server (Necessário de acordo com a
aplicação)
Com o botão direito na pasta Segurança/Logons selecionar Novo Logon e criar logon usuarioOperadoraCartao com senha usuarioOperadoraCartao.
CRIAÇÃO DE LOGON NO SQL SERVER
CRIAÇÃO DE LOGON NO SQL SERVER
Em nosso estudo de caso, vamos utilizar com autenticação no SQL Server.
Para criar um logon do SQL Server que usa Autenticação do SQL Server (SQL Server Management Studio)
• No SQL Server Management Studio, abra o Pesquisador de Objetos e expanda a pasta da instância de servidor onde criar o novo logon.
• Clique com o botão direito na pasta Segurança, aponte para Novo e clique em Logon.
• Na página Geral, insira um nome para o novo logon na caixa Nome de logon. • Selecione Autenticação do SQL Server. O modo de Autenticação do Windows é a opção mais segura
opção mais segura.
• Insira uma senha para o logon.
• Selecione as opções de diretiva de senha que devem ser aplicadas ao novo logon. Em geral, a diretiva de imposição de senha é a opção mais segura.
CRIAÇÃO DE LOGON NO SQL SERVER
CRIAÇÃO DE LOGON NO SQL SERVER
Na página Mapeamento de Usuário, selecionar o banco de dados criado bdProcessadoraCartao e a associação db_owner para o usuário.
PRÁTICA 3 - TESTAR LOGON CRIADO
PRÁTICA 3 TESTAR LOGON CRIADO
Verifique o logon criado, solicitando nova conexão e digitando os dados do mesmo.
SISTEMAS DE ARQUIVOS X BANCOS RELACIONAIS
SISTEMAS DE ARQUIVOS X BANCOS RELACIONAIS
O acesso a informações em sistemas de processamento de dados
que não utilizam Sistemas Gerenciadores de Bancos de Dados (SGBDs), é feito pelo acesso seqüencial a um ou mais arquivos.
Cabe ao desenvolvedor criar mecanismos de recuperação da informação. Com a utilização de um SGBD, porém, o acesso fica diferente:
pede-se as informações ao gerenciador de banco de dados e elas são devolvidas pelo mesmo.
ENTIDADES, RELACIONAMENTOS E ATRIBUTOS
ENTIDADES, RELACIONAMENTOS E ATRIBUTOS
Quanto mais organizadas estiverem as informações no Banco de Dados, mais fácil será a “conversa” com o Gerenciador de Banco de Dados.
Para isso, criou-se um modelo chamado Modelo de Entidades e Relacionamentos, do qual fazem parte três elementos
Entidades
Entidades
Entidades RelacionamentosRelacionamentosRelacionamentos AtributosAtributosAtributos
Existe como
Existe como TabelasTabelas Colunas
ou Tabelas Colunas (ou Campos) numa Tabela Colunas (ou Campos) numa Tabela Exemplos Exemplos Informação de um cliente; informação de Informação de um cliente; informação de did Pedidos de um cliente Pedidos de um cliente Nome, Endereço, Telefone do Nome, Endereço, Telefone do li t um pedido
ENTIDADES, RELACIONAMENTOS E ATRIBUTOS
ENTIDADES, RELACIONAMENTOS E ATRIBUTOS
EntidadesUma entidade é um objeto de interesse do qual podem ser colecionadas informações.
El ã t d t b l
Elas são representadas por tabelas.
Exemplos: tabela de clientes; tabela de pedidos de clientes.
Relacionamentos Relacionamentos
As entidades podem ser relacionadas entre si pelos relacionamentos. Por exemplo: relacionamento entre a entidade de clientes e a entidade de pedidos
( “clientes fazem pedidos”) ( clientes fazem pedidos ).
ENTIDADES, RELACIONAMENTOS E ATRIBUTOS
ENTIDADES, RELACIONAMENTOS E ATRIBUTOS
AtributosSão as características das entidades. São representadas pelas colunas das tabelas.
P l d d li t
Por exemplo: nome, endereço do cliente.
Uma das colunas de uma tabela é uma primary key (chave primária), indicando que uma coluna deve ter um valor único para identificar a linha inteira.
O gerenciador fa o controle para q e não entrem d as linhas com o mesmo alor O gerenciador faz o controle para que não entrem duas linhas com o mesmo valor
na coluna que é primary key. clientes clientes
identificador nome endereço telefone ……...
1001 João ……. 5554444 ~~~ clientes clientes 1002 1003 1004 1005 Alberto Franciso Maria Sônia ……. …….. …….. ……... 4687999 NULL 5678900 0988855 ~~~ ~~~ ~~~ 1006 Roberto ………. NULL ~~~
TABELAS
• O nome da tabela deve ser único no banco de dadosO nome da tabela deve ser único no banco de dados
• Nome das colunas devem ser únicos dentro de uma tabela
CHAVE PRIMÁRIA (PRIMARY KEY PK)
CHAVE PRIMÁRIA (PRIMARY KEY – PK)
• Toda tabela deve ter uma chave primária
• Pode haver apenas uma chave primária em uma tabelaPode haver apenas uma chave primária em uma tabela • A chave primária não deve permitir valor nulo ou duplicado
CHAVE ESTRANGEIRA (FOREIGN KEY – FK)
CHAVE ESTRANGEIRA (FOREIGN KEY – FK)
• Armazena a chave primária de outra tabela
• O SQL Server verifica os valores da chave estrangeira com a PKO SQL Server verifica os valores da chave estrangeira com a PK associada
• Prove link entre duas tabelas
• Reforça a integridade referencial garantindo que para cada valor de • Reforça a integridade referencial, garantindo que para cada valor de FK existe um valor válido PK de utra tabela
PRÁTICA 4 - CRIAR TABELAS NO BANCO DE DADOS
PRÁTICA 4 CRIAR TABELAS NO BANCO DE DADOS
Vamos iniciar criando as 2 tabelas abaixo.
Analise os detalhes do projeto no documento Estudo de Caso - Projeto Processadora Cartões de Crédito .docx
Veja todos os detalhes das mesmas no arquivo Projeto Processadora Cartões de Crédito - MER tabelas.xlsx
Table Name Entity Name
Table Name Entity Name
tbBandeirasCartaoCredito Bandeiras Cartão de Crédito
Comando SQL para inclusão de registro
INSERT INTO nome_tabela (lista-de-campos) VALUES (lista_dados)
Onde:
• Nome_tabela: nome da tabela no qual será inserido os dados.
Li t d d l b ã l
• Lista-de-campos: nome das colunas que receberão os valores.
• Lista-dados: valores que serão inseridos na tabela. Estes campos devem estar na mesma ordem descrita em lista-de-campos, todos separados por vírgula. Se for utilizado um comando SELECT o mesmo deve retornar a mesma quantidade de colunas com os mesmos tipos de dados especificados
li t d
Comando SQL para seleção de registro(s)
SELECT * FROM nome_tabela Onde:
Onde:
• Nome_tabela: nome da tabela na qual os campos serão pesquisados. • O asterisco indica para que a consulta retorne todos os campos da tabela.
Selecionando colunas específicas para a consulta SELECT campo1, campo2, ...
FROM nome_tabela Onde:
Inserir registros na tabela bandeirasCartaoCredito
Insert into dbo.bandeirasCartaoCredito(descricaoBandeira) values('Visa') Prática: Insira as bandeiras Visa, Mastercard, Diners e Amex na tabela bandeirasCartaoCredito.
go
Recuperar todos os registros inseridos na tabela
p
g
Inserir registros na tabela tbEstabelecimentosComerciais
insert into tbEstabelecimentosComerciais(razaoSocial, nomeFantasia, CPF) Prática: Insira os dados de pelo menos duas empresas fictícias na tabela tbEstabelecimentosComerciais.
values('Cybertech CSE Informática', 'SytCom', '02.270.349-0001/79') go