terça-feira, 1 de dezembro de 2009

Comandos e Conceitos do SQL

1) O que significa a sigla SQL? Qual a finalidade dessa linguagem? Como ela se divide? Quais são os comandos principais de cada divisão? Explique-os resumidamente.

Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é uma linguagem de pesquisa declarativa para banco de dados relacional.Surgiu para padronizar a manipulação dos dados do BD. É dividida em:

DML - Linguagem de Manipulação de Dados
Primeiro há os elementos da DML (Data Manipulation Language - Linguagem de Manipulação de Dados). A DML é um subconjunto da linguagem usada para inserir, atualizar e apagar dados.
INSERT, UPDATE, DELETE

DDL - Linguagem de Definição de Dados
O segundo grupo é a DDL (Data Definition Language - Linguagem de Definição de Dados). Uma DDL permite ao utilizador definir tabelas novas e elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias no DDL.
CREATE, DROP

DCL - Linguagem de Controle de Dados
O terceiro grupo é o DCL (Data Control Language - Linguagem de Controle de Dados). DCL controla os aspectos de autorização de dados e licenças de usuários para controlar quem tem acesso para ver ou manipular dados dentro do banco de dados.
GRANT, REVOKE

DTL - Linguagem de Transação de Dados
BEGIN WORK, COMMIT, ROLLBACK

DQL - Linguagem de Consulta de Dados
Embora tenha apenas um comando, a DQL é a parte da SQL mais utilizada. O comando SELECT permite ao usuário especificar uma consulta ("query") como uma descrição do resultado desejado. Esse comando é composto de várias cláusulas e opções, possibilitando elaborar consultas das mais simples às mais elaboradas.
FROM, WHERE, GROUP BY, HAVING, ORDER BY, DISTINCT.


2) Quais são os tipos de dados que a linguagem SQL padrão (ANSI) suporta? Explique cada um resumidamente.


Os dados podem ser armazenados em diferentes tipos, o tipo define as operações que poder ser executadas com determinado dado. Os tipos no SQL são:

Inteiros: integer, int, smallint e tinyint;
Reais: float, double, real, numeric;
Caracteres: char;
Texto: varchar, text;
Data: date

3) Explique o comando SELECT. Sua sintaxe, características básicas, Cláusula Where, operadores, conectores, subconsultas, funções de agregação, cláusula order by, group by, having e compute by.

O comando SELECT Instrui o programa principal do banco de dados para retornar a informação como um conjunto de registros.
Para executar esta operação, o programa principal de banco de dados procura a tabela ou tabelas especificadas, extrai as colunas escolhidas, seleciona as linhas que satisfazem o critério e classifica ou agrupa as linhas resultantes na ordem especificada.


Sintaxe

SELECT [predicado { * tabela.* [tabela.]campo1 [AS alias1] [, [tabela.]campo2 [AS alias2] [, ...]]}
FROM expressãotabela [, ...] [IN bancodedadosexterno]
[WHERE... ]
[GROUP BY... ]
[HAVING... ]
[ORDER BY... ]
[WITH OWNERACCESS OPTION]

WHERE – Utilizada para especificar as condições que devem reunir os registros que serão selecionados.

GROUP BY – Utilizada para separar os registros selecionados em grupos específicos.

HAVING – Utilizada para expressar a condição que deve satisfazer cada grupo.

ORDER BY – Utilizada para ordenar os registros selecionados com uma ordem especifica.

Funções de Agregação
As funções de soma se usam dentro de uma cláusula SELECT em grupos de registros para devolver um único valor que se aplica a um grupo de registros.

AVG – Utilizada para calcular a media dos valores de um campo determinado.

COUNT – Utilizada para devolver o número de registros da seleção.

SUM – Utilizada para devolver a soma de todos os valores de um campo determinado.

MAX – Utilizada para devolver o valor mais alto de um campo especificado.

MIN – Utilizada para devolver o valor mais baixo de um campo especificado.

Operadores Lógicos
AND – E lógico. Avalia as condições e devolve um valor verdadeiro caso ambos sejam corretos.
OR – OU lógico. Avalia as condições e devolve um valor verdadeiro se algum for correto.
NOT – Negação lógica. Devolve o valor contrário da expressão.

Operadores Relacionais

< – Menor que
> – Maior que
<> – Diferente de
<= – Menor ou Igual que
>= – Maior ou Igual que
= – Igual a

BETWEEN – Utilizado para especificar um intervalo de valores.

LIKE – Utilizado na comparação de um modelo e para especificar registros de um banco de
dados."Like" + extensão % vai significar buscar todos resultados com o mesmo início da extensão.



4) O que é uma visão (view) em SQL? Explique suas propriedades, utilidades e os comandos para a sua manipulação.


