segunda-feira, 30 de novembro de 2009

COMANDOS E CONCEITOS DE 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.
R: SQL significa Structured Query Langage, ou Linguagem Estruturada de Consulta, o objetivo dessa linguagem é facilitar a comunicação e permitir que qualquer pessoa possa realizar consulta a um banco de dados mesmo não sendo um programador, ou seja, o foco é padronizar os meios de manipular o banco, ela é dividida em várias linguagens como DDL- usa instruções para descrever o esquema das tabelas do banco de dados, DML- usa instruções para manipular os dados, DCL- utilizada para controlar dados, DTL – essa linguagem é muito usada para transação de dados, e DQL-linguagem de consulta de dados, porém as principais são DML e a DDL

2- Quais são os tipos de dados que a linguagem SQL padrão (ANSI) suporta? Explique cada um resumidamente.
R: Os tipos de dados que a linguagem SQL suporta são Char , Varchar , Longvarchar, Numeric, Decimal, Bit, Tinyint, Smallint, Interger, Bigint, Real, Float,
Double, Binary, Varbinary, longvarbinary, Date, Time, Timestamp, Blob, a linguagem SQL tem muitas variações ela pode ter varios tipos de dados como na utilização de caracteres(char), valores com ponto flutuante(float), valores entre 0 e1(bit), valores com casas decimais(decimal), valores variados(tinyint), essa linguagem pode ser migrada de plataforma para plataforma sem mudanças estruturais.

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.
R: O SELECT é utilizado para recuperar informações de um banco de dados,
Sintaxe: Select * from tabela where condição, as caracteristicas básicas do select é que o usuário tem a capacidade de especificar uma consulta query como uma descrição do resultado desejado, a clásula Where (elimina linhas antes de fazer agrupamentos), operadores relacionais (permite fazer comparações lógicas de ordenação de números, e ainda de letras mas não strings), operadores lógicos (Estes operadores comparam condições de precedência), funções de agregação ( a função de agregação utiliza a função soma dentro do SELECT atraves grupos de registros para que assim obtenha um valor unico para ser aplicado a um grupo de registros),order by(ela sorteia os resultados das perguntas em ordem ascendente por default), group by(divide dados em grupos), having (ela determina as condições para a clausula group by, ou seja filtra os dados agrupados), compute by (essa clausula sumariza a pesquisa).

4- O que é uma visão (view) em SQL? Explique suas propriedades, utilidades e os comandos para a sua manipulação.
R: É qualquer relação que não faz parte do modelo lógico do banco de dados, mas é visível ao usuário, a 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, os comandos utilizados para sua manipulação são as funções e clausulas SQL, Where e Join.

5- Os 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: Store procedure são procedimentos executados no servidor, ela 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 os comandos utilizados.
São: Create procedure busca
@nomedebusca varchar(50)
as
select nome1,nome2
from nome_da tabela
where nome = @nomebusca

6- Os que são gatilhos (TRIGGERS)? Para que servem, quais as vantagens na sua utilização, como funcionam e como criá-los?
R: Gatilhos ou TRIGGERS é uma das formas que a programação encontrou para executar um programa quando o evento associado ocorrer, ela mantem 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

1. Quais são as diretrizes informais para o projeto de esquema de relações? Explique resumidamente cada uma.
R: A primeira diretriz da semântica tem como objetivo projetar um esquema de relação de maneira que seja simples descrever seu significado, a segunda projetar esquemas de relações de maneira que nenhuma anomalia de alteração ocorra em relações, a terceira diretriz diz esta ligada a valores nulos, ela evita colocar atributos em um esquema de relação base cujo valor possa ser null, a quarta diretriz corresponde a tuplas espúrias o objetivo principal é projetar esquemas de relação tal que, quando aplicadas operações JOIN-NATURAIS, os atributos nas condições-joins envolvam atributos que sejam ou chaves primarias 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.
R: As métricas de qualidade informal são conhecidas como semânticas de atributos, redução de valores redundantes em tuplas, redução de valores nulos em tuplas e não permissão de tuplas espúrias.
Semântica de atributos: Mostra de forma detalhada como interpretar os valores de atributos que estão guardados em uma determinada tuplas.
Redução de valores redundantes em tuplas: Tem como objetivo reduzir valores desnecessários que possam ter nas tuplas.
Redução de valores nulos em tupãs: Se os atributos não forem aplicados as tuplas de relação podem-se ter vários valores nulos isso pode despender o espaço de armazenamento e dificultar o entendimento da operação.
Tuplas espúrias: Nesse tipo de tuplas pode ocorrer falta de informação correta e o projeto sair ruim, por esse motivo passa a ser invalida.

