Escolar Documentos
Profissional Documentos
Cultura Documentos
DADOS
RODRIGO DE CARVALHO
CARVALHO.RODRIGO@PROF.UNA.BR
1
EMENTA
Conceitos básicos de banco de dados.
Sistemas Gerenciador de Banco de Dados (SGBDs).
Modelagem de Dados: conceitual, lógico e projeto físico.
Linguagem SQL ANSI (DDL, DML).
Normalização.
Álgebra Relacional.
Banco de dados relacional.
2
EMENTA
Conceitos básicos de banco de dados.
Sistemas Gerenciador de Banco de Dados (SGBDs).
Modelagem de Dados: conceitual, lógico e projeto físico.
Linguagem SQL ANSI (DDL, DML).
Normalização.
Álgebra Relacional.
Banco de dados relacional.
3
BIBLIOGRAFIA BÁSICA
DATE, C. J. Introdução a sistemas de bancos de dados. Rio de Janeiro:
Campus, 2004.
ELMASRI, Ramez; NAVATHE, Sham. . Sistemas de banco de dados.4. ed.
atual. São Paulo: Pearson
Addison Wesley, 2005.
SILBERSCHATZ, Abraham.; KORTH, Henry F.; SUDARSHAN, S. . Sistema de
banco de dados. Rio de Janeiro: Elsevier, 2006.
4
BIBLIOGRAFIA COMPLEMENTAR
5
DISTRIBUIÇÃO DE
PONTOS
Atividade Pontuação
P1 30
Trabalho 20
P2 30
TIDIR/PA 20
Prova Alternativa 30
6
TRABALHO
Trabalho Valor
Projeto 1 10
Projeto 2 10
7
PROJETO 2
TRABALHO
Escolher um artigo/tese/monografia
Apresentar em sala
13
INTRODUÇÃO
O que é Banco de dados?
14
INTRODUÇÃO
O que é Banco de dados?
15
INTRODUÇÃO
Dados: representação de fatos, conceitos ou instruções de maneira
formalizada, adequadas para comunicação, interpretação ou
processamento por pessoas ou meios automatizados.
16
INTRODUÇÃO
Informação: significados que pessoas associam aos dados
através de convenções usadas em sua interpretação.
17
INTRODUÇÃO
O que é Banco de dados?
18
INTRODUÇÃO
O equivalente não eletrônico seria:
19
Vendas Produção Compras
Produto
E se enquanto uma pessoa está com a ficha, uma outra acessa o fichário, não
encontra a ficha, então cria uma nova ficha; quando uma devolver a ficha, serão
duas fichas diferentes para o mesmo produto.
E se perde a ficha?
20
E se pega fogo em tudo?
Vendas Produção Compras
E se enquanto uma pessoa está com a ficha, uma outra acessa o fichário, não
encontra a ficha, então cria uma nova ficha; quando uma devolver a ficha, serão
duas fichas diferentes para o mesmo produto.
E se perde a ficha?
21
E se pega fogo em tudo?
INTRODUÇÃO
Os fundamentos de bancos de dados relacionais surgiram na
empresa IBM, nas décadas de 1960 e 1970.
Em 1970 um pesquisador da IBM - Ted Codd - publicou o
primeiro artigo sobre bancos de dados relacionais.
Honeywell Information Systems Inc. (1976)
Oracle (Anos 80)
Sistema de Gerenciamento de Banco de Dados Orientado a
Objetos (Anos 90)
22
Uma pessoa por vez acessando
E se enquanto uma pessoa está com a ficha, uma outra acessa o fichário, não
encontra a ficha, então cria uma nova ficha; quando a uma devolver a ficha, serão
duas fichas diferentes para o mesmo produto.
E se perde a ficha?
23
E se pega fogo em tudo?
SGBD
Definição: Sistema cujo objetivo principal é gerenciar o
acesso e a correta manutenção dos dados armazenados em
um banco de dados
24
BANCO DE DADOS X
ARQUIVOS
25
SQL
A linguagem SQL é composta por inúmeros comandos, os quais
são agrupados da seguinte maneira:
Comandos que definem dados;
Comandos que manipulam dados;
Comandos de controle de dados.
26
DML
SELECT – Consulta (seleção)
UPDATE – Atualização
DELETE – Exclusão
INSERT – Inclusão
Exemplos:
SELECT * from Usuario;
SELECT contato FROM Cliente;
DELETE FROM Cliente where Pais=‘Alemanha‘
27
DDL
CREATE
ALTER
DROP
Exemplos:
create table A(codigo int);
alter table A add data date
28
DCL
Controla os aspectos de autorização de dados e a utilização de
licenças por usuários. Os principais comandos são GRANT e
REVOKE
29
PRÁTICA
http://www.w3schools.com/sql/trysql.asp?filename=trysql_select_all
30
MODELOS DE DADOS
Conceitual Lógico Físico
Independente do SGBD
31
MODELOS DE DADOS
Conceitual Lógico Físico
32
MODELOS DE DADOS
Conceitual Lógico Físico
33
ENTIDADE
Entidade é aquele objeto existente no mundo real, com uma
identificação distinta e significado próprio.
Pessoa, Automóvel, Departamento, etc.
34
ATRIBUTOS
Informações que referenciam a entidade.
(Propriedades para descrever uma entidade)
Simples ou composto
Monovalorados ou Multivalorados
35
ATRIBUTOS
36
ATRIBUTOS
Se uma entidade tem um atributo que é único no mundo real,
posso usar como chave (ou chave primária, ou primary key)?
37
ATRIBUTOS
Se uma entidade tem um atributo que é único no mundo real,
posso usar como chave (ou chave primária, ou primary key)?
38
ATRIBUTOS
Chave Estrangeira (FK – Foreign Key)
- Serve para que possamos implementar os relacionamentos
vistos na modelagem.
39
INTEGRIDADE
- Um banco de dados não pode conter valores de chaves
estrangeiras não associados.
- Como o SGBD se comporta quando há uma tentativa de
apagar ou atualizar uma chave primária referenciada em
uma chave estrangeira ?
40
INTEGRIDADE
Como o SGBD se comporta quando há uma tentativa de apagar
ou atualizar uma chave primária referenciada em uma chave
estrangeira ?
41
TERMOS...
Termo relacional formal Equivalente informal
- relação - tabela
- tupla - linha de registro
- cardinalidade - número de linhas
- atributo - coluna ou campo
- grau - número de colunas
- domínio - faixa de valores legais
42
ENTIDADE X ATRIBUTOS
- Não existe tuplas duplicadas.
- Tuplas não são ordenadas.
- Atributos não são ordenados.
- Cada tupla tem um único valor para cada atributo.
- O cabeçalho de uma relação representa um predicado.
- Domínio.
43
RELACIONAMENTO
Abstração das associações entre entidades.
44
RELACIONAMENTO 1:1
45
RELACIONAMENTO 1:N
46
RELACIONAMENTO N:N
47
EXEMPLO
48
EXEMPLO
A cardinalidade é um número que expressa o comportamento
(número de ocorrências) de determinada entidade associada a
uma ocorrência da entidade em questão através do
relacionamento.
49
EXEMPLO
50
EXEMPLO
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);
51
EXEMPLO
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);
Entidade x Atributos
52
EXEMPLO
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);
Entidade x Atributos
53
EXERCÍCIO
A UNA é uma indústria localizada em uma pequena cidade do
interior.
Na UNA 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
UNA precisa registrar esses casos.
54
AUTO-
RELACIONAMENTO
55
GENERALIZAÇÃO/ESPECIALIZAÇÃO
56
GENERALIZAÇÃO/ESPECIALIZAÇÃO
57
GENERALIZAÇÃO/ESPECIALIZAÇÃO
58
GENERALIZAÇÃO/ESPECIALIZAÇÃO
59
GENERALIZAÇÃO/ESPECIALIZAÇÃO
60
GENERALIZAÇÃO/ESPECIALIZAÇÃO
61
GENERALIZAÇÃO/ESPECIALIZAÇÃO
62
GENERALIZAÇÃO/ESPECIALIZAÇÃO
63
GENERALIZAÇÃO/ESPECIALIZAÇÃO
64
EXERCÍCIO
Uma Construtora 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.
65
DER
Em uma clínica trabalham médicos e existem vários
pacientes internados. Cada médico é identificado pelo seu
CRM, possui um nome e recebe um salário da clínica. Um
médico tem formação em diversas especialidade, mas só
exerce uma delas na clínica. Para todo paciente internado na
clínica são cadastrados alguns dados pessoais: nome, RG,
CPF, endereço, celular, telefone fixo e data de nascimento.
Um paciente tem sempre um determinado médico como
responsável, porém vários outros médicos podem participar
do seu tratamento. Pacientes sempre estão internados em
quartos individuais, que são identificados por um númeroe
ficam em um andar na clínica.
66
UM AMBIENTE DE
TREINAMENTO
Uma empresa que dá treinamento na área de informática tem a seguinte programação semestral de cursos: DBA para o
Banco de Dados Oracle, Visual Basic Básico, Visual Basic Avançado, Delphi Básico e outros. Um curso pode ser
ministrado várias vezes no semestre. O curso de DBA Oracle para o primeiro semestre de 1999 teve a seguinte
programação: a primeira turma de 15/03/99 a 30/03/99 e a segunda turma de 20/06/99 a 05/07/99. Já o curso de Visual
Basic Básico foi programado para: a primeira turma no mesmo período da primeira turma de DBA e a segunda turma
para o período de 10/08/99 a 30/08/99. O número de alunos matriculados em cada turma é no máximo 30 em razão do
número reduzido de computadores para as aulas práticas. Para fazer a matrícula, o aluno precisa apresentar: CPF,
nome completo, endereço, telefones de contato e o comprovante do pagamento da taxa de matrícula (que pode ser feito
na rede bancária do estado), o curso que pretende fazer e em qual período. No momento da matrícula, a cada aluno é
atribuído um número que o identifica entre todos os alunos da turma. Se o aluno, eventualmente, volta a cursar mais
cursos, o número dele continua o mesmo. Há que manter o registro para cada aula, de um resumo sucinto da matéria
lecionada, da data e da freqüência de cada aluno. A empresa tem o interesse em saber o dia da matrícula de cada aluno
e em qual banco e agência o aluno fez o pagamento da matrícula. Para cada turma de cada curso é alocado um
professor cujos dados de interesse são: CPF, nome, endereço, preço cobrado para ministrar o curso, telefones para
contato e quais os cursos que o professor pode ministrar. Outros dados importantes para a empresa são: valor total das
matrículas por turma, por curso, por semestre e por ano. Considerar a hipótese do professor ser aluno de cursos que
67
SQL
SQL é uma linguagem padrão para acessar bancos de dados.
Não é case sensitive: Select = SELECT.
Alguns sistemas de banco de dados requerem um ponto e
vírgula no final de cada instrução SQL.
68
SELECT
SELECT <nome das colunas> FROM <nome da tabela>;
SELECT nome FROM Aluno;
Select * from Aluno;
Select nome, RA FROM Aluno;
69
SELECT (TABELA CUSTOMERS)
70
SELECT (TABELA CUSTOMERS)
71
WHERE
A cláusula WHERE é usada para extrair apenas os registros
que satisfaçam um critério especificado.
SELECT nome, RA
FROM Aluno
WHERE curso = ‘Sistemas de Informação’;
72
WHERE
= Igual
BETWEEN Entre
AND e OR são operadores que são usados para filtrar registros com
base em mais de uma condição.
73
1 - SELECT * from customers where CustomerID = 1
2 - SELECT * from customers where CustomerID <> 1
3 - SELECT * from customers where CustomerID < 1
4 - SELECT * from customers where CustomerID between 1 and 3
5 - SELECT * from customers where City like 'Be%‘
6 - SELECT * from customers where City like '%e%‘
7 - SELECT * from customers where City like '%im' and CustomerID < 14
8 - SELECT * from customers where City like '%im' or CustomerID < 3
9 - SELECT * FROM Customers where City IN ('Paris','London');
10 - SELECT * FROM Customers where city = 'London' or city = 'Paris'
74
1 – Selecionar tuplas onde OrderID seja maior que 10250.
2 – Selcionar tuplas onde ProductID seja igual a 57.
3 – Selecionar tuplas onde Quantity seja maior que 10 e a OrderID seja maior que 10500.
4 – Selecionar tuplas onde OrderID esteja entre 10000 e 11000.
5 – Selecionar tuplas onde ProductID seja igual a 41 ou 51.
75
CREATE
CREATE TABLE nome tabela
(
atributo tipo,
atributo tipo,
atributo tipo,
....
);
76
CREATE
CREATE TABLE CATEGORIA
(
COD int,
NOME varchar(255)
);
77
CREATE +
RESTRIÇÕES
CREATE TABLE nome tabela
(
atributo tipo restrições,
atributo tipo restrições,
atributo tipo restrições,
....
);
NOT NULL - Indica que as colunas não podem ter valores nulos.
UNIQUE - Indica que cada linha dessa coluna deve ter um único valor.
PRIMARY KEY - Combinação NOT NULL + UNIQUE.
FOREIGN KEY - Garantir a integridade referencial dos dados em uma tabela para
coincidir com os valores em outra tabela.
CHECK - A restrição CHECK é usada para limitar a faixa de valores que podem
ser colocadas em uma coluna.
DEFAULT - Valor default caso a coluna não seja preenchida.
78
EXEMPLOS
79
MYSQL
http://downloads.mysql.com/docs/refman-4.1-pt.a4.pdf
80
REVISÃO
81
MODELO CONCEITUAL
82
MODELO LÓGICO
83
MODELO LÓGICO
84
MODELO FÍSICO
85
ENTIDADES X
OCORRÊNCIAS
86
87
88
89
90
91
92
GRAUS DE
RELACIONAMENTO
93
ENTIDADE FORTE
Entidade Forte x Entidade Fraca
94
95
96
97
SISTEMA DE VENDAS
DE MEDICAMENTOS.
As informações baseadas na entrevista são as seguintes:
O sistema vende medicamentos somente para clientes cadastrados;
O fornecedor do medicamento pode fornecer vários itens, assim como um
medicamento pode ser fornecido por vários fornecedores;
Os fornecedores que fornecem os anti-depressivos deverão ter informações
adicionais, como inscrição na vigilancia sanitária e validade da inscrição.
Os medicamentos estão separados por Grupos, tipo: analgésicos, anti-
depressivos, etc
O sistema faz apenas vendas desses medicamentos cadastrados. A venda
tem que ter pelo menos um item, assim como pode ter vários itens.
Faça o DER completo e: Classifique as entidades em forte, fraca e
associativa. Especifique os atributos, identificando os atributos de
identificação e determinantes, e colocando seus devidos formatos.
Especifique também os relacionamentos.
98
SISTEMA EMPRESA DE
TRANSPORTES AÉREOS
.As informações baseadas na entrevista são as seguintes:
A empresa quer armazenar informações sobre as aeronaves que
possui (tipo da aeronava, nº poltronas);
Os voos (aeroporto de origem e destino, horário saída e
chegada);
Um cliente pode fazer vários voos e quando os clientes compram
os voos, eles já tem informações como: numero bilhete e número
poltrona.
A empresa quer informações de seus clientes para uma possível
mala direta.
99
MODELO LÓGICO
Pessoa(ID_Pessoa, Nome, FK_ID_Dp)
FK_ID_Dp referencia Departamento
100
Sistema Musical. A Sonora Pro Music decidiu armazenar informações sobre músicos que
tocam em seus álbuns (assim como outros dados da empresa) em um banco de dados. A
empresa escolheu sabiamente contratar você como projetista de banco de dados.
Cada músico que grava na Sonora Pro Music tem um CPF, um nome, um endereço, e um
número de telefone.
Os músicos que não ganham muito normalmente compartilham o mesmo endereço, e
nenhum endereço tem mais do que um telefone;
Cada instrumento utilizado nas músicas gravadas na Sonora tem um nome (por exemplo,
guitarra, sintetizador, flauta) e um tom musical (por exemplo, C, B#, E#);
Cada álbum gravado com o selo Sonora tem um título, uma data de direitos autorais, um
formato (por exemplo, CD ou MC), e um identificador de álbum;
Cada música gravada na Sonora tem um título e um autor;
Cada músico toca diversos instrumentos, e um determinado instrumento pode ser ocado por
diversos músicos;
Cada álbum tem um número de músicas gravadas, mas nenhuma música pode aparecer em
mais de um álbum;
Cada música é interpretada por um ou mais músicos, e um músico pode interpretar mais de
uma música;
Cada álbum tem exatamente um músico que trabalha com seu produtor. Naturalmente, um
músico pode produzir diversos álbuns.
101
SQL
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
INSERT INTO Customers (CustomerName, City, Country)
VALUES ('Cardinal', 'Stavanger', 'Norway');
102
SQL
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
UPDATE Customers
SET ContactName='Alfred Schmidt', City='Hamburg'
WHERE CustomerName='Alfreds Futterkiste';
103
SQL
DELETE FROM table_name
WHERE some_column=some_value
104
EXERCÍCIOS
1 – Criar a tabela Pessoa
Pessoa(ID_Pessoa, Nome, Sobrenome)
2 – Inserir 5 pessoas diferentes no banco
ID_Pessoa ={1,2,3,4,5}
3 – Alterar o nome da pessoa com ID igual a 4 para Rodrigo
4 – Apagar a pessoa com ID igual a 1
5 – Selecionar todos os nomes das pessoas que estão na
tabela Pessoa
6 – Apagar todo mundo que tenha Rodrigo no atributo Nome
105
EXERCÍCIO 2
1 – Criar a tabela Produto(id, vescricao, valor)
2 – Inserir 5 pessoas diferentes no banco
ID_Pessoa ={1,2,3,4,5}
3 – Alterar o nome da pessoa com ID igual a 4 para Rodrigo
4 – Apagar a pessoa com ID igual a 1
5 – Selecionar todos os nomes das pessoas que estão na
tabela Pessoa
6 – Apagar todo mundo que tenha Rodrigo no atributo Nome
106
NORMALIZAÇÃO
A normalização de dados é uma série de passos que se
seguem no projeto de um banco de dados, que permitem um
armazenamento consistente e um eficiente acesso aos dados
em bancos de dados relacionais. Esses passos reduzem a
redundância de dados e as chances dos dados se tornarem
inconsistentes.
107
FN1
- Uma tabela está na 1FN, se e somente se, não possuir
atributos multivalorados ou grupos repetitivos.
- Atributos em formato atômico
- Chave primária que identifica somente uma tupla
108
FN1
109
FN1
codigo_cli Nome Telefone rua número bairro estado cep
ente
C001 José 9653-6352 Seis 85 Morumbi SP 12536-965
9647-2501
codigo_cliente telefone
C001 9653-6352
C001 9647-2501
110
FN1
codigo_cli Nome Telefone rua número bairro estado cep
Chave
ente
primária que identifica somente uma tupla
C001 José 9653-6352 Seis 85 Morumbi SP 12536-965
9647-2501
codigo_cliente telefone
C001 9653-6352
C001 9647-2501
111
FN1
codigo_cli Nome rua número bairro estado cep
ente
C001 José Seis 85 Morumbi SP 12536-965
codigo_telefone Codigo_cliente
1 C001
2 C001
2 C002
codigo_telefone telefone
1 9653-6352
2 9647-2501
112
FN2
113
FN2
codigo veiculo marca proprietario codigo_pro idmarca
prietario
1 Fox VW Renata 1 1
2 Gol VW Rodrigo 2 1
3 Focus Ford João 3 2
4 Focus Ford Rodrigo 2 2
114
FN3
Uma relação está em 3FN se todas as colunas da tabela são
funcionalmente dependentes da chave inteira e nada além da
chave.
115
FN3
116