terça-feira, 2 de abril 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.

Structured Query Language, ou Linguagem de Consulta Estruturada. Que tinha por objetivo demonstrar a viabilidade da implementação do modelo relacional.
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 é 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.
Os comandos básicos da DDL são poucos
• CREATE cria um objeto (uma Tabela, por exemplo) dentro da base de dados.
• DROP apaga um objeto do banco de dados.
Alguns sistemas de banco de dados usam o comando ALTER, que permite ao usuário alterar um objeto, por exemplo, adicionando uma coluna a uma tabela existente.
outros comandos DDL:
• ALTER TABLE
• CREATE INDEX
• ALTER INDEX
• DROP INDEX
• CREATE VIEW
• DROP VIEW
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.
COMMIT e ROLLBACK interagem com áreas de controle como transação e locação. Ambos terminam qualquer transação aberta e liberam qualquer cadeado ligado a dados. Na ausência de um BEGIN WORK ou uma declaração semelhante, a semântica de SQL é dependente da implementação.
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.

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

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.

SELECT – Seleciona as colunas da consulta
FROM – Seleciona a(s) tabela(s)
WHERE – Permite criar condições para filtrar os dados retornados na consulta
GROUP BY Agrupa dados na consulta.
HAVING Limita o resulta em uma condição estabelecida.
ORDER BY Especifica a coluna ou as colunas que serão ordenadas na consulta

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.
Exemplo:
CREATE VIEW comedias AS
SELECT *
FROM filmes
WHERE tipo = ‘Comédia’;

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, melhorar a performance, criar mecanismos de segurança, etc.
Exemplo: (MS-SQL Server)
Create procedure busca
@nomedebusca varchar (50)
as
select nome1, nome2
from nome_da_tabela
where nome = @nomedebusca

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.
É 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.
Exemplo: (MS-SQL Server)
CREATE TRIGGER nome_do_gatilho ON dono.Nome_da_tabela
FOR INSERT (ou UPDATE ou DELETE)
AS
Codigo para execucao

quarta-feira, 21 de novembro de 2012

Exercícios e Trabalho Banco de Dados - 2º Bimestre

Grupo

Douglas Fernando Stenle
André Andreazi
Ricardo Martinho
Danilo Ennes
Daniel de Freitas
Gabriel Magri
Bruno Constantino
William Mialich


Link para download do Trabalho:  http://depositfiles.com/files/otdvyy90x

Segue as Respostas dos Exercícios pelo Link abaixo:
http://depositfiles.com/files/fc4x3q0nm

quinta-feira, 13 de setembro de 2012

MRel - Modelo Relacional

1 - Explique conceitualmente a diferença entre o MER e o Modelo de Dados Relacional, ou simplesmente Modelo Relacional (MRel).

A diferença entre eles é que no MER utiliza dados conceituais de alto-nível e o MRel utiliza implementação de dados mais simples.O MER é um modelo de dados conceitual de alto-nível. Assim, os conceitos do MER foram projetados para serem compreensíveis a usuários, descartando detalhes de como os dados são armazenados. E já o MRel os modelos de dados de implementação são mais simples com uma estrutura de dados uniforme e o mais formal. E os modelos de dados relacional apresenta os dados da base com uma coleção de relações, cada relação poderá ser estendida como uma tabela ou um simples arquivo de registro.Atualmente, o conceito MER é utilizado principalmente durante processo de projetos da base de dados, estima-se que esse conceito possa ser utilizado diretamente em uma classe de SGBS’s.MRel - O Modelo de Dados Relacional foi introduzido por Codd(1970). Entre os modelos de dados de implementação, o modelo relacional é o mais simples, com estrutura de dados uniforme e o mais formal.O modelo de dados relacional representa os dados da base de dados como uma coleção de relações. Informalmente, cada relação pode ser entendida como uma tabela ou um simples arquivo de registros.O MER é um modelo de dados conceitual de alto-nível. Assim, os conceitos do MER foram projetados para serem compreensíveis a usuários, descartando detalhes de como os dados são armazenados.




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


