quarta-feira, 21 de novembro de 2012

Trabalho Final

BDI

Trabalho - (link para arquivo)


Faculdade de Educação São Luís - Jaboticabal/SP
Curso de Sistemas de Informação - 6º. Semestre


Integrantes do grupo do Trabalho Final
Fábio Anselmo de Moraes
Gildo Júnior
Junio Pimentel
Richard Nabuco
Vinicius Rafael

segunda-feira, 19 de novembro de 2012

COMANDOS E CONCEITOS DO SQL

01 - 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.

R: A sigla SQL significa Structured Query Language, ou Linguagem de Consulta Estruturada. SQL apresenta uma série de comandos que permitem à definição dos dados (chamada DDL – Data Definition Language), que é composta, entre outros, pelos comandos CREATE, que é destinado a criação do Banco de Dados, das Tabelas que o compõe, além das relações existentes entre as tabelas. Ela é dividida em:

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

INSERT é usada para inserir um registro (formalmente uma tupla) a uma tabela existente.
UPDATE para mudar os valores de dados em uma ou mais linhas da tabela existente.
DELETE permite remover linhas existentes de uma tabela.

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 -  cria um objeto (uma Tabela, por exemplo) dentro da base de dados.
DROP - apaga um objeto do banco de dados.

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.

Duas palavras-chaves da DCL:

GRANT - autoriza ao usuário executar ou setar operações.
REVOKE - remove ou restringe a capacidade de um usuário de executar operações.
Outros comandos DCL:

ALTER PASSWORD
CREATE SYNONYM
DTL - Linguagem de Transação de Dados

BEGIN WORK (ou START TRANSACTION, dependendo do dialeto SQL) pode ser usado para marcar o começo de uma transação de banco de dados que pode ser completada ou não.
COMMIT envia todos os dados das mudanças permanentemente.
ROLLBACK faz com que as mudanças nos dados existentes desde que o último COMMIT ou ROLLBACK sejam descartadas.

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.


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


R: TINYINT: Valores numéricos inteiros variando de 0 até 256

SMALLINT: Valores numéricos inteiros variando de –32.768 até 32.767

INT: Valores numéricos inteiros variando de -2.147.483.648 até 2.147.483.647

BIGINT: Valores numéricos inteiros variando de –92.23.372.036.854.775.808 até 9.223.372.036.854.775.807

BIT: Somente pode assumir os valores 0 ou 1. Utilizado para armazenar valores lógicos.

DECIMAL(I,D) e NUMERIC(I,D): Armazenam valores numéricos inteiros com casas decimais utilizando precisão. I deve ser substituído pela quantidade de dígitos total do número e D deve ser substituído pela quantidade de dígitos da parte decimal (após a vírgula). DECIMAL e NUMERIC possuem a mesma funcionalidade, porém DECIMAL faz parte do padrão ANSI e NUMERIC é mantido por compatibilidade.

SMALLMONEY: Valores numéricos decimais variando de -214.748,3648 até 214.748,3647

MONEY: Valores numéricos decimais variando de -922.337.203.685.477,5808 até 922.337.203.685.477,5807

REAL: Valores numéricos aproximados com precisão de ponto flutuante, indo de -3.40E + 38 até 3.40E + 38

FLOAT: Valores numéricos aproximados com precisão de ponto flutuante, indo de -1.79E + 308 até 1.79E + 308

SMALLDATETIME: Armazena hora e data variando de 1 de janeiro de 1900 até 6 de junho de 2079. A precisão de hora é armazenada até os segundos.

DATETIME: Armazena hora e data variando de 1 de janeiro de 1753 até 31 de Dezembro de 9999. A precisão de hora é armazenada até os centésimos de segundos.

CHAR(N): Armazena N caracteres fixos (até 8.000) no formato não Unicode. Se a quantidade de caracteres armazenada no campo for menor que o tamanho total especificado em N, o resto do campo é preenchido com espaços em branco.

