sexta-feira, 1 de novembro de 2013

Perguntas & Respostas Banco de Dados 1 Parte 3

Alunos: Elliot Portugal
                Ezequiel Junior
                            Guilherme Napolitano
           William Silva

Álgebra Relacional 
Á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.
     R: As operações da álgebra relacional são normalmente divididas em dois grupos. O primeiro
deles inclui um conjunto de operações da teoria de conjuntos. As operações são UNION,INTERSECTION, DIFFERENCE e CARTESIAN PRODUCT. O segundo grupo consiste de
operações desenvolvidas especificamente para bases de dados relacionais, tais como:
SELECT, PROJECT e JOIN entre outras.
     2) Explique a Operação SELECT e PROJECT. Quando usar, Para que usar, Como usar, diferenças, etc.
 R: Operações SELECT e PROJECT:
O Operador SELECT: A operação SELECT é usada para selecionar um subconjunto de tuplas de uma relação. Estas tuplas devem satisfazer uma condição de seleção. Por exemplo, a seleção de um subconjunto de tuplas da relação EMPREGADOS que trabalham para o departamento 4 ou que tenham salário maior que 3000. Cada uma dessas condições é especificada individualmente usando a operação SELECT como segue:
NDEP = 4 (EMPREGADO)
SALÁRIO > 3000 (EMPREGADO)
Em geral, a operação SELECT é denotada por:
<condição de seleção> (<nome da relação>)
onde o símbolo é usado para denotar o operador SELECT, e a condição de seleção é uma
expressão Booleana especificada sobre atributos da relação especificada. A relação resultante da operação SELECT tem os mesmos atributos da relação especificada em <nome da relação>. A expressão Booleana especificada em <condição de seleção> é construída a partir de cláusulas da forma:
<nome de atributo> <operador de comparação> <valor constante>, ou
<nome de atributo> <operador de comparação> <nome de atributo>
 O Operador PROJECT
Pensando na relação como uma tabela, então o operador SELECT seleciona algumas
linhas da tabela enquanto descarta outras. O operador PROJECT, por outro lado,
seleciona certas colunas da tabela e descarta outras. Se existir o interesse sobre
certos atributos da relação pode-se usar o PROJECT para “projetar” a relação sobre
esses atributos. Por exemplo, suponha a necessidade de listar, para cada empregado,
os atributos PNOME, SNOME e SALÁRIO; então pode-se usar o PROJECT como
segue:
SNOME, PNOME, SALÁRIO (EMPREGADO)
A relação resultante é mostrada na figura 7.1b. A forma geral do operador PROJECT é:
<lista de atributos> (<nome da relação>)
onde é o símbolo usado para representar o operador PROJECT e <lista de atributos> é uma
lista de atributos da relação especificada por <nome da relação>. A relação resultante tem
apenas os atributos especificados em <lista de atributos> e aparecem na mesma ordem que
aparecem na lista. Assim, o grau é igual ao número de atributos em <lista de atributos>.

    3) Explique a Operação UNION, INTERSECTION e DIFFERENCE. Quando usar, Para que usar, Como usar, etc.
 R: Existem várias operações da teoria de conjuntos que são utilizadas para agrupar elementos de
dois conjuntos, entre elas estão: UNION, INTERSECTION e DEFFERENCE. Estas operações
são binárias; isto é, elas necessitam de dois conjuntos. Quando essas operações são
adaptadas para a base de dados relacional deve-se assegurar que essas operações resultem
sempre em relações válidas.Pode-se definir as três operações UNION, INTERSECTION e DIFFERENCE sobre duasrelações que sejam união compatível R e S:
· UNION ¾ O resultado da operação, denotado por R È S, é uma relação que inclui
todas as tuplas de R e todas as tuplas de S. Tuplas duplicadas são eliminadas.
· INTERSECTION ¾ O resultado desta operação, denotado por R Ç S, é a relação
que inclui todas as tuplas que são comuns a R e S.
· DIFFERENCE ¾ O resultado desta operação, denotado por R - S, é a relação que
inclui todas as tuplas de R, mas que não estão em S.

      4) Explique a Operação CARTESIAN PRODUCT. Quando usar, Para que usar, Como usar, etc.
 R: A operação CARTESIAN PRODUCT, denotada por c, é também uma operação de conjunto