3. O que é e para que serve o conceito de dependência funcional? Quais são os tipos de dependência? Explique-os
R: Dependências funcionais são restrições que existem nas relações ela da oportunidade de modificar algo necessário para que o banco de dados seja modelado de forma correta, essa dependência é uma propriedade do significado semântica dos tributos em um esquema de relação R, essa semântica é o modo como os tributos se relacionam para especificar as dependências funcionais envolvidas na relação.


4. O que é e para que serve normalização de dados relacionais? Quando será utilizada a normalização na maioria das vezes?
R: Na normalização de base é com se fosse uma prevenção para que não haja redundância de informações com objetivo de reorganização de dados, será muito utilizado quando a tabela precisar de chaves estrangeiras para diferenciar dados.

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?
R: É uma ligação com a dependência funcional para garantir os dados das diretrizes. São três tipos de forma normal cada uma com sua diferença, a primeira é a (1FN) visa eliminar atributos multivalorados, a segunda (2FN) é quando ela pertence a (1FN) e suas colunas que não são chave primaria dependerem da chave primaria, a (3FN) se já estiver na (2FN) e nenhum dos seus atributos dependerem funcionalmente de atributos não chave.

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

Um exemplo é normalizar um banco de dados existente

Cliente Codigo Telefone 1 Endereço
Telefone n Rua Nº Cidade

Ciente Codigo Rua Numero Cidade

domingo, 22 de novembro de 2009

Algebra Relacional 2

Seleção
1 – Mostre o conteúdo da relação departamentos.
R- б (departamento)

Dnome Dnumero Snnger Datinicger
Pesquisa 5 333445555 22/mai/78
Administração 4 987654321 1/jan/85
Gerencial 1 888665555 19/jun/71

2 – Mostre os empregados que trabalham no departamento 4.6 ndep=4 (Empregado)

Pnome Mnome Snome Nss Datanasc Endereço Sexo Salario Nsssuper Ndep
Alicia J Zelaya 999887777 19/jul/58 Av.C,3 F 2500 987654321 4
Jennifer S Wallace 987654321 20/jun/31 Trav.D,4 F 4300 888665555 4
Ahmad V Jabbar 987987987 29/mar/59 Av G,7 M 2500 333445555 4

3 - Mostre as localizações do departamento de pesquisa 5.
6 dnumero=5 (Locais_Depto)

Dnumero Dlocalização
5 Bellaire
5 Sugariand
5 Houston

4- Mostre os projetos do departamento 4.6 pnumero=4(Projeto)

pnome pnumero plocalização pnum
Automação 10 Stafford 4
Beneficiamento 30 Stafford 4

5 – Mostre as informação de relação trabalha_em cujo o numero do projeto igual a 3.
6 pnumero=3(Trabalha_em)

Nssemp Pnro Horas
666884444 3 40.0
333445555 3 10.0

Projeção

1 - Mostre o numero e o nome dos dependentes
π nssemp,nomedep(Dependente)

Nssemp Nomedependente
333445555 Alice
333445555 Theodore
333445555 Joy
987654321 Abner
123456789 Michael
123456789 Alice
123456789 Elizabeth

2 - Mostre o nome e a localização dos projetos.
π pnome,plocalização(Projetos)

Pnome Plocalização
Produtox Bellaire
Produtoy Sugariand
Produtoz Houston
Automação Stafford
Reorganização Houston
Beneficiamento Stafford

3 – Mostre o nome e o código do gerente dos departamentos
π dnome,snnger(Departamento)

Dnome Snnger
Pesquisa 333445555
Administração 987654321
Gerencial 888665555

4 – Mostre o Nome e a data de nascimento dos Empregados.
π pnome,datanasc(Empregado)

Pnome Datanasc
John 9/jan/55
Franklin 8/dez/45
Alicia 19/jul/58
Jennifer 20/jun/31
Ramesh 15/set/52
Joyce 31/jul/62
Ahmad 29/mar/59
James 10/nov/27

5 - Mostre o nome e o salário dos empregados
π pnome,salario(Empregados)

Pnome Salario
John 3000
Franklin 4000
Alicia 2500
Jennifer 4300
Ramesh 3800
Joyce 2500
Ahmad 2500
James 5500

SELEÇÃO + PROJEÇÃO

1 - Mostre o código , nome e o salário dos empregados que ganham mais de 2500.
π pnome,nss,salario(бsalario>2500(empregado))

