Prévia do material em texto
Modelagem de Dados – Apoio aulas 1 e 2 (Prof. Vanilde) Bibliografia: HEUSER, C. Projeto de Banco de Dados. Editora Artmed 6.Ed, 2009, Série de Livros Didáticos, número 4. SILBERSCHATZ, Abraham; KORTH, Henry F; SUDARSHAN, S. A. Sistema de banco de dados. 5ª ed. Rio de Janeiro: Campus, 2006 ELMASRI, R.; NAVATHE, S., Sistemas de Banco de Dados. Pearson Education do Brasil, 4ª.Ed 2005. · Dados x informação · Processo · Os dados relevantes e que devem ser manipulados por um determinado negócio se mantém estáveis mesmo que o negócio em questão modifique radicalmente sua forma de operação, ou seja, seus processos. Logo, os dados são mais estáveis que os processos. Por esta razão muitos autores acreditam que o banco de dados é uma das partes mais valiosas e importantes de um sistema de informação. Banco de dados: · “É uma coleção de fatos registrados que refletem o estado de certos aspectos de interesse do mundo real. “(Machado e Abreu, 1995) Sistema Gerenciador de Banco de Dados (SGBD): · é uma coleção de programas que permite ao usuário criar e manter um banco de dados. ” (Navathe, 1994) · “é uma coleção de programas e utilitários para organizar, armazenar, atualizar e recuperar dados.”(Hackathorn, 1993) Evolução Histórica dos Banco de Dados: Os primeiros Sistemas de Banco de Dados foram implantados no mercado no final da década de 60 e eram conceitualmente muito simples (não possuindo todos os conceitos anteriores), de acordo com as necessidades das aplicações da época. Inicialmente os grandes impulsionadores deste segmento foram a IBM, ORACLE e SYBASE. A melhor maneira de entender a natureza geral e as características dos bancos de dados de hoje é olhar para as características dos sistemas que antecederam o uso da tecnologia de banco de dados: os Sistemas de Gerenciamento de Arquivos. · Cada usuário define e implementa os arquivos necessários para uma aplicação específica, acarretando repetição dos dados gerando inconsistência nas informações. · O acesso aos dados está escrito nos programas que o manipulam, subordinando os programas aos arquivos. · A manipulação dos dados contidos nos arquivos pelas aplicações específicas dificulta o desenvolvimento de novos sistemas e torna a manutenção dos aplicativos difícil e cara. · O sistema possibilita uma redundância não controlada de dados e inconsistência ao permitir que em um sistema um dado seja alterado e esse mesmo dado não seja alterado em outro. · A responsabilidade sobre os procedimentos de backup e recuperação esta a cargo da aplicação. Banco de Dados · Um arquivo (tabela) é definido uma única vez e atende a várias aplicações · Armazena-se junto com os dados toda as informações referentes à forma como foram estruturados os dados e onde eles estão armazenados fisicamente. Essas informações estão armazenadas em um catálogo que é chamado de meta-data. · Há separação entre programas e dados. No SGBD os acessos são escritos no banco de dados e os programas enviam comandos solicitando o acesso aos dados. Esse conceito é chamado de abstração de dados, que caracteriza-se por uma independência entre programas e dados e entre programas e operações de manipulação de dados. · São permitidas visões diferenciadas sobre a mesma base de dados para aplicações diferentes. · É permitido acesso simultâneo de vários usuários ao mesmo dado. Essa simultaneidade é tratada através do gerenciamento da concorrência. Componentes de um Sistema de Banco de Dados · Programas de Aplicações/Consultas: software que permite aos usuários acessarem o banco de dados · Sistema Gerenciador de Banco de Dados(SGBD): coleção de programas que permite aos usuários criar e manter um banco de dados. O SGBD é, portanto, um sistema de software de propósito geral que facilita os processos de definição, construção, manipulação e compartilhamento de bancos de dados entre vários usuários e aplicações. · Base de Dados: arquivos contendo os dados e os metadados. Pessoas envolvidas com Banco de Dados Administrador de dados (AD): responsáveis por identificar os dados a serem armazenados no BD e por escolher as estruturas apropriadas para representar e armazenar esses dados. Eles devem se comunicar com os possíveis usuários do BD, obter a visão dos dados que cada um possui, integrando-as de forma a se obter uma representação adequada de todos os dados. Estas visões são então analisadas e, posteriormente, integradas para que, ao final, o projeto da base de dados possa ser capaz de dar suporte aos requisitos de todos os grupos de usuários. Além disto, desenvolve e mantém o dicionário de dados, garante as necessidade corporativas de dados OBS: algumas organizações chamam esta função de Analista de Banco de Dados ou Projetista · Administradores do BD (ABD) : em qualquer organização onde muitas pessoas compartilham muitos recursos, existe a necessidade de um administrador chefe para supervisionar e gerenciar estes recursos. Num ambiente de base de dados, o recurso primário é a própria base de dados e os recursos secundários são o próprio SGBD e software relacionados. A administração desses recursos são de responsabilidade do DBA (“Database Administrator”). O DBA é responsável por: · Autorizar acesso à base de dados e coordenar e monitorar seu uso. · Desenvolver os esquemas internos através da construção das tabelas, índices, etc., Garantir a segurança dos dados, bem como seu backup e recuperação em caso de falhas, Garantir a performance do banco de dados · Desenvolver visões que atendam ao esquema externo OBS: Em grandes organizações, existe uma equipe de DBA´s; · Analistas de sistemas e Programadores de aplicação: os analistas de sistemas determinam os requisitos dos usuários finais, especialmente de usuários que necessitam de maior interação com o BD, enquanto que os programadores de aplicações utilizam-se destas especificações para desenvolver uma aplicação. · Usuários Finais: existem profissionais que precisam ter acesso à base de dados para consultar, modificar e gerar relatórios. A base de dados existe para estes usuários. Existem algumas categorias de usuários finais: · usuários ocasionais: ocasionalmente fazem acesso à base de dados, mas eles podem necessitar de diferentes informações a cada vez que fazem acesso. Eles podem usar uma linguagem de consulta sofisticada para especificar suas requisições e são tipicamente gerentes de médio ou alto-nível; · usuários comuns ou paramétricos: estes usuários realizam operações padrões de consultas e atualizações, chamadas TRANSAÇÕES PERMITIDAS, que foram cuidadosamente programadas e testadas. Estes usuários constantemente realizam recuperações e modificações na base de dados; · usuários sofisticados: incluem engenheiros, analistas de negócios e outros que procuraram familiarizar-se com as facilidades de um SGBD para atender aos seus complexos requisitos; · Pessoal de suporte Principais características de um SGBD · Independência de Dados “Consiste na capacidade de permitir que haja evolução na descrição dos dados da empresa, sem que os sistemas ou aplicações tenhas que ser alterados” “Imunidade das aplicações às mudanças na estrutura de armazenagem e estratégias de acesso” Pode-se apresentar dois tipos · Independência Lógica dos Dados: consiste na capacidade de alterar o esquema conceitual sem provocar modificações nos esquemas externos ou nos programas aplicativos. · Independência Física dos Dados: consiste na capacidade de alterar o esquema interno sem provocar modificações no esquema conceitual. · Controle de Redundância “Redundância é armazenar o mesmo dado várias vezes para atender diversas aplicações. Para manter a consistência do banco de dados, deve-se armazenar o dado uma única vez e em apenas um lugar no banco de dados. Isto permite manter a consistência, economizar espaço de armazenamento.” Em alguns caso, a redundância é necessária, porém ela deve ser controlada pelo sistema de gerenciamento de banco de dados. “ (Elmasri & Navathe, 1994) “É um conceito representado pelo controle centralizado dos dadoscompartilhados por diversas aplicações, reduzindo a repetição de dados a um mínimo justificável e aceita apenas por questão de desempenho.” (Cerícola, 1991) Problemas da redundância de dados: · duplicação de esforço para manter os dados atualizados; · desperdício de espaço de armazenamento; · possibilidade de inconsistência dos dados · Compartilhamento de Dados Permitir a usuário diferentes a utilização simultânea de um mesmo dado. · Exemplos: As informações sobre clientes podem ser acessadas pelo sistema de vendas, de contas a receber e faturamento simultaneamente. A mesma base de dados sobre empregados pode ser usada simultaneamente pelo sistema de recursos humanos e pelo sistema de vendas. No primeiro caso os dados serão utilizados no processo de pagamento e no segundo no processo de alocação dos vendedores às áreas de atendimento a cliente. · Restrições de Acesso “Um SGBD deve prover controles de segurança e autorização, que são utilizados para criar contas e seus respectivos direitos de acesso quando múltiplos usuários compartilham um banco de dados.” (Navathe,1994) “ Os controles de segurança abrangem conceitos tais como: procedimentos de validação e controle, garantia de integridade e controle de acesso, que visam resguardar o banco de dados de uma possível perda ou destruição de dados seja por falha de programa ou por falha de equipamento” (Cerícola, 1991) · Exemplos: O sistema de pagamento poderá atualizar o cargo ocupado pelo empregado enquanto o sistema de vendas poderá apensa consultar qual o cargo de um determinado empregado. O sistema de controle de material poderá incluir um novo material no cadastro existente enquanto a área de compras consultará as informações sobre os materiais necessários para o processo de produção. · Segurança e autorização · senhas para usuários e para grupos de usuários; · restrição de acesso a parte do banco de dados; · proibição de executar certas operações; · acesso restrito apenas a transações “enlatadas”; · proibição de uso de software privilegiado, como o software de criação de contas. · Restrições de Integridade “A maioria dos SGBD provem certas restrições de integridade que devem ser aplicadas aos dados. O SGBD deve ter mecanismos para possibilitar a definição das restrições e assegurar o respeito a estas. Um exemplo de restrição de integridade é a definição de um tipo de dado (data type) para cada item de dado. · Exemplo: Ao definir o tipo cores como: azul, vermelho, amarelo e verde. E em seguida definir um atributo cor_parede como do tipo cores. O SGBD aceitará apenas os tipos definidos ou seja azul, vermelho, amarelo e verde como válidos para este atributo. Pergunta: o que aconteceria se o usuário informasse a cor branco para o atributo cor_parede? · Mecanismos de Backup e Recuperação “Um SGBD deve prover facilidades para recuperação de falhas do hardware ou software. Estes mecanismos evitam que cada aplicação tenha que projetar e desenvolver seus próprios controles contra a perda de dados. · Exemplo: Se o sistema falha no meio de um programa de alteração complexo, o mecanismo de recuperação é responsável por assegurar que o banco de dados será restaurado para o estágio que ele se encontrava antes do início da execução do programa. Benefícios adicionais dos bancos de dados · Potencial para o estabelecimento e o cumprimento de padrões · Flexibilidade de mudanças · Redução no tempo de desenvolvimento de novas aplicações · Disponibilidade de informação atualizada · Economia de escala · Bancos de dados NÃO são sempre a solução!!! · Quando NÃO usar bancos de dados (desvantagens) · Volume de dados pequeno, aplicações simples, bem definidas. Mudanças não são esperadas. · Requisitos estritos de tempo real. · Acessos múltiplos e concorrentes não são necessários