Escolar Documentos
Profissional Documentos
Cultura Documentos
Projeto E-JOVEM
ndice
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
17.
18.
Introduo ............................................................................................................................. 4
Abstrao ............................................................................................................................... 5
Modelo ................................................................................................................................... 7
Ciclo de Vida de um Banco de Dados ............................................................................... 10
Tabelas ................................................................................................................................. 14
Vises ................................................................................................................................... 15
ndice.................................................................................................................................... 17
Linguagem de Banco de Dados.......................................................................................... 17
A linguagem SQL................................................................................................................ 22
A importncia da Modelagem de Dados........................................................................... 30
Modelo de Entidade-Relacionamento (MER) .................................................................. 31
O Modelo Relacional .......................................................................................................... 41
Banco de Dados Relacional ................................................................................................ 43
Modelo ER x Modelo Relacional ................................................................................... 46
Mapeamento do Modelo ER para o Modelo Relacional ................................................. 48
Exerccios Resolvidos ......................................................................................................... 66
Exerccios Propostos ........................................................................................................... 77
Projeto E-JOVEM
1. Introduo
Imagine uma situao onde algum escreve em seu caderno apenas o numero 3, voc com
certeza iria perguntar, o que significa esse 3? Agora imagine que essa mesma pessoa escreve
em se caderno 3 reais, ou 3 cadeiras ou 3 kilos de batatas, dessa vez voc iria conseguir
entender o que a pessoa escreveu essa a diferena entre um DADO e uma INFORMAO.
Por definio temos que um dado um valor que sozinho no tem sentido algum. J uma
informao um DADO contextualizado.
Isso faz com que a informao se torne algo muito importante para todos ns, com elas que
podemos tomar as mais diversas decises em nossas vidas e tambm um grande alerta para
o seguinte problema: Informao Errada = Deciso Errada.
Nas organizaes a importncia da informao para a tomada de, baseada nos seus dados
gerados, tem impulsionado o desenvolvimento dos sistemas de processamento de
informaes.
Em tempos atrs o grande problema residia na limitao quantidade e capacidade de
processamento de informao que era possvel tratar num computador, hoje em dia a
tecnologia permite ultrapassar essas dificuldades.
A necessidade das organizaes em possuir um sistema de gesto mais eficaz torna-as cada
vez mais dependentes da informao existente e dos mtodos para trat-la. O tempo das
enormes e fastidiosas listagens de computador j passou hoje a informao tem de ser
compreensvel, completa, fcil e rpida de se obter.
Projeto E-JOVEM
2. Abstrao
O SGBD deve fornecer ao usurio uma representao conceitual dos dados, sem fornecer
muitos detalhes de como as informaes so armazenadas. Um modelo de dados uma
abstrao de dados que utilizada para fornecer esta representao conceitual utilizando
conceitos lgicos como objetos, suas propriedades e seus relacionamentos. Uma abstrao
depende mais do observador do que da realidade observada.
Projeto E-JOVEM
Nvel de Viso: consiste no nvel mais alto de abstrao. Descreve partes do BD, de
acordo com as necessidades de cada usurio. a forma como os dados so vistos pelo
usurio.
Nvel Lgico: consiste nos dados que esto armazenados e seus relacionamentos. Neste
nvel, o BD descrito atravs de estruturas relativamente simples, que podem envolver
estruturas complexas no nvel fsico.
Nvel Fsico: consiste no nvel mais baixo de abstrao. Descreve como os dados esto
realmente armazenados, englobando estruturas complexas de baixo nvel.
Cada nvel de abstrao tem interao e manipulao com o bando de dados de forma
especfica.
Projeto E-JOVEM
3. Modelo
Modelo uma representao no ambgua que visa ajudar a entender a abstrao de uma
realidade.
Complexidade
Modelar BD envolve gerenciar Complexidades e Riscos. A complexidade e os riscos so
proporcionais ao tamanho do BD. Modelos ajudam a minimizar a complexidade e planejar a
soluo.
Por que usar Modelos?
Reduo dos custos no desenvolvimento: mais barato corrigir erros no modelo do que
na implementao.
sistema:
Permite
experimentar
Modelos de Dados
Modelo de Dados um tipo de modelo para descrever dados, relaes de dados, semntica de
dados e restries de consistncia.
Instncia de BD
Instncia de BD a coleo dos dados armazenados no BD em um determinado momento.
Esquema de BD
Esquema de BD a descrio de um BD segundo um modelo de dados.
Modelagem de BD
Modelagem de BD a atividade de especificao das estruturas de dados e regras de negcio
para um esquema de BD.
Projeto E-JOVEM
Projeto de BD
Projeto de BD a atividade de modelagem de dados em diversos nveis de abstrao de forma
que o BD torne-se eficaz, eficiente e fcil de manter.
O projeto de Banco de Dados se d em trs fases:
Projeto Conceitual
Projeto Lgico
Projeto Fsico
Projeto Lgico:
Descreve o BD no nvel do SGBD, ou seja, depende do tipo particular de SGBD que ser
usado. No podemos confundir com o Software que ser usado. O tipo de SGBD que o
modelo lgico trata se o mesmo relacional, orientado a objetos, hierrquico, etc.
Abordaremos o SGBD relacional, por serem os mais difundidos. Nele, os dados so
organizados em tabelas.
Aluno(mat_aluno, nome, endereco)
Turma (cod_turma, sala, periodo)
Obs: importante salientar que os detalhes internos de armazenamento, por exemplo, no so
descritos no modelo lgico, pois estas informaes fazem parte do modelo fsico, que nada
mais que a traduo do modelo lgico para a linguagem do software escolhido para
implementar o sistema.
Projeto E-JOVEM
Projeto Fsico
Inicia com Esquema Lgico e resulta no Esquema Fsico. uma descrio da implementao
do Esquema Lgico segundo as estruturas de armazenamento e mtodos de acesso do SGBD,
cujo o objetivo otimizar a manipulao dos dados.
Esquema Fsico: uma descrio da estrutura do BD segundo a Linguagem de Definio de
Dados (LDD) do SGBD alvo, que especificado segundo um Modelo Fsico
Ex: LDD do Oracle.
Projeto E-JOVEM
10
Projeto E-JOVEM
Definir objetivos
o Qual o objetivo inicial do sistema proposto?
o O sistema ir fazer interface com outro sistema?
o O sistema deve compartilhar dados com outros sistemas?
Projeto Conceitual;
Seleo do SGBD;
Projeto Lgico;
Projeto Fsico.
Performance;
Segurana;
Backup e recovery;
Integridade;
11
Projeto E-JOVEM
5 Fase: Operao
Nesta fase o BD considerado operacional. A partir desta fase, inicia-se o processo de
evoluo do BD. Onde alguns problemas inesperados podem acontecer. E tambm a
demanda por mudanas constante.
6 Fase: Manuteno e Evoluo
Nesta fase voc deve realizar as seguintes aes:
Manuteno preventiva;
Manuteno corretiva;
Manuteno adaptativa;
Atribuio de novas permisses de acesso;
Gerao de estatsticas de acesso ao BD para monitorar a performance;
Auditoria peridica da segurana do BD;
Resumos peridicos sobre o uso do sistema;
12
Projeto E-JOVEM
13
Projeto E-JOVEM
Chamadas (calls) de aplicaes: permitem que outras aplicaes, que no aquela que
gere a base de dados, aceda aos dados e os utilizem para obter determinados resultados;
14
Projeto E-JOVEM
6. Vises
Consistem em tabelas do banco de dados que no armazenam dados, sua principal est no
aumento de segurana por propiciar uma viso limitada e controlada dos dados que podem ser
obtidos da base (a depender do SGBD utilizado) e a performance por utilizar uma consulta
previamente otimizada, tornando desnecessrio este processo quando ela realizada.
As vises apresentam os seguintes tipos:
Viso idntica:
15
Projeto E-JOVEM
16
Projeto E-JOVEM
7. ndice
uma ferramenta usada pelo gerenciador de Banco de Dados para facilitar a busca de linhas
dentro de uma tabela.
E apresenta os seguintes tipos:
ndice nico:
ndice de Performance:
17
Projeto E-JOVEM
Excluir Tabela
Para excluir tabelas use o comando:
DROP TABLE <nome_tabela> [, <nome_tabela2>,...];
DROP TABLE remove uma ou mais tabelas. Todos os dados e definies de tabela so removidos, assim tenha
cuidado com este comando!
Criar ndice
Sintaxe:
CREATE INDEX <nome_indice> ON <nome_tabela> (<index_col_name>,...)
<index_col_name>:
<col_name> [ASC | DESC]
18
Projeto E-JOVEM
Uma especificao <index_col_name> pode finalizar com ASC ou DESC. Estas palavras chaves so permitidas
para extenso futura para especificar o armazenamento do valor do ndice em crescente ou decrescente.
Atualmente elas so analisadas, mas ignoradas; valores de ndice so sempre armazenados em ordem crescente.
Excluir ndice
Sintaxe:
DROP INDEX <nome_indice> ON <nome_tabela>;
DROP INDEX apaga o ndice chamado nome_indice da tabela nome_tabela. DROP INDEX pode no fazer
nada em algumas verses do MySQL. Dependendo da verso o DROP INDEX mapeado em uma instruo
ALTER TABLE para apagar o ndice.
Criar View
Sintaxe:
CREATE [OR REPLACE] VIEW
<nome_view> AS <SELECT statement> [<check options>];
Excluir View
Sintaxe:
DROP VIEW [IF EXISTS] <nome_view> [, <nome_view2>,];
DML: o conjunto de comandos SQL responsveis pela manipulao dos dados, como:
inserir, consultar, atualizar e excluir.
Obs: Atente para que suas consultas sejam:
simples e claras;
contenham somente campos estritamente necessrios;
sejam otimizadas para o desempenho mximo.
Pesquisando no banco de dados
A pesquisa no banco de dados feita com a instruo SELECT.
Sua sintaxe bsica :
SELECT <campos> FROM <nome_tabela> WHERE <condio> ORDER BY <campo>;
19
Projeto E-JOVEM
OPERADOR
EXEMPLO
DESCRIO
nrcliente = 154
>
<
quantidade != 0
<=
!= OU < >
IS NULL
endereco IS NULL
BETWEEN
IN
NOT IN
LIKE
NOT LIKE
REGEXP
cidade IN
Testa se um valor pertence a um conjunto.
("Recife","Olinda","Caruaru")
cidade NOT IN
Testa se um valor no pertence a um conjunto.
("Recife","Olinda","Caruaru")
nome LIKE ("Samuel%")
nome REGEXP
Para especificar mais de uma condio para a pesquisa use as palavras and e or:
Se quiser selecionar registros que atendam a CONDIO1 e a CONDIO2, faa assim:
SELECT <campos>
FROM <tabela>
WHERE <CONDIO1> AND <CONDIO2>;
Se quiser selecionar registros que atendam a CONDIO1 ou a CONDIO2, faa assim:
SELECT <campos>
FROM <tabela>
WHERE <CONDIO1> OR <CONDIO2>;
20
Projeto E-JOVEM
Inserindo dados I
21
Projeto E-JOVEM
9. A linguagem SQL
Fundamentada no modelo relacional, inclui comandos para:
Definio de dados;
Atualizao;
Consulta.
Vantagens de SQL
Independncia de fabricante.
Portabilidade entre sistemas.
Reduo de custos com treinamento.
Comandos em ingls.
Consulta interativa.
Mltiplas vises de dados.
Manipulao dinmica dos dados.
Desvantagens de SQL
A padronizao inibe a criatividade, fazendo com que a linguagem fique longe de ser a
linguagem relacional ideal.
Algumas crticas:
Falta de ortogonalidade nas expresses;
Discordncia com as linguagens hospedeiras no d suporte a alguns aspectos do
modelo relacional.
Enfoques de SQL
22
Projeto E-JOVEM
Onde condio :
<nome atributo> <operador> <valor>
23
Projeto E-JOVEM
24
Projeto E-JOVEM
25
Projeto E-JOVEM
Exemplo:
Mostrar o novo salrio dos empregados calculado com base no reajuste de 60% para
os que ganham abaixo de R$ 1.000,00:
SELECT Nome, Novo-salrio = (Salrio * 1.60) FROM Empregado WHERE
Salrio < 1000;
9.1.8. Funes sobre conjuntos
Para realizarmos operaes sobre conjuntos temos os seguintes comandos: MAX,
MIN, SUM, AVG, COUNT.
Exemplos:
Mostrar o valor do maior salrio dos empregados:
SELECT MAX (Salrio) FROM Empregado;
Mostrar qual o salrio mdio dos empregados:
SELECT AVG (Salrio) FROM Empregado;
Quantos empregados ganham mais de R$1.000,00?
SELECT COUNT (*) FROM Empregado WHERE Salrio > 1000;
9.1.9. Clusula DISTINCT
A clusula DISTINCT elimina tuplas duplicadas do resultado de uma consulta.
Exemplo:
Quais os diferentes salrios dos empregados?
SELECT DISTINCT Salrio FROM Empregado;
9.1.10. GROUP BY
Para agrupar informaes selecionadas usamos: GROUP BY.
Ele organiza a seleo de dados em grupos.
26
Projeto E-JOVEM
Exemplo:
Listar os empregados por sexo:
SELECT Nome, Sexo FROM Empregado GROUP BY Sexo;
9.1.11. HAVING
HAVING agrupa informaes de forma condicional. Seleciona entre as tuplas
resultantes, as que satisfazem uma dada condio.
Exemplo:
Listar o nmero total de empregados que recebem salrios superiores a R$1.000,00,
agrupados por departamento, mas s daqueles com mais de 5 empregados:
SELECT Num-Dep, COUNT (*) FROM Empregado WHERE Salrio > 1000
GROUP BY Num-Dep HAVING COUNT(*) > 5;
9.1.12. JOIN
JOIN recupera dados de vrias tabelas. Cita as tabelas envolvidas na clusula
FROM. Utiliza qualificadores de nomes para referenciar o nome do empregado,
Empregado.Nome.
Exemplos:
Listar o nome do empregado e do departamento onde est alocado:
SELECT
Empregado.Nome,
Departamento.Nome
FROM
Empregado,
Departamento
WHERE Empregado.Num-Dep = Departamento.Numero;
Listar os nomes dos departamentos que tm projetos:
SELECT Departamento.Nome FROM Departamento, Projeto
WHERE Projeto.Num-Dep = Departamento.Numero;
Observao: Podemos utilizar as clusulas (NOT) LIKE, (NOT) IN, IS (NOT)
NULL misturadas aos operadores AND, OR e NOT nas equaes de juno.
27
Projeto E-JOVEM
Exemplo:
Listar os departamentos que tm projetos com nmero superior a 99 e localizados
em RJ ou SP ordenados por nome de departamento:
SELECT
Departamento.Nome
FROM
Departamento,
Projeto
WHERE
Empregado.Nome,
Departamento.Nome
FROM
Empregado,
Departamento, Trabalha-em
WHERE Trabalha-em.Horas > 20 AND Trabalha-em.Cad-Emp = Empregado.Cad
AND Empregado.Num-Dep = Departamento.Nmero;
9.1.14. Utilizando consultas encadeadas
O resultado de uma consulta utilizado por outra consulta, de forma encadeada e no
mesmo comando SQL.
Exemplo:
Listar os departamentos que tenham qualquer projeto em RJ:
SELECT
Departamento.Nome
FROM
Departamento
WHERE
28
Projeto E-JOVEM
29
Projeto E-JOVEM
A redundncia de dados;
A baixa performance do acesso aos dados (ndices e chaves mal elaborados);
O mau funcionamento da programao x acesso aos dados.
E facilitaremos:
30
Projeto E-JOVEM
Entidade e Atributos
Entidade pode ser definida como um objeto do mundo real, concreto ou abstrato e que
possui existncia independente. Cada entidade possui um conjunto particular de
propriedades que a descreve chamado atributos. Um atributo pode ser dividido em
diversas sub-partes com significado independente entre si, recebendo o nome de atributo
composto. Um atributo que no pode ser subdividido chamado de atributo simples
ou atmico.
Os atributos que podem assumir apenas um determinado valor em uma determinada
instncia so denominados atributo simplesmente valorado, enquanto que um atributo
que pode assumir diversos valores em uma mesma instncia denominado multi
valorado.
Um atributo que gerado a partir de outro atributo chamado de atributo derivado.
Entre os diversos atributos que definem uma entidade deve existir um ou mais campos
que identifiquem inequivocamente cada registro. A este(s) atributo(s) d-se o nome de
Atributo Identificador.
Chave Primria
um atributo identificador que representa univocamente cada ocorrncia ou registro de
uma tabela.
Existem dois tipos de chave primria:
31
Projeto E-JOVEM
Unvoca O valor da chave primria deve ser nico para todos os registros.
No Redundante No caso de uma chave composta no devem ser includos
mais campos do que os necessrios.
No Nula Nenhum dos valores que compem a chave primria pode conter
valores nulos.
32
Projeto E-JOVEM
Relacionamento
Conjunto de associaes do mesmo tipo entre ocorrncias de entidades.
Exemplo: Todos os clientes de um banco tm contas = Relacionamento Tem
Conjunto de associaes entre ocorrncias de entidades sobre as quais se deseja manter
informaes no BD.
Relacionamento x Instncia de Relacionamento:
Para referir um relacionamento particular fala-se em instncia ou ocorrncia de
relacionamento.
Tem autores que consideram uma associao especfica como um relacionamento
e o conjunto de associaes como conjunto de relacionamentos.
Relacionamento e a Chave
O relacionamento entre entidades um dos propsitos das bases de dados relacionais, da
a importncia dada seleo da chave primria (vista na aula anterior), pois atravs
destas que so estabelecidas as associaes entre as diferentes entidades.
Exemplos:
Tipos de Relacionamentos
So as formas como as entidades se relacionam num determinado modelo de informao.
As associaes podem classificar-se em: unrias, binrias e complexas.
Unrio e Binrio
Relacionamento unrio associa uma entidade com ela prpria.
33
Projeto E-JOVEM
Tem-se que um atleta que pratica uma determinada modalidade disputa uma prova dessa
modalidade.
Observao: Regra geral, uma associao do tipo complexa ternria obrigatria
entre as trs entidades.
Cardinalidade
Determina a quantidade (mnima e mxima) de ocorrncias de relacionamentos que uma
instncia de entidade pode ter com outras instncias de entidades.
Exemplo:
34
Projeto E-JOVEM
35
Projeto E-JOVEM
Atributos do Relacionamento
Quando um determinado relacionamento possui atributos, tambm conhecido como
relacionamento valorado. Esta situao ocorre apenas em relacionamento N:N.
Ex. Pedro trabalha no projeto Alfa 30 horas.
36
Projeto E-JOVEM
Auto-Relacionamento
Representa uma associao entre ocorrncias de uma mesma entidade.
Exige a identificao de papis.
Grau de relacionamento
Corresponde ao o nmero de entidades, no necessariamente distintas, que participam de
um relacionamento.
Uma entidade pode ser tratada como um relacionamento de grau zero para efeito de
comparao com outros relacionamentos.
Tipos de Grau de Relacionamento
Binrio: Uma ocorrncia do relacionamento deve envolver simultaneamente duas
instncias de entidades
Ternrio: Uma ocorrncia do relacionamento deve envolver simultaneamente trs
instncias de entidades. No pode relacionar trs entidades em um momento e duas em
outro.
37
Projeto E-JOVEM
Relacionamento Ternrio
Cada ocorrncia de Possui relaciona 3 ocorrncias de entidade: Cliente, Produto e
Conta!
38
Projeto E-JOVEM
Generalizao/Especializao
Permite atribuir propriedades particulares a um subconjunto de entidades especializadas.
Permite a herana de propriedades (atributos):
Especializar
Generalizar
Tipos de Generalizao/Especializao
39
Projeto E-JOVEM
40
Projeto E-JOVEM
PowerDesigner;
Erwin;
DBDesigner;
Microsoft Visio;
brModelo
12.1.
Dados os conjuntos S1, S2 , ..., Sn, no necessariamente distintos, diz-se que R uma
relao sobre esses n conjuntos se R um conjunto de m tuplas, nas quais o primeiro
elemento assume valores em S1, o segundo em S2 , e assim por diante.
41
Projeto E-JOVEM
12.2.
Dada uma relao R, define-se como seus atributos os nomes das funes que mapeiam
os valores de cada um dos elementos de cada tupla nos respectivos conjuntos S1, S2 , ...,
Sn.
12.3.
Dada uma relao R, o domnio do atributo Aj, dom (Aj) , o conjunto Sj no qual o
atributo assume valores.
12.4.
O esquema de uma relao R, denotado por R (A1:D1, A2:D2 , ..., Am:Dm) , formado
pelo nome da relao e pela lista de seus atributos e respectivos domnios.
Usado para descrever uma relao atravs da especificao de seus atributos e domnios.
Formado pelo nome da relao e uma lista de atributos A1, A2, ..., An, onde Aj o nome
do papel desempenhado pelo domnio Dj no esquema da relao R.
Tambm chamado de inteno da relao R.
12.5.
42
Projeto E-JOVEM
Uma instncia de um banco de dados relacional o conjunto das instncias de suas relaes.
O mesmo esquema pode se aplicar a diferentes instncias de um banco de dados.
13.1.
Desde que seja mantida a correspondncia entre atributos e valores, no existe ordem
entre os atributos de uma relao.
Todos os atributos de uma relao devem ser atmicos, isto , indivisveis em termos
de valores e componentes.
O esquema de uma relao pode ser interpretado como uma declarao ou um tipo de
assertiva.
Cada tupla da relao pode ser interpretada como um fato ou uma instncia particular
dessa assertiva.
43
Projeto E-JOVEM
13.2.
Restries de Integridade
13.3.
Restries de Domnio
Especifica que o valor de cada atributo A deve ser um elemento atmico do domnio de
A. Em geral, especificado atravs de tipos primitivos de dados, tais como integer, float,
char, date, time, money, etc. Tambm podem ser descritos atravs da definio de
subconjuntos de tipos primitivos ou de listas enumeradas.
13.4.
Restries de Chave
O valor de um atributo-chave pode ser utilizado para identificar uma tupla especfica
numa relao.
Uma chave uma propriedade do esquema de uma relao, isto , uma propriedade que
deve ser respeitada por todas as instncias da relao.
Atributos cujos valores podem ser duplicados, no devem ser definidos como chaves de
uma relao (Nome, por exemplo).
Em geral, uma relao pode ter mais de uma chave. Nesse caso, cada chave da relao
chamada de CHAVE CANDIDATA.
A chave candidata escolhida para identificar as tuplas de uma relao chamada de
CHAVE PRIMRIA. Em geral, entre todas as chaves candidatas, escolhe-se para chave
primria aquela com o menor nmero de atributos.
44
Projeto E-JOVEM
13.5.
Integridade de Entidade
Integridade Referencial
Estabelece que qualquer tupla pertencente a uma relao R1 que referencie uma outra
relao R2, tem de necessariamente referenciar uma tupla existente em R2.
13.7.
Chave Estrangeira
45
Projeto E-JOVEM
13.8.
Restries Semnticas
13.9.
Exemplos:
Departamento (deptonome, deptosigla, matriculagerente)
matriculagerente referencia empregado
Trabalha_em (matriculaemp, pcodigo, horas)
matriculaemp referencia empregado
pcodigo referencia projeto
46
Projeto E-JOVEM
Modelo Relacional
No modelo Lgico Relacional as entidades e os relacionamentos so trabalhados na forma de
tabelas ou relaes, que so formadas por um conjunto de tuplas e atributos. A terminologia
tabela mais comum nos produtos comerciais e na prtica. J a terminologia relao foi
utilizada na literatura original sobre a abordagem relacional (da a denominao relacional)
e mais comum na rea acadmica e nos livros texto.
Modelo ER e Modelo Relacional
Seja o Modelo ER de um indstria de automveis:
47
Projeto E-JOVEM
15.1.
Bom desempenho:
o Bom desempenho significa basicamente diminuir acesso ao disco
Acessos ao disco consomem o maior tempo na execuo de uma
instruo de banco de dados
Simplificao do desenvolvimento e da aplicao de BD.
Princpios das regras de mapeamento
As regras foram definidas tendo por base, entre outros, os seguintes princpios:
Evitar junes;
Diminuir o nmero de chaves;
Evitar campos opcionais.
15.1.1. Evitar junes
Juno uma operao que busca dados de diversas linhas atravs da igualdade de
campos.
SGBD Relacional geralmente armazenam dados continuamente no disco:
Um nico acesso ao disco traz todos os dados do bloco para a memria
RAM.
Junes envolvem comparaes entre diversas linhas:
Junes requerem diversos acessos a disco (minimizam o desempenho).
Assim, quando possvel, evite usar junes!
Dica para evitar Junes:
48
Projeto E-JOVEM
15.2.
49
Projeto E-JOVEM
Modelo Relacional:
Pessoa (Codigo,Nome,Endereo,DtNasc,DtAdm)
15.2.2. Traduo de Entidade Fraca
Faz-se a traduo das entidades fracas em tabelas, seus atributos em campos e
adiciona-se a chave primria da entidade forte na chave primria da entidade fraca.
Semelhante anterior.
Entretanto faz-se sucessivamente!
50
Projeto E-JOVEM
Use nomes das colunas que sejam curtos e significativos. Isto facilita a vida
do programador.
51
Projeto E-JOVEM
52
Projeto E-JOVEM
Melhor traduo:
Adio de Colunas - neste caso escolheu-se Mulher arbitrariamente e IdentH tem
que ser nica.
1:1 onde ambas entidades tm relacionamentos opcionais:
53
Projeto E-JOVEM
Traduo alternativa:
Tabela Prpria - neste caso Casamento torna-se uma tabela.
1:1 onde ambas entidades tm relacionamentos opcionais.
Discusso:
A soluo por adio de colunas a melhor, pois minimiza a quantidade
de junes e chaves, entretanto, pode-se ter atributos opcionais, os quais
devem ser tratados via programao.
A soluo de tabela prpria aceitvel, mas a de fuso de tabela
semanticamente invivel para o contexto.
1:1 onde uma entidade tem relacionamento opcional e a outra tem
relacionamento obrigatrio:
54
Projeto E-JOVEM
55
Projeto E-JOVEM
15.2.10.
56
Projeto E-JOVEM
57
Projeto E-JOVEM
15.2.11.
15.2.12.
58
Projeto E-JOVEM
15.2.13.
Implementao de generalizao/especializao
59
Projeto E-JOVEM
Discusso:
O uso de uma nica tabela para toda hierarquia minimiza junes e
diminui a quantidade de chaves, entretanto, tem-se atributos opcionais, os
quais devem ser tratados por programao.
A soluo com uso de uma tabela para cada entidade no tem atributos
opcionais, mas apresenta um nmero maior de junes e chaves.
15.2.14.
Atributos Multivalorados:
Transformar o atributo multivalorado em uma nova tabela fraca, incluindo na sua
CP, a CP da tabela origem.
ATENO: Deve-se avaliar a real necessidade de se criar uma nova tabela (evitar
juno!) Um cliente pode ter N telefones, mas se dois so suficientes ento:
60
Projeto E-JOVEM
Inconveniente:
Consulta por telefone sero mais complicadas, pois devem referenciar todas as
colunas referentes ao atributo multivalorado.
15.3.
Normalizao
61
Projeto E-JOVEM
Cria-se uma tabela na qual os dados das linhas externas tabela aninhada so
repetidos para cada linha da tabela aninhada. No caso da tabela da Figura 1, o
esquema resultante seria o seguinte:
ProjEmp (CodProj, Tipo, Descr, CodEmp, Nome, Cat, Sal, DataIni,
TempAl)
Nesta tabela, os dados do projeto - CodProj, Tipo e Descr repetidos para cada linha da tabela de empregados - Emp.
aparecem
Cria-se uma tabela referente prpria tabela que est sendo normalizada e
uma tabela para cada tabela aninhada. No caso da tabela da Figura 1, o
esquema resultante seria o seguinte:
Proj (CodProj, Tipo, Descr)
ProjEmp (CodProj,CodEmp, Nome, Cat, Sal, DataIni, TempAl)
Dependncia Funcional
Em uma tabela relacional, diz-se que uma coluna C2 depende funcionalmente de uma
coluna C1 (ou que a coluna C1 determina a coluna C2) quando, em todas as linhas da
tabela, para cada valor de C1 que aparece na tabela, aparece o mesmo valor de C2.
62
Projeto E-JOVEM
16. SGBD
A Seguir traremos exemplos de SGBDS, mas antes vamos a conceitos a respeitos dos
SGBDS:
Um Sistema de Gerenciamento de Banco de Dados o conjunto de programas de
computador (softwares) responsveis pelo gerenciamento de uma base de dados. O
principal objetivo retirar da aplicao cliente a responsabilidade de gerenciar o acesso,
manipulao e organizao dos dados. O SGBD disponibiliza uma interface para que os
seus clientes possam incluir, alterar ou consultar dados. Em bancos de dados relacionais a
interface constituda pelas APIs ou drivers do SGBD, que executam comandos na
linguagem SQL.
Abaixo j trazemos alguns dos mais conhecidos SGBDs do mercado:
MySQL;
Oracle;
PostgreSQL;
Firebird;
Sybase;
HSQLDB;
mSQL;
SQL-Server;
TinySQL;
JADE;
ZODB;
IBM DB2.
63
Projeto E-JOVEM
16.1.
MySQL
64
Projeto E-JOVEM
16.2.
Oracle
DBDesigner;
TOAD;
SQLNavigator.
16.3.
PostgreSQL
um dos SGBDs de cdigo aberto mais avanados, contando com recursos como:
Consultas complexas;
Chaves estrangeiras;
Integridade transacional;
Controle de concorrncia multi-verso;
Suporte ao modelo hbrido objeto-relacional;
Triggers;
Vises;
Procedimentos armazenados em vrias linguagens.
phpPgAdmin;
PGExplorer;
65
Projeto E-JOVEM
Compartilhamento de dados;
Sobrecarga de processamento.
No usar se:
Usurio nico.
66
Projeto E-JOVEM
Nvel fsico: tambm chamado de Esquema interno, o nvel mais baixo de abstrao.
Descreve como os dados esto realmente armazenados, englobando estruturas complexas de
baixo nvel.
Nvel conceitual (ou lgico): conhecido tambm como Esquema Conceitual, descreve quais os
dados esto armazenados e seus relacionamentos. Neste nvel, o BD descrito atravs de
estruturas relativamente simples, que podem envolver estruturas complexas no nvel fsico.
Nvel de vises do usurio: o nvel externo, descrevendo partes do BD que sero visualizadas
pelos usurios de acordo com suas necessidades. Uma viso um subconjunto de dados do BD,
sem que exista a necessidade de estarem armazenados no BD.
6) O que so modelos lgicos de dados?
o conjunto de ferramentas conceituais para a descrio dos dados, dos relacionamentos entre os
mesmos e das restries de consistncia e integridade. Em outras palavras, o conjunto de
conceitos que podem ser usados para descrever a estrutura de um banco de dados (tipos de dados,
relacionamentos e restries que devem ser mantidas sobre os dados).
67
Projeto E-JOVEM
9) As pessoas envolvidas num sistema de banco de dados podem ser divididas em usurios e
administradores. Descreva os principais tipos de usurios e administradores existentes.
Usurios
68
Projeto E-JOVEM
Administradores
Administrador do SGBD
o
Monitora desempenho.
10) Criar uma tabela chamada DEPARTAMENTO com as seguintes colunas: COD_DEP,
NOME_DEP.
CREATE TABLE DEPARTAMENTO (
COD_DEP NUMBER(5),
NOME_DEP VARCHAR2(50));
11) Alterar a tabela anterior: criar uma chave primria chamada DEP_PK na coluna
COD_DEP.
ALTER TABLE DEPARTAMENTO
ADD CONSTRAINT DEP_PK PRIMARY KEY (COD_DEP);
12) Renomear a tabela criada no item 1 para DEP.
RENAME DEPARTAMENTO TO DEP;
13) Criar uma tabela chamada FUNCIONARIO com as seguintes colunas: COD_FUNC,
NOME_FUNC.
CREATE TABLE FUNCIONARIO (
COD_FUNC NUMBER(5),
NOME_FUNC VARCHAR2(80));
69
Projeto E-JOVEM
70
Projeto E-JOVEM
71
Projeto E-JOVEM
O sistema Educare responsvel pelo controle de alunos, professores, salas, cursos, disciplinas,
recursos didticos e coordenaes do campus. Os dados armazenados neste sistema esto
descritos abaixo.
O sistema permite realizar o cadastro da instituio e de seus campi. Para o cadastro da
instituio necessrio entrar com nome, cidade, endereo e sigla. Cada campus descrito por
nome, cidade, endereo e data de implantao.
Para cada campus, possvel armazenar os blocos. No bloco, informamos cdigo de identificao
(campo alfanumrico), rea (m2) e tipo (didtico ou administrativo). Os blocos possuem salas.
Em um bloco didtico pode haver salas administrativas. Logo, preciso que o cadastro da sala
indique se ela administrativa ou didtica. Para a sala, tambm guarda-se o nmero e rea (m2).
Os alunos esto cadastrados no sistema por matrcula, nome, endereo e telefone. Cada aluno
pode estar matriculado em at 10 disciplinas por vez. Uma disciplina descrita por cdigo e
carga horria. O contedo da disciplina guardado em outra tabela atravs dos campos item e
carga horria. O mesmo contedo pode estar em disciplinas diferentes. Por exemplo: a disciplina
de Introduo Computao do curso de Engenharia em Alimentos possui o mesmo contedo da
disciplina Informtica Bsica do curso de Cincias Contbeis.
As disciplinas pertencem aos cursos. Um curso possui vrias disciplinas e a mesma disciplina
pode estar em cursos diferentes. Sobre o curso, o sistema armazena o nome, cdigo e durao
(em anos).
O sistema tambm organiza os alunos em turmas, que so associadas aos cursos. Da turma,
possvel conhecer seu cdigo e sala.
Os professores ministram disciplinas. Pode ocorrer de mais de um professor ministrar a mesma
disciplina. O professor cadastrado por matrcula, nome, cpf, endereo e telefone.
Os cursos esto ligados a coordenaes (Informtica, Direito, Administrao, etc). Uma s
coordenao pode ser responsvel por vrios cursos. No entanto, um curso no pode ser
administrado por mais de uma coordenao. Da coordenao, o sistema guarda sigla, bloco, sala
e ramal.
O sistema tambm gerencia recursos didticos, tais como projetores multimdia, notebooks e
DVDs. O recurso cadastrado por nome, cdigo e descrio. H o processo de reserva, sendo
que cada recurso pode ser reservado por um professor para uma determinada data, bloco, sala e
horrio.
72
Projeto E-JOVEM
73
Projeto E-JOVEM
Select nome_func,matricula,salrio
From funcionrio
Where salrio <1000,00 or salrio>3000,00
36) Liste todos os funcionrios com 1, 2 ou 3 anos de servio, ou cujo valor de anos de
servio seja nulo:
Select *
From funcionrio
Where anos_servico=1 or anos_servico=2 or anos_servico=3 or anos_servico is
null
37) Liste a matrcula, nome e salrio de todas as pessoas em ordem alfabtica por nome:
Select matricula, nome_func, salrio
From funcionrio
Order by nome_func
38) Liste o departamento, a matrcula, o nome e o salrio dos funcionrios em ordem
decrescente de salrio em seu departamento:
Select depto,matricula,nome_func,salrio
From departamento,funcionrio,lotado_depto
Where matric_func=matricula and cd_depto=depto
Order by salrio desc
39) Liste as matrculas, os nomes e os departamentos de todos os empregados que gerencia
algum departamento:
Select matricula, nome_func,nome_depto
From funcionrio,departamento,gerencia_depto
Where matricula_ger=matricula and num_div=depto
40) Liste a mdia salarial de cada departamento:
Select avg(salrio)
From departamento,funcionrio,lotado_depto
Where matric_func=matricula and cod_depto=depto
41) Liste matrcula, nome, anos de servio de todos os gerentes de departamentos que
recebem salrios maiores que R$ 2000,00 ou que possuam matrculas maiores que 30, e
que tenham mais de 6 anos de servio:
Select matricula,nome_func,anos-servico
From funcionario,gerencia_depto
Where matricula_ger=matricula and anos_servico>6 and (salrio>2000,00 or
matricula>30)
74
Projeto E-JOVEM
75
Projeto E-JOVEM
From funcionario,departamento,lotado_depto
Where depto not in(10) and depto not in(20) and matricula=matric_func and
cod_depto=depto
48) Liste a localizao, a matrcula e o nome de todos os empregados do departamento de
compra e venda:
Select localizao,matricula,nome_func
From departamento,funcionrio,lotado_depto
Where nome_depto=compra and nome_depto=venda and cod_depto=depto and
matric_func=matricula
49) Liste o nome e a matrcula de todos os funcionrios alocados no projeto holografia:
Select nome_func,matricula
From funcionrio,projeto,alocado
Where
nome_proj=holografia
and
cod_proj=codigo_proj
50) Liste todos os funcionrios que trabalhem na zona sul:
mat_func=matricula
and
Select nome_func
From departamento,funcionario,lotado_depto
Where localizao=zona sul and cd_depto=depto and matric_func=matricula
76
Projeto E-JOVEM
77
Projeto E-JOVEM
12. De_na a terceira forma normal. D um exemplo de uma relao em 2FN mas no em
3FN. Transforme a relao em relao em 3FN.
13. Modele a situao abaixo em um Diagrama Entidade-Relacionamento considerando:
78
Projeto E-JOVEM
79
Projeto E-JOVEM
Considere o esquema de uma base de dados sobre carros composta pelos seguintes
esquemas de relao (a chave primaria de cada esquema encontra-se sublinhada).
Suponha a existncia de uma relao (tabela) para cada um dos esquemas abaixo e com o
mesmo nome dos esquemas.
AUTOMOVEIS(C_odigo, Ano, Fabricante, Modelo, Pa__s, Prec_oTabela)
REVENDEDORAS(CGC, Nome, Propriet_ario, Cidade, Estado)
CONSUMIDORES(Identidade, Nome, Sobrenome)
NEGOCIOS(Comprador, Revenda, CodAuto, AnoAuto, Data, Prec_o)
GARAGENS(CGCRevenda, CodoAuto, AnoAuto, Quantidade)
A relao AUTOMOVEIS, cada automvel identificado por um cdigo juntamente
com o seu ano de fabricao. Apenas revendedoras autorizadas, ou seja, cadastradas na
relao REVENDEDORAS, podem vender os carros no mercado. O CGC identifica
unicamente uma revendedora. Os consumidores tm identidade nica em territrio
nacional e so cadastrados na relao CONSUMIDORES. Cada negcio efetuado
registrado na tabela NEGOCIOS, com detalhamento de data, preo pago, identidade do
comprador (consumidor), revendedora, cdigo e ano do automvel. Por uma relao
80
Projeto E-JOVEM
81
Projeto E-JOVEM
37. Quais as perguntas que devem ser levantadas quanto a um projeto de BD?
38. Citar vantagens e desvantagens no uso da tecnologia de BD.
39. Citar problemas que podem ocorrer quanto ao processamento de consultas em um BD
40. Construa um modelo E-R com entidades, relacionamentos e atributos para o caso a seguir.
O banco de dados de uma empresa mantm informaes
sobre empregados, departamentos e projetos. Aps a coleta de
requisitos e a fase de anlise, chegou-se seguinte descrio para
modelagem de dados:
82
Projeto E-JOVEM
83
Projeto E-JOVEM
47. Obter os cdigos dos modelos e sua respectivas marcas, mas somente para modelos
disponveis em lojas que estejam situadas em Curitiba;
48. Obter os cdigos das filiais que no expem nenhum carro de cor predominante azul e
de marcas da Alemanha;
49. Obter os cdigos das filiais que possuem todos os carros que a marca Ford produz;
50. Obter os cdigos daqueles modelos que encontram-se disponveis em todas as filiais de
Porto Alegre;
51. Obter os cdigos das marcas que tem determinado modelo disponvel em todas as filiais;
52. Obter os cdigos das filiais que tenham disponvel algum modelo de uma marca que
fabrique modelos com cor predominante vermelha.
53. Liste todos os atributos de projeto em ordem crescente de cdigo
54. Descubra qual a mdia de ganhos totais e quantos empregados so considerados para
clculo dessa mdia.
55. Liste o nome, a matrcula e o salrio de todas as pessoas que no ganhem salrio inferior a
R$ 1.000,00.
56. Liste matrcula, nome, anos de servio e salrio de todas as pessoas com mais de 6 anos
de servio e que, ou seja gerente de departamento ou ganhe salrio superior a R$ 3.000,00
57. Liste a matrcula, o nome e o salrio de todas as pessoas em ordem decrescente de salrio.
58. Liste o nome, a matrcula e o departamento de todas as pessoas que no trabalhem nos
departamentos 10 e 20.
59. Liste a localizao, a matrcula e o nome de todos os empregados do departamento de
compra e venda.
60. Liste a matrcula, o nome e o salrio de todos os coordenadores de projeto que no
ganhem salrio inferior a R$ 1.500,00.
61. Liste o nome e a localizao de todos os departamentos subordinados diviso
administrao. 4/4
62. Liste o nome e a matrcula de todos os funcionrios alocados no projeto holografia.
63. Liste o nome e a matrcula de todos os gerentes de departamento e o respectivo nome do
departamento gerenciado e da diviso a que so subordinados.
84
Projeto E-JOVEM
64. Liste o salrio mdio para os departamentos que possuam salrio mdio superior mdia
da companhia.
65. Liste o menor, o maior e a mdia de salrios de cada departamento que possua salrio
mdio superior a R$ 1.000,00.
66. Liste o salrio mdio dos empregados por departamento e local para grupos de mais de
um empregado.
67. Liste o salrio mdio dos empregados por local para grupos de mais de um empregado.
68. Liste a matrcula e os nomes dos coordenadores, e matrcula dos funcionrios que so
supervisionados por eles.
85