binária, mas 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 CARTESIAN PRODUCT cria tuplas com atributos combinados de duas relações. Pode-seentão selecionar apenas as tuplas que estejam relacionadas especificando uma condição deseleção apropriada, como foi feita no exemplo. Devido à seqüência: CARTESIAN PRODUCT
seguido de SELECT, ser muito comum para se identificar tuplas relacionadas de duas relações,
uma operação especial JOIN foi criada para especificar esta seqüência como uma única
operação. Assim, a operação CARTESIAN PRODUCT é raramente utilizada isoladamente.

    5) Explique as Operações de junção (JOIN) e divisão (DIVISION). Quando usar, Para que usar, Como usar, etc.
 R: A Operação JOIN
A operação JOIN, denotada por x, é usada para combinar tuplas relacionadas de relações em
uma única tupla. Esta operação é muito importante para quaisquer bases de dados relacionais,
pois permite processar relacionamentos entre relações. Para ilustrar a operação JOIN, suponha
que se deseja recuperar os nomes dos gerentes de cada departamento. Para obter-se o nome
dos gerentes, é necessário combinar cada tupla de departamento com tuplas de empregados
cujo valor NSS seja igual ao valor de SNNGER na tupla departamento. Isto é feito usando a
operação JOIN, então projeta-se o resultado sobre aqueles atributos necessários:
55
DEPT_GER¬DEPARTAMENTO xSNNGER=NSS EMPREGADO
RESULT¬pDNOME, SNOME, PNOME (DEPT_GER)
 A Operação DIVISION
A operação DIVISION é útil para um tipo especial de consulta que ocorre freqüentemente em
aplicações de base de dados. Esta requisição pode ser ilustrada pela seguinte consulta:
“Recupere os nomes dos empregados que trabalham em todos os projetos em que ‘John
Smith’ trabalha. Para expressar esta consulta usando DIVISION deve-se fazer o seguinte:
primeiro recuperar a lista de números de projetos em que ‘John Smith’ trabalha em uma relação
intermediária SMITH_PNOS:
SMITH¬s PNOME = ‘John’ AND SNOME = ‘Smith’ (EMPREGADO)
SMITH_PNOS¬p PNRO (TRABALHA_EM * NSSEMP = NSS SMITH)
Depois, criar uma relação que inclua tuplas da forma <PNRO, NSSEMP> que lista todos os
empregados, cujo número do segura social é NSSEMP, que trabalham num determinado
projeto PNRO:
NSS_PNRO¬p PNRO, NSSEMP (TRABALHA_EM)
Finalmente, aplicar a operação DIVISION para as relações obtidas a fim de obter os números
dos seguros sociais desejados:
NSS_DESEJADO (NSS)¬NSS_PNRO ¸ SIMTH_PNOS
RESULT¬p PNOME, SNOME (NSS_DESEJADO * EMPREGADO)
    6) Explique as Operações de AGREGAÇÃO. Quando usar, Para que usar, Como usar, etc.
 R: O primeiro tipo de consulta que não pode ser expressa na álgebra relacional é conhecido como
funções agregadas sobre coleções de valores da base de dados. Por exemplo, pode-se
querer recuperar a média ou total salarial de todos os empregados ou o número de tuplas de
empregados. As funções normalmente aplicadas para coleções de valores numéricos são:
SUM, AVERAGE, MAXIMUM e MINIMUM. A função de contagem de tuplas é normalmente
chamada COUNT. Cada uma destas funções pode ser aplicada a todas as tuplas de uma
relação.

