Mdulo II
Banco de Dados
Sumrio
1. Introduo.........................................................................................................................................4
1.1 Noes Preliminares...................................................................................................................4
1.1.1 Propriedades bsicas............................................................................................................4
1.1.2 Principais diferenas entre um BD e um sistema baseado em arquivos..............................4
1.2 Conceitos Adicionais..................................................................................................................5
1.2.1 Modelos de dados................................................................................................................5
1.2.2 Linguagens de Base de Dados.............................................................................................6
1.2.3 SGBDs.................................................................................................................................6
1.3 Etapas no desenvolvimento de sistemas.....................................................................................7
1.3.1 O papel da Modelagem de Dados no desenvolvimento de sistemas...................................7
1.3.2 Anlise de Dados x Anlise de Processos...........................................................................8
2. Normalizao de Dados....................................................................................................................9
2.1 Conceitos usados na Normalizao de Dados............................................................................9
2.1.1 Atributo................................................................................................................................9
2.1.2 Registro................................................................................................................................9
2.1.3 Arquivo................................................................................................................................9
2.1.4 Chave...................................................................................................................................9
2.1.5 Dependncia Funcional.......................................................................................................9
2.2 Formas Normais.......................................................................................................................10
2.2.1 Primeira Forma Normal (1FN)..........................................................................................10
2.2.2 Segunda Forma Normal (2FN)..........................................................................................10
2.2.3 Terceira Forma Normal (3FN)..........................................................................................11
2.2.4 Regras prticas para normalizao de arquivos.................................................................11
2.2.5 At onde normalizar..........................................................................................................12
2.2.6 Desnormalizao de dados................................................................................................12
3. Modelo Entidade Relacionamento (ER).........................................................................................13
3.1 Elementos usados no modelo Entidade-Relacionamento ........................................................13
3.1.1 Entidade.............................................................................................................................14
3.1.2 Sub-Entidade.....................................................................................................................14
3.1.3 Entidade Fraca ..................................................................................................................15
3.1.4 Instncia ............................................................................................................................15
3.1.5 Atributo .............................................................................................................................15
3.1.6 Chave Primria e Estrangeira............................................................................................16
3.2 Relacionamento .......................................................................................................................16
3.3 Cardinalidade do Relacionamento ...........................................................................................17
3.3.1 Um-para-um (1:1) .............................................................................................................18
3.3.2 Um-para-muitos (1:N) ......................................................................................................19
3.3.3 Muitos-para-muitos (M:N) ...............................................................................................19
3.3.4 Relacionamento Reflexivo ...............................................................................................19
3.3.5 Relacionamento mandatrio e opcional ...........................................................................20
3.4 Diagrama Entidade-Relacionamento........................................................................................26
3.4.1 Estendendo o Modelo Entidade-Relacionamento..............................................................27
4. Modelo de Dados Relacional..........................................................................................................29
4.1 Conceitos do Modelo Relacional..............................................................................................29
4.2 Caractersticas de Relaes......................................................................................................29
4.3 Restries Relacionais..............................................................................................................29
4.4 Bancos de Dados Relacionais e Esquemas...............................................................................30
4.5 Integridade de Entidade, Integridade Referencial e Chaves Estrangeiras...............................30
4.6 Operao de Atualizao e Violao de Restries.................................................................30
4.6.1 Operao de insero.........................................................................................................30
4.6.2 Operao de deleo..........................................................................................................31
Banco de Dados
Banco de Dados
1. Introduo
1.1 Noes Preliminares
Um Banco de Dados ou Base de Dados (BD) uma coleo de dados relacionados entre si.
Com dados queremos dizer fatos conhecidos que podem ser armazenados e possuem um
significado implcito.
Um exemplo (simples): coleo de nomes das pessoas que voc conhece, juntamente com o
endereo e telefone de cada uma delas (podem ser armazenados em uma agenda ou em um
computador).
Outro exemplo (um pouco mais complexo): coleo de todas as fotos recolhidas ao longo dos
anos pelo programa espacial americano.
RA
2008.151-23
2008.151-23
2008.151-25
Cdigo
111
453
123
Disciplinas
111
453
123
Horas
60
60
80
Sala
L02
S05
L02
Essa base de dados organizada em dois arquivos distintos, cada um contendo registros do
mesmo tipo. Para defini-la, necessitamos especificar a estrutura dos registros em cada um dos
arquivos. Ou seja, necessitamos definir os elementos a serem armazenados em cada um dos
registros. Cada registro de estudante, por exemplo, guarda o nome, cdigo e disciplinas sendo
cursadas pelo estudante. Alm disso, o tipo de cada um dos elementos da estrutura precisa ser
definido (nome: sequncia de caracteres; RA: inteiro sem sinal; Disciplina: inteiro sem sinal).
Nome_alu
RA
Disciplina
Nome_disc
Cdigo
Disciplinas
Horas
Sala
Os dados em uma base de dados, estes sim, costumam mudar frequentemente. Os dados
armazenados em um banco em um determinado instante chamado de estado ou instncia da
base de dados.
1.2.3 SGBDs
Um sistema gerenciador de base de dados composto de vrios mdulos distintos:
Gerenciador de dados armazenados: controla o acesso as informaes dos sistemas que
esto armazenadas no disco. Esse mdulo utiliza-se de servios bsicos do sistema
operacional para transferir dados do disco para a memria principal. Uma vez transferidos,
esses dados podem ento ser usados por outros mdulos do sistema (ou por aplicaes do
usurio).
Compilador DLL: processa as descries do esquema (escritas em DLL) e as armazenam
no catlogo do sistema (que se encontra no disco rgido).
Processador run-time: manipula acessos base de dados em tempo de execuo. Ele
recebe operaes de atualizaes ou recuperaes de dados.
Compilador de consultas: manipula consultas em mais alto nvel. Ele compila ou interpreta
consultas e ento gera chamadas ao run-time processor.
O pr-compilador extrai comandos DML de um programa de aplicao escrito em uma
linguagem de alto nvel qualquer. Esses comandos so ento enviados ao compilador DML,
que os transformam em cdigos para acesso a base. O resto do cdigo enviado ao
compilador da linguagem. Os cdigos para os comandos DML e o resto do programa so
linkados, gerando um cdigo executvel que inclui chamadas ao processador run-time.
Banco de Dados
informaes redundantes e de difcil acesso, permitir que futuras alteraes nos bancos
de dados possam ser realizadas, garantir o uso adequado dos recursos do banco de
dados utilizando o espao de maneira otimizada.
Unificar conceitos entre os diferentes departamentos da empresa: Fazer com que
todos os departamentos se entendam e no haja conflitos de conceitos.
Anlise de Processos
Banco de Dados
2. Normalizao de Dados
2.1 Conceitos usados na Normalizao de Dados
A normalizao de dados uma tcnica que visa analisar e refinar arquivos de dados, dividindoos em vrios outros arquivos e estabelecendo relacionamentos entre eles atravs de informaes
comuns. Existem alguns conceitos que so utilizados na Normalizao de Dados:
2.1.1 Atributo
Toda e qualquer informao de se deseja armazenar.
Os atributos apresentam caractersticas como: tipo de informao a ser armazenada, tamanho, se
obrigatrio ou opcional, se condicionado a outros atributos, se possui vrias ocorrncias.
Exemplo: cpf, nome, endereo, telefone, cargo.
2.1.2 Registro
Conjunto de atributos que contm informaes comuns de um determinado assunto.
Exemplo: funcionrio: dados de um funcionrio, dados de um aluno.
2.1.3 Arquivo
Conjunto de registros que tratam do mesmo assunto. Pode ser fsico, quando as informaes so
guardadas em formulrios de papel, ou eletrnico, quando as informaes so armazenadas com
a ajuda da informtica.
Exemplo: cadastro de clientes, cadastro de alunos.
2.1.4 Chave
Atributo ou conjunto de atributos que permite a identificao nica de um registro dentro de um
arquivo. Pode ser classificada como:
Simples: formada por um nico atributo (RA, CPF).
Composta: formada por mais de um atributo (N Nota Fiscal + Cd_Produto).
Virtual: gerada por um atributo criado especificamente para ser chave e que tem seu valor
gerado pelo sistema (operao bancria, protocolo de atendimento).
Para que um atributo seja considerado chave, algumas caractersticas devem ser analisadas.
Uma chave deve ser:
nica: no podem existir mais de um registro como o mesmo valor para atributos que
compem a chave.
Obrigatria: sempre deve existir um valor para os atributos que compem a chave.
Imutvel:o valor dos atributos que compem a chave no pode ser modificado.
Exemplo: RA, chassi de um automvel, cpf.
Banco de Dados
10
1 Forma Normal
Banco de Dados
2 Forma Normal
11
3 Forma Normal
12
Exerccios:
1) Quais as etapas no desenvolvimento de sistemas e qual a funo de cada uma?
2) Qual a principal diferena entre sistemas comerciais e cientficos?
3) Conceitue normalizao de dados.
4) Explique qual a funo de uma chave em um arquivo de dados. De que tipos podem ser?
5) O que so formas normais e para que servem?
6) Quais as regras para se normalizar um arquivo? Exemplifique.
7) Quando pode ser usada a desnormalizao de dados? Explique.
Banco de Dados
13
Modelo ER
Entidade
Instncia
Atributo
Chave Primria
3.1.1 Entidade
Entidades so elementos do mundo real dos quais coletamos e armazenamos informaes
que sero utilizadas pelo sistema. Uma entidade pode ser:
Um objeto: Uma mquina, pea, rea geogrfica, prdio, produto, etc.
Uma pessoa: Um funcionrio, cliente, paciente, etc.
Um processo: O emprstimo de um livro, a aprovao de crdito bancrio, etc.
Banco de Dados
14
Para descobrir que elementos em nossa anlise so candidatos a entidade, devemos prestar
ateno aos substantivos e ao sujeito de uma frase.
Por exemplo, na frase: "Clientes so atendidos por vendedores para fazerem seus
pedidos". Clientes, vendedores e pedidos so candidatos a entidade, mas alm disso
podemos levantar algumas questes:
Existe a necessidade de se armazenar informaes sobre esse elemento?
Precisamos saber o nome, telefone, CGC e endereo de entrega para o cliente.
H mais de um elemento desse tipo? Existem vrios pedidos a serem analisados
Existe alguma informao que identifica univocamente o elemento
analisado? O nmero de matrcula identifica de maneira nica cada vendedor na
empresa.
Nome
Idade
Sexo
Objeto
Pessoa
Modelo
Cor
Fabricante
Ano
Codigo
Data
Qtde
Processo
3.1.2 Sub-Entidade
Sub-Entidades so atributos de uma entidade que so separados gerando novas entidades.
As sub-entidades so usadas quando em uma mesma entidade temos atributos que so
usados para grupos diferentes de instncias. Por exemplo, na entidade Clientes podemos
ter um grupo de atributos especficos para clientes pessoa fsica (RG, CPF, Data de
nascimento), e um grupo de atributos para clientes pessoa jurdica (CNPJ, Inscrio
Estadual, Inscrio Municipal). Nesse caso poderamos derivar a entidade Clientes em duas
Sub-Entidades: Pessoa Fsica e Pessoa Jurdica.
Existem dois processos para a gerao de Sub-Entidades:
Especializao: A partir de uma entidade principal derivamos as sub-entidades. o
caso do exemplo citado anteriormente de Clientes.
Generalizao: o processo inverso, onde a partir de sub-entidades extramos
atributos comuns, gerando uma entidade principal. Por exemplo, a partir de atributos
comuns (nome, endereo, telefone) entre as entidades Vendedores Externos e
Vendedores Internos, geramos a entidade principal Vendedores.
Clientes
Cdigo do Cliente
Tipo do cliente
Nome do cliente
Endereo
Telefone
Pessoa Fsica
Cdigo do Cliente
RG
CPF
Data de nascimento
Pessoa Jurdica
Cdigo do Cliente
CNPJ
Insc. Estadual
Insc. Municipal
Exemplo de Sub-entidade por especializao
Banco de Dados
15
Itens da NF
Nmero da Nota
Cdigo do produto
Quantidade
Valor
3.1.4 Instncia
Instncias so as vrias ocorrncias de informaes diferentes em uma entidade. Por
exemplo, os vrios pedidos, os clientes da empresa ou os vendedores que atendem aos
clientes. Cada instncia representa um conjunto de informaes que se complementam e
dizem respeito a um nico elemento. Equivalem aos registros na normalizao de dados
Cdigo
00001
00002
00003
00201
12012
Vendedores
Nome do vendedor
Maria dos Santos
Jos Julio Pereira
Raquel Gonalves
Mrcio Albuquerque
Gesuno Silva Santos Alencar
Instncias
3.1.5 Atributo
Atributos so as informaes que iremos armazenar sobre uma entidade. Por exemplo: o
nome, endereo, telefone e limite de crdito de um cliente. Podem existir atributos comuns
em mais de uma entidade (nome um atributo em clientes e vendedores), porm cada
atributo deve armazenar informaes especficas de uma nica entidade, pois est associado
a ela usando o conceito j visto anteriormente de dependncia funcional. Os atributos de uma
entidade so levantados atravs da anlise da entidade e das caractersticas que se deseja
armazenar e tratar em nosso sistema. Os atributos no modelo ER equivalem aos atributos
na normalizao de dados.
Ano
Modelo
Cor
Fabricante
Combustvel
N de lugares
Tipo de pneu
16
Clientes
Cdigo do cliente
Nome do cliente
Endereo
Telefone
Limite de crdito
Pedidos
Nmero do pedido
Data do pedido
Cdigo do cliente
Cdigo do vendedor
Data da entrega
Valor total
Clientes
Cdigo do vendedor
Nome do vendedor
Comisso
Chaves primrias
Chaves estrangeiras
Entidade Pai
Entidade Filho
3.2 Relacionamento
Relacionamentos so ligaes entre entidades atravs de atributos comuns. No mundo real
estamos cercados por relacionamentos entre entidades diversas (pessoas, lugares, eventos,
etc). Alguns exemplos:
1. Homem casa com Mulher. Aqui temos um relacionamento entre duas pessoas.
2. Cludia estuda na EAFI. Aqui temos um relacionamento entre uma pessoa e um lugar.
3. So Paulo fica no Brasil. Aqui temos um relacionamento entre dois lugares.
4. Homem casa com Mulher e tem Filhos. Aqui temos um relacionamento entre trs
pessoas.
5. Espectadores assistem ao filme. Aqui temos um relacionamento entre pessoas e lugar.
Casamento
Mulher
Homem
Banco de Dados
Relacionamento
fazem
atendem
possui
possuem
so dos
Entidade B
Pedidos
Pedidos
Especialidade
Cpias
Processos
Atributo de ligao
Cdigo do cliente
Cdigo do vendedor
Cdigo da especialidade
Cdigo do livro
Cdigo do processo
17
Banco de Dados
Documentos (Filho)
Nmero
Nmero do Chassi
Data fabricao
Modelo
Combustvel
Nome do Proprietrio
Endereo
Ano Licenciamento
18
Clientes (Pai)
Cdigo do Cliente
Nome
Endereo
Telefone
Contato
Tipo de cliente
Processos (Filho)
Nmero
Data de abertura
Data de fechamento
Cliente
Tipo de processo
Frum
Advogados em Processos
(Ligao)
Cdigo do Advogado
Nmero do processo
o principal?
Podemos usar ainda a entidade de ligao para a criao de atributos especficos
relacionados com a ligao. No exemplo anterior na entidade de ligao de advogados a
processos criamos o atributo o principal? que poderia indicar se o advogado entre n
possveis o advogado principal que cuida do processo.
19
Exerccios
1. Quais os objetivos da Modelagem Entidade-Relacionamento?
2. Como podemos identificar as entidades de um sistema a partir da descrio de
processo?
3. Quais so os processos para a gerao ou derivao de sub-entidades? Explique-os.
4. Cite trs exemplos de relacionamentos do mundo real.
5. O que so Chave Primria e Chave Estrangeira?
Banco de Dados
20
Exerccios prticos
Exerccio 1:
De acordo com as regras normalize as estruturas abaixo.
Relao de Funcionrio:
MATRCULA DO FUNCIONRIO
NOME DO FUNCIONRIO
DATA DO NASCIMENTO
DEPENDENTE
CDIGO DO DEPENDENTE
NOME DO DEPENDENTE
CURSO
CDIGO DO CURSO
NOME DO CURSO
ANO DO CURSO
Regras do negcio:
Um funcionrio pode ter mais de um dependente
Um funcionrio pode fazer mais de um curso
Exerccio 2:
Voc acabou de fundar sua empresa de consultoria e seu primeiro trabalho desenvolver um
sistema para cadastro de clientes. Voc recebeu do cliente uma lista com os dados que devero
compor o sistema, com base nesta lista normalize a estrutura de dados de acordo com as formas
normais.
Lista de informaes que devero compor o sistema cadastro de clientes:
Nome
Nome do Pai
Nome da Me
Endereo
Telefone1
Telefone2
Nmero do Fax
Nmero do Celular
Telefone do trabalho
Data de Nascimento
Naturalidade
Nacionalidade
Endereo de correspondncia
Nome do filho 1
idade do filho 1
Nome do filho 2
idade do filho 2
Nome do filho 3
idade do filho 3
Nome do filho 4
idade do filho 4
Nome do Cnjuge
Nmero do CPF
Nmero da carteira de identidade
Exerccio 3
Representar usando o modelo lgico a situao descrita a seguir:
O Departamento de Vendas da Indstria Beleza Ltda, aps estudos de mercado, verificou que
para atingir seus objetivos seria necessrio adquirir frota de veculos prprios para motorizar
seus vendedores. O mercado consumidor foi dividido em regies de venda; foram
estabelecidos percursos de entrega abrangendo pontos estratgicos dessas regies e
vendedores foram designados para cobrir estes percursos. Um sistema deve ser construdo
para administrao da nova sistemtica de vendas adotada pela empresa. Aps entrevistas
com o gerente da rea, foram obtidas as seguintes informaes:
Banco de Dados
21
Exerccio 4:
De acordo com as regras, normalize as estruturas abaixo.
Relao de Programadores:
Numero da Matrcula
Nome do Programador
Setor
Nvel (1,2,3)
Descrio do Nvel (1 - Jnior, 2 - Pleno, 3 - Senior)
Programas
Cdigo do Programa
Nome do Programa
Tempo Estimado
Nvel de Dificuldade (1, 2 ou 3 )
Descrio da Dificuldade (Fcil, Mdio, Difcil)
Regras do negcio:
- Um programa pode ser feito por mais de um Programador;
- Um programador pode fazer um ou mais programas;
- O Nvel de dificuldade do programa depende do tempo estimado para a elaborao do mesmo;
Exerccio 5:
Normalize a descrio abaixo at a 3 Forma Normal.
Nome do animal
Data de nascimento
Espcie
Dono do animal
Descrio da vacina
Data
Atendente
Servio prestado
Material utilizado
Horas gastas
Valor
Regras do negcio:
- O atributo data pode ser utilizado para armazenar tanto a data da vacina como a data
do atendimento;
- O Pet-Shop atende diversos animais onde cada um possui uma ficha, onde esto
armazenados todos os seus dados;
- Os dados das vacinas tambm so armazenados e todos os animais devem ser
vacinados;
- Um animal pode ter somente um dono;
- Um animal pode precisar de diversos servios e pode tomar diversas vacinas;
- Um servio pode ser realizado em vrios animais;
- Uma vacina pode ser aplicada em diversos animais;
- Um animal pode ser atendido somente por um atendente.
Feita a normalizao acima:
a. Identifique as entidades existentes;
b. Identifique as chaves existentes;
Exerccio 6:
Banco de Dados
22
23
Arq. Dependentes
Cd_Dependentes
N Matrcula
Nome_Depend
Arq. Curso
Cd_Curso
Nome_Curso
Exerccio 13:
Qual a cardinalidade dos relacionamentos abaixo:
24
PROFESSOR
PROFESSOR
DISCIPLINA/PROFESSOR
DISCIPLINA/PROFESSOR
ALUNO
ALUNO
DISCIPLINA
DISCIPLINA
CURSO
CURSO
II.
Banco de Dados
25
identifica um atributo cujo valor deduzido de outros atributos, sendo usado mas
no armazenado na base de dados (derivado).
Banco de Dados
26
A respeito de como nomear os vrios componentes, como prtica geral adota-se o emprego de
substantivos para os conjuntos de entidades e verbos para os conjuntos de relacionamentos, de
modo que o diagrama fornea uma descrio narrativa das requisies da base de dados.
O exemplo abaixo apresenta o diagrama entidade-relacionamento proposto para uma base de
dados de uma universidade:
Banco de Dados
27
Banco de Dados
28
Restries de Domnio. Especifica que o valor de cada atributo A deve ser um valor
atmico do domnio dom(A).
Restries de chave. Por definio, todos os elementos de um conjunto so distintos.
Consequentemente, todas as tuplas em uma relao devem tambm ser distintas. Isto
significa que no devem existir duas tuplas com a mesma combinao de valores para
todos os atributos. Usualmente, existem outros subconjuntos de atributos com a mesma
propriedade acima, que so chamados super-chave, que especifica a restrio de ser
nico. Toda a relao tem, no mnimo, uma super-chave que a juno de todos os
atributos. Uma super-chave pode ter, entretanto, atributos redundantes (ou seja, no
necessrios para serem nicos). Um conceito mais til o de chave, que uma superchave com a propriedade de que se eliminarmos qualquer atributo leva a um conjunto de
Banco de Dados
29
atributos que no mais uma super-chave. A restrio de ser nica para todo o estado
da relao no esquema, ou seja, deve ser atingida mesmo quando novas tuplas so
inseridas na relao. Se uma relao tem mais de uma chave, estas so chamadas
chaves candidatas. Uma das chaves candidatas designada chave primria.
Restrio de nulo. Pode ser especificado se valor nulo pode ou no ser permitido.
A restrio de integridade de entidade diz que nenhum valor de chave primria pode ser
nulo. Esta restrio (assim como a restrio de chave) aplicada em relaes individuais.
A restrio de integridade referencial especificada entre duas relaes e usada para
manter a consistncia entre tuplas das duas relaes. Informalmente, a restrio de
integridade referencial diz que uma tupla da relao (R1), que refere-se a outra relao
(R2), deve referir-se a uma tupla existente em R2.
Uma chave estrangeira especifica uma restrio de integridade referencial entre duas
relaes R1 e R2, de tal forma que, se um conjunto de atributos FK no esquema de relao
R1 uma chave estrangeira de R1 que referencia a relao R2 se esta satisfaz as seguintes
duas regras: (i) Os atributos de FK tem o mesmo domnio que os atributos da chave
primria PK de R2, onde os atributos FK so ditos que se referem a relao R 2; (ii) Um
valor de FK em uma tupla t1 de R1, ou ocorre em uma tupla t2 de R2 ou tem valor nulo.
As restries de integridade referencial tipicamente vm dos relacionamentos entre
entidades representadas pelo esquema de relao.
Uma chave estrangeira pode referir-se a sua prpria relao. O relacionamento de
superviso na entidade empregado, por exemplo.
possvel mostrar diagramaticamente as restries de integridade atravs de uma seta
que liga cada chave estrangeira a respectiva chave primria da relao referenciada.
As restries de integridade referencial no incluem uma grande classe de restries mais
gerais conhecidas como restries de integridade semntica. Exemplos dessas
restries podem ser: (a) o salrio de um empregado no pode exceder o salrio de seu
supervisor; ou (b) o nmero mximo de horas que um empregado pode trabalhar em todos
os projetos por semana no pode ultrapassar 40 horas.
Triggers podem ser usados para esta funo.
Dois tipos de restries existem: (i) restries de estado (ou restries estticas); e (ii)
restries de transio (ou restries dinmicas). Um exemplo de transio de transio
pode ser que o salrio de um empregado s pode aumentar nunca diminuir.
Prov uma lista de valores de atributos para uma nova tupla que dever ser inserida na
relao R
Pode violar:
o Restrio de domnio (valor no correspondente ao domnio especificado)
o Restrio de chave (se um valor de chave j existe)
Banco de Dados
30
Exerccios
Banco de Dados
31
Comparao
Lgicos
*
/
%
=
>
<
>=
<=
<>
AND
OR
NOT
Soma
Subtrao
Multiplicao
Diviso
Resto da diviso
Igual
Maior que
Menor que
Maior ou igual
Menor ou igual
Diferente
e
ou
negao
SELECT [campos]
FROM [tabelas]
WHERE [critrios]
Banco de Dados
32
33
Exerccios
1) Incluir o campo cidade na tabela programador.
2) Criar uma consulta utilizando SQL para selecionar os programadores da cidade de
Campinas.
3) Selecionar, utilizando SQL, os nomes dos programadores da cidade de Campinas ou
Inconfidentes.
4) Incluir, na tabela programa, campo data de incio da execuo do programa.
5) Criar uma consulta, utilizando SQL, para selecionar os programas iniciados entre
21/12/2003 e 15/08/2007.
6) Selecionar os registros das tabela Dificuldade onde no existe um valor para descrio.
7) Selecionar o campo cidade da tabela programador eliminando duplicidades.
8) Formatar os campos das consultas criadas acima.
5.2.1.1 Combinando dados entre tabelas diferentes
Teoricamente, um bando de dados tem como fundamento a criao de um deposito nico de
todos os dados. Estes dados no so independentes, eles se relacionam. O comando SELECT
possui clusulas que permitem acessar dados relacionados, formando um conjunto nico de
dados. Na SQL, pode-se implementar relacionamentos em para um (1:1), um para muitos (1:N),
muitos para muitos (M:N) e o relacionamento reflexivo.
INNER JOIN
A clusula INNER JOIN faz a juno de dados entre duas tabelas. O campo comum nas duas
tabelas declarado na clusula ON. O relacionamento feito entre uma chave primaria e uma
chave estrangeira.
Sintaxe:
Exemplo:
OUTER JOIN
A clusula INNER JOIN s faz a juno de dados entre duas tabelas somente se existirem dados
comuns de ligao entre elas.
A clusula OUTER JOIN faz a juno mesmo que no existam dados comuns de ligao entre as
tabelas PAI e FILHO. A clusula OUTER JOIN deve ser acompanhada das clusulas LEFT ou
RIGHT, que determinam se sero selecionados todos os campos da tabela PAI (LEFT) ou da
tabela FILHO ( RIGHT), independentemente de ter ou no um dado relacionado. Os campos no
relacionados apresentaro contedo nulo (NULL). OUTER JOIN usada, por exemplo, para se
verificar problemas de integridade relacional.
Sintaxe:
SELECT [tabela1.campos, tabela2.campos]
FROM tabela1 LEFT / RIGHT JOIN tabela2
ON tabela1.campo = tabela2.campo
Exemplo:
Banco de Dados
34
Exemplo:
Exerccios
1) Criar uma consulta para mostrar o nome do programador e a descrio de seu nvel.
2) Criar uma consulta para mostrar o nome do programa e a descrio do seu nvel de
dificuldade.
3) Criar uma consulta para mostrar o nome do programador e o nome do programa que ele
est desenvolvendo.
5.2.1.4 Agrupando e sumarizando os dados
O comando SELECT pode agrupar um determinado conjunto de campos e, atravs de funes de
agregao, fazer clculos nesses grupos de dados. A sumarizao de dados feita com o uso da
clusula GROUP BY.
Algumas funes de agregao:
o COUNT: conta a ocorrncia de um campo. COUNT(*) retorna o nmero de registros da
tabela.
o SUM: totaliza os valores para o campo. Usado com campos numricos.
o MAX: devolve o maior valor para o campo.
o MIN: devolve o menor valor para o campo.
o AVG: mdia aritmtica simples dos valores do campo.
Banco de Dados
35
A Clusula GROUP BY
Para selecionar dados de tabelas efetuando agregaes utiliza-se, no comando SELECT, a
clusula GROUP BY.
o os campos que forem utilizados para agregao devem fazer parte da lista de campos;
o as funes de agregao sero declaradas tambm da lista de campos;
o as clusulas WHERE e ORDER BY podem ser usadas em conjunto com GROUP BY.
Sintaxe:
Exemplo:
Exerccios
1) Retornar o nmero de programadores cadastrados no sistema.
2) Retornar o programa com maior tempo para desenvolvimento.
3) Filtrar o programa com menor tempo de desenvolvimento que tenha incio entre
21/12/2006 e 30/10/2007.
5.3.1 INSERT
O comando INSERT usado para inserir novos registros em tabelas. A insero de um novo
registro s ser efetivada se no for violada nenhuma restrio.
Sintaxe:
([lista de campos])
A lista de campos serve pode ser usada para se declarar campos a serem inseridos.
Banco de Dados
36
5.3.2 DELETE
O comando DELETE apaga registros da tabela. A excluso ser efetuada se nenhuma regra de
integridade referencial for violada, e os registros apagados s podero ser recuperados atravs da
restaurao de arquivos de backup.
Sintaxe:
DELETE [talela]
WHERE [critrios de seleo]
5.3.3 UPDATE
O comando UPDATE permite a atualizao de dados j existentes. A atualizao s ser efetuada
se no houver conflito com nenhuma restrio definida para a tabela.
Sintaxe:
UPDATE [tabela]
SET [campo1 = novo_nome1,
campoN = novo_nomeN]
WHERE [critrios de seleo]
Exerccios
1)
2)
3)
4)
5)
Tabelas de Referncia
CDS
Campo
Codigo
Nome
DataCompra
ValorPago
LocalCompra
Album
Tipo
Autonumerao
Texto
Data/hora
Moeda
Texto
Sim//No
Msicas
Tam
50
Chave
*
Campo
CodigoCD
Numero
Nome
Artista
Tempo
Tipo
Nmero
Nmero
Texto
Texto
Nmero
Tam
Chave
*
*
50
50
37
Referncias Bibliogrficas
Internet.
jmourisca.googlepages.com/Aula09.4cCes30Ce24007k_ListEx4_.pdf
www.dcc.fua.br/~barreto/bd1/modelo_relacional_conceitos.html
www.linhadecodigo.com.br/Artigo.aspx?id=140
www.tech-faq.com/lang/pt/relational-database.shtml
www.inf.puc-rio.br/~casanova/INF1731-BD/modulo02.pdf
www.marketing-webmaster.com/bd/2-ModeloER.htm
www2.dc.ufscar.br/~carvalho/GUBD/aulas/35.html
www.de9.ime.eb.br/~yoko/bdII2005.2/NormRo.ppt
imasters.uol.com.br/artigo/7020
www.luis.blog.br/normalizacao-de-dados-e-as-formas-normais.aspx
Banco de Dados