VARCHAR(N): Armazena N caracteres (até 8.000) no formato não Unicode. Se a quantidade de caracteres armazenada no campo for menor que o tamanho total especificado em N, o resto do campo não é preenchido.

TEXT: Armazena caracteres (até 2.147.483.647) no formato não Unicode. Se a quantidade de caracteres armazenada no campo for menor que 2.147.483.647, o resto do campo não é preenchido. Procure não utilizar este tipo de dado diretamente, pois existem funções específicas para trabalhar com este tipo de dado.

NCHAR(N): Armazenam N caracteres fixos (até 4.000) no formato Unicode. Se a quantidade de caracteres armazenada no campo for menor que o tamanho total especificado em N, o resto do campo é preenchido com espaços em branco.

NVARCHAR(N): Armazenam N caracteres (até 4.000) no formato Unicode. Se a quantidade de caracteres armazenada no campo for menor que o tamanho total especificado em N, o resto do campo não é preenchido.

NTEXT: Armazena caracteres (até 1.073.741.823) no formato Unicode. Se a quantidade de caracteres armazenada no campo for menor que 1.073.741.823, o resto do campo não é preenchido. Procure não utilizar este tipo de dado diretamente, pois existem funções específicas para trabalhar com este tipo de dado.


03 - 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.


R: SELECT é usada para selecionar um subconjunto de tuplas de uma relação as quais devem satisfazer uma condição de seleção.

SELECT {A1, A2,..., AN | * } FROM R1, R2, ...,RN WHERE P

EQUIVALE A

ΠA1, A2,..., AN (ΣP (R1 X R2 X...X RN))

ONDE CADA AI REPRESENTA UM ATRIBUTO E CADA RI É UMA RELAÇÃO.

Caso a cláusula where seja omitida, o predicado P é verdadeiro. A lista A1, A2,..., An de atributos pode ser substituída por um asterisco (*) para selecionar todos os atributos de todas as relações presentes na cláusula from.


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



R: Uma visão(view) é qualquer relação que não faz parte do modelo lógico do banco de dados, mas é visível ao usuário. Sua propriedade da visão é composta com linhas e colunas como se fosse uma tabela real, a utilidade esta ligada ao aumento de segurança obtendo assim uma visão limitada e controlada dos dados que podem ser obtidos e a performance que utilizada consulta otimizada.


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


R: São procedimentos executados no servidor, ele serve como dispensamento de banco de dados eles permitem encapsular tarefas repetitivas aceita parâmetros de entrada e retorno um valor de status o que acaba reduzindo o trafego na rede e melhorando a performance.
 Comandos utilizados:
Create procedure busca
@nomedebusca varchar(50)
as
select nome1,nome2
from nome_da tabela
where nome = @nomebusca


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


R: Os Gatilhos ou TRIGGERS são maneiras para executar um programa quando o evento associado ocorrer, ela mantém a consistência dos dados ou então propaga as alterações de dados de uma tabela para outras, sua vantagem é que quando ocorrer alguma alteração na tabela ele é disparado e deixa gravadas todas as informações do usuário que fez a alteração, eles são criados e funcionam da seguinte forma:
CREATE TRIGGER nome_do_gatilho ON dono.nome_da_tabela
FOR INSERT (ou UPDATE OU DELETE)
As
Código da execução



NORMALIZAÇÃO

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

R:
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 chaves primárias ou chaves-estrangeiras de maneira a garantir que nenhuma tupla espúria seja gerada.


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


R:
Semântica de atributos : Assume-se que um certo significado esteja associado aos atributos, para todo agrupamento de atributos que formam uma relação esquema. Intuitivamente, verifica-se que cada relação pode ser interpretada como um conjunto de fatos ou declarações. Este significado, ou semântica, especifica como podem ser interpretados os valores de atributos armazenados em uma tupla da relação, em outras palavras, como os valores de atributos estão relacionados uns com os outros. Em geral, é mais simples descrever a semântica de relações, ao invés da semântica de atributos de uma relação.

