# data[].attributes.body
Começamos fazendo uma breve introdução sobre banco de dados e em seguida um resumo com base no artigo que o professor enviou, outra atividade foi uma junção de dados de minis tabelas para termos uma familiarização com a "Organização de Dados".

# data[].attributes.attachment_link.readable_text
Seja na Programação ou na área de dados, como na Engenharia de Dados e na Ciência de Dados, o uso de bancos de dados é fundamental.

Por Marzio Aguiar

Tipos de Sistemas de Banco de Dados

Os sistemas de banco de dados são fundamentais para armazenar, recuperar e gerenciar dados em diversas aplicações. Eles variam amplamente, cada um projetado com características únicas para atender a diferentes necessidades de negócios e tecnológicas.

Relacionais: Estes sistemas armazenam dados em tabelas interconectadas que permitem relacionamentos complexos. São ideais para situações que exigem integridade de transações e consultas complexas.

Não Relacionais (NoSQL): Flexíveis em termos de estrutura de dados, estes sistemas são ótimos para lidar com grandes volumes de dados distribuídos e para aplicações que não necessitam de estruturas rígidas de tabelas.

Distribuídos: Projetados para funcionar em múltiplos locais ou nodos, estes sistemas são eficientes para organizações com dados espalhados geograficamente, oferecendo alta disponibilidade e escalabilidade.

Orientados a Objetos: Integrando as capacidades de bancos de dados com a programação orientada a objetos, estes sistemas são eficazes em lidar com conjuntos de dados complexos e inter-relacionados.

Componentes Fundamentais de um Sistema de Banco de Dados

Cada sistema de banco de dados possui uma estrutura composta por componentes essenciais que garantem sua funcionalidade e eficiência.

Motor de Banco de Dados: É o núcleo do sistema, responsável por armazenar, processar e proteger os dados. Executa as operações de leitura e escrita no disco, mantendo a integridade e o desempenho.

Linguagem de Consulta: Como SQL para bancos de dados relacionais e variantes para NoSQL, é a ferramenta usada para fazer consultas e interagir com os dados armazenados.

Sistema de Gerenciamento de Banco de Dados (SGBD): Um software que permite aos usuários criar, manter e controlar o acesso aos dados, oferecendo funcionalidades como backup, recuperação e segurança.

Armazenamento de Dados: Compreende as estruturas físicas e lógicas onde os dados são efetivamente armazenados, podendo variar em complexidade e formato dependendo do tipo de banco de dados.

Interface de Usuário: Facilita a interação entre os usuários e o sistema de banco de dados, podendo variar de simples linhas de comando a interfaces gráficas complexas e intuitivas.

Principais SGBDs do mercado

Como há centenas de SGBDs disponíveis, qualquer ranking sem base seria arbitrário. Então, vamos nos basear em um ranking popular, que todos os meses classifica SGBDs mais usados no mundo .

O ranking se chama db-engines.com. Os SGBDs que comentaremos abaixo são os 10 sistemas mais usados em julho de 2022. Se você acessar o ranking em outro momento, a lista poderá ser diferente.

A Oracle é uma grande corporação de tecnologia que hoje oferece diversos serviços em nuvem, desde Inteligência Artificial até Analytics e BI. Porém, começou e ficou famosa por causa do Oracle Autonomous Database ou apenas Oracle Database, o banco de dados mais usado do mundo.

Lançado em 1979 e em aprimoramento até a atualidade, é um banco de dados que cresceu e é muito utilizado em conjunto com a linguagem de programação Java, para aplicações robustas, como bancárias e financeiras.

É um banco de dados relacional em sua origem (baseado em tabelas)mas que hoje já é multi-modelo. Utiliza uma linguagem chamada PL/SQL (linguagem procedural projetada para incluir instruções SQL em sua sintaxe) como linguagem de consulta e manipulação de dados.

MySQL é um SGBD muito famoso e usado por causa de sua integração fácil com a linguagem de programação PHP por esta dupla, MySQL e PHP, estar na origem do WordPress, o sistema de gerenciamento de conteúdo mais popular do mundo.

