Você está na página 1de 5

PROJETO PYTHON COM ESTRUTURA DE DADOS - 2023

Embora haja uma enorme variedade de fontes para conjuntos de dados, em muitos
casos, principalmente em empresas, os dados serão armazenados em um banco de dados
relacional.

Os sistemas de gerenciamento de banco de dados relacionais (RDBMSs).

Veja a listagem e verifique se lembra de algum que não foi mencionado,


Oracle
MySQL
MicrosoftSQLServer
PostgreSQL
IBM DB2
Todos eles usam a Linguagem de Consulta Estruturada (SQL) para acessar e fazer
alterações nos dados.

Observe que cada RDBMS usa um tipo de SQL ligeiramente diferente, portanto, o
código SQL escrito para um, geralmente não funcionará em outro sem modificações,
como sintaxes de busca ou limitação.
Os conceitos, estruturas e operações são, em grande parte, idênticos. Normalmente
os comandos como: SELECT, JOIN e afins costumam ser os mesmos.
Isso significa que, para um analista de dados ativo, um forte entendimento do SQL é
extremamente importante.
Saber usar Python e SQL juntos lhe dará ainda mais vantagens quando se trata de
trabalhar com seus dados.

Classificamos os dados em duas categorias:

Primitivos
Caracterizam-se por serem indivisíveis.

Temos exemplos nos inteiros, nos tipos reais, caracteres e nos tipos booleanos;

Compostos (ou complexos)


São elementos que podem ser divididos em unidades menores.

Isso significa que esse tipo de dado apresenta alguma forma de organização,
estrutura; portanto, é chamado de dado estruturado, pois faz parte de uma estrutura
de dados.

Dados estruturados estão presentes nos bancos de dados, no padrão que estabelece um
grupo de regras para a codificação de documentos chamado de XML (eXtensible Markup
Language),
no sistema CVS (Concurrent Version System), nas formatações JSON (Javascript Object
Notation), entre outros.
Outros tipos de dados chamados de tipos abstratos de dados ou TADs têm estrutura
capaz de representar tipos de dados que não foram previamente estabelecidos no core
das linguagens de programação.

Isolamos essas estruturas em: os dados e as operações.

O modo de armazenar os dados e definir um conjunto adequado de operações que vão


atuar sobre esses dados é o que especifica uma estrutura TAD.

m banco de dados é um sistema capaz de armazenar, recuperar, modificar, manipular e


manter a integridade de uma informação a partir de quatro componentes maiores:
dados, hardware, software e usuários (C.J. DATE, 1989).

Em um banco de dados, o componente hardware consiste em seus volumes de memória


secundária, podendo esta ser uma categoria bastante ampla, pois detém uma
infinidade de dispositivos.

O elemento software atua entre o lado físico do banco e o lado dos usuários. A
camada de software é muitas vezes chamada de SGBD (Database Management System), que
além de gerenciar as solicitações de acesso dos usuários ao banco, os isola de
aspectos da camada de hardware, ou seja,
o SGBD fornece abstração ao usuário com acesso a um nível superior, acima da camada
física.
Na prática, o SGBD é um conjunto de componentes de software que possibilitam aos
usuários interagir com o banco de dados.

A informação descrita no banco e armazenada pelo SGBD se expressa na forma de um


dicionário ou de um catálogo, que é chamado de metadados. Já a manipulação de um BD
significa o acionamento de funções de consulta e recuperação de determinados dados,
a atualização do banco e a geração de relatórios relativos a esses dados (SHAMKANT;
NAVATHE, 2011, p.4).
Os bancos de dados relacionais, ou melhor, o modelo de dados relacionais surgiu na
década de 1970, nos laboratórios da IBM (International Business Machines
Corporation) Research (SHAMKANT; NAVATHE, 2011).
Tuplas são similares a listas, isto é, uma sequência de dados de qualquer tipo.
Porém, ao contrário de listas, as tuplas são imutáveis.

QUATRO PROPRIEDADES fundamentais que definem os bancos de dados relacionais, que


são as propriedades ACID (Atomicidade, Consistência, Isolamento e Durabilidade).