A instância de uma relação em um determinado momento é toda a relação no momento, ou seja, uma instancia de Alunos são todos os alunos cadastrados no momento. Se amanhã acrescentar mais alunos, a instância será todos os alunos antigos mais os novos.Um domínio D é um conjunto de valores atômicos, sendo que por atômico, podemos compreender que cada valor do domínio é indivisível. Durante a especificação do domínio é importante destacar o tipo, o tamanho e a faixa do atributo que está sendo especificado. Por exemplo:Coluna Tipo Tamanho FaixaRG Numérico 10,0 03000000-25999999Nome Caracter 30 a-z, A-ZSalário Numérico 5,2 00100,00-12999,99Um esquema de relação R, denotado por R(A1, A2, ... , An), onde cada atributo Ai é o nome do papel desempenhado por um domínio D no esquema relação R, onde D é chamado domínio de Ai e é denotado por dom(Ai). O grau de uma relação R é o número de atributos presentes em seu esquema de relação.A instância r de um esquema relação denotado por r(R) é um conjunto de n-tuplas r = [t1, t2, ... , tn] onde os valores de [t1, t2, ... , tn] devem estar contidos no domínio D. O valor nulo também pode fazer parte do domínio de um atributo e representa um valor não conhecido para uma determinada tupla. Notação do Modelo RelacionalAs seguintes notações serão utilizadas para apresentar alguns conceitos do modelo relacional:• Uma relação esquema R de grau n é representada como R(A1, A2, ..., An).Uma tupla t em uma relação r(R) é representada como t=, onde vi éo valor correspondente para atributos Ai. Serão utilizadas as seguintes notaçõespara se referir aos valores dos componentes de tuplas:• t[Ai] indica o valor de vi em t para o atributo Ai.• t[Au, Aw, ..., Az] onde Au, Aw, ..., Az é uma lista de atributos de R, indica oconjunto de valores de t correspondentes aos atributosespecificados na lista.• As letras Q, R e S denotam nomes de relação.• As letras q, r e s denotam instâncias de relação.• As letras t, u e v denotam tuplas.• Em geral, o nome de uma relação tal como ESTUDANTE indica o conjunto atual detuplas na relação - instância corrente da relação - e ESTUDANTE(Nome, NSS, ...)refere-se à relação esquema.• Os nomes de atributos são algumas vezes qualificados com o nome da relação naqual pertencem, por exemplo, ESTUDANTE.Nome ou ESTUDANTE.Anos.




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

R: Um conjunto de atributos de uma relação R que identifica univocamente cada tupla na relação R é chamada uma Super-chave. Chave é uma super-chave da qual não pode retirar nenhum atributo e ainda preservar-se propriedade d identificação unívoca. Chave Candidata é comum que exista mais de uma chave para uma mesma relação. Neste caso, cada uma das chaves é chamada de chave candidata. Quando uma relação esquema tem muitas chaves-candidatas, a escolha da chave primária é arbitrária; no entanto, é sempre melhor escolher a chave-primária com o menor número de atributos. Uma Chave Estrangeira ocorre quando um conjunto de atributos C.



4. Explique o conceito de integridade no MRel?

R: As restrições de chave e de integridade de entidade aplicam-se apenas a relações individuais. 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. Não existe uma representação formal para chave estrangeira. Normalmente, identifica-se um arco direto de cada chave estrangeira à relação que ela faz referência. Restrições de Integridade sobre um Esquema de Base de Dados Relacional: as restrições de chave especificam as chaves-candidatas de cada relação esquema; os valores das chaves-candidatas devem ser únicos para todas as tuplas de quaisquer instâncias da relação esquema. Além da restrição de chave, dois outros tipos de restrições são consideradas no modelo relacional: integridade de entidade e integridade referencial. A restrição de integridade de entidade estabelece que nenhum valor da chave-primária pode ser nulo. Isso porque, o valor de uma chave-primária é utilizado para identificar tuplas42 em uma relação. Por exemplo, se duas ou mais tuplas tiverem o valor null para a chaveprimária, não haverá como diferenciar uma tupla da outra.



5. Explique o conceito de integridade referencial no MRel.

R: Uma Chave Estrangeira ou Integridade Referencial ocorre quando um conjunto de atributos C Informalmente, a restrição de entidade referencial declama que uma tupla em uma relação, que faz referência a outra relação, deve se referir a uma tupla existente nessa relação. O conceito de Integridade Referencial depende do conceito de Cahve Estrangeira.



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

