Banco de Dados I
Sumrio
Banco de Dados I
Apresentao
Prezados(a) alunos(a)
Sejam vem vindos(as) a disciplina de Banco de Dados I . Nesta disciplina
vocs entendero a importncia da utilizao de banco de dados, alm dos
conceitos relacionados a este.
Tambm sero abordados modelos os quais so utilizados para
representar os dados, tendo como foco o modelo Relacional, onde sero
estudados conceitos sobre entidades, relacionamentos, atributos e chaves
primrias e estrangeiras.
Durante a disciplina, voc estar se capacitando a analisar e criar um
banco de dados, passando por todas as etapas do processo de banco de dados.
Tambm ter conhecimento necessrio para criar e manipular tabelas
atravs de instrues SQL de insero, alterao, remoo e seleo de
dados. Tendo em vista que a seleo de dados possui uma srie e
especificaes, este material foi elaborado com exemplos prticos da
utilizao de critrios existentes do comando de seleo como, junes,
produto cartesiano e subconsultas.
Assim, ao concluir a disciplina voc ter conhecimento necessrio para
criar um projeto de banco de dados e manipular as informaes nele
armazenado, podendo aplicar o conhecimento adquirido em diversos
segmentos da rea de computao, como programao, anlise e gerente de
infraestrutura.
Prof. Christiano Cadon
Banco de Dados I
Introduo
Este captulo tem por objetivo contextualizar o aluno quanto
importncia de banco de dados e os principais conceitos relacionados a este
tema.
Sero destacadas as vantagens e as desvantagens do uso de sistemas de
banco de dados, alem de entender o principal papel do administrador de
banco de dados.
Banco de Dados I
relacionam, o local onde esteve, entre outras informaes que cada usurio
autoriza estas empresas a coletar dados no momento em que se cadastram
para usufruir das funcionalidades oferecidas por estas. Neste momento se
torna simples imaginar o quanto destas informaes estrategicamente
importante para gestores de empresas. Sendo assim, justifica-se o valor que
cada uma possui no mercado de negcios.
Agregado a isto, o avano do uso de sistemas inteligentes (Sistemas de
recomendao, sistemas de apoio a deciso, minerao de dados, OLAP, etc.)
como mecanismo de diferencial competitivo de uma empresa, potencializa
ainda mais a necessidade de obteno de um nmero cada vez maior de dados
armazenados nas bases de dados.
Avaliando este contexto, possvel entender o porqu as empresas que
mais faturam do mundo possuem como fator estratgico ou principal insumo
de seus resultados o uso de sua base de dados. Bancos, empresas de energia,
empresas de Telecom, empresas de TI, entre outras se destacam das demais,
e se observar, ambas necessitam de seus dados armazenados para sobreviver.
O governo brasileiro, aps muitos anos, se deu conta da necessidade de
informatizar suas autarquias de forma a possuir maiores controles e por
consequncia melhorar o atendimento e principalmente a arrecadao.
Se avaliar os contextos at aqui apresentados, possvel concluir que
banco de dados est ligado diretamente com todas as aes do mundo
moderno. Desta forma, fica clara a dependncia existente da tecnologia em
todos os segmentos. No possvel imaginar o mundo em que vivemos sem os
processos automatizados sejam eles aplicados a qualquer tipo de segmento.
Vivemos cercados de informao e ficamos cada dia mais sedentos da
disponibilidade desta.
Agora imagine um colapso em um sistema, cujas informaes so
apresentadas de forma errada e ou simplesmente no so apresentas, devido
a problemas no armazenamento, o quanto impactante seria esta experincia,
tanto para o usurio final, quanto para a empresa e ou governo que o
detentor destes dados. Por exemplo, imagine, se por algum motivo, todos os
e-mails da conta do Gmail e ou todas as contas do Facebook simplesmente
sumissem. O impacto seria significativo. Agora imagine algo muito pior como,
por exemplo, erros nos registros de documentos de veculos e ou remoo de
todas as informaes cadastrais dos proprietrios de veculos? Qual seria o
tamanho do impacto? Realmente, no h como descrever o colapso causado
por algum evento desta magnitude. Falhas deste tipo, geralmente ocorrem no
repositrio de dados.
Tendo em vista todos os fatos apresentados, inevitvel entender
como, e porque, to necessrio o estudo dos repositrios de armazenamento
Banco de Dados I
Banco de dados
Banco de dados uma coleo de dados inter-relacionados,
representando informaes sobre um domnio especfico. Tendo como
premissa esta definio, possvel concluir que no momento que existir um
grupo de informaes que caracterizam (representam) algo, como por
exemplo, uma planilha eletrnica contendo informaes estruturadas de
produtos estamos tratando de um banco de dados.
Em sua forma mais primitiva, o exemplo apresentado pode sim ser
considerado como um banco de dados. possvel ainda agregar que, os dados
contidos no banco de dados, devem ser armazenados de forma independente
dos programas que faam uso destes, possibilitando que estas informaes
possam ser acessadas por mltiplas solues computacionais. No caso de uma
planilha, possvel que suas informaes sejam acessadas por aplicativos
diferentes do Excel por exemplo, como uma soluo desenvolvida em
linguagem PHP, Java ou C#.
Sendo assim, podemos concluir que qualquer repositrio de informao,
que esteja organizado representando algo, e suas informaes possam ser
acessadas caracteriza a existncia de um banco de dados.
Esta definio pode ser um tanto quanto genrica, pois um texto
escrito em um jornal ou em um site, por exemplo, possui um conjunto de
palavras que esto organizadas, caracterizando um banco de dados. Contudo
o termo banco de dados mais restrito e tem as seguintes particularidades
(Elmasri, 2011):
Um banco de dados representa algum aspecto do
mundo real, s vezes chamado de minimundo ou
universo de discurso.
Um banco de dados uma coleo logicamente
coerente de dados com significado inerente. Uma
variedade aleatria de dados no pode ser
corretamente chamada de banco de dados
Um banco de dados projetado, construdo e populado
com dados para uma finalidade especfica. Ele possui
um grupo definido de usurios e algumas aplicaes
Banco de Dados I
Banco de Dados I
Banco de Dados I
Banco de Dados I
10
Banco de Dados I
11
Banco de Dados I
Monitorao de desempenho;
12
Banco de Dados I
Recapitulando
Como foi percebido neste captulo, a informao armazenada nos
bancos de dados indispensvel em nosso contexto de mundo moderno. Tanto
usurios finais como as empresas, esto dependentes das informaes
armazenadas nestes repositrios. Da a importncia do estudo em banco de
dados.
Percebemos que banco de dados em sua essncia, nada mais , do que
um repositrio de dados organizados que representam algo de um domnio
especfico. J os SGBDs compem uma estrutura de aplicaes que
possibilitam o gerenciamento destes bancos de dados.
O sistema de banco de dados ento formado no apenas pelos dados e
aplicativos armazenados e sim, por um conjunto composto de dados,
hardware, software e usurios deste sistema. Entre os usurios de banco de
13
Banco de Dados I
Atividades
1) Assinalar (V) para as assertivas Verdadeiras e (F) para as Falsas
a)
b)
c)
V
( )
( )
( )
F
( )
( )
( )
Assertiva
Um exemplo de banco de dados o Mysql
Arquivos texto estruturados so exemplos de banco de dados
Uma planilha do Excel com dados de clientes pode ser
considerada como banco de dados
4) A partir dos estudos desenvolvidos nesse captulo, marque (X) somente nas
assertivas verdadeiras(mltipla escolha).
a) ( )
14
Banco de Dados I
Gabarito:
Questo 1 [ a)F, b) V, c) V ]
Questo 2 [ b ]
Questo 3 [ c ]
Questo 4 [ marcar alternativas A e C ]
Questo 5 [ A ]
15
Banco de Dados I
Introduo
Este captulo tem por objetivo apresentar os principais modelos de
modelagem de banco de dados e trazer caractersticas mais especficas do
modelo de dados relacional que o foco de nosso estudo. Assim, o leitor ter
uma viso das principais modelagens e um aprofundamento na modelagem
relacional.
16
Banco de Dados I
17
Banco de Dados I
18
Banco de Dados I
19
Banco de Dados I
Modelo Relacional
Como j mencionado o modelo relacional um modelo lgico de dados,
baseado em registros, que prov abstrao de dados nos nveis conceituais e
de vises do usurio. Neste modelo, tabelas representam dados e
20
Banco de Dados I
21
Banco de Dados I
22
Banco de Dados I
23
Banco de Dados I
Chaves
So atributos utilizados para identificao de registros e ou relaes
entre entidades. Elas so classificadas em chaves primrias, candidatas ou
chaves alternativas e chaves estrangeiras.
24
Banco de Dados I
25
Banco de Dados I
Restries de Integridade
Restries de Integridade so regras de consistncia de dados que so
garantidas pelo prprio SGBD. Um dos objetivos primordiais de um SGBD a
integridade de dados. Dizer que os dados de uma base de dados esto ntegros
significa dizer que eles refletem corretamente a realidade e so consistentes
entre si. A restrio de integridade classificada em:
26
Banco de Dados I
Recapitulando
Aps o trmino deste captulo possvel ter uma viso dos principais
modelos de dados (hierrquico, redes, relacional e objeto), assim como
entender algumas caractersticas de cada modelo.
Constatamos que o modelo relacional definido na dcada de 1970,
ainda muito utilizado e ter um bom espao por ser um modelo consagrado
por sua confiana e autonomia no decorrer do tempo.
Por fim, foram aprofundadas algumas caractersticas e a estrutura do
modelo relacional onde foi ilustrado exemplos dos conceitos de tabelas,
chaves e integridade.
Atividades
Tendo como base nas afirmaes abaixo relacionadas marque (V) para as
assertivas Verdadeiras e (F) para as Falsas
V
1)
( )
( )
2)
( )
( )
3)
( )
( )
4)
( )
( )
5)
( )
( )
Gabarito:
Questo 1 F
Questo 2 V
Questo 3 F
Questo 4 V
Questo 5 F
Assertiva
O modelo hierrquico uma evoluo do modelo em rede, pois
resolveu o problema de ordem de acesso a dados. No modelo
Hierrquico, os dados so acessados de sua raiz para os nveis
mais inferiores, utilizando o conceito de rvore.
O modelo orientado a objetos utiliza conceitos do paradigma de
orientao a objeto, porm em sua maioria, fisicamente
armazena em estrutura tabular.
O modelo relacional o modelo mais utilizado, tendo em vista
que ele aplica o conceito de todos os demais modelos.
No modelo relacional, os dados so armazenados em formato de
tabelas, as quais so constitudas por colunas e tuplas. Esta tabela
deve possuir uma coluna que identifique uma tupla de forma
nica. Para isto existe o conceito de chave primria
Toda entidade deve possuir pelo menos uma chave estrangeira
27
Banco de Dados I
Introduo
Neste captulo ser apresentado os conceitos relevantes quanto a
modelagem Entidade Relacionamento (E-R), alem de apresentar o processo de
implementao desta modelagem, apresentando as suas partes e
componentes. Desta forma o aluno ter conhecimento necessrio para
modelar situaes prticas de contextos de armazenamentos, alm de
entender mais a fundo as caractersticas do modelo relacional j apresentado
anteriormente.
28
Banco de Dados I
29
Banco de Dados I
Esquema Conceitual
Como j apresentado, o esquema conceitual tem como objetivo
desenvolver um diagrama que represente a realidade, sem se preocupar em
qual SGBD ser implementado. Seu enfoque est na compreenso e descrio
da informao, na seleo das propriedades relevantes da informao e na
descrio das restries sobre estes dados. Este esquema possui como
caracterstica o dilogo com usurios finais do sistema, de forma que possa
ser modificado para atender os requisitos, sem se preocupar com aspectos de
implementao.
30
Banco de Dados I
Entidade
Relacionamento
Atributo
Cardinalidade
Entidade
Uma entidade descreve caractersticas comuns a todos os elementos
que deseja representar. Ela representa algo concreto como, por exemplo,
informaes de uma pessoa, dados de um veculo ou pode ser algo abstrato,
como departamento de uma empresa ou informaes de um curso. As
entidades so os primeiros elementos a serem identificados, principalmente
pelo fato destes estarem explcitos ou evidentes. Uma entidade possui um
nome (que define a entidade), atributo (caractersticas da entidade) e uma
identificao (atributo que identifica de forma nica uma informao
armazenada. Em geral este campo a chave primria da entidade). O
exemplo 1 apresenta uma especificao de uma entidade chamada produto.
Exemplo 1:
Entidade Produto: Descrevem caractersticas comuns a todos os
produtos que possam existir em um sistema de informao em um
dado momento, como Cdigo, nome do produto, seu estoque e valor
de venda.
Nome: Produto
Atributos: Cdigo, nome do produto, seu estoque e valor de venda.
Identificao: Cdigo
31
Banco de Dados I
Atributo
Caracterstica, propriedade ou qualidade de uma ocorrncia de
entidade ou de relacionamento. Atributos so usados na definio de
conjuntos de entidades e de conjuntos de relacionamento. Atributos tambm
so conhecidos como propriedades, ou campos de uma entidade. No exemplo
1 j apresentado, os atributos da entidade produto so: cdigo, nome,
estoque e valor de venda.
A figura 12 apresenta sua representao grfica de acordo com o
modelo proposto por Peter Chen. Neste modelo, cada entidade possui um
conjunto de atributos. Como premissa, toda entidade necessita ter pelo
menos um atributo para existir. Observe que o atributo que identifica um
elemento especfico possui como representao um crculo fechado, enquanto
os demais atributos so representados por crculos abertos.
32
Banco de Dados I
Nome: ATUAO-DOCENTE
Conjuntos de entidades participantes: PROFESSOR, CURSO
Para cada conjunto de entidades (ex: PROFESSOR)
- cardinalidade (mxima): N
- cardinalidade (mnima): 0
33
Banco de Dados I
34
Banco de Dados I
35
Banco de Dados I
A figura 15, possui uma relao 1:N, j a figura 14 possui uma relao
N:N. Observe que para definir estes tipos de cardinalidade ou tambm
conhecido como tipos de relao, foram utilizadas apenas as cardinalidades
mximas de cada um dos exemplos apresentados nas figuras 14 e 15.
Cardinalidade Um para UM (1:1)
Dada duas entidades definidas como entidades A e B, dizemos que
existe uma cardinalidade 1:1, quando uma entidade em A est associada no
mximo a uma entidade em B e uma entidade em B est associada no mximo
a uma entidade em A. A figura 16 apresenta o conjunto de elementos de duas
entidades A e B distintas com cardinalidade 1:1. Observe que cada elemento
de cada uma das entidades possui apenas uma relao com um elemento da
outra entidade.
36
Banco de Dados I
37
Banco de Dados I
38
Banco de Dados I
Generalizao/Especializao
Muitas vezes, quando analisamos um conjunto de entidades,
percebemos contedos iguais, que geralmente implicam em criar atributos
iguais em entidades diferentes. Por exemplo, imagine aluno e professor,
ambos possuem nome, CPF, data de nascimento entre outros campos
semelhantes. Normalmente criamos entidades distintas para ambos e
replicamos os atributos, adicionando outras caractersticas especficas para
cada entidade (carteira de trabalho, por exemplo, na entidade professor e
nome dos pais na entidade aluno). Em alguns casos existe outra alternativa de
representao. Ao invs de criar vrias entidades cria-se uma nica entidade
agrupando atributos comuns e outras entidades contendo somente os
atributos no compartilhados, em uma relao de generalizao ou
especializao. Este conceito de generalizao e especializao aplicado a
banco de dados. Por exemplo, vamos imaginar que seja necessrio armazenar
39
Banco de Dados I
Recapitulando
Ao concluir este captulo, o leitor percebeu que o processo de
implementao de um banco de dados E-R, possui etapas importantes que
iniciam no levantamento de requisitos e concludo na implementao de
forma fsica do banco de dados.
Tambm foi estudada a estrutura proposta pelo modelo de Peter Chen,
onde foram apresentas as definies de entidades, atributos, relaes entre
entidades e cardinalidades.
Segundo estudos, a definio correta do tipo de relao (1:1 , 1:N e
N:N) indispensvel para atingir os objetivos do projeto elaborado de
40
Banco de Dados I
Atividades
Tendo como base nas afirmaes abaixo relacionadas marque (V) para as
assertivas Verdadeiras e (F) para as Falsas
V
1)
( )
( )
2)
( )
( )
3)
( )
( )
4)
( )
( )
Assertiva
Na etapa do esquema conceitual que compreende a modelagem
conceitual do processo de implementao de um banco de dados,
no necessrio saber qual o banco de dados que ser
implementado, pois a viso da informao no implica em qual
banco ser implementado.
Um atributo possui como caracterstica pode conter dados
Monovalorado ou dados repetitivos alm de permitir a
obrigatoriedade ou no da existncia de informao em seu
contedo.
Os tipos de Cardinalidade esto associados cardinalidade mnima
de uma relao
No modelo conceitual, um relacionamento possui:
- Nome
- Entidades que participam do relacionamento
- Cardinalidades mnimas e absolutas
- Papel desempenhado por cada entidade
(
(
(
(
(
) 1:1
) 1:N
) N:N
) 0:N
) 0:1
Gabarito:
Questo 1 V
Questo 2 V
Questo 3 F (o correto associao pela cardinalidade mxima)
Questo 4 F (o erro est em que no existe cardinalidade e absoluta)
Questo 5 B
41
Banco de Dados I
Introduo
Neste captulo sero retomados alguns conceitos do modelo conceitual
e apresentado algumas novas especificidades deste modelo, atravs de
exemplos de construo deste diagrama. Desta forma, o aluno estar diante
de exemplos prticos que subsidiaro a elaborao destes diagramas
contribuindo na correta elaborao de um projeto de banco de dados.
Modelo Conceitual
Como j abordado no captulo anterior, o modelo conceitual, apresenta
uma viso de armazenamento, independente do SGBD que ser
implementado. Atravs deste modelo possvel identificar todas as entidades
e relaes existentes entre estas entidades, alm dos atributos necessrios de
cada entidade de um determinado domnio.
Partindo deste pressuposto, importante retomar que o modelo
depender exclusivamente do que a etapa de levantamento de requisitos
trouxe de informao para a elaborao do diagrama. Desta forma os
exemplos que seguem sero fruto exclusivo dos domnios que esto sendo
apresentados em cada exemplo. importante que seja destacado que o
diagrama poderia ser diferente dependendo da descrio do exemplo.
O diagrama conceitual a base para o desenvolvimento do modelo
lgico e por consequncia o modelo fsico. Assim sua correta elaborao
implicar na correta elaborao dos demais modelos, j que pelo processo,
um depende do outro.
42
Banco de Dados I
43
Banco de Dados I
44
Banco de Dados I
pelo fato que o texto induz a criao da entidade. Segundo o texto ...Um
animal possui uma raa, j uma raa de vrios animais.... Perceba que o
texto relata um tipo de relao 1:N. Neste caso devemos criar uma nova
entidade e determinar um relao ligando a entidade que originou (neste caso
a entidade animal) e a nova entidade (neste caso a entidade Raa).
Os demais tipos de relao tambm foram determinados de acordo com
o texto. Segundo o exemplo temos 5 relaes com os respectivos tipos de
relao:
45
Banco de Dados I
46
Banco de Dados I
47
Banco de Dados I
48
Banco de Dados I
Observe que foi criado um atributo novo nas entidades Venda, Animal e
Atendimento chamado de cdigo, o qual foi utilizado como atributo
identificador da entidade. Geralmente a soluo quando no existe um
identificador entre os atributos a criao de um cdigo. Constate tambm
que a entidade raa s possui um atributo denominada nome e este foi
utilizado como atributo identificador, pois pela lgica, no ser cadastrada
raas com o mesmo nome. Alguns analistas neste caso, preferem criar um
novo atributo (cdigo) e coloca-lo como atributo identificador.
O exemplo 3 apresenta outra descrio como forma de exemplificar a
criao do modelo conceitual. O domnio do exemplo 3 um hotel que
necessita controlar seu processo de hospedagem
Exemplo 3: - Hotel
Um hotel deseja informatizar seu processo de hospedagem. Sabe-se que necessrio
armazenar informaes de seus clientes, hospedagens por ele realizadas, e produtos
consumidos na hospedagem. O cliente possui cdigo, nome, endereo, cidade, estado,
CPF, RG e data de nascimento. Uma hospedagem possui um cliente, j um cliente pode
se hospedar nenhuma ou vrias vezes. Uma hospedagem possui tambm uma data de
entrada e uma data de sada. Uma hospedagem possui um quarto associado a ela j um
quarto pode estar relacionado a vrias hospedagens. Um quarto de uma categoria, j
uma categoria, pode estar relacionada com vrios quartos. Um quarto possui nome,
andar, categoria e nmero de camas.
49
Banco de Dados I
50
Banco de Dados I
51
Banco de Dados I
Recapitulando
Ao concluir este captulo, possvel realizar uma srie de constataes
prticas sobre o modelo conceitual, tendo em vista os exemplos de Petshop e
Hotel trabalhados.
Tendo como base as descries dos domnios possvel compreender
como ocorre a aplicao dos tipos de relao e a implantao das
cardinalidades mximas e mnimas. Tambm foi apresentada a soluo de
criao de novos atributos para atender a necessidade de definio de
atributos identificadores.
Segundo exemplos, foi possvel constatar a necessidade da correta
definio dos dados extrada no levantamento de requisito, como forma de
elaborar um diagrama conceitual sem que ocorram dvidas que possam
ocasionar atraso ou incerteza sobre a soluo de banco que est sendo
desenvolvida.
Atividades
1) Marque a alternativa que determina a correra leitura das cardinalidades
apresentadas no diagrama que segue:
52
Banco de Dados I
Tendo como base nas afirmaes abaixo relacionadas marque (V) para as
assertivas Verdadeiras e (F) para as Falsas
V
2)
( )
( )
3)
( )
( )
4)
( )
( )
5)
( )
( )
Gabarito:
Questo 1 E
Questo 2 F
Questo 3 V
Questo 4 F
Questo 5 V
Assertiva
O atributo quantidadecomprada deveria estar na entidade cupom
e no na relao
O atributo fornecedoredoproduto deveria ser uma entidade
possuindo relao com a entidade produto
O tipo de relao deste diagrama deveria ser 1:N e no N:N
O nome de produto no poderia ser identificador, pois pode
ocorrer de existir produtos cadastrados com mesmo nome
53
Banco de Dados I
Modelagem Lgica
Christiano Cadon
Introduo
Dando prosseguimento ao processo de banco de dados, este captulo
abordar a etapa de Modelagem lgica. Ser estudada a transformao do
modelo conceitual para o modelo lgico relacional possibilitando ao aluno
compreender de forma prtica os conceitos de chave primria e chave
estrangeira, alm de boas prticas na especificao das nomenclaturas do
diagrama.
Modelo Lgico
O modelo lgico descreve as estruturas que representam a base de
dados. Sua representao semelhante ao modelo conceitual, porm possui
suas particularidades. Diferentemente do modelo conceitual, para modelar
um diagrama lgico dependemos saber qual tipo de sistema gerenciador de
banco de dados ser implementado (relacional, rede, hierrquico, OO). Como
a proposta deste livro est embasada no modelo relacional, este ser utilizado
como base no decorrer deste material, at porque, como j mencionado
anteriormente, o modelo relacional, predomina no cenrio de
desenvolvimento que estamos atualmente inseridos. Sendo assim o modelo
lgico selecionado para representao dos exemplos o modelo relacional.
Relembrando, o modelo lgico possui como principal caracterstica a
definio no diagrama das chaves primrias e estrangeiras, o que define de
forma fsica as relaes entre as entidades. Da mesma forma que o modelo
conceitual, existe enumeras representaes deste diagrama, e geralmente os
fabricantes dos SGBD criam interfaces para modelagem seguindo um modelo
pr-estabelecido. O importante a ser definido aqui, que, independente do
modelo, o resultado de forma prtica ser o mesmo, o que muda sua
representao. De forma geral, ouso a definir, que se algum detm
conhecimento sobre um determinado modelo, certamente entender outro
modelo sem nenhuma dificuldade.
O modelo Entidade Relacionamento proposto por Peter Chen e
implementado como modelo conceitual, um modelo semntico que fala de
objetos (entidades e relacionamentos) que sero representados no banco de
dados, j o modelo relacional, representa o modelo de dado propriamente
dito que ser definido no SGBD.
54
Banco de Dados I
55
Banco de Dados I
existir uma definio de qual ser o banco de dados que ser implementado o
banco, e com isto j ter conhecimento dos tipos de dados suportados por
este. No exemplo apresentado na figura 34, apenas foi definido os tipos
nmero, texto e data, como forma de representar as informaes.
Geralmente o tipo de dados texto, definidos a quantidade mxima de
caracteres que seria necessria para armazenamento. J se tratando de
nmeros, importante dividir os campos que devem armazenar nmeros
inteiros dos campos de devem armazenar nmeros reias. Alguns campos que
normalmente so representados por nmeros, podem ser armazenados como
texto, como o caso do campo CPF que um nmero, e neste exemplo foi
definido com sendo do tipo texto. Isto se deve pois o analisa deseja
armazenas possivelmente os smbolos juntamente com os nmeros do CPF, o
que no possvel se este for definido como nmero. Em alguns casos existem
banco de dados, que possuem um recurso chamado, formatao, que permite
o armazenamento deste tipo de dado, e sua visualizao respeita uma
determinada formatao a qual apresenta os dados como se fosse um texto.
Contudo este recurso no implementado em todos os SGBD. Desta forma
estamos definindo neste material que se houver a necessidade de
armazenamento de informaes numricas contendo caracteres especiais
como CEP ou telefone, estes campos sero armazenados como texto.
Outra transformao relevante do modelo relacional em relao ao
modelo ER a definio das relaes. Neste caso a transformao depender
diretamente do tipo de relao definido no diagrama conceitual (1:1, 1:N ou
N:N).
Transformao de Relao do tipo 1:1
O mapeamento da de uma relao 1:1 depender diretamente da
cardinalidade mnima aplicada em cada relao. Caso exista obrigatoriedade
em abas cardinalidades mnimas de uma relao, a soluo a juno das
duas entidades participantes mais os atributos que existirem na relao em
uma nica tabela. O exemplo apresentado na figura 35 ilustra a aplicao da
transformao de uma relao do tipo 1:1 com as duas cardinalidades mnimas
obrigatrias.
Observe que as entidades empregado e equipamento se
transformaram em uma nica tabela chamada EmpregadoEquipemento,
contendo todos os atributos das entidades mais o atributo dataLocacao que
estava na relao Alocado. Como as duas entidades possuam um
identificador nico no modelo conceitual, na transformao no ocorre a
necessidade de existir uma chave primria composta, por mais que no esteja
errado ocorrer. Neste caso foi elegido um dos atributos como sendo chave
primria e implementado no diagrama.
Outra considerao a modificao dos nomes do atributos. Observe
que neste exemplo o nome dos atributos foi alterado como forma de
56
Banco de Dados I
57
Banco de Dados I
58
Banco de Dados I
59
Banco de Dados I
60
Banco de Dados I
61
Banco de Dados I
62
Banco de Dados I
63
Banco de Dados I
64
Banco de Dados I
65
Banco de Dados I
Recapitulando
Ao concluir este captulo, o aluno percebeu que o modelo lgico possui
como principal caracterstica o conceito de relacionamento atravs de campos
de chave primria e estrangeira.
O modelo lgico relacional possui uma estrutura bem mais simples que
o modelo conceitual proposto por Peter Chen, tanto que o resultado da
transformao dos modelos conceituais para o modelo lgico relacional
resulta em um conjunto de tabelas, atributos e relaes definidas pelos
atributos de uma tabela.
Atravs dos exemplos apresentados, foi possvel identificar como ocorre
a transformao do modelo conceitual para o modelo lgico, onde foram
abordados a transformao das entidades em tabelas, dos tipos de relao e
da generalizao/especializao.
Atividades
1) Tendo como base o diagrama conceitual, marque a alternativa correta que
representa a transformao para o modelo conceitual
66
Banco de Dados I
2)
( )
( )
3)
( )
( )
4)
( )
( )
5)
( )
( )
Gabarito:
Questo 1 B
Questo 2 V
Questo 3 V
Questo 4 V
Questo 5 F
Assertiva
A transformao do tipo de relao est correto, pois criou duas
tabelas colocando no lado N um atributo de chave estrangeira
referenciando a outra entidade
As cardinalidades existentes na primeira fora de representar esto
invertidas
O atributo existente na relao no foi implementado. O correto
seria coloc-lo em uma tabela
Pela tabela de veculo possuir um atributo de chave estrangeira,
este dever tambm fazer parte da chave primria de veculo.
67
Banco de Dados I
Introduo
Dando prosseguimento ao processo de banco de dados, este captulo
inicia com a etapa de Modelagem lgica. Ser estudada a transformao do
modelo conceitual para o modelo lgico relacional possibilitando ao aluno
compreender de forma prtica os conceitos de chave primria e chave
estrangeira, alm de boas prticas na especificao das nomenclaturas do
diagrama.
Em seguida sero bordados conceitos de normalizao de dados e
lgebra relacional, apresentando exemplos prticos de sua aplicabilidade.
Desta forma, este estudo possibilitar ao aluno concluir o processo de banco
de dados e ter uma viso de lgebra relacional a qual a base de diversas
linguagens DML como o SQL.
Modelo Fsico
A modelagem fsica a ltima etapa do processo de banco de dados.
Nesta etapa o modelo lgico ser transformado em uma estrutura, onde cada
tabela e seus atributos sero representados de forma que o banco de dados
possa ser construdo. O resultado desta aplicao uma descrio do esquema
DDL do SGDB, ou seja, teremos uma definio de todos os tipos de dados,
quais sero os ndices aplicados, mtodos de acesso entre outros. A partir
deste modelo possvel utilizar uma linguagem DML como, por exemplo, SQL
para criar um banco de dados contendo todas as informaes que o modelo
lgico gerou. Impreterivelmente nesta etapa o banco de dados j deve ter
sido definido.
No existe nenhum diagrama para representar o modelo fsico, sua
representao depender da metodologia de trabalho que cada empresa
desenvolvedora utiliza. O que ocorre geralmente nesta etapa, e o registro de
criao atravs de uma linguagem DML das tabelas como o caso do da
utilizao do comando CREATE TABLE e ALTER TABLE da linguagem SQL.
Como forma de representar o processo como um todo, o exemplo 4
apresenta uma descrio de um domnio que serve como base para elaborao
68
Banco de Dados I
69
Banco de Dados I
Normalizao de Dados
O principal objetivo de normalizar tabelas est no fato de evitar os
problemas causados por falhas no projeto do banco de dados, bem como
eliminar a mistura de assuntos, evitando as correspondentes repeties
desnecessrias de dados.
Um fato a ser sempre observado em um projeto de banco de dados
baseado no modelo relacional o de no misturar assuntos em uma tabela.
Um exemplo disto seria em uma tabela de clientes colocar apenas os dados de
clientes. Informaes como seus pedidos, contas a receber devem estar em
outras tabelas. No devemos misturar os assuntos, pois como consequncia
teramos repeties desnecessrias, bem como uma possvel inconsistncia de
informao.
O Processo de normalizao aplica uma srie de regras sobre as tabelas
de um banco de dados, para verificar se esto bem projetadas. Embora exista
5 formas normais (regras) , na prtica usamos apenas 3 formas normais.
comum aps a aplicao das regras de normalizao, algumas tabelas
acabam sendo dividas em duas ou mais tabelas, o que no final, gera um
nmero maior de tabelas do que originalmente existe. Neste processo
observamos a simplificao dos atributos colaborando significativamente com
a estabilidade do modelo de dados, reduzindo-se consideravelmente as
necessidades de manuteno.
Primeira forma normal
Uma tabela est na primeira forma normal quando seus atributos no
possuem grupos de repetio. Considere a estrutura da tabela representada
na figura 47 e o exemplo de dados armazenados nesta.
70
Banco de Dados I
71
Banco de Dados I
72
Banco de Dados I
de parte dela, mas sim dependente de outro campo da tabela. Neste caso,
dizemos que a tabela no est na terceira forma normal. Observe o exemplo
da figura 51.
lgebra Relacional
A partir no desenvolvimento do modelo relacional, que definiu tabelas
e relao entre tabelas na dcada de 1970, surgiu a necessidade de extrair
informaes armazenadas neste modelo de dados. Nesta mesma poca, foram
estudados diversas metodologias, porm a que mais obteve resultado
73
Banco de Dados I
Seleo
Projeo
Produto Cartesiano
Unio
Diferena
Juno
Seleo
Este operador tem como funo selecionar tuplas que satisfazem uma
dada condio (predicado). Sua aplicao produz um subconjunto horizontal
de uma relao. Sua notao :
74
Banco de Dados I
Projeo
O operador de projeo seleciona atributos de interesse produzindo um
subconjunto vertical de uma determinada relao. Sua notao :
Produto Cartesiano
O produto cartesiano compreende a combinao de tuplas para
obtenso de dados presentes em duas ou mais relaes. O produto cartesiano
literalmente executa uma multiplicao dos registros envolvidos nas relaes.
Sua notao :
75
Banco de Dados I
Observe que para cada registro da tabela de Contas foi gerado uma
relao com todos os registros da tabela Agncia. Desta forma, se existir
como o caso do exemplo da figura 53, cinco registros na tabela de Contas e
trs registros na tabela de Agncia, ter um total de quinze registros como
resposta (5x3=15).
Sob o ponto de vista de produto cartesiano est correta a informao
apresentada na figura 56, porm sob o ponto de vista do contedo
apresentado, somente 5 linhas das 15 possuem a informao correta. Sendo
assim podemos utilizar uma seleo contendo um predicado que relaciona as
tabelas contidas no produto cartesiano. A figura 57 apresenta a aplicao de
uma regra sobre o produto cartesiano.
76
Banco de Dados I
Unio
O operador unio une tuplas de duas relaes que sejam compatveis.
Neste caso que possuam, o mesmo tipo de dado como reposta. A notao de
unio :
Diferena
O operador diferena retorna as tuplas de uma relao 1 cujos valores
dos atributos no esto presentes em uma relao 2. Sua notao :
77
Banco de Dados I
Juno
A juno a combinao dos operadores de produto cartesiano e
seleo (retorna as tuplas de um produto cartesiano que satisfazem uma dada
condio, onde a condio um predicado). Sua notao :
Recapitulando
Ao trmino deste captulo, o aluno compreendeu a ltima etapa do
processo de banco de dados a qual define de forma fsica o banco. Tambm
entendeu o quanto a normalizao de dados importante para garantir a
integridade dos dados armazenados.
Para isto, necessrio aplicar, caso necessrio, as trs formas normais
em cada entidade o que poder resultar na criao de outras entidades
relacionando-as com as entidades de origem.
Por fim, foi feito um estudo sobre lgebra relacional que utilizada
como base por muitas linguagens DML relacionais como SQL. Neste estudo
foram abordados os operadores de seleo, projeo, produto cartesiano,
unio diferena e juno.
78
Banco de Dados I
Atividades
Assinalar (V) para as assertivas Verdadeiras e (F) para as Falsas
1)
V
( )
F
( )
2)
( )
( )
3)
( )
( )
4)
( )
( )
Assertiva
No modelo fsico definimos a estrutura de banco de dados tendo
como base o modelo conceitual.
Somente poder ocorrer a aplicao da segunda forma normal se
a tabela possuir uma chave primria composta e um outro
atributo que dependa apenas de um campo da chave primria
composta.
Em alguns casos quando aplicado a normalizao poder ocorrer
uma diminuio do nmero de tabelas de um diagrama relacional
O produto cartesiano retornar as tups de uma relao 1 cujos
valores aparecem na relao 2
a)
( )
b)
( )
c)
( )
d)
( )
e)
( )
Gabarito:
Questo 1 F (na verdade o modelo base do modelo fsico o modelo lgico)
Questo 2 V
Questo 3 F (nunca aps a aplicao de normalizao reremos uma reduo
na quantidade de entidades)
Questo 4 F (um produto cartesiano combina os elementos de duas relaes)
Questo 5 C
79
Banco de Dados I
Introduo a SQL
Christiano Cadon
Introduo
Neste captulo ser abordado algumas consideraes sobre o modelo
fsico, as quais so importantes para a correta aplicao de comandos SQL.
Tambm sero abordados conceitos sobre a linguagem de consulta estruturada
SQL, alm dos principais comandos para criao de manuteno de tabelas.
Ao trmino deste captulo, o aluno ter conhecimento necessrio para
construir tabelas e relaes entre tabelas utilizando a linguagem SQL.
80
Banco de Dados I
Tipo de dado
integer
number(presio,escala)
Date
Descrio
Armazena nmeros inteiros. Exemplo:
idade integer
Armazena nmeros reais. Neste tipo de
dados possvel que seja definido a
preciso e a escada do nmero. Exemplo:
datanascimento date
Obs: cada banco de dados representa o tipo
data de forma diferente, por exemplo, o
Mysql possui como formato padro de data
ano-ms-dia.
81
Banco de Dados I
Tipo de dado
varchar(tamanho)
e
varchar2(tamanho)
Descrio
Armazena dados alfanumricos, onde
tamanho define a quantidade mxima de
caracteres que pode ser armazenada no
campo especificado por este tipo de dados.
O tipo varchar2 tem como principal
caracterstica
armazenar
apenas
a
quantidade especfica de bytes que seu
contedo necessita para ser armazenado.
Por exemplo, quando definimos que o
mximo a ser armazenado 30 (nome
varchar2(30)), o mximo que o atributo
nome poder armazenar so 30 caracteres,
porm se for informado no campo nome
Ana, somente sero alocados 3 bytes,
diferentemente do tipo de dado varchar,
que ao definir seu tamanho mximo como
sendo 30 caracteres (varchar(30)), e
informar no campo nome Ana, o SGBD,
aloca 30 bytes mesmo este possuindo
apenas 3. Exemplo:
nome varchar(30)
endereco varcahr2(40)
82
Banco de Dados I
Cada uma das tabelas deve ser criada com suas respectivas chaves
primrias, alm da definio da relao existente. Como forma de
exemplificao, ser tratada cada uma das atividades de forma separada, e
no final deste captulo, sero apresentados exemplos de criao de entidades,
j especificando todas as relaes existentes em um nico comando SQL.
Comando para criar tabela
O comando Create Table deve ser utilizado quanto necessrio criar
uma nova tabela. Sua sintaxe composta por:
Onde:
83
Banco de Dados I
84
Banco de Dados I
Por exemplo, vamos imaginar que o atributo email tenha sido criado
com o nome errado e o correto seria emailFunc. Para isto executaramos o
exemplo 8 que segue.
Exemplo 8: - Alterando o nome de um atributo de uma tabela
alter table funcionario
rename column email to emailFunc;
85
Banco de Dados I
86
Banco de Dados I
Onde:
87
Banco de Dados I
Onde:
88
Banco de Dados I
key(codDep)
references
Descrio
Lista as Meta-informaes
sobre uma tabela
Listar as tabelas criadas
por um usurio
Listar as restries criadas
por um usurio
Comando
DESCRIBE nome_da_tabela
ou
DESC nome_da_tabela
SELECT * FROM USER_TABLES
SELECT * FROM USER_CONSTRAINTS
89
Banco de Dados I
Recapitulando
Ao concluir este captulo, foi possvel compreender que iniciar um
projeto j codificando banco de dados no a melhor alternativa de
desenvolvimento de banco, e poder ocasionar um significativo aumento de
custo do projeto.
Tambm foi abordada, a necessidade de conhecer os tipos de dados
que um banco de dados selecionado para um determinado projeto. O tipo de
dados indispensvel para correta implementao do modelo fsico.
Com base em alguns comandos da linguagem SQL foi possvel conhecer
como possvel criar uma tabelas, alterar o nome e tipo de atributo, alm de
entender a forma de como se adiciona e remove atributos de uma tabela.
Utilizando os comandos SQL, foi possvel definir as chaves primrias e
estrangeiras, determinando uma relao fsica entre as tabelas criadas. Por
fim foi apresentado uma relao de alguns comandos teis para a
manipulao da estrutura de tabelas.
Atividades
Assinalar (V) para as assertivas Verdadeiras e (F) para as Falsas
V
1)
( )
( )
2)
( )
( )
3)
( )
( )
4)
( )
( )
Assertiva
Para a correta implementao do modelo fsico necessrio que
exista um diagrama lgico definido
O SQL obteve um padro pela ISO em 1986, onde a partir da se
tornou-se popular e utilizado at hoje.
possvel criar uma chave primria ou estrangeira no prprio
comando CREATE TABLE
S possvel criar uma chave estrangeira se a chave primria a
qual a chave estrangeira estiver referenciando j estiver sido
criada
2) Tendo como base o diagrama lgico que segue, e sabendo que a tabela de
raa juntamente com a sua chave primria j esteja definida, marque a
alternativa que no poder ser executada.
a)
( )
90
Banco de Dados I
b)
( )
c)
( )
d)
( )
e)
( )
Gabarito:
Questo 1 V
Questo 2 F
Questo 3 V
Questo 4 V
Questo 5 E (comando mal aplicado, falta clausula column e no
necessrio colocar o tipo de dado do atributo a ser
removido)
91
Banco de Dados I
Operaes CRUD
Christiano Cadon
Introduo
Este captulo abordar atravs de exemplos a utilizao dos comandos
de seleo, insero, alterao e remoo de dados os quais compem as
quatro operaes bsicas de banco de dados pelas aplicaes desenvolvidas.
Aps a concluso deste captulo o aluno ter
operacionalizar as tabelas de um sistema de banco de dados.
condies de
92
Banco de Dados I
Obs:. Para cada tipo de dado, existe uma representao de valor. Por
exemplo, dados do tipo integer devem ser informados somente atravs de
nmeros. o caso do valor dado ao codDep(1), codFunc(50) e do campo
numFilhosDep(2). Tipo de dados VARCHAR, deve ser informado colocando
seu contedo dentro de apstrofo ('), como o caso dos campos
nomeDep('Comercial') e nomeFunc('Ana Maria'). J atributos do tipo DATE
deve ser informado entre apstrofo (') com formatao de acordo como o seu
SGBD est configurado. No exemplo 17 percebemos que a data est formatada
em 'dia/ms/ano', e por isso no campo dtNascFunc o valor foi informado
como ('20/03/1995'). Os dados do tipo number, devem possuir como
separador decimal um ponto ao invs da vrgula que estamos acostumados. No
exemplo 17 campo salarioFunc possui como valor 1234.32 (um mil duzentos
e trinta e quatro reais com trinta e dois centavos).
Observe tambm que o valor contido no campo codDep do exemplo 17,
j estava cadastrado na tabela de departamento (exemplo 16). Se o banco de
dados estivesse vazio e os nicos comandos utilizados fossem os 16 e 17, no
seria possvel cadastrar um novo funcionrio com um cdigo de departamento
diferente de 1, pois somente existe este registro cadastrado na tabela e
departamento.
A ordem em que os atributos aparecem no comando INSERT influencia
na ordem como os valores sero informados. O exemplo 18 apresenta a
insero de um novo departamento com a ordem de seus campos alterada.
Exemplo 18: - Inserindo um novo registro com atributos fora da ordem original
insert into departamento(nomedep ,coddep) values ('Financeiro',2);
93
Banco de Dados I
94
Banco de Dados I
95
Banco de Dados I
96
Banco de Dados I
Descrio
Igual
Maior do que
Menor do que
Maior ou igual
Menor ou igual
Deferente de
Exemplo
358.50=358.50
584>352
584>352
125>=854
125<=854
125<>854
Resultado
Verdadeiro
Verdadeiro
Falso
Falso
Verdadeiro
Verdadeiro
97
Banco de Dados I
forma que no comando INSERT cada tipo de dado deve possuir uma forma de
representa-lo em uma condio.
98
Banco de Dados I
99
Banco de Dados I
100
Banco de Dados I
Recapitulando
Ao concluir este captulo, o aluno percebeu o quanto valioso a
compreenso das quatro operaes bsicas de banco de dados, criao,
leitura, alterao e excluso de dados. Percebeu que cada tipo de dado possui
um tratamento diferenciado quando selecionado para uma operao, e
compreendeu que o tipo de dado data o tipo de dado que mais varia entre
os SGBD.
Compreendeu as formas de retornar somente as colunas que deseja
visualizar alm de criar colunas como resposta no existentes no banco.
Evidenciou com possvel definir nome de uma coluna na execuo de SQL e
obter a resposta ordenada. Estudou como possvel atravs dos operadores
relacionais criar uma regra de busca especfica. Estudou sobre o conceito de
sensitive de dados do tipo texto, e compreendeu como se obtm uma consulta
de campos do tipo texto, independente da forma como os dados esto
armazenados, podendo com estes realizar consultas com o operador LIKE.
Percebeu o quando a clausula where importante na execuo dos
comandos de alterao e remoo de dados, podendo sem aplicao correta
desta, comprometer definitivamente o contedo de um banco de dados.
Atividades
Assinale (V) para as assertivas Verdadeiras e (F) para as Falsas, tendo como
base a figura que segue
101
Banco de Dados I
1)
V
( )
F
( )
Assertiva
O comando abaixo relacionado lista o nome do cliente, a data de
nascimento e o sexo de todos os clientes do sexo masculino?
select a.nomecli as nome,a.datanasccli , a.sexocli as sexo from
tbcliente a where a.sexocli='M';
2)
( )
( )
3)
( )
( )
4)
( )
( )
5)
( )
( )
Gabarito:
Questo 1 V
Questo 2 F (faltou colocar um coringa na clausula like o correto seria like
upper('%a%'))
Questo 3 F (A ordem dos campos est errada, primeiro deveria ser
informado o salrio ao invs da data de nascimento a operao
correta seria: insert into tbcliente(pkcodCli, nomeCli, endCli, salarioCli,
datanascCli, SexoCli) values (9, 'Jos', 'Rua solido 501', 2530.52,
'10/12/1998', 'M');)
Questo 4 V
Questo 5 V
102
Banco de Dados I
Introduo
Neste captulo ser estudado questes relacionadas a seleo de dados
como a utilizao dos operadores lgicos, funes de agrupamento alm de
estudar subconsultas utilizando o operador IN.
Ao trmino deste captulo o aluno ter conhecimento necessrio para
aplicar as tcnicas trabalhadas e resolver problemas reais de busca de
informao em tabelas.
Descrio
Retorna verdadeiro se duas expresses booleanas retornarem verdadeiro
Retorna verdadeiro se qualquer expresso booleana retornar verdadeiro
Inverte o valor de qualquer operador booleano
Retorna verdadeiro se o operador for igual a um elemento contido na
lista
103
Banco de Dados I
104
Banco de Dados I
105
Banco de Dados I
Descrio
Realiza uma soma
do contedo dos
atributos
informados como
parmetro
Exemplo
a) Liste a soma de todos os salrios dos
clientes
select sum(c.salariocli) from tbcliente c;
COUNT(ATRIBUTOS)
Retorna a
quantidade de
registros
encontrados na
ocorrncia do
select executado
AVG(ATRIBUTOS)
Retorna a mdia
aritmtica do
contedo existente
nos atributos
informados
MAX(ATRIBUTOS)
Retorna o maior
valor contido na
coluna informada
como parmetro
MIN(ATRIBUTOS)
Retorna o menor
valor contido na
coluna informada
como parmetro
106
Banco de Dados I
107
Banco de Dados I
Subconsulta
Este termo utilizado para designar a necessidade de realizar uma
consulta dentro de outra consulta para atender a um determinado critrio.
Imagine que seja necessrio listar todos os dados do cliente que possui o
maior cdigo, ou que seja necessrio listar os dados do cliente mais velho.
Utilizando os conceitos at aqui apresentados, no possvel executar este
tipo de consulta.
Para solucionar este tipo de problema, utilizamos o operador IN. O
operador IN realiza uma condio comparando um atributo ou valor uma
lista de valores. Ocorre que o SQL suporta que a lista existente no operador
IN, seja um resultado de outra consulta SELECT. Desta forma, dizemos que
utilizamos uma subconsulta para resolver o problema.
A figura 78 apresenta dois exemplos da implementao de
subconsultas, onde o primeiro soluciona o problema de listar os dados do
cliente do sexo masculino que possui o maior salrio. O segundo listando os
dados do cliente mais velho que recebe abaixo de R$ 1000,00.
108
Banco de Dados I
Agora vamos imaginar que com base do exemplo da figura 79, ocorra a
necessidade de alterar o nome de todos os funcionrios para Fulana que
possuam o cargo Diretoria. Observe que neste caso, a alterao deve ser
feita na tabela funcionrio, porm o critrio de alterao est na tabela de
cargo. Como j mencionado o comando UPDATE no suporta informar mais
do que uma tabela, mas suporta a utilizao do operador IN.
Assim, podemos executar a rotina de UPDATE selecionando uma tabela,
e criar um critrio de busca utilizando o operador IN buscando informaes de
outra tabela. O exemplo 27 apresenta a soluo para este problema.
Exemplo 27: - UPDATE com subconsulta
Update funcionario f set
f.nomeFunc='Fulana'
where f.codCargo in(select d.codCargo from Cargo d where
upper(d.nomecargo)=upper('Diretoria'))
109
Banco de Dados I
Recapitulando
Ao concluir este captulo, foi possvel evidenciar diversas situaes
relacionadas a critrios de pesquisa. Foi constatada a importncia dos
operadores lgicos, os quais possibilitaram alm de outras funcionalidades, a
criao de mais de uma regra de pesquisa.
Tambm foi destacada a ordem de execuo dos comandos AND e OR, o
qual atravs de exemplos, foi possvel concluir a necessidade em alguns casos,
do uso de parnteses como forma de execuo correta dos critrios definidos.
As funes de agregao trouxeram maiores possibilidades de
resultados, mas em caso de utiliz-las juntamente com um outro atributo da
110
Banco de Dados I
Atividades
Assinale (V) para as assertivas Verdadeiras e (F) para as Falsas, tendo como
base a figura que segue contendo os dados armazenados na tabela de cliente.
1)
V
( )
F
( )
Assertiva
O comando abaixo relacionado lista todos os dados dos clientes do
sexo F cujo endereo possua o nmero 3
select * from tbcliente h where h.sexoCli='F' or upper(endcli) like
upper('%3%')
2)
( )
( )
3)
( )
( )
4)
( )
( )
111
Banco de Dados I
5)
( )
( )
Gabarito:
Questo 1 F ( o operador correto neste exemplo deveria ter sido AND)
Questo 2 V
Questo 3 V
Questo 4 V
Questo 5 V
112
Banco de Dados I
Introduo
Neste captulo ser estudado e exemplificado a utilizao de mais de
uma tabela para execuo de consultas. Sero implementados conceitos de
produto cartesiano, junes, consultas envolvendo outra consulta e vises de
dados.
Ao concluir este captulo o aluno ter conhecimento necessrio para
implementar consultas complexas utilizado mais do que uma tabela como
referencia.
113
Banco de Dados I
114
Banco de Dados I
115
Banco de Dados I
Utilizando JOIN
A tcnica de utilizao do produto cartesiano soluciona o problema de
utilizar mais de uma tabela como resposta de uma pesquisa, porem no a
nica alternativa. Outra alternativa a utilizao da clausula JOIN no
comando SELECT. Esta clausula s funciona nos comandos de seleo e possui
algumas caractersticas particulares que possibilitam resultados de busca bem
interessantes. Desta forma segue novamente uma atualizao da sintaxe do
comando de seleo contendo JOIN.
116
Banco de Dados I
consulta utilizada no exemplo da figura 83, que lista o nome do produto, sua
categoria e fornecedor, onde seu estoque seja superior a 20.
117
Banco de Dados I
118
Banco de Dados I
119
Banco de Dados I
120
Banco de Dados I
SQL convencional. Neste caso necessrio que esta consulta interna possua
um alias (apelido). O alias definido, poder ser setado como se fosse uma
tabela no restante da consulta, e os atributos de retorno da consulta, sero os
atributos de resposta desta suposta tabela.
O exemplo apresentado na figura 90 apresenta uma listagem contendo
todos os dados da tabela produto, que possua relao com outra consulta
denominada cat, a qual lista o cdigo e nome de categoria de todas as
categorias cujo nome da categoria inicia com a letra B.
121
Banco de Dados I
Pode ser observado tambm, que o nome das colunas de resposta est
associado ao nome dos atributos que foram definidos na consulta denominada
cat, neste caso os campos codigo e categoria.
Alm de otimizar consultas, a aplicao deste mtodo de busca de
dados pode proporcionar a busca dados mais complexos facilitada. Por
exemplo: imagine que, necessitamos listar em tela o nome de todas as
categorias e duas outras colunas, sendo que a primeira listaria a quantidade
de produtos desta categoria que possusse seu estoque superior a 20 unidades,
e a outra coluna, contendo a quantidade de produtos desta categoria que
possua estoque at 20 unidades.
A figura 91 apresenta uma alternativa de resposta utilizando o mtodo
de seleo de dados na clusula from.
Unio de consultas
Da mesma forma que a lgebra relacional une tupas de duas relaes
que sejam compatveis, a clausula UNION realiza a unio de dois comandos
SELECT que possuam colunas de resposta compatveis.
122
Banco de Dados I
Vamos imaginar, por exemplo, que seja necessrio listar uma relao
contendo o nome das categorias e o nome dos fornecedores cadastrados.
Neste caso basta executar dois SELECT sendo o primeiro retornando as
categorias e o segundo retornando fornecedores unindo-as com a clausula
UNION. A figura 92 apresenta a soluo do exemplo apresentado.
123
Banco de Dados I
Recapitulando
Ao concluir este captulo, o aluno teve oportunidade de conhecer as
formas de realizar uma consulta com mais de uma tabela. Foi estudada a
aplicao de mais de uma tabela aps a clausula FROM, gerando um produto
cartesiano entre as tabelas envolvidas. Neste tpico o aluno recordou os
conceitos da lgebra relacional, e entendeu de forma prtica como
importante adicionar uma condio ligando as tabelas relacionadas para
trazer a correta informao. Em seguida, foi abordado o uso da clausula JOIN
como alternativa de relacionar mais de uma tabela, onde foi estudada atravs
124
Banco de Dados I
Atividades
Tendo como base o diagrama lgico que segue, assinale (V) para as assertivas
Verdadeiras e (F) para as Falsas
1)
V
( )
F
( )
Assertiva
Ambos os comandos que seguem possuem sua sintaxe correta e
retornam a mesma resposta
Comando 1:
select t.nometurma,c.nomecurso from tbturma t, tbcurso c
where t.fkcodcurso=c.pkcodcurso
Comando 2:
select t.nometurma,c.nomecurso from tbturma t inner join
tbcurso c on t.fkcodcurso=c.pkcodcurso
2)
( )
( )
125
Banco de Dados I
3)
( )
( )
4)
( )
( )
5)
( )
( )
Gabarito:
Questo 1 V
Questo 2 V
Questo 3 F (O nico erro que est sendo ordenado pelo nome da turma e
no pelo nome do curso)
Questo 4 V
Questo 5 V
126
Banco de Dados I
Referencias
Elmasri, Rames: Sistemas de Banco de Dados. 6 Edio. So Paulo.
Editora Personal, 2011
Date, C J,. Introduo a Banco de Dados. 8 Edio . So Paulo.
Editora
Campus,2003
Rob. Peter e Coronel, Carlos. Sistemas de Banco de Dados: Projeto
implementao e administrao. 8 Edio. So Paulo. Editora
Cengage Learning,2011
MEDEIROS, L. F. Banco de Dados: princpios e prtica. Curitiba :
Ibpex, 2007.
ULBRA . EAD
127