- Atomicidade: Todas as operações em um banco de dados devem ser tratadas como uma
única unidade indivisível. Ou seja, todas as alterações em uma transação devem ser
executadas com sucesso ou nenhuma delas deve ser executada.

- Consistência: O banco de dados deve garantir que apenas transações válidas sejam
aceitas. Isso significa que todas as regras e restrições definidas no esquema do
banco de dados devem ser aplicadas corretamente.

- Isolamento: Cada transação deve ser executada independentemente das outras


transações concorrentes. Isso garante que o resultado de uma transação não seja
afetado por outras transações em execução simultaneamente.

- Durabilidade: Após o término de uma transação bem-sucedida, todas as alterações


feitas no banco de dados devem ser permanentes e resistir a falhas. Mesmo em caso
de falha no sistema, as alterações devem ser mantidas.

Essas propriedades garantem a integridade e a confiabilidade dos dados em um banco


de dados relacional.
TEM CHAVES PRIMÁRIAS

Agora que você conheceu o modelo de dados relacional, vamos apresentar os bancos de
dados NoSQL, ou banco de dados não-relacional.

Esse tipo de banco utiliza diversos modelos de dados para interagir e acessar seus
dados. São bancos que trabalham com aplicações que exigem modelos com grande número
de dados, como nos Big Data.
Flexibilidade

Deve fornecer esquemas de dados que sejam flexíveis e que possibilitem um


desenvolvimento mais célere e mais interativo; a flexibilidade deste modelo o torna
ideal para se trabalhar com dados semiestruturados e os sem estrutura fixa.

Escalabilidade

São concebidos para serem escaláveis horizontalmente por meio de clusters


distribuídos, em vez de uma escalonagem vertical, que necessita que sejam
adicionados servidores.

Alta performance

A garantia de performance nesses bancos ocorre graças à otimização do NoSQL para


modelos específicos e padrões de acessibilidade que garantem mais performance
comparativamente aos modelos com bancos de dados relacionais.

Elevada funcionalidade

Podem prover tanto APIs quanto tipos de dados com alto grau de funcionalidade,
concebidos especificamente para se relacionar com cada um de seus modelos de dados.
Bancos não relacionais são vantajosos nos seguintes aspectos:

1Possuem maior escalabilidade se comparados aos métodos relacionais (RDBMS).


2A adição de novos elementos no banco é facilmente realizável.
3Possuem a capacidade de gerenciar grande volume de dados.
4Possuem ciclos de manutenção reduzidos, pois o restauro e a ordenação dos dados
são realizados de modo automático, diferentemente dos bancos com base relacional
(SQL), que precisam de um administrador que realize essa manutenção.
5Menor custo.
Em bancos de alto desempenho (NoSQL), seus dados serão armazenados como se fossem
documentos, colunas, chaves-valor e grafos. Vamos conhecer o conceito de cada um
deles.
Key value
Dados representados por meio de um conjunto de pares de valores-chave.

Graph stores
São bancos que possibilitam manter um tamanho mínimo para o armazenamento, com
maior profundidade de dados se comparado a outros tipos de bancos.

Column stores
São tipos de bancos de dados que funcionam com o conceito de keyspace, que pode ser
entendido como uma estrutura no modelo relacional.

Document stores
Os documentos se caracterizam por meio de uma organização sem esquemas, ou seja, os
registros não necessitam de uma estrutura uniforme.

Ao contrário de outros banco de dados, os relacionamentos têm prioridade em grafos.


Isso significa que seu aplicativo não precisa inferir conexões de dados usando
coisas como chaves estrangeiras ou processamento fora de banda, como MapReduce.

Neste módulo, vimos os tipos de estrutura de dados, bem como a importância do


conhecimento de como os dados podem se estruturar, de quais são os seus tipos e
onde cada modelo (dados estruturados e/ou não estruturados) é utilizado.

Estabelecemos o conceito de banco de dados (BD) em função de sua organização


(relacional e/ou não relacional), definimos suas principais características: seus
tipos de dados, seus softwares de gerenciamento, suas operações e seus custos.

O SQL (Structured Query Language) pode ser definido, de modo genérico, como um
artefato de software utilizado para armazenar, organizar, gerenciar e recuperar
dados ou informações contidas em um banco de dados.

