Tecnologias e Linguagens
Tecnologias e Linguagens
para Banco de Dados I
para Banco de Dados I
Aula 1
Aula 1
4326: Introdução a banco de dados
4326: Introdução a banco de dados
Banco de Dados SQL Server
Banco de Dados SQL Server
Introdução a linguagem SQL
Introdução a linguagem SQL
2 2Mercado de Trabalho
Mercado de Trabalho
Profissional da Área de Banco de Dados:
Profissional da Área de Banco de Dados:
Administrador de Banco de Dados jr.
Administrador de Banco de Dados jr.
Salário Médio: R$ 3.865,00Salário Médio: R$ 3.865,00
Administrador de Banco de Dados pleno
Administrador de Banco de Dados pleno
Salário Médio: R$ 5.256,00Salário Médio: R$ 5.256,00
Administrador de Banco de Dados sênior
Administrador de Banco de Dados sênior
Salário Médio: R$ 8.600,00Salário Médio: R$ 8.600,00 Fonte:
Fonte: http://info.abril.com.br/profissional/salarios/http://info.abril.com.br/profissional/salarios/em 30/12/2008em 30/12/2008
Oportunidades
Oportunidades
São Paulo São Paulo --SP SP --10/01/0910/01/09
Analista Programador Jr Analista Programador Jr
A STIPro busca profissionais dinâmicos com perfil abaixo:
A STIPro busca profissionais dinâmicos com perfil abaixo:
Possuir experiência em desenvolvimento de sistemas utilizando
Possuir experiência em desenvolvimento de sistemas utilizando
HTML/CSS,
HTML/CSS,
ASP.Net(C# ou VB.Net),
ASP.Net(C# ou VB.Net), banco de dados SQL Serverbanco de dados SQL Servere e ActionScript.
ActionScript.
Desejável alguma vivência com análise e WebService.
Desejável alguma vivência com análise e WebService. Fonte:
Fonte: http://www.apinfo.com/pesqn4.htmhttp://www.apinfo.com/pesqn4.htm em 15/01/2009
4 4
Certificações e Exames
Certificações e Exames
SQL Server 2005
SQL Server 2005
MCTS (Microsoft Certified Technology Specialist):
MCTS (Microsoft Certified Technology Specialist):
Implementar e manter bancos de dados usando instruções e Implementar e manter bancos de dados usando instruções e
especificações SQL Server 2005
especificações SQL Server 2005
Conhecimento abrangente do produtoConhecimento abrangente do produto
Uso de Ferramentas e Linguagem TUso de Ferramentas e Linguagem T--SQLSQL
Conhecimento da Interface de usuárioConhecimento da Interface de usuário
Cursos Exigidos:Cursos Exigidos:
2779: Implementing a Microsoft SQL Server 2005 Database2779: Implementing a Microsoft SQL Server 2005 Database
2780: Maintaining a Microsoft SQL Server 2005 Database2780: Maintaining a Microsoft SQL Server 2005 Database
Exame: 70Exame: 70--431431
Preço: R$ 1.896,00Preço: R$ 1.896,00 Fonte: KaSolution:
Fonte: KaSolution: http://www.kasolution.com.br/default.asphttp://www.kasolution.com.br/default.aspem 10/01/2009em 10/01/2009
5
5
Conteúdo
Conteúdo
2778: Escrevendo queries usando o Microsoft
2778: Escrevendo queries usando o Microsoft
SQL Server 2005 Transact SQL
SQL Server 2005 Transact SQL
4326: Introdução a banco de dados e Transact
4326: Introdução a banco de dados e Transact
-
-
SQL
SQL
AvaliaçãoAvaliação4326: Introdução a banco de
4326: Introdução a banco de
dados
dados
Descrevendo a Arquitetura Cliente/Servidor
Descrevendo a Arquitetura Cliente/Servidor
SQL Server 2005
SQL Server 2005
Componentes SQL Server 2005
7 7
Descrevendo a arquitetura
Descrevendo a arquitetura
Cliente/Servidor
Cliente/Servidor
Cliente, servidor e elementos de rede;
Cliente, servidor e elementos de rede;
O cliente solicita e o provedor fornece o serviço;
O cliente solicita e o provedor fornece o serviço;
Dados armazenados de maneira centralizada são mais
Dados armazenados de maneira centralizada são mais
integros
integros
Regras de negócio e de segurança são definidas no
Regras de negócio e de segurança são definidas no
servidor
servidor
Otimiza o tráfego na rede
Otimiza o tráfego na rede
Divide a carga de processamento entre cliente e
Divide a carga de processamento entre cliente e
servidor
servidor
Melhor escalabilidade
Melhor escalabilidade
É possível aumentar a quantidade de recursos sem É possível aumentar a quantidade de recursos sem
problemas. problemas. 8 8
SQL Server 2005
SQL Server 2005
SGBDR
SGBDR
Mantem relacionamentos entre tabelas.
Mantem relacionamentos entre tabelas.
Garante regras de integridade.
Garante regras de integridade.
Permite recuperar dados em caso de falha.
Permite recuperar dados em caso de falha.
Usa linguagem T
Usa linguagem T
-
-
SQL
SQL
Permite acesso multi
Permite acesso multi
-
-
usuário
usuário
SQL Server usa arquitetura Cliente/Servidor
SQL Server usa arquitetura Cliente/Servidor
Baseado em padrões ANSI
Baseado em padrões ANSI
-
-
SQL
SQL
Componentes
Componentes
SQL Server 2005
SQL Server 2005
Relational database engine:
Relational database engine:
Motor do banco de dados.
Motor do banco de dados.
Analyses Services (SSAS):
Analyses Services (SSAS):
Usado para servir aplicações OLAP (On
Usado para servir aplicações OLAP (On
-
-
Line
Line
Analyses Processing)
Analyses Processing)
Integration Services (SSIS):
Integration Services (SSIS):
Integração de dados com alta performance;
Integração de dados com alta performance;
10 10
Componentes
Componentes
SQL Server 2005
SQL Server 2005
Notification Services:
Notification Services:
Envia mensagens instantâneas para uma lista de contatos;Envia mensagens instantâneas para uma lista de contatos;
Reporting Services (SSRS):
Reporting Services (SSRS):
Extrai dados a partir de um servidor e gera relatórios.Extrai dados a partir de um servidor e gera relatórios.
Service Broker:
Service Broker:
Valida, transaciona e troca menssagens entre aplicações.Valida, transaciona e troca menssagens entre aplicações.
Server Agent:
Server Agent:
Automatiza tarefas de administração do banco de dadosAutomatiza tarefas de administração do banco de dados
Introdução a Banco de Dados
Introdução a Banco de Dados
SQL Server
SQL Server
Bancos de Dados Relacionais
Bancos de Dados Relacionais
Normalização
Normalização
Objetos de um banco de dados
Objetos de um banco de dados
Schemas
Schemas
Componente de tabelas de bancos de dados
Componente de tabelas de bancos de dados
12 12
Bancos de dados
Bancos de dados
Relacionais
Relacionais
Entidades
Entidades
Composta por atributos (não chave)Composta por atributos (não chave)
Chaves
Chaves
Identificam registros de maneira única ou estabelecem Identificam registros de maneira única ou estabelecem
relacionamentos relacionamentos
Relacionamentos
Relacionamentos
Um para umUm para umUm para muitosUm para muitos
Muitos para muitosMuitos para muitos
Fisicamente apenas duas tabelas podem estar
Fisicamente apenas duas tabelas podem estar
relacionadas
13
13
Normalização
Normalização
1ª Forma normal (1FN):
1ª Forma normal (1FN):
Chave primária em todas as tabelasChave primária em todas as tabelas
Cada coluna um dadoCada coluna um dado
Não existe colunas repetidas (Autor1, Autor2, ... Telefone1, Não existe colunas repetidas (Autor1, Autor2, ... Telefone1,
Telefone2, ...)
Telefone2, ...)
2ª Forma normal (2FN):
2ª Forma normal (2FN):
Coluna não chave deve ser dependente funcional TOTAL da Coluna não chave deve ser dependente funcional TOTAL da
chave primária.
chave primária.
3ª Forma normal (3FN):
3ª Forma normal (3FN):
Não pode haver uma coluna nãoNão pode haver uma coluna não--chave que dependa de outra chave que dependa de outra
coluna não
coluna não--chave.chave.
14 14
Processo de
Processo de
Normalização
Normalização
Anomalias de Inserção:Anomalias de Inserção:Preencher o nome do autor mais de Preencher o nome do autor mais de
uma vez, ocupando espaço desnecessário.
uma vez, ocupando espaço desnecessário.
Anomalia de Recuperação:Anomalia de Recuperação:Nome do autor errado = Falhas de Nome do autor errado = Falhas de
recuperação de registro.
recuperação de registro.
Tabela não escalável:Tabela não escalável:Não permite que mais de dois autores Não permite que mais de dois autores
escrevam o mesmo livro.
escrevam o mesmo livro.
McGrawHill McGrawHill 537 537 Administração Administração 8586804770 8586804770 MARAKAS, MARAKAS, George George O’BRIEN, O’BRIEN, James James Administração de SI Administração de SI Érica Érica 262 262 Programação Programação 8571948542 8571948542 MENDES, MENDES, Sandro Sandro MANZANO, MANZANO, José José Delphi7 Delphi7 Editora Editora NPg NPg Area Area ISBN ISBN Autor2 Autor2 Autor1 Autor1 Titulo Titulo
Divisão da tabela
Divisão da tabela
Érica Érica 262 262 Delphi 7 Delphi 7 8571948542 8571948542 Editora Editora Npg Npg Titulo Titulo *ISBN *ISBN Informática Informática 1 1 Area Area *CodArea *CodArea Professor e Professor e consultor. consultor. MANZANO, José MANZANO, José José José MANZANO MANZANO 1 1 Biografia Biografia NomeCompleto NomeCompleto Sobrenome Sobrenome Nome Nome *CodAutor *CodAutor Livro Area Autor16 16
Tabelas de
Tabelas de
Relacionamento
Relacionamento
4 4 8586804770 8586804770 2 2 8571948542 8571948542 3 3 8586804770 8586804770 1 1 8571948542 8571948542 *CodAutor *CodAutor *ISBN *ISBN 2 2 8586804770 8586804770 1 1 8586804770 8586804770 1 1 8571948542 8571948542 *CodArea *CodArea *ISBN *ISBN Livro_Autor Livro_Area 17 172FN: Dependência
2FN: Dependência
funcional total
funcional total
262 262 Delphi 7 Delphi 7 2 2 8571948542 8571948542 1 1 *Editora *Editora 262 262 Delphi 7 Delphi 7 8571948542 8571948542 Npg Npg Titulo Titulo *ISBN *ISBN McGrowHill McGrowHill 2 2 Érica Érica 1 1 Editora Editora *CodEditora *CodEditora Livro Editora 18 183FN: Dependência
3FN: Dependência
funcional parcial
funcional parcial
Professor e Professor e consultor. consultor. MANZANO, José MANZANO, José José José MANZANO MANZANO 1 1 Biografia Biografia NomeCompleto NomeCompleto Sobrenome Sobrenome Nome Nome *CodAutor *CodAutor Autor Professor e Professor e consultor. consultor. José José MANZANO MANZANO 1 1 Biografia Biografia Sobrenome Sobrenome Nome Nome *CodAutor *CodAutor Autor19 19
Objetos de um banco de
Objetos de um banco de
dados
dados
Tabelas
Tabelas
Armazena dados de Armazena dados de
entidades distintas.
entidades distintas.
Views
Views
Encapsula uma consulta Encapsula uma consulta
em uma entidade relacional
em uma entidade relacional
Constraints
Constraints
Regras que regulam os Regras que regulam os
valores permitidos,
valores permitidos,
garantem a integridade dos
garantem a integridade dos
dados.
dados.
Indices
Indices
Campo de acesso rápido Campo de acesso rápido
aos dados de uma tabela.
aos dados de uma tabela.
Funções
Funções
Código que retorna um valor Código que retorna um valor
escalar ou uma tabela.
escalar ou uma tabela.
Procedimentos
Procedimentos
Código préCódigo pré--compilado para compilado para
ser executado. Retorna
ser executado. Retorna
parâmetros aos usuários.
parâmetros aos usuários.
Triggers (Gatilhos)
Triggers (Gatilhos)
Procedimentos executados ao Procedimentos executados ao
manipular dados em tabelas
manipular dados em tabelas
(inserir, alterar ou exlcuir)
(inserir, alterar ou exlcuir)
20 20
Schemas
Schemas
Sintaxe:Sintaxe:CREATE SCHEMA Nome_Schema CREATE SCHEMA Nome_Schema [<elemento_1>, ..., <elemento_n>] [<elemento_1>, ..., <elemento_n>]
Exemplo:Exemplo:
----Criando esquema MktDep e tabela pertencente ao esquemaCriando esquema MktDep e tabela pertencente ao esquema CREATE SCHEMA MktDep
CREATE SCHEMA MktDep
CREATE TABLE Produto(Codigo INT, Descricao VARCHAR(50)); CREATE TABLE Produto(Codigo INT, Descricao VARCHAR(50)); GO
GO
----Listando dados contidos nos campos da tabelaListando dados contidos nos campos da tabela SELECT * FROM MktDep.Produto; SELECT * FROM MktDep.Produto; GO
GO
----Excluindo a tabela e o esquema criados, respectivamenteExcluindo a tabela e o esquema criados, respectivamente DROP TABLE MktDep.Produto;
DROP TABLE MktDep.Produto; GO
GO
DROP SCHEMA MktDep; DROP SCHEMA MktDep; GO GO
Vantagens do uso de
Vantagens do uso de
Schemas:
Schemas:
Administrar o uso de permissões de objetos;
Administrar o uso de permissões de objetos;
Um Schema pode ser atribuído a muitos usuários;
Um Schema pode ser atribuído a muitos usuários;
Muitos usuários podem ser autorizados ao mesmo
Muitos usuários podem ser autorizados ao mesmo
esquema padrão;
esquema padrão;
Pode
Pode
-
-
se remover o nome ou a regra de um usuário sem
se remover o nome ou a regra de um usuário sem
mudar o nome qualificador dos objetos;
mudar o nome qualificador dos objetos;
Não é preciso armazenar objetos compartilhados em
Não é preciso armazenar objetos compartilhados em
um schema dbo:
um schema dbo:
CriaCria--se um esquema padrão comum para armazenar objetos se um esquema padrão comum para armazenar objetos
compartilhados.
22 22
Componentes
Componentes
da tabela
da tabela
Tabelas ou Entidades
Tabelas ou Entidades
Campos, Atributos ou Colunas
Campos, Atributos ou Colunas
Tipos de Dados
Tipos de Dados
Chaves primárias e estrangeiras
Chaves primárias e estrangeiras
Restrições (Constraints)
Restrições (Constraints)
Introdução a linguagem
Introdução a linguagem
SQL
SQL
SQL
SQL
ANSI
ANSI
-
-
SQL e T
SQL e T
-
-
SQL
SQL
Categorias do código SQL
Categorias do código SQL
24 24SQL
SQL
Conceito criado pelo Dr. E.F Codd em 1970
Conceito criado pelo Dr. E.F Codd em 1970
Linguagem de programação não procedural
Linguagem de programação não procedural
Usada para consultar modelos de dados relacionais
Usada para consultar modelos de dados relacionais
Linguagens não
Linguagens não
-
-
procedurais vs linguagens procedurais
procedurais vs linguagens procedurais
Manipula uma lista de dados de uma vez.Manipula uma lista de dados de uma vez.
Permite aplicar operações únicas a cada elemento da lista.Permite aplicar operações únicas a cada elemento da lista.
O processamento do banco de dados determina a melhor O processamento do banco de dados determina a melhor
forma de listar e aplicar as operações aos dados.
forma de listar e aplicar as operações aos dados.
Linguagens procedurais exigem planejamento passo a passo.Linguagens procedurais exigem planejamento passo a passo.
Vantagens das linguagens não
Vantagens das linguagens não
-
-
procedurais
procedurais
Uma consulta exige menos linhas para ser feita.Uma consulta exige menos linhas para ser feita.
25
25
ANSI
ANSI
-
-
SQL e T
SQL e T
-
-
SQL
SQL
A ANSI define o padrão para a linguagem SQL
A ANSI define o padrão para a linguagem SQL
Diversos bancos de dados usam “dialetos” da
Diversos bancos de dados usam “dialetos” da
Linguagem SQL padrão ANSI
Linguagem SQL padrão ANSI
Quanto mais próximo do padrão ANSI mais portável é
Quanto mais próximo do padrão ANSI mais portável é
o banco de dados.
o banco de dados.
SQL Server 2000 e 2005
SQL Server 2000 e 2005
Implementam recursos do padrão ANSI SQL 92Implementam recursos do padrão ANSI SQL 92
SQL Server 2005 implementa também recursos do padrão SQL Server 2005 implementa também recursos do padrão
ANSI SQL 99 ANSI SQL 99 26 26
Transact
Transact
-
-
SQL
SQL
Implementação da
Implementação da
linguagem SQL pela
linguagem SQL pela
Microsoft;
Microsoft;
Fortemente ligado ao
Fortemente ligado ao
padrão ANSI
padrão ANSI
-
-
SQL;
SQL;
Categorias:
Categorias:
Linguagem de Definição Linguagem de Definição
de Dados (DDL) de Dados (DDL) CREATECREATE ALTERALTER DROPDROP
Linguagem de Controle Linguagem de Controle
de Dados (DCL) de Dados (DCL) GRANTGRANT REVOKEREVOKE DENYDENY Linguagem de Linguagem de Manipulação de Dados Manipulação de Dados (DML) (DML) INSERTINSERT UPDATEUPDATE SELECTSELECT DELETEDELETE
Exemplo DDL1:
Exemplo DDL1:
Criando um novo banco de dados, usando o banco de
Criando um novo banco de dados, usando o banco de
dados novo para criar um schema e uma nova tabela:
dados novo para criar um schema e uma nova tabela:
CREATE DATABASE Biblioteca;
CREATE DATABASE Biblioteca;
GO GO USE Biblioteca; USE Biblioteca; GO GO
CREATE SCHEMA Atendimento
CREATE SCHEMA Atendimento
CREATE TABLE Usuario(
CREATE TABLE Usuario(
CodUsuario INT NOT NULL PRIMARY KEY,
CodUsuario INT NOT NULL PRIMARY KEY,
Nome VARCHAR(50) Nome VARCHAR(50) ); ); GO GO
28
28
Exemplo DDL2:
Exemplo DDL2:
Criando uma nova tabela no banco de dados e no
Criando uma nova tabela no banco de dados e no
Schema que já foi criado:
Schema que já foi criado:
USE Biblioteca;
USE Biblioteca;
GO
GO
CREATE TABLE Atendimento.Emprestimo(
CREATE TABLE Atendimento.Emprestimo(
CodEmprestimo INT NOT NULL PRIMARY KEY,
CodEmprestimo INT NOT NULL PRIMARY KEY,
DtRetirada DATETIME, DtRetirada DATETIME, DtDevolucao DATETIME DtDevolucao DATETIME ); ); GO GO 29 29
Exemplo DDL3:
Exemplo DDL3:
ALTER: Altera a estrutura de objetos do banco de
ALTER: Altera a estrutura de objetos do banco de
dados:
dados:
USE AdventureWorks; USE AdventureWorks; GO GO----Exemplo de declaração DDL ALTERExemplo de declaração DDL ALTER
ALTER TABLE Production.TransactionHistoryArchive
ALTER TABLE Production.TransactionHistoryArchive
DROP CONSTRAINT DROP CONSTRAINT PK_TransactionHistoryArchive_TransactionID; PK_TransactionHistoryArchive_TransactionID; GO GO 30 30
Exemplo DCL:
Exemplo DCL:
GRANT: Atribui privilégios de acesso a
GRANT: Atribui privilégios de acesso a
usuários:
usuários:
USE AdventureWorks
USE AdventureWorks
GO
GO
----
Exemplo de declaração DCL GRANT
Exemplo de declaração DCL GRANT
GRANT SELECT
GRANT SELECT
ON Production.Product
ON Production.Product
TO PUBLIC
TO PUBLIC
GO
GO
31
31
Exemplo DML:
Exemplo DML:
INSERT: Insere dados em tabelas;
INSERT: Insere dados em tabelas;
USE AdventureWorks;
USE AdventureWorks;
GO
GO
----
Exemplo de declaração DML INSERT
Exemplo de declaração DML INSERT
INSERT INTO Production.UnitMeasure
INSERT INTO Production.UnitMeasure
VALUES ('F2', 'Square Feet', GETDATE());
VALUES ('F2', 'Square Feet', GETDATE());
GO
GO
32 32Comentários
Comentários
De linha (
De linha (
--
--
)
)
Abrange apenas uma linhaAbrange apenas uma linha
Exemplo:
Exemplo:
-- Seleciona todas as colunas e todas as linhas SELECT * FROM HumanResources.Employee; GO
De bloco (/* ... */)
De bloco (/* ... */)
Abrange blocos inteiros de declaraçõesAbrange blocos inteiros de declarações
Exemplo:
Exemplo:
/* Seleciona todas as colunas e todas as linhas a partir da tabela HumanResource.Employee */ SELECT * FROM HumanResources.Employee; GO
Melhores Praticas
Melhores Praticas
Formatação:
Formatação:
Palavras reservadas maiúsculasPalavras reservadas maiúsculas
IdentaçãoIdentação
Nomeando objetos:
Nomeando objetos:
Primeiras letras maiúsculas (DetalhePedido)Primeiras letras maiúsculas (DetalhePedido)
Incluir o nome dos Schemas ao usar tabelas Incluir o nome dos Schemas ao usar tabelas
(
(Vendas.Vendas.Cliente)Cliente)
Ponto e virgula indica o fim da declaração T
Ponto e virgula indica o fim da declaração T
-
-
SQL
SQL
Dar preferência ao uso do padrão ANSI
Dar preferência ao uso do padrão ANSI
-
-
SQL
SQL
Mais confiávelMais confiável
Mais portávelMais portável