Redução de valores redundantes em tuplas: Uma das metas do projeto de esquemas é a minimização do espaço de armazenamento que relações da base ocupam. O agrupamento de atributos em esquemas de relações tem um efeito significativo no espaço de armazenamento.

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.
Em alguns projetos de esquemas pode-se agrupar atributos em uma “grande” relação. Se muitos atributos não se aplicarem a todas as tuplas da relação, ter-se-á muitos valores nulls na relação. Isto pode despender espaço armazenamento e pode também trazer problemas de entendimento do significado dos atributos na especificação de operações JOIN´s. Um outro problema com valores nulls é que não se pode contá-los quando operações de agregação, tais como COUNT ou SUM são aplicadas. Mais que isso, os valores nulls podem ter múltiplas interpretações, tais como:
  • O atributo pode não se aplicar a tupla.
  • O valor de atributo para a tupla é desconhecido.
  • O valor é conhecido, porém não foi registrado ainda.
Não permissão de tuplas espúrias: Tabelas degeneradas, quando relacionadas poder gerar nformações / dados errôneos, isto é, tuplas espúrias.


03 - O que é e para que serve o conceito de dependência funcional? Quais são os tipos de dependência? Explique-os.


R: 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.
A noção de dependência funcional generaliza a noção de super chave. Para existir o destino (dependência à chave estrangeira) tem que exitir a origem (chave primária). O atributo deve realmente caracterizar na relação.


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


R:Normalização de dados relacionais é o processo de identificação dos agrupamentos necessários e da localização correta de cada atributo que consiste num conjunto de técnicas designadas, e ainda exercitar as definições relacionadas à normalização eliminando redundâncias e inconsistências de um banco de dados, com reorganização mínima dos dados:

  • Identificação das redundâncias e outros problemas
  • Reorganização do banco de dados
  • Reprojeto das aplicações

A normalização será utilizada quando houver redundâncias e a necessidade de reorganizar os dados, ela converte cada entidade gradualmente para Formas Normais através da aplicação sucessiva de regras que alteram o formato dos dados da 1 Forma Normal até a 5 Forma Normal.


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

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.


06 - Dê exemplos de normalizações de uma relação.


R: Normalização de banco de dados relacional

Objetivo:
Eliminar redundâncias e inconsistências de um banco de dados, com reorganização mínima dos dados

Sub-Fases:
• Identificação das redundâncias e outros problemas
• Reorganização do banco de dados
• Reprojeto das aplicações
  
Redundâncias e inconsistências em atributos:
– atributo com domínio enumerável
• representado sem controle
– atributo multivalorado
• representado sem normalização
– atributo pertencente a chave
• ocorre com valor nulo
– atributo redundante
• inferido ou materializado sem controle
  
Tratamento de atributo com domínio enumerável:
 – criar tabela definindo o domínio:
• valor
• descrição, se for o caso
 – uniformizar os valores
 – controlar atualizações

Exemplo de tratamento de atributo com domínio enumerável:
– TIPO_AREA em AREAESPECIAL






ÁLGEBRA RELACIONAL - EXERCÍCIOS

--> SELEÇÃO

01 - Mostre o conteúdo da relação departamento.
R: σ (Departamento).
 
02 - Mostre os empregados que trabalham no departamento 4.

R: σ (Ndep = 4) (Empregado). 
03 - Mostre a(s) localização(ões) do departamento de pesquisa (5).
R: σ (Dnome) (Departamento).
 
04 - Mostre o(s) projetos(s) do departamento 4.

R: σ (Projeto) (Departamento).
05 - Mostre as informações de relação trabalha_em cujo número do projeto igual a 3.
R: σ (Pnro = 3) (Trabalha_em).