R: Foi introduzido por Codd (1970). Tornou-se um padrão de fato para aplicações comerciais, devido a sua simplicidade e performance. É um modelo formal, baseado na teoria matemática das relações. Um dos SGBD's precursores que implementaram este modelo foi o System R (IBM). Baseado em seus conceitos surgiram: DB2 (IBM), SQL-DS (IBM), Oracle, Informix, Ingres, Sybase entre outros. Intenção da relação -> Esquema da Relação RExtensão da relação -> Estado da relação r(R)Não há ordenamento de tuplas de uma relação (diferentemente de um arquivo)Ordenamento de valores dentro de uma tupla n-tupla -> lista ordenada de n valores (ordem é importante na definição) Em nível lógico -> ordem não é importante, se houver correspondência entre atributo e valor Outra definição para relação:Um esquema da relação R(A1, A2,..., An) é um conjunto de atributos

quinta-feira, 6 de setembro de 2012

Trabalho Postgree SQL


Grupo Postgree SQL

André Ricardo Andreazi

Bruno Constantino

Danilo Ennes

Daniel Frosa

Gabriel Chimarelli Magri

Ricardo Martinho

Willian Mialich

Link Trabalho


sábado, 1 de setembro de 2012

Diagrama de Entidade e Relacionamento (DER)



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.







2) BIBLIOTECA: 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.






3) CONTROLE DE ESTOQUE: 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.




4) EMPRESA DE FLORES: 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.





5) APURAÇÃO ELEITORAL: 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.




6) CONCURSO PÚBLICO: 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.



Modelo de Entidade e Relacionamento (MER)

Modelo de Entidade e Relacionamento (MER)


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

Modelo de Entidade e Relacionamento (MER)

Definição
O modelo de entidade e relacionamento é o mais utilizado atualmente, devido a sua simplicidade e eficiência. Baseia-se na percepção de mundo real, que consiste em uma coleção de objetos básicos, chamados entidades e relacionamentos entre esses objetos. Você poderá usar ou não um software para modelagem de dados.
Consiste em mapear o mundo real do sistema em um modelo gráfico que irá representar o modelo e o relacionamento existente entre os dados. Este modelo foi desenvolvido a fim de facilitar o projeto de banco de dados permitindo a especificação de um esquema que representa a estrutura lógica global do Banco de Dados.
O Modelo de Entidades e Relacionamentos é um modelo abstrato cuja finalidade é descrever, de maneira conceitual, os dados a serem utilizados em um Sistema de Informações ou que pertencem a um domínio. A principal ferramenta do modelo é sua representação gráfica, o Diagrama Entidade Relacionamento. Normalmente o modelo e o diagrama são conhecidos por suas siglas: MER e DER.

Entidade
Identifica o objeto de interesse do sistema e tem "vida" própria, ou seja, a representação
abstrata de um objeto do mundo real sobre o qual desejamos guardar informações.
Exemplo: Clientes, Fornecedores, Alunos, Funcionários, Departamentos, etc.
Não são entidades:
Entidade com apenas 01 elemento;
Operações do sistema;
Saídas do sistema;
Pessoas que realizam trabalhos (usuários do sistema);
Cargos de direção

Atributo
Informações que desejamos guardar sobre a instância de entidade.
Exemplo: Nome do aluno, Número da turma, Endereço do fornecedor, Sexo do funcionário, etc.

Domínio do Atributo

Universo de valores que um atributo pode armazenar.
Exemplos:
Conjunto de valores do atributo Sexo do funcionário: M ou F;
Conjunto de valores do atributo Nome do aluno: 40 caracteres alfanuméricos.
Conjunto de valores do atributo salário: inteiro maior que 5000


Relacionamento
Na análise de relacionamentos o objetivo é definir como e quando as entidades se relacionam, isto é particularmente importante a fim de dar maior entendimento do problema.
Outro fator importante é o diagrama de entidade e relacionamento que representa graficamente o modelo de entidade e relacionamentos, este diagrama pode ser feito com o uso de ferramenta de modelagem de dados ou usando algum programa gráfico. Os softwares para modelagem de dados são alternativas mais interessantes em função da produtividade, organização do seu diagrama de entidade e relacionamento e facilidade de modificações.
Representa a associação entre os elementos do conjunto de uma entidade com outra entidade.
Exemplo: O João está matriculado na disciplina de Banco de Dados. Onde:
“João”: Elemento do conjunto de valores do atributo Nome do aluno da entidade Aluno;
“Banco de Dados”: Elemento do conjunto de valores do atributo Nome da disciplina da
entidade Disciplina;
“Matriculado”: Ligação existente entre um aluno e uma disciplina.
Matriculado
Aluno
Disciplina


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