Álgebra Relacional - Exercícios
Seleção
1) Mostre o conteúdo da relação departamentos.
R: Signa(σ)(departamento)
2) Mostre os empregados que trabalham no departamento 4.
R: Sigma(σ)=4 (Departamento)
3) Mostre a(s) localização(ões) do departamento de pesquisa (5).
R: Signa(σ) = 5 (Locais_depto)
4) Mostre o(s) projeto(s) do departamento 4.
R: Signa(σ) = 4 (Projetos)
5) Mostre as informações de relação trabalha_em cujo número do projeto igual a 3.
σ) = 3 (Trabalha_em)Projeção
1) Mostre o número e o nome dos dependentes.
R:PI( π)nssemp, nomedep(Dependente)
2) Mostre o nome e a localização dos projetos
R: PI( π)pnome, plocalização(Projetos)
3) Mostre o nome e o código do gerente dos departamentos.
R: PI( π)DNOME, SNNGER (Departamento)
4) Mostre o nome e a data de nascimento dos empregados.

R: PI( π)PNOME, DATANASC (Empregado)
5) Mostre o nome e o salário dos empregados.
R: PI( π)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.
R: PI( π)PNOME, NSS, SALARIO(Signa(σ)SALARIO>2500(EMPREGADO))
2) Mostre o nome e a localização dos projetos do departamento 5.
R: PI( π)PNOME, PLOCALIZAÇÃO(Signa(σ)DNUM=5(PROJETO))
3) Mostre o número do empregado e o número do projeto cujas horas são maiores que 10.
R: PI( π)NSSEMP, PNRO (G_horas > 10 (Trabalham_em))
4) Mostre o nome e o sexo do dependente cujo número do empregado é igual a 123456789.
R: PI( π)NOMEDEPENDENTE, SEXO (GNSSEMP=123456789(DEPENDENTE)
5) Mostre o nome, relação e a data do aniversário dos dependentes cujo número do empregado é igual a 333445555.
R: PI( π)NOMEDEPENDENTE, DATANIV, RELAÇÃO (GNSSEMP = 333445555 (DEPENDENTE)


Junção
1) Mostre o nome e o salário do empregado e o nome e a relação dos seus dependentes.
R: PI( π)PNOME, SALARIO, NOMEDEPENDENTE, RELAÇÃO (EMPREGADOҲNSS=NSSEMP DEPENDENTE)
2) Mostre o nome do departamento e o nome e o salário do empregado que é o seu gerente.
R: PI( π)D.DNOME,E.PNOME,E.SALARIO(EMPREGADO.E Ҳ E.NSS=DSSNGER DEPARTAMENTO.D)
3) Mostre o nome do departamento e a sua localização.
R: PI( π)DNOME, L.LOCALIZAÇÃO (DEPARTAMENTO D X DNUMERO = LNÚMERO LOCAIS – DEMO L)
4) Mostre o nome do projeto, sua localização e o departamento ao qual pertence.
R: PI( π)DNOME, PLOCALIZAÇÃO, DNOME (PROJETO X DNUMERO = NUMERO DEPARTAMENTO)
5) Mostre o nome do empregado e o nome do projeto nos quais eles trabalharam.
R: PI( π)DNOME, P.PNOME (EMPREGADO E X NSSEMP TRABALHAEMT ) X TPNRO = P.PNÚMERO PROJETO P)

Agregação

1) Mostre a quantidade de empregados do sexo masculino e a quantidade de empregados do sexo feminino.
R: SEXO (ƒ) CAUNT 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.
R: SEXO (ƒ) CAUNT NSSEMP(Signa(σ) NSSEMP=123456789(DEPENDENTE))
3) Mostre o nome e o salário do empregado e a quantidade de dependentes que possui.
R: PI( π)DNOME, SALARIO, (ƒ) COUNT NOMEDEPENTE (EMPREGADO X NSS=NSSEMP DEPENDENTE)
4) Mostre a despesa total de cada departamento com os salários dos empregados.
R: DNOME (ƒ) SUM SALARIO (EMPREGADO X NDEP = DNÚMERO DEPARTAMENTO)
5) Mostre a soma total das horas empregadas em cada projeto.
R: PNRO (ƒ) SUM HORAS (TRABALHA_EM) PNOME (ƒ) SUM HORA( TRABALHA_EM X PNRO = PNUMERO PROJETO)

