Banco de Dados I
Introdução à Banco de Dados
1)
O que é e
como funciona o armazenamento de dados em arquivo? (criação, utilização,
vantagens e problemas).
No processamento de dados sem
Banco de Dados, os registros permanentes são armazenados em arquivos
convencionais e as aplicações acessam os arquivos. Acarretando problemas tais
como: redundância controlada de dados, dificuldade de acesso; estrutura de
dados projetada para atender aplicações específicas; acesso concorrente dificultado;
mecanismo de recuperação de erros manuais, verificação á restrição de integridade
é difícil.
Diferentemente no processamento
de dados com Banco de Dados (BD) o armazenamento é de maneira estruturada e com
a menor redundância possível. Permitindo a inserção de dados á disposição aos
utilizadores, podendo também efetuar consultas, introduções ou atualizações. Gerando
assim, um conjunto de dados á um propósito específico, e com alta redução dos
problemas gerados quando armazenados em arquivos.
2)
O que é e
como funcionam os SBGD? Explique a evolução dos arquivos, passando pelo BD até
SGBD.
O SBGD é um conjunto de serviços
(aplicações) de finalidade genérica que facilita o processo de definição,
construção e manipulação dos dados, sendo assim, são responsáveis pelo
gerenciamento de uma base de dados, formado por uma coleção de dados e
programas interligados, fornecendo o acesso simultâneo aos dados.
Alguns avanços já comentados, mas
que podemos destacar de BD á SGBD são: permissão de acesso aos dados de maneira
simples; autorizar acesso às informações á múltiplos utilizadores; manipular os
dados presentes na base de dados (inserção, supressão, modificação). O SGBD
pode decompor-se em três subsistemas: O SGDB de gestão de ficheiros: permite o
armazenamento das informações num suporte físico. O SGBD interno: gere a
emissão das informações. O SGBD externo: representa a interface com o
utilizador.
3)
Quais são os
tipos de conexão existentes com BD? Explique-as.
Time Sharing: Conexão é realizada em tempo real, as estações dos
usuários não possuem inteligência e os terminais são alfanuméricos. Toda a
aplicação é executada no servidor, inclusive o SGDB. E não é escalável.
Servidor de Arquivos: Conexão somente para armazenamento de dados,
as estações de trabalho são inteligentes, toda a aplicação é executada na
estação, inclusive o SGBD. O tráfego da rede é proporcional ao número de
estações. É mais escalável do que a conexão anterior, porém pode apresentar
problemas com o tamanho do BD devido ao tráfego de dados pela rede.
Cliente-Servidor: Servidor de dados e de manutenção de arquivos por
usuários, a aplicação é dividida entre a estação (cliente) e o SGBD, ou seja, o
SGBD é residente e executado no servidor. As estações são inteligentes, possuem
alta capacidade de processamento. Apresenta uma sobrecarga menor para a rede do
que o tipo de conexão Servidor de Arquivos. Também sobrecarrega menos o
servidor do que o tipo de conexão Time Sharing. O acesso remoto pode ser
complexo e a integridade, segurança e backup da BD devem ter procedimentos
semelhantes aos de mainframes.
Servidor de Aplicações: Servidor de aplicações em geral. Concentra
a aplicação numa única máquina, o servidor de aplicações recebe os pedidos dos
clientes e os dirige ao SGBD. Proporciona sigilo do código da aplicação, residente
numa máquina fisicamente controlada. E em sistemas muito grandes a concentração
de todo o processamento em uma única máquina pode ser diminuída replicando uma
ou mais vezes o servidor de aplicações.
Web: Exclusivo para web. Permite acesso gráfico ao SGBD de forma
transparente, tanto local, como remotamente. A aplicação reside em um servidor
WWW que também faz o papel de servidor de aplicações. O único software exigido
ao cliente é um navegador padrão. Também pode apresentar problemas no que se
refere á diferentes graus de resolução gráfica.
4)
Quais são os
modelos de dados existentes? Explique-os.
Modelo
Hierárquico: É o primeiro reconhecido como modelo de dados, desenvolvido á
partir da consolidação dos discos de armazenamento endereçáveis. Os dados são
estruturados em hierarquia ou em árvores, o registro em uma hierarquia precede
de outros e designa-se do registro pai dos outros registros que são chamados de
registros filhos. Os dados contidos nesse modelo podem ser acessados de maneira
hierárquica, ou seja, do topo para as folhas, da esquerda para a direita.
Modelo em Rede: Elimina-se o conceito de hierarquia e permite que o
mesmo registro esteja envolvido em varias associações, neste modelo os
registros estão organizados em grafos. Ao contrário do modelo hierárquico em
que qualquer acesso aos dados passa pela raiz, no modelo de Rede pode obter
acesso á qualquer nó da rede.
Modelo Relacional: Surgiu com a necessidade de aumentar a
independência de dados nos sistemas gerenciadores de banco de dados, prover um
conjunto de funções apoiadas em álgebra relacional para armazenamento,
recuperação de dados e permitir processamento ad hoc. Esse modelo demonstrou
ser mais flexível e adequado ao solucionar os vários problemas que se colocam
ao nível de concepção e implementação a base de dados, não possui caminhos pré-definidos
para acessar dados.
Modelo Orientado Objetos: O seu desenvolvimento obteve-se em função
dos limites de armazenamento e representações semânticas dos modelos
relacionais, este por sua vez é usado para o documento padrão que contém a
descrição geral das facilidades de um conjunto de linguagens de programação
orientadas á objeto e a biblioteca de classes que pode formar a base de dados.
Sistemas Objetos-Relacionais: Esse modelo tenta suprir a
dificuldade dos sistemas relacionais convencionais, que é de representar e
manipular dados complexos, a solução é a utilização de facilidades do SQL, para
isso é necessário adicionar extensões dos tipos básicos do SQL sendo essas: representações
para objetos complexos, herança no contexto e sistemas para produção de regras.
5)
Quais são os
aspectos relevantes que devem ser considerados para atingir a eficiência e
eficácia do sistema informatizado? (na visão do BD).
Os aspectos que devem ser
considerados para atingir eficiência e eficácia são: Os projetos lógicos e
funcionais do banco de dados devem ser capazes de prever o volume de
informações armazenadas a curto, médio e longo prazo; ter generalidade e alto
grau de abstração de dados, possibilitando confiabilidade e eficiência no
armazenamento dos dados e permitindo a utilização de diferentes tipos de
gerenciadores de dados através de linguagens de consultas padronizadas; projeto
de uma interface ágil de aprendizado suave para o usuário; projeto de interface
compatível com múltiplas plataformas; independência da implementação da interface
em relação aos servidores de dados que darão condições às operações de
armazenamento de informações; conversão e mapeamento da diferença semântica
entre os paradigmas utilizados no desenvolvimento de interfaces.
6)
Quais são as
arquiteturas de SGBD’s? Explique-as.
Plataformas Centralizadas: Na arquitetura centralizada, existe um
computador com grande capacidade de processamento que é o hospedeiro do SGBD e
emuladores para os vários aplicativos. Esta arquitetura tem como principal
vantagem a segurança em poder manipular grande volume de dados com muitos
usuários. Sua principal desvantagem é o fato de se ter alto custo, pois se deve
ter ambiente especial para mainframes e soluções centralizadas.
Sistemas de Computador Pessoal: Os computadores pessoais trabalham
em sistema stand-alone, ou seja, fazem seus processamentos sozinhos. Eles
utilizam o padrão X-base e quando se trata de SGBD’s funcionam como hospedeiros
e terminais, desta maneira possuem um único aplicativo a ser executado na
máquina. A principal vantagem desta arquitetura é a simplicidade.
Banco de Dados Cliente-Servidor: Na arquitetura Cliente-Servidor
fornece a interface com o usuário, apesar de ser uma arquitetura bastante
popular para poder implementá-la são necessárias soluções de softwares
sofisticados que possibilitem: tratamento de transações e confirmações de
transações. A principal vantagem desta arquitetura é dividir o processamento
entre dois sistemas reduzindo o tráfego de dados na rede.
Banco de Dados Distribuídos (N camadas): Nesta arquitetura a
informação esta distribuída em diversos servidores. Cada servidor atua como no
sistema cliente-servidor, a característica básica é a existência de diversos
programas aplicativos consultando a rede para acessar os dados necessários, sem
o conhecimento explícito de quais servidores dispõem desses dados.
MER - Modelo
Entidade Relacionamento
1)
Explique o
conceito do MER e a sua importância no relacionamento entre os profissionais da
informática e os demais profissionais.
O MER é um modelo de dados
conceitual de alto-nível, baseado na percepção do mundo real, que consiste em
um conjunto de objetos básicos chamados entidades e nos relacionamentos entre
esses objetos. O objetivo é facilitar o projeto de banco de dados
possibilitando a especificação da estrutura lógica geral do banco de dados, ser
compreensível ao usuário. Atualmente, o MER é usado principalmente durante o
processo de projeto da base de dados.
2)
Explique e
comente o conceito de entidades e atributos.
Uma entidade é uma representação
abstrata de um objeto do mundo real, que possui uma existência independente
(pessoa, carro ou empregado), ou pode ser um objeto com existência conceitual
(companhia, um trabalho ou um curso universitário). Cada entidade tem
propriedades particulares, chamadas atributos, elemento de dado que contém informação
que descreve uma entidade.
3)
Explique e
comente o conceito de relacionamento.
Relacionamento é a estrutura que
indica a associação de elementos de duas ou mais entidades.
4)
Explique e
comente o conceito de atributo-chave.
É um tipo de entidade que possui
atributos cujos valores são distintos, para identificar cada entidade
unicamente.
5)
Explique o
conceito do DER e a sua importância no relacionamento entre os profissionais da
informática e os demais profissionais.
O DER busca minimizar
dificuldades, reproduzindo ou simulando modelos da realidade de forma mais
amigável através de ambientes gráficos e interfaces, simplificando a
complexidade do ambiente computacional.
6)
Dê ou faça
um exemplo de um DER e explique o mesmo.
MRel - Modelo
Relacional
1) Explique
conceitualmente a diferença entre o MER e o Modelo de Dados Relacional, ou
simplesmente Modelo Relacional (MRel).
A diferença entre eles é que no
MER utiliza dados conceituais de alto-nível e o MRel utiliza implementação de
dados mais simples.
2) Explique os
conceitos de Instância, Esquema e Domínio no MRel. Explique as notações no
MRel.
Instância: Toda a relação no
momento.
Esquema: É a descrição de um
banco de dados, poucas mudanças ocorrem no esquema do banco de dados.
Domínio: É um conjunto de valores
atômicos, ou seja, cada valor do domínio é indivisível.
3)
Explique os
conceitos de super-chave, chave candidata e chave estrangeira.
Chave candidata: é um
identificador único que garante que nenhuma tupla será duplicada.
Super-Chave: conjunto de um ou
mais atributos que, não podem existir duas ou mais linhas da tabela com o mesmo
valore de uma Super-Chave.
Chave Primária: são chaves cujo
os atributos são usados para identificar as tuplas em uma relação. Geralmente,
é escolhida a chave candidata de menor tamanho.
Chave Estrangeira – São atributos
de uma relação que fazem referência à chave primária de outra relação, ou até
mesmo à própria.
4)
Explique o
conceito de integridade no MRel.
Restrições de integridade são
usadas para garantir a exatidão e a consistência dos dados em um Banco de dados
relacional. Ou seja, garantir que dados representem assertivamente a realidade
modelada. Podem ser: restrição de integridade de chave, restrição de
integridade de entidade e restrição de integridade referencial.
5)
Explique o
conceito de integridade referencial no MRel.
Integridade referencial é uma
restrição que é especificada entre duas relações e é usada para manter a
consistência entre tuplas de duas relações.
6)
Explique os
conceitos de Intenção e Extensão no MRel. Quais são as operações de atualização
sobre relações?
Intenção da Relação: Esquema da
relação, conjunto dos nomes dos atributos.
Extensão da Relação: Conjunto dos
valores dos atributos. Uma relação r (ou instância de relação) da relação
esquema R (A1, A2, ..., An), também denotado por r(R), é um conjunto de tuplas
r={ t1, t2, ..., tm}. Cada tupla é uma lista ordenada de n valores t=, onde
cada valor vi, 1 £ i £ n, é um elemento do dom(Ai) ou um valor especial null.
São utilizados, com freqüência, os termos intenção da relação para o esquema R
e extensão da relação para a instância r(R).
Existem três tipos básicos de
operação de atualização sobre relações: Inserção, Remoção e Modificação. A
inserção é usada para inserir novas tuplas em uma relação, a remoção elimina
tuplas e a modificação permite alterar os valores de alguns atributos. Quando
são aplicadas operações de atualização, o projetista deve verificar que as
restrições de integridade especificadas no esquema da base de dados relacional
não sejam violadas.
Álgebra
Relacional
1) Quantos e
Quais são os grupos nos quais a álgebra relacional está dividida? Identifique
quais operações pertencem a cada um deles.
A Álgebra Relacional é um
conjunto de operações sobre modelos relacionais de dados e podem ser divididas
em dois grupos, que são eles:
Operadores Tradicionais: União, Intersecção, Diferença e Produto
Cartesiano.
Operadores Relacionais: Seleção, Projeção, Junção e Divisão.
2)
Explique a Operação
SELECT e PROJECT. Quando usar, Para que usar, Como usar, diferenças, etc.
A operação SELECT é usada para
selecionar um subconjunto de tuplas de uma relação, essas tuplas devem
satisfazer uma condição de seleção. Pode ser utilizado quando for necessário
selecionar um registro ou uma tabela, essa seleção é muito utilizada para
formar uma condição de seleção composta, deve ser empregado da seguinte forma
SELECT*FROM TABELA.
O PROJECT é utilizado quando for
necessário selecionar e descartar colunas de uma tabela que serve para projeção
de atributos, entende-se que pode ser utilizado PROJECT para listar atributos,
como por exemplo, de um funcionário SNOME, PNOME, SALÁRIO (FUNCIONARIO).
3) Explique a
Operação UNION, INTERSECTION e DIFFERENCE. Quando usar, Para que usar, Como
usar, etc.
UNION - operação binária que cria
uma relação partindo de duas outras relações, estabelecendo assim, a união de
todas as tuplas dessa nova relação.
INTERSECTION - operação binária
que cria uma relação partindo de duas outras relações, estabelecendo assim a
intersecção das duas, gerando uma nova relação às quais estarão presentes
apenas os dados pertencentes às duas condições pré-estabelecidas.
DIFFERENCE - operação que cria
uma relação partindo de duas outras relações, o qual resultará em uma nova
relação que contenha todas as tuplas que pertençam à primeira relação e não
pertença à segunda.
4) Explique a
Operação CARTESIAN PRODUCT. Quando usar, Para que usar, Como usar, etc.
A operação CARTESIAN PRODUCT,
denotada por c, é uma operação de conjunto binária, porém as relações sobre as
quais são aplicadas não necessitam ser união compatível.
Esta operação é usada para
combinar tuplas de duas relações tal que tuplas relacionadas possam ser
identificadas. O resultado do produto cartesiano de duas tabelas é uma terceira
tabela contendo todas as combinações possíveis entre os elementos das tabelas
originais. Essa tabela resultante possuirá um número de colunas que é igual à
soma das quantidades de colunas das duas tabelas iniciais, e um número de
linhas igual ao produto do número de suas linhas.
5) Explique as
Operações de junção (JOIN) e divisão (DIVISION). Quando usar, Para que usar,
Como usar, etc.
A operação JOIN é utilizada para
combinar tuplas de duas relações partindo dos atributos comuns a ambas. O
resultado conterá as colunas das duas relações que estão participando da
junção. Esta operação é de extrema importância em bancos de dados relacionais,
pois é através dela que nos é permitido fazer relacionamento.
A operação DIVISION é uma
operação adicional que produz como resultado a projeção de todos os elementos
da primeira tabela que se relacionam com todos os elementos da segunda tabela.
6) Explique as
Operações de AGREGAÇÃO. Quando usar, Para que usar, Como usar, etc.
Uma operação de agregação calcula
um valor simples de uma coleção de valores, ou seja, reunir os registro de
tabela, em grupos sobre os quais podem ser aplicadas funções agregadas, como
Soma (SUM), Media (AVG), Maximo (MAX), Mínimo (MIN), Contar (COUNT). Exemplo
usando SQL contar quantos registros existem na tabela Cliente: Select count(*)
from Cliente.
Álgebra
Relacional - Exercícios
ð
Seleção
1) Mostre
o conteúdo da relação departamento
∂
(DEPARTAMENTO)
2) Mostre
os empregados que trabalham no departamento 4.
∂ DNÚMERO = 4
(DEPARTAMENTO)
3) Mostre
a(s) localização(ões) do departamento de pesquisa (5).
∂ DNÚMERO = 5
(LOCAIS_ DEPTO)
4) Mostre
o(s) projetos(s) do departamento 4
∂ DNUM = 4
(PROJETO)
5) Mostre
as informações de relação trabalha_em cujo número do projeto igual a 3.
∂ PNRO = 3
(TRABALHA_EM)
ð
Projeção
1) Mostre
o número e o nome dos dependentes.
π NSSEMP,
NOMEDEPENDENTE (DEPENDENTE)
2) Mostre
o nome e a localização dos projetos.
π PNOME,
PLOCLIZAÇÃO (PROJETO)
3) Mostre
o nome do departamento e o código do gerente dos departamentos.
π PNOME,
SNNGER (DEPARTAMENTO)
4) Mostre
o nome e a data de nascimento dos empregados.
π
PNOME, DATANASC (EMPREGADO)
5) Mostre
o nome e o salário dos empregados.
π PNOME,
SALÁRIO (EMPREGADO)
ð
Seleção+Projeção
1) Mostre
o código, nome e o salário dos empregados que ganham mais de 2500.
∂ SALÁRIO
> 2500 (π NSS, PNOME, SALÁRIO (EMPREGADO))
2) Mostre
o nome e a localização dos projetos do departamento 5.
π PNOME,
PLOCALIZAÇÃO (∂ DNUM = 5 ( PROJETO))
3) Mostre
o número do empregado e o número do projeto cujas horas são maiores que 10.
π NSSEMP, PNRO
(∂ HORAS> 10 ( TRABALHA_EM))
4) Mostre
o nome e o sexo do dependente cujo número do empregado é igual a 123456789.
π
NOMEDEPENDENTE, SEXO (∂ NSSEMP = 123456789(DEPENDENTE))
5) Mostre
o nome, relação e a data do aniversário dos dependentes cujo número do
empregado é igual a 333445555.
π
NOMEDEPENDENTE, RELAÇÃO, DATANIV (∂ NSSEMP = 333445555 (DEPENDENTE))
ð
Junção
1) Mostre
o nome e o salário do empregado e o nome e a relação dos seus dependentes.
π PNOME,
SALÁRIO, NOMEDEPENDENTE, RELAÇÃO
(EMPREGADO χ
DEPARTAMENTO)
NSS
= SNNGER
2) Mostre
o nome do departamento e o nome e o salário do empregado que é o seu gerente.
π DNOME,
DLOALIZAÇÃO (DEPARTAMENTO χ LOCAIS_DEPTO)
NSS
= SNNGER
3) Mostre
o nome do departamento e a sua localização.
π DNOME,
PLOCALIZAÇÃO (DEPARTAMENTO χ LOCAIS_DEPTO)
DMUERO
= DMUMERO
4) Mostre
o nome do projeto, sua localização e o departamento ao qual pertence.
π PNOME,
PLOCALIZAÇÃO, DNOME (PROJETO χ DEPARTAMENTO)
DNUM=DNUMERO
5) Mostre
o nome do empregado e o nome do projeto nos quais eles trabalharam.
π E.PNOME,
P.PNOME ((EMPREGADO χ TRABALHA_EM) χ PROJETO)
NSSEMP
= NSSEMP NRO=NPNUM
ð
Agregação
1) Mostre
a quantidade de empregados do sexo masculino e a quantidade de empregados do
sexo feminino.
SEXO f COUNT
(NSS) (EMPREGADO)
2) Mostre
a quantidade de dependentes do sexo masculino e a quantidade de dependentes do
sexo feminino do empregado cujo número é 123456789.
SEXO f COUNT
(NOMDEPENDENTE) (∂ NSSEMP = 123456789) (DEPENDENTE)
3) Mostre
o nome e o salário do empregado e a quantidade de dependentes que possui.
π PNOME,
SALARIO, NSSEMP f COUNT (NOMEDEPENDENTE)
(EMPREGADO χ
DEPENDENTE)
NSS = NSSEMP
4) Mostre
a despesa total de cada departamento com os salários dos empregados.
DNUM f SUM
(SALARIO) (EMPREGADO)
5) Mostre
a soma total das horas empregadas em cada projeto.
PNRO f SUM
(HORAS) (TRABLAHA_EM)
NOMES: CHARLEANE M. DA SILVA
EDUARDA MONICA L. BELESSA