--> PROJEÇÃO

01 - Mostre o número e o nome dos dependentes.

R: π NSSEMP, Nome dependente (Dependente).
02 - Mostre o nome e a localização dos projetos.

R: π Pnome, Plocalização (Projeto).
03 - Mostre o nome do departamento e o código do gerente dos departamentos.
R: π Dnome, Sunger (Departamento).
04 - Mostre o nome e a data de nascimento dos empregados.
R: π Pnome, DataNasc (Empregado).
05 - Mostre o nome e o salário dos empregados.
R: π Pnome, Salario (Empregado).

--> SELEÇÃO + PROJEÇÃO

01 - Mostre o código, nome e o salário dos empregados que ganham mais de 2500.
R: π NSS, Pnome, Salario (σ (Empregado) χ (Salario > 2500)).
02 -Mostre o nome e a localização dos projetos do departamento 5.
R: π Pnome, Plocalização (σ (Dnum = 5) χ (Projeto)).
 03 - Mostre o número do empregado e o número do projeto cujas horas são maiores que 10.
R: π NSSEMP, Pnro (σ (Horas > 10) χ (Trabalha_em)).
 04 - Mostre o nome e o sexo do dependente cujo número do empregado é igual a 123456789.
R: π Nomedependente, Sexo (σ (NSSEMP = 123456789) χ (Dependente)).
 05 - Mostre o nome, relação e a data do aniversário dos dependentes cujo número do empregado é igual a 333445555.
R: π Nomedependente, Relação, DataNasc (σ (NSSEMP = 333445555) χ (Dependente)).

--> JUNÇÃO

01 - Mostre o nome e o salário do empregado e o nome e a relação dos seus dependentes.
R: π Pnome, Salario, Nomedependente, Relação (Empregado χ NSS = NSSEMP Dependente). 

02 - Mostre o nome do departamento e o nome e o salário do empregado que é o seu gerente.
R: π Dnome, Pnome, Salario, SNNGER (Departamento χ Pnome = Salario SNNGER). 

03 - Mostre o nome do departamento e a sua localização.
R: π Dnome, D.Localização (Departamento D χ Dnumero = L.Dnumero Locais_Depto L). 

04 - Mostre o nome do projeto, sua localização e o departamento ao qual pertence.
R: π Pnome, PLocalização, Dnum (Projeto χ Pnome = PLocalização Dnum).

05 - Mostre o nome do empregado e o nome do projeto nos quais eles trabalharam.
R: π E. Pnome, P. Pnome (Empregado E χ ( E.NSS = NSSEMP Trabalha_em) χ
              (Pnro = Pnumero Projeto P)). 


--> AGREGAÇÃO

01 - Mostre a quantidade de empregados do sexo masculino e a quantidade de empregados do sexo feminino.
R: Sexo Á Count (Empregado). 

02 - Mostre a quantidade de dependentes do sexo masculino e a quantidade de dependentes do sexo feminino do empregado cujo número é 123456789.
R: Sexo Á Count (NSSEMP = 123456789) (Dependente). 

03 - Mostre o nome e o salário do empregado e a quantidade de dependentes que possui.
R: Pnome, Salario Á Count (Nomedependente) (Empregado χ NSS = NSSEMP Dependente).

04 - Mostre a despesa total de cada departamento com os salários dos empregados.
R: Ndep Á Count NSS, AVERAGE Salario (Empregado).

05 - Mostre a soma total das horas empregadas em cada projeto.
R: PNRO Á SUM NSSEMP, AVERAGE Horas (Trabalha_em).
 

quarta-feira, 14 de novembro de 2012

ÁLGEBRA RELACIONAL

01 - Quantos e Quais são os grupos nos quais a álgebra relacional está dividida? Identifique quais operações pertencem a cada um deles.

R: 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
  • Produto Cartesiano

Operadores Relacionais:
  • Seleção
  • Projeção
  • Junção
  • Divisão