Uma view é uma maneira alternativa de observação de dados de uma ou mais entidades (tabelas), que compõem uma base de dados. Pode ser considerada como uma tabela virtual ou uma consulta armazenada. Geralmente e recomendável, uma view, implementada encapsulando uma instrução SELECT (busca de dados para exposição), guarda os dados em uma tabela virtual, armazenando também em cache, pois todas as consultas ao banco, encapsuladas ou não, ao serem executadas, são armazenadas em cache. Por este motivo, pode ser mais rápido ter uma consulta armazenada em forma de view, em vez de ter que retrabalhar uma instrução.
O comando para criar uma view é o CREATE VIEW.


5) O que são procedimentos armazenados (stored procedure)? Para que servem, o que eles permite fazer e quais comandos podemos utilizar no seu corpo e para criá-los?

Stored Procedure é um conjunto de comandos, ao qual é atribuído um nome. Este conjunto fica armazenado no Banco de Dados e pode ser chamado a qualquer momento tanto pelo SGBD (sistema Gerenciador de Banco de Dados) quanto por um sistema que faz interface com o mesmo. A utilização de Stored Procedures é uma técnica eficiente de executarmos operações repetitivas. Ao invés de digitar os comandos cada vez que determinada operação necessite ser executada

CREATE PROCEDURE nome_do_stored_procedure[ {@parametro tipo_de_dados_parametro}[=valor_default] [output] ][,...n]AS comando1, comando2, comando3, ..., comando2GO.

6) O que são gatilhos (TRIGGERS)? Para que servem, quais as vantagens na sua utilização, como funcionam e como criá-los?

Um Trigger é bloco de comandos Transact-SQL que é automaticamente executado quando um comando INSERT , DELETE ou UPDATE for executado em uma tabela do banco de dados.
Os Triggers são usados para realizar tarefas relacionadas com validações , restrições de acesso , rotinas de segurança e consistência de dados ; desta forma estes controles deixam de ser executados pela aplicação e passam a ser executados pelos Triggers em determinadas situações :
Mecanismos de validação envolvendo múltiplas tabelas
Criação de contéudo de uma coluna derivada de outras colunas da tabela
Realizar análise e e atualizações em outras tabelas com base em alterações e/ou incluções da tabela atual
A criação de um Trigger envolve duas etapas :
Um comando SQL que vai disparar o Trigger ( INSERT , DELETE , UPDATE)
A ação que o Trigger vai executar ( Geralmente um bloco de códigos SQL )
Podemos criar um Trigger usando o comando Create Trigger

Normalização

1) Quais são as diretrizes informais para o projeto de esquema de relações? Explique resumidamente cada uma.

Diretriz 1ª - Projetar um esquema de relação de maneira que seja simples descrever seu significado. Normalmente, isso significa que não se pode combinar atributos de múltiplos tipos de entidades e tipos de relacionamentos numa simples relação. Intuitivamente, se um esquema de relação corresponde a um tipo de entidade ou tipo de relacionamento, o significado tende a ser claro. Por outro lado, tende ser uma mistura de múltiplas entidades e relacionamentos e, assim, semanticamente não-clara.

Diretriz 2ª - Projetar esquemas de relações de maneira que nenhuma anomalia de alteração ocorra em relações. Se existir alguma anomalia, isso deverá ser considerado para que as modificações pelos programas ocorram corretamente.

Diretriz 3ª - Tanto quanto possível, evite colocar atributos em um esquema de relação base
cujos valores possam ser null. Se for inevitável os valores nulls, esteja seguro que eles se apliquem apenas em casos excepcionais e não se apliquem na maioria das tuplas da relação.