É um banco de dados relacional gratuito e fácil de usar, que usa SQL, porém com um ótima capacidade e desempenho para muitas aplicações de websites e webapps. MySQL nasceu como uma solução de código aberto e que hoje também pertence à Oracle.

Um "fork" ou desdobramento seu deu origem a outro banco de dados parecido e popular, chamado MariaDB.

Microsoft SQL Server é um banco de dados lançado em 1989 e que se ramificou em diversas versões, as quais atendem diversos públicos. Há desde versões para pequenas aplicações até outras para aplicações escaláveis de Internet das Coisas (IoT), por meio da Azure, a nuvem da Microsoft.

O SGBD usa um dialeto da linguagem SQL, chamado T-SQL. Por ser uma solução corporativa e paga, como o Oracle Database, oferece uma gama de benefícios a empresas, como maior segurança.

4. PostgreSQL

PostgreSQL é um banco de dados de código aberto e gratuito, mas bastante poderoso. É um banco de dados de modelo objeto-relacional com características como confiabilidade, robustez e desempenho eficiente.

O SGBD tem mais de 30 anos e surgiu na Universidade da Califórnia, Berkeley. Usa SQL como linguagem de consulta e é o banco de dados padrão do macOS Server. É versátil e robusto tanto para aplicações pequenas como para aquelas que requerem acessos massivos a dados.

MongoDB é o banco de dados do tipo NoSQL mais usado no mundo. É NoSQL porque não se baseia no conceito de tabelas para armazenar dados, mas, sim, no modelo de documentos (armazena dados em forma de textos). É de código aberto, gratuito e multiplataforma.

Mais do que isso, MongoDB usa a linguagem de programação Javascript para consultas, a mais utilizada para construir aplicações web. Isso torna MongoDB uma escolha natural, veloz e versátil para aplicativos e sites com acessos massivos, principalmente voltados a conteúdos, como redes sociais, plataformas educacionais, entre outros.

Redis é outro banco de dados NoSQL no ranking do db-engines.com. É o banco de dados de modelo chave-valor mais usado atualmente.

Bancos de dados desse tipo funcionam como dicionários, em que há uma chave e uma série de outros dados (valores) associados a ela. Isso permite muita eficiência na recuperação das informações.

Redis funciona de maneira distribuída (em várias máquinas) e armazena os dados em memória e não em disco, o que o torna extremamente veloz.

Outro SGBD corporativo, o IBM DB2 é uma família de produtos de gerenciamento de dados da IBM, outra gigante do setor. O DB2 iniciou como um banco de dados relacional, mas hoje incorpora soluções de outros modelos, como objeto-relacional e NoSQL.

Também tem como diferenciais escalabilidade, segurança, flexibilidade, entre outros atributos. É uma solução paga, normalmente usada por grandes empresas.

Elasticsearch é um dos "bancos de dados" mais diferentes entre todos os já vistos. Na verdade, não é como um banco de dados no sentido tradicional, mas um mecanismo de pesquisa de texto completo e em tempo real. Por isso, também é classificado como um SGBD.

Tem uma grande capacidade de indexar quaisquer tipos de textos, quebrá-los em partes menores chamadas tokens e permitir buscas inteligentes e rápidas neles (como a busca do Google, por exemplo).

É a solução mais usada do tipo no mundo e oferecida como uma API ( Application Interface Programming), um software que pode ser usado em conjunto com outros bancos de dados, por exemplo.

Muita gente não consideraria o Microsoft Access um SGDB "de verdade". No entanto, ele continua sendo uma solução muito utilizada.

O Access, como é popularmente conhecido, é um aplicativo da família Office, da Microsoft, muito acessível a pessoas de negócios e a leigos, que não precisam saber programar e podem usar a interface gráfica do Office para operá-lo. É por isso que ele é tão popular.

Apesar de não garantir todas as funcionalidades de SGDBs robustos, Access permite criar bancos de dados para pequenas aplicações, úteis para uso interno em times de negócio.

SQLite, como o próprio nome revela, é um SGBD simples, enxuto e fácil de usar. É útil para sites e aplicativos leves, sem muitos recursos ou usuários. Também usa SQL para consultas. Uma dica: é um ótimo SGBD para treinos e para aprendizado em programação e na área de dados!

