UNIESP - FACULDADE RENASCENÇA ADMINISTRAÇÃO DE EMPRESAS ADMINISTRAÇÃO DE SISTEMA DE INFORMAÇÃO Aline Bandeira Brizola Ducatti RA 08100893 Danilo Mangabeira RA 09102970 Fernando S. Do Nascimento RA 06117989 Joélia de Jesus Almeida dos Santos RA 08102020 Michelle Cavalcanti RA 09102907 Silvana S. Costa Leme RA 08101640 BANCO DE DADOS 2009 (4º SEMESTRE) São Paulo 2009 Aline Bandeira Brizola Ducatti RA 08100893 Danilo Mangabeira RA 09102970 Fernando S. Do Nascimento RA 06117989 Joélia de Jesus Almeida dos Santos RA 08102020 Michelle Cavalcanti RA 09102907 Silvana S. Costa Leme RA 08101640 BANCO DE DADOS 2009 (4º SEMESTRE) Trabalho Acadêmico apresentado à disciplina Administração de Sistema de Informação da Uniesp – Faculdades Renascença, como nota parcial sob orientação da Professora Olívia Braga. São Paulo 2009 Informação é Conhecimento, Conhecimento é Poder e quem tem poder está no Comando. Goxany Sonamize Uchouane SUMÁRIO 1. INTRODUÇÃO........................................................................5 2. DADOS X INFORMAÇÃO..........................................................6 2.1 Dados .................................................................................6 2.2 Informação...........................................................................6 3. BANCO DE DADOS.................................................................7 3.1 Estrutura de banco de dados...................................................7 4. COMO UTILIZAR O BANCO DE DADOS......................................8 5. SEGURANÇA EM BANCO DE DADOS..........................................9 5.1 Criptografia...........................................................................9 5.2 Senhas.................................................................................9 5.3 Backup.................................................................................9 6. FUNÇÕES INTERNAS COMUNS EM BANCO DE DADOS.................9 6.1 Regras.................................................................................9 6.1.1 Regras de Negócios...............................................................9 6.1.2 Regras de Normatização de dados...........................................9 6.1.3 Regras de Segurança.............................................................9 6.2 Procedimento Armazenado......................................................9 6.3 Gatilho...............................................................................10 6.4 Índice.................................................................................10 6.5 Tabelas...............................................................................10 7. TIPOS DE BANCO DE DADOS.................................................11 7.1 Oracle ...............................................................................12 8. MODELO DE BANCO DE DADOS.............................................12 8.1 Modelo Relacional................................................................13 9. QUAIS OS DESAFIOS PARA IMPLANTAR O BANCO DE DADOS....14 9.1 Controle de Redundância......................................................14 9.2 Compartilhamento de Dados..................................................15 9.3 Restrição a Acesso não Autorizado..........................................15 9.4 Representação de Relacionamentos Complexo entre Dados........15 9.5 Tolerância a Falhas...............................................................15 10. CONCLUSÃO........................................................................16 11. BIBLIOGRAFIA.....................................................................17 12. ANEXOS..............................................................................18 1. INTRODUÇÃO Com o avanço tecnológico é importante destacar que dentro de uma organização, o conceito bem definido sobre o que é “Dado”, assim como, o que é “Informação” é necessário para que se obtenha resultados satisfatórios. Com tudo não basta apenas defini-los, mas colocá-los em prática dia após dia, buscando a eficácia necessária que tem início no sistema de gestão de organização em questão. Quando precisamos armazenar, coletar e retornar informações, a primeira coisa que nos vem a mente é a utilização de um banco de dados, e, neste quesito não faltam opções no mercado, o trabalho a seguir nos dará informações sobre eles, sua utilização e os desafios de implantá-los. 2. DADOS X INFORMAÇÃO 2.1 Dado: É um elemento que mantém a sua forma bruta (texto, imagens, sons, vídeos, etc.), ou seja, ele sozinho não levará a compreender determinada situação. Tipos de Dados: Numérico: Qualquer tipo de dado que não possua nenhum caractere alfanumérico. Ex: A idade de um funcionário. Texto: Qualquer tipo de dado de caractere alfanumérico. Ex: O nome de um funcionário. Data: Datas, independente de seus formatos. Ex: A data de aniversário de um funcionário. Imagens: Imagens a serem armazenadas em uma base de dados. Ex: A foto de um funcionário. 2.2 Informação: é o resultado do processamento de uma sequência de dados. Esse processamento ocorre porque os dados precisam sofrer a intervenção de um agente transformador, cujo a função é de interpretar os dados para que a informação passo agregar conhecimento. Ex: Os dados cadastrais de um funcionário juntamente com os dados de cadastrais de um departamento, poderá gerar informações que serão tratadas na geração da folha de pagamento de uma determinada empresa. Característica da Informação Pertinência; Disponibilidade no tempo adequado; Precisão. 3. BANCO DE DADOS Bancos de dados (ou bases de dados) são conjuntos de registros dispostos em estrutura regular que possibilita a reorganização dos mesmos e produção de informação. Um banco de dados normalmente agrupa registros utilizáveis para um mesmo fim. Um banco de dados é usualmente mantido e acessado por meio de um software conhecido como SGBD. Normalmente um SGBD adota um modelo de dados de forma, pura, reduzida ou estendida. O modelo de dados mais adotado hoje em dia é o modelo relacional, onde as estruturas têm a forma de tabelas, compostas por tuplas (linhas) e colunas. Os bancos de dados se engenharam graças à necessidade das grandes empresas de armazenar grandiosas quantidades de informação de uma forma rápida, simples e confiável, e que por sua vez pudessem acessá-la em qualquer momento sem a necessidade de se deslocar às salas dedicadas a arquivar documentação, como até há pouco tempo se fazia. Como definição do banco de dados, entendemos que se trata de um conjunto de dados inter-relacionados e armazenados sem redundâncias desnecessárias, os quais servem às aplicações sem estarem relacionados de uma maneira direta entre eles. Um banco de dados pode ser utilizado por várias aplicações e usuários. Todo banco de dados deve permitir inserir, modificar e excluir dados, portanto nos bancos de dados se salvam informações de dois tipos: Os dados de usuários (dados usados pelas aplicações). Os dados de sistema (dados que o banco de dados utiliza para sua administração. Ex: Dados dos usuários que têm acesso ao banco de dados). 3.1 Estrutura do Banco de dados Geralmente a estrutura do banco de dados é semelhante à de uma planilha eletrônica, porém os sistemas de gestão de banco de dados possuem características especiais para o armazenamento, classificação, gestão da integridade e recuperação dos dados. Com a evolução de padrões de conectividade entre as tabelas de um banco de dados e programas desenvolvidos em linguagens como Java, Delphi, Visual Basic e etc. A apresentação dos dados, bem como a navegação, passou a ser definida pelo programador ou o designer de aplicações. Como hoje em dia a maioria das linguagens de programação fazem ligações a bancos de dados, a apresentação destes tem ficado cada vez mais a critério dos meios de programação, fazendo com que os bancos de dados deixem de restringir-se às pesquisas básicas, dando lugar ao compartilhamento, em tempo real, de informações, mecanismos de busca inteligentes e permissividade de acesso hierarquizada. 4. COMO UTILIZAR O BANCO DE DADOS? 1º Os dados são transformados em informações; 2º A informação é transformada em conhecimento. Esse processo pode proporcionar condições adequadas para análises que implicaram em tomada de decisões. De posse da informação, nem sempre o conhecimento é necessário ou adequado, pois, se a base de dados não for consistente, após o processamento do mesmo, haverá um retorno limitado. Ou seja, informações não satisfatórias para uma tomada de decisão coerente tende a apresentar resultados com pouco utilidade prática, podendo gerar consequências funcionários, devido desastrosas, a assim re-processo ou como até a ineficiência mesmo a falta de de conhecimento. Para obter o resultado esperado de uma base de dados devemos seguir os seguintes passos: 1º Definir o tipo de informação primordial de acordo com a atividade da organização. 2º Análise dos dados, buscando clareza e um bom relacionamento entre entidades de um banco de dados. 3º Um bom desempenho e objetividade do processamento dos dados. Os tópicos apresentados no slide anterior representa a estrutura básica para que uma organização obtenha bons resultados através da dinâmica do seu “sistema de informação”. 5. SEGURANÇA EM BANCO DE DADOS Os bancos de dados são utilizados para armazenar diversos tipos de informações, desde dados sobre uma conta de e-mail até dados importantes da Receita Federal. Para tal existem diversos tipos, os quais variam em complexidade e, sobretudo em segurança. 5.1 Criptografia: São dados que vem codificados. 5.2 Senhas: São formas de controlar os acessos, garintindo o sigilo dos dados. 5.3 Backup: É uma forma de guardar os dados, modo a resgatá-los a qualquer momento. 6. FUNÇÕES INTERNAS COMUNS EM BDs 6.1 Regras: 6.1.1 Regras de Negócio: Relacionadas a procedimentos e verificações que tem a ver com o conteúdo. Definem como devem ser relacionadas entre si as informações e podem incluir procedimentos automáticos, programados internamente (Gatilhos ou triggers) para verificação e validação dos dados de acordo com a necessidade do usuário. Nos bancos de dados relacionais, podem ser criados procedimentos armazenados ou (Stored Procedures) internos que definem o que deve ocorrer quando se insere ou edita-se informação dentro de uma tabela interna. 6.1.2 Regras de normalização de dados: Relacionadas com a estrutura ou modo como as informações são armazenadas. Incluem princípios ou “normas formais” que contribuem para a qualidade e melhor desempenho no uso dos dados. 6.1.3 Regras de Segurança: Especificam procedimentos e direitos de utilização das informações armazenadas. Incluem definições de usuários e permissões de acesso, edição, alteração e exclusão das informações. 6.2 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 o desempenho, criar mecanismos de segurança, etc. 6.3 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. 6.4 Índice: É um arquivo auxiliar associado a uma Tabela. Sua função é acelerar o tempo de acesso às linhas de uma Tabela, cria ponteiros para os dados armazenados em colunas especificas. O Banco de dados usa o Índice de maneira semelhante ao índice remissivo de um livro, verifica um determinado assunto no Índice e depois localiza a sua posição em uma determinada página. 6.5 Tabelas: Nos modelos de bases de dados relacionais, a tabela é um conjunto de dados dispostos em número finito de colunas e número ilimitado de linhas (ou tuplos). As colunas são tipicamente consideradas os campos da tabela, e caracterizam os tipos de dados que deverão constar na tabela (numéricos, alfa-numérico, datas, coordenadas, etc). O número de linhas pode ser interpretado como o número de combinações de valores dos campos da tabela, e pode conter linhas idênticas, dependendo do objetivo. A forma de referenciar inequivocamente uma única linha é através da utilização de uma chave primária. Para além do tipo de dados inerente a todas as colunas de uma tabela, algumas (SQL: UNIQUE), podem proibição ter associadas de restrições: a unicidade valores NULL (SQL: NOT NULL), delimitação de valores, etc. Estas restrições impedem que sejam inseridos valores não desejados que comprometam a validade e integridade dos dados. O número de tuplas de uma tabela é virtualmente ilimitado, o que torna as pesquisas por valor potencialmente muito lentas. Para permitir agilizar estas consultas, podem ser associados índices à tabela, que são estruturas de dados independentes da forma e ordem como estão armazenados os dados, embora tenham relação direta com os mesmos. Como consequência, a cada alteração de dados, irá corresponder uma (ou mais) alterações em cada um dos índices, aumentando o esforço necessário ao SGBD para gerir essa alteração, motivo pelo qual os índices não existam naturalmente para cada coluna. A estrutura usada para a elaboração do índice depende do SGBD e do tipo de dados das colunas usadas no índice: árvore B, árvore R, etc. Não obstante o papel principal da tabela ser a de armazenamento de dados, é também utilizada como representação de relações, tipicamente de N para M. Nesse caso específico, essa tabela irá dispor obrigatoriamente de duas relações 1 para N — uma para a tabela N e outra para a tabela M — e, eventualmente, de atributos específicos à relação. Como consequência desta característica, este tipo de tabela nunca poderá conter linhas duplicadas. Outro tipo de tabela especial — por não fazer armazenamento de dados — é a vista, cujas tuplas são determinadas dinamicamente através de uma query (consulta) de tabelas reais (que armazenam os dados). 7. TIPOS DE BANCOS DE DADOS Existem diversos tipos de bancos de dados, vejamos alguns: ANTS APACHE BLACKFISHSQL CACHÉ DERBY DATAFLEX DB2 FIREBIRD HSQLDB H2 INFORMIX INGRES INTERBASE MAXDB MSDE MICROSOFT SQL SERVER MSACCESS MYSQL ORACLE PARADOX POSTGRESQL SMALLSQL SQLBASE SQLITE SYBASE VIRTUOSO Falaremos um pouco sobre o Oracle que é um dos mais conhecidos SGBD. 7.1 Oracle O Oracle é um SGBD que surgiu no fim 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. O SGBD da Oracle é líder de mercado. 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. 8. MODELO DE BANCO DE DADOS O modelo plano (ou tabular) consiste de matrizes simples, bidimensionais, compostas por elementos de dados: inteiros, números reais, etc. Este modelo plano é a base das planilhas eletrônicas. O modelo em rede permite que várias tabelas sejam usadas simultaneamente através do uso de apontadores (ou referências). Algumas colunas contêm apontadores para outras tabelas ao invés de dados. Assim, as tabelas são ligadas por referências, o que pode ser visto como uma rede. Uma variação particular deste modelo em rede, o modelo hierárquico, limita as relações a uma estrutura semelhante a uma árvore (hierarquia - tronco, galhos), ao invés do modelo mais geral direcionado por grafos. 8.1 Modelo Relacional O modelo relacional para SGBD é um modelo de dados baseado em lógica e na teoria de conjuntos. Historicamente ele é o sucessor do modelo hierárquico e do modelo em rede. Estas arquiteturas antigas são até hoje utilizadas em alguns data centers com alto volume de dados, onde a migração é inviabilizada pelo custo que ela demandaria; existem ainda os novos modelos baseados em orientação ao objeto, que na maior parte das vezes são encontrados como kits de construção de SGBD, ao invés de um SGBD propriamente dito. O modelo relacional foi o primeiro modelo de banco de dados formal. Somente depois seus antecessores, os bancos de dados hierárquicos e em rede, passaram a ser também descritos em linguagem formal. O modelo relacional foi inventado pelo Dr. Codd e subsequentemente mantido e aprimorado por Chris Date e Hugh Darwen como um modelo geral de dados. No Terceiro Manifesto (1995) eles mostraram como o modelo relacional pode ser estendido com características de orientação a objeto sem comprometer os seus princípios fundamentais. A linguagem padrão para os bancos de dados relacionais, SQL, é apenas vagamente remanescente do modelo matemático. Atualmente ela é adotada, apesar de suas restrições, porque ela é antiga e muito mais popular que qualquer outra linguagem de banco de dados. A principal proposição do modelo relacional é que todos os dados são representados como relações matemáticas, isto é, um subconjunto do produto Cartesiano de n conjuntos. No modelo matemático (diferentemente do SQL), a análise dos dados é feita em uma lógica de predicados de dois valores (ou seja, sem o valor nulo); isto significa que existem dois possíveis valores para uma proposição: verdadeira ou falsa. Os dados são tratados pelo cálculo relacional ou álgebra relacional. O modelo relacional permite ao projetista criar um modelo lógico consistente da informação a ser armazenada. Este modelo lógico pode ser refinado através de um processo de normalização. Um banco de dados construído puramente baseado no modelo relacional estará inteiramente normalizado. O plano de acesso, outras implementações e detalhes de operação são tratados pelo sistema DBMS, e não devem ser refletidos no modelo lógico. Isto se contrapõe à prática comum para DBMSs SQL nos quais o ajuste de desempenho frequentemente requer mudanças no modelo lógico. Os blocos básicos do modelo relacional são o domínio, ou tipo de dado. Uma tupla é um conjunto de atributos que são ordenados em pares de domínio e valor. Uma relvar (variável relacional) é um conjunto de pares ordenados de domínio e nome que serve como um cabeçalho para uma relação. Uma relação é um conjunto desordenado de tuplas. Apesar destes conceitos matemáticos, eles correspondem basicamente aos conceitos tradicionais dos bancos de dados. Uma relação é similar ao conceito de tabela e uma tupla é similar ao conceito de linha. O princípio básico do modelo relacional é o princípio da informação: toda informação é representada por valores em relações (relvars). Assim, as relvars não são relacionadas umas às outras no momento do projeto. Entretanto, os projetistas utilizam o mesmo domínio em vários relvars, e se um atributo é dependente de outro, esta dependência é garantida através da integridade referencial. 9. QUAIS SÃO OS DESAFIOS DE IMPLANTAÇÃO? 9.1 Controle de Redundância No processamento tradicional de arquivos, cada grupo de usuários deve manter seu próprio conjunto de arquivos e dados. Desta forma, acaba ocorrendo redundâncias que prejudicam o sistema com problemas como: Toda vez que for necessário atualizar um arquivo de um grupo, então todos os grupos devem ser atualizados para manter a integridade dos dados no ambiente como um todo; A redundância desnecessária de dados levam ao armazenamento excessivo de informações, ocupando espaço que poderiam ser utilizados com outras informações. 9.2 Compartilhamento de Dados Um SGBD deve permitir que múltiplos usuários acessem o banco de dados ao mesmo tempo. Este fator é essencial para que múltiplas aplicações integradas possam acessar o banco. O mesmo deve manter o controle de concorrência para assegurar que os resultados de atualizações sejam corretos. Um banco de dados deve fornecer recursos para a construção de múltiplas visões. 9.3 Restrição a Acesso não Autorizado Um SGBD deve fornecer um subsistema de autorização e segurança, o qual é utilizado pelo DBA para criar “contas” e especificar as restrições destas contas; o controle de restrições se aplica tanto ao acesso aos dados, quanto ao uso de softwares inerentes ao SGBD. 9.4 Representação de Relacionamentos Complexos entre Dados Um banco de dados pode incluir uma variedade de dados que estão inter-relacionados de várias formas. Um SGBD deve fornecer recursos para representar uma grande variedade de relacionamentos entre os dados, bem como, recuperar e atualizar os dados de maneira prática e eficiente. 9.5 Tolerância a Falhas Um SGBD deve fornecer recursos para recuperação de falhas tanto de software quanto de hardware. 10. CONCLUSÃO Concluímos que uma coleta de dados, após um processamento dentro de um banco de dados, gera a informação. A informação por sua vez, gera o conhecimento. Desta forma observamos a importância de um sistema de banco de dados como ferramenta para organização, tendo como principal finalidade de oferecer subsídios necessários para tomada de decisões. A informação varia de indivíduo para indivíduo, devido ao nível de interpretação e características do analista responsável pelo processo em questão. Portanto, a questão principal não é somente o tipo de informação que terá em mãos, mas como ela será interpretada. 11. BIBLIOGRAFIA Fonte: http://pt.wikipedia.org/wiki/Banco_de_dados acesso em 10/09/2009. 12. ANEXO