Diretriz 4ª - Projetar esquemas de relações tal que, quando aplicadas operações JOINNATURAIS, os atributos nas condições-joins envolvam atributos que sejam ou chavesprimárias ou chaves-estrangeiras de maneira a garantir que nenhuma tupla espúria seja gerada.



2) Quais são as métricas de qualidade informal para projeto de esquemas de relações? Explique resumidamente cada uma delas.

- Semântica de atributos – verifica se o atributo caracteriza (pertence) mesmo aquela entidade;

- Redução de valores redundantes em tuplas – verifica se o atributos geram redundância e portanto desperdício de espaço;

- Redução de valores nulos 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 (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

Uma dependência funcional é uma restrição entre dois conjuntos de atributos de uma base de dados.
Dados os atributos “A” e “B” de uma entidade, diz-se que “B” é funcionalmente dependente de “A” se e somente se, a cada valor de “A” está associado um único
valor de “B”.

Dependência Funcional Composta
Dado um atributo ou um conjunto de atributos “B” de uma entidade, sendo a chave composta por um conjunto de atributos “A”, diz-se que “B” é completamente dependente
funcional da chave primária, se e somente se, a cada valor da chave (e não a parte dele), está associado um valor para cada atributo do conjunto “B”.

Dependência Funcional Transitiva
Dados os atributos “A”, “B” e “C” de uma entidade, sendo “A” a chave, diz-se que “B” e “C” são dependentes transitivos se e somente se, forem funcionalmente dependente de “A”
além de existir uma dependência funcional entre eles.


4) O que é e para que serve normalização de dados relacionais? Quando será utilizada a normalização na maioria das vezes?

Normalização é o processo pelo qual transformamos um Banco de Dados fora do padrão do M-Rel, num BD normalizado (dentro do padrão M-Rel). Normalmente é usado em Banco de Dados antigos ou criados por pessoas não técnicas.


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 que?

Primeira Forma Normal (1FN)
Uma relação está na 1ª forma normal (1FN) quando:
- os domínios de todos os atributos consistem apenas em valores atômicos;
- não existem subgrupos de atributos repetidos.
Passagem de uma entidade à 1FN:
- Eliminar subgrupos repetidos, decompondo a relação em duas (ou mais) relações.


Segunda Forma Normal (2FN)
Uma relação está na 2ª forma normal (2FN) quando:
- estiver na 1FN;
- todos os atributos que não pertencem à chave dependem de toda a chave (e não de um subconjunto da chave).
Passagem de uma relação à 2FN:
- Separa os atributos que dependem de um subconjunto da chave, decompondo a relação em duas (ou mais) relações.


Terceira Forma Normal (3FN)
Uma relação está na 3ª forma normal (3FN) quando:
- estiver na 2FN;
- os atributos que não pertencem à chave não dependem de nenhum atributo que também não pertence à chave.
Passagem de uma relação à 3 FN:
- Separar os atributos que dependem de outro atributo não pertencente à chave, decompondo a relação em duas (ou mais) relações.

Forma Normal Boyce Codd
Caso especial 3FN é usada quando tem-se uma relação com varias chaves candidatas. Seu conceito diz que a relação está FNBC quando todo o determinante da relação for uma chave-candidata.

Quarta Forma Normal (4FN)
Uma relação está na 4ª forma normal (4FN) quando:
- estiver na 3FN;
- deve-se separar os atributos multidependentes.

Quinta Forma Normal (5FN)
São raros os casos de se necessitar da 5 ª FN pois a sua aplicação pode implicar em relações inválidas.

O SGBD para além de implementar o modelo de dados de um universo, deverá considerar alguns aspectos que permitem melhorias na utilização do sistema.
Trata-se de estabelecer um compromisso entre a flexibilidade do sistema e a viabilidade da sua utilização.
Pretende-se um esquema equilibrado que não ponha em risco a integridade da BD, mas que, simultane-amente, tenha um desempenho razoável. Por essa razão, na maioria dos casos, o processo de norma-lização pára na 3FN.


