quinta-feira, 20 de agosto de 2009

Introdução a Banco de Dados

1 - O que é e como funciona o armazenamento de dados em arquivo? (criação, utilização, vantagens e problemas).
Banco de Dados: é uma coleção de dados interrelacionados, representando informações sobre um domínio específico. Exemplos: lista telefônica, controle do acervo de uma
biblioteca, sistema de controle dos recursos humanos de uma empresa.
Vantagens: rapidez na manipulação e no acesso à informação, redução do esforço humano desenvolvimento e utilização), disponibilização da informação no tempo necessário, controle integrado de informações distribuídas fisicamente, redução de redundância e de inconsistência de informações, compartilhamento de dados, aplicação automática de restrições de segurança, redução de problemas de integridade.
Desvantagens : Sem dispositivos de controle adequados, a segurança pode ficar comprometida; por exemplo, no caso de acesso não autorizado a dados. A integridade das informações pode ser comprometida se não houver mecanismos de controle; por exemplo no caso de manipulação concorrente de dados. A operação do sistema de banco de dados e o desenvolvimento de aplicações precisam ser feitos com muita precisão para evitar que informações não correspondam à realidade. A administração do sistema de banco de dados pode se tornar muito complexa em ambientes distribuídos, com grande volume de informações manipuladas por uma grande quantidade de usuários.

2 - O que é e como funcionam os SGBD? Explique a evolução dos arquivos, passando pelo BD até SGBD.
Sistema de Gerenciamento de Bancos de Dados (SGBD): é um software com recursos específicos para facilitar a manipulação das informações dos bancos de dados e o desenvolvimento de programas aplicativos. Exemplos: Oracle, Ingres, Paradox*, Access*, DBase*.
Os sistemas de banco de dados são projetados para gerenciar grandes grupos de informações. O gerenciamento de dados envolve a definição de estruturas para armazenamento de informação e o fornecimento de mecanismos para manipulá-las. Além disso, o sistema de banco de dados precisa fornecer segurança das informações armazenadas, caso o sistema dê problema, ou contra tentativas de acesso não-autorizado. Se os dados devem ser divididos entre diversos usuários, o sistema precisa evitar possíveis resultados anômalos.
Em 1970 um pesquisador da IBM - Ted Codd levou a IBM a montar um grupo de pesquisa conhecido como System R (Sistema R). O projeto do Sistema R era criar um sistema de banco de dados relacional o qual eventualmente se tornaria um produto. Os primeiros protótipos foram utilizados por muitas organizações, tais como MIT Sloan School of Management (uma escola renomada de negócios norte-americana). Novas versões foram testadas com empresas aviação para rastreamento do manufaturamento de estoque. Eventualmente o Sistema R evoluiu para SQL/DS, o qual posteriormente tornou-se o DB2.
O primeiro sistema de banco de dados construído baseado nos padrões SQL começaram a aparecer no início dos anos 80 com a empresa Oracle através do Oracle 2 e depois com a IBM através do SQL/DS, servindo como sistema e repositório de informações de outras empresas. O software de banco de dados relacionais foi sendo refinado durante a década de 80, devido ao desenvolvimento de sistemas para novas indústrias e ao aumento do uso de computadores pessoais e sistemas distribuídos.
Desde sua chegada, os bancos de dados têm tido aumento nos dados de armazenamento, desde os 8 MB (Megabytes) até centenas de Terabytes de dados em listas de e-mail, informações sobre consumidores, sobre produtos, vídeos, informações geográficas, etc. No início de 1990, temos a aparição do primeiro Sistema de Gerenciamento de Banco de Dados Orientado a Objetos, através da companhia Objectivity. Isso permitiu com que usuários criassem sistemas de banco de dados para armazenar resultados de pesquisas como o CERN (maior laboratório que trabalha com partículas físicas em pesquisas nucleares - europeu) e SLAC (Centro de Aceleração Nuclear - norte-americano), para mapeamento de rede de provedores de telecomunicações e para armazenar registros médicos de pacientes em hospitais, consultórios e laboratórios.

3 - Quais são os tipos de conexão existentes com BD? Explique-as.
Existem 5 tipos de conexões, que serão explicadas abaixo.
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.

