Banco de dados (Databases) – Introdução

Tempo de leitura: 5 min

Escrito por Celso Kitamura
em 16 de março de 2017

Entre para o Grupo VIP e fique sabendo antes das novidades

Junte-se à nossa comunidade de App Devs que estão transformando o mundo

100% livre de spam.

Compartilhe agora mesmo:

Banco de dados (Databases) – Introdução

Seja ele local ou remoto, o banco de dados é um importante componente do nosso aplicativo. É nele que conseguimos persistir as informações que nosso aplicativo precisa para funcionar.

Podem ser dados de cadastro, preferências, configurações, etc. Dificilmente iremos construir um aplicativo que não precise armazenar algum tipo de informação.

O termo veio do inglês databank, que depois foi alterado para database. Acharam que o novo nome era mais apropriado para definir um banco de dados.

Banco de dados é definido como uma coleção de dados persistentes, ou seja, os dados continuam lá mesmo sem energia para alimentar o servidor/máquina onde estão armazenados. Diferente da memória RAM, por exemplo, que é limpo toda vez que desligamos o aparelho.

 

Banco de dados plano (flat file)

O modelo plano (ou tabular) consiste de matrizes simples, bidimensionais, compostas por elementos de dados: inteiros, números reais, etc.

Também conhecido pelo seu nome em inglês, flat file, que significa arquivo plano.

É um grande “tabelão” dentro de um arquivo. Existe muita redundância de dados (informação repetida).

Pouco utilizada hoje em dia por não ser prático (ocupa mais espaço) e a busca de dados demora muito dependendo da quantidade de dados armazenados.

Banco de dados relacional

Por conta da redundância de informações e do espaço ocupado, logo começaram a aparecer alternativas a este modelo.

É aí que entra o modelo mais utilizado atualmente: o banco de dados relacional.

Estrutura hierárquica

Na década de 1960, a IBM desenvolveu uma estrutura hierárquica utilizada nos primeiros mainframes DBMS (Data Base Management System – Sistemas Gerenciadores de Banco de Dados). As relações entre registros formavam um modelo em árvore. Esta estrutura é simples, mas inflexível, pois permite apenas uma relação um-para-muitos.

O IBM Information Management System (IMS) e o RDM Mobile são alguns exemplos de banco de dados hierárquicos.

Neste tipo de banco de dados, uma coleção de registros que são conectados entre si por meio de ligações.

Banco de dados Hierárquico

Banco de dados Hierárquico

Estrutura em rede

A estrutura em rede é uma variação particular do modelo hierárquico.

Elimina o conceito de hierarquia e permite que um mesmo registro esteja envolvido em várias associações.

 

Estrutura relacional

A estrutura hierárquica funciona bem para mostrar o organograma de perfil de trabalho de uma corporação. Mas se um único funcionário reporta a mais de um gerente começaremos a ter problemas.

Assim, começaram os estudos em estruturas de banco de dados que permitiriam diferentes tipos de relações. Este tipo de estrutura deveria permitir mapeamento de um-para-muitos.

Que veio a ser conhecido como Sistema de Gerenciamento de Banco de Dados Relacional (Relational Database Management System – RDBMS): uma coleção de dados com relacionamentos predefinidos entre si.

O modelo relacional é uma teoria matemática desenvolvida por Edgar Frank Codd para descrever como os banco de dados devem funcionar. Ele propôs as 12 leis do modelo relacional. Estas leis serviram de base para a criação dos softwares de banco de dados relacionais, apesar da grande maioria não implementar as 12 leis ao pé da letra.

Existem várias chaves que podem nos ajudar a mesclar diferentes conjuntos de dados neste tipo de banco de dados. Esse tipo de armazenamento de dados otimiza o espaço em disco ocupado sem comprometer os detalhes dos dados.

Banco de dados Relacional

Banco de dados Relacional

Banco de dados NoSQL

NoSQL é freqüentemente conhecido como “Not Only SQL”.

Quando perceberam que o texto não estruturado transporta toneladas de informações que não podemos analisar usando RDBMS, começaram estudos de maneiras de armazenar esses conjuntos de dados. Qualquer coisa que não é RDBMS hoje é vagamente conhecida como NoSQL. Depois das redes sociais este tipo de banco de dados ganhou importância no mercado e tornou-se comum na indústria.

São bancos de dados não relacionais de alto desempenho.

Os bancos de dados NoSQL usam diversos modelos de dados, incluindo documentos, grafos, chave-valor e colunares.

Orientado a documentos

Neste tipo de banco de dados, o conceito de “documento” é: informação encapsulada e codificada em alguns formatos padrão. Podemos utilizar XML, YAML, JSON, etc.

Estes documentos são endereçados através de uma chave exclusiva que o representa.

Este tipo de banco de dados também oferece uma API ou linguagem de consulta que recupera documentos com base em seu conteúdo.

Exemplos: MongoDb, CouchDB, etc

Tipo chave-valor

Este tipo de banco de dados utiliza uma matriz associativa como modelo de dados.

Os dados são representados como uma coleção de pares chave-valor (key-value), de forma que cada chave é única e aparece no máximo uma vez na coleção.

