MBA em Gestão de TI MÓDULO: BANCO DE DADOS E BUSINESS INTELIGENCE C/H: 20 horas (20/02, 25/02, 27/02, 04/03, 06/03) PROFESSOR: Edison Andrade Martins Morais prof@edison.eti.br http://www.edison.eti.br 1
PLANO DE CURSO PLANO DE AULA SOBRE O PROFESSOR 2
Introdução a Teoria de Banco de Dados 3 3
Introdução Agenda Dados x Informações 1. Arquivos 1.1. Sistemas de Processamento de Arquivo 1.2. Principais Desvantagens 4 4
Dado Introdução É qualquer símbolo sem significado intrínseco. Informação É o dado associado a sua semântica. 5 5
Problema 1: Introdução Como transformar dado em informação? em outras palavras, Como realizar processamento de dados? 6 6
Introdução Na área de computação, utiliza-se os softwares. Software: É um conjunto de instruções utilizada para realizar processamento de dados. Os dados fazem parte do software. 7 7
Introdução Exemplo 1: um sistema mono-usuário Computador Dados Processamento Informação 8 8
Introdução Exemplo 2: um sistema multi-usuário Servidor de Dados Os dados são compartilhados 9 9
Problema 2: Introdução Como armazenar os dados a serem processados? Existem duas abordagens: Arquivos Banco de dados 10 10
Arquivos O que são os ARQUIVOS? 11 11
Arquivos Sistemas de Processamento de Arquivos: Sistema que antecedeu o uso da tecnologia dos Bancos de Dados. Objetivo: um modo de guardar informações no computador armazenando-as em arquivos permanentes. 12 Necessitava de um conjunto de programa de aplicações para processar estes arquivos. 12
Arquivos Exemplo de Visualização 13 13
Arquivos Processar Arquivos significa: Recuperar (extrair) registros; Inserir registros; Excluir registros; Alterar registros; Esta sistema, apresentava numerosas desvantagens... 14 14
Arquivos - Desvantagens Redundância de dados Mesmos dados são repetidos em diferentes arquivos. Ocorre pela própria necessidade do usuário. Aumenta os custos de armazenamento e acesso. 15 15
Arquivos - Desvantagens Inconsistência de dados Dados errados, ou seja, que não representam a realidade. Ocorre principalmente devido a redundância. Faz com que o BD perca uma de suas principais propriedades: a representação da realidade. 16 16
Arquivos - Desvantagens Integridade de dados Dados devem satisfazer certas restrições para manutenção da sua consistência. Os programadores são obrigados a manter a integridade via codificação. Isso traz dificuldade para adicionar novas restrições. O problema aumenta quando estas restrições devem atingir vários arquivos. 17 17
Arquivos - Desvantagens Dificuldade de acesso aos dados Para cada solicitação de usuário, deve ser feito: um programa diferente, ou... os dados devem ser separados manualmente. Isso faz com que a recuperação dos dados se torne ineficiente. 18 18
Arquivos - Desvantagens Isolamento dos dados Ocorre principalmente devido à dificuldade em acessá-los. Além disso, Dados normalmente estão dispersos em diversos arquivos; Estes arquivos possuem diferentes formatos; Desenvolver novas aplicações torna-se mais difícil ainda. 19 19
Arquivos - Desvantagens Problemas de atomicidade Sistemas computacionais são sujeitos a falhas. Em muitas aplicações, é crucial assegurar que, uma vez detectada a falha, os dados sejam salvos em seu último estado consistente. É difícil garantir esta propriedade em um sistema tradicional de arquivos. 20 20
Arquivos - Desvantagens Anomalias no acesso concorrente Alguns sistemas necessitam de atualizações simultâneas. Neste caso, os dados podem sofrer acesso de diferentes programas. Fazer isso via programação é bastante difícil. 21 21
Arquivos - Desvantagens Problemas de segurança Nem todos os usuários estão autorizados ao acesso a todos os dados. Um vez que o controle de acesso de usuários é feito via programa de aplicação, torna-se difícil garantir a efetividade das regras de segurança. 22 22
Conclusão Arquivos O sistema de arquivos precisava ser melhorado... 23 23
Leituras Recomendadas Cap. 1: Introdução, ref. [1] Cap. 1: Introdução ao processamento de banco de dados, ref. [2] Cap. 1: Visão Geral do Gerenciamento de Banco de Dados, ref. [3] 24 24
Referências desta aula [1] KORTH, H. F., SILBERSCHATZ, A. Sistema de Banco de Dados. São Paulo: Makron Books, 1995. [2] KROENKE, D. M. Banco de Dados Fundamentos, Projeto e Implementação. Rio de Janeiro: LTC, 1998. [3] DATE, C. J. Introdução a Sistemas de Bancos de Dados. Rio de Janeiro: Campus, 1983. 25 25
Projeto de Banco de Dados Parte 1 26 26
Agenda 1. Bancos de Dados (BD) 1.1. Definições 1.2. Visualização 1.3. Sistema de Gerenciamento de Banco de Dados (SGBD) 27 27
Bancos de Dados Surgiram no sentido de resolver as dificuldades relacionadas à utilização de arquivos. Segundo Kroenke [2], a tecnologia de bancos de dados foi amplamente desenvolvida para superar as limitações dos sistemas de arquivos. 28 28
Definições Bancos de Dados Segundo Date [3], é um Sistema Computadorizado de manutenção de registros. Segundo Silberchatz [1], é um conjunto de dados que, associados a um conjunto de programas para acessá-los, forma um Sistema Gerenciador de Banco de Dados (SGBD). 29 29
Definições Bancos de Dados Segundo Heuser [4], é uma Base de Dados associada à sua semântica.. Base de Dados: É uma coleção de dados inter-relacionados. 30 30
Banco de Dados Exemplo de Visualização Dados armazenados em Tabelas Cada linha representa um registro ou tupla Cada coluna representa um campos ou atributo 31 31
Banco de Dados Principais Finalidades [3]: Armazenar dados; Permitir que usuários busquem e atualizem estes dados; Forma de Representação: É representado por um Modelo de Dados... 32 32
Banco de Dados Modelo do BD (ou Modelo de Dados): Segundo Date [3], é uma definição abstrata, autônoma e lógica dos objetos, operadores e outros elementos que, juntos, constituem a máquina abstrata com a qual os usuários interagem. Objetos: permitem modelar a estrutura dos dados. Operadores: permitem modelar o comportamento dos dados. 33 Em outras palavras... 33
Banco de Dados Modelo do BD (ou Modelo de Dados): É a descrição formal da estrutura de um banco de dados. Usa-se uma linguagem de modelagem de dados na sua construção. Pode ser representado de várias formas (diferentes níveis de abstração). 34 34
Banco de Dados Exemplo de Modelo CORRENTISTA 0,N 0,N POSSUI CONTA CORRENTE 1,1 Modelo de Dados Relacional PERTENCE 0,1 CARTAO MAGNETICO 35 35
Banco de Dados Tipos de Modelos Modelos lógicos baseados em objetos MER; Orientado a Objetos. Modelos lógicos baseados em registros Modelo relacional; Hierárquico; Rede. 36 36
Banco de Dados Modelo Entidade- Relacionamento (MER) 37 Percepção do mundo real como um conjunto de objetos (entidades) e seus relacionamentos; As entidades são descritas por seus atributos; As cardinalidades devem ser representadas. 37
Banco de Dados Modelo Orientado a Objetos Tem por base um conjunto de objetos; Os objetos têm Propriedades e Métodos; Propriedades: são os atributos do objeto. Métodos: um conjunto de códigos que operam este objeto. 38 38
Banco de Dados Modelo Relacional Utiliza um conjunto de tabelas; Estas tabelas representam os dados e seu relacionamento; Um tabela possui múltiplas colunas. Cada coluna possui um nome único. 39 39
Banco de Dados Modelo de Rede Possui um conjunto de registros; A relação entre estes registros são representadas por links (ligações). Por exemplo, cliente e suas contas correntes: 111.111.111-11 João da Silva 222.222.222-22 Maria da Silva 333.333.333-33 José da Silva 3657-9 11.234-1 3657-9 11.235-6 3657-9 11.237-8 3657-9 11.238-4 40 40
Banco de Dados Modelo Hierárquico É similar ao modelo de rede; A diferença é que os registros são organizados em árvores. 111.111.111-11 João da Silva 222.222.222-22 Maria da Silva 3657-9 11.236-6 3657-9 11.234-1 3657-9 11.233-2 41 41
Banco de Dados Modelo x Implementação [3] É importante separar o modelo de sua implementação. Implementação: é uma representação física em uma máquina real dos componentes da máquina abstrata. Modelo Implementação 42 42
Banco de Dados Esquema do BD (ou Intenção do BD): É cada representação do modelo. Instância do BD (ou extensão, ou estado): São os dados contidos num banco de dados em um determinado instante. 43 43
Banco de Dados Por que utilizar BD? Para resolver as restrições impostas pela utilização de arquivos (ver Aula 1). Além disso: Estão integrados ao SGBD... 44 44
SGBD Sistema de Gerenciamento de Banco de Dados (SGBD) Segundo Silberchatz [1], é um conjunto de dados associados a um conjunto de programas para acesso a esses dados. Segundo Heuser [4], É um software que incorpora as funções de definição, recuperação e alteração de dados em um banco de dados. 45 45
SGBD Funcionamento Básico Usuários SBD Transações SGBD Gerenciador de Transações (TM) Gerenciador de Acesso aos Dados (DM) Definição do BD Catálogo Dados Armazenados Base de Dados 46 46
SGBD Principais Funções do SGBD [3]: Definição de dados O SGBD deve possuir um PROCESSADOR e um COMPILADOR DDL. Ou seja, um SGBD deve entender uma linguagem de definição de dados. Exemplo: Criar uma tabela de Pessoa, com o CPF e o nome da Pessoa: CREATE TABLE PESSOA (CPF int 11 NOT NULL, Nome VARCHAR(100)); 47 47
SGBD Manipulação de dados O SGBD deve possuir um PROCESSADOR e um COMPILADOR DML. Ou seja, deve ser capaz de acrescentar, buscar, atualizar ou excluir dados. Exemplo: Selecionar todos os funcionários cujo salário é maior ou igual a R$ 1000,00. SELECT * FROM FUNCIONARIO WHERE SALARIO >= 1000. 48 48
SGBD Otimização e Execução de Consultas Requisições DML devem ser processadas pelo componente OTIMIZADOR. Componente OTIMIZADOR: Determina um modo eficiente de implementar (executar) uma requisição. EXECUÇÃO: após otimizadas, as requisições são executadas sob o controle do GERENCIADOR DE TEMPO DE EXECUÇÃO (RUN-TIME). 49 49
SGBD Garantia de Segurança e Integridade do Dados O SGBD deve: MONITORAR requisições de usuários; REJEITAR todas as tentativas de violar as restrições de segurança e integridade definidas pelo DBA. 50 50
SGBD Recuperação de Dados e Concorrência Função implementada pelo Gerenciador de transações. Impõe processos de controle de recuperação e concorrência. 51 51
SGBD Dicionário de Dados São dados sobre os dados (metadados ou descritores). É considerado um banco de dados de sistema, não de usuário. Devem conter, Definições dos objetos de dados. Restrições de segurança e integridade. Programas que utilizam determinadas partes dos BD. 52 52
SGBD Desempenho É importante que o BD realize as funções citadas anteriormente de forma mais eficiente possível. 53 53
Leituras Recomendadas Cap. 2: Introdução ao Desenvolvimento de Banco de Dados, ref. [2] Cap. 2: Arquitetura de Sistemas de Banco de Dados, ref. [3] 54 54
Referências desta aula [1] KORTH, H. F., SILBERSCHATZ, A. Sistema de Banco de Dados. São Paulo: Makron Books, 1995. [2] KROENKE, D. M. Banco de Dados Fundamentos, Projeto e Implementação. Rio de Janeiro: LTC, 1998. [3] DATE, C. J. Introdução a Sistemas de Bancos de Dados. Rio de Janeiro: Campus, 1983. [4] HEUSER, C. A. Projeto de Banco de Dados. Porto Alegre: Sagra Luzzatto, 2000. 55 55
Projeto de Banco de Dados Parte 2 56 56
Agenda 1. Arquitetura de Sistemas de Banco de Dados 2. Independência de Dados 3. Projeto de Banco de Dados 4. Outras Arquiteturas 4.1. Cliente/Servidor 4.2. Bancos de Dados Distribuídos 57 57
Arquitetura ANSI SPARC Nível Externo Nível Conceitual Nível Interno Visão externa Esquema Conceitual Esquema Interno Mapeamento Externo-conceitual Mapeamento Conceitual-interno Dados Armazenados 58 58
Arquitetura ANSI SPARC Visão Externa: Descrevem visões, ou views (como os usuários vêem os dados). Esquema Conceitual Descreve a estrutura lógica dos dados. Esquema Interno Descreve os arquivos e os índices empregados. 59 59
Arquitetura ANSI SPARC Visão Externa Exemplo O banco de dados do meu banco tem as seguintes informações sobre os clientes (pessoas físicas): CPF, Nome, Endereço, Renda. Uma pessoa pode possuir uma ou mais contas a ela relacionada... 60 60
Arquitetura ANSI SPARC Esquema Conceitual Exemplo Pessoa(CPF: string, Nome: string, Endereço: string, Renda: currency); Conta(Número_conta: integer, Tipo: string, Saldo: currency, Limite: currency); Possui(CPF: string, Número_conta: integer, Status: integer); 61 61
Arquitetura ANSI SPARC Esquema Interno Exemplo CREATE TABLE Pessoa (CPF: string, Nome: string, Endereço: string, Renda: currency); CREATE INDEX Id_Nome ON Pessoa(Nome). 62 62
Arquitetura ANSI SPARC Mapeamentos Conceitual Interno Define a correspondência entre a visão conceitual e o banco de dados armazenado (interna). Especifica o modo como os registros e campos conceituais são representados no nível interno. 63 63
Arquitetura ANSI SPARC Mapeamentos Externo Conceitual Define a correspondência entre a visão externa específica e a visão conceitual. 64 64
Independência de Dados A arquitetura ANSI SPARC provê a chamada independência de dados. Independência de Dados: É a capacidade de alterar o esquema em um nível do SBD sem afetar os esquemas nos níveis superiores. Níveis: Lógica ou Física 65 65
Independência de Dados Independência de Dados Lógica Mudanças no esquema conceitual não afetam esquemas externos. Independência de Dados Física Mudanças no esquema interno não implicam em mudança nos esquemas conceitual e externos. 66 66
Projeto de Banco de Dados Alguns Papéis Envolvidos: 1 Usuários Finais; 2 Programadores de Aplicações; 3 Administradores de BD (DBA); 4 Administradores de Dados (DA); 67 67
Projeto de Banco de Dados 1 Usuários Finais Sofisticados: Interagem com o BD sem escrever programas; Formulam suas solicitações ao BD por meio de linguagens de consulta; 68 68
Projeto de Banco de Dados 2 Programadores de Aplicações São profissionais em computação que interagem com o BD por meio de chamadas DML. As chamadas DML normalmente estão envolvidas em por programas escritos em uma linguagem hospedeira. 69 69
Projeto de Banco de Dados 3 DBA - principais funções: Definição do esquema interno Definição da estrutura e métodos de acesso Esquema e modificações na organização física Fornecer autorizações de acesso 70 70
Projeto de Banco de Dados 3 DBA - principais funções: Especificação de regras de integridade. Descarga (Dumping) através de Backup e Recarga (restauração). Monitoramento do desempenho e resposta aos requisitos de mudança. 71 71
Projeto de Banco de Dados 3 DBA - principais funções: Além disso, o DBA é responsável por implementar fisicamente: tabelas, índices, views, constraints, triggers, stored procedures, schemas, ou outras construções específicas de bancos de dados necessárias ao armazenamento, obtenção e exclusão de dados ou objetos persistentes. 72 72
Projeto de Banco de Dados 4 Administradores de Dados (DA) São responsáveis pelo projeto do BD (Modelo conceitual e modelo lógico); Devem ter contato direto com os usuários. 73 73
Outras Arquiteturas A arquitetura dos SBD s pode ser vista sob outra perspectiva: Esta perspectiva, de mais alto nível, está relacionada ao suporte à execução de BD s. Se divide em dois tipos: Cliente/Servidor BD Distribuídos 74 74
Outras Arquiteturas Arq. CLIENTE/SERVIDOR: Sua estrutura é muito simples, e se divide em 2 partes: Servidor ou Back End Cliente ou Front End 75 75
Outras Arquiteturas Servidor (Back End) É o próprio SGBD; Suporta todas as funções básicas relacionadas a uma SGBD; 76 76
Outras Arquiteturas Cliente (Front End) São diversas aplicações (tanto de programadores quanto internas built in) executadas sobre um SGBD; 77 77
Outras Arquiteturas BD Distribuído Máquinas diferentes podem estar conectadas entre si em uma rede de comunicações, de tal modo que uma única tarefa de processamento possa se estender a várias máquinas da rede. A comunicação entre as várias máquinas é efetuada por algum tipo de software de gerenciamento de rede. 78 78
Próxima Aula Vamos falar sobre os: Modelo Entidade Relacionamento... 79 79
Leituras Recomendadas Cap. 2: Introdução ao Desenvolvimento de Banco de Dados, ref. [2] Cap. 2: Arquitetura de Sistemas de Banco de Dados, ref. [3] 80 80
Referências desta aula [1] KORTH, H. F., SILBERSCHATZ, A. Sistema de Banco de Dados. São Paulo: Makron Books, 1995. [2] KROENKE, D. M. Banco de Dados Fundamentos, Projeto e Implementação. Rio de Janeiro: LTC, 1998. [3] DATE, C. J. Introdução a Sistemas de Bancos de Dados. Rio de Janeiro: Campus, 1983. [4] HEUSER, C. A. Projeto de Banco de Dados. Porto Alegre: Sagra Luzzatto, 2000. 81 81