6) Dê exemplos de normalizações de uma relação.
Exemplo - Normalização de BDR


Exemplo Prático

Considere que um analista mapeou a nota para o seguinte esquema relacional:
nota_fiscal = {num_nota, cod_cliente, nome_cliente, logradouro_cliente,
telefone_cliente, data_nota_fiscal, (cod_produto, desc_produto, qtdade,
valor_produto, valor_total)}
Ao analisarmos esta relação, notamos que mesma causará problemas de
inconsistência de dados. Bem, para evitarmos futuros problemas, vamos
aplicar as formas normais e corrigir erros na relação.

Primeira forma normal:
A relação não está na 1FN pois existem atributos mutivalorados e compostos.
Vamos então passar para a 1FN:
nota_fiscal = {num_nota, cod_cliente, rua_cliente, bairro_cliente, cep_cliente,
cidade_cliente, telefone_cliente,data_nota_fiscal}

nota_produto = {num_nota, cod_produto, desc_produto, qtdade, valor_produto,
valor_total}

2. Segunda forma normal:
A relação não está na 2FN pois existem atributos com dependência parcial da
chave primária:

nota_fiscal = {num_nota, cod_cliente, rua_cliente, bairro_cliente, cep_cliente,
cidade_cliente, telefone_cliente, data_nota_fiscal}

nota_produto = {num_nota, cod_produto, qtdade, valor_total}

produto = {cod_produto, desc_produto, valor_produto}

3. Terceira forma normal:
A relação não está na 3FN pois existem atributos com dependência transitiva:

nota_fiscal = {num_nota, cod_cliente, data_nota_fiscal}

cliente = {cod_cliente, rua_cliente, bairro_cliente, cep_cliente, cidade_cliente,
telefone_cliente}

nota_produto = {num_nota, cod_produto, qtdade, valor_total}

produto = {cod_produto, desc_produto, valor_produto}

domingo, 29 de novembro de 2009

Algebra 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 poderá ser definida como o conjunto de operações que são necessárias efetuar para manipular relações.
Qualquer operação em álgebra relacional dará origem a uma nova relação, que poderá ser novamente manipulada.
A álgebra relacional é uma linguagem de interrogação procedimental, dado que o utilizador dá instruções para o sistema executar uma seqüência de operações na base de dados, para calcular o resultado esperado.

Operações sobre conjunto
União (U)
Intersecção(∩)
Diferença ( - )
Produto Cartesiano ( x )

Específicos de Álgebra Relacional
Seleção (σ)
Projeção (π)
Junção( x )

Divisão (÷)

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 σ (). Na condição de seleção podemos colocar qualquer expressão booleana que envolva constantes, nomes de atributo da relação e comparações com >, < e = e podemos juntar expressões com OR, AND e NOT. Note que o operador é unário e que a relação resultante tem sempre um número menor ou igual de tuplas que a relação original. SELECT é um operador comutativo.

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 (R)
- atributos_agrupados>
Lista de atributos de R

Lista de pares

SUM, AVERAGE, MAXIMUM, MINIMUM, COUNT

Atributo de R




quarta-feira, 30 de setembro de 2009

quinta-feira, 10 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 MER é um Modelo Conceitual. Pode ser usado para especificar conceitualmente a estrutura de dados de uma aplicação. .
O Modelo Relacional é um Modelo Lógico (porém bem próximo ao físico). É uma descrição de um banco de dados no nível de abstração visto pelo usuário do SGBD. Assim, o modelo lógico é dependente do tipo particular de SGBD que está sendo usado.
O Mapeamento permite que se traduzam os esquemas concebidos com um modelo de conteúdo semântico mais alto para uma implementação utilizando um modelo lógico (ou físico).
O Mapeamento do MER para o Mod. Relacional (MR) é um procedimento executado em alguns passos consecutivos apresentados a seguir.



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

Os bancos de dados mudam através do tempo à medida que informações são inseridas ou apagadas. A coleção de informações armazenadas no banco de dados em um determinado momento é chamada de instância do banco de dados. O projeto geral do banco de dados é chamado de esquema de banco de dados. Os esquemas não mudam com freqüência.

