Banco de Dados Bibliografia de Banco de Dados Livros-texto (entre muitos outros): • Banco de Dados, Uma Visão Prática,Felipe Machado e Mauricio Abreu, Ed Érica, 1999. • Modelagem Coceitual e Projeto de Banco de Dados, Paulo Cougo, EdCampus, 1997. Introdução Conceitos Básicos • Conjunto de dados sobre o qual uma comunidade de usuários realiza operações de recuperação e atualização. • Um BD representa algum aspecto do mundo real, chamado “mini-mundo” ou “universo de discurso”. As mudanças no mini-mundo são refletidas no banco de dados. Usuários Mini-mundo Banco de Dados Aplicações Conceitos Básicos • Um banco de dados computadorizado pode ser criado e mantido por um grupo de programas de aplicação escritos especificamente para aquela tarefa ou por um SISTEMA DE GERÊNCIA DE BANCOS DE DADOS (SGBD). • Um SGBD é uma coleção de programas de propósito geral que facilita o processo de definir, construir e manipular bancos de dados para várias aplicações. – Definir um banco de dados significa especificar os tipos de dados a serem armazenados juntamente com uma descrição detalhada de cada tipo. – Construir o banco de dados é o processo de armazenar os dados em algum meio de armazenamento controlado pelo SGBD. – Manipular um banco de dados compreende certas funções como consultar o banco de dados para recuperar dados específicos, atualizar o banco de dados para refletir mudanças percebidas no mini-mundo e produzir relatórios a partir dos dados. • O banco de dados e o SGBD juntos são chamados genericamente de SISTEMA DE BANCOS DE DADOS. Bancos de Dados Conceitos Básicos • SGBD Coleção de programas de propósito geral que facilita o processo de definir, construir e manipular banco de dados para várias aplicações • Sistema de Banco de Dados Sistema de Banco de Dados Usuários / Programadores Sistema de BD Consultas / Programas de Aplicação SGBD Software para processar consultas / programas Software para acessar dados armazenados Definição do BD (Meta-dados) BD armazenado Um exemplo de banco de dados Aluno Nome Número Área José Antonio 17 8 INF INF Nome Disciplina I.C.C. Estruturas de Dados Matemática Discreta Bancos de Dados Pré-Requisito Histórico-Escolar Número Créditos Dept INF1310 INF3320 MAT2410 INF3380 4 4 3 3 INF INF MAT INF No_Curso No_Pre-Req INF3380 INF3380 INF3320 INF3320 MAT2410 INF1310 No_Aluno No_Curso Grau 17 17 8 8 8 8 MAT2410 INF1310 MAT2410 INF1310 INF3320 INF3380 B C A A B A Sistemas de Informação • SISTEMA DE INFORMAÇÃO – dados; – SGBD; – o hardware e o sistema operacional; – as pessoas que usam e administram os dados; – os programas de aplicação que acessam e atualizam os dados; – os programadores que desenvolvem essas aplicações. Mundo Real ?! Desenvolver um projeto de sistema de informação consiste em traduzir um “problema” do mundo real numa “solução” que envolve a organização, pessoas e tecnologia (hardware e software). SISTEMA DE INFORMAÇÃO dados e regras SGBD Programa de Programa de Programa de aplicação de BD aplicação de aplicaçãoBD Mundo Real Requisitos de Dados Coleta/Especificação de Requisitos Requisitos Funcionais Projeto Conceitual Análise Funcional Projeto Lógico Projeto Funcional Projeto Físico Programação dados e regras SGBD Programa de Programa de Programa de aplicação de BD aplicação de aplicaçãoBD Evolução dos Sistemas de Informação Programa com Programa com dados Programa armazenados com dados armazenados dados armazenados Programa com Programa com Programa com gerência de arquivos gerência de arquivos gerência de arquivos dados dados SGBD Programa de Programa de Programa de aplicação de BD aplicação de BD aplicação de BD Evolução dos Bancos de Dados (Khoshafian 1995) Sistemas de arquivos BD hierárquico BD em rede BD relacional Linguagens OO Hipermídia Modelos semânticos Inteligência artificial BD OO BD “inteligente” Objetos complexos Information retrieval Evolução dos Bancos de Dados dados SGBD Programa de Programa de Programa de aplicação de BD aplicação de BD aplicação de BD regras Regras permitem disvincular certos procedimentos dos programas de aplicação Bancos de Dados Centralizados (Década de 70) hardware + sistema operacional Programa de aplicação de BD dados SGBD terminais locais Programa de aplicação de BD Programa de aplicação de BD modem terminais remotos Redes de Microcomputadores (Década de 80) cabo da rede microcomputadores (estações de trabalho) cada vez mais poderosos Arquitetura Cliente/Servidor com Servidor de Arquivos Servidor de Arquivos cabo da rede Programa + SGBD Programa + SGBD Servidor de Impressão Arquitetura Cliente/Servidor com Servidor de Bancos de Dados SGBD Servidor de Banco de Dados Servidor de Arquivos cabo da rede Programa Programa Servidor de Impressão Arquitetura Cliente/Servidor com Múltiplos Servidores de Bancos de Dados Cooperativos (Década de 90) gateway modem mainframe Comunicação BDs via Web Pessoal envolvido em grandes sistemas de bancos de dados • Usuários (“atores em cena”) – projetistas do BD – administradores do BD (ABD) : – usuários finais - ocasionais - paramétricos - sofisticados - analistas de sistemas - programadores de aplicação Pessoal envolvido em grandes sistemas de bancos de dados •Usuários (“atores em cena”) – projetistas do BD : responsáveis por identificar os dados a serem armazenados no BD e por escolher as estruturas apropriadas para representar e armazenar esses dados. Comunicação c/ usuários p/ identificação de visões. – administradores do BD (ABD) : responsáveis pela autorização do acesso ao BD e pela coordenação e monitoração do seu uso. Pessoal envolvido em grandes sistemas de bancos de dados •Usuários (“atores em cena”) – usuários finais - ocasionais : tipicamente gerentes e tomadores de decisão.Utilizam-se de ling. consultas sofisticadas. - paramétricos : usuários de transações “enlatadas”, por exemplo, caixas de bancos, funcionários de reservas em companhias aéreas. - sofisticados : engenheiros, cientistas, analistas de negócios.Utilizam-se das facilidades do SGBD. Pessoal envolvido em grandes sistemas de bancos de dados •Usuários (“atores em cena”) – analistas de sistemas : determinam os requisitos dos usuários finais, especialmente dos ocasionais e paramétricos, e desenvolvem especificações de transações que satisfaçam esses requisitos. – programadores de aplicação : implementam as especificações das transações como programas, testando-os, corrigindo-os e documentando-os. Pessoal envolvido em grandes sistemas de bancos de dados •Pessoal de suporte (“trabalhadores atrás da cena”) – projetistas e implementadores de SGBD : projetam e implementam o SGBD como um software produto. – projetistas e implementadores de ferramentas : projetam e implementam pacotes de software que facilitam o projeto e o uso do BD e ajudam a melhorar o desempenho do SGBD. – operadores e pessoal de manutenção e suporte : responsáveis pelo funcionamento do ambiente de hardware e software do sistema de BD. Funcionalidades de um SGBD • Controle de redundância • Compartilhamento de dados • Controle de Acesso • Persistência p/ Objetos e Estrut. de Dados • Inferência através de Regras de Dedução • Múltiplas interfaces • Representação de relacionamentos • Cumprimento das restrições de integridade • Capacidade de “backup” e restauração Controle de Redundância • Redundância Problemas: • duplicação de esforço para manter os dados atualizados; • desperdício de espaço de armazenamento; • possibilidade de inconsistência dos dados Quando a redundância é necessária: SGBD deve ser capaz de controlar a redundância para evitar inconsistências. Compartilhamento de Dados • Sistemas multiusuários Controle de Concorrência Controle de Acesso Subsistema de segurança e autorização Mecanismos usuais de controle de acesso: • 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, por exemplo atualização; • acesso de usuários paramétricos transações “enlatadas”; restrito apenas a • proibição de uso de software privilegiado, a ex. do software de criação de contas. Persistência p/ Objetos e Estruturas de Dados Capacidade dos Banco de Dados de se integrarem a linguagens de programação de alto nível de forma a permitir que as estruturas criadas pelas LPs fiquem armazenadas definitivamente no BDs. Inferência através de Regras de Dedução Capacidade de permitir a definição de regras no SGBD que permitam deduzir novas informações a partir dos fatos armazenados. Regras: adolescentes são todos aqueles que têm entre 14 e 18 anos • carioca: cidadão natural do RJ • engenheiros: todo aquele que tem diploma de curso de Engenharia Consulta: “Quais os adolescentes cariocas que são engenheiros”? Múltiplas Interfaces Um SGBD deve prover uma variedade de interfaces de usuário. Tipos de interfaces: • linguagens de consulta para usuários casuais; • linguagens de programação para programadores de aplicações; • formulários (telas) para usuários paramétricos; • menus; • linguagem natural. Representação de Relacionamentos O SGBD deve ter a capacidade de representar uma variedade de relacionamentos complexos entre os dados, bem como recuperar e atualizar dados relacionados de uma maneira fácil e eficiente. Cumprimento das Restrições de Integridade Restrições: • forma de verificação da consistência dos dados no BDs Restrições de integridade mais complexas: • Unicidade de itens de dados; • Integridade referencial (um registro em uma tabela que referencia outra tabela deve referenciar um registro existente na outra tabela) • Restrições derivadas da semântica dos dados (exemplo: um aluno não pode fazer a mesma disciplina mais de uma vez). Capacidade de Backup e Restauração O SGBD deve prover facilidades para restaurar o banco de dados em caso de falha de hardware ou de software. sub-sistema de backup e restauração: responsável por assegurar que o banco de dados é restaurado para seu estado anterior à execução do programa. Benefícios adicionais dos Bancos de Dados • Potencial para o estabelecimento cumprimento de padrões e o • 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 • Sobrecustos – Alto investimento inicial e hardware adicional. possível necessidade de – Custo da generalidade do SGBD para definição e processamento dos dados. – “Overhead” para garantir segurança, concorrência, recuperação e integridade. controle de • Quando NÃO usar BDs – O volume de dados é pequeno e as aplicações são simples, bem definidas. Mudanças não são esperadas. – Existem requisitos estritos de tempo real que não podem ser satisfeitos por causa do “overhead” do SGBD. – Acessos múltiplos e concorrentes não são necessários. Modelo, Esquema, Instância Percepção abstrata da realidade Modelo regras para estruturar dados Percepção da estrutura da realidade Esquema estático, invariante no tempo (Intensão) regras para verificar validade Descrição da realidade num dado momento Instância dinâmico, variante no tempo (Extensão) Modelo, Esquema, Instância Aluno esquema Nome Número Área José Antonio 17 8 INF INF Nome Disciplina I.C.C. Estruturas de Dados Matemática Discreta Bancos de Dados Pré-Requisito Histórico-Escolar Número Créditos Dept INF1310 INF3320 MAT2410 INF3380 4 4 3 3 INF INF MAT INF No_Curso No_Pre-Req INF3380 INF3380 INF3320 INF3320 MAT2410 INF1310 No_Aluno No_Curso 17 17 8 8 8 8 modelo relacional (tabelas) MAT2410 INF1310 MAT2410 INF1310 INF3320 INF3380 instância Grau B C A A B A A Arquitetura de Três Esquemas Usuários finais NÍVEL EXTERNO Visão Externa 1 ... mapeamento externo/conceitual NÍVEL CONCEITUAL Esquema Conceitual mapeamento conceitual/interno NÍVEL INTERNO Esquema Interno Visão Externa n Arquitetura de Banco de Dados • Nível Interno: descreve as estruturas de acesso e armazenamento do BD; • Nível Conceitual: decreve toda a estrutura do BD a nível de propriedades, relacionamentos, restrições etc, sem os detalhes de implementação física. Um modelo conceitual (por ex. ERE) é utilizado nessa etapa. • Nível externo: corresponde às visões específicas dos usuários. Visões exemplo: companhia aérea 1- Empregados (nome, cpf, end, tel, filiação, dep) 2- Equipamentos (n0 avião,marca,tipo,capac, tripulação, revisão) 3- Funções (nomefunção,salário,qualificação, serviço, tipo_equipam) 4-Vôo (linha, tipo_equipam, n0horas, serviço_bordo, horário) Aplicações: •Folha pagamento (1,3) •Equipe tripulação (1,2,3) •Manutenção equip (1, 2) •Reserva vôo (2,4) •Escala manutenção (1,2,3) Independência de Dados Capacidade de mudar o esquema num nível de um sistema de banco de dados sem ter que mudar o esquema no nível seguinte mais alto. Independência lógica de dados: Independência física de dados: Linguagens de Bancos de Dados • Linguagem de definição dos dados (LDD) • Linguagem de definição do armazenamento (LDA) • Linguagem de definição das visões (LDV) – (Usualmente a LDD incorpora a LDA e a LDV) • Linguagem de manipulação dos dados (LMD) – Alto nível ou não procedural : orientada a conjuntos – Baixo nível ou procedural : orientada a registros – (Às vezes, a LDD e a LMD confundem-se na mesma linguagem. Exemplo : SQL) • Linguagem hospedeira – Linguagem de programação na qual comandos da LMD são embutidos. Interfaces de Bancos de Dados • Interfaces baseadas em menus (listas de opções) • Interfaces gráficas • Interfaces baseadas em formulários (telas) • Interfaces de linguagem natural • Interfaces para usuários paramétricos • Interfaces para o ABD Componentes de um SGBD usuários ocasionais ABD e equipe Comandos em LDD Comandos privilegiados Consulta de alto nível programadores de aplicações Programas de aplicação usuários paramétricos Pré-compilador Processador de consultas Compilador da LDD Catálogo/ Dicionário de Dados Compilador da linguagem hospedeira Comandos em LMD Compilador da LMD Transações compiladas Processador do BD em tempo de execução Gerenciador dos dados armazenados Subsistema de controle de concorrência / backup / restauração Banco de dados armazenado Classificação dos SGBDs • Critério principal de classificação: modelo de dados Relacional, Redes, Hierárquico, Relacional Objeto e Orientado a Objetos. • Outros critérios: – Número de usuários Monousuário, Multiusuário – Número de locais (“sites”) Centralizado, Distribuído (homogêneo, heterogêneo) – Preço (US$) 100 a 3.000 (monousuários, PC), 10.000 a 100.000 (a maioria), 100.000 a 300.000 (alguns mais elaborados) – Propósito Geral, Específico PROJETO DE BANCOS DE DADOS Foco : dados Mini-Mundo Coleta e Análise de Requisitos Requisitos de Dados Projeto Conceitual Independente de SGBD Esquema Conceitual Projeto Lógico Específico para um SGBD Esquema Lógico Projeto Físico Esquema Físico Banco de Dados Hierárquicos Segue o estilo de um organograma empresarial (DiretoriaDivisão-Seção-Setor) ou de biblioteca (Exata-MatemáticaAlgebra Linear-Vetores). Este modelo é capaz de representar este tipo de organização de forma direta, mas apresenta inconvenientes quando esta situação não aparece claramente com relações de hierarquia. Fábrica Financeiro Receber Comercial Injeção Extrusão Pagar Contábil Vendas Marketing Paulo Pedro Vinícius Carlos Vilma Sílvia Dagoberto Juracy Ernesto Sandra Paula Pedrinho Richard João Banco de Dados em Rede Neste modelos os dados são dispostos em registros, previamente classificados em classes que descrevem a estrutura de determinado tipo de registro. Os registros são descritos em relações de conjuntos onde são estabelecidas as ligações lógicas entre eles. Informática André Paulo Carla