Sistemas da Informação Banco de Dados I Edson Thizon (edson@esucri.com.br) 2008
Apresentação (mini-currículo) Formação Acadêmica Mestrando em Ciência da Computação (UFSC/ ) Créditos Concluídos. Bacharel em Ciência da Computação (UNISUL/00) Especialista em Metodologia da Educação Superior (ESUCRI/05) MBA em Gerenciamento de Banco de Dados (UNESC/05) Experiência Profissional Universidade do Sul de Santa Catarina - UNISUL Programador: 4 anos Analista de Sistemas: 7 anos Professor de disciplinas de graduação à distância: 2 anos Analista de Negócios (Financeiro): 4 anos Escola Superior de Criciúma ESUCRI Professor de disciplinas de graduação: 5 anos
Disciplina Banco de Dados Porque abordar a disciplina Banco de Dados nos cursos da área de computação e informática? Conteúdo X outras disciplinas 2 semestres (profundidade/prática) Necessidades da sociedade / empresas: armazenar grandes quantidades de dados; acessar as informações armazenadas de maneira eficiente;
Conceitos Dados Fatos conhecidos que podem ser registrados e que possuem significado implícito Banco de dados (BD) Banco de Dados é um sistema computadorizado cuja a finalidade geral é armazenar informações e permitir que os usuários busquem e atualizem essas informações quando as solicitar. [DATE, 2003] Inglês: database
Cont... Sistema de banco de dados são projetados para gerir grandes volumes de informações. O gerenciamento de informações implica a definição das estruturas de armazenamento das informações e a definição de mecanismos para a manipulação dessas informações. Ainda, um sistema de banco de dados deve garantir a segurança das informações armazenadas contra eventuais problemas com o sistema, além de impedir tentativas de acesso não autorizadas. [SILBERSCHATZ, 1999]
Cont... A importância da informação na maioria das organizações tem determinado o desenvolvimento de um grande conjunto de conceitos e técnicas para a administração eficaz desses dados.
SGBD Um SGBD, Sistema Gerenciador de Banco de Dados, é constituído por um conjunto de programas que possibilita que usuários criem e mantenham um banco de dados. Inglês: "database management system" (DBMS)
Objetivo de um SGBD Proporcionar um ambiente tanto conveniente quanto eficiente para a recuperação e armazenamento das informações do banco de dados.
Porque utilizar SGBD?
Processamento de dados sem Banco de Dados Dados de diferentes aplicações não estão integrados Dados estão projetados para atender uma aplicação específica
Problemas da falta de integração de dados Mesmo objeto da realidade é múltiplas vezes representado na base de dados Exemplo - dados de um produto em uma indústria Redundância não controlada de dados Não há gerência automática da redundância
Problemas da falta de integração de dados Redundância leva a: inconsistência dos dados Dados não representam corretamente a realidade redigitação de informações trabalho repetitivo que pode levar a erros dificuldade de extração de informações dados projetados para atender aplicações específicas geram dificuldades para o cruzamento de informações Dados pouco confiáveis e de baixa disponibilidade
Exemplo 1. Considere um sistema de poupança bancária sem Banco de Dados... 2. Informações sobre clientes e contas em arquivos permanentes; 3. Programas de aplicações para manipular os arquivos: debitar ou creditar numa conta; adicionar uma nova conta; fazer o balanço de uma conta e gerar extratos mensais. 4. Atualizações no sistema implicam em novos arquivos e novos programas.
Problemas utilizando sistema de processamento de arquivos? Registros são armazenados em diversos arquivos Diversos Programas de aplicação são escritos para extrair e gravar dados
Desvantagens do Processamento de arquivos Inconsistência e redundância de dados Dificuldade de acesso aos dados Isolamento de dados Problema de integridade Problema de atomicidade Anomalias no acesso concorrente Problemas de segurança
Processamento de dados com Banco de Dados Cada informação armazenada uma única vez eventual redundância controlada pelo sistema em computador e invisível
Problemas no desenvolvimento de aplicações de Banco de Dados (1) Arquivos devem ser projetados para atender diferentes necessidades Estruturas de dados complexas Banco de dados é acessado por múltiplos programas Múltiplas equipes de desenvolvimento podem estar envolvidas Definição da estrutura da base de dados deve ser mantida de forma centralizada deve estar disponível para múltiplos usuários
Problemas no desenvolvimento de aplicações de Banco de Dados (2) Dados deve estar corretos Programas devem garantir a manutenção de restrições de integridade Restrição de Integridade: regras que estabelece quando uma base de dados está correta Exemplo: um aluno não pode possuir duas aprovações da mesma disciplina em seu histórico 01/6 Banco de dados é acessado concorrentemente por múltiplos usuários Programas devem implementar controle de acesso concorrente (programação complexa e de difícil depuração)
Problemas no desenvolvimento de aplicações de Banco de Dados (3) Nem todo usuário pode acessar qualquer informação Programas devem implementar controle de acesso Dados são de importância vital e não podem ser perdidos Mecanismos simples como cópias de backup não são suficientes Após falha BD deve ser recuperado rapidamente Transações confirmadas ao usuário não podem ser reprocessadas Programas devem implementar mecanismos de tolerância a falhas
Sistema Gerenciador de Banco de Dados (SGBD)
Dados e Modelo de Dados SGBD oferece um ambiente auto-contido Banco de dados = dados + descrição dos dados Modelo de dados = descrição dos dados Esquema da base de dados = texto ou gráfico que especifica o modelo de dados Dicionário de dados = conjunto de arquivos que armazena o modelo de dados
SGBD Independência de Dados SGBD oferece isolamento das aplicações em relação aos dados Independência de dados Independência de (aplicações em relação aos) dados significa que uma alteração no modelo de dados afeta pouco as aplicações Exemplo de sistema com pouca independência: Modificação no esquema exige recompilação de todos programas As aplicações não contém descrições dos dados. Com isso a base de dados pode ser alterada sem que as aplicações sejam afetadas.
SGBD Independência de Dados Oferece abstração de dados Aplicações "vêem" dados de forma abstrata, independente de detalhes físicos de implementação (fatores de bloco, localização no meio de armazenamento, existência de índices e caminhos de acesso) Aumenta independência de dados
SGBD aspectos operacionais Oferece controle de segurança Que usuário pode realizar que operação sobre que dado Implementa tolerância a falhas Recuperação em caso de falhas transparente ao usuários Oferece controle de acesso concorrente Múltiplos usuários podem acessar e atualizar o banco de dados simultaneamente
Modelo de Dados Sob a estrutura do Banco de dados está o modelo de dados: Um conjunto de ferramentas conceituais usadas para descrição de dados, relacionamentos entre dados, semântica de dados e regras de consistência.
Níveis de Modelo de Dados (1) Modelo conceitual Descrição mais abstrata da base de dados. Não contém detalhes de implementação. Independente de tipo de SGBD usado. Ponto de partida do projeto da base de dados.
Níveis de Modelo de Dados (2) Modelo lógico Descrição da base de dados como vista pelos usuários do SGBD (programadores, usuários que tem acesso ao BD diretamente). Dependente de SGBD. Não contém detalhes físicos de implementação (índices, etc.): SGBD oferece abstração de dados, independência de dados.
Níveis de Modelo de Dados (3) Modelo físico (interno) Descrição da base de dados como armazenada internamente (ajuste de performance). Tendência em produtos modernos é cada vez mais esconder o modelo físico.
Níveis de independência de dados Independência a nível lógico Modelo lógico pode ser modificado sem que os programas tenham que ser modificados (oferecida até um certo ponto nos produtos no mercado). Em alguns casos recompilação é requerida. Independência a nível físico Parâmetros físicos podem ser alterados (p.ex.: existência de índice) sem que as aplicações tenham que ser modificadas. Oferecida pelos produtos modernos.
Alguns Modelos de Banco de Dados Modelo Relacional Modelo de Rede Modelo Hierárquico Modelo Orientado a Objetos
Modelo Relacional
Modelo Rede
Modelo Hierárquico
Linguagens de BD Um sistema de banco de dados proporciona dois tipos de linguagens: Uma específica para esquema e outra para expressar consultas e atualizações. 1. DDL - data definition language 2. DML - data manipulation language
Linguagens de Definição de Dados - DDL Definição de Dados e Armazenamento O Resultado da compilação dos parâmetros DDL s é armazenado em um conjunto de tabelas que constituem um arquivo especial, chamado dicionário de dados. Um dicionário de dados é um Metadado. Em um SGBD esse arquivo é consultado antes que o dado real.
Linguagem de Manipulação dos Dados - DML Recuperação das informações armazenadas no B.D Inserção de novas informações no Banco de Dados A remoção de informações do B.D A modificação das informações do B. D
Funções envolvidas em SGBD (1) DBA - database administrator Responsável pelos modelos lógico e físico. Coordena acesso (senhas, etc.). Monitora performance e sintoniza base de dados (modelo físico). Projetista de base de dados Constrói modelo conceitual de uma parte da base de dados, com intervenção do usuário. Junto com o DBA integra novas partes a base de dados global
Funções envolvidas em SGBD (2) Analista Define e projeta aplicações sobre a base de dados. Usa modelo conceitual e lógico existentes, não define dados da base de dados. Programador Constrói aplicações usando os modelos conceitual e lógico existentes Usuários finais ( end-user ) Usuários que acessam a base de dados diretamente através de linguagens especiais
. Sistema de Banco de Dados Usuários Programador Programas aplicativos Usuários sofisticados Admnistrador de banco de dados Interface do aplicativo Programas aplicativos Consultas Esquema de banco de dados Pré-compilador da linguagem de manipulação de dados Processador de consultas Compilador de DDL Código objeto de programas aplicativos Gerenciador de banco de dados Sistema gerenciador de banco de dados Gerenciador de Arquivos Disco de armazenamento Arquivo de dados Dicionário de Dados
Referências Bibliográficas KORTH, Henry F. & SILBERSCHATZ, Abraham. Sistemas de Bancos de Dados, São Paulo. Ed. Makron Books, 1999. HEUSER, Carlos Alberto. Projeto de Banco de Dados. 4ª Edição. Ed. Sagra, 2001.