O conceito de um esquema de banco de dados corresponde à noção de declaração de tipo em linguagens de programação. Uma variável de um dado tipo tem um valor particular em um determinado instante do tempo. Assim o conceito de valor de uma variável na linguagem de programação corresponde ao conceito de uma instância de um esquema de banco de dados.

O Domínio de um atributo é, em geral, um tipo de dado que especifica o que o atributo pode receber.
É um conjunto de valores atômicos.
Valor Atômico signica um valor indivisível e monovalorado.


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

Uma superchave é um conjunto de um ou mais atributos que, tomando coletivamente, permite-nos identificar unicamente uma entidade no conjunto de entidades. Por exemplo, o atributo seguridade-social do conjunto de entidades cliente é suficiente para distinguir uma entidade cliente das outras. Desta forma, seguridade-social é uma superchave. De forma semelhante, a combinação nome-cliente e seguridade-social é uma superchave para o conjunto de entidades cliente. O atributo nome-cliente de cliente não é uma superchave, pois diversas pessoas podem ter o mesmo nome.
Chave candidata (CK) – atributo ou conjunto de atributos de uma mesma relação que identifica, de maneira inequívoca, uma linha da tabela.

Chave Estrangeira (Integridade Referencial) - chave primária de uma tabela colocada como atributo em outra para permitir o relacionamento entre elas. A existência de uma chave estrangeira representa um relacionamento entre tabelas.
Exemplo:
Curso={Cod_Cur, Nome, Qtidade_Max_Aluno}
Aluno={RA, Nome, Endereco, Idade, Num_Curso}

Se (Cod_Cur) é Chave Primária de Curso, então (Num_Curso) é Chave Estrangeira em Aluno.
Importante: A chave estrangeira pode ter o valor NULO. Não existe uma representação formal para chave estrangeira. Normalmente, identifica-se com a sigla FK (Foreign Key) na frente de cada campo.




4) Explique o conceito de integridade no MRel.

Restrições de Integridade
São regras a respeito dos valores que podem ser armazenados nas relações
que devem ser sempre satisfeitas. Existem três regras que são consideradas
necessárias a uma base de dados relacional:
Restrição de Integridade da Chave;
Restrição de Integridade da Entidade;
Restrição de Integridade Referencial.


5) Explique o conceito de integridade referencial no MRel.

A restrição de 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.


6) Explique os conceitos de Intenção e Extensão no MRel. Quais são as operações de atualização sobre relações?

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.

segunda-feira, 31 de agosto de 2009

DER – Diagrama Entidade Relacionamento

1)Cadastro Nacional de Veiculos




2) Biblioteca





3) Controle de Estoque






4)Empresa de flores





5)Apuração Eleitoral




6)Concurso Público


terça-feira, 25 de agosto de 2009

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.

Baseia-se na percepção do mundo real que consiste em um conjunto de objetos básicos chamados entidades e nos relacionamentos entre estes objetos.
Foi desenvolvido para facilitar o projeto de banco de dados permitindo a especificação de um esquema de empresa.
Tal esquema representa a estrutura lógica geral do banco de dados. O modelo serve para a representação das estruturas das informações, não contendo uma linguagem para a representação das manipulações. Atualmente, o MER é usado principalmente durante o processo de projeto da base de dados.
Existem expectativas para que uma classe de SGBD’s baseados diretamente no MER esteja disponível no futuro.



2)Explique e comente o conceito de entidades e atributos.

O objeto básico que o MER representa é a entidade Uma Entidade é uma representação abstrata de um “objeto” do mundo real. Uma entidade pode ser um objeto com uma existência física - uma pessoa, carro ou empregado - ou pode ser um objeto com existência conceitual - uma companhia, um trabalho ou um curso universitário. Cada entidade tem propriedades particulares, chamadas atributos, que determinam as características particulares de cada entidade. Por exemplo: a entidade Funcionários pode possuir os seguintes atributos: cpf, nome, bairro, cidade. A entidade Livros pode possuir os seguintes atributos: título, autor, editora.



3)Explique e comente o conceito de relacionamento.

