Baixe o app para aproveitar ainda mais
Prévia do material em texto
Arquitetura de banco de dados Milton Goya Dados Internacionais de Catalogação na Publicação (CIP) (Simone M. P. Vieira - CRB 8ª/4771) Goya, Milton Arquitetura de banco de dados / Milton Goya. – São Paulo : Editora Senac São Paulo, 2021. (Série Universitária) Bibliografia. e-ISBN 978-65-5536-729-4 (ePub/2021) e-ISBN 978-65-5536-730-0 (PDF/2021) 1. Banco de Dados (Ciência da Computação) 2. Sistemas de geren- ciadores de banco de dados (SGBD) I. Título II. Série. 21-1317t CDD – 005.74 COM021000 COM018000 Índice para catálogo sistemático 1. Banco de dados 005.74 M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo . ARQUITETURA DE BANCO DE DADOS Milton Goya M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Administração Regional do Senac no Estado de São Paulo Presidente do Conselho Regional Abram Szajman Diretor do Departamento Regional Luiz Francisco de A. Salgado Superintendente Universitário e de Desenvolvimento Luiz Carlos Dourado Editora Senac São Paulo Conselho Editorial Luiz Francisco de A. Salgado Luiz Carlos Dourado Darcio Sayad Maia Lucila Mara Sbrana Sciotti Luís Américo Tousi Botelho Gerente/Publisher Luís Américo Tousi Botelho (luis.tbotelho@sp.senac.br) Coordenação Editorial/Prospecção Dolores Crisci Manzano (dolores.cmanzano@sp.senac.br) Administrativo grupoedsadministrativo@sp.senac.br Comercial comercial@editorasenacsp.com.br Acompanhamento Pedagógico Mônica Rodrigues dos Santos Designer Educacional Patrícia Pinheiro de Sant’Ana Revisão Técnica Alexandre Lopes Machado Preparação e Revisão de Texto Deborah Quintal Projeto Gráfico Alexandre Lemes da Silva Emília Corrêa Abreu Capa Antonio Carlos De Angelis Editoração Eletrônica Michel Iuiti Navarro Moreno Ilustrações Michel Iuiti Navarro Moreno Imagens Adobe Stock Photos E-pub Ricardo Diana Proibida a reprodução sem autorização expressa. Todos os direitos desta edição reservados à Editora Senac São Paulo Rua 24 de Maio, 208 – 3o andar Centro – CEP 01041-000 – São Paulo – SP Caixa Postal 1120 – CEP 01032-970 – São Paulo – SP Tel. (11) 2187-4450 – Fax (11) 2187-4486 E-mail: editora@sp.senac.br Home page: http://www.livrariasenac.com.br © Editora Senac São Paulo, 2021 M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo . Sumário Capítulo 1 Características do sistema gerenciador de banco de dados, 7 1 Fundamentos de um ambiente de banco de dados com SGBD, 8 2 Modelo de dados: relacional, orientado a objeto e semiestruturado, 14 3 Característica dos dados: clássicos, geográficos, multimídia, 20 Considerações finais, 23 Referências, 23 Capítulo 2 Sistemas de gerenciamento de banco de dados centralizados, 25 1 SGBDs centralizados, 26 2 Arquitetura de três esquemas, 28 Considerações finais, 39 Referências, 39 Capítulo 3 Sistema de gerenciamento de banco de dados cliente/ servidor, 41 1 Arquitetura SGBD cliente/ servidor, 42 2 Cliente (front-end), 45 3 Servidor (back-end), 47 4 Funções, gatilhos e procedimentos, 48 5 Servidores e aplicações Web, 52 Considerações finais, 53 Referências, 53 Capítulo 4 Sistemas de gerenciamento de banco de dados distribuídos homogêneos, 55 1 SGBDD homogêneo, 56 2 Transações, 58 3 Replicação: síncrona e assíncrona, 63 4 Fragmentação: horizontal, vertical e mista, 65 Considerações finais, 67 Referências, 68 Capítulo 5 Multissistemas gerenciadores de banco de dados heterogêneos, 69 1 Banco de dados federados, de multibases e legados, 70 2 Processamento, 73 3 Replicação, 76 4 Otimização de consultas, 77 5 Serviços: agente gateway, conectividade genérica, 80 Considerações finais, 81 Referências, 81 Capítulo 6 Sistemas gerenciadores de banco de dados paralelos, 83 1 Técnicas de gerenciamento de dados, 84 2 Particionamento do banco de dados, 87 3 Memória compartilhada, 90 Considerações finais, 93 Referências, 93 M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Capítulo 7 Sistemas gerenciadores de bando de dados e a Web, 95 1 Arquitetura em três camadas, 96 2 Modelagem em XML: conceitual, lógica e física, 99 3 Web service XML/JSON: CGI, POST, GET, 104 4 Padrões XML, 107 5 Modelagem de dados XML: simples, orientada à especificação do W3C, a relacionamentos, a nós, a bordas e genérica, 109 Considerações finais, 112 Referências, 112 Capítulo 8 Sistemas gerenciadores de banco de dados para dispositivos móveis, 113 1 Caching e difusão de dados, 114 2 Replicação de dados e sincronização, 119 3 Recuperação de falhas, 121 4 SQLite, 123 Considerações finais, 125 Referências, 126 Sobre o autor, 129 7 M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Capítulo 1 Características do sistema gerenciador de banco de dados Os dados fazem parte da vida de todas as pessoas. É necessário li- dar com dados a todo momento: ao enviar uma mensagem instantânea por meio de aplicativo para a família, ao colocar uma foto em uma rede social, ao preencher uma proposta de emprego; até na hora em que é feita a compra de uma pizza, há dados envolvidos. 8 Arquitetura de Banco de Dados Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo .Para que os dados sejam mantidos organizados, é comum o uso de bancos de dados. Existem bancos de dados simples, como a agenda de contatos de um smartphone, até bancos de dados mais complexos, contendo o mapeamento do genoma humano. Quanto maior o ambiente, mais complexa fica a sua administração. Para facilitar a administração de dados, existem os sistemas gerencia- dores de bancos de dados (SGBDs). Neste capítulo, apresentamos os modelos de banco de dados, o ambiente de um banco de dados com um SGBD e como eles são caracterizados. 1 Fundamentos de um ambiente de banco de dados com SGBD Em 2017, a revista The Economist publicou um artigo intitulado “The world’s most valuable resource is no longer oil, but data” ou, em tradu- ção livre, “O recurso mais valioso do mundo não é mais o petróleo, mas os dados”. A cada dia que passa, as empresas conseguem usar seus dados de maneira mais eficiente, ajudando no processo de decisão, prospectando novos clientes e encontrando novas oportunidades de negócio (THE ECONOMIST, 2017). Para que esses dados possam ser úteis e gerar valor, as organiza- ções devem armazená-los e gerenciá-los de forma a atender a suas necessidades. Imagine um aluno fazendo matrícula em uma escola. Ao fazer a ma- trícula, a escola deve recolher cópias dosdocumentos do aluno e man- ter o seu registro escolar. Essas informações devem estar acessíveis para quem precisar delas. Existem muitas formas de armazenar esses documentos e registros: eles podem ser estocados em grandes e antigos armários de aço, ficar 9Características do Sistema Gerenciador de Banco de Dados M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. em pastas de papel dentro de grandes gavetas e, até mesmo, ficar em- pilhados em grandes caixas de papelão. Figura 1 – Armazenamento de dados manual IMPORTANTE Um banco de dados é uma coleção de dados relacionados. Os dados são fatos que podem ser gravados e que pos- suem significado implícito. (ELMASRI; NAVATHE, 2018) Mesmo se os dados do aluno estiverem arquivados em caixas, suas informações formam uma coleção de dados relacionados, caracteri- zando, portanto, um banco de dados. Esse tipo de banco de dados é chamado de banco de dados manual. Muitas vezes, o acesso aos dados em um banco de dados ma nual não é muito prático. Com o advento dos sistemas informatizados, a maioria das escolas e empresas opta por armazenar seus dados em um SGBD. 10 Arquitetura de Banco de Dados Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo . Figura 2 – Armazenamento de dados informatizado Um SGBD é um conjunto de programas de computador que permite que o usuário controle o armazenamento, a organização e a recupera- ção de dados (MACHADO, 2014). IMPORTANTE Um banco de dados é uma coleção organizada de informações tratadas como uma unidade. O objetivo de um banco de dados é coletar, armaze- nar e recuperar informações relacionadas para serem usadas por aplica- tivos (apps) que precisem de seus dados (PUGA; FRANÇA; GOYA, 2013). Existem algumas vantagens em trabalharmos com o SGBD (ELMASRI; NAVATHE, 2018; RAMAKRISHNAN; GEHRKE, 2011; VICCI, 2015): controle da redundância, da consistência, do compartilhamento e da concorrência, segurança e backup dos dados. 11Características do Sistema Gerenciador de Banco de Dados M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. 1.1 Controle da redundância de dados Em sistemas tradicionais, onde os dados são armazenados em siste- mas convencionais de arquivos, é comum ocorrer redundância de dados. Isso porque os arquivos podem ser armazenados em vários locais dife- rentes ou, até mesmo, em sistemas diferentes. Por causa disso, é possí- vel surgir cópias do mesmo arquivo, gerando redundância de dados. A redundância de dados ocorre quando os mesmos dados são ar- mazenados desnecessariamente em locais diferentes. Em um SGBD, a redundância de dados é reduzida ou eliminada por- que os dados são armazenados em um local centralizado, não havendo necessidade de que cada usuário ou aplicativo crie seus arquivos. 1.2 Controle da consistência de dados Em sistemas tradicionais, as alterações feitas por um usuário ou apli- cativo afetam apenas seus arquivos; se existirem dados redundantes em outras aplicações, eles podem não ser atualizados. A consistência dos dados é garantida em um SGBD porque a redundância de dados é evitada. Quaisquer alterações confirmadas na base de dados são imediatamente refletidas para todos os usuários e não há inconsistência de dados. A consistência de dados garante que os valores exibidos para deter- minado conjunto de dados sejam os mesmos para todos os usuários que o visualizem em um banco de dados. 1.3 Controle de compartilhamento de dados e concorrência dos dados Em um SGBD, o compartilhamento de dados permite que usuários e aplicativos compartilhem dados com outros aplicativos e usuários. Os dados são armazenados em um ou mais servidores da rede, um 12 Arquitetura de Banco de Dados Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo .mecanismo de bloqueio (lock) de software evita que o mesmo conjunto de dados seja alterado por duas pessoas ao mesmo tempo. 1.4 Segurança de dados Um SGBD fornece mecanismos de autenticação e autorização que protegem a privacidade e a segurança dos dados. Apenas os usuários autorizados têm acesso aos dados, e existem mecanismos que ajudam a definir os privilégios de acesso. 1.5 Backup e recuperação de dados Um SGBD fornece estrutura para backup e recuperação de dados. Em caso de falha, é possível voltar o banco de dados a uma condição anterior. Os dados alterados pelo usuário são registrados em um meca- nismo de log que permite restaurá-los até a última posição consistente. De maneira simplificada, a forma de um SGBD pode ser representada pela figura 3. Figura 3 – Representação simplificada de um SGBD APLICAÇÃO Aplicativo de banco de dados Linguagem de consulta estruturada SOFTWARE Processador / Otimizador de consultas Gerenciador de memória / Cache HARDWARE Dicionário de dados (metadados) armazenado Logs Dados armazenados Fonte: adaptado de Elmasri e Navathe (2018). 13Características do Sistema Gerenciador de Banco de Dados M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Nesta estrutura simplificada, há três camadas: aplicação, software e hardware. A camada aplicação indica algumas formas de como é possível acessar o SGBD: • Um aplicativo de banco de dados é um software que interage com um banco de dados para acessar e manipular os dados. O banco de dados pode ser acessado por aplicativos ou através de uma linguagem de consulta estruturada (Structured Query Language – SQL) (VICCI, 2015). • A linguagem de consulta estruturada deve obedecer o padrão mí- nimo definido pela American National Standards Institute (ANSI), mas os fabricantes são livres para desenvolverem a linguagem e estabelecerem os nomes para suas funções e seus procedimen- tos. É essa linguagem que permite que os aplicativos acessem os dados (RAMAKRISHNAN; GEHRKE, 2011). A camada de software de um SGBD é responsável pelo gerencia- mento de memória cache, análise, processamento e otimização das consultas. • Ao receber uma instrução SQL, sua sintaxe e semântica são anali- sadas, uma estrutura interna conhecida como parse tree (árvore de análise, em tradução livre) é criada e um código pas sível de execu- ção pelo computador é gerado (RAMAKRISHNAN; GEHRKE, 2011). • O código é otimizado através de uma série de técnicas que po- dem reescrever a consulta, alterar a ordem de leitura das tabe- las e escolher quais índices serão utilizados (RAMAKRISHNAN; GEHRKE, 2011). • O conjunto de resultados de uma consulta fica em memória ca- che. Mesmo antes de analisar a consulta, o servidor consulta o cache. Se algum cliente emitir uma consulta idêntica a outra que 14 Arquitetura de Banco de Dados Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Sena c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo .já está no cache, o servidor simplesmente pula a análise, a otimi- zação e até mesmo a execução, simplesmente exibindo a saída do cache (RAMAKRISHNAN; GEHRKE, 2011). A terceira camada contém os mecanismos de armazenamento. Eles são responsáveis por armazenar e recuperar todos os dados armazena- dos. Nessa camada, ficam armazenados os dados, metadados e logs. • O dicionário de dados é uma coleção somente leitura de tabelas e views (visualizações, em tradução livre) do banco de dados con- tendo informações de referência sobre o banco de dados, suas estruturas e seus usuários. Sua manutenção é feita pelo próprio SGBD (PUGA; FRANÇA; GOYA, 2013). • Os arquivos de log contêm todos os comandos SQL que atua- lizaram dados. Utilizados para fins de recuperação de dados e replicação. 2 Modelo de dados: relacional, orientado a objeto e semiestruturado Projetado por Charles W. Bachman na década de 1960, o Integrated Database System, primeiro precursor dos SGBDs, foi criado para facilitar a extração e o acesso a informações específicas. 2.1 Primeiros modelos A primeira geração de SGBDs incluía dois tipos: hierárquico e de rede. Esses tipos de sistemas possuem estruturas rígidas e de difícil manutenção. A ausência de data definition language (DDL – linguagem de definição de dados) dificultava a alteração da estrutura de dados, e a ausência de uma linguagem de consulta dificultava o desenvolvimento de aplicativos. 15Características do Sistema Gerenciador de Banco de Dados M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. 2.1.1 Hierárquico O banco de dados hierárquico organiza os dados em uma estrutura de árvore, em que cada registro-pai tem um ou mais registros-filho, com estrutura semelhante à de um sistema de arquivos. 2.1.2 Rede Um banco de dados de rede é semelhante a um banco de dados hierárquico, exceto que os registros têm um relacionamento de muitos- -para-muitos ao invés de um-para-muitos. 2.2 Relacional Em 1970, E. F. Codd publicou o artigo “A Relational Model of Data for Large Shared Data Banks” (“Um modelo relacional de dados para gran- des bancos de dados compartilhados”, em tradução livre). Nesse artigo, Codd usa a teoria matemática dos conjuntos e da lógica de predicados para definir o modelo relacional. O nome “relacional” vem da proposição do uso de álgebra relacional para acessar e consultar os dados no ban- co de dados (PUGA; FRANÇA; GOYA, 2013). Apesar de existirem outros modelos de banco de dados, atualmente o modelo relacional é o mais aceito e utilizado. Um banco de dados relacional, portanto, é aquele que segue as definições desse modelo (ELMASRI; NAVATHE, 2018). Entre suas características destacam-se: • sólida fundamentação teórica, permitindo que as operações se- jam claramente definidas, para que os aplicativos manipulem os dados e as estruturas do banco de dados; • estruturas simples e uniformes, conhecidas como relacionamen- tos e entidade; • suas regras de integridade controlam as operações nos dados e nas estruturas de um banco de dados. 16 Arquitetura de Banco de Dados Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo .Um banco de dados relacional é também um conjunto de relações associadas. Essa relações podem ser representadas como tabelas, e cada relação possui um nome que indica que tipo de tupla a relação possui (RAMAKRISHNAN; GEHRKE, 2011). Em uma relação denomina- da “aluno”, por exemplo, as tuplas conterão dados dos alunos. IMPORTANTE No modelo relacional, formalmente, uma linha é denominada “tupla”, o cabeçalho de uma coluna é denominado “atributo”, a tabela é denomina- da “relação” e cada valor dos dados em uma tupla é denominado “cam- po” (RAMAKRISHNAN; GEHRKE, 2011). Em uma relação, cada tupla representa um conjunto de valores de dados relacionados, caracterizando um fato correspondente a um rela- cionamento ou a uma entidade do mundo real. Os nomes das tabelas e colunas são utilizados na interpretação do significado dos valores de uma linha (ELMASRI; NAVATHE, 2018). Dizemos que um banco de dados relacional é estruturado porque cada linha de uma tabela possui o mesmo conjunto de colunas, e elas possuem o mesmo tipo de dados. O modelo relacional é a base para um SGBD relacional. Ele armazena e recupera dados para que as operações físicas sejam transparentes para os aplicativos de banco de dados (RAMAKRISHNAN; GEHRKE, 2011). 2.3 Orientado a objeto Já o modelo orientado a objeto começou com a ideia de modificar os modelos de dados tradicionais, já que eles não atendiam às necessida- des das linguagens de programação orientada a objetos. 17Características do Sistema Gerenciador de Banco de Dados M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Neste modelo, a noção de objeto é usada no nível lógico e possui ca- racterísticas não encontradas nas linguagens de programação tradicio- nais, como operadores de manipulação de estruturas, gerenciamento de armazenamento, tratamento de integridade e persistência de dados (ELMASRI; NAVATHE, 2018). O uso de bancos de dados orientados a objeto atende a sistemas que tratam estruturas de dados complexas, como imagens, vídeos, da- dos de áudio, textos longos e gráficos (ELMASRI; NAVATHE, 2018). IMPORTANTE Um SGBD que implementa recursos orientados a objetos, como tipos de dados definidos pelo usuário (User-Defined Type – UDT), herança e polimorfismo é chamado de SGBD relacional de objeto. A reusabilidade é uma das características interessantes do modelo orientado a objeto. Ela permite que rotinas comumente usadas possam ser armazenadas em bibliotecas de rotinas e reutilizadas. Isso deriva de três características importantes do modelo: polimorfismo, encapsula- mento e herança (ELMASRI; NAVATHE, 2018). O polimorfismo refere-se à habilidade de objetos de classes diferen- tes responderem à mesma função de maneiras distintas. Linguagens tradicio nais necessitam que cada função execute a mesma operação, en- quanto lingua gens orientadas a objeto associam função a uma ou mais operações. Ao receber uma solicitação, o objeto determina a operação a ser executada a partir da classe desse objeto (ELMASRI; NAVATHE, 2018). O encapsulamento refere-se à habilidade de um objeto de proteger seus dados e a si mesmo de interferência externa. Espera-se que ne- nhum objeto possa acessar dados internos de outros objetos (ELMASRI; NAVATHE, 2018). 18 Arquitetura de Banco de Dados Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo .A herança refere-se à habilidade de um objeto adquirir a funciona- lidade e os dados de outro objeto utilizando novas classes de objetos criadas como descendentes. NA PRÁTICA Anote: CREATE TABLE cidade(nome TEXT, populacao FLOAT, altitude INT) CREATE TABLE capital (uf CHAR(2)) INHERITS (cidade) O exemplo, adaptado da documentação do SGBD PostgreSQL 8.3, permite que a tabela capital herde todas as colunas de sua tabela pai, cidade. As capitais dos estados também têm uma coluna extra para a unidade da federação (uf), que mostra o estado da cidade. De acordo com Ramakrishnan e Gehrke (2011), podemos destacar as seguintes vantagens do modelo orientado a objeto: • as alterações em determinado objeto são refletidas nos atributos e nas relações com outros objetos; • a identidade do objeto persiste mesmo após processamento e modelamento; • classes de objeto podem ter propriedades ou atributos herdados de uma parte dos objetos dentro da classe. 2.4 Semiestruturado O modelo de dados semiestruturados apresenta uma estrutura he- terogênea, ou seja, os dados não são completamente não estruturados nem estrita mente tipados. 19Características do Sistema Gerenciador de Banco de Dados M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Um bom exemplo do uso de dados semiestruturados é uma pági- na de e-commerce. Ao acessá-la, é possível encontrar um catálogo de produtos com uma descrição uniforme baseada em linhas e colunas, também é possível encontrar uma área para contato com um padrão estrutural facilmente identificado ou um arquivo de imagem onde não existem informações descritivas associadas (LEAL, 2015). Dados semiestruturados são autodescritivos, e o seu esquema de representação está presente, de forma explícita ou implícita, juntamente ao dado. É necessário que uma análise de dados seja feita para que a sua estrutura possa ser identificada e extraída (SETZER; SILVA, 2005). IMPORTANTE Dados semiestruturados não têm um modelo de dados formal, mas têm padrão e estrutura aparentes e autodescritivos que permitem que sejam analisados. As características principais de dados semiestruturados são: • Definição à posteriori: a estrutura de dados semiestruturados é usualmente definida após a existência dos dados. • Estrutura irregular: não existe um esquema padrão para os dados semiestruturados. • Estrutura implícita: a estrutura básica de dados está implícita na forma como eles são apresentados. • Estrutura parcial: a estrutura básica de dados nem sempre é com- pleta, e nem todas as suas informações estão presentes. • Estrutura evolucionária: a estrutura de dados pode ser modificada à medida que os dados são atualizados (ABITEBOUL; BUNEMAN; SUCIU, 2000). 20 Arquitetura de Banco de Dados Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo .Em modelos de dados tradicionais existe uma estrutura homogênea de atributos e tipos. No caso do modelo de dados semiestruturados, cada ocorrência de dado pode ser heterogênea tanto no esquema quan- to em seus atributos e tipos. Uma vez que cada dado pode ter organização própria, uma estrutura para representar um conjunto de dados costuma ser extensa para que possa refletir suas particularidades. 3 Característica dos dados: clássicos, geográficos, multimídia Diferentes tipos de dados são usados em vários momentos: na cria- ção de uma tabela, ao incluir um novo campo, ao consultar uma infor- mação, entre outros. Os tipos de dados permitem identificar os valores possíveis de serem atribuídos a um campo, quais as operações que po- dem ser feitas com eles e a forma como serão armazenados no banco de dados. 3.1 Dados clássicos Os SGBDs oferecem vários tipos de dados para armazenar dados escalares. Dado escalar é um elemento de informação que pode ser acessado através de um identificador (ELMASRI; NAVATHE, 2018). Entre os tipos de dados escalares, temos: • Dados de caracteres: armazenam dados de caracteres de tama- nho fixo ou variável. Os tipos de dados de caracteres de tamanho fixo são armazenados com espaços em branco preenchidos; os tipos de dados de caracteres de tamanho variável usam apenas o número de bytes necessário para armazenar o valor real da coluna. • Dados numéricos: armazenam somente números. 21Características do Sistema Gerenciador de Banco de Dados M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. • Dados tipo data: podem armazenar datas, datas com horário e datas com horário e fuso horário. 3.2 Dados geográficos Os dados geográficos podem ser descritos de três maneiras: espa- cial, temporal e temática (SILVA, 2003). • Espacial: quando a variação muda de lugar para lugar. Um mes- mo ponto pode variar, por exemplo, em altitude, declividade ou profundidade do solo. • Temporal: quando a variação muda com o tempo. Um mesmo ponto pode variar, por exemplo, de acordo com a ocupação do solo ou a densidade demográfica. • Temática: quando as variações são detectadas através de mu- danças de características como, por exemplo, na cobertura vege- tal ou geologia. IMPORTANTE Os fenômenos espaciais, temporais e temáticos que ocorrem na super- fície da Terra são denominados de dados geográficos ou espaciais. Dados geográficos estão distribuídos sobre a superfície curva da Terra, e seus pontos trabalham com coordenadas x, y e z. De acordo com MySQL (2020), objetos do mundo podem ser repre- sentados por: • Ponto: dado espacial que não possui área. Representado por um único par de coordenadas. 22 Arquitetura de Banco de Dados Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo . • Linha ou arco: formado por uma sequência de pontos conecta- dos. Por exemplo, um rio ou uma estrada. • Cadeias: definem limites entre polígonos. Por exemplo, os limites entre bairros ou cidades • Polígonos: planos que representam uma geometria com vários lados. Por exemplo, a área de uma fazenda. Em um banco de dados MySQL, alguns tipos de dados que podem conter dados geográficos são: geometry, point, linestring e polygon. 3.3 Dados multimídia Os SGBDs multimídias oferecem recursos para o armazenamento e a consulta de informações multimídias. Usando técnicas de identifica- ção de conteúdo das fontes multimídias, é possível trabalhar com con- sultas conhecidas, como recuperação de dados baseada em conteúdo. De acordo com Elmasri e Navathe (2018), os principais tipos de da- dos multimídias são: • Texto: normalmente contém o texto completo de um artigo, livro ou revista. Pode ser armazenado formatado ou não. • Áudio: contém mensagens de voz, como um diálogo de um opera- dor de telemarketing com seu cliente, discursos e sons em geral. • Vídeo: contém segmentos de vídeo quadro a quadro. É possível armazenar vídeos de grande extensão. • Imagens: contém imagens, normalmente armazenadas como um conjunto de valores em pixel. O grande desafio desse tipo de dado é encontrarmos dados multi- mídias que atendam às necessidades de uma busca. É um campo que vem evoluindo muito nos últimos anos. 23Características do Sistema Gerenciador de Banco de Dados M aterial para uso exclusivo de aluno m atriculado em cursode Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Considerações finais A cada instante, é produzida uma gigantesca quantidade de dados; os SGBDs vieram para facilitar a administração e manutenção desse grande capital de informações. Esses sistemas fornecem facilidades que vão desde a otimização de uma consulta ao gerenciamento de es- paço em um ambiente de produção. Cada modelo de dados (relacional, orientado a objeto ou semiestru- turado) possui uma aplicação própria. Sistemas tradicionais trabalham com modelos relacionais; sistemas com transações muito longas ou com objetos complexos usam o modelo orientado a objeto; e ambientes mistos trabalham com o modelo semiestruturado. A decisão sobre o tipo de modelo impacta em toda a estrutura do sistema e deve ser observada com cuidado. Referências ABITEBOUL, S.; BUNEMAN, P.; SUCIU, D. Gerenciando dados na Web. Rio de Janeiro: Campus, 2000. ELMASRI, R.; NAVATHE, S. B. Sistemas de banco de dados. 7. ed. São Paulo: Pearson, 2018. LEAL, G. C. L. Linguagem, programação e banco de dados: guia prático de aprendizagem. Curitiba: InterSaberes, 2015. MACHADO, F. N. R. Banco de dados: projeto e Implementação. 3. ed. São Paulo: Saraiva, 2014. MYSQL. MySQL 8.0 Reference Manual. Disponível em: https://dev.mysql.com/ doc/refman/8.0/en. Acesso em: 05 nov. 2020. PUGA, S.; FRANÇA, E.; GOYA M. Banco de dados: implementação em SQL PL/ SQL e Oracle 11g. São Paulo: Pearson, 2013. 24 Arquitetura de Banco de Dados Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo .RAMAKRISHNAN, R.; GEHRKE, J. Sistemas de gerenciamento de banco de da- dos. 3. ed. Porto Alegre: AMGH, 2011. SETZER, V. W.; SILVA, F. S. C. da. Banco de dados: aprenda o que são, melhore seu conhecimento, construa os seus. São Paulo: Edgard Blucher, 2005. SILVA, A. B.. Sistemas de informações geo-referenciadas: conceitos e funda- mento. Campinas: Editora da Unicamp, 2003. THE WORLD’S most valuable resource is no longer oil, but data. The Economist, 06 maio 2017. Disponível em: https://www.economist.com/le- aders/2017/05/06/the-worlds-most-valuable-resource-is-no-longer-oil-but- data. Acesso em: 05 nov. 2020. VICCI, C. A. (org). Banco de dados. São Paulo: Pearson, 2015. https://www.economist.com/leaders/2017/05/06/the-worlds-most-valuable-resource-is-no-longer-oil-but-data https://www.economist.com/leaders/2017/05/06/the-worlds-most-valuable-resource-is-no-longer-oil-but-data https://www.economist.com/leaders/2017/05/06/the-worlds-most-valuable-resource-is-no-longer-oil-but-data 25 M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Capítulo 2 Sistemas de gerenciamento de banco de dados centralizados Indivíduos, pequenas empresas e grandes corporações vêm desco- brindo a importância de reunir, sistematizar, organizar, processar, anali- sar e interpretar os seus dados. A exploração desses dados pode levar a tomadas de decisões mais efetivas e a novas oportunidades de negócio. Dentro desse contexto, os dados passam a ser um recurso estraté- gico da empresa e, como tal, possuem valor e precisam ser protegidos. Um sistema gerenciador de banco de dados (SGBD) centralizado ofe- rece maior segurança, pois todos os envolvidos com acesso a esses dados estão submetidos a protocolos e limites de acesso que circuns- crevem um vazamento de dados que, eventualmente, possa ocorrer. Neste capítulo, apresentamos os modelos de banco de dados cen- tralizados, a organização de arquivo, a alocação de disco e seus tipos de registro. Também veremos tipos de dados, visões do usuário, segurança dos dados e suas vantagens e desvantagens. 26 Arquitetura de Banco de Dados Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo . 1 SGBDs centralizados Em um SGBD centralizado, uma unidade central é utilizada para aten- der toda a empresa (ELMASRI; NAVATHE, 2018). Os usuários conectam seus computadores e terminais a esse SGBD centralizado através uma conexão local ou uma conexão de internet e obtêm os dados de que necessitam. Usar um SGBD centralizado faz parte da estratégia de negócio de empresas de grande e médio porte para o gerenciamento adequado de seus dados. Segundo relatório de 2013 da empresa Deloitte, 42% das empresas pesquisadas adotaram alguma abordagem de centralização de dados (DELOITTE, 2013). IMPORTANTE Um SGBD centralizado é aquele onde o banco de dados é localizado, mantido e armazenado em um único local como, por exemplo, um main- frame. Durante muito tempo, o termo mainframe indicou os computadores grandes e pesados dos primeiros sistemas computacionais. Por ques- tões mercadológicas, os fabricantes passaram a denominar qualquer computador de uso comercial de servidor, não importando o seu porte (grande ou pequeno). Nesse contexto, mainframe indica o maior tipo de servidor, atualmente, em uso (ELMASRI; NAVATHE, 2018). De maneira simplificada, um SGBD centralizado pode ser representa- do conforme figura 1. 27SGBD centralizados M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Figura 1 – Representação simplificada de um banco de dados centralizado Banco de dados MAINFRAME TERMINAL 3TERMINAL 1 TERMINAL 2 TERMINAL 4 Fonte: adaptado de Elmasri e Navathe (2018). Para que os SGBDs computadorizados possam consultar, alterar, remover e incluir dados, primeiro eles precisam ser armazenados em algum tipo de mídia de armazenamento (ELMASRI; NAVATHE, 2018). De maneira geral, SGBDs costumam armazenar grandes quantida- des de dados que podem ser acessados e alterados com frequência. Devido ao grande volume, o armazenamento dos dados é feito em dis- cos magnéticos em estruturas denominadas arquivos (files) (ELMASRI; NAVATHE, 2018). De acordo com Silberschatz, Korth e Sudarshan (2006), esses arqui- vos podem ser organizados das seguintes maneiras: • heap; • sequencial indexado; • hash; • sequencial. 28 Arquitetura de Banco de Dados Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo .IMPORTANTE O SGBD armazena todos os registros dentro de uma unidade de tama- nho fixo que é comumente chamada de página (ou bloco). Uma página contém registros, mas também contém cabeçalhos e trailers. 2 Arquitetura de três esquemas A arquitetura de três esquemas tem como objetivo separar o que faz parte do banco de dados físico do que é aplicação do usuário. É dividi- da em três níveis: interna, conceitual e externa (ou de visão) (ELMASRI; NAVATHE, 2018), conforme figura 2. Figura 2 – Arquitetura de três camadas Esquema ConceitualMapeamento externo/conceitual Mapeamento conceitual/interno Banco de Dados Armazenados Visão Externa Visão Externa NÍVEL EXTERNO ... NÍVEL INTERNO NÍVEL CONCEITUAL Esquema Interno Usuários Finais Fonte: adaptado de Elmasri e Navathe (2018). 29SGBD centralizados M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. 2.1 Nível interno O nível interno descreve como os dados estão realmente armazena- dos. Neste nível, as estruturas de dados de baixo nível são descritas em detalhes (ELMASRI; NAVATHE, 2018). 2.1.1 Organização de arquivo heap A forma mais simples de organização de arquivos é um arquivo não orde- nado, também conhecido como arquivo heap (ELMASRI; NAVATHE, 2018). IMPORTANTE Em uma organização de arquivo heap, os registros são colocados no arquivo na mesma ordem em que são inseridos. Os novos registros são então inseridos na última página do arquivo. Caso não exista espaço suficiente para o novo registro, é adicionada uma nova página ao ar- quivo. Esse mecanismo torna as operações de inclusão de dados mais eficientes. Como os dados incluídos no arquivo heap não estão ordenados por nenhum valor de campo, para localizar um registro específico, é neces- sário fazer uma pesquisa linear em todo o arquivo. Uma pesquisa linear envolve a leitura do arquivo heap página por pá- gina até que o elemento pesquisado seja encontrado. Isso torna a recu- peração de um dado específico relativamente lenta, no entanto, ela é efi- ciente caso seja preciso recuperar uma grande quantidade de registros. Ao excluir um registro, a página onde ele está precisará ser recupera- da; o registro é, então, marcado como excluído, e a página é gravada de volta no disco. O espaço com os registros excluídos não é reutilizado. 30 Arquitetura de Banco de Dados Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo .Caso existam muitos registros excluídos, o desempenho na recu- peração de dados pode ser degradado, pois será necessário ler mais páginas do arquivo em busca da informação desejada. Por isso, o admi- nistrador do SGBD precisa reorganizar os arquivos heap periodicamente para recuperar o espaço não utilizado dos registros excluídos. Os arquivos heap são uma das melhores organizações para o car- regamento em massa de dados em uma tabela, pois os registros são inseridos no final da sequência; não há, portanto, sobrecarga para cal- cular em qual página o registro deve ficar (ELMASRI; NAVATHE, 2018) . De acordo com Silberscatz e Sudarshan (2006), heap é uma boa es- trutura de armazenamento nas seguintes situações: • Ao efetuar uma carga de dados em grande volume em uma relação. • A relação ter poucas páginas. Em situações como essa, o tempo de busca de uma ou várias tuplas é pequeno. • Todas ou quase todas as tuplas de uma relação precisem ser re- cuperadas cada vez que a relação é acessada. Heap não é indicado quando apenas tuplas específicas de uma rela- ção devem ser recuperadas. 2.1.2 Organização de arquivo sequencial indexado Em arquivos do tipo sequencial indexado, os registros são compos- tos por campos de tamanho fixo, gravados em disco sequencialmente e classificados por um índice primário (ELMASRI; NAVATHE, 2018). Esta estrutura é um meio-termo entre um arquivo de acesso se- quencial e um arquivo de acesso aleatório. Nesse caso, os registros po- dem ser processados sequencialmente ou acessados individualmente 31SGBD centralizados M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. através de um valor de chave de pesquisa que acessa o registro por meio do índice (ELMASRI; NAVATHE, 2018). IMPORTANTE Índice é uma estrutura de dados que permite ao SGBD localizar registros específicos em um arquivo rapidamente e, com isso, melhorar o tempo de resposta das consultas efetuadas no banco de dados. Um índice elimina a necessidade de ler sequencialmente o arquivo sempre que for preciso encontrar um registro específico. O índice é or- denado, e cada entrada de índice contém a chave do registro pesquisa- do e um ou mais endereços físicos da tabela onde o registro pode ser encontrado (ELMASRI; NAVATHE, 2018). Os valores no arquivo de índice são ordenados de acordo com o campo de indexação, que geralmente é baseado em um único atributo (ELMASRI; NAVATHE, 2018). Um conjunto secundário de índices, conhecidos como tabelas hash, contém o endereço físico dos registros nas tabelas, permitindo que re- gistros individuais sejam recuperados sem que seja necessário pesqui- sar todo o conjunto de dados (ELMASRI; NAVATHE, 2018). Arquivos sequenciais indexados também são conhecidos como Indexes Sequential Access Method (ISAM) ou, em tradução livre, mé- todo de acessos sequenciais indexados (SILBERSCHATZ; KORTH; SUDARSHAN, 2006). ISAM é uma estrutura de armazenamento mais versátil e provou ser melhor que a hash quando as recuperações são baseadas na correspondência exata de chave, intervalo de valores e chave parcial (SILBERSCHATZ; KORTH; SUDARSHAN, 2006). 32 Arquitetura de Banco de Dados Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo . 2.1.3 Organização de arquivo hash Em um arquivo hash, os registros não são armazenados sequencial- mente em um arquivo, em vez disso uma função hash é usada para calcular o endereço da página na qual o registro deve ser armazenado (ELMASRI; NAVATHE, 2018). O campo no qual a função hash é calculada é chamado de “campo hash”. Se esse campo atuar como a chave da relação, é denominado “chave hash”. Os registros são distribuídos aleatoriamente no arquivo, portanto, também são chamados de arquivos “de acesso aleatório” ou “de acesso direto”. Normalmente, uma função aritmética é aplicada ao campo hash para que os registros sejam distribuídos uniformemente por todo o arquivo (ELMASRI; NAVATHE, 2018). Geralmente, a estrutura de arquivo hash é uma boa alternativa para quando as tuplas são recuperadas com base em uma correspondência exata do valor do campo hash (SILBERSCHATZ; KORTH; SUDARSHAN, 2006). 2.1.4 Alocação em disco Alocação em disco é a forma como os arquivos são armazenados nos blocos do disco. O método de alocação é escolhido de forma que a utilização do disco seja eficiente e o acesso ao arquivo seja o mais rápido possível (SILBERSCHATZ; KORTH; SUDARSHAN, 2006). 2.1.4.1 Alocação contígua Na alocação contígua, um arquivo é feito por um conjunto ligado de blocos. Nesta estrutura, uma consulta aos dados primeiro deve acessar o bloco B, depois o bloco B+1, para só depois o bloco B+2, e assim suces- sivamente. Esse método acessa os dados rapidamente, permitindo tan- to acesso direto quanto sequencial, no entanto, aumentar o tamanho do 33SGBD centralizados M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. arquivo pode ser problemático porque depende de existiremblocos con- tíguos para a gravação (SILBERSCHATZ; KORTH; SUDARSHAN, 2006). Figura 3 – Alocação contígua em disco ...B B+1 B+2 B+n Fonte: adaptado de Elmasri e Navathe (2018). 2.1.4.2 Alocação em lista encadeada O método de lista encadeada surge para resolver alguns problemas da alocação contígua. Neste método, os blocos de disco não são organi- zados de forma contígua, mas sim através de lista encadeada. Os blocos podem estar espalhados no disco. A entrada do diretório contém o ende- reço do primeiro e do último bloco do arquivo; cada bloco contém o en- dereço do próximo bloco (SILBERSCHATZ; KORTH; SUDARSHAN, 2006). 2.1.5 Tipo de registro O formato mais comum de armazenamento de dados é o formato de registros. Um registro é formado por campos que, por sua vez, contêm valores (ELMASRI; NAVATHE, 2018). 34 Arquitetura de Banco de Dados Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo .2.1.5.1 Registro fixo O tipo de registro fixo é aquele em que o tamanho de cada campo do registro tem o mesmo comprimento e cada registro tem exatamente o mesmo tamanho em bytes. Os tipos de dados CHAR e DATE são exem- plos típicos de campos com tamanho fixo (ELMASRI; NAVATHE, 2018). 2.1.5.2 Registro variável O tipo de registro variável é aquele em que o tamanho dos campos do registro tem comprimento variável e os registros podem ter tamanhos diferentes entre si. Os tipos de dados VARCHAR e NUMERIC são exem- plos típicos de campos com tamanho variável (ELMASRI; NAVATHE, 2018). 2.2 Nivel conceitual O nível conceitual descreve as entidades, os relacionamentos, os ti- pos de dados e as restrições, ocultando os detalhes do armazenamento físico (PUGA; FRANÇA; GOYA, 2013). 2.2.1 Tipos de dados armazenados Um arquivo é composto por registros; os registros são compostos por, pelo menos, um campo; e cada campo possui um tipo de dado. Cada tipo de dado armazena valores diferentes: booleanos, data, hora, data e hora, números, textos e grandes objetos não estruturados (PUGA; FRANÇA; GOYA, 2013). Cada tipo de dado ocupa uma quantidade diferente de bytes em um registro. A tabela 1, a seguir, lista o espaço ocupado por alguns tipos de dados. 35SGBD centralizados M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Tabela 1 – Alguns tipos de dados e o número de bytes necessários para seu armazenamento TIPO DE DADOS NÚMERO DE BYTES TINYINT 1 SMALLINT 2 MEDIUMINT 3 INT, INTEGER 4 BIGINT 8 FLOAT(p) 4, se 0 ≤ p ≤ 24, 8, se 25 ≤ p ≤ 53 FLOAT 4 REAL, DOUBLE 8 NUMERIC Depende do tamanho declarado YEAR 1 DATE 3 TIME 3 DATETIME 8 TIMESTAMP 4 TEXT Depende do tamanho declarado CHAR Depende do tamanho declarado VARCHAR Depende do tamanho declarado Fonte: adaptado de MYSQL (2020). Grandes objetos não estruturados, conhecidos como binary lar- ge object (BLOB) ou, em tradução livre, objetos binários grandes, po- dem ser armazenados em um SGDB. BLOBs normalmente são usa- dos para armazenar imagens, vídeos, sons e grandes quantidades de 36 Arquitetura de Banco de Dados Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo .texto. Geralmente os BLOBs são armazenados à parte do registro, e um ponteiro é incluído no registro indicando a sua localização (ELMASRI; NAVATHE, 2018). 2.3 Nível externo: visões do usuário e segurança O nível externo descreve parte do banco de dados. Apesar do nível conceitual apresentar estruturas mais simples, nem todo usuário deve ou quer ver todas as informações. As visões de dados permitem forne- cer ao usuário uma visão simplificada das estruturas e dos dados que ele deseja acessar (ELMASRI; NAVATHE, 2018). Existem dois tipos de mecanismos de segurança que são usados como referência em banco de dados (ELMASRI; NAVATHE, 2018): • Discricionários: concedem privilégios aos usuários, permitindo acesso a arquivos ou registros de dados. • Obrigatórios: impõem segurança de acordo com o nível no qual determinados dados e usuários foram classificados. Pelo mecanismo de controle de acesso discriminatório, um usuário pode ter direitos de acesso diferentes sobre objetos diferentes. O uso do mecanismo de visões pode ser usado para ocultar dados confidenciais de usuários não autorizados. O mecanismo de visões não permite es- pecificar quais operações os usuários autorizados têm permissão para executar; as permissões devem ser concedidas através da instrução GRANT (RAMAKRISHNAN; GEHRKE, 2011). 2.4 Mapeamentos Mapeamento é a denominação das transformações que uma re- quisição do usuário sofre ao passar de uma visão de usuário de nível 37SGBD centralizados M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. externo para o nível conceitual e deste para o nível físico até chegar aos dados (RAMAKRISHNAN; GEHRKE, 2011). A arquitetura de três esquemas apenas descreve os dados, mas eles persistem no nível físico. Um usuário, ou grupo de usuários, acessa o SGBD apenas por seu esquema externo. Quando o usuário faz uma so- licitação ao banco de dados, o SGBD a transforma em uma solicitação ao esquema conceitual e, depois, transforma-a em uma solicitação ao esquema interno para o processamento no banco de dados armazena- do (ELMASRI; NAVATHE, 2018). Caso a solicitação tenha sido uma recuperação do banco de dados, os dados obtidos deste banco serão reformatados para corresponder à visão externa do usuário (ELMASRI; NAVATHE, 2018). 2.5 Independência de dados: física e lógica Independência de dados é a capacidade de modificar a definição de um esquema de um nível do SGBD sem precisar alterar a definição de um esquema de um nível mais alto. Existem dois tipos de independên- cia de dados (ELMASRI; NAVATHE, 2018): • Lógica: habilidade de modificar o esquema conceitual sem a ne- cessidade de reescrever os aplicativos ou esquemas externos. O esquema conceitual pode ser alterado durante o acréscimo ou remoção de tipos de registros ou itens de dados. • Física: habilidade de modificar o esquema interno sem alterar o esquema conceitual. As modificações no nível físico são ocasio- nalmente necessárias para melhorar o desempenho. 38 Arquitetura de Banco de Dados Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo . 2.6 Vantagens e desvantagens Cada empresa possui características diferentes e que devem ser le- vadas em consideração na escolha por uma abordagem centralizada de dados. A tabela 2 lista algumas das vantagens e desvantagens da arqui- tetura de um SGBD centralizado (RAMAKRISHNAN; GEHRKE, 2011). Tabela 2 – Vantagens e desvantagens da da arqui tetura de um SGBD centralizado VANTAGENS DESVANTAGENS O banco de dados centralizados é muito seguro. Com os dadoscentralizados em um mesmo local, fica mais simples gerenciar as permissões e privilégios de acesso ao banco de dados. Falhas no servidor central afetam todos os usuários e processos. O custo de equipamento de bancos de dados centralizados costuma ser menor do que em um ambiente distribuído, exigindo menos despesas de manutenção. Expandir a capacidade de um servidor central pode implicar em altos custos e tempo de máquina ocioso. O acesso a informações costuma ser mais rápido em ambientes centralizados. Todos os usuários são afetados caso haja lentidão na rede ou processos que consomem muitos recursos. O gerenciamento de operações de backup e a restauração de dados são mais simples. Não é possível ter um servidor dedicado exclusivamente a operações de backup. A redundância de dados é controlada em um banco de dados centralizado. Como todos os dados são armazenados em um mesmo local e não podem ser distribuídos em locais diferentes, fica mais fácil garantir que todos os dados armazenados não sejam duplicados, evitando, assim, a redundância. Em caso de falha do servidor central, não é possível contar com servidores distribuídos para assumir as tarefas. A integridade dos dados é aumentada devido ao fato de todo o banco de dados ser armazenado em um único local físico, tornando mais fácil gerenciar os dados de forma mais consistente e precisa. 39SGBD centralizados M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Considerações finais A busca por maior segurança para dados estratégicos tem feito com que empresas optem pelo modelo centralizado de dados. Normalmente, adotar a arquitetura centralizada melhora a segurança do sistema ao re- duzir o leque de potenciais ataques ao ambiente. Um case interessante de descentralização é o das eleições muni- cipais de 2020. Cada um dos 27 Tribunais Regionais Eleitorais (TREs) possuía um conjunto de aplicativos e servidores que totalizavam os vo- tos de sua região. A partir dessa eleição, a contagem dos votos passou a ser feita de forma centralizada no Tribunal Superior Eleitoral (TSE), aumentando a segurança dos dados e reduzindo o custo da operação. Referências DELOITTE. The Analytics Advantage. We’re just getting started. Deloitte’s Analytics Advantage Survey, 2013. Disponível em: https://www2.deloitte.com/ content/dam/Deloitte/global/Documents/Deloitte-Analytics/dttl-analytics-a- nalytics-advantage-report-061913.pdf. Acesso em: 16 nov. 2020. ELMASRI, R.; NAVATHE, S. B. Sistemas de banco de dados. 7. ed. São Paulo: Pearson, 2018 SILBERSCHATZ, A.; KORTH, H. F.; SUDARSHAN, S. Sistema de banco de dados. 5. ed. São Paulo: Elsevier, 2006. MYSQL. MySQL 8.0 Reference Manual. Disponível em: https://dev.mysql.com/ doc/refman/8.0/en/. Acesso em: 05 nov. 2020. PUGA, S.; FRANÇA, E.; GOYA, M. Banco de dados: implementação em SQL PL/SQL e Oracle 11g. São Paulo: Pearson, 2013. RAMAKRISHNAN, R.; GEHRKE, J. Sistemas de gerenciamento de banco de da- dos. 3. ed. Porto Alegre: AMGH, 2011. 41 M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Capítulo 3 Sistema de gerenciamento de banco de dados cliente/servidor Atualmente, acessar informações usando dispositivos móveis como smartphones, tablets e laptops por meio de uma rede de dados passou a ser uma atividade relativamente corriqueira. Independente do hardwa- re usado ou do sistema operacional empregado, é possível se conectar a um ambiente e procurar pelos dados de que precisamos. Apesar de toda essa facilidade no acesso aos dados, eles continuam sendo armazenados em sistemas gerenciadores de bancos de dados 42 Arquitetura de Banco de Dados Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo .(SGBDs) e, geralmente, usam uma aplicação que os acessa e os exibe para o usuário final. Existem vários modelos de SGBDs pelos quais os dados podem ser acessados. Neste capítulo, apresentamos o modelo SGBD cliente/servidor, suas características, vantagens e desvantagens. 1 Arquitetura SGBD cliente/servidor A arquitetura SGBD cliente/servidor é um modelo de computação no qual o servidor hospeda, entrega e gerencia a maioria dos recursos e serviços a serem consumidos pelo cliente. Foi desenvolvida com o intui- to de distribuir tarefas ou cargas de trabalho entre vários computadores conectados por uma rede (ELMASRI; NAVATHE, 2018). O solicitante de um serviço é chamado cliente; o provedor de serviço, servidor. Desse modo, podemos dizer que, em um modelo cliente/ser- vidor, um programa central atua como um servidor e vários programas clientes se conectam a esse servidor para fazer solicitações. Como os computadores, cliente e servidor são considerados dispositivos inteli- gentes. (O modelo cliente/servidor é completamente diferente do anti- go modelo mainframe, no qual um computador mainframe centralizado executava todas as tarefas para seus terminais associados.) Os SGBDs usam a arquitetura cliente/servidor de duas formas distin- tas (ELMASRI; NAVATHE, 2018): • Arquitetura em duas camadas (two tiers) — nessa arquitetura, as regras de negócio ficam no cliente ou no servidor. Se estiverem no cliente, farão parte do aplicativo instalado; caso estejam no servi- dor, estarão em procedimentos armazenados (stored procedures). 43SGBDs Client/Server M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Figura 1 – Representação simplificada da arquitetura em duas camadas do modelo cliente/servidor Servidor de Banco de Dados Clientes Fonte: adaptado de Elmasri e Navathe (2018). • Arquitetura em n-camadas (n-tiers) — nessa arquitetura, as regras de negócio ficam em uma camada intermediária, separadas dos dados e da interface com o usuário. A vantagem dessa arquite- tura é que os processos podem ser implantados e gerenciados em separado do banco de dados e da interface com o usuário e podem integrar dados de diversas fontes. Figura 2 – Representação simplificada da arquitetura em n-camadas do modelo cliente/servidor Camada Intermediária Clientes Servidor de Banco de Dados Fonte: adaptado de Elmasri e Navathe (2018). 44 Arquitetura de Banco de Dados Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo .O fluxo de dados entre o cliente e o servidor é unidirecional e forma um ciclo. Geralmente, esse fluxo é iniciado pelo cliente ao solicitar al- gum tipo de dado; então o servidor processa a solicitação e envia dados de volta ao cliente por meio de um protocolo (VICCI, 2015). Clientes não se conectam diretamente uns com os outros. De acor- do com Vicci (2015), um fluxo de dados típico pode ser feito conforme o modelo exemplificado na figura 3. Figura 3 – Fluxo de dados típico O cliente solicita dados do servidor O servidor processa a solicitação do cliente O servidor consulta o banco de dados O bancode dados retorna os dados ao servidor O servidor envia os dados ao cliente Servidores especializados com funcionalidades específicas atendem às solicitações dos clientes. Quando o cliente envia uma solicitação de dados ao servidor pela internet, o servidor aceita o processo solicitado e entrega os pacotes de dados solicitados de volta ao cliente. Os clien- tes não compartilham nenhum de seus recursos locais com o servidor (MACHADO, 2014). 45SGBDs Client/Server M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. 2 Cliente (front-end) Front-end é o nome dado ao software que interage com os clientes, mesmo que eles estejam em plataformas diferentes usando tecnolo- gias diferentes. Em uma arquitetura cliente/servidor, geralmente os mó- dulos front-ends são projetados para interagir com vários e diferentes tipos de dispositivos do mercado (VICCI, 2015). SGBDs podem ser instalados e executados em diversos sistemas operacionais, já que a comunicação entre cliente e servidor não se limita a ambientes onde todos os computadores executam o mesmo sistema operacional. Clientes podem se conectar a um servidor em execução no mesmo host ou em um host diferente e não precisam usar o mesmo sistema operacional. Host é a máquina física onde o programa do servidor é executado. A arquitetura cliente/servidor é feita em uma rede de computado- res na qual muitos clientes solicitam e recebem serviços de um ser- vidor centralizado (conhecido como host). Os clientes fornecem uma interface, que permite a um usuário solicitar serviços do servidor, e exibem os resultados que o servidor retorna. Geralmente, essa interfa- ce é composta por telas de login, menus, telas de dados e relatórios (RAMAKRISHNAN; GEHRKE, 2011). Os clientes geralmente estão localizados em estações de trabalho, tablets, telefones ou em computadores pessoais, enquanto os servido- res estão localizados em outro lugar da rede, geralmente em máqui- nas mais potentes. Esse modelo de computação é especialmente efi- caz quando os clientes e o servidor têm tarefas distintas executadas rotineiramente. No processamento de dados escolares, por exemplo, um cliente pode executar um programa para inserir as informações de um aluno 46 Arquitetura de Banco de Dados Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo .enquanto o servidor pode executar outro programa que gerencia o ban- co de dados no qual as informações estão armazenadas (VICCI, 2015). Muitos clientes podem simultaneamente acessar as informações de um servidor de banco de dados ao mesmo tempo em que um cliente pode estar realizando outras tarefas, como enviar e-mail (MACHADO, 2014). Gormalmente, o processo de instalação de um SGBD inclui tanto os programas servidor quanto os programas cliente. Nesse caso, os pro- gramas cliente são usados para fazer a comunicação com o servidor e manipular os bancos de dados nele. O SGBD MySQL (2020), por exem- plo, fornece os seguintes clientes: • mysql — programa de linha de comando. Atua como um front- -end baseado em texto para o servidor. Usado para emitir consul- tas e visualizar os resultados interativamente em uma janela de terminal. • mysqladmin — cliente para realizar operações administrativas. Usado, entre outras funções, para verificar a configuração do ser- vidor e seu status a fim de criar e eliminar bancos de dados. • mysqlcheck — cliente para verificar, reparar, otimizar ou analisar tabelas. • mysqldump — cliente para executar backups lógicos, produzindo um conjunto de instruções SQL que podem ser executadas para reproduzir as definições de objeto de banco de dados e dados de tabela originais. • mysqlshow — cliente para verificar quais bancos de dados exis- tem, suas tabelas, colunas ou índices de uma tabela. Os programas clientes podem ser acessados de diversas formas, com ou sem passagem de parâmetros. No exemplo a seguir é mostra- do como usar o programa cliente mysql para conectar-se ao servidor 47SGBDs Client/Server M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. no host local, com o nome de usuário meunome, e solicitando que seja digitada a senha do usuário. mysql --host=localhost --password --user=meunome Onde: • mysql: nome do programa cliente. • --host (ou -h): usado para indicar o nome do host onde o servidor MySQL está sendo executado. Esta opção é seguida pelo sinal de igual (=) e pelo nome do host. • --password (ou -p): usado para indicar a senha do usuário que acessará o servidor MySQL. O valor da senha pode ser omitido após o nome da opção. Se o valor da senha for omitido, o progra- ma cliente solicitará ao usuário uma senha. • --username (ou -u): usado para indicar o nome de usuário da con- ta MySQL. Para determinar a qual conta se aplica, o servidor usa o valor do nome de usuário em conjunto com o nome do host a partir do qual a conexão é feita. Isso significa que podem haver contas diferentes com o mesmo nome de usuário, que podem ser usadas para conexões de hosts diferentes. 3 Servidor (back-end) Back-end é o nome dos servidores de banco de dados que recebem as solicitações dos clientes e as respondem. Chamamos o software instalado em um host de servidor (VICCI, 2015). Um servidor deve fornecer uma interface transparente padronizada para os clientes, de modo que os clientes não precisem estar cientes 48 Arquitetura de Banco de Dados Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo .das especificações de hardware e software do ambiente que está forne- cendo o serviço (ELMASRI; NAVATHE, 2018). Em computação, usa-se a palavra deamon para indicar um progra- ma que executa um processo em segundo plano (background proces- ses), em vez de estar sob o controle direto de um usuário interativo. Geralmente, um processo daemon é responsável por lidar com as cone- xões de rede, distribuir solicitações e gravar os dados em disco (VICCI, 2015). Por convenção, indica-se que um programa é deamon incluindo a letra “d” ao final de seu nome. Por exemplo, o executável mysqld é o pro- grama servidor de banco de dados MySQL. Nesse contexto, esse ser- vidor indica uma instância em execução do programa mysqld (MYSQL, 2020). Apesar de existirem outros conjuntos de protocolos de comuni- cação, atualmente o mais usado para conectar hosts na internet é o Transmission Control Protocol/Internet Protocol (TCP/IP) (VICCI, 2015). 4 Funções, gatilhos e procedimentos É comum que os programas de banco de dados sejam desenvolvi- dos para serem executados em um computador cliente ou, nos casos em que é utilizada uma arquitetura cliente/servidor em n-ca madas, na camada intermediária do computador servidor. Em outros casos, o pro- grama de banco de dados não deve ser executado no servidor de banco de dados (ELMASRI; NAVATHE, 2018). Existem situações em que é necessário diminuir a transferência de dados e os custos de comunicação entre o cliente e o servidor. Nesses casos, pode ser útil criar módulos no programade banco de dados e armazená-los no servidor (PUGA; FRANÇA; GOYA, 2013). 49SGBDs Client/Server M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Tradicionalmente, os programas armazenados e executados pelo SGBD no servidor de banco de dados são denominados procedimentos ar mazenados (stored procedures). Eles podem ser funções (functions), gatilhos (triggers) ou procedimentos (procedures) (PUGA; FRANÇA; GOYA, 2013). Procedimentos armazenados são um conjunto de instruções SQL e podem ser úteis para desenvolver módulos acessados por vários progra- mas, para criar restrições mais complexas e melhorar o poder de modela- gem fornecido pelos mecanismos de visão (ELMASRI; NAVATHE, 2018). Geralmente, sua execução é mais rápida por estar armazenada e pré-compilada diretamente no SGBD (VICCI, 2015). Conforme pontuam Elmasri e Navathe (2018), de maneira geral, um procedimento armazenado pode ser declarado da seguinte forma: CREATE PROCEDURE <nome do procedimento> (<parâmetros>) <declarações locais> <corpo do procedimento> Onde: • <nome do procedimento>: define o nome do procedimento. • <parâmetros>: especifica os parâmetros do procedimento. • <declarações locais>: define as variáveis locais. • <corpo do procedimento>: especifica o código do procedimento. Tanto as declarações locais quanto os parâmetros são opcionais. O exemplo a seguir mostra a criação de um procedimento armaze- nado em um SGBD MySQL (MYSQL, 2020). 50 Arquitetura de Banco de Dados Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo . CREATE PROCEDURE conta_empregados () SELECT ‘Total empregados = ‘, COUNT(*) FROM empregados; CALL conta_empregados; Esse exemplo cria um procedimento armazenado identificado pelo nome conta_empregados. Procedimentos podem ser chamados usan- do a instrução CALL. Já a criação de uma função difere da de um procedi mento porque, para a função, é necessário algum tipo de retorno (ELMASRI; NAVATHE, 2018): CREATE FUNCTION <nome da função> (<parâmetros>) RETURNS <tipo de retorno> <declarações locais> <corpo da função> Onde: • <nome da função>: define o nome da função. • <tipo de retorno>: especifica o tipo de retorno da função. • <parâmetros>: especifica os parâmetros da função. • <declarações locais>: define as variáveis locais. • <corpo da função>: especifica o código da função. O exemplo a seguir mostra a criação de uma função simples em um SGBD MySQL (MYSQL, 2020). 51SGBDs Client/Server M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. CREATE FUNCTION valeu (nome CHAR(50)) RETURNS CHAR(60) RETURN CONCAT ( ‘Valeu, ‘, nome, ’!’ ); SELECT VALEU(‘Patricia’); SELECT VALEU(nome) FROM empregados; O exemplo cria a função valeu. O tipo de dado a ser retornado é CHAR, com tamanho de 60 bytes, e foi especificado em RETURNS. O corpo de uma função precisa da chamada RETURN () para retornar um valor único. Um gatilho (trigger) é um objeto do banco de dados as sociado a uma tabela e ativado quando determinado evento ocorre sobre essa tabela. Conforme Puga, França e Goya (2013), de maneira geral, um gatilho pode ser criado da seguinte forma: CREATE TRIGGER <nome do gatilho> <tempo de ação do gatilho> <evento do gatilho> ON <nome da tabela> FOR EACH ROW <corpo do gatilho> Onde: • <nome do gatilho>: define o nome do gatilho. • <tempo de ação do gatilho>: indica se o gatilho é acionado antes ou depois da execução de cada linha. Aceita os valores AFTER ou BEFORE. • <evento do gatilho>: indica o tipo de operação que aciona o gati- lho. Aceita os valores INSERT, UPDATE ou DELETE. • <nome da tabela>: indica o nome da tabela à qual o gatilho estará associado. A tabela deve ser do tipo permanente. Não é possível 52 Arquitetura de Banco de Dados Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo .associar um gatilho a uma tabela temporária ou a um mecanismo de visão. • <corpo do gatilho>: especifica o código do gatilho. O exemplo a seguir mostra a criação de um gatilho em um SGBD MySQL (MYSQL, 2020). CREATE TRIGGER soma_sal BEFORE INSERT ON empregados FOR EACH ROW SET @soma = @soma + NEW.salario; SET @soma=0; INSERT INTO empregados VALUES (1, 10.2), (2, 20.3), (3, 30.4); SELECT @soma; O exemplo cria o gatilho soma_sal. A cada inclusão de dado na tabe- la empregados, ele soma o valor do salario inserido. 5 Servidores e aplicações Web Aplicações Web podem se beneficiar da arquitetura de n-camadas ao incluir uma camada intermediária entre o cliente e o servidor de ban- co de dados. Essa camada intermediária pode ser chamada de servidor de aplicação, servidor de objetos, servidor de páginas ou servidor Web, dependendo do tipo de aplicação (ELMASRI; NAVATHE, 2018). Esse servidor pode melhorar a segurança do SGBD ao verificar as credenciais de um cliente antes de direcionar uma solicitação ao ser- vidor, também pode armazenar as regras de negócio e restrições da aplicação. Em ambientes distribuídos, pode exercer a função de balan- cear a carga de conexões aos diversos servidores (ELMASRI; NAVATHE, 2018). É comum que aplicações Web não tenham a aplicação cliente ins- talada em seu dispositivo Nessas situações, os módulos do aplicativo 53SGBDs Client/Server M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. são instalados nessa camada intermediária, que se conecta ao banco de dados e interage com usuários. Considerações finais Em um mundo cada vez mais competitivo, é comum que as organi- zações busquem manter a qualidade de seus serviços e procurem sus- tentar sua posição no mercado com a ajuda da tecnologia. O uso do modelo cliente/servidor em uma organização aumenta po- sitivamente a produtividade por meio do uso de interfaces de usuário econômicas, armazenamento de dados aprimorado, ampla conectivida- de, segurança e serviços de aplicativos confiáveis. Referências ELMASRI, R.; NAVATHE, S. B. Sistemas de banco de dados. 7. ed. São Paulo: Pearson, 2018. MACHADO, F. N. R. Banco de dados: projeto e implementação. 3. ed. São Paulo: Saraiva, 2014. MYSQL. MySQL 8.0 Reference Manual. Disponível em: https://dev.mysql.com/ doc/refman/8.0/en/. Acesso em: 05 nov. 2020. PUGA, S.; FRANÇA, E.; GOYA, M. Banco de dados: implementação em SQL PL/SQL e Oracle 11g. São Paulo: Pearson, 2013. RAMAKRISHNAN, R.; GEHRKE, J. Sistemas de gerenciamento de banco de da- dos. 3. ed. Porto Alegre: AMGH, 2011. VICCI, C. A. (org). Banco de dados. São Paulo: Pearson, 2015. 55 M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Capítulo 4 Sistemas de gerenciamento de banco de dados distribuídos homogêneos É comum que empresas
Compartilhar