Baixe o app para aproveitar ainda mais
Prévia do material em texto
CURSO ENGENHARIA ELÉTRICA DISCIPLINA: DESENVOLVIMENTO DE APLICAÇÕES COM BANCO DE DADOS TEMA: 01 – INTRODUÇÃO, ARQUITETURA E AMBIENTE DE PROGRAMAÇÃO TEXTO PARA APOIO AO ESTUDO 1) Introdução e Arquitetura Nosso objetivo nesta aula é fazer uma revisão geral sobre bancos de dados, de modo que tenham os insumos necessários para desenvolver as aplicações envolvendo o uso de bancos de dados. Não temos a pretensão de esgotar o assunto, tendo em vista que vocês já estudaram o assunto em outras disciplinas. Vamos iniciar com uma pergunta: por que é importante armazenar dados em um banco de dados? Antes de respondermos a esta pergunta, vamos pensar na UNICARIOCA, no seu funcionamento cotidiano, se não houvesse sistemas computacionais e, mais ainda, se não houvesse banco de dados. Seria um trabalho imenso lidar com os dados de tantos alunos e funcionários em fichas de papel por exemplo. Portanto, o uso de sistemas computacionais e, mais especificamente de bancos de dados, possibilitam, entre outras coisas, facilitar e agilizar o trabalho. Sem os dados, sistemas computacionais perdem o sentido. É comum estabelecer parâmetros de transmissão, capacidade de processamento e acesso aos dados como forma de comparação de eficiência entre sistemas computacionais. Além disso, a quantidade de dados gerados vem crescendo significativamente. Estamos vivendo a era do denominado Big Data. E com a ascensão de tecnologias como IoT, por exemplo, a quantidade de dados que precisam ser armazenados e, consequentemente, processados aumenta consideravelmente. Mas o que são, efetivamente, bancos de dados? Quais são as vantagens de se utilizar bancos de dados? Há desvantagens? Quais são os tipos de bancos de dados mais utilizados? Como referenciar um dado qualquer no banco de dados? As respostas a estas perguntas nos ajudarão a relembrar os conceitos introdutórios sobre bancos de dados e, portanto, serão nosso ponto de partida no nosso curso. Bancos de dados podem ser entendidos como coleções de tabelas que guardam alguma relação entre si e que são, normalmente, referenciadas, vinculadas ou integradas. Os bancos de dados têm por premissa a possibilidade de recuperação dos dados e, para isso, o banco de dados deve ser bem projetado e organizado, para não comprometer o trabalho de recuperação dos dados. São utilizados softwares específicos denominados Sistemas Gerenciadores de Bancos de Dados (SGBD) para fazer a criação, inserção, armazenamento, edição, recuperação e remoção de dados. Bancos de dados são amplamente utilizados e associados a outras tecnologias em diferentes segmentos como, por exemplo, nos setores financeiro, educacional, industrial, governamental, entre tantos outros. Vamos analisar agora algumas vantagens do uso de bancos de dados. Podemos citar o compartilhamento dos dados, ou seja, a possibilidade de disponibilização dos dados a usuários diferentes. Além disso, com SGBD, minimiza-se a redundância, tendo em vista que objetiva-se que não existam cópias dos dados e, consequentemente, proporciona a diminuição do espaço de armazenamento, reduzindo também o custo do sistema. Pelo fato de não existirem dados duplicados em um SGBD ideal, qualquer alteração em um dado deve ser feita em apenas um local, o que confere maior integridade ao sistema, reduzindo as possibilidades de erros. Se houver dados duplicados, ao se alterar um deles, o outro deverá ser alterado porque, caso contrário, haverá inconsistência dos dados e isso, naturalmente, não deve acontecer. Consequentemente, com dados duplicados, a possibilidade de erro aumenta consideravelmente. Outra característica importante em um SGBD é a padronização: as tabelas, os programas, enfim, seguem a uma padronização, que é muito importante porque diferentes profissionais podem trabalhar em SGBD e, se cada um seguisse suas convenções e convicções, seria desastroso. Certos dados não devem ser acessíveis a qualquer pessoa por questões de segurança da informação. Em relação a possíveis desvantagens, alguém poderia pensar no custo de implementação e manutenção de um SGBD, além da questão da segurança da informação que deve ser levada em conta, especialmente nos dias atuais, com tantas operações comerciais, financeiras, entre outras, realizadas digitalmente. Porém, é importante pensar no custo e na segurança da informação caso não se usem bancos de dados digitais. Imaginem a estrutura necessária para garantir os mesmos serviços sem o uso de bancos de dados digitais. Em relação aos tipos de bancos de dados, é possível desenvolver aplicações em que o banco de dados fique armazenado localmente no computador pessoal. Entretanto, há aplicações com grande quantidade de dados e de acesso a eles que se utilizam outras abordagens como armazenamento em servidores especializados. Imaginem a quantidade de dados envolvidos em todas as ferramentas e usuários do Google. Certamente, o SGBD não faz um uso de um desktop ou notebook para tal tarefa. Além disso, é importante pensar no backup do banco de dados. Imaginem um banco, com as informações de todos os seus clientes armazenadas em um único local. Se houver algum acidente ou incidente, enfim, gerando, por exemplo, a perda dos dados, seria problemático e inviabilizaria o negócio. Em uma situação crítica como essa, o backup, que pode estar até em outro local ou até mesmo em outro estado, é utilizado para que seja possível continuar com os serviços prestados pela instituição. Existem várias ferramentas de bancos de dados, como, por exemplo, MySQL, SQL Lite, Access, Oracle, entre outras. Um banco de dados relacional típico é constituído por tabelas, colunas ou campos, tipos de dados, regras, chaves primárias, chaves estrangeiras, índices, entre outros. Vamos descrever um pouco mais sobre cada um destes itens. ● Tabelas: contém os dados; ● Colunas ou campos: cada campo fornece alguma informação que complementa o dado. Como exemplos de Campos em um banco de dados que armazene os dados dos alunos da UNICARIOCA, podemos citar o Nome, Endereço, Telefone, Email, Curso, entre outros. Cada Coluna ou Campo deve ser único; ● Tipos de dados: cada Campo tem apenas um único tipo de dado. Por exemplo, um campo denominado Nome deve ter um tipo de dado String de caracteres; ● Regras: contribui para evitar que os dados que são inseridos estejam dentro do esperado. Por exemplo, um campo denominado Idade não pode aceitar valores negativos; ● Chave Primária (PK): permite que os dados sejam individualizados. Por exemplo, considere o banco de dados da UNICARIOCA. Para que cada pessoa seja única no banco de dados, não é uma boa estratégia selecionar o nome para individualizar os dados porque podem ter homônimos. Por outro lado, podemos escolher o CPF porque ele deve ser único para cada pessoa, ou seja, não devem existir duas pessoas com o mesmo número de CPF; ● Chaves Estrangeiras (FK): são colunas de uma tabela que fazem referência às chaves primárias de outras tabelas; ● Índices: podem contribuir para agilizar as consultas, por exemplo. Antes de darmos sequência, vamos traçar um paralelo entre o uso de sistemas de arquivose SGBD. O Sistema Operacional interage com o sistema de arquivos, que é constituído por pastas e arquivos, como ilustra a Figura 1. Figura 1 - Ilustração de sistemas de arquivos. Com o uso de sistemas de arquivos, o acesso e gerenciamento dos dados é de responsabilidade dos programas aplicativos. Por outro lado, quando se utiliza banco de dados, o SGBD funciona como uma interface entre os programas aplicativos e os dados, ou seja, o acesso e gerenciamento dos dados é feito pelo SGBD e os programas aplicativos não acessam os dados diretamente. A Figura 2 ilustra o comparativo destas duas abordagens. Figura 2 - Comparativo entre uso de sistema de arquivos e SGBD. A Tabela 1 ilustra mais detalhes deste comparativo: Tabela 1 - Comparativo entre sistema de arquivos e SGBD. No que diz respeito à arquitetura, a Figura 3 ilustra, de forma geral, os constituintes envolvendo um SGBD. São considerados quatro atores: usuários simples, programadores de aplicações, usuários ocasionais, administrador da base de dados. Os usuários simples são aqueles que utilizam os programas de aplicação que fazem uso do banco de dados. Os programadores de aplicações, como o próprio nome indica, desenvolvem as aplicações que serão utilizadas pelos usuários fazerem acesso ao banco de dados. Os usuários ocasionais são aqueles que fazem consultas ocasionais. Por fim, tem o administrador do banco de dados. É importante destacar o papel do Gerenciador da Base de Dados no SGBD porque o acesso dos usuários e programadores de aplicações aos arquivos de dados passa por ele. Figura 3 - Ilustração da arquitetura de um SGBD. Outro aspecto interessante diz respeito às ferramentas utilizadas. Quais são mais populares? A Figura 4 mostra o gráfico de popularidade de algumas ferramentas, obtido em Fevereiro de 2020. Observe que Oracle, MySQL e Microsoft SQL Server estão nas primeiras posições, próximas umas das outras, mas relativamente distantes de PostgreeSQL e MondoDB, que vêm na sequência. Entretanto, quando se aprende a teoria conceitual e, ainda, aplicá-la em alguma ferramenta, a eventual necessidade de utilização de outra abordagem se torna mais facilitada. Figura 4 - Popularidade de ferramentas utilizadas em SGBD. 2) Ambiente de Desenvolvimento Existem várias possibilidades de desenvolvimento com banco de dados: Para o seu estudo, você poderá utilizar qualquer uma delas. Entretanto, para os trabalhos a serem avaliados como atividades em sala de aula e APS, será padronizado o NetBeans como ferramenta de desenvolvimento. Então, para evitar qualquer problema de eventuais incompatibilidades, sugiro utilizá-lo pelo menos para os trabalhos mencionados. Nós usaremos a estrutura do laboratório da UNICARIOCA. Entretanto, é importante que vocês ganhem desenvoltura sobre a instalação destes programas, assim como do MySQL. Então, é recomendável que vocês instalem e integrem o NetBeans e o MySQL em seus computadores pessoais. Na próxima aula, faremos uma revisão de SQL.
Compartilhar