Escolar Documentos
Profissional Documentos
Cultura Documentos
Desenvolvimento de
Servidores - CDS
Disciplina
Introduo a Banco de Dados
Realizao:
Acesse: http://pse.ifes.edu.br/cds/site
Sumrio
1. CONCEITOS DE BANCOS DE DADOS...................................................................................................................9
1.1. DEFINIO.............................................................................................................................................................9
1.2. OBJETIVOS.............................................................................................................................................................9
1.3. SISTEMAS DE ARQUIVOS CONVENCIONAIS.................................................................................................9
1.4. USURIOS DE BANCO DE DADOS..................................................................................................................11
1.5. ABSTRAO DE DADOS...................................................................................................................................11
1.6. INDEPENDNCIA DE DADOS...........................................................................................................................12
1.7. ARQUITETURA DE SISTEMAS DE BANCO DE DADOS [SILBERSCHATZ, 2006]....................................12
1.8. MODELOS DE BANCOS DE DADOS................................................................................................................14
1.9. ESTRUTURA GERAL DO SISTEMA..................................................................................................................18
1.10. LINGUAGEM DE DEFINIO DE DADOS (DDL)........................................................................................19
1.11. LINGUAGEM DE MANIPULAO DE DADOS (DML)................................................................................20
1.12. PROJETANDO BANCOS DE DADOS.............................................................................................................20
2. MODELAGEM DE DADOS......................................................................................................................................24
2.1. DEFINIO...........................................................................................................................................................24
2.2. ENTIDADES .........................................................................................................................................................24
2.4. RELACIONAMENTO...........................................................................................................................................25
2.5. DICIONRIO DE DADOS....................................................................................................................................32
2.6. FERRAMENTAS CASE........................................................................................................................................33
2.7. MODELO ER ESTENDIDO - EER.......................................................................................................................33
3. PROJETO LGICO DE BANCO DE DADOS.......................................................................................................34
3.1. DEFINIO...........................................................................................................................................................34
3.2. ESTRUTURA DOS BANCOS DE DADOS RELACIONAIS..............................................................................34
3.3. CHAVES................................................................................................................................................................35
3.4. PROPRIEDADES DO MODELO RELACIONAL [FALBO,2009].....................................................................36
3.6. NORMALIZAO................................................................................................................................................43
4. LINGUAGENS DE CONSULTA...............................................................................................................................47
4.1. DEFINIO...........................................................................................................................................................47
4.2. LGEBRA RELACIONAL...................................................................................................................................47
4.3. SQL.........................................................................................................................................................................57
REFERNCIAS...............................................................................................................................................................76
1.2. OBJETIVOS
Dentre os principais objetivos do uso de Sistemas Gerenciadores de Bancos
de Dados, destacam-se:
Viso 1
Viso 2
...
Viso n
Nvel Lgico
Nvel Fsico
Figura 1: Nveis de abstrao de dados
Fonte: Silberschatz, Korth e Sudarshan, 2006. Adaptao.
Nome
Maria
Matheus
Gabriel
Joana
Cidade
Vitria
Vila Velha
Serra
Aracruz
CodDepto
01
NomeDepto
Informtica
CodDepto
01
02
02
03
02
03
Geografia
Portugus
Tabela 2: Tabela de Departamentos.
1.9.2.
Componentes
para
armazenamento de dados
administrao
do
Atividade 01
Faa os exerccios de fixao abaixo, referente ao capitulo 1.
1) Defina SGBDs.
2) Cite duas desvantagens do uso de sistemas de arquivos em
relao a SGBDs.
3) Defina uma vantagem de se usar sistemas de arquivos em
relao a SGBD.
4) Cite as quatro arquiteturas de banco de dados existentes no
mercado. Descreva, em poucas linhas, as caractersticas de
cada uma delas.
5) Quais so os nveis de abstrao proporcionados por um
SGBD? Enquadre, para cada grupo de usurio, abaixo
listados, o nvel em que o mesmo se encontra.
a. Administrador de Banco de Dados
b. Usurio de aplicaes
c. Programador e Analista de Aplicaes
6) Liste, em ordem cronolgica, os modelos de bancos de
dados existentes no mercado. Qual modelo de banco de dados
ser utilizado em nossa disciplina?
Atividade 02
1) Dadas as relaes abaixo, responda ao que se pede.
Funcionrio
Matricula
01
02
03
04
05
06
Cargos
Cdigo
01
02
03
04
05
Nom
e
Ana
Maria
Jos
Pedro
Joana
Joo
CPF
Cargo
123
234
245
125
435
467
2
1
3
1
2
1
Nome Cargo
Programador
Topgrafo
Engenheiro
Pedreiro
Motorista
Atividade 03
1) Numere a segunda coluna de acordo com a primeira.
1. Possibilidade de
erros de acesso
concorrente
( ) Refere-se preciso ou
validade dos dados.
2. Abstrao
dados
( ) Tarefa de um SGBD.
de
3. Integridade
( ) Se alterar o esquema
conceitual, no necessrio
reescrever aplicaes.
4. Instncia
(
)
Responsvel
pela
modificao
de
dados
armazenados no banco de
dados.
5. Independncia
lgica de dados
6. Independncia
fsica de dados
7. Controle
concorrncia
de
( ) Conjunto de informaes
contidas em determinado banco
de dados, em um determinado
momento.
8. Linguagem de
Definio de Dados
(DDL)
( ) Trata-se de um modelo de
banco de dados.
9. Linguagem de
Manipulao
de
Dados (DML)
( ) Os usurios no precisam
saber como os dados so
armazenados e mantidos.
10.
ObjetoRelacional
( ) Desvantagem de sistemas de
arquivos.
2. MODELAGEM DE DADOS
2.1. DEFINIO
O principal objetivo da modelagem conceitual de dados construir modelos
que representem os requerimentos das informaes do negcio, segundo a
perspectiva do usurio. Partindo desse princpio, ao construir modelos
conceituais no h uma preocupao com a tecnologia a ser adotada para a
sua implementao. Um modelo de dados consiste em uma coleo de
ferramentas conceituais para descrio de dados, relacionamento entre os
dados, semntica e restries [SILBERSCHATZ,2006]. Neste captulo
exploraremos o modelo de entidades e relacionamentos (ER) para construo
de modelos de dados, considerando que se trata da tcnica de modelagem
mais difundida para representao de modelos conceituais.
O modelo ER uma tcnica de modelagem conceitual utilizada para
representar os dados a serem armazenados em um sistema de informao,
tendo sido desenvolvida originalmente para dar suporte ao projeto de bancos
de dados [CHEN,1990]. Esse modelo foi criado em 1976 por Peter Chen e
pode ser considerado como padro para a modelagem conceitual.
Basicamente, o modelo ER representa as entidades (coisas) e os
relacionamentos (fatos) do mundo real, em que h o interesse de monitorar o
comportamento no sistema de informao em tese.
2.2. ENTIDADES
Entidades so representaes abstratas de coisas, objetos do mundo real
modelado, para os quais temos interesse em manter informaes no banco de
dados. Podem representar tanto objetos concretos quanto abstratos. Quando
se trata de conjuntos de objetos com caractersticas semelhantes, usualmente
se denomina conjunto de entidades. Por exemplo, quando nos referimos ao
conjunto de entidade Departamentos estamos falando de um conjunto de
departamentos. Quando nos referimos ao departamento de informtica,
estamos falando da entidade, de uma instncia do conjunto.
Um conjunto de entidades ser representado por meio de um retngulo
contendo o nome do conjunto de entidades, em letra maiscula e no plural,
conforme mostra exemplo da Figura 5.
Ex: FUNCIONRIOS, CARGOS, PESSOAS ...
2.3. ATRIBUTOS
Descrevem propriedades relevantes de um conjunto de entidades. Podem ser
representados no diagrama ou em um dicionrio de dados. Adotaremos esta
ltima abordagem com o intuito de mantermos um modelo mais legvel.
Seguem algumas caractersticas de atributos, segundo Falbo (2009):
2.4. RELACIONAMENTO
Na seo anterior descrevemos atributos de conjuntos de entidades, que so
propriedades dos objetos a serem armazenados em um banco de dados. Alm
dos atributos, os conjuntos de entidades caracterizam-se por relacionar-se
com outros conjuntos de entidades, inclusive com ela mesma. A essas
associaes denominamos relacionamentos, conjunto de associaes entre
entidades (HEUSER, 2004).
Neste texto adotaremos a seguinte notao: um relacionamento ser
representado por um losango com um verbo para indicar a ao e uma seta
para informar o sentido de leitura, conforme mostra a Figura 6 abaixo.
FUNCIONRIOS
f1
f2
f3
f4
f5
f6
f7 .
.
.
ENQUADRAMENTOS
r1
CARGOS
r2
c1
r3
r4
r5
r6
c2
.
.
.
c3
r7
Figura 7: Diagrama de ocorrncias
Fonte: Heuser, 2004. Adaptao.
Relacionamento 1:N
A Figura 12 mostra um exemplo de relacionamento do tipo 1:N. Cada
Projeto pode aparecer no mximo em um nico par do relacionamento
Gerenciam, enquanto um Funcionrio pode aparecer em um nmero
arbitrrio de vezes. Nesse caso, podemos dizer que um funcionrio pode
gerenciar vrios projetos, enquanto um projeto s pode ter um gerente (tem
que haver pelo menos 1!).
Relacionamento N:N
A Figura 13 mostra um exemplo de relacionamento do tipo N:N. Cada
Funcionrio ou Projeto podem aparecer em um nmero arbitrrio de vezes
do relacionamento Gerenciam. Nesse caso, podemos dizer que um
funcionrio pode gerenciar vrios projetos, enquanto um projeto pode ter
vrios gerentes.
3.1. DEFINIO
Quando construmos um modelo conceitual, focamos apenas no que o
usurio deseja, abstraindo da plataforma em que este ser implementado. No
que se refere aos projetos de Banco de Dados, a preocupao centrada em
estabelecer de que forma os dados sero armazenados no sistema. Em funo
do modelo de banco de dados a ser usado, diferentes solues de projeto
devem ser adotadas, ou seja, se o software tiver de ser implementado em um
banco de dados hierrquico, por exemplo, um modelo hierrquico deve ser
produzido, adequando-se a modelagem conceitual de dados (ER ou diagrama
de classes) a essa plataforma de implementao.
Considerando que o modelo de banco de dados que predomina no mercado,
atualmente, o relacional, este captulo se prope a discutir conceitos de
projetos relacionados a esse modelo de bancos de dados.
3.2. ESTRUTURA
RELACIONAIS
DOS
BANCOS
DE
DADOS
Nome
Maria
Matheus
Gabriel
Joana
Cidade
Vitria
Vila Velha
Serra
Aracruz
3.3. CHAVES
importante especificar como as entidades dentro de um dado conjunto de
entidades podem ser identificadas. Conceitualmente, entidades e
relacionamentos individuais so distintos, entretanto, na perspectiva do
banco de dados, a diferena entre ambos deve ser estabelecida em termos de
seus atributos. O conceito de chaves nos permite fazer tais distines.
Uma superchave um conjunto de um ou mais atributos que, tomados
coletivamente, permitem identificar de maneira unvoca uma entidade em
um conjunto de entidades. Considere a incluso de uma nova coluna na
tabela EMPREGADO, o CPF do empregado. Os atributos (matricula,nome)
e (nome,CPF) so suficientes para distinguir cada elemento do conjunto,
podendo ser considerados como superchaves. Da mesma forma, podemos
considerar o atributo CPF como superchave de empregado. O atributo nome
no pode ser considerado como superchave, porque algumas pessoas podem
ter o mesmo nome. Nosso interesse maior por superchaves para as quais
nenhum subconjunto possa ser uma superchave. Essas chaves so chamadas
de chaves candidatas. Das superchaves mencionadas anteriormente somente
(nome,CPF) no poderia ser considerada uma chave candidata, visto que o
CPF, sozinho, j o .
Podemos usar o termo chave primria para caracterizar a chave candidata,
que escolhida pelo projetista do banco de dados como de significado
principal para a identificao de entidades dentro de um conjunto de
entidades. Quaisquer duas entidades individuais em um conjunto de
entidades no podem ter, simultaneamente, os mesmos valores em seus
atributos-chave.
Em SGBDs, apenas os conceitos de chaves primrias e chaves candidatas
so de fato implementados!
Um outro conceito de chave, que muito ser explorado neste material, o
conceito de chave estrangeira. Uma chave estrangeira um atributo ( ou
combinao de atributos) de uma tabela que constitui a chave primria de
uma tabela, da o nome de estrangeira. a estratgia usada para implementar
os relacionamentos dos modelos conceituais. Essa tabela referenciada pode
Nome
Maria
Matheus
Gabriel
Joana
Cidade
Vitria
Vila Velha
Serra
Aracruz
CodDepto
01
02
02
03
CodDepto
01
02
03
NomeDepto
Informtica
Geografia
Portugus
Tabela 5: Tabela de Departamentos.
Cada clula de uma relao pode ser vazia (exceto de uma chave
primria), ou ao contrrio, conter no mximo um nico valor.
3.5. TRADUO
RELACIONAL
DO
MODELO
ER
PARA
Essa soluo foi adotada, considerando-se que todo projeto tem um gerente,
porm, nem todo funcionrio gerencia um projeto. Ainda assim, se a chave
Nesse caso, apenas o nmero do dependente no suficiente para identificlo, considerando que diferentes scios possuem dependentes 01, 02, 03,...
3.6. NORMALIZAO
Uma vez concludo o projeto lgico de banco de dados relacional, com
gerao do esquema correspondente, deve-se avaliar, para cada tabela, se a
projeo foi bem feita. Esse processo de verificao, composto por um
conjunto de regras, denomina-se forma normal. H diversas formas
normais usadas no processo de verificao, porm na nossa disciplina sero
exploradas apenas as trs primeiras formas normais, denominadas 1FN, 2FN
e 3FN. Normalmente as formas normais visam eliminar informaes
redundantes nas tabelas, cujo processo denominado normalizao.
Atividade 01
Muitas vezes, o DBA se depara com situaes em que possui o
esquema do banco de dados, porm no tem o modelo conceitual
equivalente. Baseado nisso, dada a definio do esquema abaixo,
gere o modelo conceitual equivalente (esse processo denomina-se
Engenharia Reversa).
Fabricante (codf, nomef)
Automovel (coda, nomea, preo, codf)
Codf referencia Fabricante
Pessoa (codp, nomep)
Venda (codp, coda, data, valor, cor)
Codp referencia Pessoa
Coda referencia Automovel
Atividade 02
Dado o modelo ER e dicionrio de dados abaixo, gere o esquema
relacional equivalente:
Dicionrio de Dados:
EQUIPES = CodEquipe + NomeEquipe
PILOTOS =
Altura +Peso
PAISES =
Atividade 03
4. LINGUAGENS DE CONSULTA
4.1. DEFINIO
Uma linguagem de consulta uma linguagem na qual um usurio requisita
informaes do banco de dados. So classificadas como procedurais e no
procedurais. Numa linguagem procedural um usurio instrui o sistema para
executar uma sequncia de operaes no banco de dados, a fim de computar
o resultado desejado. Numa linguagem no-procedural o usurio descreve a
informao desejada, sem fornecer um procedimento especfico para obter
tal informao.
A lgebra relacional uma linguagem procedural, enquanto o clculo
relacional uma linguagem no procedural. Navathe (2005) afirma que
qualquer expresso escrita em lgebra relacional pode ser representada
tambm no clculo, dando o mesmo poder de expresso para ambas as
linguagens. Como o nosso propsito de usar uma linguagem de consulta
formal o de entendermos o que ocorre nos bastidores da execuo de
uma consulta, focaremos apenas na lgebra relacional.
A Linguagem SQL uma linguagem de consulta comercial, intitulada
padro pelo comit ANSI, desde 1986. uma linguagem declarativa, com
comandos muito mais amigveis do que as linguagens formais, embora seja
fundamentada nessas linguagens formais (na lgebra e no clculo).
Nas sees seguintes exploraremos a lgebra Relacional e a linguagem
SQL.
Projetar
Unio
a
a
b
b
c
c
x
y
a
b
c
x
y
x
y
x
y
Interseco
Diferena
Ligao (natural)
a1
a2
a3
b1
b1
b2
b1
b2
b3
c1
c2
c3
a1
a2
a3
b1
b1
b2
Dividir
c1
c1
c2
a
a
a
b
c
x
y
z
x
y
x
z
Operao selecionar
Operao Projetar
Operao Renomear
Atividade 01
Considere o esquema bancrio abordado anteriormente e construa
expresses em lgebra relacional para as questes que se seguem.
1. Selecionar todos os clientes (nomes) que possuam depsitos.
2. Selecionar todos os clientes que possuam depsito na mesma
cidade onde moram.
3. Encontrar todas as agncias que possuam clientes com nome
Maria (depsitos ou emprstimos).
4. Usando as Operaes Fundamentais, encontrar a conta com
maior saldo.
Atividade 02
Considere o esquema seguinte para construir expresses, usando
operaes fundamentais da lgebra relacional para as questes que
se seguem.
Pessoas (CodPessoa, Nome, Cidade, Chefe)
Empresas (CodEmpresa, Nome, Cidade)
Trabalha (CodPessoa, CodEmpresa, Salario)
CodPessoa referencia Pessoas
CodEmpresa referencia Empresas
5. Consulte todas as pessoas que trabalham. A consulta dever
retornar o nome das pessoas e a cidade onde moram.
6. Consulte o nome das empresas que possuem funcionrios que
ganham menos que um salrio mnimo (considere o valor do
salrio de R$400,00).
7. Consulte todas as pessoas (nomes) que trabalham em Vitria.
8. Consulte todas as pessoas (nomes) que trabalham na mesma
cidade onde moram.
9. Consulte todas as pessoas (nomes) que moram na mesma
cidade do chefe.
10. Consulte todas as empresas (nomes) que funcionam em
cidades em que no moram Maria.
11. Consulte todas as pessoas (nomes) que no trabalham em
Vitria e que ganham acima de R$ 2000.
12. Selecione o nome do funcionrio da empresa de cdigo 01
que possui o menor salrio.
Relao2)
Operao Diviso
Operao de Remoo
Operao de Insero
Operao de Atualizao
Atividade 03
Considere o esquema seguinte para construir expresses,
usando operaes da lgebra relacional para as questes que
se seguem.
Fabricante (codf, nomef)
Automovel (coda, nomea, preco, codf)
Codf referencia Fabricante
Pessoa (codp, nomep)
Venda (codp, coda, data, valor, cor)
Codp referencia Pessoa
Coda referencia Automovel
1. Relacione os nomes das pessoas que compraram
algum carro.
2. Relacione os automveis (nomes) da Fiat.
3. Quem comprou Ford?
4. Quem comprou carro com gio (valor da venda
maior que o valor do automvel)?
5. Quem no comprou Ford?
6. Quem comprou Ford e no comprou Volks?
7. Qual o carro mais caro (nome)?
8. Atualizar os valores dos automveis da GM em
15%.
9. Exclua todas as vendas anteriores a 01/01/1990.
10. Selecione todas as pessoas que compraram mais de
um carro, de diferentes modelos, do mesmo
fabricante.
4.3. SQL
A linguagem SQL foi uma das grandes razes para a consolidao dos
bancos de dados relacionais no mercado. Desde sua definio como padro,
em 1986, passou por diversas revises, gerando publicaes de novas
verses. A verso original, denominada Sequel, foi desenvolvida no
Laboratrio de Pesquisa da IBM e implementada como parte do projeto
System R no incio dos anos 70. A linguagem evoluiu desde ento, e nome
foi mudado para SQL (Structured Query Language). A primeira verso ficou
conhecida como SQL-86 ou SQL1, a segunda verso foi denominada SQL92 ou SQL2, e a ltima verso publicada, que incluiu recursos para dar
suporte aos bancos de dados objetos-relacionais e orientados a objetos, ficou
conhecida como SQL-99 ou SQL3.
A maioria dos sistemas gerenciadores de bancos de dados comerciais
implementa suporte ao padro SQL. Alm disso, incorporam uma srie de
funes adicionais, visando facilitar o trabalho dos desenvolvedores. Essas
facilidades precisam ser usadas com cautela, pois, se apenas o padro for
3
1
2
6
1
2
3
4
5
Depositos.CodigoCli
AND
ORDER BY Nome
Como padro, SQL lista tuplas na ordem ascendente. Para especificar a
ordem de classificao, podemos especificar asc para ordem ascendente e
desc para descendente. Podemos ordenar uma relao por mais de um
elemento. Como se segue:
SELECT *
FROM Emprestimos
ORDER BY quantia DESC, CodigoAg ASC
Como o operador Any, o operador all pode ser usado como: >all, <all,
>=all, <=all, =all e <> all.
Atividade 04
Considere o esquema abaixo para construir as expresses
seguintes, usando a linguagem SQL.
Atividade 05
Considere o esquema abaixo para construir as expresses
seguintes, usando a linguagem SQL.
Atividade 06
Considere o esquema bancrio para construir as expresses
seguintes, usando a linguagem SQL.
1) Selecione todos os clientes que possuem contas em
agncia(s) que possui(em) o maior ativo.
2) Selecione o total de agncias por cidade, classificado por
cidade.
3) Selecione, por agncias, o(s) cliente(s) com o maior saldo.
4) Selecione o valor mdio de emprstimos efetuados por
cada agncia, em ordem crescente das cidades onde essas
agncias se situam.
5) Selecione a(s) agncia(s) que possui(em) a maior mdia
de quantia emprestada.
6) Selecione todas as agncias situadas fora de Vitria que
possuem a mdia de depsitos maior do que alguma
agncia localizada em Vitria.
7) Selecione o menor saldo de clientes, por agncias.
8) Selecione o saldo de cada cliente, caso ele possua mais de
uma conta no banco.
Suponha que desejamos inserir um novo depsito de Joo (cdigo = 1), cujo
valor seja R$1200,00, na conta 9000 da agncia de cdigo=2. Para isso,
fazemos o seguinte comando:
INSERT INTO depositos (CodigoAg, NumeroCont, CodigoCli, saldo)
VALUES (2,9000,1,1200)
Atividade 07
Considere o esquema abaixo para construir as expresses
seguintes, usando a linguagem SQL.
Restries de integridade;
4.3.17. Integridade
Quando se fala em manter a integridade de dados, considera-se no s a
Integridade Fsica dos arquivos portadores do banco de dados, como tambm
manuteno da qualidade dos dados armazenados em termos de preciso e
consistncia.
As restries de integridade fornecem meios para assegurar que mudanas
feitas no banco de dados por usurios autorizados no resultem na perda da
consistncia dos dados. So vrios os tipos de integridade. Eles costumam
ser classificados da seguinte forma:
Integridade de Domnio
Domnio uma lista de valores que precisa estar associada a todo atributo.
Constitui a forma mais elementar de restrio de integridade. facilmente
testado pelo sistema cada vez que um novo item de dado inserido no banco
de dados.
Integridade de Vazio
Integridade de Chaves
Integridade Referencial
Atividade 08
Dados os esquemas abaixo, faa comandos SQL DDL padro para
criar as estruturas das tabelas, usando o tipo de dados que melhor
se aplique a cada atributo e impondo integridade referencial.
a)
Alunos
(CodigoAl, NomeAl, CodigoCurso, Telefone,
CoeficienteRendimento)
CodigoCurso referencia Cursos
Cursos
(CodigoC, NomeC)
Disciplinas
(CodigoDisc, CodigoCurso, NomeDisc)
CodigoCurso referencia Cursos
Historico
(CodigoAl, CodigoDisc, Periodo, Nota)
CodigoAl referencia Alunos
CodigoDisc referencia Disciplinas
Pre_Requisitos (CodigoDiscPos, CodigoDiscPre)
CodigoDiscPos referencia Disciplinas
CodigoDiscPre referencia Disciplinas
b)
Clientes (CodCliente, NomeCliente, Telefone, DtNascimento)
Filmes
(CodFilme, NomeFilme, Lancamento, DtAquisicao,
CodClasse)
CodClasse referencia Classes
Fitas (CodFilme, NumeroFita, Dublada)
CodFilme referencia Filmes
Locacoes
(CodFilme, NumeroFita, CodCliente, DtLocacao,
DtDevolucao, VlrLocacao, Multa)
(CodFilme, NumeroFita) referencia Fitas
CodCliente referencia Clientes
Reservas (Codfilme, CodCliente, DtReserva, Situacao)
CodFilme referencia Filmes
CodCliente referencia Clientes
Classes (CodClasse, Nome, Valor)
Obs.: Considere a entrada obrigatria de todos os campos, exceto
os campos: telefones, data de devoluo de fitas e valor de multa.
No permita valores diferentes de S ou N nos campos
Lanamento, na tabela Filmes, e Dublada, na tabela Fitas.
REFERNCIAS
BIBLIOGRAFIA
Sem
comentrio padres ABNT