Normalização
1)Quais são as diretrizes informais para o projeto de esquema de relações? Explique resumidamente cada uma.R: Semântica de atributos: verificar se o atributo caracteriza (pertence) mesmo aquela entidade.
Informação redundante ou anomalias de atribuição: verificar se os atributos geram redundância e, portanto desperdício de espaço.
Valor null em tuplas: uma relação degenerada (tabelão) pode causar valores null, o que prejudica a interpretação dos dados.
Não permissão de tuplas espúrias: tabelas degeneradas, quando relacionadas podem gerar informações/ dados errôneos (tupla espúrias)
2)Quais são as métricas de qualidade informal para projeto de esquemas de relações? Explique resumidamente cada uma delas.
R: São quatro métricas (Semântica de Atributos, Informação redundante ou anomalias de atribuição, valor null em tuplas e não permissão de tuplas espúrias).
3)O que é e para que serve o conceito de dependência funcional? Quais são os tipos de dependência? Explique-os
R: dependência funcional: Dependências Funcionais são restrições ao conjunto de relações válidas. Elas permitem expressar determinados fatos em banco de dados relativos ao empreendimento que se deseja modelar. Anteriormente foi definido o conceito de superchave. Para existir o destino (dependência –>chave estrangeira) tem que existir a origem (chave primaria). O atributo deve realmente caracterizar a relação.
4)O que é e para que serve normalização de dados relacionais? Quando será utilizada a normalização na maioria das vezes?
R: Eliminar redundâncias e inconsistências de um banco de dados, com reorganização mínima dos dados, é o processo pelo qual transformamos um BD fora do padrão do m-rel, num BD normalizado (dentro do padrão m-rel). Normalmente é usado em BD antigos ou criado por pessoa não técnica.

5)O que são e quantas são as formas formais de relação? Explique-as resumidamente. Para manter eficiência e a simplicidade de processamento em certos casos podemos normalizar as relações até a 3ºFN por quê?
R: O objetivo da normalização de um banco de dados é evitar os problemas que podem provocar falhas no projeto do banco de dados, bem como eliminar a mistura de assuntos e as correspondentes redundâncias dos dados desnecessárias. O processo de normalização aplica uma série de regras sobre as tabelas (também chamadas de relações) de um banco de dados, para verificar se estão corretamente projetadas.Primeira Forma Normal: A primeira forma normal enuncia que cada atributo de uma entidade ou relacionamento pode armazenar apenas um valor. Tabelas com atributos multi-valorados não são consideradas em 1NF.Segunda Forma Normal: A segunda forma normal (2NF) descreve que todo atributo deve ser determinado unicamente pela chave primária. Se existem atributos que dependem apenas de parte da chave, estes devem ser separados em tabelas onde a 2NF seja obedecida.Terceira Forma Normal: A terceira forma normal (3NF) exige que a tabela esteja em 2NF e que todos os atributos que não são chave sejam mutuamente independentes, isto é, que não existam funções que definam um ao outro. Portanto, sempre a chave por inteiro deve definir toda a tabela.Forma normal Boyce/Codd (BCNF): Definição que engloba as outras formas normais, e define que uma tabela está em BCNF se, e somente se, todo determinante funcional for em relação a uma chave candidata. Na prática, uma tabela está em BCNF se estiver em 3NF e não existir dependência funcional dentro da chave primária.
6)Dê exemplos de normalizações de uma relação.
R: FUNCIONÁRIOS = {CODFUNC + NOME + CARGO + {PROJETO + DATAINI + DATA FIM}}
Para colocar na 1FN:
FUNCIONÁRIOS = {CODFUNC + NOME + CARGO}
FUNC_PROJ = {CODFUNC + PROJETO + DATAINI + DATA FIM}


segunda-feira, 21 de outubro de 2013

Banco de Dados I

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