Bancos de dados ou bases de dados são conjuntos de arquivos relacionados entre si. Um conjunto de dados corretamente organizados e relacionoados geram a informação.
Se você está iniciando na área de dados, aqui é o começo de tudo o que você precisa saber sobre o assunto.
Antes de seguir com a leitura, faça uma breve reflexão. De que maneira os dados estão presentes em seu dia a dia?
Um banco de dados pode ser descrito como um repositório de dados. Armazenar dados é uma atividade humana que existe desde que a escrita começou ou até antes dela, mas este é um tema que não iremos nos aprofundar neste artigo; ele pode ser aplicado para o resultado de qualquer informação para a atividade de gravação que ocorreu muito antes da era do computador. No entanto, esta descrição é vaga demais para nossos propósitos, e irei refiná-la à medida que avançamos.
A criação de um banco de dados sempre será exigido para a operação de uma empresa. Usarei o termo empresa para designar uma variedade de empreendimentos que variam de uma companhia de transportes, um banco, fabrica de sapatos, um site ou até mesmo para manter o controle de pessoas a quem você quer desejar um feliz aniversário.
É importante frisar que nenhum computador é necessário para a criação da tal base de dados; uma faculdade da década de 1930 teria mantido o mesmo banco de dados em papel. No entanto, a existência de computadores para armazenar e manipular os dados traz expectativas de mudança aos usuários, esperamos armazenar mais dados e fazer um uso mais sofisticado dos mesmos.
O que é um banco de dados?
Um banco de dados é uma coleção organizada de informações - ou dados - estruturadas, normalmente armazenadas eletronicamente em um sistema de computador. Um banco de dados é geralmente controlado por um sistema de gerenciamento de banco de dados (DBMS). Juntos, os dados e o DBMS, juntamente com os aplicativos associados a eles, são chamados de sistema de banco de dados, geralmente abreviados para apenas banco de dados.
Os dados nos tipos mais comuns de bancos de dados em operação atualmente são modelados em linhas e colunas em uma série de tabelas para tornar o processamento e a consulta de dados eficientes. Os dados podem ser facilmente acessados, gerenciados, modificados, atualizados, controlados e organizados. A maioria dos bancos de dados usa a linguagem de consulta estruturada (SQL) para escrever e consultar dados.
Sistemas Gerenciadores de Bancos de Dados
Um sistema de gerenciamento de banco de dados (SGBD) é um agregado de dados, hardware, software, e os usuários que ajudam uma empresa gerenciar seus dados operacionais. A principal função de um SGBD é fornecer métodos eficientes e confiáveis de acesso e a manutenção correta dos dados armazenados em um banco de dados.
Se uma determinada faculdade tem 10.000 estudantes cada ano e cada estudante pode ter cerca de 10 matérias por ano, em seguida, ao longo de 10 anos, o colégio irá acumular pelo menos 1.000.000 registros de notas de matérias. Não será fácil de extrair registros que satisfazem determinados critérios de tal conjunto, e pelos padrões atuais, este conjunto de registros é muito pequena! Dada a preocupação atual de "inflação de notas", uma típica pergunta que possamos tentar responder é, determinar a evolução das médias em cursos introdutórios de programação ao longo de um período de 10 anos. Portanto, é evidente que a recuperação eficiente de dados é uma função essencial de sistemas de base de dados.
A maioria dos SGBDs lidam com vários usuários que tentam acessar simultaneamente vários itens de dados e, com frequência, o mesmo item de dados. Por exemplo, suponha que nós desejamos criar um sistema de registro automático para os alunos. Os estudantes podem cadastrar se em qualquer curso usando terminais ou estações de trabalho. Claro, vamos supor que a base de dados contém informação que descreve a capacidade dos cursos e o número de assentos disponíveis atualmente. Suponha que vários alunos desejam inscrever-se em determinado curso no 1° semestre de 2023. A capacidade do curso é limitado e nem todas as demandas podem ser satisfeitas. Se, digamos, apenas um assento permanece disponível nessa classe, o banco de dados deve tratar estas concorrentes demandas e permitir que apenas um registro possa ser validado.
Hardware para Banco de Dados
Sistemas de gerenciamento de banco de dados são, na maioria dos casos, instalado em computadores de uso geral. Uma vez que as características do hardware influenciam o desenvolvimento dos SGBDs, discutimos alguns dos itens mais importantes destas características.
Para os nossos propósitos, é útil para categorizar a memória do computador em duas classes: de memória interna e memória externa.
Embora em alguns casos a memória interna é permanente, tal como ROM¹, estamos interessados aqui apenas na memória que pode ser alterada por programas. Essa memória é muitas vezes conhecido como RAM². Esta memória é volátil, e qualquer interrupção elétrica faz com que haja perda de dados.
Em contrapartida, discos magnéticos, SSD e fitas são formas comuns de memória externa. Eles são a memória não volátil, e eles mantêm o seu conteúdo para quantidades praticamente ilimitadas de tempo. As características físicas das fitas magnéticas força os a ser acessado sequencialmente, tornando-os úteis para fins de backup, mas não para acesso rápido a dados específicos.
Ao examinar as necessidades de memória de um SGBD, precisamos considerar os seguintes problemas:
• Os dados de um SGBD deve ter uma característica persistente; em outras palavras, os dados devem permanecer disponíveis muito tempo depois de qualquer programa que encerrar seu trabalho. Além disso, os dados devem permanecer inalterados, mesmo que o sistema entre em colapso.
• Um SGBD deve acessar dados a uma taxa relativamente alta.
• Essa grande quantidade de dados precisam ser armazenados e o meio de armazenamento deve ser de baixo custo.
Esses requisitos foram satisfeitos no atual estágio de desenvolvimento tecnológico apenas por discos magnéticos.
¹ROM significa Read Only Memory - sua função é armazenar a informação para leitura. Ex: Disco Rígido (HD).
²RAM significa Random Access Memory - é um hardware de armazenamento randômico e volátil de memória. Isto significa que armazena dados de programas em execução enquanto o computador está ligado.
Sistemas de Banco de Dados
Nós interagimos com sistemas de banco de dados relacionais por meio de linguagens de consulta, popularmente conhecida como SQL. A linguagem de consulta de um DBMS tem duas tarefas principais: definir as estruturas de dados, e para consulta e modificação dos dados. Assim, podemos distinguir entre dois componentes de uma linguagem de pesquisa: o componente de definição de dados e o componente de manipulação de dados, que mais para frente chamaremos apenas por DDL e DML respectivamente.
SQL é uma linguagem de programação usada por quase todos os bancos de dados relacionais para consultar, manipular e definir dados e fornecer controle de acesso. O SQL foi desenvolvido pela primeira vez na IBM nos anos 1970, com a Oracle como principal contribuinte, o que levou à implementação do padrão SQL ANSI; o SQL estimulou muitas extensões de empresas como IBM, Oracle e Microsoft. Embora o SQL ainda seja amplamente usado hoje em dia, novas linguagens de programação estão começando a aparecer.
As principais tarefas de DML (manipulação de dados) são a recuperação de dados e atualização de dados.
A recuperação de dados implica a obtenção de dados armazenados no banco de dados que satisfaz uma determinada especificação formulada pelo usuário em uma consulta. Atualizações de dados incluem modificação de dados, eliminação e inserção.
Programação em linguagens de consulta de DBMS é feito de forma diferente da programação em linguagens de alto nível. O programa típico escrito em C, Pascal, ou PL/SQL implementa diretamente um algoritmo para resolver um problema.
Sendo assim, podemos dizer que uma consulta escrita em uma linguagem de banco de dados é declarativa e não processual.
A tarefa central do DBMS é o gerenciamento de transações. Uma transação é uma sequência de operações no banco de dados (que geralmente consiste de atualizações, com possíveis recuperações) que devem ser executadas na sua totalidade ou não. Este estabelecimento de transações é conhecido como atomicidade. Um exemplo típico inclui a transferência de alunos entre dois registros de salas A e B no banco de dados da faculdade. Tal operação não deve modificar o montante total de alunos na faculdade, o que é uma clara consistência do banco de dados.
A operação consiste na seguinte sequência de operações:
1. Diminuir quantidade de alunos na sala A por x alunos;
2. Aumentar a quantidade de alunos na sala B por x alunos;
Se apenas a primeira operação é executada, um aluno desaparecerá do total de alunos na faculdade. Se apenas o segundo é executado, o total alunos irá aumentar. Em ambos os casos, a consistência da base de dados será comprometida.
Tipicamente, em qualquer momento no tempo, um grande número de transações podem existir no SGBD. O componente de gerenciamento de transação garante que a execução de uma transação não é influenciada pela execução de qualquer outra transação. Esta é a propriedade de isolamento de transações. Finalmente, o efeito de uma transação deve persistir no banco de dados assim que a execução da operação for concluída.
Esta é a propriedade de durabilidade das transações.
Coletivamente, as quatro propriedades fundamentais de operações descritas acima são conhecidas como as propriedades ACID, a sigla de atomicidade, consistência, isolamento e durabilidade.
O software de banco de dados normalmente contém ferramentas de desenvolvimento de aplicativos. O papel dessas ferramentas é facilitar o desenvolvimento de interface de usuário. Eles incluem sistemas de formas, linguagens de programação processuais e não procedurais que integram a consulta de banco de dados com várias interfaces de usuário, etc.
Os usuários de um sistema de banco de dados
A comunidade de usuários de um SGBD inclui uma variedade de indivíduos e entidades organizacionais. Esses usuários são classificados com base nas funções e interesses em acessar e gerenciar os bancos de dados.
Uma vez que um banco de dados é criado, ele é o trabalho do administrador do banco de dados para tomar decisões sobre a natureza dos dados a serem armazenados no banco, o acesso a políticas a serem aplicadas, monitorando e ajustando o desempenho do banco de dados, etc.
Na outra extremidade temos os usuários finais. Estes usuários tem limites aos direitos de acesso, e eles precisam ter o mínimo conhecimento da base de dados. Por exemplo, os usuários finais do banco de dados do sistema de reservas de uma companhia aérea são os agentes de viagens e de vendas. Os usuários finais de um DBMS de um banco são os caixas de banco, os usuários das máquinas ATM, etc.
Uma categoria importante de usuários de SGBDs é composto por programadores de aplicativos. O seu papel é trabalhar dentro DBMS existente e, utilizando uma combinação das linguagens de consulta e linguagens de alto nível, para criar vários relatórios com base nos dados contidos na base de dados. Em alguns casos, escrever programas mais gerais que dependem estes dados.
Tipos de Banco de Dados
Existem muitos tipos diferentes de bancos de dados. O melhor banco de dados para uma organização específica depende de como a organização pretende usar os dados.
Bancos de dados relacionais
Os bancos de dados relacionais se tornaram dominantes na década de 1980. Os itens em um banco de dados relacional são organizados como um conjunto de tabelas com colunas e linhas. A tecnologia de banco de dados relacional fornece a maneira mais eficiente e flexível de acessar informações estruturadas.
Bancos de dados orientados a objetos
As informações em um banco de dados orientado a objetos são representadas na forma de objetos, como na programação orientada a objetos.
Bancos de dados distribuídos
Um banco de dados distribuído consiste em dois ou mais arquivos localizados em sites diferentes. O banco de dados pode ser armazenado em vários computadores, localizados no mesmo local físico ou espalhados por diferentes redes.
Data warehouses
Um repositório central de dados, um data warehouse é um tipo de banco de dados projetado especificamente para consultas e análises rápidas.
Bancos de dados NoSQL
Um NoSQL, ou banco de dados não relacional, permite que dados não estruturados e semiestruturados sejam armazenados e manipulados (em contraste com um banco de dados relacional, que define como todos os dados inseridos no banco de dados devem ser compostos). Os bancos de dados NoSQL se tornaram populares à medida que os aplicativos web se tornaram mais comuns e mais complexos.
Bancos de dados de grafos
Um banco de dados de grafos armazena dados em termos de entidades e os relacionamentos entre entidades.
Bancos de dados OLTP
Um banco de dados OLTP é um banco de dados rápido e analítico projetado para um grande número de transações realizadas por vários usuários.
Esses são apenas alguns dos vários tipos de bancos de dados em uso atualmente. Outros bancos de dados menos comuns são adaptados para funções científicas, financeiras ou outras muito específicas. Além dos diferentes tipos de banco de dados, as mudanças nas abordagens de desenvolvimento de tecnologia e os avanços dramáticos, como a nuvem e a automação, estão impulsionando os bancos de dados em direções totalmente novas. Alguns dos mais recentes bancos de dados incluem
Bancos de dados de código aberto
Um sistema de banco de dados de código aberto é aquele cujo código-fonte é código aberto; esses bancos de dados podem ser bancos de dados SQL ou NoSQL.
Bancos de dados em nuvem
Um banco de dados em nuvem é uma coleção de dados, estruturados ou não estruturados, que residem em uma plataforma de computação em nuvem privada, pública ou híbrida. Existem dois tipos de modelos de banco de dados em nuvem: tradicional e banco de dados como um serviço (DBaaS). Com o DBaaS, as tarefas administrativas e a manutenção são executadas por um provedor de serviços.
Banco de dados multimodelo
Bancos de dados multimodelo combinam diferentes tipos de modelos de banco de dados em um back-end único e integrado. Isso significa que eles podem acomodar vários tipos de dados.
Banco de dados de documentos/JSON
Projetado para armazenar, recuperar e gerenciar informações orientadas a documentos, os bancos de dados de documentos são uma maneira moderna de armazenar dados no formato JSON, em vez de linhas e colunas.
Bancos de dados autônomos
Os bancos de dados independentes mais novos e inovadores (também conhecidos como bancos de dados autônomos) são baseados em nuvem e usam machine learning para automatizar o ajuste de banco de dados, segurança, backups, atualizações e outras tarefas de gerenciamento de rotina tradicionalmente executadas por administradores de banco de dados.
Referências:
Modelagem de dados - https://amzn.to/3xrDuXw
Banco de Dados - Projeto e Implementação - https://amzn.to/3xlwnQc
Introdução a Sistemas de Banco de Dados - https://amzn.to/3U8N1wd
Comments