Introdução à Computação Unidade V – Banco de Dados INF0198 – Introdução à Computação 1 Banco de Dados Dado • “Dados são os fatos em sua forma primária, como por exemplo um nome de um empregado e o número de horas trabalhadas em uma semana, números de peças em estoque ou pedidos de vendas.” 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. INF0198 – Introdução à Computação 2 Banco de Dados - Hierarquia dos Dados Os dados geralmente são organizados em uma hierarquia, que começa com o menor dado utilizado pelos computadores ( bit ) e vai progredindo na hierarquia até o banco de dados: • 8 bits = 1 byte • 1 byte = 1 caracter = bloco básico de construção da informação • 1 conjunto de caracteres = 1 campo • 1 coleção de campos relacionados = 1 registro • 1 coleção de registros relacionados = 1 arquivo • 1 coleção de arquivos integrados e relacionados = 1 banco de dados INF0198 – Introdução à Computação 3 Hierarquia dos Dados - exemplo Bancos de Dados de Pessoal Arquivo de Folha de Pagamento Funcionário Registro 1 Funcionário Registro 2 Arquivo de Benefícios Funcionário Registro 3 Funcionário Registro 4 Nº da Nº da Nº da Nº da Nome Previ- Salário Nome Previ- Salário Nome Previ- Salário Nome Previ- Salário dência dência dência dência Dados Dados Dados Dados Dados Dados Dados Dados Dados Dados Dados Dados INF0198 – Introdução à Computação 4 Banco de Dados Conjunto de dados integrados que tem por objetivo atender a uma comunidade de usuários Coleção de dados inter-relacionados tal que: • um BD representa uma porção da realidade • um BD é projetado, construido e carregado com dados para atender a um propósito específico:um grupo de usuários e algumas aplicações pré-definidas nas quais estes usuários estão interessados INF0198 – Introdução à Computação 5 Elementos Básicos do Banco de Dados Entidades: representam classes de objetos do mundo real. Ex: funcionários, clientes, produtos Relacionamentos: representam agregações entre duas ou mais entidades. Ex: associação cliente aos produtos que ele compra Atributos: representam propriedades elementares das entidades e/ou dos relacionamentos. Ex: matrícula do funcionário, número do telefone do cliente INF0198 – Introdução à Computação Banco de Dados Exemplo de entidades e relacionamentos em uma concessionária de eletricidade e algumas aplicações que dependem de acesso aos elementos do banco de dados da empresa Banco de Dados de uma Concessionaria de Eletricidade Faturamento Leitura de medidor Entidades: clientes, medidores, contas Pagamentos, leituras de medidores Relacionamentos: contas enviadas aos clientes, clientes fazem pagamentos, clientes utilizam medidores, ... Processamento de pagamento Início/Parada do Serviço INF0198 – Introdução à Computação 7 Sistema tradicional de arquivos emissão de guias de cobrança cadastro de clientes contas a receber emissão de contas a pagar cadastro de fornecedore s emissão de ordens de fornecimento cadastro de pedidos cadastro de itens cadastro de fornecedore s emissão de pedidos de compra cadastro de clientes cadastro de itens emissão de folha de pagamento cadastro de empregados - dados estão projetados para atender uma aplicação específica - dados não estão integrados, mas em diferentes arquivos INF0198 – Introdução à Computação 8 Limitações da abordagem tradicional mesmo objeto da realidade é representado mais de uma vez em diferentes arquivos – redundância redundância leva a : • inconsistência : dados não representam corretamente a realidade • alterações em parte dos dados pode levar a registros incompatíveis dados pouco confiáveis programas de aplicação dependentes dos dados • descrição da estrutura dos arquivos está embutida nos programas e acesso INF0198 – Introdução à Computação Vantagens da Abordagem de Bancos de Dados em relação a Sistemas de Arquivos Redundância de dados reduzida Integridade dos dados aperfeiçoada Modificação e atualização mais fáceis Independência entre programas e dados Melhor acesso aos dados e à informação Padronização do acesso aos dados Uma estrutura para desenvolvimento de programa Melhor proteção global dos dados Fontes de dados e de informação compartilhados INF0198 – Introdução à Computação 10 Banco de Dados – abordagem do gerenciamento de BD Envolve três atividades básicas: • Atualização e manutenção de bancos de dados comuns para refletir novas transações de negócios e outros eventos que exigem mudanças nos registros de uma organização • Fornecimento das informações requisitadas por cada aplicação do usu[ario final mediante o uso de aplicativos que compartilham os dados em bancos de dados comuns • Fornecimento de uma capacidade de consulta/resposta e emissão de relatórios por meio de um softwrae de gerenciamento, de sorte quen os usuários finais possam utilizar navegaodores de Rede e a Intermert ou intranets para consulktar facilmente os bancos de daos, gerar relatórios re receber respostas rápidas as seuis pedidos de informsções para situações específicas INF0198 – Introdução à Computação 11 Sistema de Gerenciamento de BD Aplicações de BD Usuário SGBD BANCO DE DADOS Conjunto de programas de computador que controla a criação, manutenção e uso dos anco de Dados (em inglês: Database Management System - DBMS) INF0198 – Introdução à Computação Componentes de um SGBD Definição do Banco de Dados • Linguagens e ferramentas gráficas para definir entidades, relacionamentos, restrições à integridade e direitos de autorização Acesso Informal • Linguagem e ferramentas gráficas para acessar dados sem codificações complicadas Desenvolvimento de Aplicações • Ferramentas gráficas para desenvolver menus, formulários de entrada de dados e relatórios INF0198 – Introdução à Computação Componentes de um SGBD Interface de linguagem codificada • Linguagem que combina acesso informal com a capacidade plena de uma linguagem de programação Processamento de Transações • Mecanismos de controle para impedir a interferência de usuários simultâneos e recuperar dados perdidos após uma falha Ajuste do Banco de Dados • Ferramentas para monitorar e melhorar o desempenho do banco de dados INF0198 – Introdução à Computação Tipos de Bancos de Dados Bancos de dados Operacionais • armazenam dados detalhados necessários para apoiar os processos e operações do dia-a dia das empresas, incluindo bancos de dados de atividades de e-commerce e internet Bancos de Dados Distribuídos • muitas empresas reproduzem e distribuem cópias ou partes de bancos de dados para servidores de rede em uma multiplicidade de locais. O objetivo é melhorar o desempenho e a segurança do banco de dados. O maior desafio neste tipo de banco de dados é garantir que todos os dados distribuídos sejam constante e concomitantemente atualizados INF0198 – Introdução à Computação Tipos de Bancos de Dados Bancos de Dados Externos • dados que podem ser obtidos através de parcerias, convênios, aquisição, consulta, internet, etc ... Data Warehouse • Banco de dados que armazena dados sobre as operações da empresa, extraídos de uma fonte única ou múltipla, oferecendo enfoque histórico, para permitir um suporte efetivo à tomada de decisão Banco de dados em Hipermídia na Rede ( Web ) • armazena documentos em hipertextos e multimídia INF0198 – Introdução à Computação Principais Tipos de Banco de Dados Bancos de Dados Externos na Internet e Serviços Online Bancos de Dados Distribuídos em Intranets e Outras Redes Cliente PC ou NC Bancos de Dados do Usuário Final Servidor de Redes Mercados de Dados Bancos de Dados Operacionais da Organização Depósitos de Dados INF0198 – Introdução à Computação 17 Modelos de Banco de Dados Na construção de um banco de dados deve-se considerar as seguintes questões: Conteúdo: Que dados devem ser coletados e a que custo ? Acesso: Que dados devem ser fornecidos a qual usuário quando apropriado ? Estrutura Lógica: Como os dados devem ser arrumados de forma que façam sentido para um determinado usuário ? Organização Física: Onde os dados devem estar fisicamente localizados ? INF0198 – Introdução à Computação 18 Modelos de Banco de Dados As relações entre os muitos registros individuais nos bancos de dados são baseadas em uma das diversas estruturas ou modelos lógicos de dados. Os SGBD’s são projetados para utilizar uma estrutura específica de dados para fornecer aos usuários finais acesso rápido e fácil a informações armazenadas em banco de dados. As cinco estruturas s de dados fundamentais são: hierárquico, em rede, relacionais, orientados a objetos e multidimensionais INF0198 – Introdução à Computação 19 Modelos de Banco de Dados Estrutura Hierárquica • As relações e os registros formam uma hierarquia ou estrutura de tipo árvore. • Todos os registros são dependentes e dispostos em estruturas de níveis múltiplos, que consistem em um registro-raiz e qualquer número de níveis subordinados • Todo elemento de dados pode ser acessado passando-se progressivamente para baixo a partir de uma raiz e ao longo dos ramos da árvore até que o registro desejado seja localizado • Relacionamentos do tipo um-para-muitos INF0198 – Introdução à Computação 20 Estruturas de Bancos de Dados Estrutura Hierárquica Departamento Projeto A Funcionário 1 Projeto B Funcionário 2 INF0198 – Introdução à Computação 21 Modelos de Banco de Dados Estrutura em Rede • Permite acessar um elemento de dados seguindo um dentre vários caminhos, porque qualquer elemento ou registro de dados pode ser relacionado com qualquer número de outros elementos de dados • Relacionamentos do tipo muitos-para-muitos INF0198 – Introdução à Computação 22 Estruturas de Bancos de Dados Estrutura em Rede Departamento A Funcionário 1 Departamento B Funcionário 2 Projeto A Funcionário 3 Projeto B INF0198 – Introdução à Computação 23 Modelos de Banco de Dados Estrutura Relacional • Mais popular entre as estruturas • Todos os elementos de dados dentro do banco de dados são concebidos como armazenados em forma de tabelas simples Os SGBD’s relacionais vinculam elementos de várias tabelas para fornecer informações para os usuários • INF0198 – Introdução à Computação 24 Estruturas de Bancos de Dados Estrutura Relacional Cliente Conta nome rua cidade Nconta Nconta saldo Pedro Av. 2 Fpolis 1452 1452 2452.25 João R. 51 S.José 521 521 6565.74 Tiago Largo 2 Fpolis 53256 53256 465.52 Marcos Av. 43 Biguaçú 53256 4651 456.25 Arthur Rua 23 Fpolis 14532 14532 8767.02 INF0198 – Introdução à Computação 25 Modelos de Banco de Dados Estrutura Multidimensional • Variação do modelo relacional que utiliza estruturas multidimensionais para organizar dados e expressar as relações entre os dados • Podemos visualizar estruturas multidimensionais como cubos de dados e cubos dentro de cubos de dados • Cada face do cubo é considerada uma dimensão de dados • Cada célula dentro de uma estrutura multidimensional contém dados agregados relacionados a elementos ao longo de cada uma de suas dimensões INF0198 – Introdução à Computação 26 Estruturas de Bancos de Dados TV PC VCR sum 1Qtr 2Qtr Data 3Qtr 4Qtr sum Total anual de vendas para China China India Japão País Estrutura Multidimensional sum INF0198 – Introdução à Computação 27 Modelos de Banco de Dados Estrutura Baseada em Objetos • Considerada uma das tecnologias-chave de uma nova geração de aplicativos multimídia na rede • Um objeto consiste nos dados e nas ações que podem ser executadas sobre estes dados • Esta capacidade de sintetização permite ao modelo orientado a objetos manipular melhor do que outras estruturas de bancos de dados os tipos mais complexos de dados: gráficos, imagens, voz e texto INF0198 – Introdução à Computação 28 Estruturas de Bancos de Dados Estrutura Baseada em Objetos Atributos •Cliente •Balanço Objeto Conta Bancária Operações Objeto Conta Corrente •Depósito •Saque Objeto Conta de Poupança Atributos Atributos Operações Operações •Linha de Crédito •Extrato Mensal •Calcular juros •Imprimir Extrato Mensal •Linha de Crédito •Extrato Mensal •Calcular juros •Imprimir Extrato Mensal INF0198 – Introdução à Computação 29