02 - Explique a Operação SELECT e PROJECT. Quando usar, Para que usar, Como usar, diferenças, etc.

R:
SELECT

É usada para construir um subconjunto na horizontal e para selecionar 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 5 ou que tenham salário maior que 5000, cada uma dessas condições é especificada individualmente usando a operação SELECT:

NDEP = 5 (EMPREGADO)
SALÁRIO > 5000 (EMPREGADO)
  
PROJECT

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, para cada empregado, os atributos PNOME, SNOME e SALÁRIO; pode-se usar o PROJECT:

SNOME, PNOME, SALÁRIO (EMPREGADO)



03 - 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.
Podem-se definir as três operações UNION, INTERSECTION e DIFFERENCE sobre duas relaçõ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.


04 - 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-se então selecionar apenas as tuplas que estejam relacionadas especificando uma condição de seleção apropriada, como foi feita no exemplo. Devido à sequê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 sequência como uma única operação. Assim, a operação CARTESIAN PRODUCT é raramente utilizada isoladamente.


05 - Explique as Operações de junção (JOIN) e divisão (DIVISION). Quando usar, Para que usar, Como usar, etc.

R: 
Operações de Junção (JOIN)
A combinação de uma operação de seleção aplicada sobre uma operação de produto cartesiano é usual em aplicações de BD. É através dela que dados de tabelas relacionadas são associados. Por isso, foi criada a operação de junção, que corresponde exatamente à seqüência de operações em questão.
A , é usada para combinar tuplas relacionadas dexoperação JOIN, denotada por  relações em uma única tupla. Esta operação é muito importante para quaisquer bases de dados relacionais, pois permite processar relacionamentos entre relações
É uma operação que produz uma combinação entre as linhas de uma tabela com as linhas correspondentes de outra tabela, sendo em princípio correspondente a uma seleção pelos atributos de relacionamento sobre um produto cartesiano dessas tabelas:
A |x| B A.chave1 = B.chave2 ( A x B ) s=
A operação de junção foi criada justamente porque esse tipo de combinação de tabelas é de uso muito comum, facilitando com isso a escrita de expressões. A tabela resultante de uma junção tem todas as colunas da primeira tabela e todas da segunda tabela. Isso faz com que os valores dos campos utilizados como critério para a correspondência entre as linhas apareça duplicado, já que um vem da primeira tabela e outro da segunda. Existe uma variação da junção, chamada junção natural, que fornece o mesmo resultado, mas sem essa repetição de valores, uma das colunas correspondentes aos atributos de relacionamento é descartada.

Operações de Divisã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.
Ex.: queremos saber os nomes dos departamentos que possuem todos os cargos:
CdCargo p ¸NmDepto, CdCargo ( depto |x| funcionário )  p ( cargo )

 
06 - 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.



quinta-feira, 6 de setembro de 2012

Trabalho Bimestral de BDI

Banco de Dados Sybase

Sybase - (link para arquivo)


Faculdade de Educação São Luís - Jaboticabal/SP
Curso de Sistemas de Informação - 6º. Semestre


Integrantes do grupo do Banco de Dados Sybase
Gildo Júnior
Junio Pimentel
Richard Nabuco
Vinicius Rafael

DER – Diagrama Entidade Relacionamento 6

  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.
 
 

DER – Diagrama Entidade Relacionamento 5

  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.
 
 

DER – Diagrama Entidade Relacionamento 4

  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.
 
 

DER – Diagrama Entidade Relacionamento 3

   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.
 
 

DER – Diagrama Entidade Relacionamento 2

Você irá elaborar um modelo de dados para atender as necessidades de informação de uma biblioteca universitária. São elas:

·         O cadastro dos usuários com endereço completo, inclusive com a informação do curso do usuário e data de início e de término previsto;