Um relacionamento é uma associação entre uma ou várias entidades. Por exemplo, um relacionamento ContaCliente associa um cliente a cada conta que ele possui. O conjunto de todas as entidades de um mesmo tipo e o conjunto de relacionamentos do mesmo tipo são denominados conjuntos de entidades e conjuntos de relacionamentos, respectivamente.
Em acréscimo a entidades e relacionamentos, o modelo ER representa certas restrições com os quais os conteúdos de bancos de dados precisam estar de acordo. Uma restrição importante é o mapeamento de cardinalidade (ou multiplicidade de um conjunto de relacionamentos) que expressa o número de entidades ao qual outra entidade pode estar associada via um conjunto de relacionamentos.
Um conjunto de relacionamentos é a relação matemática com n ≥ 2 conjuntos de entidades. Se E1, E2, ..., En são conjuntos de entidades então um conjunto de relacionamentos é um subconjunto de relacionamento.




4) Explique e comente o conceito de atributo-chave.

O atributo chave está contido na tupla de forma a personalizá-la individualmente (unicidade), nos possibilitando identificar desta maneira, cada entidade de um conjunto entidade, evitando-se a redundância de dados e facilitando a busca das informações através da criação de índices.
Os tipos mais usados de chaves são:

*Chave Primária (PK - Primary Key) identifica cada registro de uma tabela, dando-lhe unicidade. A chave primária nunca se repetirá.

*Chave Secundária (FK - Foreign Key) é formada através de um relacionamento com a chave primária de outra tabela. Define um relacionamento entre as tabelas e pode ocorrer repetidas vezes.




5) Explique o conceito do DER e a sua importância no relacionamento entre os profissionais da informática e os demais profissionais.

O Diagrama Entidade Relacionamento é composto por um conjunto de objetos gráficos e expressa a estrutura lógica geral de um banco dados. Através dele o analista tem uma visão de alto nível dos relacionamentos entre as tabelas. Este fato também permite o contato com os profissionais de outras áreas, pois por ser uma linguagem gráfica abstrai-se dos conceitos puramente computacionais, facilitando seu entendimento, estrutura e funcionamento pelos demais profissionais.



6) Dê ou faça um exemplo de um DER e explique o mesmo.

Uma entidade (ME) possui um conjunto de atributos que a compõem. Esses atributos correspondem aos campos dispostos na ME. Esses atributos possuem pseudônimos para facilitar a fase da programação como, por exemplo:

Código do cliente => codaluno Pseudônimo
Registro Acadêmico Aluno => ra_alu







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.

quarta-feira, 19 de agosto de 2009

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.

Desvantagens desta forma de processamento:

REDUNDÂNCIA NÃO CONTROLADA DE DADOS
Redundância não controlada ocorre quando o mesmo objeto da realidade é múltiplas vezes representado na base de dados e não há gerência automática da redundância.
Redundância leva a inconsistência dos dados (dados não representam corretamente a realidade).

DIFICULDADE DE ACESSO
Dados são acessíveis apenas via programas. Necessidades de informações eventuais (tomada de decisões) são
dificilmente atendidas.

ESTRUTURA DE DADOS PROJETADA PARA ATENDER APLICAÇÕES ESPECÍFICAS
Difícil acesso aos dados. Difícil integração entre aplicações que usem dados projetados para outras aplicações.

ACESSO CONCORRENTE DIFICULTADO
Mecanismos de acesso concorrente tem que ser implementados na aplicação => Risco de Inconsistências.

MECANISMOS DE RECUPERAÇÃO DE ERROS MANUAIS
A recuperação dos arquivos em caso de erros (software, interrupção de processamento, falha no meio de armazenamento) tem que ser implementada na aplicação.

VERIFICAÇÃO DE RESTRIÇÕES DE INTEGRIDADE É DIFÍCIL
Restrições de integridades são regras que devem ser obedecidas pela base de dados para serem consideradas corretas (ex.: o curso em que o aluno está inscrito deve estar na base de dados e ser ativo). Restrições de integridades devem ser verificadas por cada aplicação que altera a base de dados. Dados devem estar acessíveis para verificar Restrições de integridades.No processamento de dados sem Banco de Dados, os registros permanentes são armazenados em arquivos Convencionais e as aplicações acessam os arquivos.



