Escolar Documentos
Profissional Documentos
Cultura Documentos
Students to Business
Infraestrutura – 2ª Fase
Bancos de Dados
Objetivo Deste Curso
- Conceitos
- Modelo Entidade-Relacionamento
- Ágebra Relacional
- Modelo Relacional
- Linguagem SQL
- Microsoft SQL Server
- Integração com Linguagens de Programação
- ADO.NET
Conceitos
Banco de Dados
Repositório de Informações com um objetivo
SGBD – Sistema Gerenciador de Bancos de Dados
-Relacional
- Híbrido Relacional OO
Banco de Dados Relacional
1970: E. F. Codd apresenta o modelo relacional de
dados – Relational DBMS - RDBMS.
1. Completeza
2. Minimalidade
3. Correção (deve ser correto)
4. Flexibilidade
5. Expressividade
Modelo Entidade-Relacionamento (MER)
- Derivação:
- Modelo Lógico (Relacional)
- Modelo físico (SGBD)
Banco de Dados
Modelo Entidade-Relacionamento (MER)
- Entidade
- Relacionamento
- Atributo
Modelo Entidade-Relacionamento (MER)
Definições:
1. Unicidade de entidade – PK
Características:
Exemplo:
A B C
1 2 3
4 3 1
7 2 0
A B
1 2
O
4 resultado é composto3de tuplas exclusivas, não pode haver repetição de tuplas. No modelo relacional, parte-se do princípio que todo
7
SELECT é DISTINCT. 2
Seleção
σ(R)
Condição
Conectores lógicos:
^e
V ou
¬ não
σ(R)
A>3
σ(R)
A>B
Exemplos de Projeção e Seleção
•
Regras:
1. A quantidade de atributos de R1 deve ser igual a quantidade de atributos de R2.
2. O tipo da coluna i de R1 deve ser igual ao tipo da coluna i de R2, para todas as colunas.
R1 R2 R3
A B A B C D E
1 2 X 1 Y 1 2
3 4 Y 2 X 4 8
R1 U R2 => Erro
R1 U R3 => Erro
R1 U
A B
1 2
3 4
4 8
Interseção
Interseção
Exemplo:
R1
A B
1 C
2 D
R2
A B
3 E
1 C
R1∩R2
A B
1 C
Diferença
Diferença
Sintaxe: R1 – R2
A diferença retorna as tuplas de R1 que não existem em R2. As regras da união são válidas para a diferença.
A ordem das relações é importante.
Produto Cartesiano
Supondo que R1 possua A colunas T tuplas e R2 possua B colunas e S tuplas, então R1 x R2 terá A+B colunas e T*S tuplas.
Exemplo:
R1
A B
1 X
2 Y
3 Z
R2
C D E
1 C F
2 D G
R1 x R2
A B C D E
1 X 1 C F
1 X 2 D G
2 Y 1 C F
2 Y 2 D G
3 Z 1 C F
3 Z 2 D G
Notações
Notação para nome de colunas: NomeDaRelação.NomeDaColuna
Exemplo:
Pessoa(Codigo,Nome)
Telefone(CodPessoa,Numero)
Telefone[CodPessoa]->Pessoa[Codigo]
Junção Natural
A junção natural é um produto cartesiano com uma seleção que reflete o relacionamento entre as tabelas.
σ(PessoaxTelefone)
Codigo=CodPessoa
Junção Externa
A junção externa trata as tuplas que não foram utilizadas na junção natural.
O resultado da junção externa à esquerda é a junção natural mais as tuplas da relação à esquerda que não
foram utilizadas na junção natural.
O resultado da junção externa à direita é a junção natural mais as tuplas da relação à direita que não foram
utilizadas na junção natural.
O resultado da junção externa total é a junção natural mais as tuplas das duas relação que não foram
utilizadas na junção natural.
Funções de Agregação
As funções de agregação, quando são aplicadas numa relação retornam um valor constante. As principais
funções são:
Max(R)
Atributo
Min(R)
Atributo
Avg(R)
Atributo
Sum(R)
Atributo
Count(R)
Funções de Agregação - Exemplos
Pais(Codigo,Nome) 3. Quais países vendem o produto ‘xyz’ mais caro que o Brasil?
Cliente(Codigo,Nome,Idade,CodPais)
Viagens(Codigo,CodCliente,Data,CodPaisOrigem,CodPaisDestino) V <- Max (σ(Produtos x ProdutosPais x Pais) )
Produto(Codigo,CodPais,Nome) ProdutosPais.CodProduto = Produtos.Codigo
ProdutosPais(CodPais,CodProduto,Preco) ^ Pais.Codigo = CodPais
Compras(CodViagem,CodProduto,Quant) ^ Pais.Nome = ‘Brasil’
^ Produtos.Nome = ‘xyz’
1. Quanto países existem cadastrados? Preco
Sintaxe:
O resultado do agrupamento é uma relação composta pelos atributos formadores do grupo e as funções de agregação.
Deve-ser tomar cuidado com os agrupamentos válidos pois no lado das funções de agregação só podem haver colunas que estejam nos atributos formadores de
grupos. Ou seja:
Jogador(Codigo,Nome,Idade,UF)
Clube(Codigo,Nome,UF)
Posicao(Codigo,Nome)
JogadorClube(CodJogador,CodClube,Salario)
JogadorPosicao(CodJogador,CodPosicao)
Exemplo:
PROJECT(R)
A+B,20
Exemplos
Aluno(Codigo,Nome,Idade,UF) 4. Quais disciplinas não foram lecionadas em 03-1?
Disciplina(Codigo,Nome)
Professor(Codigo,Nome,UF) Disciplina - SELECT(Disciplina x AlunoDisciplina)
AlunoDisciplina(CodAluno,CodDisciplina,Periodo,P1,P2) CodDisciplina=Codigo ^ Periodo=’03-1’
DisciplinaProfessor(CodDisciplina,CodProfessor,Periodo) PROJECT
Disciplina.Codigo,Disciplina.Nome
1. Mostre o nome de todos os alunos
5. Mostre o nome do aluno, nome da disciplina, período, nome do
PROJECT(Aluno) professor, P1 e P2.
Nome
SELECT(Aluno x AlunoDisciplina x Disciplina x DisciplinaProfessor
2. Quais alunos (nome) tiraram zero em alguma prova? x Professor)
Aluno.Codigo = AlunoDisciplina.CodAluno ^
PROJECT(SELECT(Aluno x AlunoDisciplina) AlunoDisciplina.CodDisciplina = Disciplina.Codigo ^
CodAluno=Codigo^( P1=0 v P2=0) Disciplina.Codigo = DisciplinaProfessor.CodDisciplina ^
Codigo,Nome CodProfessor = Professor.Codigo
PROJECT
3. Quais disciplinas (nome) foram lecionadas em 02-1? Professor.Nome,P1,P2
Nome = Alunos
Restrições de integridade
Restrições de domínio
Restrições de chave
Modelo relacional
53
Modelo Relacional
Considerações práticas:
Considerações práticas:
Considerações práticas:
Considerações práticas:
Considerações práticas:
SQL Server
Integration Services
Analysis Services Notification Services
.NET CLR
Mudanças
TTii pp oo ss dd ee
no Jogo
dd aa dd oo ss
D
D ii vv ee rr ss oo ss ff oo rr m
m aa tt oo ss
C
C oo nn ff oo rr m
m ii dd aa dd ee RR ee gg uu ll aa m
m ee nn tt aa rr II nn oo vv aa çç õõ ee ss nn oo
dd ee TT II A
A rr mm aa zz ee nn aa m m ee nn tt oo
Seus Dados em Qualquer Lugar a Qualquer Momento
Seus dados em qualquer lugar, a qualquer momento
Plataforma de Dados
Serviços
Corporativos
Relatórios Integração
Análises Sincronização
FILE
Além do Relacional Consultas
RDBMS
XML
OLAP
Pesquisas
Desenvolvimento
Dinâmico
Móvel e de mesa
Servidor Nuvem
Maior Percepção
SQL Server - Features
Criptografia de Dados Transparente Controle de Alterações do SQL Server Mecanismo de Relatórios Corporativos
Gerenciamento de Chave Externa Modelo de Programação Sincronizado Implantação de Relatórios de Internet
Auditoria de Dados Suporte ao Visual Studio Computação de Blocos
CPU Conectável Detecção de Conflitos do SQL Server Análise de Escalabilidade Horizontal
Failover Transparente para o Espelhamento Tipos de Dados FILESTREAM Gerenciamento de Plataforma BI
de Banco de Dados Pesquisa de Texto Completo Integrada Exportação para o Word e o Excel
Framework de Gerenciamento Declarativo Colunas Esparsas Relatórios do Autor no Word e no Excel
Gerenciamento de Grupo de Servidores Grandes Tipos de Usuários Definidos Aperfeiçoamento do Configurador de
Instalação Simplificada Tipos de Dados Data/Hora Relatórios
Gerenciamento de Sistemas Corporativos Tipos de Dados LOCATION TABLIX
Coleta de Dados de Desempenho Tipos de Dados SPATIAL Dados Rich Formatted
Análise de Sistemas Integração com o Virtual Earth Perspectivas Personalizadas
Compressão de Dados Paralelismo de Tabela Particionada … e muitos outro
Modos de Otimização de Consultas Otimizações de Consultas
Gerenciador de Consultas Pesquisas Persistentes
Modelo de Dados de Entidade Captura de Dados Modificados
LINQ Compressão de Backup
Projeto de Entidade Visual Instrução MERGE SQL
Adaptadores de Reconhecimento de Entidades Perfil de Dados
Junção em Estrela
Visão
Plataforma de Dados Corporativos
• Plataforma confiável e segura para seus dados
• Desempenho de sistema otimizado e previsível
• Gerenciamento produtivo de sua infra-estrutura baseado em diretivas
Além do Relacional
• Armazene e utilize quaisquer tipos de dados
• Forneça Location Intelligence dentro de suas aplicações
Desenvolvimento Dinâmico
• Acelere o desenvolvimento com o uso de entidades
• Sincronize seus dados em qualquer lugar
Maior Percepção
• Integre todos os dados na Enterprise Data Warehouse
• Acesse todos os usuários através da plataforma escalonável de BI
• Capacite todos os usuários com idéias de ação
Plataforma segura e confiável para Plataforma de
Dados
os seus dados Corporativos
Criptografia
Proteja suas informações
Transparente de Criptografe seus dados sem precisar regravar as aplicações
Dados
Responda a perguntas comuns de auditoria, como “quais
dados foram recuperados?”
Gerenciamento de
Chaves Externas Aumente a confiabilidade de suas
aplicações
Auditoria Consolide as chaves de segurança na central de dados
de Dados Adicione recursos de sistema sem afetar seus usuários
Implemente o failover automático transparente em suas
CPU aplicações
Plugável
Espelhamento
Aprimorado do
Banco de Dados
Plataforma de
Gerenciamento Produtivo de sua Dados
Corporativos
Infra-estrutura, Baseado em Diretivas
• Gaste menos tempo em operações
Framework de contínuas
Gerenciamento
Declarativo • Gerencie diretivas no lugar de scripts
• Defina diretivas de gerenciamento de
Gerenciament grande quantidade de dados Corporativos
o de Grupo de
Servidores • Monitoramento automatizado e execução
de diretivas
Instalação • Simplifique a instalação e a configuração
Dinamizada
• Integração com o gerenciamento de
Gerenciament
seu sistema corporativo
o do Sistema • Defina diretivas compatíveis com o System
Corporativo
Definition Model
• Gerencie os dados e a infra-estrutura de
sistema com o Microsoft System Center
Desempenho Otimizado e Plataforma de
Dados
Corporativos
Previsível
•Otimize o Desempenho de seu
Coleta de Dados Sistema
de Desempenho
•Monitore seu sistema com a coleta
Análise do e o armazenamento de eventos de
Sistema sistema
•Faça análises e relatórios sobre o
Compressão
desempenho de seu sistema
de Dados
•Reduza os custos de
Modos de
Otimização de
armazenamento e melhore o
Consultas desempenho das consultas
Controlador •Desempenho Previsível
de Recursos •Gerencie cargas de trabalho
simultâneas em um único sistema
•Previna a perda de consultas
•Assegure o desempenho
consistente nas consultas
Administração de memória
•Infra-estrutura feita para monitorar o consumo de
memória
•Dinâmico, e auto-administração quando a memória for solicitada
•Reduz consumo de memória em situações de pressão de uso
•O Relatório processa usando o “file system cache” para
se adaptar a pressão por memória momentânea
•Recebe evento de memória do servidor
•Administrador está apto a colocar um consumo de
memória (Mín., Max.)
•A quantidade mínima representa o quanto o servidor tem
disponível para uso imediato
•A memória será utilizada apenas quando requisitada
•O máximo serve para impor um limite no consumo
•Ajuda a adaptar o servidor para conviver com outras
aplicações prevendo o uso da memória
Resource Monitoring
•Este serviço disponibiliza um cubo para analise das informações dos recursos do servidor.
Analysis Services
Relatórios gerados no
Reporting Services
Default
Resourc Rica aplicação com dados
e cube
analiticos.
tipo de dado
•Transição perfeita entre relacional
Tipo de dado
FILESTREA
e não-relacional
M •Armazene seus documentos em
Pesquisa uma plataforma com custo-
Integrada de benefício
Texto Completo
•Acesse documentos como dados
Colunas •Codifique as hierarquias
Esparsas complexas do XML
Tïpos •Amplie o banco de dados para
Definidos de
Usuários
atender às suas necessidades
•Encontre seus dados
Tipo de Dados
para •Faça consultas de dados
Data/Hora
relacionais e de texto
•Crie aplicações globais
•Capture o tempo precioso dos
clientes em todo o mundo
Disponibilize Location Além do
Relacional
Intelligence em suas
aplicações •Crie aplicações cientes de
Tipo de localização
dado
GEOMETR •Capture dados de localização em
Y toda a empresa
•Integre a inteligência de
Tipo de
dado localização às aplicações
GEOGRAP existentes
HY
•Visualize suas informações de
Integração localização
com o
Virtual
•Aplicações espaciais padrão
Earth •Integre-se com as aplicações
espaciais padrão da indústria
•Suporte de terceiros
SQL Server BLOB Storage Documents &
Multimedia
Application
BLOB
Store BLOBs in
DB
Store BLOBs in DB
Database
+ File System
Application Application
Dedicated BLOB BLOB
Store BLOB
Application
BLOB
DB DB
DB
Remote
File Stores / SQL BLOBs
BLOB Store FILESTREAM
BLOB Stores
API
Depends on Depends on
Streaming
Performance
external external
store store
Link Level
Consistency
Data Level
Consistency
Integrated
Management
Non-local Windows
File Servers
n/a Post-2008
Interop with
External BLOB n/a
Stores
Armazenamento de Dados Percepção
para Toda
Corporativos a Empresa
Mecanismo de
• Ofereça percepções por toda a
Relatórios organização
Corporativos
• Disponibilize relatórios de qualquer tamanho e
Implantação de complexidade
Relatórios na • Aprimore as capacidades analíticas com
Internet
agrupamentos e computações mais
Computações
complexos
no Sub-espaço • Implante e gerencie sua infra-estrutura
Ferramentas
de BI
Dinamizadas para • Dinamize o desenvolvimento da infra-
Análise
estrutura de análise
Design • Cubos de backup com maior escalabilidade
Aprimorado de
Análise
• Melhora a produtividade com novas
ferramentas de design de cubos
Ferramenta de • Otimize o design de cubos com alertas de
Backup
Escalonável melhores práticas em tempo real
• Implante Reporting Services sem
dependência de IIS
Capacite Todos os Usuários Percepção
para Toda
com Percepções Práticas a Empresa
Relatórios
Relatórios Renderizados
Renderizados
no
no Word
Word ee Excel
Excel
• Forneça informações através do Microsoft
Layout Flexível de Office
Relatórios
• Gere relatórios para o Microsoft Word
Melhorias no • Aproveite a renderização aprimorada para o
Report Builder
Microsoft Excel
TABLIX • Permita que os usuários produzam relatórios de
impacto
Dado com • Produza relatórios ad-hoc
Formatação Rica
• Produza relatórios com qualquer estrutura
Visualizações de utilizando o Tablix
Dados
• Adicione regiões de rich text regions aos
MOLAP Writeback
relatórios
• Insira fortes visualizações de dados gráficos nos
Data Mining relatórios
Aprimorado
• Capacite os usuários com análises aprimoradas
• Capacite os usuários com cenários aprimorados
de write back
• Aprimoramento de análises previsíveis
Gráficos
•SQL Server inclui ferramenta para gráficos:
•Dundas Chart
•Dundas Gauge
•Dundas Calendar
NOVIDADES!
Acelere o seu desenvolvimento Desenvolvimento
Dinâmico
com entidades
•Desenvolvimento de entidades de
Modelo de
Dados de negócios
Entidade •Defina suas tabelas de negócios
•Modele suas relações complexas
LINQ de negócios
•Recupere entidades em vez de
Designer
linhas e colunas
Visual Entity •Conecte-se ao SQL Server com
adaptadores que reconheçam
Adaptadores entidades
Entity Aware
•Desempenho confiável de
Aplicações
•Armazene localmente as
entidades em seus clientes
New Data Type Support
•New version of .NET adds date/time support
•DATE, DATETIME2 - System.DateTime
•TIME - System.TimeSpan
•DATETIMEOFFSET - System.DateTimeOffset
•For parameters:
•DbType/SqlDbType.Date
•DbType/SqlDbType.Time
•DbType/SqlDbType.DateTime2
•DbType/SqlDbType.DateTimeOffset
•Can install system UDTs (separate installer)
•Microsoft.SqlServer.Types.SqlHierarchyId
•Microsoft.SqlServer.Types.Geography
•Microsoft.SqlServer.Types.Geometry
•Support for Large UDTs added
LINQ
•LINQ is Language Integrated Query
•Standard query language constructs over
•Any IEnumerable or IEnumerable<T>
•XML documents
•ADO.NET DataSets
•SQL Server Databases
•Custom Implementations For Other Data, Libraries
•Query language is programming language sensitive
•C# or VB.NET
•Supports Intellisence over queries
Conecte os seus dados a Desenvolvimento
Dinâmico
partir de qualquer dispositivo
Acesse seus dados em qualquer lugar
Acompanha Armazene seus dados localmente quando não estiver
mento de conectado ao servidor
Alterações Sincronize mudanças incrementais entre cliente e
servidor
Modelo de Detecte conflitos durante a sincronização, inclusive
Programação exclusões
Sincronizado
Adicione cenários desconectados sem regravar as
aplicações existentes
Suporte ao
Visual
Studio
Detecção de
Conflitos no
SQL Server
Recursos Disponíveis
Recursos Disponíveis
Microsoft Technet
(Webcasts, Blogs, Chats, Eventos Presenciais)
http://microsoft.com/brasil/technet
Divisões:
DDL
Data Definition Language
DML
Data Manipulation Language
Embutido
Linguagem procedural
Linguagem SQL
Características:
SQL-92:
- Char(n): String de tamanho fixo com n caracteres.
- VarChar(n): String de tamanho variável com, no máximo, n caracteres.
- Int: Inteiro longo (2^32)
- Smallint: Inteiro pequeno, máximo 65535.
- Real, Double: Ponto flutuante.
- Float(n): Ponto flutuante com, no máximo, n dígitos.
- Numeric(p,d): Ponto fixo com p dígitos, sendo d dígitos na parte decimal.
- Date
- Time
- DateTime
SQL-99:
- Timestamp: Data e hora incluindo time zone.
- BLOB: Binary Large Object.
DDL – Data Definition Language
Comandos usados na modelagem do banco de dados.
O Microsoft SQL Server possui uma grande quantidade de comandos DDL que não serão abordados neste
curso. A lista completa de commandos se encontra no endereço abaixo:
https://msdn.microsoft.com/en-us/library/ff848799.aspx
DML – Data Manipulation Language
Comando INSERT:
Cláusula FROM
Identifica as relações que participam da consulta. Faz o produto cartesiano.
Sintaxe: FROM R1,...,Rn (relações).
Cláusula WHERE
Seleciona tuplas.
Equijoin: Junção por igualdade (SELECT * FROM R1,R2 WHERE A=C)
DML – Data Manipulation Language
Comando SELECT:
Oracle, DB2
WHERE A(+)=B
WHERE A=B(+)
DML – Data Manipulation Language
Comando SELECT:
Cláusula JOIN
Junção de Tabelas
- INNER JOIN
- LEFT JOIN
- RIGHT JOIN
DML – Data Manipulation Language
Comando SELECT:
Cláusula WHERE
Define a condição para a realização da consulta, semelhante a operação de seleção da álgebra relacional.
DML – Data Manipulation Language
Comando SELECT:
Com Repetição:
Count (A1,...,An)
Count(*)
Sem Repetição:
Count(DISTINCT A1,...,An)
DML – Data Manipulation Language
Comando SELECT:
Operação de Renomear
NomeAntigo AS NomeNovo
NomeAntigo NomeNovo
Cláusula Having
Faz a seleção após o agrupamento, enquanto a cláusula WHERE faz a seleção antes do
agrupamento. A condição do HAVING pode conter funções de agregação.
SELECT A1,...,An,FunçãoDeAgregação
FROM R1,...,Rn
WHERE Condição
GROUP BY A1,…,An
HAVING Condição
DML – Data Manipulation Language
Comando SELECT:
O SQL possibilita a ordenação crescente ou decrescente. A ordem é baseada em um atributo, case ele tenha valores iguais podemos definir um segundo atributo
para a ordenação e assim sucessivamente.
Sintaxe:
SELECT a1,...,an
FROM R1,...,Rn
WHERE Condição
GROUP BY a1,…,an
HAVING Condição
ORDER BY a1, a2 DESC
DML – Data Manipulation Language
Comando SELECT:
Consulta dentro de consulta. Normalmente a consulta mais interna é executada primeiro. As subconsultas podem ser utilizadas:
- Cláusula FROM
- Cláusula SELECT
- Condição WHERE
DML – Data Manipulation Language
Subconsulta na cláusula FROM:
SELECT a1,...,an
FROM R1,R2, (SELECT b1,…,bn FROM R3 WHERE …) AS Y
SELECT *
FROM R1, (SELECT C,D FROM R2) AS Y
WHERE R1.A = Y.C
SELECT A, B,
(SELECT TOP 1 C FROM R2 WHERE R2.C = R1.A) AS X
FROM R1
SELECT A, B,
(SELECT Count(1) FROM R2 WHERE R1.A = R2.C) AS Quant
FROM R1
SELECT Nome,
(SELECT Count(1) FROM Telefones WHERE Pessoa = Pessoas.Codigo) AS Linhas
FROM Pessoas
ORDER BY Nome
DML – Data Manipulation Language
Subconsulta na condição:
Operadores de Conjunto:
- IN: Testa se um valor está contido em uma lista de valores, que pode ser uma subconsulta.
Sintaxe: Atributo IN (SELECT A FROM …)
- NOT IN: Testa se um valor não está contido em uma lista de valores.
Sintaxe: Atributo NOT IN (SELECT A FROM …)
DML – Data Manipulation Language
Operadores de Conjunto
- IN
- NOT IN
- SOME (Any)
- ALL
- BETWEEN
- EXISTS
Retorna verdadeiro se a subconsulta possui tuplas. É o operador mais rápido que existe.
EXISTS (SELECT ...)
DML – Data Manipulation Language
- Exclusão
- Alteração
SELECT a1,...,na
UNION
SELECT b1,…,bn
SELECT a1,…,an
UNION ALL
SELECT b1,…,bn
DML – Data Manipulation Language
Regras:
1. A quantidade de atributos de R1 deve ser igual a quantidade de atributos de R2.
2. O tipo da coluna i de R1 deve ser igual ao tipo da coluna i de R2, para todas as colunas.
R1 R2 R3
A B A B C D E
1 2 X 1 Y 1 2
3 4 Y 2 X 4 8
Exemplo:
No caso de um movimento financeiro, no qual é necessário retirar o valor de uma conta e inserir
em outra, digamos que aconteça o seguinte algorítmo:
1.Debita o valor na conta origem
2.Credita o valor na conta destino
3.Atualiza saldo na conta origem
4.Atualza saldo na conta destino
Digamos que falte energia elétrica ou o servidor trave antes de chegar ao ultimo passo, o banco
de dados ficaria inconsistente. Se todos os passos acima estiverem incluídos em uma transação,
caso aconteça alguma pane antes de chegar ao final, todas as ações que chegaram a acontecer
são revertidas, mantendo assim a integridade do banco de dados.
Transação Exemplo
BEGIN TRANSACTION
UPDATE authors
SET au_fname = 'John'
WHERE au_id = '172-32-1176'
UPDATE authors
SET au_fname = 'Marg'
WHERE au_id = '213-46-8915'
COMMIT TRANSACTION
Transação Commit e Rollback
Dentro da programação de uma transação também é possível revertê-la através de desvio
condicional. Para tal utiliza-se o comando Rollback.
O comando Commit encerra uma transação com sucesso, salvando no banco de dados todas as
alterações realizadas.
Ex.:
BEGIN TRANSACTION
IF @@ROWCOUNT = 5
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION
Stored Procedures
Trechos de programação dentro do banco de dados
- Melhor Performance
- Maior Segurança
Bancos de dados mais sofisticados como o SQL Server fazem cache das Stored Procedures tornando sua execução muito
mais rápida.
Para executar uma Stored Procedure é necessário instanciá-la através do comando EXEC.
Exemplo:
SELECT *
FROM AdventureWorks.Person.Address
WHERE City = ISNULL(@City,City)
AND AddressLine1 LIKE '%' + ISNULL(@AddressLine1 ,AddressLine1) + '%'
GO
Triggers
Mesmas características que uma stored procedure, a diferença é que um trigger é disparado automaticamente mediante
uma ação do banco de dados.
Exemplo:
update t2
set t2_value = @t1_value
where id = @id
end
go
Functions
Assim como stored procedures e triggers, as functions são trechos de código, a diferença é que estes são chamados através de funções.
Deve-se ter muito cuidado na utilização de functions pois elas podem degradar de forma destrutiva a performance do banco de dados.
Exemplo:
SET DATEFIRST 1;
SELECT dbo.ISOweek(CONVERT(DATETIME,'12/26/2004',101)) AS 'ISO Week';
Aula 10
ADO.NET
O que é ADO.NET?
ADO.NET
É uma tecnologia de acesso a dados que propicia:
Um conjunto de classes, interfaces, estruturas, e
enuméradores que gerenciam acesso a dados de
dentro do.NET Framework
Um evolucionário e mais flexível sucessor do ADO
Um modelo de programação projetado para
ambientes desconectados
Um modelo de programação com avançado
suporte a XML
O que é um ambiente conectado?
Command InsertCommand
InsertCommand
Command DataColumnCollection
DataColumnCollection
Parameters
Parameters UpdateCommand
UpdateCommand ConstraintCollection
ConstraintCollection
DataReader DeleteCommand
DeleteCommand
DataReader
DataRelationCollection
DataRelationCollection
XML
XML
Banco
Banco de
de
Dados
Dados
Integração com Linguagens de Programação
Conector
End Class
Aplicação Mestre Detalhe
DEMO
Dados X Informação
Tomada de
Dados Informação Tomada de
Dados Informação decisão
decisão
Tomada de
Dados Informação Tomada de
Dados Informação decisão
decisão
SQL Server é uma plataforma muito poderosa de Business Intelligence agregando os recuros de
relatórios sofisticados do Reporting Services
SQL Server Profiler
Com o SQL Server Profiler é possível verificar todas as conexões ao BD, bem como as queries que
estão sendo executadas por cada usuário.
Permite transferir informações do SQL Server para diversos outros bancos de dados e até mesmo
formatos de arquivo como XML, CSV, TXT, etc.