·         O cadastro das obras da biblioteca, com a devida classificação: livros científicos, periódicos científicos, periódicos informativos, periódicos diversos, entretenimento, etc.;

·         A língua em que encontra-se a obra;

·         A mídia onde encontra-se a obra;

·         Os autores da obra com o controle da nacionalidade do autor;

·         As editoras dos exemplares com o ano de edição;

·         os usuários estão classificados entre alunos, professores e funcionários, sendo que para os professores não serão considerados limites de volumes para empréstimos, nem possíveis atrasos na devolução destes.

·         O histórico dos empréstimos.
 
 

DER – Diagrama Entidade Relacionamento 1

 CADASTRO NACIONAL DE VEÍCULOS: Você apresentará um modelo de dados para o cadastro nacional de veículos. Sabe-se que:

·         O veículo possui sempre uma placa única em todo o país;

·         O veículo possui sempre um responsável legal por ele. É necessário manter o histórico desta responsabilidade (propriedade);

·         O veículo pertence sempre a uma categoria;

·         O veículo é sempre de uma marca e de um modelo e possui ano de fabricação.

domingo, 2 de setembro de 2012

Questionário II -- MER - Modelo Entidade Relacionamento

01 - Explique o conceito do MER e a sua importância no relacionamento entre os profissionais da informática e os demais profissionais.

R: O MER foi criado para facilitar a comunicação entre os profissionais que desenvolvem o banco de dados de uma empresa e os funcionários que nela trabalham, facilitando o entendimento dos profissionais que usufruirão do software desenvolvido, nele o banco é detalhado de forma simples e fácil de compreender, e consiste em um conjunto de objetos básicos chamados entidades e nos relacionamentos entre estes objetos.
 
 
02 - Explique e comente o conceito de entidades e atributos.
 
R: Entidade: qualquer coisa que guardamos sobre algo. Atributo: são características sobre as entidades, e podem ser Atributos simples, composto, multivalorado ou monovalorado.
 
 
03 - Explique e comente o conceito de relacionamento.
 
R: Para entender o conceito de relacionamento é necessário falar sobre entidade e atributos, onde entidades são algo do mundo real, seja físico, como algum objeto, ou conceitual, como uma empresa. As entidades são ligadas no banco, e alguns exemplos dessa relação pode ser de 1 para n, n para 1 ou de n para m e m para n, para entender o conceito, um carro por exemplo pode ter várias marcas, já cada marca pode ter apenas 1 carro. Nesse caso seria um relacionamento de 1 para n.
 
 
04 - Explique e comente o conceito de atributo-chave.
 
R: Uma entidade pode ter vários atributos e o que diferencia o atributo chave dos demais atributos é a sua utilidade dentro da entidade, pois ele pode ser usado para identificar cada entidade unicamente. Uma característica do atributo chave é a impossibilidade de poder repetir o valor do atributo na relação, ou seja, os dados têm que ser diferentes.
 
 
05 - Explique o conceito do DER e a sua importância no relacionamento entre os profissionais da informática e os demais profissionais.
 
R: O DER é usado pelo analista desenvolvedor para auxiliar na criação do banco de dados, e detalhar de maneira mais completa e fácil a estrutura que precisará ser desenvolvida, envolvendo a entidade, atributos e relacionamentos, podendo ser chamado de mapa do banco de dados, e muito usado para  apresentar o projeto do banco ao cliente, para o mesmo analisar se atende as sua necessidades.
 
 
06 - Dê ou faça um exemplo de um DER e explique o mesmo.
 
R: O DER abaixo mostra a estrutura de um banco de uma distribuidora de alumínio, onde o mesmo não trabalha com estoque, e o mesmo pediu para ser criado um processo que auxilia na parte financeira da empresa, controlando a conta de um fornecedor e de um cliente.


 
 

segunda-feira, 20 de agosto de 2012

BANCO DE DADOS I - QUESTIONÁRIO