SGDBs na programação e em dados

A pergunta que fica é: como programadores, data engineers, profissionais de data analytics e data scientists usam todos esses SGDBs? A resposta é um grande "depende". A escolha e uso de um SGDB dependerá da empresa e dos projetos em que o profissional atuará.

Grosso modo, porém, cabe aos desenvolvedores de software saberem como conectar e se comunicar com os bancos de dados por meio dos programas que criam. Isso, normalmente, envolve conhecer a linguagem de consulta do banco de dados, como SQL, por exemplo.

Já engenheiros de dados atuam conectando diferentes bancos de dados em data warehouses ("armazéns de dados"), a fim de fornecerem informações mais otimizadas a ferramentas analíticas, como dashboards e painéis de Business Intelligence (BI).

Para cientistas de dados, a atuação pode ser um pouco diferente. Em grandes corporações, os profissionais já costumam receber dados prontos e tratados de data warehouses, por exemplo.

Em startups e empresas menores, porém, pode ser que o data scientist tenha de acessar bancos de dados diretamente para análises. Nesse caso, conhecer as ferramentas e a linguagem de consulta, como SQL, será um diferencial e uma necessidade.

Dominar tudo isso envolve, é claro, muito estudo, muita prática e atualização constante sobre as ferramentas utilizadas no mercado.
Conheça a Awari
Pensando em quem quer dar o próximo passo em sua carreira profissional, a Awari oferece uma plataforma completa com os mais variados cursos com aulas ao vivo, mentorias e suporte de carreira. Clique aqui para saber mais!

# data[].attributes.attachment_link.title
Sistemas de Banco de Dados: quais são e principais componentes

# data[].attributes.attachment_link.description
Seja na Programação ou na área de dados, como na Engenharia de Dados e na Ciência de Dados, o uso de bancos de dados é fundamental.

# data[].attributes.headline
Primeiro Diagrama de Entidade e Relacionamento

# data[].attributes.subject
Primeiro Diagrama de Entidade e Relacionamento

# data[].attributes.body
Nessa etapa fizemos um diagrama para termos basicamente um "escopo" melhor e arrumado para entendermos o que foi feito nas tabelas que fizemos anteriormente.

# data[].attributes.headline
Fixação de Entidade-Relacionamento, Chaves e Tipos de Dados

# data[].attributes.subject
Fixação de Entidade-Relacionamento, Chaves e Tipos de Dados

# data[].attributes.body
Fizemos um atividade de fixação para "entrar a atividade na cabeça" sobre Banco de Dados e diagrama e a profundamos as nossa perspectivas sobre as chaves como "chave estrangeira", "chave primária" e os tipos de dados como char, varchar e int etc...

# data[].attributes.headline
Primeiro Banco de Dados e Inglês Técnico

# data[].attributes.subject
Primeiro Banco de Dados e Inglês Técnico

# data[].attributes.body
Realizamos o nosso primeiro Banco de Dados com ajuda do professor e através dos softwares Workbench e XAMPP e como funciona adicionando tabelas alterando e atualizando etc... e comandos em inglês dos códigos, e aprendendo como instalar esses softwares que citei também.

# data[].attributes.headline
Backup do Banco de Dados e Criação do nosso primeiro Banco de Dados Solo.

# data[].attributes.subject
Backup do Banco de Dados e Criação do nosso primeiro Banco de Dados Solo.

# data[].attributes.body
Realizamos nosso primeiro backup e entregamos a através de uma pasta zipada, e fizemos nosso primeiro banco de dados usando a atividade anterior do primeiro banco de dados.

# data[].attributes.body
Usamos o chat gpt para vermos diferentes exemplos de códigos e funções.

# data[].attributes.body
Aqui fomos bem mais afundo sobre organização de Dados das Tabelas e aprendemos sobre normalização e as características quando devem ser usadas

Exemplos:

FN1 = É necessário quando há dados compostos e multivalorados.

FN2 = É quando há chave primária composta e as chaves não primárias dependam parcialmente das chaves primárias.

FN3 = É necessário quando uma chave não primária depende de outra chave não primária .