Banco de Dados. Apresentações Disciplina. Contexto dentro do curso Contexto dentro das empresas Contexto para o profissional - PDF
Banco de Dados. Apresentações Disciplina. Contexto dentro do curso Contexto dentro das empresas Contexto para o profissional
Download "Banco de Dados. Apresentações Disciplina. Contexto dentro do curso Contexto dentro das empresas Contexto para o profissional"
Otávio Bicalho Gil
2 Banco de Dados Apresentações Disciplina Contexto dentro do curso Contexto dentro das empresas Contexto para o profissional Programador, Analista de Sistemas, DA e DBA 2
3 Ementa Módulo I Conceitos Básicos Objetivos Apresentar conceitos e a necessidade de bancos de dados Apresentar uma arquitetura geral para sistemas de bancos de dados Avaliar sistemas relacionais e apresentar um exemplo prático Apresentar a linguagem SQL Tópicos 1 Visão Geral de Banco de Dados 2 Arquitetura de Sistemas de Banco de Dados 3 Introdução a Bancos de Dados Relacionais 3
4 Ementa Módulo II Linguagem SQL Objetivos Apresentar os conceitos da linguagem SQL Prática em laboratório Tópicos 1 - Conceituação 2 - Consultas 3 - Manipulação de Dados 4 - Definição de Dados 4
5 Ementa Módulo III Projeto de Banco de Dados Objetivos Tratar de projetos de banco de dados relacionais Examinar os principais conceitos envolvidos em um projeto lógico (projeto conceitual) Apresentar os principais conceitos de um projeto físico Tópicos 1 Processo de Desenvolvimento de Software 2 - Projeto de Banco de Dados Normalização 1FN, 2FN, 3FN Projeto Lógico Projeto Físico 5
6 Ementa Módulo IV Linguagem PL/SQL Objetivos Apresentar conceitos de linguagem procedural para banco de dados Tópicos 1 Conceitos Gerais 2 Stored Procedures 3 - Triggers 6
7 Ementa Módulo V Administração de Banco de Dados Objetivos Tratar de questões relacionadas a administração de banco de dados Tópicos 1 Arquitetura de Banco de Dados 2 - Objetos de Bancos de Dados 3 Considerações sobre Backup e Recovery 4 - Segurança e Auditoria 7
8 Avaliação Prova: 8.0 pontos Primeiro Bimestre: 09/04/2012 Segundo Bimestre: 11/06/2012 Final: 25/06/2012 Trabalho: 2.0 pontos Bibliografia Introdução a Sistemas de Banco de Dados, Tradução da 7 Edição Americana, C. J. Date, Editora Campus 8
10 1. Visão Geral de Banco de Dados 1.1. Introdução Um sistema de banco de dados, é apenas um sistema computadorizado de armazenamento de registros O banco de dados pode ser comparado a um armário de arquivamento. Os usuários do sistema poderão: Acrescentar novos arquivos Inserir novos dados em arquivos existentes Buscar dados em arquivos existentes Alterar dados em arquivos existentes Eliminar dados em arquivos existentes Remover arquivos existentes do banco de dados 10
11 1. Visão Geral de Banco de Dados 1.1. Introdução Exemplo de um banco de dados com um único arquivo chamado LIVRO: COD# LIVRO AUTOR ANO QTDE 1 Introdução a Sistemas de Banco de Dados C. J. Date Oracle8 DBA Handbook Kevin Loney Oracle8i Internal Services Steve Adams Exemplo de busca sobre este banco de dados Busca: Resultado: SELECT LIVRO, COD#, AUTOR FROM LIVRO WHERE AUTOR = C. J. Date ; LIVRO COD# AUTOR Introdução a Sistemas de Banco de Dados 1 C. J. Date 11
12 1. Visão Geral de Banco de Dados 1.1. Introdução Exemplo de Inserção INSERT INTO LIVRO (COD#, LIVRO, AUTOR, ANO, QTDE) VALUES (4, MAXIMUM SECURITY, Anonymous, 1997, 30) Exemplo de Alteração UPDATE LIVRO SET QTDE = 50 WHERE COD# = 1; Exemplo de Exclusão DELETE FROM LIVRO WHERE COD# = 4; 12
13 1. Visão Geral de Banco de Dados 1.1. Introdução Observações Importantes Arquivos são chamados de tabelas relacionais Linhas são registros e colunas são campos Para cada coluna são especificados tipos de dados A coluna COD# constitui a chave primária da tabela LIVRO Os exemplos de seleção, inserção, alteração e exclusão estão utilizando a linguagem SQL LIVRO COD# LIVRO AUTOR ANO QTDE 1 Introdução a Sistemas de Banco de Dados C. J. Date Oracle8 DBA Handbook Kevin Loney Oracle8i Internal Services Steve Adams
14 1. Visão Geral de Banco de Dados 1.2. O que é um Sistema de Banco de Dados? É um sistema computadorizado com o propósito de armazenar dados e permitir aos usuários buscar e atualizar informações. Um sistema de banco de dados envolve 4 componentes principais: dados, hardware, software e usuários Usuários Aplicações SGDB Banco de Dados 14
15 1. Visão Geral de Banco de Dados 1.2. O que é um Sistema de Banco de Dados? Dados Os Sistemas de banco de dados podem estar disponíveis em máquinas de pequeno ou grande porte Pequeno porte - mono-usuário Grande porte - multiusuário (transparência) Os dados dentro de um BD são: Integrados Unifica vários arquivos eliminando em parte qualquer redundância entre estes arquivos Empregado: Empresa: Nome Endereço Departamento Salário... Nome Departamento... Departamento: Nome Local... 15
16 1. Visão Geral de Banco de Dados 1.2. O que é um Sistema de Banco de Dados? Dados Os dados dentro de um BD são (cont): Compartilhados Porções isoladas de dados podem ser compartilhadas entre diferentes usuários para finalidades distintas. Diferentes usuários podem acessar os mesmos dados em um mesmo momento (acesso concorrente) 16
17 1. Visão Geral de Banco de Dados 1.2. O que é um Sistema de Banco de Dados? Hardware Os componentes de hardware do sistema consistem em: Volumes de armazenamento secundário Principalmente discos magnéticos Processadores e memória principal associada Usados para fornecer suporte à execução do software do sistema de banco de dados 17
18 1. Visão Geral de Banco de Dados 1.2. O que é um Sistema de Banco de Dados? Software Entre o banco de dados físico e os usuários do sistema existe uma camada de software conhecida como Sistema Gerenciador de Banco de Dados (SGBD) O SGBD tem a função de isolar os usuários do banco de dados dos detalhes do nível do hardware Algumas observações O SGDB é o componente de software mais importante de todo o sistema, mas não é o único O termo instância é utilizado algumas vezes para se referir à cópia particular de um determinado produto que esteja sendo executado 18
19 1. Visão Geral de Banco de Dados 1.2. O que é um Sistema de Banco de Dados? Usuários Generalizando, podemos considerar três classes de usuários: Programadores de Aplicação» Responsáveis pela elaboração de programas aplicativos de banco de dados (COBOL, Java, C++, ou outras linguagens de 4 geração) Usuários Finais» Interagem com o sistema a partir de terminais ou estações de trabalho on-line Administrador de Banco de Dados» Responsável pelo gerenciamento do Sistema Gerenciador de Banco de Dados 19
20 1. Visão Geral de Banco de Dados 1.3. O que é um Banco de Dados? Coleção de dados persistentes utilizada pelos sistemas de aplicação de uma determinada empresa Dados Persistentes Após sua entrada no banco de dados, só podem ser removidos pelo SGBD Alguns exemplos de dados persistentes de uma empresa: Dados sobre produto Dados sobre contas Dados sobre pacientes Dados sobre alunos 20
21 1. Visão Geral de Banco de Dados 1.3. O que é um Banco de Dados? Entidades e relacionamentos Diagrama de Entidade Relacionamento 21
22 1. Visão Geral de Banco de Dados 1.3. O que é um Banco de Dados? Propriedades 22
23 1. Visão Geral de Banco de Dados 1.3. O que é um Banco de Dados? SGBDR: Sistemas relacionais se baseiam em uma teoria formal chamada modelo relacional de dados de acordo com a qual: Os dados são representados por meio de linhas em tabelas (tuplas) São fornecidas operadores para operação sobre linhas em tabelas (projeção, restrição, união, etc) Modelo de Dados Um modelo de dados é uma definição abstrata, autônoma e lógica dos objetos, operadores e outros elementos que, juntos, constituem a máquina abstrata coma qual os usuários interagem Implementação Uma implementação de um determinado modelo de dados é uma representação física sobre uma máquina real dos componentes desta máquina abstrata 23
24 1. Visão Geral de Banco de Dados 1.4. Por que Banco de Dados? Vantagens da Abordagem de Banco de Dados Os dados podem ser compartilhados A redundância pode ser reduzida A inconsistência pode ser evitada O suporte a transação pode ser fornecido A integridade pode ser mantida A segurança pode ser reforçada Os padrões podem ser reforçados Estas vantagens podem ser alcançadas devido a possibilidade de centralização dos dados 24
25 1. Visão Geral de Banco de Dados 1.4. Por que Banco de Dados? Quando se tem um controle centralizado existe a necessidade de: Uma pessoa responsável pelos dados - Administrador de Dados (DA) Uma pessoa responsável tecnicamente pelo banco de dados - Administrador de Banco de Dados (DBA) 25
26 1. Visão Geral de Banco de Dados 1.4. Por que Banco de Dados? Atribuições de um DBA Definir o esquema conceitual (projeto lógico - DDL conceitual) Definir o esquema interno (projeto físico - DDL interna) Ligação com os usuários (ajudar a definir as DDL externas) Definir restrições de segurança e integridade (fazem parte do esquema conceitual) Definir normas de descarga e recarga (backup e recovery) Monitorar o desempenho e responder a requisitos de mudanças (tuning) 26
27 1. Visão Geral de Banco de Dados 1.5. Independência de Dados Dizemos que uma aplicação possui independência de dados quando é possível mudar a representação física dos dados ou a técnica de acesso sem afetar a aplicação de forma drástica. Por que independência dos dados? Aplicações diferentes exigirão visões diferentes dos mesmos dados O DBA deve ter liberdade para alterar a representação física ou a técnica de acesso em resposta a mudança dos requisitos, sem ter que modificar as aplicações existentes 27
28 1. Visão Geral de Banco de Dados 1.5. Independência de Dados Exemplos de tipos de alterações que o DBA pode desejar efetuar e às quais, desejaríamos que as aplicações fossem imunes: Representação de dados de caracteres Estrutura de registros armazenados Estrutura de arquivos armazenados Etc... 28
29 1. Visão Geral de Banco de Dados Resumo Sistema de Banco de Dados Sistemas Gerenciador de Banco de Dados(SGDB) Administrador de Banco de Dados Administrador de Dados (AD) Dados Integrados Compartilhado Diagrama de Entidade Relacionamento Independência dos Dados 29
30 1. Visão Geral de Banco de Dados Exercícios Defina os seguintes termos e expressões DBA Diagrama de Entidade Relacionamento Independência de Dados SGDB Sistema de Banco de Dados 30
31 1. Visão Geral de Banco de Dados Exercícios Quais são as vantagens de se utilizar um banco de dados? O que você entende por sistema relacional? O que você entende pelo termo modelo de dados? Explique a diferença entre um modelo de dados e sua implementação. 31
32 2. Arquitetura de Sistemas de Banco de Dados Arquitetura ANSI/SPARC - Study Group on Data Base Management Systems Nível externo - visões de usuários individuais Nível conceitual - visão da comunidade de usuários Nível interno - visão do meio de armazenamento PL/I DCL 1 empp 2 emp# char(6) 2 sal fixed bin(31) 01 empc 02 empno pic x(6) 02 deptno pic x(4) EMPREGADO número_empregado character(6) número_departamento character(4) salário numeric (5) EMP_ARMAZENADO BYTES =20 prefixo type=byte(6), offset=0 emp# type=byte(6), offset=6, index=empx dept# type=byte(4), offset=12 pagto type=fullword, offset=16 Cobol Conceitual Interno 32
33 2. Arquitetura de Sistemas de Banco de Dados Linguagem host + DSL Linguagem host + DSL Linguagem host + DSL Linguagem host + DSL Linguagem host + DSL Esquema externo A Visão Externa A Esquema externo B Visão Externa B Mapeamento externo/ conceitual A Mapeamento externo/ conceitual B Definição da estrutura de armazenamento (esquema interno) Esquema conceitual Visão Conceitual Mapeamento Conceitual/Interno Sistema de gerenciamento de bancos de dados (SGBD) Banco de dados armazenado (visão interna) 33
34 2. Arquitetura de Sistemas de Banco de Dados Funções de um Sistema Gerenciador de Banco de Dados Definição de Dados (processador DDL) Manipulação de Dados (processador DML) Solicitação planejada (produção operacionais, OLTP) Solicitações não planejadas (apoio à decisão) Otimização e execução (Desempenho) Segurança e integridade dos dados Recuperação e concorrência de dados (gerenciador de transação) Dicionário de dados (contém dados sobre os dados - metadados) 34
35 2. Arquitetura de Sistemas de Banco de Dados Exemplo de Funções de um Sistema Gerenciador de Banco de Dados Requisições DML planejadas Esquemas e mapeamento Processador de DML Requisições DML não-planejadas (ad-hoc) Processador de DDL Esquemas e objetos e mapeamento Requisições compiladas Otimizador Requisições Otimizadas Gerenciador em tempo de execução Processador de linguagem de consulta Metadados Impõe restrições de segurança e integridade Dados Metadados - Dic Dados 35
36 2. Arquitetura de Sistemas de Banco de Dados Gerenciador de Comunicação de Dados Arquitetura Cliente/Servidor Aplicações (front-end) Outros Componentes Aplicações escritas pelo usuário Aplicações fornecidas pelo fabricante (tools) Utilitários SGDB (back-end) Rotinas de carga, reorganização, estatísticas e análise 36
37 Resumo 2. Arquitetura de Sistemas de Arquitetura ANSI/SPARC Nível Externo Nível Conceitual Nível Interno Independência de dados lógica e física Linguagem de Definição de Dados (DDL) Linguagem de Manipulação de Dados (DML) Dicionário de Dados Servidor - Clientes Banco de Dados 37
38 2. Arquitetura de Sistemas de Exercícios Defina os seguintes termos: cliente DDL DML dicionário de dados Otimizador Banco de Dados 38
39 2. Arquitetura de Sistemas de Exercícios Banco de Dados Liste as funções mais importantes executadas pelo SGBD O que você entende pelo termo metadados? Dê alguns exemplos de utilitários de banco de dados. 39
40 3. Introdução aos Bancos de Dados Relacionais Visão informal do Modelo Relacional Aspecto estrutural: dados são percebidos como tabelas, e nada além de tabelas Aspecto de integridade: essas tabelas satisfazem a certas restrições de integridade Aspecto manipulativo: utiliza-se operadores que derivam tabelas de outras tabelas (restrição, projeção e junção) 40
41 3. Introdução aos Bancos de Dados Relacionais Banco de Dados de Fornecedores e Peças 41
42 3. Introdução aos Bancos de Dados Relacionais Banco de Dados de Fornecedores e Peças CREATE TABLE PECA ( cd_peca NUMBER NOT NULL, nome_peca VARCHAR2(40) NOT NULL, cor VARCHAR2(20) NOT NULL, peso NUMBER(5,2) NOT NULL, cidade VARCHAR2(40) NOT NULL, PRIMARY KEY (cd_peca) ); ); CREATE TABLE FORNECEDOR ( cd_fornec NUMBER NOT NULL, nome_fornec VARCHAR2(40) NOT NULL, status NUMBER(2) NULL, cidade VARCHAR2(40) NULL, PRIMARY KEY (cd_fornec) ); CREATE TABLE FORNEC_PECA ( cd_fornec NUMBER NOT NULL, cd_peca NUMBER NOT NULL, quantidade NUMBER(4) NOT NULL, PRIMARY KEY (cd_fornec, cd_peca), FOREIGN KEY (cd_peca) REFERENCES PECA, FOREIGN KEY (cd_fornec) REFERENCES FORNECEDOR 42
43 3. Introdução aos Bancos de Dados Relacionais Visão informal do Modelo Relacional Restrição (seleção): extrai linhas especificas de uma tabela DEPTOs nos quais orçamento > 8M Projeção: extrai colunas especificas de uma tabela DEPTOs sobre DEPTO#, ORÇAMENTO Junção: une duas tabelas com base em valores comuns em uma coluna comum DEPTOs e EMPs sobre DEPTO# 43
44 3. Introdução aos Bancos de Otimização Dados Relacionais As linguagens relacionais são não procedimentais (usuários especificam o que mas não como) - navegação automática Talvez uma melhor forma de se colocar isto seria as linguagens relacionais como SQL estão em um nível de abstração mais elevado que linguagens como C++ ou COBOL Decidir como executar a navegação automática é responsabilidade de um componente do SGBD chamado otimizador 44
45 3. Introdução aos Bancos de Dados Relacionais Otimização Suponha que a seguinte solicitação seja executada: select salario where emp# = E4 ; Existem dois modos de se executar o acesso aos dados: Busca sequencial física Se houver índice sobre a coluna emp#, usa-se este índice para ir diretamente aos dados exigidos O otimizador escolhe a estratégia baseados em: Quais variáveis de relação(tabelas) são referenciadas na solicitação Qual o tamanho destas variáveis de relação Quais índices existem O quanto estes índices são seletivos Como os dados são agrupados fisicamente no disco Que operações relacionais estão envolvidas 45
46 3. Introdução aos Bancos de Variáveis de Relações Básicas e Visões Para se criar as variáveis de relação básica utiliza-se o comando CREATE TABLE Os sistemas relacionais admitem outro tipo de variável de relação, chamada visão, cujo valor em um instante determinado é uma relação derivada CREATE VIEW EMPSUP AS SELECT EMP#, NOMEEMP, SALARIO FROM EMP Dados Relacionais WHERE SALARIO > 33K; Quando a instrução é executada, a expressão relacional que segue AS não é executada, mas apenas armazenada no catálogo 46
47 3. Introdução aos Bancos de Dados Relacionais 47
48 3. Introdução aos Bancos de O Catálogo Dados Relacionais O catálogo contém informações detalhadas (metadados) referentes aos diversos objetos que são de interesse do próprio sistema Exemplos destes objetos: relações, índices, usuários, restrições de integridade, restrições de segurança, etc As informações do catálogo são essenciais para que os sistema faça seu trabalho de forma apropriada Ex.: o otimizador utiliza informações do catálogo sobre índices e outras estruturas físicas de armazenamento para ajudá-lo a decidir como implementar requisições do usuário. Da mesma forma, o subsistema de segurança utiliza informações do catálogo sobre o usuário e restrições de segurança para conceder ou negar tais requisições. 48
49 3. Introdução aos Bancos de O Catálogo Dados Relacionais O próprio catálogo consiste em variáveis de relações, desta forma os usuários podem interrogar o catálogo da mesma forma que interrogam seus dados 49
50 3. Introdução aos Bancos de Transações Uma transação é uma unidade lógica de trabalho, em geral envolvendo diversas operações de banco de dados Para se inicializar e finalizar transações as operações BEGIN TRANSACTION, COMMIT e ROLLBACK são fornecidas Ex. de mover $$$ da conta A para a conta B BEGIN TRANSACTION UPDATE conta A; UPDATE conta B; IF tudo funcioniu bem THEN COMMIT; ELSE ROLLBACK END IF; Dados Relacionais 50
51 3. Introdução aos Bancos de Transações Pontos importantes: Dados Relacionais As transações tem a garantia de serem atômicas As transações tem garantia de serem duráveis (persistentes) no sentido de que, após o commit as operações são garantidas As transações tem garantia de serem isoladas umas das outras, no sentido de que atualizações realizadas por uma transação T1 não serão visíveis para uma transação T2 até que T1 execute COMMIT. Caso execute ROLLBACK todas as operações serão desfeitas A execução intercalada de um conjunto de transações concorrentes tem a garantia de ser serializável, no sentido de que ela produz os mesmos resultados que a execução dessas mesmas transações uma de cada vez 51
52 Resumo 3. Introdução aos Bancos de Banco de dados relacional (variáveis de relação, tabelas) Restrição, projeção e junção Chaves primárias e chaves estrangeiras Otimizador (navegação automática) Catálogo Dados Relacionais Variáveis de relação básica / Variáveis de relação derivada Transação (COMMIT e ROLLBACK) 52
53 Exercícios 3. Introdução aos Bancos de Defina os seguintes termos: catálogo chave estrangeira chave primária Commit Rollback Otimizador visão transação Dados Relacionais 53
54 ANEXO I Arquitetura Cliente / Servidor
55 I - Cliente-Servidor A) Introdução B) Princípio C) Endereçamento D) Primitivas Bloqueadoras e Não Bloqueadoras E) Primitivas Bufferizadas e Não Bufferizadas F) Primitivas Confiáveis e Não Confiáveis G) Implementação Cliente-Servidor H) Exemplos de Arquiteturas Cliente Servidor I) Conclusões J) Referências 55
56 A) Introdução Ganhou aceitação nos anos 80 Fornece facilidade de uso, flexibilidade, interoperabilidade e escalabilidade comparado com o modelo centralizado. Clientes requisitam serviços e servidores fornecem serviços 56
57 Arquitetura Mainframe Inteligência no Host Interação via terminal 57
58 A) Introdução Arquitetura File Sharing Redes de PCs originais baseadas nesta arquitetura Ideal para ambientes onde: uso de recursos compartilhados é baixo Contenção nas alterações é baixa Volume de dados a ser transferido é baixo 58
59 A) Introdução Arquitetura Cliente Servidor Introduz o servidor de banco de dados para substituir o servidor de arquivos Fornece resposta a consultas em vez de transferência total do arquivo Provê alteração multi-usuário através de uma interface gráfica para um banco de dados compartilhado 59
60 A) Introdução Características de Sistemas Distribuídos Transparência Localização: usuário não necessita dizer onde os recursos estão localizados Migração: recursos podem ser movidos sem alterar seus nomes Replicação: usuários não necessitam dizer quantas cópias existem Concorrência: múltiplos usuários podem compartilhar recursos automaticamente Paralelismo: atividades podem ocorrer em paralelo sem o conhecimento do usuário. Flexibilidade Confiabilidade Desempenho Escalabilidade 60
61 B) Princípio O Kernel disponibiliza 2 API s que implementam as chamadas do sistema: send(dest,&buffer) receive(addr,&buffer) 61
62 C) Endereçamento Formas de endereçamento na rede: máquina + processo endereço da máquina.número do processo máquina + local-id endereço da máquina.número da porta cada processo é associado a uma porta: exemplo TCP/IP nome + local-id nome da máquina.número da porta necessita de um mecanismo de resolução de nomes broadcast + cache dos nomes resolvidos consulta a um servidor de nomes: exemplo DNS permite a distribuição automática de endereços na inicialização (exemplo: DHCP). 62
63 D) Primitivas Blocking e NonBlocking Período que o processo permanece bloqueado. API retorno API retorno 63
64 E) Primitivas Bufferizadas e Não-Bufferizadas Bufferizadas: Define-se um Buffer(Mailbox com endereço do processo) 64
65 F) Primitivas Confiáveis e Não Confiáveis 65
66 G) Implementação do Modelo Cliente-Servidor Considerações em relação ao protocolo utilizado: O tamanho máximo de um pacote na rede é limitado. As mensagens são fragmentadas em vários pacotes. A confirmação do recebimento pode ser feita pacote a pacote ou para mensagem inteira. O protocolo estabelecido entre o cliente e o servidor necessita a utilização de vários pacotes de controle. REQ (Request) REP (Reply) ACK (Acknowledge) AYA (Are You Alive): verifica se o servidor está funcionando IAA (I m Alive): o servidor informa que está funcionando TA (Try Again): o servidor (mailbox) está saturado. AU (Address Unknown): nenhum processo associado ao endereço ou mailbox. 66
67 G) Implementação do Modelo C/S Cenários 67
68 H) Exemplos de Tecnologias Cliente Servidor H1 - Arquitetura Two Tier H2 - Arquitetura Three Tier 68
69 H1) Arquitetura Two Tier Consiste de três componentes distribuídos em duas camadas: Interface com Usuário Gerenciamento de Processos Gerenciamento de Base de Dados Distribuição: Gerenciamento de Processos Gerenciamento de Bases de Dados Interface com Usuário Servidor Cliente 69
70 H1) Arquitetura Two Tier Considerações Em muitas aplicações a porção de processamento está no ambiente cliente. O servidor de gerenciamento de banco de dados normalmente fornece a porção de processamento relacionada a acesso aos dados. Esta arquitetura é indicada para ambientes homogêneos com regras de negócio que não sofrem muitas alterações. Limitações Escalabilidade: Muitos usuários degradam a rede (keep alive). Segundo [Schussel 96] até 100 usuários é um número razoável. Implementação de regras de negócio em Stored Procedures aumenta a necessidade de poder de processamento dos servidores. 70
71 H1) Arquitetura Two Tier Limitações (cont...) Interoperabilidade: Implementação de lógica de processamento feito via SPs (Ex. gerenciamento de integridade em bases de dados distribuídas) e linguagem de SPs geralmente proprietárias. Administração e Configuração Toda alteração deve ser realizada em cada cliente que utiliza a aplicação. Sobrecarga de administradores devido a configurações inconsistentes. Alternativas Arquitetura Three Tier Arquitetura Distribuída/Colaborativa 71
72 H2) Arquitetura Three Tier Adiciona uma terceira camada entre o cliente e o servidor. Camada média fornece gerenciamento de processos. Em relação a Two Tier fornece maior desempenho, interoperabilidade, escalabilidade e reuso. Gerenciamento de Processos Gerenciamento de Bases de Dados Camada Média Interface com Usuário 72
73 H2) Arquitetura Three Tier Considerações Facilita o desenvolvimento de software devido a cada camada ser construída e executada em plataformas separadas. Esta arquitetura é indicada para ambientes heterogêneos com regras de negócio que sofrem muitas alterações. Alternativa Arquitetura Two Tier Arquitetura Distribuída/Colaborativa 73
74 I) Conclusões A implementação de uma arquitetura Cliente Servidor traz benefícios em relação a escalabilidade, interoperabilidade, flexibilidade e facilidade de uso. Dependendo do modelo a ser utilizado, já está maduro o bastante para ser implementado em circunstâncias complexas. A adoção de um modelo deve ser estudado cuidadosamente. A administração/gerenciamento se torna mais complexa. 74
75 J) Referências [Tanenbaum 95] Tanenbaum, Andrew S. Distributed Operatinf Systems [Schussel 96] Schussel, George. Client/Server Past, Present, and Future [Gallaugher 96] Gallaugher, J. & Ramanathan, S. Choosing a Client/ Server Architecture. A Comparison of Two-Tier and Three- Tier Systems. Retorna 75