








2) Explique a Operação SELECT e PROJECT. Quando usar, Para que usar, Como usar, diferenças, etc.
Seleção (σ): O operador de seleção σ serve para selecionar um subconjunto de tuplas de uma relação baseado numa condição de seleção. Esta condição nos diz se uma tupla t deve ser incluída ou não na relação resultante. A operação SELECT é denotada por σ
Projeção (π): O operador de projeção π é usado para selecionar atributos de uma relação e construir uma nova relação, "projetando" a relação antiga sobre os atributos escolhidos. A operação é denotada por πatributos (relação) e constrói uma relação nova que contém somente os atributos selecionados da antiga. Todo operador da álgebra relacional sempre gera como resposta uma relação válida. Assim, se não existirem chaves na lista de atributos, todas as ocorrências de tuplas duplicadas são excluídas, sobrando somente uma de cada tipo. A operação PROJECT não é comutativa.
3) Explique a Operação UNION, INTERSECTION e DIFFERENCE. Quando usar, Para que usar, Como usar, etc.
Union – União. Simbologia: - é realizada sobre dois ou mais conjuntos para se criar um outro conjunto que contenha todas as tuplas não comuns entre os conjuntos e as tuplas comuns entre os conjuntos, sem repeti-las.
Intersection - Intersecção. Simbologia: - é realizada sobre dois ou mais conjuntos tendo como resultado um outro conjunto que possuirá os valores que sejam comuns a todos os conjuntos da relação.
Difference - Diferença, Subtração. Simbologia: - - esta operação tem como resultados os valores que, entre dois conjuntos, existem em um, mas não existem no outro conjunto envolvido ;
4) Explique a Operação CARTESIAN PRODUCT. Quando usar, Para que usar, Como usar, etc.
Produto cartesiano
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. Portanto, se fizermos o produto cartesiano de uma tabela A que possua 4 colunas e 10 linhas com uma tabela B onde existem 3 colunas e 7 linhas, a tabela resultante terá 4+3= 7 colunas e 10*7= 70 linhas. Assim, cada linha dessa tabela corresponderá à concatenação de uma linha da primeira tabela com uma linha da segunda. O produto cartesiano não é muito usado como um fim em si mesmo, ou seja, dificilmente estaremos interessados em saber quais são todas as combinações possíveis entre as linhas de duas tabelas, pois a utilidade prática desse tipo de conhecimento é muito discutível. Entretanto, é a única forma primitiva de que dispomos para fundir informações de duas tabelas heterogêneas para posterior processamento. Nesse caso, tipicamente será necessário executar uma Seleção sobre o resultado do Produto Cartesiano, de maneira a descartar as combinações inválidas entre as linhas das tabelas originais
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 x é um produto cartesiano seguido de uma operação e é capaz de processar relacionamentos entre relações, pois combina tuplas de mais de uma relação.
R=R1 x condição R2
A condição de seleção do JOIN é sobre ambas as relações e, no final da operação sobram somente as tuplas do produto cartesiano que obedecem a esta condição em uma relação com m+n atributos e no máximo mn tuplas.
DIVISÃO( )
A operação de divisão é bem mais complicada do que a de JOIN, pois envolve mais operações. Quando divido uma tabela R1 por outra R2, desejo selecionar conjuntos de tuplas que sejam iguais exceto pelos atributos de R2 e que cada grupo contenha todas as tuplas de R2. Se a explicação parece confusa, é por que é mesmo. A operação de divisão gera muitas dúvidas (uma aula praticamente só para ela.) e olhar alguns exemplos ajuda bastante. Se facilitar, ela é equivalente a seguinte sequência de operações (R ÷ S:
T1 = π y(R)
T2= π y(S x T1) – R
T= T1 – T2
6) Explique as Operações de AGREGAÇÃO. Quando usar, Para que usar, Como usar, etc.
Funções de agregação são aquelas que, quando aplicadas, tomam uma coleção de
valores e retornam um valor simples como resultado.
• SUM, AVERAGE, MAXIMUM, MINIMUM,
COUNT
Um tipo de requisição comum envolve o agrupamento de tuplas em uma relação pelo valor de alguns atributos e depois pela aplicação de uma função de agregação neste grupo.
Ex. Agrupar os empregados pelo número de seu departamento, e aplicar a função média no atributo salário em cada grupo. Desta forma saberemos a média dos salários dos empregados de cada departamento.
atributos_agrupados> Agreg
- atributos_agrupados>
Lista de atributos de R
Lista de pares
SUM, AVERAGE, MAXIMUM, MINIMUM, COUNT
Atributo de R
Toda entidade deve possuir um campo chave, ou seja, a chave de acesso a ME ou tabela. Esses campo nunca poderá se repetir e sempre será único. O nome dado a esse campo chave é Chave Primária ou Primary Key (PK). A chave primária é a chave de acesso a tabela, ou seja, para efetuar qualquer cadastro, consulta ou atualização, este campo é que será usado.
Modelo em Rede: como o modelo hierárquico, este modelo utiliza apontadores para os registros. Contudo, a estrutura já não é necessariamente arborescente no sentido descendente.
Modelo Relacional (SGBDR, Sistema de gestão de bases de dados relacionais): os dados são registrados em duas dimensões (linhas e colunas). A manipulação destes dados faz-se de acordo com a teoria matemática das relações.
Modelo Relacional (SGBDR, Sistema de gestão de bases de dados relacionais): os dados são registrados em duas dimensões (linhas e colunas). A manipulação destes dados faz-se de acordo com a teoria matemática das relações.
Modelo Orientado Objetos: Eles começaram a ser desenvolvidos em função dos limites de armazenamento e representações semântica dos modelos relacionais. Alguns exemplos são os sistemas de informações geográficas (SIG) , os sistemas CAD e CAM. O termo Modelo Orientado Objetos é usado para o documento padrão que contém a descrição geral das facilidades de um conjunto de linguagens de programação orientadas a objetos e a biblioteca de classes que pode formar a base para o Sistema de banco de Dados.
Sistemas Objeto-Relacionais: tenta suprir a dificuldade dos sistemas relacionais convencionais, que é o de representar e manipular dados complexos. A solução proposta é a adição de facilidades para manusear tais dados utilizando-se das facilidades SQL existentes.
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).
Para obter eficiência e eficácia no sistema informatizado os seguintes aspectos devem ser levados em consideração:
Os projetos Lógicos e funcional devem ser capazes de prever o volume de informações a curto, médio e longo prazo.
Possibilitar eficiência e confiabilidade no armazenamento de dados e permitir utilização de diferentes tipos de gerenciadores de dados através de linguagens de consultas padronizadas.
Projeto de interface ágil para propiciar aprendizado suave ao usuário, no intuito de minimizar o esforço cognitivo.
Projeto com interface compatível com múltiplas plataformas.
Independência de implementação da interface em relação aos SGBDs que darão condições às operações de armazenamento de informações.
6) Quais são as arquiteturas de SGBD’s? Explique-as.
Arquiteturas de SGBDs
Plataformas centralizadas: Na arquitetura centralizada, existe um computador com grande capacidade de processamento, o qual é o hospedeiro do SGBD e emuladores para os vários aplicativos. Esta arquitetura tem como principal vantagem a de permitir que muitos usuários manipulem grande volume de dados. Sua principal desvantagem está no seu alto custo, pois exige ambiente especial para mainframes e soluções centralizadas.
Sistemas de Computador Pessoal - PC: Os computadores pessoais trabalham em sistema stand-alone, ou seja, fazem seus processamentos sozinhos. No começo esse processamento era bastante limitado, porém, com a evolução do hardware, tem-se hoje PCs com grande capacidade de processamento. Eles utilizam o padrão Xbase e quando se trata de SGBDs, 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, o cliente (front_end) executa as tarefas do aplicativo, ou seja, fornece a interface do usuário (tela, e processamento de entrada e saída). O servidor (back_end) executa as consultas no DBMS e retorna os resultados ao cliente. Apesar de ser uma arquitetura bastante popular, são necessárias soluções sofisticadas de software que possibilitem: o tratamento de transações, as confirmações de transações (commits), desfazer transações (rollbacks), linguagens de consultas (stored procedures) e gatilhos(triggers). A principal vantagem desta arquitetura é a divisão do processamento entre dois sistemas, o que reduz o tráfego de dados na rede.
Banco de Dados Distribuídos (N camadas): Nesta arquitetura, a informação está distribuída em diversos servidores. Como exemplo, observe a abaixo. Cada servidor atua como no sistema cliente-servidor, porém as consultas oriundas dos aplicativos são feitas para qualquer servidor indistintamente. Caso a informação solicitada seja mantida por outro servidor ou servidores, o sistema encarrega-se de obter a informação necessária, de maneira transparente para o aplicativo, que passa a atuar consultando a rede, independente de conhecer seus servidores. Exemplos típicos são as bases de dados corporativas, em que o volume de informação é muito grande e, por isso, deve ser distribuído em diversos servidores. Porém, não é dependente de aspectos lógicos de carga de acesso aos dados, ou base de dados fracamente acopladas, em que uma informação solicitada vai sendo coletada numa propagação da consulta numa cadeia de servidores. A característica básica é a existência de diversos programas aplicativos consultando a rede para acessar os dados necessários, porém, sem o conhecimento explícito de quais servidores dispõem desses dados.
Arquitetura Três Esquemas:
A principal meta da arquitetura “três esquemas” é separar as aplicações do usuário do banco de dados físico. Os esquemas podem ser definidos como:
· nível interno: ou esquema interno, o qual descreve a estrutura de armazenamento físico do banco de dados; utiliza um modelo de dados e descreve detalhadamente os dados armazenados e os caminhos de acesso ao banco de dados;
· nível conceitual: ou esquema conceitual, o qual descreve a estrutura do banco de dados como um todo; é uma descrição global do banco de dados, que não fornece detalhes do modo como os dados estão fisicamente armazenados;
· nível externo: ou esquema de visão, o qual descreve as visões do banco de dados para um grupo de usuários; cada visão descreve quais porções do banco de dados um grupo de usuários terá acesso.