Pesquisar este blog

quarta-feira, 17 de abril de 2013

Questionário sobre Comandos e Conceitos de SQL


Banco de Dados 2

 

Questionário sobre 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.

  

    SQL significa Structured Query Language, que traduzindo é Linguagem de Consulta Estruturada . É  uma linguagem cuja finalidade é para pesquisa declarativa para banco de dados relacional. Muitas das características originais do SQL foram inspiradas na álgebra relacional. A linguagem SQL é dividida em subconjuntos de acordo com as operações que queremos efetuar sobre um banco de dados, tais como:

·        DML - Linguagem de Manipulação de Dados;


·        DDL - Linguagem de Definição de Dados;


·        DCL - Linguagem de Controle de Dados;


·        DTL - Linguagem de Transação de Dados;


·        DQL - Linguagem de Consulta de Dados;


 

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

O SQL suporta três modalidades de tipos de dado: tipos de dado pré-definidos, tipos construídos e tipos definidos pelo usuário. Os tipos pré-definidos são algumas vezes chamados de "tipos nativos", mas não neste Padrão Internacional. Os tipos definidos pelo usuário podem ser definidos por um padrão, por uma implementação, ou por um aplicativo.

O tipo construído é especificado utilizando um dos construtores de tipo de dado do SQL: ARRAY, MULTISET, REF e ROW. O tipo construído é um tipo matriz, um tipo multi-conjunto, um tipo referência ou um tipo linha, se for especificado por ARRAY, MULTISET,REF e ROW, respectivamente. Os tipos matriz e multi-conjunto são conhecidos genericamente como tipos coleção.

 

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.

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]

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

Uma visão consiste basicamente de uma tabela derivada de outras tabelas. Considerando o exemplo TRABALHO, poderíamos criar uma visão baseada na Tabela de Empregados (EMP) e na Tabela de Departamentos (DEPT) onde tivéssemos somente os Nomes dos Funcionários e os Departamenos nos quais estes trabalhassem. Teríamos algo assemelhado ao abaixo representado

CREATE VIEW EMP_DEP

AS SELECT E.EMPNOME, D.DEPNOME

FROM EMP E, DEPT D

WHERE E.DEPNUME = D.DEPNUME;

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?

Procedimento armazenado ou Stored Procedure é uma coleção de comandos em SQL para dispensamento de Banco de dados. Encapsula tarefas repetitivas, aceita parâmetros de entrada e retorna um valor de status (para indicar aceitação ou falha na execução). O procedimento armazenado pode reduzir o tráfego na rede, visto que, os comandos são executados diretamente no servidor. Além de melhorar a performance, criar mecanismos de segurança entre a manipulação dos dados do Banco de Dados. Exemplo: (MS-SQL Server).

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

Gatilho ou trigger é um recurso de programação executado sempre que o evento associado ocorrer. Trigger é um tipo especial de procedimento armazenado, que é executado sempre que há uma tentativa de modificar os dados de uma tabela que é protegida por ele.

É muito utilizada para ajudar a manter a consistência dos dados ou para propagar alterações em um determinado dado de uma tabela para outras. Um bom exemplo é um gatilho criado para controle de quem alterou a tabela, nesse caso, quando a alteração for efetuada, o gatilho é "disparado" e grava em uma tabela de histórico de alteração, o usuário e data/hora da alteração.

 

 

 

terça-feira, 26 de fevereiro de 2013

Comandos e Conceitos do SQL


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.
R: Structured Query Language, ou Linguagem de Consulta Estruturada, é uma linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional). Comandos SQL – Os comandos do SQL (da linguagem Transact-SQL) são divididos em três grupos, que são:

DCL (Data Control Language)
 - GRANT – Este comando é usado para conceder permissões;
 - REVOKE – Este comando é usado para revogar a concessão ou a negação de permissões;
 - DENY – Este comando é usado para negar permissões.

DDL (Data Definition Language)
 - ALTER – Este comando é usado para alterar a estrutura que os objetos apresentam no sistema;
 - CREATE – Este comando é usado para criar objetos no sistema;
 - DROP – Este comando é usado para excluir objetos do sistema.

DML (Data Manipulation Language)
 - BACKUP – Este comando é usado para fazer o backup dos dados;
 - BULK INSERT – Este comando é usado parar incluir uma grande quantidade de dados na tabela
 - DELETE – Este comando é usado para excluir os dados presentes na tabela;
 - INSERT – Comando usado para inserir dados em uma tabela;
 - RESTORE – Este comando é usado para restaurar os dados de um backup;
 - SELECT – Comando usado para ler as views e os dados de uma tabela;
 - UPDATE – Comando usado para alterar os dados de uma tabela.


2)      Quais são os tipos de dados que a linguagem SQL padrão (ANSI) suporta? Explique cada um resumidamente.
R: 
TIPOS DE DADOS PADRÃO SQL


                Os tipos de dados padrão do SQL apartir de 1999 são:

Tipo de Dados SQL
CHAR
VARCHAR
LONGVARCHAR
NUMERIC
DECIMAL
BIT
TINYINT
SMALLINT
INTEGER
BIGINT
REAL
FLOAT
DOUBLE
BINARY
VARBINARY
LONGVARBINARY
DATE
TIME
TIMESTAMP
BLOB

