SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Material original: Elaine Parros Machado de Sousa Introdução Tópicos da aula Evolução dos Sistemas de Informação Conceitos Básicos SGBDs Histórico USP – ICMC - GBDI 2 Evolução dos Sistemas de Informação Sistemas de Informação gerenciamento de arquivos baseados em programas e arquivos orientados a cada unidade organizacional rotinas específicas para tarefas específicas dados armazenados em disco, usando uma determinada estrutura de dados USP – ICMC - GBDI 3 Dados Aplicações Arquivo 1 Arquivo 2 Arquivo 3 Dados Aplicações Arquivo 1 PROBLEMA????? Arquivo 2 Arquivo 3 REDUNDÂNCIA Aplicação de Produção Arquivos de Dados de Produção Produtos Aplicação de Vendas Aplicação de Compras Arquivos de Dados de Vendas Arquivos de Dados de Compras Produtos Produtos REDUNDÂNCIA Aplicação de Produção INCONSISTÊNCIA Aplicação de Vendas Insere: Insere: Nome: Notebook NroSerie:1111111 Nome: Notebook NroSerie:1111111 Fabricante: Y Fabricante: X Arquivos de Dados de Produção Produtos Arquivos de Dados de Vendas Produtos Consistência de Dados Dados em estado inconsistente informações incorretas ou contraditórias são fornecidas aos usuários USP – ICMC - GBDI 8 Consistência de Dados Consistência é “estado ou caráter do que é coerente, do que tem solidez, veracidade, credibilidade, estabilidade, realidade”. Consistência: se determinada informação é replicada (redundância), seu valor é sempre o mesmo USP – ICMC - GBDI 9 SIs baseados em arquivos Problemas? Redundância e inconsistência de dados Dificuldade de acesso aos dados Isolamento de dados Anomalias no acesso concorrente Segurança USP – ICMC - GBDI 10 Além disso... SIs baseados em arquivos dados gravados em disco usando ESTRUTURAS DE DADOS Acesso requer conhecimento destas estruturas DEPENDÊNCIA DE DADOS. USP – ICMC - GBDI 15 15 46 63 81 97 16 99 11 Dependência dos Dados Vários programas compartilhando os mesmos dados todos devem conhecer e manipular as mesmas estruturas E se houver uma alteração na estrutura de dados? TODOS OS PROGRAMAS TERÃO QUE SER ALTERADOS USP – ICMC - GBDI 12 Independência dos Dados Como tornar os programas INDEPENDENTES da estrutura de dados? CRIANDO UM SISTEMA QUE GERENCIE A ESTRUTURA Aplicação 1 Sistema Gerenciador de Dados Compartilhados 15 46 63 81 97 15 16 99 Aplicação 2 USP – ICMC - GBDI 13 Independência dos Dados Sistema de Gerenciamento de Bases (ou Banco) de Dados SGBD Aplicação 1 SGBD 15 46 63 81 15 16 97 99 Aplicação 2 USP – ICMC - GBDI 14 Independência dos Dados Sistema de Gerenciamento de Basese(ou Banco) de Dados Conceitos de abstração interface SGBD Aplicação 1 SGBD 15 46 63 81 15 16 97 99 Aplicação 2 USP – ICMC - GBDI 15 SGBD Sistema de Gerenciamento de Bases de Dados conjunto de dados base (banco) de dados conjunto de programas para acesso e manipulação dos dados USP – ICMC - GBDI 16 SGBD Sistema de propósito geral armazenar grandes volumes de dados permitir busca e atualização dos dados eficiência Manutenção de um conjunto lógico e organizado de dados completamente autônomo em relação às aplicações USP – ICMC - GBDI 17 Aplicação Aplicação Aplicação SGBD Esquema - Definição da base de dados Instância – Base de dados SGBDs Requisitos Fundamentais: Segurança Física (mais comum no passado) Lógica Usernames e passwords Perfis de usuário USP – ICMC - GBDI 19 SGBDs Requisitos Fundamentais (cont): Integridade consistência validade Nome: Joaquim Pereira Cargo: Faxineiro Salário:R$ 230.000,00 Arquivos de Dados ????? Restrições de Integridade!!! USP – ICMC - GBDI 20 SGBDs Requisitos Fundamentais (cont): Integridade - se contem apenas dados válidos, que não contradizem a realidade que estão a representar. Restrições de integridade, que definem o que é válido e o que não é válido. Exemplos: – um funcionário não pode pertencer a mais do que um departamento – o preço de venda de um produto deverá ser superior ao seu custo. – a referência de cada produto deve ser única USP – ICMC - GBDI 21 SGBDs Requisitos Fundamentais Recuperação / Tolerância a falhas Transações atômicas (cont): unidades lógicas de trabalho, em geral envolvendo várias operações Registros de Log Backup Controle da concorrência gerenciamento de transações concorrentes USP – ICMC - GBDI 22 Por que usar SGBDs? Vantagens: armazenamento persistente de dados e estruturas de dados; INDEPENDÊNCIA DE DADOS; CONSISTÊNCIA DE DADOS; ABSTRAÇÃO E INTERFACE; acesso compartilhado (multiusuário e concorrente) à informação; distribuição de informações USP – ICMC - GBDI 23 Por que usar SGBDs? Vantagens: reduz complexidade das aplicações segurança controle de acesso aos dados backup utilização de padrões USP – ICMC - GBDI 24 Por que usar SGBDs? Desvantagens Custo financeiro Um sistema a mais a ser aprendido e gerenciado USP – ICMC - GBDI 25 Componentes de um SGBD SGBD Processador de Consultas Gerenciador de Armazenamento Banco de Dados Dados e Metadados Os componentes funcionais do SGBD: componentes de processamento de consultas componentes de gerenciamento de armazenamento USP – ICMC - GBDI 26 Componentes de um SGBD Conceitos importantes: Pragmatismo: primeiro modelagem (documentada), seguida de definição e instanciação, e só depois o uso 1. 2. 3. 4. Modelagem: modelo entidade/relacionamento Definição: SQL, subconjunto DDL Instanciação: SQL, subconjuntos DDL/DML Uso: SQL, subconjunto DML USP – ICMC - GBDI 27 Componentes de um SGBD Conceitos importantes: SQL - Data Definition Language (DDL) conjunto de comandos para definição do esquema da base de dados Exemplos em linguagem SQL create table alter table drop table Compilador/Interpretador DDL USP – ICMC - GBDI 28 Componentes de um SGBD Conceitos importantes (cont.): Metadados Dicionário de Dados: banco de dados do sistema armazena descrição do esquema armazena metadados armazena restrições de segurança e integridade outras denominações: catálogo de dados, diretório de dados USP – ICMC - GBDI 29 Componentes de um SGBD Conceitos importantes (cont.): SQL - Data Manipulation Language (DML) recuperação (consulta) inserção remoção modificação DML viabiliza manipulação dos dados de maneira compatível com o modelo de dados USP – ICMC - GBDI 30 Componentes de um SGBD Conceitos importantes (cont.): Data Manipulation Language (DML) Exemplos em linguagem SQL insert select delete update ... USP – ICMC - GBDI 31 Componentes de um SGBD Conceitos importantes Procedural vs Declarativo Procedural: exige especificação de quais dados são necessários, e como obtê-los requer uma sequência específica de operações a serem executadas ex.: linguagens de programação como C e Pascal, e a linguagem de projeto de bancos de dados álgebra relacional Não-Procedural (Declarativo): exige apenas especificação de quais dados são necessários, e não de como obtê-los (cont.): ex: SQL A interface dos bancos de dados é definida pela linguagem declarativa SQL (DDL + DML) USP – ICMC - GBDI 32 Programadores de aplicações Usuários Finais Interfaces de aplicação Aplicações Usuários Sofisticados Consulta (Query) DBAs Esquema de BD SGBD Pré-compilador de Comandos DML DML embutido no .exe Programas de Aplicações em Código Objeto Compilador DML Componente de avaliação e execução de consultas Gerenciador de Transações Interpretador DDL Processador de Consultas Gerenciador de Buffer Gerenciador de Arquivos Gerenciador de Armazenamento SGBD Programas de Aplicações em Código Objeto Processador de Consultas Pré-compilador de Comandos DML [Silbesrchats] Interpretador DDL Componente de execução de consultas Gerenciador de Transações Gerenciador de Armazenamento Compilador DML Gerenciador de Buffer Gerenciador de Arquivos Índices Arquivos de Dados Dados Estatísticos Dicionário de Dados Cronologia Década de 1950: Primeiros computadores. Programação em linguagem de máquina Surgimento de Sistemas Operacionais e Linguagens de Programação Sistemas de arquivos com acesso aleatório (não seqüencial) 1959: Sistema RAMAC (IBM) USP – ICMC - GBDI 35 Cronologia Década de 1960: CODASYL: consórcio da indústria COBOL Conceituação de SGBD e modelos de dados Primeiro SGBD comercialmente disponível Modelo Hierárquico IMS – IBM Integração com a linguagem COBOL Ainda em uso corrente USP – ICMC - GBDI 36 - Cronologia Década de 1970: Proposta do Modelo Relacional Surgimento de protótipos de SGBDR INGRES (UC – Berkeley) Sistema R (IBM) Proposta do Modelo Entidade-Relacionamento (MER) USP – ICMC - GBDI 37 Cronologia Década de 1980: Primeiro SGBDR de grande porte disponível DB2 – IBM Surge SQL vinculada ao Sistema R SQL torna-se padrão Modelos Orientados a Objetos USP – ICMC - GBDI 38 Cronologia Década de 1990 em diante: SGBDs orientados a objetos O2 ObjectStore Objectivity/DB Jasmine … SGBDs objeto-relacionais Oracle8, Oracle9, Oracle10g, Oracle 11g PostGreSQL Informix USP – ICMC - GBDI 39 Sugestão de leitura Capítulos introdutórios dos livros citados na bibliografia básica da disciplina USP – ICMC - GBDI 40