Entidade: é qualquer coisa, concreta ou abstrata, incluindo associações entre entidades, abstraídos do mundo real e modelado em forma de tabela que guardarão informações no banco de dados.

Atributos
Um atributo é um valor de dado assumido pelos objetos de uma classe. Nome, idade e peso são exemplos de atributos de objetos Pessoa. Cor, peso e modelo são possíveis atributos de objetos Carro. Cada atributo tem um valor para cada instância de objeto. Por exemplo, o atributo idade tem valor ``29'' no objeto Pedro Y. Em outras palavras, Pedro Y tem 29 anos de idade. Diferentes instâncias de objetos podem ter o mesmo valor para um dado atributo.
Cada nome de atributo é único para uma dada classe, mas não necessariamente único entre todas as classes. Por exemplo, ambos Pessoa e Companhia podem ter um atributo chamado endereço.


3) Explique e comente o conceito de relacionamento.

É a forma como os objetos que compõem a realidade se relacionam.
Quando se reduz a realidade em objetos como entidades e seus atributos, está se trabalhando com a parte estática dos Negócios.
Todavia, na verdade, iremos encontrar situações onde Clientes solicitam Cotações, que geram Pedidos de Vendas quando aprovadas; os Pedidos vendem Produtos em quantidades e preços diferentes que são faturados através da Nota Fiscal, que é paga em parcelas pelas Duplicatas e, assim por diante, em um fluxo dinâmico.
Isto mostra que os dados se relacionam entre si, indicando a própria dinâmica dos negócios, bem como as regras e políticas que os regem. Para representar essa dinâmica, o Modelo E-R define o conceito de relacionamento entre as entidades.
Logo, o relacionamento é um conceito dinâmico, pois representa a própria dinâmica dos negócios, bem como as suas regras e políticas.Um Banco de Dados Relacional é um banco de dados que segue o Modelo Relacional.
De forma mais detalhada, um Banco de Dados Relacional é um conceito abstrato que define maneiras de armazenar, manipular e recuperar dados estruturados unicamente na forma de tabelas, construindo um banco de dados.
O termo também é aplicável aos próprios dados, quando organizados dessa forma, ou a um Sistema Gerenciador de Banco de Dados Relacional (SGBDR) – do inglês Relacional database management system (RDBMS) .A arquitetura de um banco de dados relacional pode ser descrita de maneira informal ou formal. Na descrição informal estamos preocupados com aspectos práticos da utilização e usamos os termos tabela, linha e coluna. Na descrição formal estamos preocupados com a semântica formal do modelo e usamos termos como relação(tabela), dupla(linhas) e atributo(coluna).
Tipos de relacionamento
De acordo com a cardinalidade, existem 3 (três) tipos básicos de relacionamento entre as entidades.

A. Relacionamento um – para - um (1:1)
Indica que uma única ocorrência de uma entidade pode se relacionar com apenas uma única ocorrência de outra entidade. Este tipo de relacionamento é bastante raro (no mundo dos negócios).
Por exemplo: FUNCIONÁRIO (1) gerencia (1) DEPARTAMENTO
(Lê-se: um departamento possui um funcionário que exerce o papel de gerente; por sua vez, um funcionário-gerente pode gerenciar apenas um departamento de cada vez.)

B. Relacionamento um – para - muitos (1:N ou 1:M)
Indica que uma ocorrência de uma entidade pode se relacionar com muitas ocorrências de outra entidade. No entanto, a recíproca não é verdadeira. Este tipo de relacionamento é muito comum (no mundo dos negócios).
Por exemplo: FUNCIONÁRIO (1) possui (N) DEPENDENTE
(Lê-se: um funcionário pode possuir vários dependentes; mas cada dependente pertence a apenas um funcionário.)
Outro exemplo: CLIENTE (1) solicita (N) COTAÇÃO
(Lê-se: um cliente pode solicitar muitas cotações de vendas; no entanto, cada cotação somente pode ter sido solicitada por um cliente.)

