Serviço Nacional de Aprendizagem Industrial -
SENAI
Técnico em Informática
Banco de Dados
Me Wagner Santos de Oliveira
Curitiba, 21 de Fevereiro de 2017
Mahatma Gandhi (1869 - 1948)
Idealizador e fundador do moderno Estado indiano e o maior
defensor do Satyagraha como um meio de revolução 2
Anteriormente...
● Atores
● DER
● Exercícios Teóricos
● Exercícios Práticos
3
Apresentação
● Equipe sorteada
● 5 minutos por equipe
● Todos participam
● Outros alunos podem comentar
4
Ex1 - Catálogo de Cds
●
Quero criar um banco de dados para organizar os meus CDs;
● Um CD possui um título e diversas músicas;
●
Toda música possui um título e uma duração;
● Uma música pode ter sido composta por um ou mais
compositores;
● Uma música pode ser interpretada por um ou mais
cantores;
●
Existem cantores que também são compositores (e vice-
versa);
5
Ex1
6
Ex2
●
A ACME é uma indústria localizada em uma pequena
cidade do interior.
●
Na ACME todo funcionário está lotado em um
departamento. Cada departamento faz parte de uma
diretoria. Uma diretoria controla diversos
departamentos.
●
No cadastro do funcionário estão cadastrados todos os
seus dependentes. Como a cidade é pequena, alguns
dependentes de funcionários são também funcionários
e a ACME precisa registrar esses casos.
7
Ex2 - Indústria ACME
8
Ex 3 - Construtora
● Uma desenvolve projetos de grande porte.
● Esta empresa está organizada em departamentos,
sendo que cada projeto é sempre coordenado por
um departamento.
● Os departamentos possuem empregados que
podem ser chefes. Embora um empregado
pertença sempre a um departamento, ele pode ser
alocado a projetos de outros departamentos.
9
Ex 3
10
Ex 4 - Livraria
1. A livraria deseja manter um cadastro de clientes.
2. Sobre cada cliente, é importante manter seu endereço, telefone, CPF e lista dos livros que este
cliente já comprou. Para cada compra, é importante guardar a data em que esta foi realizada.
3. Um cliente pode comprar muitos livros. Um livro pode ser vendido para mais de um cliente pois
geralmente há vários livros em estoque.
4. Um cliente pode ser pessoa física ou jurídica. Se for pessoa juríıdica, o seu identificador deve
ser o CNPJ.
5. A livraria compra livros livros de editoras.
6. Sobre as editoras, a livraria precisa de seu código, endereço, telefone de contato, e o nome de
seu gerente.
7. Cada cliente tem um código único.
8. Deve-se manter um cadastro sobre cada livro na livraria. Para cada livro, é importante
armazenar o nome do autor, assunto, editora, ISBN e a quantidade dos livros em estoque.
9. Editoras diferentes não fornecem o mesmo tipo de livro.
11
Ex 4
12
Ex 5 - Biblioteca
●
A biblioteca dispõe de livros, também denominados títulos. Estes possuem nome,
autores e editoras. Cada título pertence a uma área de conhecimento e possui um
código único de identificação.
●
Cada título possui vários exemplares. Cada exemplar possui um código único de
identificação.
●
Cada título pode ter vários autores e um mesmo autor pode ter escrito vários títulos.
Um autor possui código, nome, telefone e endereço. As editoras possuem código,
nome, telefone e endereço.
●
As áreas de conhecimento possuem código e uma descrição.
●
Usuários, que podem ser alunos, professores ou funcionários, tomam livros
emprestados por uma semana. A data de empréstimo é importante no processo.
●
Cada usuário possui um código, nome, telefone e endereço
●
Cada título possui várias palavras-chave e uma palavra-chave pode estar ligada a
vários títulos. Uma palavra-chave possui código e descrição.
13
Ex5
14
Ex 6 – Escola de Música
●
Uma escola de música precisa manter uma base de dados organizada com o objetivo de prover
informações sobre músicos, orquestras, sinfonias e instrumentos:
●
Cada orquestra é catalogada contendo o seu nome, cidade, país e data correspondentes à sua
criação;
●
Orquestras executam sinfonias, as mais variadas. Os profundos conhecedores de música são
capazes até de selecionar a orquestra que melhor desempenha uma determinada sinfonia. De
cada uma sinfonia, é possível saber o seu nome, o compositor e a data de sua criação;
●
Orquestras são constituídas de músicos, os mais variados, de acordo com a sua função dentro
da mesma: maestro, flautista, etc. Cada músico é catalogado contendo: nome do músico,
identidade, nacionalidade e data de nascimento. Um músico só pode pertencer a uma
orquestra;
●
Músicos tocam sinfonias, porém em alguns casos, alguns músicos podem mudar de função
segundo a sinfonia (por exemplo, um violinista pode virar maestro). A data em que um músico
apresenta uma determinada sinfonia também é importante no contexto.
●
Cada músico pode ser apto a tocar vários instrumentos, mas em cada sinfonia toca apenas um
instrumento, pois depende de sua função na sinfonia.
15
Ex 6
16
Estamos prontos?
17
O que vamos ver hoje?
● SQL
● SQL (frito)
● SQL (assado)
● SQL (com farinha)
● SQL (cru)
● SQL (parmegiana)
18
O que é?
Structured Query Language, ou Linguagem de
Consulta Estruturada ou SQL, é a linguagem de
pesquisa declarativa padrão para banco de dados
relacional (base de dados relacional). Muitas das
características originais do SQL foram inspiradas
na álgebra relacional.
19
Divisão
20
Origem
●
Introduzida em 1976 como LMD para System R (IBM)
●
Primeira implementação comercial em 1979 (Oracle)
●
Linguagem padrão de acesso a BD relacionais
●
Normalização ANSI e ISO: SQL89, SQL92, SQL3
●
Objectivo principal
– Tratamento unificado da definição, manipulação e controlo
dos dados, sendo útil para todas as classes de utilizadores.
21
SQL Server
1. Aquisição de programas
2. Instalação
3. Ferramentas de Administração
4. Instruções e funções
22
Aquisição dos programas
Download disponível no site da MSDN
● [Link]
Lembre-se de selecionar opção a opção:
● with Tools (Com ferramentas)
● 64 bits
23
Instalação
24
Instalação
25
Instalação
26
Instalação
27
Instalação
28
Instalação
29
Instalação
30
Instalação
31
Instalação
32
Instalação
33
Instalação
34
Ferramenta de
administração
SQL Server Studio Management Studio
35
Ferramenta de
administração
Na tela de Conectar ao Serviço
● Nome do Servidor
o NOME_PC\SQLEXPRESS
● Autenticação
o Autenticação do Windows
● Clique em Conectar
36
Ferramenta de
administração
Clique em Nova Consulta ou Ctrl+N
Digite o comando:
SELECT CURRENT_TIMESTAMP;
Clique em Executar ou F5
37
Ferramenta de
administração
38
Ferramenta de
administração
Parabéns!!!!
Você executou sua primeira consulta SQL.
O comando SELECT informa ao SGDB que
você está realizando uma consulta.
O comando CURRENT_TIMESTAMP retorna o
instante atual (data + hora) do sistema.
39
Ferramenta de
administração
Digite o comando
SELECT SUSER_SNAME();
Executa
F5
Resposta
Nome do usuário da sessão atual.
40
Ferramenta de
administração
41
Ferramenta de
administração
Parabéns!
Você acabou de criar seu primeiro Script SQL.
Para Salvar ele acesse:
Arquivo/Salvar [Link]
Ou use o atalho Crlt+s
42
Ferramenta de
administração
43
Ferramenta de
administração
NUNCA SE ESQUEÇA
OS COMPUTADORES
APAGA TUDO QUANDO REINICIADO
!!!!!!
44
Ferramenta de
administração
Salve o arquivo em um:
pendrive
nuvem
email
disquete
cd / dvd
ou sei lá como….
MAS SEMPRE TENHA UM BACKUP
45
Ferramenta de
administração
Dica!
Crie o um padrão lógico nos nomes dos
arquivos SQL para você não se confundir.
EX:.
Fulano_Aula01 [Link]
Fulano_Aula01 [Link]
…
20150225_Fulano1.SQL
20150225_Fulano2.SQL
46
Ferramenta de
administração
Feche o script
Arquivo/Fechar
Feche o SQL Server Management
Arquivo/Sair
ou Alt + F4
47
Ferramenta de
administração
Agora faz tudo de novo!
Para ter certeza que não vai esquecer
Se achar que mesmo assim vai esquecer repita
3x o que fizemos nos últimos Slides.
Se mesmo assim não lembrar, me avisa que
passo um tutorial no youtube!
48
Pausa...
Ferramenta de
administração
Crie um novo script SQL
Salve o script.
Escreva o comando
SELECT 1 + 7.5 , 5 - 7.5 , 5 * 7.5, 5 / 7.5;
50
Ferramenta de
administração
51
Ferramenta de
administração
O que foi que aconteceu ali bicho?
52
Ferramenta de
administração
53
Ferramenta de
administração
54
Ferramenta de
administração
Principais operadores
+-*/%
POWER(X,N) -> Exponenciação
SQRT(X) -> Raiz quadradade X
POWER(X,1/N)) -> N raiz de X
55
Ferramenta de
administração
Além das quatro operações básicas…
o programa possui uma coleção de funções
matemáticas internas que podem ser utilizadas
a qualquer momento
Como:
Valor absoluto
resto de divisão
arredondamento
logaritmo...
56
Ferramenta de
administração
Ao ser instalado o SQL Server também cria
alguns bancos de dados do sistema;
Execute o comando
SP_HELPDB;
57
Ferramenta de
administração
58
Ferramenta de
administração
● BD master:
o local onde se encontram diversas informações
importantes para o funcionamento do
gerenciador de banco de dados. Se algo de
errado acontecer a esse BD, pode travar o SQL
SERVER.
● BD model:
o Armazena os modelos para a criação de outros
bancos de dados.
o ELE NÃO PODE SER EXCLUÍDO!
59
Ferramenta de
administração
● BD msdb:
o É usado para agendamento de serviços.
o Recriado toda vez que o SGDB é reiniciado.
● DB tempdb:
o O SGDB usa ele para o gerenciamento de
operações temporárias.
o Recriado toda vez que o SGDB é reiniciado.
60
Instruções e funções
● A comunicação com o SQL Server é
realizada através de comandos e funções.
● Esses comandos são formados por palavras
simples ou compostas.
● As funções são formados pelo nome
seguido de parênteses.
61
Instruções e funções
● Cada nome de comando ou função é
representado por uma palavra reservada ou
palavra chave.
● [Link]
x
62
Instruções e funções
63
Instruções e funções
● Algumas dessas palavras reservadas são
encontradas em outros SGDB
● Na aula 6 iremos conhecer mais alguns
desse comandos.
64
Por hoje é só!
SÓ QUE NÃO !!!!
SQL
Structured Query Language, ou Linguagem de
Consulta Estruturada ou SQL, é a linguagem de
pesquisa declarativa padrão para banco de dados
relacional (base de dados relacional). Muitas das
características originais do SQL foram inspiradas na
álgebra relacional.
67
HISTÓRICO
SEQUEL - Structured English QUEry Language
Projetada e implementada no Centro de Pesquisa da IBM
como interface de um banco de dados relacional
experimental chamado System R
ANSI (American National Standards Institute) e a ISO
(International Standards Organization) juntaram esforços de
pesquisa, originando a versão SQL96, ou SQL1
SQL2, aprovada em 1992 (SQL92)
SQL3 aprovada em 1999
SQL É MAIS DO QUE UMA LINGUAGEM DE
CONSULTA
DDL (Data Definition Language)
Linguagem de Definição dos dados
Permite a definição da estrutura do banco de dados
CREATE
ALTER
DROP
SQL É MAIS DO QUE UMA LINGUAGEM DE
CONSULTA
DML (Data Manipulation Language)
Linguagem de Manipulação dos dados
Recuperação de dados
Possibilita a recuperação dos dados do banco
SELECT
Atualização dos dados
Permite alterações e exclusões de dados já existentes, bem como a adição
de novos dados
INSERT
UPDATE
DELETE
Resumo
OUTROS COMANDOS DA LINGUAGEM
Controle de acesso
Fornece meios para determinar o controle de acesso de usuários aos
dados do banco
GRANT
REVOKE
Compartilhamento de dados (transações)
Coordena o acesso concorrente de usuários, assegurando que um
não interfira no trabalho do outro
COMMIT
ROLLBACK
SAVEPOINT
Integridade de dados
Permite definir restrições de integridade aos dados do banco
CONSTRAINT
Comunicando-se com um
SGBD Relacional usando SQL
A instrução SQL
é informada A instrução é enviada
SQL> para o banco de dados
SQL> SELECT
SELECT loc
loc
22 FROM
FROM dept;
dept;
Banco de
Dados
Os dados são
exibidos
LOC
LOC
-------------
-------------
NEW
NEW YORK
YORK
DALLAS
DALLAS
CHICAGO
CHICAGO
BOSTON
BOSTON
VANTAGENS DA LINGUAGEM SQL
●
Independência de fabricante;
●
Portabilidade entre
computadores;
●
Redução dos custos com
treinamento;
●
Comandos estruturado de alto
nível;
●
Múltiplas visões dos dados.
SQL E LINGUAGENS DE PROGRAMAÇÃO
Declarações SQL podem ser embutidas em
praticamente todas as linguagens de programação
modernas
Java, C#, Delphi
Driver de conexão ao SGBD
JDBC
ODBC
Objetos do Banco de Dados
Objeto Descrição
Tabela Unidade básica de armazenamento,
composta de linhas de uma ou mais colunas
View Representa logicamente subconjuntos de
dados de uma ou mais tabelas
Seqüência Gera valores de chave primária
Índice Melhora o desempenho de algumas
consultas
Sinônimo Atribui nomes alternativos a objetos
Convenções para Nomeação
Deve começar com uma letra
Pode ter de 1 a 30 caracteres
Deve conter somente A–Z, a–z, 0–9, _, $ e #
Não deve duplicar o nome de outro objeto de
propriedade do mesmo usuário
Não deve ser uma palavra reservada do SGBD
SQL COMO DDL
Instruções para definição do esquema da base de
dados:
CREATE TABLE
Cria uma nova tabela na base de dados, especificando nome,
atributos e restrições
ALTER TABLE
Altera definições de uma tabela
DROP TABLE
Remove uma tabela, quando suas definições não são mais
necessárias
CRIAÇÃO DO BANCO DE DADOS
CREATE DATABASE
Cria um novo banco de dados
Sintaxe pode mudar a depender do SGBD
CREATE DATABASE <nome_do_BD>
CREATE DATABASE EmpresaABC
CRIAÇÃO DE TABELAS
CREATE TABLE
Colunas são especificadas primeiro, sob a forma:
<nomeCol> <domínio> <restrição>
Depois Chaves, integridade referencial e restrições de integridade
CREATE TABLE <nome_da_tabela>
( <nome_da_col1> <tipo_da_col1> NOT NULL,
<nome_da_col2> <tipo_da_col2> NOT NULL,
...
PRIMARY KEY <lista_de_nomes_de_col>,
FOREIGN KEY <nomes_de_col>
REFERENCES <nome_tab_ref>(<nome_da_col_ref>)
);
CRIAÇÃO DE TABELAS
Exemplo:
CREATE TABLE Fornecedor
( Fcod INTEGER NOT NULL,
Fnome VARCHAR(20) NOT NULL,
Status INTEGER,
Cidade VARCHAR(20));
Fornecedor
Fcod Fnome Status Cidade
TIPOS PARA A DEFINIÇÃO DE COLUNAS
SQL Padrão (ANSI) SQL2 = Padrão +
CHAR(tamanho) VARCHAR(tamanho)
CHARACTER(tamanho) CHAR VARYING(tamanho)
CHARACTER VARYING(tamanho)
INT
INTEGER NCHAR(tamanho)
SMALLINT NATIONAL CHAR(tamanho)
NATIONAL CHARACTER(tamanho)
NUMERIC(precisão,escala) VARYING(tamanho)
DECIMAL(precisão,escala)
DEC(precisão,escala) BIT(tamanho)
BIT VARYING(tamanho)
FLOAT(precisão)
REAL DATETIME
DOUBLE PRECISION TIME(precisão)
TIMESTAMP(precisão)
INTERVAL
RESTRIÇÕES E VALORES DEFAULT
Restrições:
NOT NULL
Restrição aplicadas a colunas cujos valores não podem ser nulos
Valores Default
Adiciona-se a cláusula DEFAULT <valor> logo após a
restrição:
CREATE TABLE Empregado
( ...
Sexo CHAR(1) RestriçãoDefinição
NOT NULL DEFAULTdo “F”,
... valor default
);
CRIAÇÃO DE TABELAS
Especificação de chaves:
Primária:
PRIMARY KEY(<nomeColuna>),
Estrangeira:
FOREIGN KEY(<nomeCol>) REFERENCES
<NomeTabRefer>,
Alternativa:
UNIQUE KEY(CPF), (SQL2)
CRIAÇÃO DE TABELAS
Exemplo com chave primária:
CREATE TABLE Departamento
( Dcod INTEGER NOT NULL,
Dnome VARCHAR(20) NOT NULL,
Cidade VARCHAR(20),
PRIMARY KEY(Dcod));
Departamento
CRIAÇÃO DE TABELAS
Exemplo com chave primária composta
CREATE TABLE Empregado
( Ecod INTEGER NOT NULL,
Enome VARCHAR(40) NOT NULL,
CPF VARCHAR(15) NOT NULL,
Salario DECIMAL(7,2),
Cod_Dept INTEGER NOT NULL,
PRIMARY KEY(Ecod,ENome));
Empregado
CRIAÇÃO DE TABELAS
Exemplo com chave estrangeira
CREATE TABLE Empregado
( ...,
CONSTRAINT TrabalhaEm
FOREIGN KEY(Cod_Dept) REFERENCES
Departamento(Dcod),
...
);
Empregado
Ecod Enome CPF Salario Cod_Dept
CRIAÇÃO DE TABELAS
Exemplo com chave alternativa
CREATE TABLE Empregado
( ...,
UNIQUE KEY(CPF));
Empregado
Ecod Enome CPF Salario Cod_Dept
CRIAÇÃO DE TABELAS
Assim...
CREATE TABLE Empregado
( Ecod INTEGER NOT NULL,
Enome VARCHAR(40) NOT NULL,
CPF VARCHAR(15) NOT NULL,
Salario DECIMAL(7,2),
Cod_Dept INTEGER NOT NULL,
PRIMARY KEY(Ecod,ENome);
CONSTRAINT TrabalhaEm
FOREIGN KEY(Cod_Dept) REFERENCES Departamento(Dcod),
UNIQUE KEY(CPF));
Empregado
Ecod Enome CPF Salario Cod_Dept
CRIAÇÃO DE TABELAS
Exemplo com chave estrangeira
CREATE TABLE Empregado
( ...,
CONSTRAINT TrabalhaEm
FOREIGN KEY(Cod_Dept) REFERENCES
Departamento(Dcod),
...
);
REMOÇÃO DE TABELAS
●
DROP TABLE
– Elimina completamente a tabela (vazia ou não)
DROP TABLE <nome_da_tabela>;
●
Ex.:
DROP TABLE Empregado;
– Não há como recuperar a tabela removida
ALTERAÇÃO DE TABELAS
●
ALTER TABLE
ALTER TABLE <nome_da_tabela> <alteração>;
●
Adicionar uma coluna:
ALTER TABLE Empregado
ADD Telefone VARCHAR(30)
ADD sexo CHAR(1) DEFAULT ‘F’;
ALTERAÇÃO DE TABELAS
●
Excluir restrições de chave primária
ALTER TABLE Empregado
DROP PRIMARY KEY;
●
Exclusão de uma chave estrangeira
– Pode ser feita somente se ela recebeu um nome quando foi
definida (através de CONSTRAINT):
ALTER TABLE Empregado
DROP FOREIGN KEY TrabalhaEm;
ALTERAÇÃO DE TABELAS
●
Adicionar chave estrangeira:
ALTER TABLE Empregado
CONSTRAINT Supervisao
ADD FOREIGN KEY(Codesupervisor)
REFERENCES Empregado(codemp);
INTEGRIDADE REFERENCIAL
Cuidados
Quando colunas são excluídas ou alteradas
Quando o valor do atributo da chave estrangeira é modificado
na tabela referenciada
Ações disparadas quando ocorrem violações:
SET NULL
CASCADE
ON DELETE
ON UPDATE
INTEGRIDADE REFERENCIAL
Exemplo, na tabela de Empregado
CREATE TABLE Empregado
( ...
FOREIGN KEY(Cod_Dept) REFERENCES
Departamento(Dcod)
ON DELETE SET NULL
ON UPDATE CASCADE,
...
);
●
Ou seja...
– Na remoção da linha que contém o valor da chave
estrangeira, colocar nulo à coluna (se a coluna admitir
NULL)
– Na alteração do valor da chave estrangeira, alterar em
cascata as chaves que referenciam este valor
EXERCÍCIO
Altere as tabelas criadas anteriormente para :
Fornecedor (Fcod#, Fnome, Status, Ccod#, fone)
Cidade (Ccod#, Cnome, uf)
Peça (Pcod#, Pnome, Cor, Peso, Ccod#)
Projeto (PRcod#, Jnome, Ccod#)
Fornecimento (Fcod#, Pcod#, PRcod#,Quantidade)
Observe que a tabela Instituição não existe mais.
EXERCÍCIO
Crie as seguintes tabelas em seu BD, definindo as condições
descritas abaixo
Fornecedor (Fcod#, Fnome, Status, Cidade)
Peca (Pcod#, Pnome, Cor, Peso, Cidade)
Projeto (PRcod#, Icod#, PRnome, Cidade)
Fornecimento (Fcod#, Pcod#, PRcod#, Quantidade)
Instituição (Icod#, nome)
Nomes para restrições de chaves primária, estrangeira e alternativa
Valor default para o atributo Status, de Fornecedor
Todos os atributos de Peca não podem ser nulos
A ação de CASCADE em Fornecimento se a tabela de Projeto fosse
excluída
Qual tabela deve ser criada por último?Pq?
Dúvidas
99
100