Pnome Nss Salario
John 123456789 3000
Franklin 333445555 4000
Jennifer 987654321 4300
Ramesh 666884444 3800
James 888665555 5500

2 - Mostre o Nome e a localização dos projetos do departamento 5
π pnome,plocalização(бdnum=5(Projeto))

Pnome Plocalização
Produtox Bellaire
Produtoy Sugarland
Produtoz Houston

3 – Mostre o numero do empregado e o numero do projeto cujas horas são maiores que
π nssemp,pnro,(бhoras>10(Trabalha_em))

Nssemp Pnro
999887777 30
987654321 20

4 - Mostre o nome e o sexo do dependente cujo numero do empregado é igual a 123456789
π nomedependente,sexo(бnssempregado=123456789(Departamento))

Nomedependente Sexo
Michael M
Alice F
Elizabeth F

5- mostre o nome relação e a data do aniversario dos dependentes cujo numero do empregado é igual a 333445555.
π nomedependete,relação,dataniv( 6Nssempregado=333445555(Dependente))

Nomedependente Relação Dataniv
Alice Filha 5/abr/70
Theodore Filho 25/out/73
Joy Esposa 3/mai/48

JUNÇÃO


1- Mostre o nome e o salário do empregado e o nome e a relação dos seus dependentes
π pnome,salario,nomedependente,relação(EmpregadoҲnss=nssemp Dependente)
PNOME SALARIO NOMEDEPENDENTE RELACAO
Jhon 3000 Michael Filho
Jhon 3000 Alice Filha
Jhon 3000 Elizabeth Esposa
Franklin 4000 Alice Filha
Franklin 4000 Theodore Filho
Franklin 4000 Joy Esposa
Jennifer 4300 Abner Marido

2 – Mostre o nome do departamento e o nome e o salário do empregado que é o seu gerente.
π d.dnome,e.pnome,e.salario(Empregado.e ҳ e.nss=Dssnger Departamento.D)
Dnome Pnome Salario
Pesquisa Franklin 4000
Administração Jennifer 4300
Gerencial James 5500

3 - Mostre o nome do departamento e a sua localização
πd.dnome,l.dlocalização(Departamento.dҲdnumero=ldnumero(locais_depto))
Dnome Dlocalização
Pesquisa Bellaire
Pesquisa Sugarland
Pesquisa Houston

4- mostre o nome do projeto, sua localização e o departamento ao qual pertence
π pnome, plocalização, dnome(Departamentoҳ dnumero=dnum(Projeto))

Pnome Plocalização Dnome
ProdutoX Bellaire Pesquisa
ProdutoY S ugariand Pesquisa
ProdutoZ Houston Pesquisa
Automação Stafford Administrativo
Reorganização Houston Gerencial
Beneficiamento Stafford Administrativo

5 – Mostre o nome do empregado e o nome do projeto nos quais eles trabalham.
π e.pnome,p.pnome(Empregado.e ҳ nss=nssemp Trabalha_em) ҳ T.Pnro=Pnumero Projeto))
E.pnome P.pnome
John ProdutoX
John ProdutoY
Ramash ProdutoZ
Ahamad Beneficiamento
Franklin ProdutoY
Franklin ProdutoZ

AGREGAÇÃO


1 - Mostre a quantidade de empregados do sexo masculino e a quantidade de empregado do sexo feminino
Sexo ƒ Caunt Nss(Empregado)

Sexo Count Nss
M 5
F 3

2 – Mostre a quantidade de dependente do sexo masculino e a quantidade de dependente do sexo feminino do empregado cujo numero é 123456789
Sexo ƒ Caunt Nssemp(σ Nssemp=123456789(Dependente))

Sexo Count Nssemp
M 1
F 2

3 - Mostre o nome e o salário do empregado e a quantidade de dependente que possui.π pnome,salario;ƒ Count qtde(EmpregadoҳNss=Nssemp Dependente)

Pnome Salario Qtde
Franklin 4000 3
John 3000 3
Jennifer 4300 1

4- mostre a despesa total de cada departamento com o salário dos empregados
Ndep ƒ Sum Salario(Empregado)

Ndep Sum_Salario
5 13300
4 9300
1 5500

5– Mostre a soma total das horas empregadas em cada projeto.
Pnroƒ Sum Horas(Trabalha_em) Pnro Sum_Horas

Pnro Sum_Horas
1 52,5
2 37,5
3 50
10 55
20 25,5
30 55