C. Relacionamento muitos – para - muitos (N:M)
Indica que várias ocorrências de uma entidade pode se relacionar com muitas ocorrências de outra entidade. Pode-se representar como N:M ou como M:N ou, ainda, como N:N ou M:M. Geralmente, um relacionamento desse tipo pode ser convertido e simplificado pela criação de uma entidade intermediária (do tipo associativa, a ser vista posteriormente) e de dois relacionamentos do tipo 1:N (um – para - muitos).
Por exemplo: PEDIDO (N) vende (M) PRODUTO
(Lê-se: em cada pedido podem ser vendidos muitos produtos diferentes - um para cada linha do pedido; por outro lado, um produto pode ser vendido por diversos pedidos.)


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

Um conceito importante em um banco de dados relacional é o conceito de atributo chave, que permite identificar e diferenciar uma tupla de outra. Através do uso de chaves é possível acelerar o acesso a elementos (usando índices) e estabelecer relacionamentos entre as múltiplas tabelas de um sistema de banco de dados relacional.
O conceito de chave é muito importante no Modelo Relacional. De entre todas as chaves candidatas apenas uma será a escolhida para identificar cada linha de forma única. A chave selecionada de entre as chaves candidatas é designada por chave primária da relação. Uma chave estrangeira é um conjunto de um ou mais atributos que são chave primária numa outra relação. Isto é, quando um atributo surge em mais do que uma relação, estamos perante um relacionamento de registros.
Chave estrangeira
O conceito de Chave estrangeira em uso de banco de dados se refere ao tipo de relacionamento entre as tabelas de dados do banco de dados.
Uma chave estrangeira é chamada quando há o relacionamento entre duas tabelas.
Sempre em chave estrangeira vai haver relacionamentos entre tabelas, por exemplo, se uma tabela que tem uma chave primária de outra tabela.
Chave externas ou estrangeiras
Uma chave externa ou estrangeira é um atributo ou uma combinação de atributos numa relação R2, cujos valores são necessários para equivaler à chave primária de uma relação R1.
Uma chave estrangeira é um campo, que aponta para a chave primária de outra tabela. Ou seja, passa a existir uma relação entre essas duas tabelas. A finalidade da chave estrangeira é garantir a integridade dos dados referenciais, pois apenas serão permitidos valores que supostamente vão aparecer na Base de Dados.
Chave primária
Chaves primárias (em inglês Primary Keys ou PK) sob o ponto de vista de um banco de dados relacional, referem-se às tuplas (conjuntos) de um ou mais campos, cujos valores, considerando a combinação de valores de todos os campos da tupla, nunca se repetem e que podem ser usadas como um índice para os demais campos da tabela do banco de dados. Em chaves primárias, não pode haver valores nulos nem repetição de tuplas.
Simplificando, quando a chave primária é simples, ou seja, é formada por um único campo da tabela, esse campo não pode ter dois ou mais registros de mesmo valor, e também não pode conter nenhum registro nulo. Se a chave primária é composta, ou seja, formada por mais de um campo, os valores de cada campo podem se repetir, mas não a combinação desses valores. Exemplo: a tabela 'Livros_Autores' tem como chave primária (cod_livro, cod_autor). Podem existir nessa tabela os registros:
(5, 9), (5, 10), (4, 9), (9, 5)

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

Diagrama entidade relacionamento é um modelo diagramático que descreve o modelo de dados de um sistema com alto nível de abstração. Ele é a principal representação do Modelo de Entidades e Relacionamentos. É usado para representar o modelo conceitual do negócio. Não confundir com modelo relacional, que representam as tabelas, atributos e relações materializadas no banco de dados.
· MER: Conjunto de conceitos e elementos de modelagem que o projetista de banco de dados precisa conhecer. O Modelo é de Alto Nível.
· DER: Resultado do processo de modelagem executado pelo projetista de dados que conhece o MER.
É um modelo em rede que descreve a diagramação dos dados armazenados de um sistema em alto nível de abstração. Devido a complexidade da estrutura de dados e os relacionamentos deve-se dar uma importância maior para os dados que serão utilizados para formar uma informação importante para um Gerente ou diretor de uma empresa ( importantes para um sistema de gestão empresarial).

