Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 – INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir o modelo físico de uma base de dados Banco de Dados É uma coleção de dados inter-relacionados, representando informações sobre um domínio específico. “É uma coleção de dados relacionados. Dados, por sua vez são uma coleção de fatos que podem ser guardados e que tem um significado implícito. Como exemplo, considere o nome, o endereço e o telefone das pessoas que você conhece. Você pode guardar esses dados num caderno de telefone, ou pode guardar num disquete usando um software como ACCESS ou EXCEL. Isto é uma coleção de dados relacionados com significado explicito” (Navathe, 1994) “É uma coleção organizada de fatos e informações” (Stair, 1996) “É uma coleção de fatos registrados que refletem o estado de certos aspectos de interesse do mundo real. “(Machado e Abreu, 1995) Exemplos: Lista Telefônica Fichas do acervo de uma biblioteca 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 esses dados. O objetivo principal de um sistema de banco de dados é possibilitar um ambiente que seja adequado e eficiente para uso na recuperação e armazenamento de informações. Sistema Gerenciador de Banco de Dados São softwares que permitem a definição de estruturas para armazenamento de informações e fornecimento de mecanismos para manipula-las. Exemplos: Access DB2 Oracle Características de um SGBD Principais características que um SGBD deve prover: • • • • • • • • • Independência de Dados Restrições de Acesso Controle de Redundância Restrições de Integridade Compartilhamento de Dados Mecanismos de Backup e Recuperação Múltiplas Interfaces Representação de Relacionamentos Complexos entre Dados Tolerância a Falhas • 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” A independência dos dados em relação a aplicação representa o um avanço no sentido de tornar qualquer modificação das estruturas dos arquivos imperceptível para os programas. Desta forma, as mudanças na organização dos dados não gera qualquer necessidade de alteração dos programas que o manipulam. Exemplo: Inclusão de um novo campo (atributo) em um arquivo (tabela) é feita sem que sejam alterados os programas, pois nos programas não estão definidos as estruturas dos arquivos.“ • 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 dados compartilhados 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. • Restrições de Acesso (cont) 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 tributo cor a parede? • Mecanismos de Backup e Recuperação “Um SGBD deve prover facilidades para recuperação de falhas do hardware ou software. Estes mecanismo 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. • Múltiplas Interfaces • Linguagens de consulta para usuários casuais; • Linguagens de programação para programadores de aplicações; • Interfaces gráficas com formulários (telas) e menus para usuários paramétricos; • Interfaces para administração do banco de dados; • Linguagem natural. • Representação de Relacionamentos Complexos entre Dados Um banco de dados pode incluir uma variedade de dados que estão interrelacionados de várias formas. Um SGBD deve fornecer recursos para se representar uma grande variedade de relacionamentos entre os dados, bem como, recuperar e atualizar os dados de maneira prática e eficiente. • Tolerância a Falhas Um SGBD deve fornecer recursos para recuperação de falhas tanto de software quanto de hardware. Quando não Utilizar um SGBD Em algumas situações, o uso de um SGBD pode representar uma carga desnecessária aos custos quando comparado à abordagem processamento tradicional de arquivos como por exemplo: • alto investimento inicial na compra de software e hardware adicionais; • generalidade que um SGBD fornece na definição e processamento de dados; • sobrecarga na provisão de controle de segurança, controle de concorrência, recuperação e integração de funções. Problemas adicionais podem surgir caso os projetistas de banco de dados ou os administradores de banco de dados não elaborem os projetos corretamente ou se as aplicações não são implementadas de forma apropriada. Se o DBA não administrar o banco de dados de forma apropriada, tanto a segurança quanto a integridade dos sistemas podem ser comprometidas. A sobrecarga causada pelo uso de um SGBD e a má administração justificam a utilização da abordagem processamento tradicional de arquivos em casos como: • o banco de dados e as aplicações são simples, bem definidas e não se espera mudanças no projeto; • a necessidade de processamento em tempo real de certas aplicações, que são terrivelmente prejudicadas pela sobrecarga causada pelo uso de um SGBD; • não haverá múltiplo acesso ao banco de dados. SGBD X Sistemas de Gerenciamento de Arquivos Sistemas de Gerenciamento de Arquivos: 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: 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. Tomemos como exemplo a necessidade de inclusão de um novo campo em um arquivo, esta alteração implica na alteração de todos os programas que utilizam este arquivo. dados separados e isolados; 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. SGBD – Sistema Gerenciador de 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. 2 - ARQUITETURA PARA SISTEMAS DE BANCO DE DADOS Conceitos básicos Dados Dado: Conjunto de símbolos “arranjados” a fim de representar a informação fora da mente humana. Elemento de Dado: Subconjunto de símbolos que compõem um dado com significado específico, mas não representa a informação completa. No exemplo: O número de alunos matriculados na disciplina mate01 no primeiro semestre / 97 é 57. Quais são os elementos de dados? Disciplina: mate01 Período: primeiro semestre /97 Matriculados : 57 Principais Objetos de um SGBD 1. Tabelas 2. Visões 3. Índices Tabelas Objeto criado para armazenar os dados fisicamente Os dados são armazenados em linhas (registros) e colunas (campos) Os dados de uma tabela normalmente descrevem um assunto tal como clientes, vendas, etc. Chave Primária Permite a classificação única de cada registro de uma tabela Exemplos de chave primária: RG CPF Matrícula RA Visões Tabela lógica de um banco de Dados, não contém dados. Tipos de Visão • Visão Idêntica: Índice É uma ferramenta usada pelo gerenciador de Banco de Dados para facilitar a busca de linhas dentro de uma tabela Índice Único Índice criado a partir da chave primária, não permite a inclusão de linhas duplicadas Índice de Performance Facilita a busca de linhas na tabela Modelo de Dados Níveis de Abstração