No Modelo Entidade Relacionamento (MER), as entidades representam objetos


reconhecíveis, como pessoas, lugares ou coisas. Entidades são objetos
reconhecíveis(retângulos)
Os atributos(oval, círculo) são características das entidades, podendo ser simples
(indivisíveis) ou compostos (divididos em partes menores). Os
relacionamentos(losângos) representam as conexões entre as entidades.
O MER utiliza diagramas para visualizar essas informações.

DBCC CHECKDB (‘nome_da_base_de_dados’);

Este comando requer cuidado, pois vai consumir muitos recursos no sistema, podendo
prejudicar outras aplicações. O administrador deverá agendar este tipo de checagem
para um momento oportuno (madrugadas, finais de semana), evitando executá-lo
comando durante os períodos de produção.

Para uma checagem mais rápida, que vai verificar somente a estrutura física do
banco de dados:

É uma biblioteca de código aberto escrita em linguagem C, (Linguagem C é uma


linguagem criada nos anos 70 e que é amplamente utilizada nos dia de hoje, apesar
de sua sintaxe de difícil compreensão, mas que fornece ganho de velocidade de
compilação.) onde é possível implementar sistemas de banco de dados SQL.

Os bancos SQLite são gravados em seu computador ou em sua rede em um único arquivo
de disco, e a biblioteca SQLite manipula esses arquivos diretamente no arquivo do
banco de dados gravado no disco.

O SQLite é considerado uma base relacional que funciona sem a necessidade de um


servidor, pois seus arquivos são armazenados ou embutidos em sua própria estrutura
Dizemos que o SQLite é um embedded database, isso significa que ele é um banco de
dados embutido, executado de modo independente, como um processo autônomo que
coexiste de forma mútua com a (API) (Application Programming Interface) que ele
serve.

Enquanto os mecanismos tradicionais de banco de dados buscam implementar


escalabilidade, compartilhamento de dados, centralização, controle e
simultaneidade, o objetivo do SQLite é prover o armazenamento local dos dados para
APIs e dispositivos individuais. (SQLITEORG, 2022).
API é o acrônimo para Interface de Programação de Aplicativos; as (APIs) recebem as
solicitações dos usuários e as enviam aos processos internos (backend) do sistema
(J. HUANG, 2019).

) quando diversas colunas são candidatas à chave primária e uma é escolhida, as


demais passam a ser denominadas chaves alternativas; ii) o objetivo da chave
primária é tornar única cada linha de uma tabela do banco de dados; iii) as chaves
estrangeiras representam restrições capazes de representar relacionamentos entre
tabelas.
Uma tabela está de acordo com a 1FN quando não possui atributo(s) multivalorado(s)
nem atributo(s) composto(s).
Uma tabela está na 2FN, caso esteja na 1FN e não haja dependências funcionais
parciais.
Um exemplo de dependência funcional, em que o determinante é uma coluna que
não pertence à chave primária da tabela.
Uma dependência funcional transitiva ocorre quando uma coluna é dependente de
alguma coluna não-chave da tabela.
Uma tabela está em 3FN caso esteja na 2FN e não possua dependências transitivas.
pois uma forma engloba as restrições da forma anterior. Além disso, não pode
haver dependências entre colunas não-chave.
para estar na 3FN a tabela tem que respeitar as regras da 2FN, pois uma forma
engloba as restrições da forma anterior. Além disso, não pode haver dependências
entre colunas não-chave.
Seja uma relação R (C1, C2, C3, C4, C5) com chave primária composta pelas colunas
C1 e C2 e as seguintes dependências funcionais:

C1 → C3
C3 → C4
C2 → C5

Podemos afirmar que o esquema R atende à:


1 FN

De fato, se C1 determina C3, temos então uma dependência parcial da chave primária,
o que é proibido na 2FN. Como cada FN, a partir da segunda, depende da anterior, a
relação R atende à 1FN.

De fato, quando aplicamos a desnormalização em um banco de dados, o conteúdo de uma


ou mais tabelas é movido para outra tabela. Com isso, certa redundância é inserida
no sistema. Por outro lado, consultas que, anteriormente, envolviam diversas
tabelas, em geral passam a ser executadas diretamente na tabela desnormalizada

Você também pode gostar