quarta-feira, 16 de setembro de 2009

Algebra Relacional

1-Quantos e Quais são os grupos nos quais a álgebra relacional está dividia? Identifique quais operações pertencem a cada um deles.
R:.A álgebra relacional esta dividida em dois grupos, são eles UNION,INTERSECTION,DIFFERENCE E CARTESIAN PRODUCT que esta relacionado ao conjunto de operações de teoria de conjuntos, depois vem o SELECT,PROJECT e JOIN que são para o desenvolvimento de operações desenvolvidas para base de dados relacionais.

2-Explique a Operação SELECT e PROJECT.Quando usar, para que usar, como usar, diferenças, etc.
R:.Utiliza-se SELECT para seleção de subconjuntos de tuplas de uma relação, deve se 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, dever empregado da seguinte forma SELECT*FROM TABELA.
Utilizaremos um PROJECT 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 quando ha necessidade de 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.
R:. A operação UNION significa união de R e S que inclui todas as tuplas das mesmas, as
tuplas duplicadas são descartadas, INTERSECTION significa a intersecção de R e S essa relação
inclui todas as tuplas que são comuns a R e S, DIFFERENCE essa operação inclui as tuplas de R que não pertence ao conjunto de S. Entretanto UNION E INTERSECTION são utilizadas em operações comutativas

4 - Explique a Operação CARTESIAN PRODUCT. Quando usar, Para que usar, Como usar, etc.
A operação de Cartesian Produtct (Produto Cartesiano) tem a função de combinar todas as tuplas entre as duas relações de entrada, ou seja, combinar todos os registros de duas ou mais tabelas.
Pode ser utilizada quando houver necessidade de combinar todos esses registros, exemplo:
Tabela Cliente:
Código Nome Cidade
1 João Da Silva Jaboticabal
2 Pedro de Souza Guariba

Tabela Descontos no mês
Mês Desconto %
Agosto 10%
Setembro 9%

Cliente X Desconto no mês
Código Nome Cidade Mês Desconto %
1 João Da Silva Jaboticabal Agosto 10%
1 João Da Silva Jaboticabal Setembro 9%
2 Pedro de Souza Guariba Agosto 10%
2 Pedro de Souza Guariba Setembro 9%

Utilizando comando SQL para obter o Produto Cartesiano das tabelas Cliente e Descontos no mês, a sintaxe é definida:
Select * from Cliente, Descontos_mes


5 - Explique as Operações de junção (JOIN) e divisão (DIVISION). Quando usar, Para que usar, Como usar, etc.
Join:
O join (junção) tem como função a combinação de tuplas de duas relações, ou seja, registros de duas tabelas, partindo de atributos comuns a elas.
Pode ser utilizado quando houver a necessidade de combinar este registro, exemplo:

Tabela Cliente:
Código Nome Cod_cidade
1 João Da Silva 10
2 Pedro de Souza 11
3 Jose Santos 10

Tabela Cidade
Cod_cidade Nome_Cidade
10 Jaboticbal
11 Guariba

Cliente X Cidade
Código Nome Cod_Cidade Nome_cidade
1 João Da Silva 10 Jaboticabal
2 Pedro de Souza 11 Guariba
3 Jose Santos 10 Jaboticabal

Utilizando comando SQL para obter o join entre as tabelas Cliente e Cidade, a sintaxe é definida:
Select * from Cliente, Cidade
Where cliente.cod_cidade = cidade.cod_cidade


Division:
O Division (Divisão) tem como função a projeção de todos os elementos da primeira relação que se relaciona com todos os elementos da segunda relação.
Pode ser utilizado quando houver a necessidade de extrair esta projeção, exemplo:

Tabela R1
C1 C2
1 A
1 B
2 A

Tabela R2
C1
A
B

R1 X R2
C1
A

6 - Explique as Operações de AGREGAÇÃO. Quando usar, Para que usar, Como usar, etc.
A Agregação tem como objetivo reunir as Tuplas de uma relação, ou seja, os registro de tabela, em grupos sobre os quais podem ser aplicadas funções agregadas. A funções de Agregação mais conhecidas são Soma (SUM), Media (AVG), Maximo (MAX), Mínimo (MIN), Contar (COUNT).
Pode ser utilizado quando houver a necessidade reunir estes registros, para realizar uma soma por exemplo.

Utilizando comando SQL, temos alguns exemplos destas operações:
Para contar quantos registros existem na tabela Cliente:
Select count(*) from Cliente

Para saber qual o cliente mais velho cadastrado:
Select Max(data_nascimento) from cliente

quarta-feira, 9 de setembro de 2009

MRel - Modelo Relacional

1. Explique conceitualmente a diferença entre o MER e o Modelo de Dados Relacional, ou simplesmente Modelo Relacional (MRel).

O modelo de dados relacional representa os dados da base de dados como uma coleção de relações. Informalmente, cada relação pode ser entendida como uma tabela ou um simples arquivo de registros.
Já o MER propõe que a realidade seja visualizada, os objetos que compõem a realidade
Isto é, o MRel utiliza implementação de dados mais simples que o MER, uma vez que este ultimo utiliza dados conceituais de alto nível.

