Prévia do material em texto
Grupo SER Educacional | Tecnologias e Linguagens de Banco de Dados 1 Diretor Executivo DAVID LIRA STEPHEN BARROS Direção Editorial ANDRÉA CÉSAR PEDROSA Projeto Gráfico MANUELA CÉSAR DE ARRUDA Autor JOÃO DANILO NOGUEIRA Desenvolvedor CAIO BENTO GOMES DOS SANTOS O Autor João Danilo Nogueira Olá. Meu nome é João Danilo. Sou graduado em Ciência da Computação pela Faculdade Grande Fortaleza (FGF) e amo programar. Atualmente, o foco de minha expertise é na área de gerenciamento de projetos, teoria dos números, RSA e criptografia. Vai ser um prazer enorme ajudar VOCÊ a se tornar um excelente desenvolvedor de software ou administrador de banco de dados. Conte comigo para lhe ajudar nessa trajetória rumo ao seu desenvolvimento profissional! Muito sucesso para você. JOÃO DANILO NOGUEIRA “ Iconográficos Olá. Meu nome é Manuela César de Arruda. Sou o responsável pelo projeto gráfico de seu material. Esses ícones irão aparecer em sua trilha de aprendizagem toda vez que: INTRODUÇÃO para o início do desenvolvimento de uma nova competência; DEFINIÇÃO houver necessidade de se apresentar um novo conceito; NOTA quando forem necessários observações ou complementações para o seu conhecimento; IMPORTANTE as observações escritas tiveram que ser priorizadas para você; EXPLICANDO MELHOR algo precisa ser melhor explicado ou detalhado; VOCÊ SABIA? curiosidades e indagações lúdicas sobre o tema em estudo, se forem necessárias; SAIBA MAIS textos, referências bibliográficas e links para aprofundamento do seu conhecimento; REFLITA se houver a necessidade de chamar a atenção sobre algo a ser refletido ou discutido sobre; ACESSE se for preciso acessar um ou mais sites para fazer download, assistir vídeos, ler textos, ouvir podcast; RESUMINDO quando for preciso se fazer um resumo acumulativo das últimas abordagens; ATIVIDADES quando alguma atividade de autoaprendizagem for aplicada; TESTANDO quando o desenvolvimento de uma competência for concluído e questões forem explicadas; Sumário 1 FUNCIONALIDADES DOS SGBDS ........................................................................... 8 1.1 O que é um SGBD? ............................................................................................ 9 1.2 História dos SGBDs ........................................................................................... 9 1.3 Funcionalidades de um SGBD ........................................................................... 12 1.3.1 Controle de acessos concorrentes ........................................................ 14 1.3.2 Política de permissões e restrições de acesso a dados ........................... 15 1.3.3 Rastreabilidade dos dados ................................................................... 15 1.3.4 Backup e Restore ................................................................................ 16 1.3.5 Interface interativa ............................................................................. 16 Considerações Finais ............................................................................................ 18 Atividades de Autoaprendizagem .......................................................................... 18 Questionário Avaliativo ........................................................................................ 18 Bibliografia.......................................................................................................... 19 Trilha de Aprendizagem Olá. Meu nome é Andréa César. Sou responsável pela direção editorial deste livro didático e de todos os demais recursos relacionados com a sua trilha de aprendizagem. Você está iniciando seus estudos sobre TECNOLOGIAS E LINGUAGENS DE BANCO DE DADOS, e o nosso objetivo é auxiliar você no desenvolvimento das competências necessárias ao seu exercício profissional. Para isto, distribuímos os conteúdos didáticos deste livro em quatro semanas de estudo, onde, em cada uma delas, haverá uma competência a ser construída. Cada uma dessas competências será desenvolvida por meio de quatro atividades de estudo, que podemos chamar de “aulas”. Em cada aula, você terá uma introdução ao tema abordado, os objetivos a serem alcançados, uma atividade de autoaprendizagem proposta e uma lista de exercícios a serem respondidos. Quer saber quais serão as competências que você irá desenvolver ao longo dessas quatro semanas de estudo? Então vamos a elas: 1. Adquirir uma visão geral sobre os SGBDs disponíveis no mercado, suas funcionalidades, ambientes e linguagens de manipulação de banco de dados. 2. Instalar e configurar servidores de banco de dados, atentando para os aspectos relacionados à segurança e desempenho. 3. Criar, formatar e atualizar bancos de dados em um SGBD. 4. Gerar consultas, procedimentos, gatilhos e visões de bancos de dados em um SGBD. Ao longo desta semana iremos desenvolver a competência de número: 1. Vamos arregaçar as mangas? Ao trabalho! Tecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 7 1ª SEMANA DE ESTUDOS INTRODUÇÃO: ocê sabe o que é um SGBD? Ao longo desta nossa primeira etapa de estudos vamos começar a mergulhar no universo dos sistemas gerenciadores de banco de dados, compreendendo as funcionalidades típicas desses softwares, seus ambientes de gerenciamento, suas linguagens de manipulação e atualização de banco de dados, além de conhecermos seus principais modelos e arquiteturas disponíveis no mercado. Preparado para uma viagem rumo ao conhecimento? Então, aperte o cinto e boa viagem. OBJETIVOS: Ao término do desenvolvimento desta semana de estudos, você será capaz de compreender: • as Funcionalidades de um SGBD; • os Ambientes de gerenciamento de banco de dados; • as Linguagens de manipulação de banco de dados; e • os Gerenciadores disponíveis no mercado. Mãos à obra? Conte com a gente! V Tecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 8 1 Funcionalidades dos SGBDs INTRODUÇÃO: Você sabe o que é um SGBD? Esta sigla significa Sistema Gerenciador de Banco de Dados. Os SGBDs são, na realidade, softwares robustos que têm por objetivo servirem de interface entre os programas e os dados armazenados em um servidor. Se não fossem os SGBDs, não seria possível garantir a segurança e a integridade dos dados. Esses sistemas assumem o controle de acesso e atualização das informações armazenadas nos arquivos de dados, que aqui são chamados de tabelas. Além da segurança dos dados, os SGBDs cuidam da integridade referencial das tabelas, ou seja, eles impedem que as tabelas relacionadas entre si tenham dados alterados ou linhas excluídas em desrespeito às regras de negócio programadas em sua estrutura, como por exemplo: deletar um funcionário cadastrado em uma tabela sem antes deletar seus dependentes em outra, e assim por diante. OBJETIVO: Ao término desta aula você será capaz de compreender as funcionalidades de um SGBD. Tecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 9 1.1 O que é um SGBD? Para começarmos a entender realmente o que é um SGBD, precisamos internalizar a ideia de que se trata de um tipo de software muito especial. Dependendo do porte, esse software pode não passar de um mero programa de computador, ou ser exercer a função praticamente de um ambiente operacional que assume o controle de um servidor de rede. 1.2 História dos SGBDs A necessidade de se ter um SGBD vem de longas datas. No princípioda história recente dos computadores, quando os dados deixaram de ser armazenados em cartões perfurados e fitas magnéticas para serem gravados e atualizados dinamicamente em discos magnéticos, os programadores começaram a estabelecer um marco divisor entre processamento de dados em memória e atualização de dados em disco. A sigla SGBD significa “Sistema de Gerenciamento de Banco de Dados – em inglês, pode ser denominado Data Base Management System (DBMS). Os SGBDs são conjuntos de softwares que, operando em sincronismo, conseguem oferecer as funções de gerenciamento de um ou mais bancos de dados ao seu usuário principal, mais conhecido como Administrador de Dados (ou Database Administrator). DEFINIÇÃO Tecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 10 Figura 1 - Os dados passaram a ser processados na CPU e gravados em disco rígido. Fonte: o autor. Com a invenção do disco rígido, as organizações passaram a digitalizar cada vez mais suas informações, estabelecendo um divisor de águas entre a guarda de documentos físicos e digitais. Os bancos foram os pioneiros nessa difícil transição. Até o final da década de 1970, o acervo de informações bancárias era oficialmente guardado em documentos físicos de movimentação de contas correntes. Os extratos bancários eram microfilmados e armazenados em pastas até sua consolidação contábil no final do ano. Ao longo da década de 1980, os dados foram deixando de ter o meio físico como principal forma de armazenagem, até desaparecerem por completo do papel no início da década de 1990. Dados Dados Tecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 11 Figura 2 - Processo de microfilmagem de cheques. Fonte: https://i.ytimg.com/vi/IRJadfEoKhs/maxresdefault.jpg (Acesso em 18/11/2017) Mas o conceito de SGBD, formalmente dito, data de bem antes. Ainda na década de 1960, a IBM1 iniciou uma série de pesquisas sobre rotinas de automação de escritório, quando lançou o primeiro conceito de bancos de dados relacionais . Com este novo conceito, a IBM visava reduzir o trabalho operacional que as empresas despendiam na organização e indexação dos dados. Esse trabalho passou a ser realizado automaticamente por esses softwares, batizados de sistemas de gerenciamento de banco de dados. 1 IBM - International Business Machines, é a mais antiga empresa do segmento de tecnologia da informação em todo o mundo. Também conhecida como a Big Blue, reinou absoluta no mercado da década de 1950 até meados de 1990, quando a Microsoft passou a liderar o segmento dos sistemas operacionais para microcomputadores pessoais, com o Windows 95. Quer visualizar o processo de microfilmagem em vídeo? Então acesse este link: https://youtu.be/IRJadfEoKhs (Acesso em 18/11/2017) ACESSE https://youtu.be/IRJadfEoKhs Tecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 12 Mas foi no início da década de 1980 que uma empresa chamada Oracle inovou o conceito de banco de dados relacional com o lançamento de um SGBD baseado na linguagem padrão para manipulação e atualização de dados, intitulada SQL – Structured Query Language . Com isto, a Oracle, com o seu SGBD denominado Oracle 2, passou a ser a principal concorrente da IBM, que lançou o SQL/DS logo em seguida. Os SGBDs foram sendo aprimorados ao longo da década de 1980. Nesse período houve o surgimento de inúmeros concorrentes para a Oracle e a IBM, começando pela própria Microsoft, que lançou o seu SGBD em 1988, em parceria com a empresa Sybase: o Microsoft SQL Server. Mas foi na década de 1990 que houve os mais significativos avanços dos sistemas de gerenciamento de banco de dados. Um dos marcos mais importantes dessa década foi o lançamento dos primeiros SGBDs de código aberto do mercado, começando com o MySQL em 1995, seguido do PostgreSQL (1997), entre outros. Também a partir da década de 1990, começou uma forte escalada do aumento da capacidade de armazenamento de informações por parte dos SGBDs, saindo da casa dos megabytes (década de 1980) até os terabytes da atualidade. 1.3 Funcionalidades de um SGBD Mas, afinal, para que servem os SGBDs? Por que eles são tão importantes e necessários no mundo da tecnologia da informação? As respostas a esses questionamentos podem ser deduzidas facilmente se voltarmos no tempo, desde a época em que os programadores desenvolviam programas para interagir diretamente com os arquivos de dados. Antigamente, esses profissionais tinham que deter uma lógica de programação bastante apurada, além de um cuidado redobrado com as atualizações dos dados naqueles arquivos. Qualquer deslize poderia ser fatal para efeito da integridade das informações armazenadas. Tecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 13 É para prevenir situações dessa natureza que os SGBDs costumam agir. Se um banco de dados relacional é criado e formatado em um SGBD também relacional, mesmo que o programador esqueça alguns detalhes como este, a integridade dos dados será assegurada, pois o SGBD atua como interface entre o programa e os arquivos de dados (denominados tabelas). É isto que chamamos de integridade referencial. Imagine que um programa precise realizar as seguintes operações a cada vez que um lançamento bancário é efetuado em uma conta corrente: • Debitar ou creditar o valor do lançamento na conta; • Recalcular o saldo da conta com base neste lançamento. Se o programador esquecer de atualizar o saldo da conta corrente após um desses lançamentos, teremos um dado inconsistente em um dos arquivos da base de dados (ContaCorrente). Imaginou o tamanho do problema? EXPLICANDO MELHOR É a propriedade que os SGBDs relacionais têm que garante o respeito às regras de negócio estabelecidas entre as tabelas geradas a partir do modelo de entidade-relacionamento (ER) de um banco de dados. DEFINIÇÃO Tecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 14 Vamos voltar ao tema “Integridade Referencial” mais adiante. Por hora, resta-nos compreender que os SGBDs impõem restrições quanto à atualização indiscriminada em tabelas de acordo com as regras de negócio definidas desde a criação do banco de dados. Antes da criação desse banco de dados existe uma fase denominada “Modelagem de Dados”, onde as entidades de dados (que se transformarão em tabelas) são desenhadas e associadas umas às outras por meio de relacionamentos de 1:1 (um para um), 1:N (um para muitos) ou N:N (muitos para muitos). Mas, será que os SGBDs só servem para isto? Negativo. Existem inúmeras outras funcionalidades de um sistema de gerenciamento de banco de dados, além da garantia da integridade referencial. 1.3.1 Controle de acessos concorrentes Quando muitos usuários acessam e atualizam dados simultaneamente em uma mesma tabela, isso pode gerar dados inconsistentes. Os SGBDs possuem dispositivos que iniciam e fecham uma transação de atualização de dados, evitando que, por exemplo, dois clientes efetuem saques em uma mesma conta corrente a partir de diferentes dispositivos ao mesmo tempo. Se isto ocorrer, o SGBD enfileira essas transações de tal modo que a primeira seja totalmente processada para, somente depois, a segundo o ser. Tecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 15 Figura 3 - Ilustração em referência à segurança da informação. Fonte: https://analistati .com/wp-content/uploads/2009/09/virus-tipos-e-definicoes-610x250.jpg(Acesso em 18/11/2017) 1.3.2 Política de permissões e restrições de acesso a dados Nem todo mundo pode ter acesso a todos os dados de um banco de dados. Os usuários do departamento de RH (Recursos Humanos), por exemplo, podem ter acesso aos dados cadastrais dos clientes de um banco, mas não aos saldos de suas contas correntes. Mas, como podemos informar essa regra de negócio a todos os programadores que trabalham nessa instituição financeira? Isto não é necessário. O próprio SGBD dispõe de recursos para restringir o acesso a cada dado de cada tabela do banco de dados, independentemente da vontade do programador ou de erros ocasionais cometidos na lógica algorítmica desses programas. 1.3.3 Rastreabilidade dos dados Mesmo quando ocorre um “furo” na política de segurança de acesso a dados, como um usuário utilizar a senha de outro a partir de um dispositivo móvel ou de sua própria casa, o SGBD dispõe de meios para rastrear o histórico de acessos e atualizações de cada dado do BD. Na prática, para cada dado, de cada tabela, o SGBD armazena o que chamamos de log, a partir do qual é possível, não apenas descobrir quem alterou o quê, quando e de onde, como também é possível voltar ao status anterior àquela suposta atualização fraudulenta. Tecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 16 1.3.4 Backup e Restore Os SGBDs permitem que os dados de um BD sejam copiados para outro espaço físico, no próprio servidor, em outro servidor ou na nuvem. Esse mecanismo pode ser manual ou automático. Nesta última hipótese, o administrador de dados pode definir rotinas diárias, semanais, mensais, etc, para efetuar o backup de parte ou de todo o banco de dados. De modo análogo, os SGBDs também dispõem de mecanismos de recuperação (ou Restore) de dados, sendo capazes de repor o banco de dados exatamente no mesmo status em que estavam em determinada data e hora. Essa recuperação de dados também pode ser seletiva, ou seja, de uma ou mais tabelas do banco, por exemplo. 1.3.5 Interface interativa Os primeiros SGBDs funcionavam apenas como interface entre programas e dados. Na medida em que esses sistemas foram se aprimorando, suas interfaces foram ficando mais e mais amigáveis, de modo que, atualmente, é possível extrair inúmeros tipos de relatórios e consultas diretamente do SGBD, sem a necessidade de se recorrer a programas ou à inserção de comandos SQL no ambiente de gerenciamento de BD. Alguns SGBDs oferecem recursos de “Assistentes” e tutoriais para gerar informações de alto valor agregado para o próprio usuário final, com gráficos e subtotalizadores bastante amigáveis. Tecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 17 As interfaces dos SGBDs têm se desenvolvido bastante, oferecendo uma experiência de altíssimo valor agregado ao usuário final, como BI – Business Intelligence (inteligência de negócio), que consiste na geração automática de informações provenientes de inteligência artificial. Essas informações são capazes de alertar o cliente final sobre tendências e fenômenos imprevisíveis no universo de suas informações. NOTA Tecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 18 Considerações Finais SAIBA MAIS: Quer se aprofundar nos temas desta aula? Recomendamos o acesso à seguinte fonte de consulta e aprofundamento: Artigo: “Importância do Banco de Dados nas Aplicações”, acessível pelo link: http://web.unipar.br/~seinpar/2015/_include/artigos/Julio_Fern andes_Rocha.pdf (Acesso em 19/11/2017). Atividades de Autoaprendizagem ATIVIDADES: Pronto para consolidar seus conhecimentos? Leia atentamente o enunciado de sua atividade de autoaprendizagem proposta para esta aula. Se você está fazendo o seu curso presencialmente, é só abrir o seu caderno de atividades. Se você estiver cursando na modalidade de EAD (Educação a Distância), acesse a sua trilha de aprendizagem no seu ambiente virtual e realize a atividade de modo online. Você pode desenvolver esta atividade sozinho ou em parceria com seus colegas de turma. Dificuldades? Poste suas dúvidas no fórum de d iscussões em seu ambiente virtual de aprendizagem. Concluiu a sua atividade? Submeta o resultado em uma postagem diretamente em seu ambiente virtual de aprendizagem e boa sorte! Questionário Avaliativo TESTANDO: Chegou a hora de você provar que aprendeu tudo o que foi abordado ao longo desta aula. Para isto, leia e resolva atentamente as questões do seu caderno de atividades. Se você estiver fazendo este curso a distância, acesse o QUIZ (Banco de Questões) em seu ambiente virtual de aprendizagem. http://web.unipar.br/~seinpar/2015/_include/artigos/Julio_Fernandes_Rocha.pdf http://web.unipar.br/~seinpar/2015/_include/artigos/Julio_Fernandes_Rocha.pdf Tecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 19 Bibliografia ROCHA, J. F., & DIAS, J. W. (2015). Importância do Banco de Dados nas Aplicações. Curitiba: UNIPAR. Acesso em 19 de Nov de 2017, disponível em web.unipar.br/~seinpar/2015/_include/artigos/Julio_Fernandes_Roc ha.pdf Tecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 20