Este modelo é um dos modelos de dados mais simples, e modelos de dados mais ricos são frequentemente implementados como uma extensão do mesmo.

Exemplos: ArangoDB, InfinityDB, etc.

Banco de dados tipo Chave-Valor

Banco de dados tipo Chave-Valor

Orientado a colunas

Os bancos de dados orientado a colunas armazenam dados em famílias de colunas como linhas que têm muitas colunas associadas a uma chave. As famílias de colunas são grupos de dados relacionados que são frequentemente acessados em conjunto.

Cada família de colunas pode ser comparada a um contêiner de linhas em uma tabela RDBMS onde a chave identifica a linha e a linha consiste em várias colunas. A diferença é que várias linhas não precisam ter as mesmas colunas e colunas podem ser adicionadas a qualquer linha a qualquer momento sem precisar adicioná-la a outras linhas.

Exemplos: Hadoop, Cassanda, etc.

Banco de dados Orientado a Colunas

Banco de dados Orientado a Colunas

Orientado a grafos

Este tipo de banco de dados é projetado para dados cujas relações são bem representadas como um gráfico consistindo de elementos interligados com um número finito de relações entre eles. Os tipos de dados podem ser relações sociais, ligações de transportes públicos, roteiros ou topologias de rede.

Exemplos: Neo4J, Infinite Graph, etc.

Banco de dados Orientado a Grafos

Banco de dados Orientado a Grafos

Concluindo

Por enquanto vamos focar nossos estudos em banco de dados relacionais, pois atualmente é o modelo mais utilizado. Porém os banco de dados NoSQL estão ganhando terreno rapidamente pois tratam melhor uma grande quantidade de dados, característica importante para aplicações Big Data.

É muito importante para um desenvolvedor de aplicativos entender de banco de dados. Não precisa ser um expert, mas precisamos de um conhecimento de nível intermediário para conseguirmos modelar minimamente bem a camada de dados de nossos softwares.

E para receber um aviso quando os próximos artigos forem publicados, se cadastre na lista VIP do Celso!

Compartilhe agora mesmo:

Comece pelo e-book GRATUITO (Por Tempo Limitado)

5 Passos Para Desenvolver Alexa Skills

Se você não sabe por onde começar, este e-book te mostra os passos para ser um desenvolvedor de skills de sucesso.

QUERO CRIAR SKILLS PARA ALEXA!
100% livre de spam.

Você vai gostar também:

Para enviar seu comentário, preencha os campos abaixo:

Deixe uma resposta


*


*


Seja o primeiro a comentar!

Entre para o Grupo VIP e fique sabendo antes das novidades

Junte-se à nossa comunidade de App Devs que estão transformando o mundo

100% livre de spam.

Damos valor à sua privacidade

Nós e os nossos parceiros armazenamos ou acedemos a informações dos dispositivos, tais como cookies, e processamos dados pessoais, tais como identificadores exclusivos e informações padrão enviadas pelos dispositivos, para as finalidades descritas abaixo. Poderá clicar para consentir o processamento por nossa parte e pela parte dos nossos parceiros para tais finalidades. Em alternativa, poderá clicar para recusar o consentimento, ou aceder a informações mais pormenorizadas e alterar as suas preferências antes de dar consentimento. As suas preferências serão aplicadas apenas a este website.

Cookies estritamente necessários

Estes cookies são necessários para que o website funcione e não podem ser desligados nos nossos sistemas. Normalmente, eles só são configurados em resposta a ações levadas a cabo por si e que correspondem a uma solicitação de serviços, tais como definir as suas preferências de privacidade, iniciar sessão ou preencher formulários. Pode configurar o seu navegador para bloquear ou alertá-lo(a) sobre esses cookies, mas algumas partes do website não funcionarão. Estes cookies não armazenam qualquer informação pessoal identificável.

Cookies de desempenho

Estes cookies permitem-nos contar visitas e fontes de tráfego, para que possamos medir e melhorar o desempenho do nosso website. Eles ajudam-nos a saber quais são as páginas mais e menos populares e a ver como os visitantes se movimentam pelo website. Todas as informações recolhidas por estes cookies são agregadas e, por conseguinte, anónimas. Se não permitir estes cookies, não saberemos quando visitou o nosso site.

Cookies de funcionalidade

Estes cookies permitem que o site forneça uma funcionalidade e personalização melhoradas. Podem ser estabelecidos por nós ou por fornecedores externos cujos serviços adicionámos às nossas páginas. Se não permitir estes cookies algumas destas funcionalidades, ou mesmo todas, podem não atuar corretamente.

Cookies de publicidade

Estes cookies podem ser estabelecidos através do nosso site pelos nossos parceiros de publicidade. Podem ser usados por essas empresas para construir um perfil sobre os seus interesses e mostrar-lhe anúncios relevantes em outros websites. Eles não armazenam diretamente informações pessoais, mas são baseados na identificação exclusiva do seu navegador e dispositivo de internet. Se não permitir estes cookies, terá menos publicidade direcionada.

Visite as nossas páginas de Políticas de privacidade e Termos e condições.

Importante: Este site faz uso de cookies que podem conter informações de rastreamento sobre os visitantes.
Criado por WP RGPD Pro