Portanto é importante especifica e documentar, e o DER é uma ferramenta de modelagem especificamente para isto. “Modelar os dados (organizar em tabelas) e seus relacionamentos.
Quais os benefícios ?

- Realça os relacionamentos entre os depósitos de dados de um DFD que de outro modo só seriam percebidos nas especificações de processos.
- Facilita descobrir funções necessárias no DFD.
- Organizar a nossa estrutura de dados (redundância de dados)

Os Componentes

Tipo de Objetos – representação no sistema (tabelas de dados)

Retângulo;

Uma coleção ou um conjunto de objetos (coisas) do mundo real cujo membros individuais (instâncias) tem as seguintes características:
- Cada um deles só pode ser identificado de uma única forma (instâncias)
o Chaves (código, CPF, CNPJ, etc...)
- Cada um exerce um papel no sistema em construção
o Deve ter um significado
- Cada um pode ser descrito por um ou mais elementos de dados
o Cliente (nome, endereço, telefone, rg, CPF, etc...)

Tipos Especiais de Relacionamentos

- Indicadores de tipos de objetos (muitos-para-muitos)

Funciona tanto como um objeto como um relacionamento




Exemplo: Guardar a data e hora que aconteceu a compra.

- Indicadores de Subtipos/Supertipos
o Consistem em um objeto e um ou mais subcategorias, interligados por um relacionamento.

Herança



Diretrizes para a Construção de DER

- O DER deve ser criado a partir de entrevistas com o usuário e de seu conhecimento do ramo da empresa do usuário. (fichas cadastrais, notas fiscais, fichas de pedido, extratos bancários, etc...). Assim é encontrado os principais objetos e relacionamentos.
- Identificar os diferentes elementos de dados (campos) nos diferentes tipos de tabelas (objetos).
o Isto pode ser feito através do DFD e especificando em um dicionário de dados.
o Realizar refinamentos
- Verificar a existência de supressão de dados (reduzir o DER)
o Verificar a existência de relacionamentos redundantes ou errôneos
§ Tipos de objetos compostos por apenas um identificador (tabela cliente e cônjuge. Relacionamento de um para um)
§ Tipos de objetos para os quais existe apenas uma instância (constante)
§ Relacionamentos derivados ou calculados devem ser removidos do sistema
· Exemplo: Renovar pela data de aniversário, primeira letra.


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



No Exemplo:
Banco de dados que permite o correto controle das matrículas dos alunos em uma escola, onde a preocupação concentra-se no acompanhamento da vida acadêmica dos alunos.
Identificar as Entidades – de acordo com os requisitos do sistema
ALUNO - matricula-se - CURSO
-um aluno pode matricular-se em um único curso nesta escola, mas um curso contém vários alunos
Cardinalidade N : 1
CURSO - formado - DISCIPLINA
-um curso é formado por diversas disciplinas, mas uma mesma disciplina pode estar em mais que um curso
Cardinalidade N : M
ALUNO - cursa - DISCIPLINA ® nota, falta, situação
-vários alunos podem cursar uma mesma disciplina e uma disciplina tem vários alunos
Cardinalidade N : M
Os relacionamentos têm que procurar representar a realidade que ocorre no mundo real.

quarta-feira, 15 de agosto de 2012

Banco de Dados 1 - Introdução à Banco de Dados

1) O que é e como funciona o armazenamento de dados em arquivo?

Sistema de Banco de Dados consiste em uma coleção de dados inter-relacionados e uma
coleção de programas para prover o acesso a estes dados.
O armazenamento e feito em hds ou servidores.


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

Um Sistema Gerenciador de Banco de Dados (SGBD) é 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. Ele passou pelas seguintes evoluções: Sistemas de arquivos BD em rede BD hierárquico BD relacional Linguagem de orientada a Objeto Hipermídia Inteligência Artificial.



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

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


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

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.

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.


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


6) Quais são as arquiteturas de SGBD’s? Explique-as.

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 esta distribuída
em diversos servidores. Cada servidor atua como no sistema cliente-servidor, porém as11
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.