Abaixo segue uma relação dos tipos de dados básicos do SQL Server:

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. O SQL Server internamente armazena o separador decimal como ponto (.) e o separador de milhar como vírgula (,), idependente da configuração do Windows.

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): Armazena 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): Armazena 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.

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.
4)      O que é uma visão (view) em SQL? Explique suas propriedades, utilidades e os comandos para a sua manipulação.
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?
6)      O que são gatilhos (TRIGGERS)? Para que servem, quais as vantagens na sua utilização, como funcionam e como criá-los?

quinta-feira, 22 de novembro de 2012

Trabalho Final de BDI


Trabalho Final de BDI

            Como trabalho final de BDI, deverá ser analisado pelo aluno e seu grupo um sistema qualquer do mundo real, desde que seja, de uma complexidade maior que os exercícios em sala de aula, ou seja, deve ser complexo o suficiente para ter mais de 6(seis) Entidades. Poderá ser utilizado o sistema analisado em APSI pelo grupo, aproveitando a análise e adequando-as aos conceitos do MER de modelagem, mapeamento, normalização e implementação através da linguagem SQL.

            O trabalho deve apresentar os seguintes itens abaixo:

  • ESCOPO: Descrição do sistema analisado, mostrando as suas relações e informações a serem guardadas, bem como todas a restrições e regas existentes para o armazenamento e consulta desses dados.

  • MODELAGEM: Documentação do sistema usando as ferramentas conceituais:

      • DER (Diagrama de Entidade-Relacionamento) do sistema analisado.
      • M-Rel (Modelo Relacional) do sistema analisado, contendo os esquemas das relações e os domínios dos atributos de cada relação.

  • IMPLEMENTAÇÃO: O Banco de Dados criado em qualquer SGBD ou SBD de domínio do aluno. Contendo:

      • Comandos SQL que criaram as tabelas, relacionamentos, atributos, chaves primárias e estrangeiras, bem como triggers, procedures, funções e views necessárias para o funcionamento do banco.

sexta-feira, 9 de novembro de 2012

Normalizaçã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.
R: Tabela normalizada
Atributos não atômicos ou contém tabelas aninhadas
Exemplo: Tabela de alocação de funcionários a projetos
Código do Projeto: 1
Tipo: Desenvolvimento
Descrição: Vagas




Álgebra Relacional - Exercícios


Álgebra Relacional - Exercícios


ð  Seleção

1)       Mostre o conteúdo da relação departamento.
R: σ(DEPARTAMENTO)








        2)    
Mostre os empregados que trabalham no departamento 4.
R: σ NDEP=4 (EMPREGADO)








3)       Mostre a(s) localização(ões) do departamento de pesquisa (5).
R: σ DNUMERO =5(LOCAIS_DPTO)













4)       Mostre o(s) projetos(s) do departamento 4.
R: σ PNUMERO=4 (PROJETO)











5)       Mostre as informações de relação trabalha_em cujo número do projeto igual a 3.
R: σ PNUMERO=3 (TRABALHA_EM)








ð  Projeção

1)       Mostre o número e o nome dos dependentes.
R: π nssemp,nomedependente(DEPENDENTE)












2)       Mostre o nome e a localização dos projetos.
R: π pnome,plocalização(PROJETO)











3)       Mostre o nome do departamento e o código do gerente dos departamentos.
R: π dnome, snner (DEPARTAMENTO)











4)       Mostre o nome e a data de nascimento dos empregados.
R: π pnome, datanasc(EMPREGADO)
















5)       Mostre o nome e o salário dos empregados.
R: π pnome, salário(EMPREGADO)


















ð  Seleção+Projeção

1)       Mostre o código, nome e o salário dos empregados que ganham mais de 2500.






,





2)       Mostre o nome e a localização dos projetos do departamento 5.













3)       Mostre o número do empregado e o número do projeto cujas horas são maiores que 10.












4)       Mostre o nome e o sexo do dependente cujo número do empregado é igual a 123456789.












5)       Mostre o nome, relação e a data do aniversário dos dependentes cujo número do empregado é igual a 333445555.







ð  Junção

1)       Mostre o nome e o salário do empregado e o nome e a relação dos seus dependentes.







2)       Mostre o nome do departamento e o nome e o salário do empregado que é o seu gerente.



3)       Mostre o nome do departamento e a sua localização.





4)       Mostre o nome do projeto, sua localização e o departamento ao qual pertence.










5)       Mostre o nome do empregado e o nome do projeto nos quais eles trabalharam.








ð  Agregação

1)       Mostre a quantidade de empregados do sexo masculino e a quantidade de empregados do sexo feminino.










2)       Mostre a quantidade de dependentes do sexo masculino e a quantidade de dependentes do sexo feminino do empregado cujo número é 123456789.









3)       Mostre o nome e o salário do empregado e a quantidade de dependentes que possui.









4)       Mostre a despesa total de cada departamento com os salários dos empregados.










5)       Mostre a soma total das horas empregadas em cada projeto.