01 - O que é e como funciona o armazenamento de dados em arquivo? (criação, utilização, vantagens e problemas).
R:

02 - O que é e como funcionam os SBGD? Explique a evolução dos arquivos, passando pelo BD até SGBD.
R: É o conjunto de softwares responsáveis pelo gerenciamento de uma base de dados, ele consiste em uma coleção de dados inter-relacionados e uma coleção de programas para prover o acesso a esses dados. O objetivo principal de um SGBD é prover um ambiente que seja adequado e eficiente para uso na recuperação e armazenamento de informações, que com o passar do tempo sofreu as seguintes evoluções: Sistemas de arquivos BD em rede, BD hierárquico, BD relacional, Linguagem orientada a Objeto, Hipermídia e Inteligência Artificial.
03 - Quais são os tipos de conexão existentes com BD? Explique-as.
R: São 5 tipos existentes.
  • Time sharing: esta conexão é realizada em tempo real.
  • Servidor de arquivos: conexão somente para armazenamento de dados.
  • Cliente-servidor: servidor de dados e de manutenção de arquivos por usuários.
  • Servidor de aplicações: servidor de aplicações em geral Servidor.
  • Web: exclusivo para web.

04 - Quais são os modelos de dados existentes? Explique-os.
R: Os modelos existentes são:
  • Modelo Hierárquico: Os dados estão estruturados em hierarquias ou árvores.Os nós das hierarquias contêm ocorrências de registros, onde cada registro é uma coleção de campos (atributos) cada um contendo apenas uma informação. O registro que em uma hierarquia precede outros se designa registro-pai dos outros registros que são chamados de registros-filhos. Uma ligação é uma associação entre dois registros. O relacionamento entre um registro-pai e registros-filhos é de 1:N.
  • Modelo em Rede: No modelo em rede os registros estão organizados em grafos. Nele aparece um único tipo de associação (set), que define uma relação de 1: N entre 2 tipos de registros: proprietário e membro.
  • Modelo Relacional: O modelo relacional apareceu devido a seguintes necessidades: 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 e recuperação de dados; O Modelo relacional revelou-se ser o mais flexível e adequado ao solucionar os vários problemas que se colocam ao nível da concepção e implementação da base de dados. A estrutura fundamental do modelo relacional é a relação. Uma relação é constituída por um ou mais atributos (campos), que traduzem o tipo de dados a armazenar.
  • Modelo Orientado a Objetos: A habilidade para criar os tipos de dados necessários é uma característica das linguagens de programação orientada a objetos. Estes sistemas, porém, necessitam guardar representações das estruturas de dados que eles usam no armazenamento permanente. A estrutura padrão para o banco de dados objeto foi feita pelo Grupo de gerenciamento dados objetos (ODMG).
  • Sistemas Objetos-Relacionais: A área de atuação dos sistemas Objeto-Relacional 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. Para isso foi necessário adicionar: extensões dos tipos básicos no contexto SQL; representações para objetos complexos no contexto SQL; herança no contexto SQL; sistema para produção de regras.
05 - 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).
R:
06 - Quais são as arquiteturas de SGBD’s? Explique-as.
R: As arquiteturas de SGBD's são , Plataformas centralizadas , Sistemas de Computador Pessoal , Banco de Dados Cliente-Servidor, Banco de Dados Distribuídos (N camadas).  
  • 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 está no 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. No começo esse processamento era bastante limitado, porém com a evolução do hardware temos 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 com o 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, para poder implementá-la são necessárias soluções de softwares sofisticados que possibilitem: tratamento de transações, confirmações de transações(commits), desfazer uma transação (rollbacks), linguagens de consultas (stored procedures) e gatilhos(triggers). 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 está distribuída em diversos servidores. Cada servidor atua como no sistema cliente-servidor, porém as 11 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 bases de dados corporativas, em que o volume de informação é muito grande e deve ser distribuído por diversos servidores.