4 - Quais são os modelos de dados existentes? Explique-os.
Modelo de dados de alto nível: o modelo de dados de alto nível apresenta as entidades e seus relacionamentos, em alto nível de abstração
Modelo de dados de nível intermediário: o modelo de dados de nível intermediário é criado a partir do modelo de alto nível após ser identificada cada uma das áreas de interesse ou entidades de modelagem. Para cada área de interesse, é desenvolvido um nível intermediário próprio.
Modelo de dados de baixo nível: o modelo de dados de baixo nível é também conhecido por modelo físico de dados. É criado a partir do modelo de nível intermediário, fazendo com que ele possua chaves e características específicas, ou seja, é criado a partir da expansão do modelo de nível intermediário. È nesse ponto que o modelo precisa ser alterado a fim de melhorar a performance.

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).
Os projetos Lógicos e funcional do Banco de Dados devem prever o volume de informações que serão armazenadas a curto, médio e longo prazo.
Generalidade e alto grau de abstração de dados, para que seja confiável e eficiente no armazenamento de dados. Flexibilidade para suportar diferentes gerenciadores de dados através de linguagens de consultas padronizadas
Projeto compatível com várias plataformas (UNIX, Windows NT)
Projeto de interface ágil
Independência de implementação da interface em relação aos SGBDs que darão condições as operações de armazenamento de infromações (Oracle, Padrão Xbase)
Conversão de mapeamento da diferença semântica entre paradigmas utilizados em seu desenvolvimento de interfaces (Procedural, Orientado a Objeto), servidores de dados (Relacional) e programação dos aplicativos.