2) O que é e como funcionam os SBGD? Explique a evolução dos arquivos, passando pelo BD até SGBD.

Sistema de gerenciamento de bancos de dados é um software que provê a interface entre os dados de baixo nível armazenados num banco de dados e os usuários e aplicações que desejam acessá-los e/ou manipulá-los.
O usuário emite uma solicitação de acesso. O SGBD intercepta a solicitação e a analisa.
Inspeciona os esquemas externos (ou subesquemas) relacionados àquele usuário, os mapeamentos entre os três níveis, e a definição da estrutura de armazenamento e realiza as operações solicitadas no banco de dados armazenado.

Antes de SGBDs as aplicações utilizavam sistemas de arquivos do Sistema Operacional. Através de arquivos, as aplicações armazenavam seus dados através das interações com a aplicação. Algumas funcionalidades oferecidas eram

1. Registros tam. fixo com campos de tipos diferentes
2. Possibilidade de memória virtual e persistência
3. Índices: hash, árvore-B
4. Bloqueio de arquivo e registro para concorrência

Os SGBDs dos anos 70 ofereciam as seguintes
funcionalidades adicionais:
1. Identificadores de registros com acesso estruturado
através de redes de registros
2. Acesso a vários arquivos indexados simultaneamente
compondo uma base de dados única
3. Proteção - restrições de acesso a pessoas ou programas
autorizados
4. Transações - reconstrução, concorrência e consistência

O SGBD dos anos 80 (Relacional) oferece as seguintes
funcionalidades adicionais:
1. Linguagem de Consulta com operações de manipulação de
dados e ferramentas para desenvolvimento de aplicações
2. Independência de dados



3) Quais são os tipos de conexão existentes com BD? Explique-as.

Conexões lógicas ao Banco de Dados
TIME SHARING
Estações dos usuários não possuem inteligência e tipicamente são terminais alfanuméricos.
Toda a aplicação é executada no servidor, inclusive o SGDB.
Existe um alto overhead de comunicação.
O acesso remoto é simplificado através de linhas dedicadas.
Não é escalável.


SERVIDOR DE ARQUIVOS
As estações de trabalho são inteligentes.
Toda a aplicação é executada na estação, inclusive o SGBD.
Todos os arquivos residem no servidor e transitam pela rede quando são acessados.
O tráfego da rede é proporcional ao número de estações.
É mais escalável do que a conexão anterior, porém apresenta problemas com
Relação ao tamanho do BD devido ao tráfego de dados pela rede.


CLIENTE-SERVIDOR
O SGBD é residente e executado no servidor;
As estações são inteligentes, possuem alta capacidade de processamento.
A aplicação é dividida entre a estação (cliente) e o SGBD.
O SGBD executa comandos SQL, vindos dos clientes, e apenas os resultados desses comandos trafegam pela rede.
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.
É difícil atualizar aplicações nas estações clientes.
Estações clientes não devem guardar dados corporativos por razões de
segurança.
O acesso remoto pode ser complexo. Esse problema foi minorado recentemente com a disponibilização de Intranets.
Integridade, segurança e backup da BD devem ter procedimentos semelhantes aos de mainframes.
Ajuste do sistema.


SERVIDOR DE APLICAÇÕES
Concentra a aplicação numa única máquina, o servidor de aplicações, que recebe os pedidos dos clientes e os dirige ao SGBD.
Combina todas as vantagens da arquitetura cliente-servidor e elimina a principal desvantagem referente a atualização da aplicação.
Propicia sigilo do código da aplicação, agora residente numa máquina fisicamente controlada.
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.


SERVIDOR 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 requerido no cliente é um navegador padrão.
Apresenta problemas no que se refere a diferentes graus de resolução gráfica.



4) Quais são os modelos de dados existentes? Explique-os.

Modelo Hierárquico: os dados são classificados hierarquicamente, de acordo com uma arborescência descendente. Este modelo utiliza apontadores entre os diferentes registros. Trata-se do primeiro modelo de SGBD.








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.