Baixe o app para aproveitar ainda mais
Prévia do material em texto
Adriana Bastos da Costa Jackson Luis Schirigatti Sidartha Azevedo Lobo de Carvalho INTRODUÇÃO A BANCO DE DADOS © Universidade Positivo 2020 Rua Prof. Pedro Viriato Parigot de Souza, 5300 – Campo Comprido Curitiba-PR – CEP 81280-330 *Todos os gráficos, tabelas e esquemas são creditados à autoria, salvo quando indicada a referência. Informamos que é de inteira responsabilidade da autoria a emissão de conceitos. Nenhuma parte desta publicação poderá ser reproduzida por qualquer meio ou forma sem autorização. A violação dos direitos autorais é crime estabelecido pela Lei n.º 9.610/98 e punido pelo artigo 184 do Código Penal. Imagens de ícones/capa: © Thinkstock / © Shutterstock. Presidente da Divisão de Ensino Reitor Pró-Reitor Coordenação Geral de EAD Coordenação de Metodologia e Tecnologia Autoria Parecer Técnico Supervisão Editorial Projeto Gráfico e Capa Prof. Paulo Arns da Cunha Prof. José Pio Martins Prof. Carlos Longo Prof. Everton Renaud Profa. Roberta Galon Silva Profª Adriana Bastos da Costa Prof. Jackson Luis Schirigatti Prof. Sidartha Azevedo Lobo de Carvalho Prof. Raimundo Tales Benigno Rocha Matos Aline Scaliante Coelho Baggetti Regiane Rosa Dados Internacionais de Catalogação na Publicação (CIP) Biblioteca da Universidade Positivo – Curitiba – PR DTCOM – DIRECT TO COMPANY S/A Análise de Qualidade, Edição de Texto, Design Instrucional, Edição de Arte, Diagramação, Design Gráfico e Revisão. 3Introdução a Banco de Dados Caro aluno, A metodologia da Universidade Positivo apresenta materiais e tecnologias apropriadas que permitem o desenvolvimento e a interação entre alunos, docentes e recursos didáticos e tem por objetivo a comunização bidirecional entre os atores educacionais. O seu livro, que faz parte dessa metodologia, está inserido em um percurso de aprendi- zagem que busca direcionar a construção de seu conhecimento por meio da leitura, da con- textualização teórica-prática e das atividades individuais e colaborativas; e fundamentado nos seguintes propósitos: COMPREENDA SEU LIVRO valorizar suas experiências; incentivar a construção e a reconstrução do conhecimento; estimular a pesquisa; oportunizar a reflexão teórica e aplicação consciente dos temas abordados. Metodologia Introdução a Banco de Dados4 COMPREENDA SEU LIVRO Com base nessa metodologia, o livro apresenta a seguinte estrutura: Percurso Pergunta norteadora Ao fi nal do Contextualizando o cenário, consta uma pergunta que estimulará sua reflexão sobre o cenário apresentado, com foco no desenvolvimento da sua capacidade de análise crítica. Tópicos que serão estudados Descrição dos conteúdos que serão estudados no capítulo. Boxes São caixas em destaque que podem apresentar uma citação, indicações de leitura, de filme, apresentação de um contexto, dicas, curiosidades etc. Recapitulando É o fechamento do capítulo. Visa sinte- tizar o que foi abordado, reto mando os objetivos do capítulo, a pergunta nortea- dora e fornecendo um direcionamento sobre os questionamentos feitos no decorrer do conteúdo. Pausa para refletir São perguntas que o instigam a refletir sobre algum ponto estudado no capítulo. Contextualizando o cenário Contextualização do tema que será estudado no capítulo, como um cenário que o oriente a respeito do assunto, relacionando teoria e prática. Objetivos do capítulo Indicam o que se espera que você aprenda ao final do estudo do capítulo, baseados nas necessida- des de aprendizagem do seu curso. Proposta de atividade Sugestão de atividade para que você desenvolva sua autonomia e siste- matize o que aprendeu no capítulo. Referências bibliográficas São todas as fontes utilizadas no capítulo, incluindo as fontes mencio- nadas nos boxes, adequadas ao Projeto Pedagógico do curso. 5Introdução a Banco de Dados BOXES Assista Indicação de filmes, vídeos ou similares que trazem informações complementares ou aprofundadas sobre o conteúdo estudado. Biografia Dados essenciais e pertinentes sobre a vida de uma determinada pessoa relevante para o estudo do conteúdo abordado. Contexto Dados que retratam onde e quando aconteceu determinado fato; demonstram a situação histórica, social e cultural do assunto. Curiosidade Informação que revela algo desconhecido e interessante sobre o assunto tratado. Dica Um detalhe específico da informação, um breve conselho, um alerta, uma informação privilegiada sobre o conteúdo trabalhado. Exemplo Informação que retrata de forma obje tiva determinado assunto abordando a relação teoria-prática. Afirmação Citações e afirmativas pronunciadas por teóricos de relevância na área de estudo. Esclarecimento Explicação, elucidação sobre uma palavra ou expressão específica da área de conhecimento trabalhada. 7Introdução a Banco de Dados SUMÁRIO Apresentação 13 A Autoria 15 CAPÍTULO 1 Fundamentos de Banco de Dados 18 Contextualizando o cenário 19 1.1. O que é um Banco de Dados? 20 1.1.1. A evolução do armazenamento de dados e informações: perspectiva histórica 20 1.1.2. Conceito de Arquivos de sistemas e Banco de Dados 23 1.1.3. Porque utilizar-se de banco de dados? 24 1.1.4. O gerenciamento de dados – Sistema de Gerenciamento de Banco de Dados (SGBD) 27 1.1.5. Profissionais e seus papéis na atuação com Banco de Dados 28 1.2. Estrutura de um Sistema de Gerenciamento de Banco de Dados 30 1.2.1. Objetos de um SGBD 31 1.2.2. Arquivos 33 1.2.3. Registros 33 1.2.4. Campos 34 1.3. Meios de armazenamento e acesso de dados 35 1.3.1. Meio de armazenamento óptico e magnético 36 1.3.2. Meios de acesso direto e sequencial 36 1.3.3. 1.3.3 Locais de Armazenamento 37 Proposta de Atividade 38 Recapitulando 39 Referências 40 CAPÍTULO 2 Projeto de Banco de Dados e Modelagem de Dados 41 Contextualizando o cenário 42 2.1. O que é e por que modelar dados? 43 2.1.1. Definição de modelo de dados 43 2.1.2. Por que modelar dados? 44 2.2. Categorias dos modelos de dados 45 2.2.1. Modelo de Dados Hierárquico 45 2.2.2. Modelo Relacional 47 2.2.3. Modelo Entidade Relacionamento 47 2.2.4. Modelo Orientado a Objetos 49 2.3. Nível de abstração 50 2.3.1. Esquema conceitual ou lógico 50 2.3.2. Esquema físico 51 2.3.3. Esquema externo ou nível de visão do usuário 52 2.4. Fases do Projeto de Banco de Dados 53 2.4.1. Especificação das necessidades do usuário: análise de requisitos 54 2.4.2. Definição do modelo de dados e Esquema Conceitual 54 2.4.3. Projeto Lógico 55 2.4.4. Projeto Físico 55 Proposta de Atividade 56 Recapitulando 57 Referências 58 CAPÍTULO 3 Modelo Entidade Relacionamento (MER) 59 Contextualizando o cenário 60 3.1. Entidades e Relacionamentos 61 3.1.1. Modelo E-R 61 3.1.2. Objetos, Entidade e Atributos 64 3.1.3. Semântica da dependência funcional 67 3.1.4. Relacionamentos 68 3.2. Diagrama Entidade-Relacionamento (representação DER) 70 3.2.1. O Produto Final DER 70 3.2.2. Passos para a elaboração do DER 71 9Introdução a Banco de Dados 3.3. Notações de E-R alternativas (Cardinalidades) 74 3.3.1. Conceito de cardinalidade 74 3.3.2. Relacionamento um-para-um 75 3.3.3. Relacionamento muitos-para-um 77 3.3.4. Relacionamento muitos-para-muitos 79 Proposta de Atividade 82 Recapitulando 82 Referências 84 CAPÍTULO 4 Modelo Relacional (MER) 85 Contextualizando o cenário 86 4.1. Estrutura do banco de dados relacional 87 4.1.1. Estrutura Básica 87 4.1.2. Esquema de banco de dados 88 4.1.3. Chaves primária e estrangeira 89 4.1.4. Diagrama de esquema 91 4.2. Operações fundamentais da álgebra relacional 93 4.2.1. Operação de seleção 94 4.2.2. Operação de projeção 95 4.2.3. Operação de união 96 4.2.4. Operação de diferença de conjuntos 97 4.3. Operações adicionais da álgebra relacional 98 4.3.1. Produto Cartesiano 98 4.3.2. Interseção de conjuntos 99 4.3.3. Junção natural 100 4.3.4. Divisão 100 Proposta de Atividade 101 Recapitulando 101 Referências 103 Introdução a Banco de Dados10 CAPÍTULO 5 Normalização104 Contextualizando o cenário 105 5.1. O processo de normalização 106 5.1.1. Fundamentos de normalização 106 5.1.2. Por que normalizar? 108 5.1.3. Passos da normalização 110 5.2. Primeira Forma Normal (1FN) 112 5.2.1. Definição da primeira forma normal 113 5.2.2. Esquema para a 1FN 113 5.3. Segunda Forma Normal (2FN) 117 5.3.1. Definição da segunda forma normal 118 5.3.2. Passagem para a 2FN 118 5.3.3. Definição da terceira forma normal 120 5.3.4. Passagem para a 3FN 121 5.3.5. Normalização de Boyce-Codd 122 Proposta de Atividade 124 Recapitulando 124 Referências 126 CAPÍTULO 6 Linguagem de Banco de Dados SQL: DDL, DML e DQL 128 Contextualizando o cenário 129 6.1. Linguagem de Consulta Estruturada - SQL 130 6.1.1. O que é o SQL? 130 6.1.2. Por que usar o SQL? 132 6.1.3. Tipos e características da Linguagem de Banco de Dados: DDL, DML, DQL 133 6.1.4. Regras sintáticas e semânticas do SQL 134 6.2. Linguagem de Definição de Dados – DDL 135 6.2.1. DDL: definição de dados com o SQL 135 6.2.2. Criação de tabelas 137 6.2.3. Conceito de integridade referencial 138 6.2.4. Restrições (constraints) de Integridade 138 11Introdução a Banco de Dados 6.3. Linguagem de Manipulação de Dados - DML 139 6.3.1. DML: manipulação de dados com o SQL 139 6.3.2. Inserção de dados em uma tabela 140 6.3.3. Atualização de dados em uma tabela 141 6.3.4. Exclusão de registros (tuplas) em uma tabela 142 6.4. Linguagem de Consulta de Dados - DQL 143 6.4.1. Consultas básicas com Select 144 6.4.2. Cláusula Where e condicionais 145 6.4.3. Operadores de grupo 146 Proposta de Atividade 147 Recapitulando 148 Referências 149 CAPÍTULO 7 Linguagem de Banco de dados SQL: DCL e TCL 150 Contextualizando o cenário 151 7.1. Transações 152 7.1.1. Conceito de Transações 152 7.1.2. Propriedades de uma transação 155 7.1.3. Estado de uma transação 159 7.1.4. Concorrência e deadlock 162 7.2. Linguagem TCL – Linguagem de Controle de Transações 167 7.2.1. Definição da Linguagem TCL 167 7.2.2. Commit e Rollback 168 7.3. Linguagem DCL – Linguagem de Controle de Dados 170 7.3.1. Definição de Linguagem DCL 170 7.3.2. Gerenciamento de permissões com comandos Grant, Revoke e Deny 170 7.4. Rules (Regras em Banco de Dados) 172 7.4.1. Definição de Regras (Rules) 172 7.4.2. Criando Regras em tabelas e visões – CREATE RULES 173 Proposta de Atividade 174 Recapitulando 175 Referências 176 Introdução a Banco de Dados12 CAPÍTULO 8 Linguagem de Banco de Dados SQL: Nível externo – Visões (Views) 178 8.1. Noções básicas 180 8.1.1. Definição de visões em um Banco de Dados 180 8.1.2. Importância e benefícios das visões 181 8.1.3. Tipos de visão 182 8.2. Criando Visões 183 8.2.1. Como criar uma visão simples? 184 8.2.2. Privilégios e controle de acesso para visões 188 8.3. Consultando, alterando e excluindo Visões 191 8.3.1. Consultando Visões e tabelas 192 8.3.2. Modificando uma visão 195 8.3.3. Excluindo visões 197 Proposta de Atividade 199 Recapitulando 199 Referências 200 13Introdução a Banco de Dados A disciplina de Introdução a Banco de Dados é de importância para os desenvolvedo- res de aplicações e administradores de banco de dados. Esses profissionais da tecnologia devem compreender como é realizado o armazenamento e a manutenção das informações de quase todas as aplicações que são desenvolvidas. Compreender os sistemas de Banco de Dados e seus projetos é criar regras de negócios que representem os processos reais de sis- temas de informação. Quando os negócios mudam, os processos devem ser alterados para a melhoria do empreendimento e, consequentemente, as regras e os modelos empresariais também devem ser alterados. Essas regras são intrínsecas aos bancos de dados. Se uma regra não condiz com o negócio, a qualidade da informação é prejudicada e induz os usuários ao erro. Com isso, ocorre uma degradação no processo de decisão do negócio. Ou seja, regras incorretas, levam a decisões incorretas. Fatalidades essas da informação que não podem ocorrer em um sistema. Essa disciplina te apresentará os conceitos básicos relacionados com banco de dados, e fará com que você consiga compreender como implementar regras de uma maneira padronizada e como utilizá-las em projetos de Bancos de Dados. Para isso, é necessá- rio compreender como os sistemas armazenam dados e quais as formas de organização e estruturação dos bancos. Também é necessário compreender os diagramas entidade-rela- cionamentos e a linguagem de programação de Banco de Dados, SQL, que podem nos aju- dar a definir essas regras. Além, disso, serão discutidos conceitos mais atuais como o de modelagem de dados orientada a objetos, e armazenamento de dados na nuvem. Vamos então trilhar esta caminhada tecnológica da introdução a Banco de Dados! APRESENTAÇÃO Introdução a Banco de Dados14 15Introdução a Banco de Dados A professora A������ B����� �� C���� é doutoranda em Administração pela Universidade Positivo, Mestre em Administração pela Universidade Positivo, especialista em Gerência de Projetos pela FGV-RJ e em Análise, Projeto e Sistemas pela PUC-RJ, e graduada em Adminis- tração de Empresas com Ênfase em Processamento de Dados. Currículo Lattes: <http://lattes.cnpq.br/9468741964133542> Dedico esta obra a minha família, que me suporta em todos os dias da minha vida, e a Deus como maestro maior, tocando a sinfonia que nos inspira a continuar sempre. A AUTORIA Introdução a Banco de Dados16 O Professor J������ L��� S���������� é Mestre em Engenharia Elétrica pela UFPR, especia- lista em Engenharia de Negócios, especialista em Tutoria e gestão em EAD e graduado em Sistemas de Informação. Currículo Lattes: <lattes.cnpq.br/2788575546295005> A AUTORIA Dedico esta obra a Deus pela disposição e a minha esposa Angela C. R. Schirigatti a compreensão do tempo confi ado a este trabalho 17Introdução a Banco de Dados O Professor S������� A������ L��� �� C������� é Mestre em Ciência da Computação pela Universidade Federal de Pernambuco (UFPE) e possui graduação em Sistemas de Infor- mação pela Universidade Federal do Ceará (UFC). Currículo Lattes: <lattes.cnpq.br/9163574470590664> Agradeço a toda a equipe que contribuiu para a concretização deste trabalho A AUTORIA Introdução a Banco de Dados18 OBJETIVOS DO CAPÍTULO • Compreender o conceito de Banco de Dados, sua importância e aplicabilidade, bem como sua estrutura, os meios de armazenamento e acesso de dados. Vamos discutir também sobre os profissionais que podem atuar com banco de dados e as principais atividades que eles exercem. CAPÍTULO 1 Fundamentos de Banco de Dados Adriana Bastos da Costa Jackson Luis Schirigatti TÓPICOS DE ESTUDO 1 O que é um Banco de Dados? 3 Meios de armazenamento e acesso de dados • A evolução do armazenamento de dados e informações: perspectiva histórica. • Conceito de arquivo de sistemas e Banco de Dados. • Porque utilizar-se de Banco de Dados? • O gerenciamento de dados – Sis- tema de Gerenciamento de Banco de Dados (SGBD). • Profissionais e seus papéis na atua- ção com Banco de Dados. • Principais atividades executadas pelo profissional de Banco de Dados. • Meio de armazenamento óptico e magnético • Meios de acesso direto e sequencial • Meio de armazenamento em nuvem. 2 Estrutura de um Sistema de Gerenciamento de Banco de Dados • Objetos de um SGBD. • Arquivos. • Registros. • Campos. 19Introdução a Banco de Dados Contextualizando o cenário Desde os primórdios, a humanidade armazenou informações de várias formas e com diferen- tes cuidados, com o objetivo de utilizar as informações que armazenou. Armazenar é cuidar do que foi dito, escrito, realizado, pensado e idealizado, descoberto e transformado, para que essas informações sejam mostradas e distribuídas para todos em um momento futuro. Portanto, a questão não é apenas armazenar as informações, é necessário assegurar que elas sejam armazenadas da melhor forma possível e preservadas para queno futuro possam ser utilizadas integralmente. A informação é um dos ativos mais importantes para as pessoas e para as empresas. Ela é importante para as organizações na mensuração de sua produção, do armazenamento e de suas vendas. É importante para os cientistas no armazenamento em suas bases de conheci- mento para os novos estudos, também, e descobertas científicas. Diante desse cenário, como os Bancos de Dados podem suprir o armazenamento e garan- tir a segurança das informações geradas e pesquisadas nos dias de hoje? Introdução a Banco de Dados20 1.1. O que é um Banco de Dados? Na literatura de tecnologias de armazena- mento, existem inúmeros conceitos de Banco de Dados. Date (2004) apresenta uma visão simpli- ficada, fazendo uma analogia entre o Banco de Dados e um armário de arquivamento, mas em for- mato eletrônico. Mais detalhadamente, ele dire- ciona para outra visão, na qual um Banco de Dados é uma coleção de dados computadorizados que persistem em um Sistema Gerenciador de Banco de Dados (SGDB) e só podem ser retirados por uma requisição explícita ao próprio sistema. Além disso, não podem ser consideradas informações transitórias, temporárias ou de um programa que esteja concluindo sua execução, pois serão permanentes enquanto forem úteis e estiverem armazenadas no Banco de Dados. Os Bancos de Dados são tão comuns atualmente que estão presentes em todos os sistemas de informações de diversas áreas, como a indústria, o setor bancário, hospita- lar, educacional e governamental. Eles garantem que as informações dos sistemas integra- dos empresariais, e-commerces e de diversos softwares dessas áreas e de seus segmentos sejam armazenadas com segurança e que haja integridade, disponibilidade e controle de acesso da informação. 1.1.1. A evolução do armazenamento de dados e informações: perspectiva histórica Na evolução histórica do armazenamento de dados e informações, sempre houve uma maneira de guardar dados, desde os primeiros desenhos, pinturas e inscrições da arte rupestre e da escrita, feitos nas paredes das cavernas e em pedras. A figura ao lado ilustra a arte rupestre, pinturas da pré-história realizadas na caverna de Lascaux, na França, que são a mais antiga expressão da huma- nidade. Conservadas há milhares de anos da chuva e do sol, as pinturas representam um típico armazenamento de informação da época, já que as pinturas datam de cerca de 15.000 antes de Cristo (a.C.). Portanto, a representação das cenas de animais, caça ou do que os homens consideravam sagrado na época, ou mesmo © T im of ee v V la di m ir, S hu tt er st oc k. © th ip ja ng , S hu tt er st oc k. 21Introdução a Banco de Dados com caráter mágico, eram informações importantes e necessárias para o seu registro mís- tico e informativo. O armazenamento das informações evoluiu com o passar do tempo. A escrita e o papel foram os marcos fundamentais para essa evolução. A primeira escrita desenvolvida pela humanidade foi a cuneiforme, que era uma escrita complexa composta por mais de dois mil sinais ou desenhos que representavam e significavam o próprio objeto estilizado. Essa escrita evolui para símbolos mais estilizados em formas de cunhas, daí o nome cunei- forme. Essa escrita era realizada com uma caneta de madeira que tinha uma das pontas em forma de cunha. Essa caneta era utilizada em tábuas de argila molhada, que ao seca- rem preservam os caracteres por longos períodos. Essa escrita foi utilizada na Mesopotâ- mia para registros comerciais e de impostos das cidades (VESCO, 2009, p.13). A sociedade se organizou em torno da escrita: administração, escrita privada, escolas do templo e bibliotecas. Surgiu a literatura escrita, com anais, mitos, textos jurídicos, médicos, matemáticos e outros. A escrita ofereceu [...] a possibilidade de classificar e ordenar (SAMPAIO, 2009, p. 35). A imagem ao lado ilustra a escrita suméria cuneiforme, que era ideográfica, ou seja, formada por símbolos gráficos uti- lizados para representar uma palavra ou um conceito abstrato. O papel teve origem no antigo Egito. Há registros de inscrições hieroglíficas reali- zadas durante a primeira dinastia (3.200 a.C. a 2.900 a.C.), iniciada pelo faraó Menés. Os preciosos papiros com os textos sagrados revelaram uma nova forma de armazenamento de informações após a escrita em pedras e em argila. Caules fibrosos e as hastes de folhas compridas serviam para a confecção dos rolos para escrever. Na evolução da escrita e da gravação de informações: as inscrições em pedra sobreviveram, bem como o graffiti e alguns papiros, mas a maior parte dos textos antigos chegou até nós graças às cópias feitas na idade Média. [...] A escrita impressa tornou possível o desenvolvimento da ciência e da indústria (SAMPAIO, 2009, p. 49). O armazenamento escrito impresso em livros reinou no século XVIII, impulsionando a Estatística, a Economia e a Sociologia. Esse universo, que se tornou limitado com o passar © W ill R od ri gu es , S hu tt er st oc k Introdução a Banco de Dados22 do tempo, foi expandido a partir do desenvolvimento de novas tecnologias, como a foto- grafia, o cinema, a televisão, o vídeo, o DVD e o Blu-ray (SAMPAIO, 2009). A imagem ao lado ilustra uma impres- sora antiga. As impressoras foram outro fator que impulsionou a escrita e o armazenamento de informações. Essa modalidade é utilizada até hoje em livros, jornais e revistas. Hoje as informações são tão importantes quanto no passado. Elas continuam sendo de extrema relevância para os negócios, produ- ção, comercialização, serviços, etc. Com o advento do computador, foram criadas novas modalidades e formas de armazenamento eletrônico como discos, fitas magnéticas, dis- quetes, circuitos eletrônicos, etc. A figura ao lado ilustra um dos primei- ros computadores digitais eletrônicos de uso geral, o ENIAC, cuja programação complexa limitava-se a ligar e desligar milhares de inter- ruptores que assumiam o valor zero ou um. Para executar essa tarefa de interrupção, um grupo de 80 mulheres denominadas compu- tadoras executavam o serviço que hoje é reali- zado por um sistema operacional. Nessa época (meados de 1945), não havia sistemas operacionais e não era possível armazenar dados em placas de memória. Somente a partir do modelo de Von Neumann foi possível realizar o armazenamento não apenas de dados, mas do programa em memória, visando à facilidade e rapidez de programação (OKUYAMA, MILETO e NICOLAO, 2014, p. 6). Nas últimas décadas, a demanda de registros de informações cresce continuamente e de forma exponencial devido à evolução da sociedade e à facilidade e disponibilidade dos dispositivos móveis eletrônicos. Atualmente, devido à facilidade de uso de eletrônicos e da conectividade com a internet, um número exacerbado de novas informações são conside- radas dignas de registro. Nunca se registrou tanta informação como hoje. © k lo m , S hu tt er st oc k. © E ve re tt H is to ri ca l, Sh ut te rs to ck . 23Introdução a Banco de Dados Curiosidade Já existem disponíveis hoje no mundo quase 1 septilhão de bits de informa- ção - ou o número um seguido de 24 zeros, total similar ao de estrelas conhecidas no céu, segundo a Agência Espacial Europeia. (O GLOBO, 2014). Na perspectiva de Enderlein, a questão do armazenamento não está no acumulo dos dados, mas sim na disponibilidade e recuperação de informações corretas e imediatas, como comenta: Com o fluxo crescente de informações tem se tornado um problema crítico dar conta de todas elas. Não se trata apenas de armazenar um número crescente de informações num espaço reduzido [apesar de que atualmente as áreas de armazenamento estão cada vez maiores e com um menor custo], mas, sobretudo tornar a informação arma- zenada mais facilmente manipulável. (ENDERLEIN, 1994, p. 23) Nas últimas décadas, os Bancos de Dados foramdesenvolvidos para receberem, armazenarem, organizarem e manipularem essa enorme quantidade de informação que dobra a cada ano. Os Datacenters do Google, da Microsoft e do Facebook, por exemplo, armazenam todas as informações nas suas nuvens, compostas de milhares de servidores espalhados pelo mundo inteiro. Os servidores do Google são capazes de processar bilhões de solicitações de pesquisa e petabytes de dados. 1.1.2. Conceito de Arquivos de sistemas e Banco de Dados Existe uma diferença que devemos compreender entre os arquivos de sistemas e os arquivos de Banco de Dados. Silberschatz (2006, p. 2) comenta que os arquivos de sis- tema são suportados por um sistema operacional que armazena registros permanentes em vários arquivos e precisa de diferentes programas de aplicação para extrair e acrescentar novos registros nestes arquivos. São os chamados arquivos de aplicação, similares às apli- cações de processadores de texto, às planilhas eletrônicas e aos editores de imagens. Antes dos métodos atuais de armazenamento em Banco de Dados, as instituições armazenavam dados em arquivos de sistema operacional, nos quais diversos programas ou aplicações manipulavam informações em uma série de arquivos editáveis. Já os arquivos de Banco de Dados são gerenciados não por um sistema operacional, mas sim por um Sistema Gerenciador de Banco de Dados, e este, todavia, é composto por arquivos e gerenciado por um sistema operacional. Introdução a Banco de Dados24 A figura a seguir ilustra um diagrama dos arquivos do Sistema Operacional e do Sis- tema Gerenciador de Banco de Dados. O imput de dados das aplicações podem gerar dados organizados e salvos em arquivos de aplicações, mas podem também salvar os dados em um banco de dados através do Sistema Gerenciador de Banco de Dados. Os dados (círculos azuis) e metadados (círculos vazados). Enviados para um Banco de Dados, eles são imputa- dos através comandos SQL. Esquema de fluxo de dados para aplicações que gera arquivos de dados e para um Banco de Dados que gera bases de dados (círculos azuis) e metadados (círculos vazados) Sistema Operacional Imput de Dados Aplicações Arquivos Imput de Dados via SOL SGBD Dados BDs Meta dados O SGBD grava os dados e os metadados em uma estrutura similar à de um dicionário, composta de definições dos campos e de tipo de dados, como um esqueleto de tabelas, em uma organização especial do Banco de Dados. O importante é esclarecer que o SGBD tam- bém é uma aplicação de software que é executada por funções de rotinas do sistema ope- racional e, portanto, é composto por arquivos de dados do Sistema Operacional. 1.1.3. Porque utilizar-se de banco de dados? Como vimos em nossa perspectiva histórica do armazenamento de dados e informa- ções, é necessário registrarmos todas as informações importantes, e isso ocorre desde que © D TC O M 25Introdução a Banco de Dados a humanidade surgiu, seja por meio de desenhos, símbolos, escritas ideográficas, imagens, fotografias, vídeos, textos manuscritos ou digitais. Durante muito tempo, os Bancos de Dados foram formados por pedras, argilas, papi- ros e livros, mas, hoje, devido à era da tecnologia, são os Sistemas de Gerenciamento de Dados que realizam essas funções. Os Bancos de Dados devem não apenas armazenar dados, mas sim manipulá-los e disponibilizá-los integralmente e online em qualquer lugar e a qualquer momento em que forem solicitados. Um exemplo dessa função é a utilização de operações de pagamento online através do internet banking. A facilidade de realizar um pagamento por meio de um boleto ou rea- lizar uma transferência bancária a partir de um aplicativo de internet banking, sem sair de casa ou do trabalho, sem enfrentar filas nos bancos e sem depender do caótico trânsito das cidades expõe a capacidade do sistema para melhorar a qualidade de vida das pessoas. Essa facilidade que a tecnologia dos sistemas nos concede está contribuindo para uma melhor organização e administração das nossas atividades e compromissos. Organizar melhor as atividades é utilizar melhor o tempo para outros compromissos e lazer, ou seja, estamos fazendo mais com o mesmo tempo. Os Bancos de Dados são amplamente usados em instituições financeiras para administrar as informações de clientes, contas, empréstimos e transações bancá- rias; em linhas aéreas para reserva e infor- mações de horários; em universidades para registrar informações de alunos, cursos e notas; em transações de cartões de crédito para compras e geração de faturas; em tele- comunicações para registros de chamadas realizadas, cobranças mensais e armazenagem de informações sobre redes de comunicações; em finanças para informações sobre valo- res imobiliários, vendas e compras de ações e títulos; em vendas para dados de cliente, pro- duto e compra; na indústria no gerenciamento da cadeia de suprimentos e para controlar a produção de itens nas fábricas, estoques, etc. (SILBERSCHATZ, 2006, p. 1). Enfim, os Bancos de Dados são essenciais para armazenar e manipular o bem mais precioso das organizações: os dados. A partir deles é possível tomar decisões, compreen- der e manipular os negócios, a ciência, as finanças, a comunicação e todas as demais áreas do conhecimento. © Jo k ar en , S hu tt er st oc k. Introdução a Banco de Dados26 Esclarecimento Quando falamos de manipulação de dados nos referimos às funções de consulta, inserção, atualização e exclusão de dados. Um banco não só deve armazenar dados, ou seja, apenas inseri-los em um arquivo e depois consultá-los, mas também deve realizar sua manu- tenção, para mantê-los úteis e íntegros. Para Silberschatz (2006, p. 1-2), durante as últimas quatro décadas do século XX, o uso dos Bancos de Dados cresceu nas organizações. Ainda no início do século, as primei- ras máquinas de autoatendimento e as interações telefônicas com os usuários já acessavam diretamente as bases de dados. Devido à alta competitividade da concorrência, as organi- zações também recorreram às tecnologias avançadas de Banco de Dados, como o Big Data na busca de informações sobre seus clientes, produtos e serviços. Conforme comenta Date (2000, p. 15), algumas vantagens de um Sistema de Banco de Dados em relação aos antigos métodos são: • densidade: não há necessidade de arquivos de papel, possivelmente volumosos; • velocidade: a máquina pode obter dados com rapidez muito maior do que o ser humano; • menos trabalho monótono: grande parte do tédio de manter arquivos à mão é eliminada. As tarefas mecânicas são sempre feitas com a melhor qualidade por máquinas; • atualidade: informações precisas e atualizadas estão disponíveis a qualquer momento sob consulta; • proteção: os dados podem ser mais bem protegidos contra perda não intencional e acesso ilegal. Com a revolução da Internet no final da década de 1990, houve um grande aumento do acesso direto dos usuários aos Bancos de Dados. A interfaces gráficas da web, assim como os e-commerces, os bancos online e as pesquisas por meio dos buscadores digitáveis ou por voz acessam diretamente as informações em Bancos de Dados. 27Introdução a Banco de Dados 1.1.4. O geren ciamento de dados – Sistema de Gerenciamento de Banco de Dados (SGBD) Heuser (2001) afirma que os Sistemas de Gerenciamento de Banco de Dados (SGBD) surgiram no início da década de 70 com o objetivo de facilitar a programação de aplicações de Banco de Dados. A partir da década de 80, devido ao barateamento das plataformas de hardware e software os SGBDs começaram a dominar o mercado. Segundo DATE (2000, p. 37), o Sistema de Gerenciamento de Dados (SGBD) é um software que trata de todo o acesso ao Banco de Dados. Conceitualmente, o SGBD realiza uma intercepção de determinada solicitação advinda dos usuários através das aplicações. Esse procedimento é realizado por meio de uma linguagem de manipulação de dados, como o SQL.Após a intercepção, o SGBD inspeciona um esquema externo para esse usuá- rio (esquema conceitual), o mapeamento conceitual interno e a definição do Banco de Dados armazenado. Para Feitosa (2013, p.73) o SGBD é um software executado no nível de serviços, ou seja, um serviço é executado em segundo plano (background) onde aguarda requisições do programa/usuário. Para se comunicar com o SGBD, é necessário construir uma aplicação que estabeleça conexões com uma porta lógica e o SGBD. O fabricante dos SGBD deve fornecer aplicações com interfaces para realizar o geren- ciamento do Banco de Dados. O SGBD recebe comandos em SQL por essa porta lógica em uma cadeia de caracteres do tipo string. Na sequência, o SGBD realiza a análise de sintaxe dessa cadeia de caracteres e o executa. O esquema da figura a seguir ilustra as principais funcionalidades de execução de um SGBD. Funcionalidades de execução de um SGBD Requisição do usuário “consultar cliente” Aplicação string “realizar consulta” Porta lógiga Procesador DDL Procesador DML Procesador DQL Verificar sintaxe Inspeciona esquemas da base de dados Executa instrução SQL Retorna informações solicitadas © D TC O M Introdução a Banco de Dados28 Conforme podemos observar na figura, após a requisição do usuário por uma con- sulta de relatório de clientes através de uma aplicação específica, o serviço irá utilizar o processador de DQL (linguagem de consultas de dados), verificará a sintaxe, inspecionará os esquemas da Base de Dados, executará a instrução SQL e retornará ao usuário as infor- mações solicitadas. 1.1.5. Profissionais e seus papéis na atuação com Banco de Dados A TI é uma área muito extensa, que engloba profissionais especializados em diferen- tes conceitos, para atender a todas as especificidades existentes no desenvolvimento de um software e na manutenção de hardwares. Dessa forma, vamos explorar algumas profis- sões relacionadas a Banco de Dados dentro da TI: • Administrador de Banco de Dados (DBA): a função de um DBA é cuidar da saúde do Banco de Dados, mantendo sua disponibilidade de uso e seu desempenho e buscando formas de otimização. Cada vez mais as empresas dependem de bancos de dados rápidos e robustos, que suportem um grande volume de informações que possam ser utilizadas mais rapidamente. • Analista de Dados: o papel do analista de Banco de Dados é coletar, processar, analisar e interpretar os dados, de forma a garantir dados úteis e atuais, para que as tomadas de decisão gerenciais sejam cada vez mais assertivas. • Desenvolvedor/Programador de SQL: este profissional tem como função desenvol- ver scripts SQL para atender às regras de negócio do banco. Ou seja, ele é o profis- sional responsável por implementar a criação ou as alterações necessárias em um Banco de Dados. • Analista de Sistemas/Suporte: é o profissional que analisa e desenvolve sistemas, mapeia processos, faz a modelagem de dados e levanta os requisitos para imple- mentar esses programas de acordo com os objetivos e as regras de negócio da empresa. É o analista de sistema que define o que o desenvolvedor de SQL deve executar. • Dependendo da empresa, um analista de sistemas pode desenvolver as funções de DBA, analista de dados, programador SQL e até analista de BI. Entretanto, apesar de um analista de sistemas poder acumular mais de um papel, é importante res- saltar as diferentes responsabilidades envolvidas na criação e manutenção de um Banco de Dados. 29Introdução a Banco de Dados • Analista de Business Intelligence (BI): como as empresas estão cada vez mais uti- lizando as informações como forma de manter seu diferencial competitivo, recen- temente, observamos o surgimento de mais uma profissão dentro da TI, que é o de analista de BI (ou analista de inteligência dos negócios). O papel do analista de BI é montar os modelos de negócio a partir dos dados disponíveis, criando cubos de dados que geram relatórios que abordam cenários previamente definidos. Ou seja, ele é o profissional responsável por analisar e combinar informações de modo a gerar conhecimento relevante e útil para os negócios da empresa. • Cientista de Dados: o papel do cientista de dados é muito parecido com o papel do Analista de BI, com a diferença de que aquele se especializa na área de aná- lise de grandes volumes de dados, ou, como é geralmente chamado pelo mercado, se especializa em big data. Por conta do volume, a complexidade em interpretar informações de valor e apoiar na tomada de decisão dos negócios aumenta. Esse profissional conta com o apoio de ferramentas que o auxiliam a analisar, organizar e consolidar informações relacionadas, criando conhecimento que agregue valor e competitividade aos negócios. Pausa para refletir Em termos de funcionalidades, podemos considerar um SGBD (Sistema Gerenciador de Banco de Dados) como um Sistema Operacional? Introdução a Banco de Dados30 1.2. Estrutura de um Sistema de Gerenciamento de Banco de Dados A estrutura de Gerenciamento de Banco de Dados é formada por uma série de meca- nismos como compiladores, mecanismos de avaliação, gerenciadores, dicionários de dados, arquivos, registros, campos e índices. Os Bancos de Dados atuais são baseados em modelo relacionais e incluem uma linguagem de Definição de Dados (DDL) e de Manipula- ção de Dados (DML) em seu Sistema de Gerenciamento de Banco de Dados. Já a estrutura de um Sistema de Banco de Dados é mais ampla e é composta por três camadas de acesso e de processamento de dados, como: 1. processador de consulta; 2. gerenciador de armazenamento; e 3. armazenamento em disco. Na primeira camada são geradas as várias interações de requisições dos usuários leigos, programadores de aplicação, usuários avançados e administradores de bancos de dados. Em uma segunda camada do Sistema de Banco de Dados são definidos os softwares que se comunicam o SGBD, como as interfaces de aplicação web, os programas de aplica- ção, as ferramentas de consulta e as ferramentas de administração. A terceira camada é definida como um processador de consultas do SGBD, composto de compiladores, consultas DML, interpretadores, organizadores e mecanismo de avalia- ção. Nessa mesma camada, no mesmo Sistema de Gerenciamento de Dados, é definido o gerenciador de armazenamento composto pelo gerenciador de buffer, gerenciador de arquivos, gerenciador de autorização e integridade e o gerenciador de transação. Na última camada os dados são armazenados no disco em uma estrutura composta por objetos do banco de dados como o dicionário de dados (metadados), dados estáticos e índices. Em muitos bancos de dados é possível gerar uma definição da estrutura de dados ou definições de dados desejados através de instruções do SGBD de exportação e impor- tação. Este processo é denominado Dump/Load de definições do dicionário (estrutura de tabelas, campos e tipos de dados). Também é possível realizar somente um Dump/Load dos dados de uma tabela. O Dump de uma tabela é a exportação de dados para um arquivo de texto. Já o Load é a importação de dados de um arquivo de texto para uma tabela de banco de dados, facili- tando conversões de bancos, atualizações, particionamento de volumes, backups de dados e de suas definições. 31Introdução a Banco de Dados Estrutura do Sistema de Banco de Dados Quarta camada disco Terceira camada SGDB Segunda camada aplicação Primeira camada usuário Usuários leigos (caixa, agentes, usuários web) Programadores de aplicação Usuários avançados Administrador de banco de dados Interface de aplicação Programas de aplicação Ferramentas de consulta Ferramentas de administração Compiladores InterpretadoresConsulta DML Organizadores Mecanismos de avaliação Processador de consultas Gerenciador de buffer Gerenciador de arquivos Gerenciador de autorização e integridade Gerenciador de transação Gerenciador de armazenamento Dados, indices,dicionários de dados e dados estatísticos Armazenamento de disco Fonte: SILBERSCHATZ, 2006, p. 17. (Adaptado). Silberschatz (2006) divide a terceira camada do Sistema de Gerenciamento de Banco de Dados em dois subsistemas: a) subsistema de gerenciamento de armazenamento, que fornece uma interface entre os dados de baixo nível armazenados no banco de dados e os programas de aplicação e as consultas submetidas ao sistema; e b) subsistema de proces- samento de consulta, que compila e executa as instruções DDL (Data Definition Language) e DML (Data Manipulation Language). 1.2.1. Objetos de um SGBD Já citamos que um Sistema de Banco de Dados, em suas várias camadas ou subsis- temas, pode conter vários recursos e objetos para a manipulação e armazenamento de © D TC O M Introdução a Banco de Dados32 dados. Comentaremos neste tópico sobre os objetos da última camada ou subsistema de armazenamento, cujos principais objetos podem ser definidos como: • arquivos ou bases de dados: é uma coleção de objetos inter-relacionados. • tabelas: são objetos que armazenam efetivamente os dados. Em uma base rela- cional, esses objetos ficam relacionados entre si em um arquivo único do tipo contêiner. Em estruturas de arquivos separados, os aplicativos específicos são responsáveis pelos relacionamentos entre elas. Uma tabela é composta de regis- tros e campos, sendo comparados com linhas e colunas, formando uma matriz bidimensional. • registros: são subobjetos que representam as entidades particulares formadas por um conjunto de campos. • campos: são subobjetos que registram efetivamente os dados de uma mesma natureza (de um mesmo tipo) para cada registro. Identificam as características de cada entidade particular. Em um nível menos abstrato são denominados atributos de uma entidade. • Índices: são campos específicos que os tornam especiais para pesquisas em um banco de dados. • Chaves: são campos ou atributos que identificam os objetos ou entidades únicos dentro de uma coleção de objetos e também realizam a implementação dos rela- cionamentos entre as tabelas. A imagem ao lado ilustra a estrutura de um banco de dados relacional na forma de diagramas, cujas tabelas se relacio- nam em um arquivo contêiner de banco de dados. Uma estrutura física pode ser repre- sentada por modelos ou diagramas que abstraem as informações do mundo real para as estruturas físicas de baixo nível de armazenamento. O conceito de abstração de dados é muito importante em Banco de Dados, pois está relacionado com a orientação a objetos, que discutiremos mais detalhadamente nos próxi- mos capítulos. A abstração de dados oculta a complexidade do Banco de Dados aos usuá- rios em diferentes níveis. Esses níveis, físico ou lógico, podem fornecer mais detalhes sobre um banco de dados ou podem simplificá-lo. © K ra sn op ol sk i, Sh ut te rs to ck .. 33Introdução a Banco de Dados Os objetos tabelas, campos e chaves, bem como os relacionamentos dessas tabelas são representados por símbolos geométricos (retângulos, setas, etc.) nestes modelos ou diagramas. 1.2.2. Arquivos Os arquivos de banco de dados podem ser denominados de tabelas que contêm um conjunto de objetos do tipo registros, campos, índices. Já uma coleção de tabelas relacio- nadas é um arquivo (.db – extensão de arquivos dos principais bancos de dados) que con- tém um conjunto de tabelas. Um arquivo tabela contém um conjunto finito de registros de acordo com o espaço de memória em disco e de acordo com a capacidade de gerenciamento desses registros atra- vés do SGBD. Comparadas a um repositório físico manual, como um armário, por exemplo, as tabelas seriam as gavetas identificadas por uma etiqueta, como uma gaveta de cadastro dos clientes. Cada pasta ou ficha dentro da gaveta de clientes seria de um cliente específico, ordenado por ordem alfabética (A-Z). Cada pasta seria um registro. Essa gaveta tam- bém teria também um limite físico de pas- tas ou registros. 1.2.3. Registros Os registros são informações de cada entidade. Conforme o exemplo anterior, a enti- dade cliente possui N registros armazenados em uma tabela ou arquivos de dados de deno- minação “Cliente”. Nesse caso, cada registro seria uma pasta identificada unicamente dentro de uma gaveta do repositório físico. Outro exemplo de registro é o número de linhas de uma matriz bidimensional ou pla- nilha eletrônica com linhas e colunas. Cada registro ou linha é única na planilha ou tabela. Já as colunas da planilha podem ser consideradas como campos que armazenam dados, por exemplo: nome, endereço, cidade, bairro e telefone do cliente. Um desses campos deve ser identificado com uma chave de atribuição única, como o CPF do cliente. © L in na s, S hu tt er st oc k. Introdução a Banco de Dados34 Portanto, os registros são coleções de campos ou atributos que armazenam efetiva- mente os dados ou características de uma entidade. Na programação orientada a objetos a coleção de registros ou de objetos é denominada de classe, onde cada objeto é único, mas possuem características similares. Esclarecimento Os objetos de banco de dados são arquivos, tabelas, campos, registros, chaves, etc. que compõem a estrutura de um Banco de Dados. Os objetos de dados são coleções de registros com as mesmas características. Cada registro distinto é um objeto. Uma instância de banco de dados é como se fosse um “retrato” do banco de dados em um determinado momento, e é utilizada para melhorar o desempenho, uma vez que não possui nenhum tipo de resistência. Considerando o exemplo do arquivamento em um armário físico, cada gaveta poder ser considerada como uma tabela ou arquivo que contém uma ordenação específica. Cada registro é uma ficha ou uma pequena pasta com informações sobre um livro específico. 1.2.4. Campos O o bjeto campo de um banco de dados é onde efetivamente é armazenada a infor- mação. Conforme o exemplo anterior, cada pasta ou ficha contém os dados do livro, como o nome do autor, ano de publicação, editora, etc. Cada campo ou atributo do livro possui características inerentes ao campo, por exemplo: o ano de publicação é numérico e com- posto por quatro dígitos; o nome do autor é composto por no máximo 15 caracteres. É importante deixar claro que as características inerentes a cada campo, como tama- nho e tipo de dado, são iguais para todos os registros, mas os dados armazenados em cada campo de cada registro são, em sua maioria, diferentes. Cod_Func Nome_Func Email_Func Registro 0 001 Damasceno da Silva damasceno@gmail.com Registro 1 002 José de Alencar jose.alencar@hotmail.com Registro 2 003 Ricardo Gouveia ricardo.gouveia@gmail.com 35Introdução a Banco de Dados Registro 3 004 Joana Maria Corrêa joana.m.correa@gmail.com Registro 4 005 Celestino de Jesus celestino.dejesus@hotmail.com Registro 5 006 Paulo Gomes paulo.gomes@hotmail.com Registro 6 007 Samara da Silva samara.silva@gmail.com Registro 7 008 Candido Xavier candido.xavier@hotmail.com O quadro anterior apresenta um exemplo de arquivo de clientes. Os registros estão representados por linhas (registro 0 a 7) e os campos estão representados por colunas e definidos como código do cliente, nome do cliente e e-mail. Pausa para refletir Existem outras formas de organizar e representar os objetos do mundo real em um Banco de Dados? 1.3. Meios de armazenamento e acesso de dados Os meios de armazenamento e de acesso a arquivos de dados ou de Banco de Dados, atualmente, podem ser feitos por meio magnético ou por meio óptico eletrônico. O meio eletrônico inclui o armazenamento in-memory, que se aplica para grandes volumes de dados, que acessam diretamente a memória dos servidores. As informações dos sistemas de bancos de dados das organizações são armazenadas, a princípio, em meios magnéticos por apresentarem um melhor custo/benefício. Para Silberschatz: [...] os discos magnéticos oferecema maior parte do armazenamento secundário para os sistemas de computador modernos. Embora as capacidades de disco tenham cres- cido, ano após ano, os requisitos de armazenamento das grandes aplicações também crescem (2006, p. 295). Vejamos na sequência os detalhes desses meios de armazenamento de dados. Introdução a Banco de Dados36 1.3.1. Meio de armazenamento óptico e magnético Audy, Keller e Cidral (p. 162) explicam que os discos de meio magnético são com- postos por uma base metálica ou plástica recoberta por material magnetizável. No pro- cesso de gravação, os dados são transferidos por meio de magnetização, que obedece a um padrão binário. Nesse tipo de meio magnético existem os discos rígidos e as fitas magnéticas. As fitas magnéticas são utilizadas para o armazenamento de grandes volumes de dados de forma sequencial e são apresentadas na forma de rolos ou cartuchos. Os disposi- tivos dessas mídias realizam a leitura unidirecional, realizada bloco a bloco. As fitas mais antigas eram denomina- das Streamer e usadas para armazenamento de backups periódicos de arquivos de dados e de banco de dados. Atualmente, são uti- lizadas as fitas DAT (Digital Audio Tape) ou DDS (Digital Data Storage) para backups. Elas são menores que a Streamer e sua capacidade de armazenamento é da ordem de terabytes. A figura ao lado mostra um exemplo de fita magnética do tipo DAT. Já o meio óptico é composto por uma base, em geral plástica ou acrílica. Essa base sofre a ação de uma fonte de calor durante a gravação, que realiza perfurações de acordo com determinado padrão de codificação, no caso, binário. Para a leitura de dados nesse tipo de mídia, um laser realiza a análise dessas perfurações (ausência bit 0 - presença bit 1) em uma padronização binária. Com relação à utilização dos discos, devido a certa confiabilidade e menor custo de armazenamento, os discos magnéticos ainda são altamente utilizados para o armaze- namento de arquivo de dados e de Banco de Dados, principalmente nos Datacenters que armazenam grandes volumes de informações. Algumas tendências de armazenamento eletrônico de estado sólido, como os SSDs (Solid-state Drive), ou aqueles denominados de memória Flash, estão surgindo devido ao barateamento desses componentes num futuro próximo. Uma das alternativas é o uso híbrido dos diferentes tipos de armazenamento. 1.3.2. Meios de acesso direto e sequencial © K je ti l K ol bj or ns ru d / / S hu tt er st oc k. . 37Introdução a Banco de Dados Em termos de acesso aos dados nos meios de armazenamento, sejam eles de leitura ou de gravação, podem ser de dois tipos: direto ou sequencial. No caso do acesso sequen- cial, isso significa que os dados serão acessados na ordem na qual foram armazenados. Imagine uma gravação de um backup em fita magnética de registros de uma tabela na qual os códigos gravados são 001, 002, 003 até o código 200. Para recuperar um código 100 é necessário realizar a leitura sequencial de todos os códigos 001 até 199, descartando-os para chegar ao registro 200. A leitura se dá de maneira diferente em um banco de dados relacional. Silberschatz (2006, p. 312) comenta que um arquivo sequencial é projetado para o processamento efi- ciente de registros em ordem com base em alguma chave de busca. Uma chave de busca é qualquer atributo ou conjunto de atributos de cada registro que localiza o quem vem antes do registro inserido. Já o acesso direto significa que os dados podem ser recuperados diretamente, sem passar por uma sequência de registros. No exemplo anterior, é possível realizar um acesso direto ao código 200. Dispositivos de armazenamento como discos magnéticos e eletrônicos como memó- ria RAM e Flash realizam o acesso direto aos dados. Contudo, o acesso direto e sequencial não está relacionado somente ao dispositivo mecânico de busca, mas sim ao algoritmo de busca e gravação de dados do SGBD. Os algoritmos de busca utilizam o conceito de índice. Para Silberschatz um “índice para um arquivo em um sistema de banco de dados funciona quase da mesma forma que o índice de um livro” (2006, p. 321), ou seja, para cada tabela ou arquivo existe uma tabela de índice com o menor espaço possível de armazenamento. 1.3.3. 1.3.3 Locais de Armazenamento O armazenamento de dados pode ser feito em servidores locais, existentes dentro das empresas, ou em servidores on-line disponíveis na internet. O armazenamento em nuvem é uma tecnologia relativamente recente que permite guardar dados na internet por meio de um servidor on-line sempre disponível e com con- trole de acesso. Neste servidor on-line, o usuário pode armazenar dados, arquivos, docu- mentos e outras informações, sem precisar de um HD físico em seu computador. A grande vantagem de utilizar um servidor on-line, em nuvem, é diminuir a necessi- dade de armazenamento local, evitando compras constantes de servidores para suportar o grande volume de informações a serem armazenadas. Introdução a Banco de Dados38 Assim como o servidor local, o servidor em nuvem permite armazenar, editar, com- partilhar e excluir arquivos, documentos, fotos, vídeos, contatos e aplicativos, livremente. É possível substituir um servidor local por um servidor em nuvem, para uso em desk- top, notebook, smartphone ou até mesmo tablet. Isso proporciona leveza, liberando espaços, que antes eram ocupados por dados, para processamentos mais pesados, sem aumentar o tempo de resposta. Ou seja, as informações ficam guardadas e disponíveis em um ambiente digital e virtual. Proposta de Atividade Reforce seu aprendizado com o exercício sugerido a seguir. A atividade não é avaliativa, mas é uma boa oportunidade para testar seus conhecimentos e fixar o conteúdo estudado no capítulo. Agora é a hora de recapitular tudo o que você aprendeu nesse capítulo! Elabore um mapa conceitual destacando as principais ideias abordadas ao longo do capítulo. Ao produzir seu mapa, considere as leituras básicas e complementares realizadas. Dica: em uma mapa conceitual, você deve ter uma expressão principal, inicie, por exemplo, por ‘Banco de Dados’ e subdivida essa expressão ou termo em novas palavras dando sentido ao texto, como por exemplo: perspectiva histórica, o que é um banco de dados, estrutura de um SGBD e meios de armazenamento. A partir desses termos, crie novas divisões a partir de expressões ou termos, fracionando a ideia até o melhor entendimento possível. 39Introdução a Banco de Dados Recapitulando Realizando uma breve revisão do conteúdo, compreendemos a importância e aplica- bilidade dos Bancos de Dados em uma perspectiva histórica da busca do armazenamento e da recuperação das informações com qualidade, ou seja, recuperando a informação como foi inicialmente armazenada. Compreendemos também a importância da utilização dos Bancos de Dados nos dias de hoje. Eles são úteis para os usuários, programadores e administradores de Banco de Dados das empresas e até no acesso pessoal. Portanto, sem os Sistemas Gerenciadores de Banco de Dados, as tarefas de armaze- namento e manipulação de dados se tornariam trabalhosas e tediosas, como era no pas- sado. Não podemos confundir um Sistema Gerenciador de Banco de Dados como um Sistema Operacional de Dados, lembrando que o SGBD gerencia tabelas e dados, já um S.O gerencia arquivos dos aplicativos. Exploramos os objetos que compõem a estrutura do sistema de banco de dados, como arquivos, tabelas, registros, campos e chaves, comparando-os a um repositório físico, como um armário com gavetas, fichas ou pastas e seus índices de classificação. Estas são as principais formas de representar os objetos do mundo real em um banco de dados relacional, havendo ainda outras formas de representação através de um Banco de Dados Orientado a Objetos. Finalmente, compreendemos os tipos de armazenamentos ópticos e magnéticos, hoje essenciais para guardar e manipular as informações,bem como os tipos de acesso sequencial e direto. Com relação ao acesso sequencial, vale lembrar que ele é utilizado atualmente pelos dispositivos de fitas magnéticas para a realização de backups. Já o acesso direto é utilizado em discos magnéticos para o armazenamento e manipulação dos dados. Introdução a Banco de Dados40 Referências ALBUQUERQUE, E. M. O que faremos com os 40 Trilhões de gigabytes de dados disponíveis em 2020? Publicado em: 29/09/2017. Disponível em: <br.okfn.org/2017/09/29/o-que-faremos- -com-os-40-trilhoes-de-gigabytes-de-dados-disponiveis-em-2020/>. Acesso em: 04/07/2018. AUDY, J. L. N.; ANDRADE, G. K. de; CIDRAL, A. Fundamentos de Sistemas de Informa- ção. São Paulo: Bookman. 2005. DATE, C. J. Introdução a sistemas de Banco de Dados. 8. ed. Rio de Janeiro: Editora Cam- pus, 2004. ENDERLEIN, R. Microeletrônica: uma introdução ao Universo dos Microchips, seu funcio- namento, Fabricação e Aplicações. São Paulo: Editora da Universidade de São Paulo, 1994. FEITOSA, M. P. Fundamento de Banco de Dados: uma abordagem prático-didática. 1. Ed. São Paulo: Edição do autor, 2013. MACHADO, A. Estudo da EMC prevê que volume de dados virtuais armazenados será seis vezes maior em 2020. Publicado em 10/04/2014. O Globo. Disponível em: < https:// oglobo.globo.com/sociedade/tecnologia/estudo-da-emc-preve-que-volume-de-dados-vir- tuais-armazenados-sera-seis-vezes-maior-em-2020-12147682>. Acesso em: 23/06/2018. OKUYAMA, F. Y.; MILETTO, E. M.; NICOLAO, M. Desenvolvimento de Software. Porto Alegre: Bookman, 2014. SAMPAIO, A. F. Letras e memória: uma breve história da escrita. São Paulo: Ateliê Edito- rial, 2009. SILBERSCHATZ, A. Sistemas de Banco de Dados. 5. Ed. São Paulo: Ed. Makron, 2006. UOL. Volume de dados virtuais em 2020 pode chegar a 35 zettabytes, afirma IDC. Publicado em 08/04/2011. Disponível em: <tecnologia.uol.com.br/ultimas-noticias/reda- cao/2010/05/04/volume-de-dados-virtuais-em-2020-pode-chegar-a-35-zettabytes-afirma- -idc.jhtm>. Acesso em: 23/06/2018. VESCO, C. S. Linguagem e escrita, origem e mudanças. 2009. Trabalho de Conclusão do Curso de Pós-Graduação Latu Sensu em Língua Portuguesa, Compreensão e Produção de Textos. Faculdade de Educação São Luís. Núcleo de apoio de São Paulo-Tatuapé. Jabotica- bal-SP, 2009. 41Introdução a Banco de Dados OBJETIVOS DO CAPÍTULO • Compreender as fases de um Projeto de Banco de Dados e por que se deve realizar a modelagem de dados. CAPÍTULO 2 Projeto de Banco de Dados e Modelagem de Dados Adriana Bastos da Costa Sidartha Azevedo Lobo de Carvalho TÓPICOS DE ESTUDO 1 O que é e por que modelar dados? 3 Nível de abstração • Definição de modelo de dados. • Por que modelar dados? • Esquema conceitual ou lógico. • Esquema físico. • Esquema externo ou nível de visão do usuário. 2 Categorias dos modelos de dados 4 Fases do Projeto de Banco de Dados • Modelo Hierárquico • Modelo Relacional. • Modelo Entidade Relacionamento. • Modelo Orientado a Objetos • Especificação das necessidades do usuário: análise de requisitos. • Definição do modelo de dados e Esquema Conceitual. • Projeto Lógico, garantindo a inde- pendência de dados. • Projeto Físico, com a definição da arquitetura de um sistema de banco de dados. Introdução a Banco de Dados42 Contextualizando o cenário Neste capítulo vamos estudar alguns princípios básicos referente aos bancos de dados. Parti- remos do princípio da resolução de problemas reais e, ao longo do capítulo, analisaremos os conceitos ministrados envolvendo problemas do mundo real. Ademais, as fases de projeto e definição dos bancos de dados serão abordadas, englobando por que é necessário realizar a modelagem de dados, os modelos utilizados, esquemas con- ceitual, físico e visão do usuário. Depois, vamos abordar como implementar o modelo cons- truído a partir de um problema real para um banco de dados. A partir dos conceitos aprendidos nesse capítulo, o aluno será capaz de responder à seguinte pergunta: como posso construir um banco de dados para um sistema que estou proje- tando? Como posso modelar e implementar essa ideia em um banco de dados? 43Introdução a Banco de Dados 2.1. O que é e por que modelar dados? Estudaremos os conceitos básicos da área, necessários à compreensão e modelagem dos bancos de dados. São apresentados conceitos como o que é e para que serve um Banco de Dados, como deve ser feita a modelagem de banco de dados e a necessidade da mode- lagem para garantir que os objetos do mundo real sejam representados de forma correta no modelo computacional. O projeto de um banco de dados é o processo de modelagem que abrange: análise dos requisitos, projeto conceitual, projeto lógico e projeto físico. Na análise de requisitos, é necessário mapear o mundo real para o mundo virtual. Já no projeto conceitual são defini- das as funcionalidades do sistema. Ademais, no projeto lógico o modelo conceitual é trans- formado em entidades, buscando a independência dos dados, de acordo com os conceitos de orientação a objetos, e, por fim, o projeto físico é a criação das estruturas do mais baixo nível do banco de dados, baseado na arquitetura do sistema de banco de dados para aten- der às necessidades do software. 2.1.1. Definição de modelo de dados Heuser (2001, p. 15) define Banco de Dados como um conjunto de dados integrados que tem por objetivo atender a uma comunidade de usuários. A figura a seguir ilustra algumas bases de dados. A abstração em banco de dados pode ser divi- dida em três níveis: • o nível de visão do usuário contém as enti- dades relacionadas ao usuário, quais dados cada tipo de usuário pode acessar de forma individualizada ou separada por categorias; • o nível conceitual define os tipos de dados que estão armazenados no banco de dados e o relacionamento entre eles. É importante lembrar que quanto mais inde- pendentes forem os dados, melhor será a codificação do software e sua manuten- ção no futuro. • por fim, o nível físico é o mais baixo da abstração, responsável por definir a forma como os dados estão armazenados, levando em considerações detalhes de imple- mentação do banco e do hardware utilizado. No nível físico, a arquitetura do sis- tema de banco de dados é desenhada, buscando otimizar o software e focar na performance do sistema. © N ov el o, S hu tt er st oc k. Introdução a Banco de Dados44 Na modelagem do banco de dados, mais precisamente na modelagem conceitual, é necessário definir o propósito do sistema, planejando suas funcionalidades e caracterís- ticas. Geralmente essa etapa é realizada juntamente com o cliente. O modelo conceitual tenta mapear as necessidades do sistema no projeto conceitual. Alguns autores sugerem o diagrama Entidade-Relacionamento como um dos artefatos gerados na modelagem con- ceitual, enquanto o diagrama normalizado é o resultado da modelagem lógica. Após a modelagem conceitual, a modelagem lógica é o processo de transformar o projeto conceitual do banco de dados em um modelo lógico, descrevendo as entidades, atributos e relacionamentos. Nessa etapa é construído um modelo na forma de um dia- grama Entidade-Relacionamento (ER) normalizado. Em seguida à modelagem lógica, temos a modelagem física, que é a transferência do modelo lógico para as estruturas de dados do Sistema Gerenciador de Banco de Dados (SGBD), adaptando as tabelas do projeto para estruturas de mais baixo nível que variam entre os tipos de bancos de dados. Dica Pesquise os diferentes tipos de Sistemas Gerenciadores de Banco de Dados (SGBD) utilizados atualmente. Após selecionar alguns SGBD, crie uma tabela comparativa destacando quais entidades são representadas de maneira diferente entre eles. Essa etapa é necessária pois há uma grande diversidade de implementações distintas dos SGDB, daí a importância do mapeamento para as entidades presentes no banco de dados. 2.1.2. P or que modelar dados? Um modelo de bancode dados é uma descrição dos tipos de informações que estão armazenadas em um banco de dados (HEUSER, 2001, p. 16). O modelo dos dados informa que são armazenados os tipos de entidades que estarão presentes no banco de dados, mas não informa produtos específicos. Por exemplo, o modelo informa que o banco de dados irá armazenar um nome, mas não informa qual nome será armazenado naquela categoria. A construção do modelo de dados é feita utilizando uma linguagem específica para modelagem de dados. As linguagens utilizadas para modelagem de dados podem ser clas- sificadas em linguagens textuais ou linguagens gráficas, variando na forma de apresentar os modelos. Um mesmo modelo pode ser representado tanto em linguagens textuais como em linguagens gráficas. 45Introdução a Banco de Dados Os modelos de dados são utilizados de acordo com a necessidade do modela- dor. Um mesmo banco de dados pode ser descrito em vários níveis de abstração. Por exemplo, um modelo de dados que será uti- lizado em uma reunião estratégica com o presidente da organização não é o mesmo que será mostrado ao time que irá imple- mentar o modelo de dados no Sistema Gerenciador de Banco de Dados. A reunião das estratégias conterá detalhes que são rele- vantes somente para o time de implementação, enquanto outras informações, de alto nível, serão utilizadas no modelo para o presidente. Nos últimos anos, é perceptível a importância das informações para as organizações. A qualidade da informação é um fator decisivo na tomada de decisões estratégias para o desenvolvimento da organização. O uso da informação e sua modelagem também é respon- sável pela queda e até fechamento da empresa se as informações não forem utilizadas da maneira adequada. 2.2. Categorias dos modelos de dados Os bancos de dados relacionais possuem forte ligação com a relação matemática, onde cada tabela modela uma entidade ou uma relação. Além disso, as linhas da tabela do banco de dados também são chamadas de tuplas. Este tipo de banco de dados utiliza uma tabela para armazenar os dados na qual as linhas são as ocorrências de uma entidade e as colunas são os atributos. Além disso, os bancos de dados possuem o conceito de visão, que é a geração de uma abstração de dados e relações que não existem fisicamente no modelo lógico do banco de dados. No modelo Entidade-Relacionamento (ER), uma das notações mais utilizadas é a de Peter-Chen. 2.2.1. Modelo de Dados Hierárquico O Banco de Dados Hierárquico é mais antigo, e foi implementado na década de 1970 pela IBM, comumente utilizado em computadores mainframe. É considerado um banco de dados de 1ª Geração, apesar de suas limitações. Teve um considerável papel na evolução © e ve ry th in g po ss ib le , S hu tt er st oc k. Introdução a Banco de Dados46 dos Sistemas Gerenciadores de Banco de dados e ainda hoje encontramos aplicações que utilizam esta estrutura de banco de dados. A concepção original do banco de dados hierárquico está perfeitamente adaptada ao processamento sequencial. Uma base de dados hierárquica é um tipo de sistema de gerenciamento de banco de dados que conecta registros em uma estrutura de dados em árvore através de ligações, de modo que cada tipo de registro tenha apenas um possuidor. Um Banco de Dados Hierárquico consiste em uma coleção de registros que são conectados uns aos outros por meio de ligações. Cada registro é uma coleção de campos (atributos), os quais contêm apenas um valor de dado, e uma ligação é uma associação entre exatamente dois registros. A partir de alguns estudos, surgiu o modelo em rede como uma extensão do modelo hierárquico. A diferença entre esses dois modelos é que um registro pode ser envolvido em várias associações no modelo em rede, o que não acontece no modelo hierárquico. No modelo em rede, não há o conceito de hierarquia e os registros são organizados em estrutura de grafos. Nele, as associações entre entidades funcionam, essencialmente, nos dois sentidos, ao contrário do modelo hierárquico, que funciona em um único sentido, do segmento superior para o inferior. Texto revisado:2.2.1 Modelo de Dados Hierárquico O Banco de Dados Hierárquico é mais antigo, foi implementado na década de 1970 pela IBM, e é comumente utilizado em computadores mainframe. É considerado um banco de dados de 1ª Geração, apesar de suas limitações. Teve um considerável papel na evolução dos Sistemas Gerenciadores de Banco de dados e ainda hoje encontramos aplicações que utilizam esta estrutura de banco de dados. A concepção original do banco de dados hierárquico está perfeitamente adaptada ao processamento sequencial. Uma base de dados hierárquica é um tipo de sistema de gerenciamento de banco de dados que conecta registros em uma estrutura de dados em árvore através de ligações, de modo que cada tipo de registro tenha apenas um possuidor. Um Banco de Dados Hierárquico consiste em uma coleção de registros que são conectados uns aos outros por meio de ligações. Cada registro é uma coleção de campos (atributos), os quais contêm apenas um valor de dado, e uma ligação é uma associação entre exatamente dois registros. A partir de alguns estudos, surgiu o modelo em rede como uma extensão do modelo hierárquico. A diferença entre esses dois modelos é que um registro pode ser envolvido em várias associações no modelo em rede, o que não acontece no modelo hierárquico. 47Introdução a Banco de Dados No modelo em rede, não há o conceito de hierarquia e os registros são organizados em estrutura de grafos. Nele, as associações entre entidades funcionam, essencialmente, nos dois sentidos, ao contrário do modelo hierárquico, que funciona em um único sentido, do segmento superior para o inferior. 2.2.2. Mo delo Relacional A abordagem do modelo relacional utiliza o conceito de chaves e índices. A chave define um item de busca no banco de dados, enquanto o índice é uma estrutura para oti- mizar a localização dessa chave. Os principais tipos de chaves são: primária e estrangeira. A primária identifica unicamente uma linha da tabela enquanto a estrangeira é uma referên- cia a uma chave primária em outra tabela. Esse tipo de chave é utilizado para estabelecer o conceito de relações entre as entidades (tabelas). Um tópico relevante ao abordar bancos de dados relacionais é a normalização dos dados, o processo de modelar os campos e tabelas para minimizar a redundância, depen- dência e inconsistência dos dados. A seguir vamos exemplifi car o modelo Entidade Relacionamento utilizando exemplos. O diagrama a seguir apresenta um exemplo envolvendo a modelagem de um banco de dados. 2.2.3. Mo delo Entidade Relacionamento No modelo Entidade Relacionamento temos o cliente do banco, chamado de Cliente. Este pode ser classificado como pessoa física (PF) ou pessoa jurídica (PJ). A PF tem os seguintes atributos: CPF, Nome e Filho, enquanto a PJ tem somente Nome Fantasia. Dica Cuidado! Não confunda abordagem Entidade Relacionamento (ER) com dia- grama Entidade Relacionamento (DER). O DER é uma ferramenta (um diagrama) dentro da abordagem ER, que é mais genérica. Todos os clientes possuem um identificador único, chamado de Código e podem ser atendidos por uma filial, porém, uma filial do banco pode atender vários (n) clientes. Por fim, o atributo Endereço possui Cidade e Rua. Introdução a Banco de Dados48 Exemplo modelo Entidade-Relacionamento Cidade Rua Endereço Filial 1 Atendido n Cliente Código PF PJ CPF Nome Filho Nome Fantasia No exemplo, utilizamos a notação proposta por Peter Chen, que é uma das mais utili- zadas. Vamos aprender mais sobre essa notação. Alguns componentes da notação de Peter-Chen Entidade Atributo Atributo único Atributo multivalorado Relacionamento Especialização / Generalização Segundo a proposta de Peter Chen, os atributos podem ser simples, compostos ou multivalorados. A notação utiliza diferentesfiguras geométricas para diferenciar a fun- ção de cada item. O retângulo com o nome entidade dentro exemplifica que, segundo essa © D TC O M © D TC O M 49Introdução a Banco de Dados notação, uma entidade do banco de dados é representada por um retângulo. O círculo oval representa um atributo, o losango representa um relacionamento, e assim por diante. Segundo o exemplo que citamos, um atributo simples seria o nome do cliente. Já o endereço de uma fi lial é um atributo composto por possuir outros atributos. Um atributo mul- tivalorado são os fi lhos de um cliente, no qual o mesmo atributo pode conter vários valores. Biografia Peter Chen foi o criador do modelo ER, foi professor da Louisiana State University (LSU), doutor pela universidade de Harvard e pesquisador renomado na área de Banco de Dados. O s relacionamentos possuem cardinalidades que identificam o quanto uma entidade se relaciona com a outra. No exemplo anterior, um cliente é atendido por uma única filial enquanto uma filial pode atender vários (n) clientes. As cardinalidades identificam as rela- ções entre as entidades, essas podem ser: um-para-um (1:1), um-para-n (1:n), n-para-n (n:n) ou n-para-um (n:1). A especialização é o afunilamento de uma entidade, por exemplo: uma PF é uma especialização de Cliente, enquanto cliente é uma generalização de PF ou PJ. Uma gene- ralização/especialização pode ser parcial ou total. Na total, o item generalizado não possui atributos, enquanto na parcial podem existir instâncias do item geral, sem que exista uma especialização. 2.2.4. Modelo Orientado a Objetos Os bancos de dados orientados a objetos foram desenvolvidos para suprir as limita- ções de armazenamento e representação semântica usadas no modelo relacional. Um banco de dados orientado a objetos é um banco de dados no qual cada infor- mação é armazenada na forma de objetos, ou seja, ele utiliza a estrutura de dados deno- minada orientação a objetos, a qual permeia as linguagens mais modernas. Esse tipo de modelo se tornou comercialmente viável em 1980. Existem dois fatores principais que levam à adoção da tecnologia de banco de dados orientados a objetos. O primeiro é que, em um banco de dados relacional, é difícil manipu- lar dados complexos. Esta dificuldade se dá porque o modelo relacional se baseia menos no senso comum relativo ao modelo de dados necessário ao projeto e mais nas contingências Introdução a Banco de Dados50 práticas do armazenamento eletrônico. O segundo fator é que os dados são, geralmente, manipulados pela aplicação escrita, utilizando linguagens de programação orientada a objetos. Os modelos orientados a objetos permitem raciocinar sobre problemas usando modelos organizados em torno de conceitos do mundo real. Os objetos fornecem um nível de abstração adequado, o contraste com a programação estruturada, em que os dados e o comportamento estão bastante desligados. 2.3. Nível de abstração Aqui veremos os diferentes níveis de abstração para concepção dos bancos de dados, além da importância dos diferentes níveis de abstração para melhor visualização do pro- blema. Iremos detalhar o esquema conceitual ou lógico, responsável por modelar o pro- blema do mundo real para o mundo computacional. O esquema físico, responsável por mapear os conceitos do modelo conceitual de acordo com as restrições do banco de dados escolhido e, por fim, o esquema externo ou nível de visão do usuário, responsável por permitir que o usuário interaja com o mundo computacional de forma mais simples. Muitos profissionais da área de banco de dados pulam a etapa de construção do modelo conceitual e já partem para o modelo físico, que é dependente do banco de dados utilizado. A seguir abordaremos a importância do esquema conceitual. 2.3.1. Esquema conceitual ou lógico Ao pular a etapa do modelo conceitual, elaborando diretamente o modelo físico, os profissionais da área de bancos de dados acabam desenvolvendo modelos altamente dependentes do ambiente onde são implementados. Isso é um ponto negativo, pois com a diversidade de bancos de dados e a constante evolução e surgimento de novos, quanto mais genérico é um modelo, mais adaptável ele será. O modelo conceitual deve se aproximar ao máximo do ambiente que está sendo modelado, devendo ser independente da tecnologia utilizada. Nesse tipo de modelo, é pos- sível focar esforços em mapear o negócio e deixar as especificações da tecnologia que vai ser utilizada para um próximo passo. Esse tipo de modelagem permite que um único modelo seja utilizado em futuras modelagens específicas para cada tecnologia (banco de dados), permitindo gerar vários outros modelos e manter a consistência com as regras do negócio que foram definidas. 51Introdução a Banco de Dados Além do que foi dito, há autores que descrevem o modelo conceitual e lógico como sendo artefatos distintos, geralmente em sistemas mais complexos essa separação é necessária. Nesse tipo de abordagem, a modelagem lógica já leva em consideração o para- digma a ser utilizado: se o modelo relacional, noSQL, orientado a objetos, dentre outros. Nessa linha de raciocínio o modelo lógico já contém informações bem mais específicas do que o conceitual. 2.3.2. Esque ma físico O esquema físico é a forma de representação de um banco de dados no nível de abs- tração visto pelo usuário do Sistema Gerenciador de Bancos de Dados (SGBD). Assim, o esquema físico depende do SGBD que está sendo utilizado. Ademais, no modelo físico são detalhados os componentes da estrutura física do banco de dados. Isso inclui as tabelas que farão parte do banco de dados, os atributos das tabelas, os tipos dos atributos, chaves primárias e estran- geiras, dentre outras características. O projeto físico do banco de dados é a implementação do modelo lógico em um Sis- tema Gerenciador de Banco de Dados especí- fico, usando sua sintaxe e especificidades. Como exemplos de bancos de dados relacionais, podemos citar o PostGreSQL (POSTGRESQL, 2018) e SQLServer (SQLSERVER, 2018). A imagem a seguir ilustra o processo de construção de um banco de dados. gestão software software sistema sistema dados tecnologia banco de dados SGBD © B ak ht ia r Z ei n, S hu tt er st oc k. (A da pt ad o) . © a lp ha sp ir it , S hu tt er st oc k. Introdução a Banco de Dados52 A partir do modelo físico, estamos prontos para criar o banco de dados. As informa- ções nesse modelo serão convertidas nas estruturas de mais baixo nível de implementa- ção do banco de dados. Após isso, o banco de dados estará apto a receber os dados para armazenamento. 2.3.3. Esquema externo ou nível de visão do usuário O nível de visão de usuário é a abstração que o usuário do banco de dados irá utilizar. Por exemplo, para administrar os bancos de dados PostGreSQL geralmente se faz uso da ferramenta gráfica chamada de PGAdmin, exibida na imagem a seguir. Na interface gráfica é possível criar e remover bancos de dados, criar tabelas, definir atributos, tipos de atribu- tos, relações e gerenciar todos os demais objetos dos bancos de dados. Interface gráfico do PGAdmin III Fonte: PGAdmin, 2018. Além da interface gráfica, também é possível fazer todas as operações que descreve- mos utilizando a linha de comando. Vamos ao exemplo de criar uma tabela chamada Aluno, no qual essa tabela deve ter dois atributos, CPF e Nome. O nome é um atributo comum, logo não é uma boa escolha para uma chave primária, ou seja, podem haver vários nomes iguais. Já o CPF é um identificador único, ou seja, só pode cada CPF só estará incluído no banco de dados uma vez, pois representa uma única pessoa. 53Introdução a Banco de Dados Comando para criar a tabela: CREATE TABLE “Aluno” { “CPF” INT NOT NULL, “Nome” VARCHAR (120), CONSTRAINT “PK_Aluno” PRIMARY_KEY (“CPF”) }; Segundo o SQL ANSI, o comando CREATE TABLE seguido do nome da tabela entre aspas é o responsável
Compartilhar