6 - Quais são as arquiteturas de SGBD’s? Explique-as.
- Banco de Dados PostgreSQL
O sistema gerenciador de banco de dados PostgreSQL teve seu início na Universidade de Berkeley, na Califórnia, em 1986. Na época, um programador chamado Michael Stonebraker liderou um projeto para a criação de um servidor de banco de dados relacionais chamado Postgres, oriundo de um outro projeto da mesma instituição denominado Ingres. Essa tecnologia foi então comprada pela Illustra, empresa posteriormente adquirida pela Informix. Porém, mesmo diante disso, dois estudantes de Berkeley (Jolly Chen e Andrew Yu) compatibilizaram o Postgres à linguagem SQL. Este projeto recebeu o nome de Postgres95.
Em 1996, quando o projeto estava estável, o banco de dados recebeu o nome de PostgreSQL. No entanto, enquanto ainda possuía o nome Postgres95, o banco de dados teve várias mudanças. O seu código foi totalmente revisado e a linguagem SQL foi definida como padrão.
Tecnicamente falando, o PostgreSQL é um banco de dados relacional e orientado a objetos. Um de seus atrativos é possuir recursos comuns a banco de dados de grande porte, o que o deixa apto a trabalhar, inclusive, com operações de missão crítica. Além disso, trata-se de um banco de dados versátil, seguro, gratuito e de código aberto (disponível sob uma licença BSD).
Entre suas características, tem-se:
- Compatibilidade multi-plataforma, ou seja, executa em vários sistema operacionais, como Windows, Mac OS X, Linux e outras variantes de Unix;
- Compatibilidade com várias linguagens, entre elas, Java, PHP, Python, Ruby, e C/C++;
- Base de dados de tamanho ilimitado;
- Tabelas com tamanho de até 32 TB;
- Quantidade de linhas de até 1.6 TB ilimitada;
- Campos de até 1 GB;
- Suporte a recursos como triggers, views, stored procedures, SSL, MVCC, schemas, transactions, savepoints, referential integrity e expressões regulares;
- Instruções em SQL, como indica o nome.
- Banco de Dados MySQL
O MySQL é um dos sistemas de gerenciamento de banco de dados mais populares que existe e, por ser otimizado para aplicações Web, é amplamente utilizado na internet. É muito comum encontrar serviços de hospedagem de sites que oferecem o MySQL e a linguagem PHP, justamente porque ambos trabalham muito bem em conjunto.
Outro fator que ajuda na popularidade do MySQL é sua disponibilidade para praticamente qualquer sistema operacional, como Linux, FreeBSD (e outros sistemas baseados em Unix), Windows e Mac OS X. Além disso, o MySQL é um software livre (sob licença GPL), o que significa que qualquer um pode estudá-lo ou alterá-lo conforme a necessidade.
Entre as características técnicas do SGBD MySQL, estão:
- Alta compatibilidade com linguagens como PHP, Java, Python, C#, Ruby e C/C++;
- Baixa exigência de processamento (em comparação como outros SGBD);
- Vários sistemas de armazenamento de dados (batabase engine), como MyISAM, MySQL Cluster, CSV, Merge, InnoDB, entre outros;
- Recursos como transactions (transações), conectividade segura, indexação de campos de texto, replicação, etc;
- Instruções em SQL, como indica o nome.
Em relação à versão 4.0, houve acréscimo de vários recursos e melhorias importantes, como:
- Triggers;
- Stored procedures;
- Sub-selects;
- Suporte total ao Unicode;
- INFORMATION_SCHEMA (para armazenamento do dicionário de dados);
- Server side cursors;
- Suporte a SSL;
- Melhoria no tratamento de erros.
O MySQL surgiu na Suécia pelas mãos de três colegas: Allan Larsson, David Axmark e Michael Monty Widenius. Trabalhando com base de dados, eles sentiram a necessidade de fazer determinadas conexões entre tabelas e usaram o mSQL para isso. Porém, não demorou para perceberem que essa ferramenta não lhes atendia conforme o necessário e passaram a trabalhar em uma solução própria. Surgia então o MySQL, cuja primeira versão foi lançada no ano de 1996.
Um fato importante a ser destacado sobre o MySQL é que esse SGBD também possui uma licença comercial, isto é, paga. Neste caso, é possível obter suporte diferenciado dos desenvolvedores.
Vale ressaltar também que, em fevereiro de 2008, o MySQL foi comprado pela Sun Microsystems, que pagou a quantia de 1 bilhão de dólares pela aquisição.

Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é uma linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional). Muitas das características originais do SQL foram inspiradas na álgebra relacional.
A linguagem SQL é um grande padrão de banco de dados. Isto decorre da sua simplicidade e facilidade de uso. Ela se diferencia de outras linguagens de consulta a banco de dados no sentido em que uma consulta SQL especifica a forma do resultado e não o caminho para chegar a ele. Ela é um linguagem declarativa em oposição a outras linguagens procedurais. Isto reduz o ciclo de aprendizado daqueles que se iniciam na linguagem.
Com a linguagem SQL é possível:
-Criar, alterar e remover todas as componentes de uma base de dados, como tabelas, índices, views, etc.;
-Inserir, alterar e apagar dados;
-Interrogar a base de dados;
-Controlar o acesso dos utilizadores à base de dados, e às operações a que cada um deles tem acesso;
-Obter a garantia da consistência e integridade dos dados;
A linguagem SQL é composta por vários conjuntos de comandos:
DDL (Data Definition Language): comandos para definir ou modificar a composição das tabelas, apagar tabelas, criar índices, definir “views”, especificar direitos de acesso a tabelas e views;
DML
o (interactive Data Manipulation Language): inclui uma linguagem de consulta baseada em álgebra relacional e em cálculo relacional sobre registos; inclui também comandos para inserir, apagar e modificar registros na base de dados;
o (embedded Data Manipulation Language): projectada para ser usada a partir de linguagens de programação de uso geral, da 3ª geração;
As novas versões de SQL incluem capacidades de verificação de integridade dos dados, bem como comandos para especificação do princípio e fim de transações; algumas implementações permitem o impedimento explícito de acesso aos dados, para controle de acesso concorrencial.
- Banco de Dados Oracle
Oracle é um sistema de banco de dados que surgiu no final dos anos 70, quando Larry Ellison vislumbrou uma oportunidade que outras companhias não haviam percebido, quando encontrou uma descrição de um protótipo funcional de um banco de dados relacional e descobriu que nenhuma empresa tinha se empenhado em comercializar essa tecnologia. Ellison e os co-fundadores da Oracle Corporation, Bob Miner e Ed Oates, perceberam que havia um tremendo potencial de negócios no modelo de banco de dados relacional tornando assim a maior empresa de software empresarial do mundo. Com faturamento anual superior a 10,8 bilhões de dólares, a empresa oferece seus produtos de bancos de dados, ferramentas e aplicativos, bem como serviços relacionados de consultoria, treinamento e suporte. A tecnologia Oracle pode ser encontrada em quase todos os setores do mundo inteiro e nos escritórios de 98 das empresas citadas na lista da Fortune 100.
O Oracle 9i foi pioneiro no suporte ao modelo web. O Oracle 10g, mais recente, se baseia na tecnologia de grid. Recentemente fora lançado o Oracle 11g que veio com melhorias em relação ao Oracle 10g.
Além da base de dados, a Oracle desenvolve uma suíte de desenvolvimento chamada de Oracle Developer Suite, utilizada na construção de programas de computador que interagem com a sua base de dados.
A Oracle também criou a linguagem de programação PL/SQL, utilizada no processamento de transações.
Além das diferentes versões do software de gerenciamento de banco de dados Oracle, a Oracle Corporation subdivide seu produto em "edições" variáveis - aparentemente por razões de marketing e controle de licenças.
* Enterprise Edition (EE) inclue mais funcionalidades que a 'Standard Edition', especialmente nas áreas de performance e segurança. A Oracle Corporation licensia este produto na base de usuários ou de processadores, normalmente para servidores com 4 ou mais UCPs. EE não tem limite de memória e pode utilizar clusterização usando o software Oracle RAC.
* Standard Edition (SE) contem a a funcionalidade básica de banco de dados. A Oracle Corporation licensia este produto na base de usuários ou de processadores, normalmente para servidores com um à quatro UCPs. Se o número de UCPs exceder 4, o usuário deve migrar para a licensa Enterprise. SE não possui limite de memória e pode utilizar clusterização com o Oracle RAC sem custo adicional.
* Standard Edition One, introduziado com o Oracle 10g, possui algumas restrições de funcionalidades adicionais. A Oracle Corporation comercializa-o para uso em sistemas com uma ou duas UCPs. Ela não possui limitações de memória.
* Express Edition ('Oracle Database XE'), introduziada em 2005, oferece o Oracle 10g livre para distribuição nas plataformas Windows e Linux (com uma limitação de apenas 150 MB e restrita ao uso de apenas uma UCP, um máximo de 4 GB de dados de usuário e 1 GB de memória). O suporte para esta versão é feito exclusivamente através de fóruns on-line, sem o suporte da Oracle.
* Oracle Personal Edition fornece a funcionalidade de "alto fim" da Enterprise Edition mas é comercializada (e licenciada) para desenvolvedores específicos que trabalham em estações de trabalho pessoais.
* Oracle Database Lite, destinada para rodar em dispositivos móveis. O banco de dados, localizado parcialmente no dispositivo móvel, pode sincronizar com uma instalação baseada em servidor.
- Banco de Dados MS SQL
O MS SQL Server é um SGBD - sistema gerenciador de Banco de dados relacional criado pela Microsoft. Com a nova versão o Microsoft SQL Server 2008 é fornecida uma plataforma de dados confiável, produtiva e inteligente que permite que você execute suas aplicações de missão crítica mais exigentes, reduza o tempo e o custo com o desenvolvimento e o gerenciamento de aplicações e entregue percepção que se traduz em ações estratégicas em toda sua organização.O SQL É um Banco de dados robusto e usado por sistemas corporativos dos mais diversos portes.
Principais Recursos do SQL Server 2008
O Microsoft SQL Server 2008 fornece uma plataforma confiável de dados que permite que a execução de aplicações de missão crítica mais exigentes.
O SQL permite a encriptação de um banco de dados inteiro, arquivos de dados ou arquivos de log, com necessidade de mudanças nas aplicações. Os benefícios dessa encriptação incluem: consultas de dados encriptados usando consultas em série ou associadas, proteger os dados de consultas de usuários não autorizados e encriptação de dados sem requerer qualquer mudança nas aplicações existentes.
* Gerenciamento de Chave Extensível: O SQL Server 2005 fornece uma solução abrangente para a encriptação e o gerenciamento de chaves. O SQL Server 2008 entrega uma solução ineficaz para essa crescente necessidade, dando suporte aos produtos HSM e ao gerenciamento de chave de terceiros.
* Auditoria: Cria e gerencia a auditoria via DDL, ao mesmo tempo em que simplifica a adequação, fornecendo dados de auditoria mais abrangentes. Isto permite que as empresas respondam perguntas como “Quais dados foram recuperados?”

Baixe o arquivo da postagem aqui

Nenhum comentário:

Postar um comentário