2 . Explique os conceitos de Instância, Esquema e Domínio no MRel. Explique as notações no MRel.

• Instância da Relação: São Tuplas com os valores da relação num determinado
momento, ou seja, os valores do banco no momento da consulta.

• Esquema: São os atributos da relação (Tupla do Cabeçalho).

• Domínio: É Conjunto de dados possíveis na Tupla.

• Notação:
– Um esquema de relação R de grau n é indicado por R(A1,
A2, A3, ..., An)
– Uma n-tupla t em uma relação r(R) é indicada por t= v2, ..., vn), em que vi é o valor correspondente ao atributo
Ai
• t[Ai] e t.Ai referem-se ao valor vi em t do atributo Ai.
– As letra Q, R, S significam nomes de relação.
– As letra q, r, s significam estados da relação
– As letra t, u, v significam tuplas


3. Explique os conceitos de super-chave, chave candidata e chave estrangeira.

• Super-chave: qualquer subconjunto de atributos de uma relação não repetidos que
identificam cada tupla da relação. Toda chave é uma super-chave. Nem toda super-
chave é uma chave (só a mínima). Toda a super-chave precisa conter, entre seus
atributos, uma chave.

• Chave Candidata: é a chave que tem chance de ser usada como chave-primária. É uma super-chave mínima.

• Chave Estrangeira: Representa o relacionamento entre as relações e define
formalmente a restrição de integridade referencial. O atributo definido como CE
deve ter valor igual ao valor da chave primária da tabela relacionada (de origem) ou
ser nula na relação (de destino).

4.Explique o conceito de integridade no MRel.

Restrições de Integridade: buscam restringir o domínio dos dados de modo a melhorar a consistência do banco de dados. 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. Informalmente, a restrição de integridade referencial estabelece que um tupla de uma relação que se refere à outra relação deve se referir a uma tupla existente naquela relação. Existem 3 que são consideradas necessárias a uma base de dados relacional:
Restrição de Integridade da Chave: Uma chave candidata qualquer não pode ter o mesmo valor em duas tuplas distintas da mesma relação.
Restrição de Integridade da Entidade:A chave primária de qualquer relação não pode ser nula em nenhuma tupla dessa relação.
Restrição de Integridade Referencial: O conceito de Integridade Referencial depende do conceito de Chave Estrangeira.integridade referencial - exige que um valor referido por uma entidade de facto exista na BD (chave externa)


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 t é 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 modifica 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.

quinta-feira, 3 de setembro de 2009

3) CONTROLE DE ESTOQUE. Uma empresa do comércio varejista, deseja fazer o controle de estoque de seu estabelecimento. Para facilitar a administração do seu estoque, a organização criou uma estrutura de almoxarifados, onde um produto pode ser estocado em vários almoxarifados e um almoxarifado pode conter vários produtos. A reposição de estoque acontece quando os produtos adquiridos de um fornecedor chegam com sua respectiva nota fiscal de compra. Já a baixa do estoque se dá quando ocorre a emissão de uma nota fiscal de venda para um determinado cliente. Além disso, deseja-se classificar os produtos em linhas a serem determinadas pelo usuário de acordo com a sua necessidade.










4) EMPRESA DE FLORES. A X.P.T.O LTDA. criou a FLOWERNET, uma rede que tem como objetivo atender todo o mercado nacional no que diz respeito à venda e entrega de flores. Através desta rede, um cliente pode fazer uma compra de flores em Belo Horizonte e pedir para a entrega ser feita em Fortaleza. Para isso a X.P.T.O firmou convênio com várias floriculturas em várias cidades do Brasil. Uma floricultura pode atender várias cidades da região. O pedido do cliente, que pode possuir vários tipos de flores, é cadastrado e repassado para uma das floriculturas conveniadas que atendem a cidade, na qual será entregue o pedido.












5) APURAÇÃO ELEITORAL. Para facilitar o processamento da apuração eleitoral da eleição municipal a ser realizado nesse ano, o TRE (Tribunal Regional Eleitoral) resolveu informatizar esse processo. Sabe-se que cada localidade é dividida em várias zonas eleitorais que, por sua vez, são divididas em várias seções nas quais os eleitores estão vinculados. O candidato a um cargo público deve estar vinculado a um único partido político. Vale ressaltar que, segundo a legislação vigente, o voto é secreto.










6) CONCURSO PÚBLICO. Uma organização deseja implementar o procedimento de concurso público para tornar transparente o seu processo de seleção de pessoal. Esta organização possui vários departamentos, que por sua vez, possui vários cargos. O mesmo cargo pode estar vinculado à vários departamentos. Um concurso público é realizado para vários cargos, e um cargo pode ser oferecido em vários concursos. O candidato faz inscrição em somente um cargo oferecido em um concurso público. O concurso tem várias etapas, que tem a participação de vários candidatos. O candidato obtém a nota em cada etapa que participa. A etapa pode ser classificatória ou eliminatória.