" />
class: center, middle, inverse, title-slide .title[ # Fundamentos de Análise de Dados ] .subtitle[ ## O que é um Banco de Dados? ] .author[ ### Luiz Henrique
Cientista de Dados
] .date[ ###
09 de setembro de 2022
] --- <style type="text/css"> pre { white-space: pre-wrap; overflow-y: scroll !important; max-height: 45vh !important; overflow-x: auto; max-width: 100%; } </style> # O que é um Banco de Dados? O termo banco de dados (*database*), para a maioria das pessoas, pode significar uma **coleção de dados ou itens** (listas de qualquer tipo, como por exemplo pagamentos mensais, clientes, compras, etc). Porém, o termo é estritamente definido como uma **coleção de registros integrados que formam um método de coleta e organização de dados**. E obviamente, implica na utilização de uma tecnologia, como por exemplo: - planilhas contendo dados de clientes - arquivos de texto contendo dados sobre voos - bancos de dados armazenados em nuvem (*Cloud Computing*) - arquivos de bancos de dados relacionais organizados por SGBDs - Sistema Gerenciador de Bancos de Dados. --- # Como funciona um Banco de Dados? Um **registro** é a representação de um **objeto físico ou conceitual**. Por exemplo, o envio de pedidos para clientes de uma empresa. Cada registro desses pedidos representa um cliente. Os registros possuem **atributos**, como por exemplo, nome, endereço e região. As observações (o registro de cada atributo) são os dados. Entretanto, os **bancos de dados relacionais** dominam o mercado e são os mais utilizados por sistemas de bancos de dados em empresas. <img src="imgs/clientes.png" width="70%" style="display: block; margin: auto;" /> --- # Como funciona um Banco de Dados? ## Formatos dos dados Os dados podem ser armazenados em diferentes formas e estruturas. **Não estruturados**, como por exemplo: documentos em texto, imagens e áudios. **Estruturados**, em formato tabular, como uma planilha ou Data Frame, contendo linhas e colunas. A maioria dos *softwares* para a análise de dados realiza aplicações em dados estruturados, que é o que iremos utilizar neste curso. --- # Tamanho de banco de dados e complexidade Um banco de dados pode possuir **diferentes tamanhos**, de simples coleções de poucos registros para sistemas que possuem milhões. A **usabilidade** do banco de dados pode ser **definida** com base no seu **tamanho**, no **equipamento** em que é utilizado e no **tamanho da organização que o mantém**. Sendo assim, os separamos em três tipos: - **Banco de dados pessoal**: é desenhado para uma única pessoa para ser utilizado em um único computador. Possui uma estrutura simples e tamanho relativamente pequeno. - **Banco de dados de uma organização ou grupo de trabalho**: Esse tipo de banco de dados é geralmente maior que um pessoal e mais complexo. Necessita ser utilizado por diversas pessoas que tentam acessar o mesmo dados ao mesmo tempo - **Banco de dados de uma empresa**: São enormes, guardando informações sobre a organização inteira. --- # Sistema gerenciador de banco de dados Quando se refere a um banco de dados, usualmente está se referindo a um **sistema gerenciador de banco de dados (SGBD)**. Um SGDB é um **conjunto de programas utilizado para definir, administrar e processar bancos de dados e suas aplicações**. O SGDB é a ferramenta que se utiliza para **construir a estrutura e operacionalizar os dados contidos em um banco de dados**. <img src="imgs/SGBD.png" width="70%" style="display: block; margin: auto;" /> --- # Sistema gerenciador de banco de dados A questão, é que por mais que haja diferenças nos *softwares* de SGDB, o SQL é utilizado como linguagem principal para se comunicar com os bancos de dados através desses sistemas. Para que não seja confuso o ensino sobre SGBD, é possível separá-los em dois tipos de categorias: leves e centralizados .pull-left[ ### Bancos de dados Leves Para soluções simples ou para um número pequeno de usuários, um banco de dados leve é o melhor para se utilizar. Os dois mais comuns são: **SQLite** e **Microsoft Access**. ] .pull-right[ ### Bancos de dados Centralizados Se é necessário diversos usuários utilizarem o banco de dados simultaneamente, é necessário o uso de bancos de dados centralizados. Entre as opções encontram-se: **MySQL, Microsoft SQL Server, Oracle, PostgreSQL, Teradata, MariaDB**. ] --- # Bancos de dados Relacionais Dados estruturados, como mencionado, possuem formatos tabulares, com **linhas (registros)** e **colunas (atributos)**. Esse formato em bancos de dados relacionais são definidos como tabela. Cada tabela pode armazenar diferentes subconjuntos e tipos de dados em níveis diferentes de detalhes. --- # Bancos de dados Relacionais Um banco de dados relacional é uma **coleção de tabelas** que se relacionam entre si. Vamos utilizar como exemplo duas tabelas de **PEDIDOS** e **CLIENTES**. .pull-left[ <img src="imgs/clientes.png" width="100%" style="display: block; margin: auto;" /> ] .pull-right[ <img src="imgs/pedidos.png" width="100%" style="display: block; margin: auto;" /> ] Veja que na primeira tabela, **PEDIDOS**, contém a coluna chamada **ID_CLIENTE**. Essa coluna também está contida na tabela **CLIENTES**. As informações se relacionam de forma que seja possível ligar os dados entre as duas tabelas. Com isso, através das informações sobre os pedidos, é possível localizar as informações sobre os clientes que realizaram os pedidos. --- # Por que Tabelas Separadas? As tabelas são construídas de formas separadas devido ao conceito de **normalização**. Basicamente, é a separação de diferentes tipos de dados em suas próprias tabelas. Se houvesse todas as informações em apenas uma tabela, ela seria **redundante, ocasionando o aumento da manutenção dos dados e a do armazenamento, bem como a complexidade.** <img src="imgs/redundante.png" width="100%" style="display: block; margin: auto;" /> Veja que se houvesse as informações do clientes na tabela **PEDIDOS**, ocasionaria o aumento de linhas relacionadas a Re Construcao. Isso é totalmente **redundante**. --- # Considerações Por fim, podemos entender o que são Bancos de Dados, e como bancos de dados relacionais funcionam. Esse forma de montagem de armazenamento de dados é extremamente útil em uma organização, e é potencializada no processo de análise de dados com a linguagem SQL, Python e R.