Rmch1s (discussão | contribs)
Limpou toda a página
 
Linha 1: Linha 1:
= Apresentação =
<br>


* Foco:
** Banco de dados são "armazéns de dados" digitais, que são administrados por SGBD's (sistemas gerenciadores de banco de dados), que têm como função, criar, incluir, excluir ou consultar um dado no banco de dados. O banco de dados funciona de uma forma similar aos arquivos físicos (onde se guarda pastas e etc), porém, com o tempo, o volume de dados foi se tornando absurdamente grande nas empresas, o que tornou inviável o uso desses arquivos, e com o advento da computação e da tecnologia, foram criados os bancos de dados, o que veio a se tornar a peça mais importante de um sistema de informação. Atualmente, o modelo de banco de dados mais utilizado, é o modelo relacional. Um banco de dados relacional, tem como objetivo se assemelhar com tabelas para o melhor entendimento do usuário. Essas tabelas, também conhecidas como entidades, têm várias características que diferenciam o modelo relacional de outros modelos, e uma das principais características é o uso de chaves para tornar único um tipo de dado. Além do modelo relacional, tem-se o modelo orientado a objeto, o modelo hierárquico e o modelo de rede, que são os mais famosos.
* Modo:
** https://www.youtube.com/watch?v=hTCtvfw0Vx0&
<br>
= Funcionamento =
<br>
* Descreva como um Banco de Dados é usado, como acontecem as seleções de dados e a evolução para BigData
* Pode-se usar (mas pode ser outro exemplo) a apresentação como base para essa descrição.
<br>
= Linguagem =
<br>
*SQL
SQL é a sigla para “Structured Query Language” que significa, traduzindo para o português, “Linguagem de Consulta Estruturada”. Trata-se de uma linguagem de consulta a banco de dados relacionais. Com o SQL, você pode executar vários comandos para criar, alterar, gerenciar, consultar, dentre outras informações no seu banco de dados. Costumamos dizer que bancos SQL seguem uma modelagem relacional, pois estes se baseiam no fato de que todos seus dados sejam guardados em tabelas, que por sua vez contém campos e dentro desses campos são guardados os dados. São informações relacionadas entre sí, mas geralmente armazenadas em diferentes tabelas ou de alguma forma em uma tabela relacionada com ela mesma, para se relacionarem é preciso que a chave primaria de uma tabela, que identifica uma entidade ou seja, permitir que o objeto seja identificado de forma única esteja identificada como chave estrangeira que serve para identificar um objeto que está sendo usado ou referenciado em outra tabela. Este é o princípio de banco de dados relacionais.
*NoSQL
NoSQL é o termo utilizado para banco de dados não relacionais de alto desempenho, onde geralmente não é utilizado o SQL como linguagem de consulta. O NoSQL foi criado para ter uma performance melhor e uma escalabilidade mais horizontal para suprir necessidades onde os bancos relacionais não são eficazes. No geral, temos 4 tipos de bancos de dados NoSQL.
Documento – Os dados são armazenados como documentos. Os documentos podem ser descritos como dados no formato de chave-valor, como por exemplo, o padrão JSON. Um exemplo de banco de dados neste formato é o MongoDB.
Colunas – Os dados são armazenados em linhas particulares de tabela no disco, podendo suportar várias linhas e colunas. Também permitem sub-colunas. Um banco de dados dessa família, por exemplo, é o Cassandra.
Grafos – Os dados são armazenados na forma de grafos (vértices e arestas). O Neo4j é um banco que utiliza grafos.
Chave-valor – Esta família de bancos NoSQL é a que aguenta mais carga de dados, pois o conceito dele é que um determinado valor seja acessado através de uma chave identificadora única. Um exemplo é o banco de dados Riak.
*Diferenças e quando usar cada linguagem
Uma das diferenças nos bancos de dados NoSQL é que toda a informação é agrupada e guardada no mesmo registro. Já no SQL você precisa ter o relacionamento entre várias tabelas para ter a informação, informação esta disposta no modelo entidade e relacionamento. O SQL tem certa dificuldade em conciliar a demanda por escalabilidade. Quanto a escalabilidade do NoSQL, deve se levar em consideração a modelagem do sistema. Do que adianta termos um sistema super simples e querermos utilizar o NoSQL apenas pela escalabilidade? Todo o ganho de performance seria perdido quando rodássemos a aplicação. Um ponto forte do SQL é quanto à consistência das informações. Já o NoSQL garante o último valor atualizado, isso se nenhuma atualização for realizada até o momento da consulta. Na maioria das situações, as bases de dados SQL são verticalmente escaláveis, o que significa que você pode aumentar o carregamento em um servidor melhorando coisas como CPU, RAM ou SSD. As bases de dados NoSQL, por sua vez, são horizontalmente escaláveis. Isso quer dizer que você suporta muito mais tráfego por sharding (particionamento de dados), ou seja, adicionando mais servidores na sua base de dados NoSQL.
SQL é uma escolha de peso para qualquer negócio que vai se beneficiar de sua estrutura e esquema pré-definidos. Por exemplo, aplicações que requerem transações de várias linhas como sistemas de contabilidades ou sistemas que monitoram inventário ou rodam em sistemas legados vão prosperar com a estrutura SQL.
O NoSQL, por outro lado, é uma boa escolha para negócios que têm crescimento rápido ou bases de dados sem definições claras de esquemas. Mais especificamente, se você não conseguir definir um esquema para o seu banco de dados, se perceber que está sempre desnormalizando esquemas de dados ou se o seu esquema passa constantemente por mudanças  como costuma ser o caso de apps mobile, análises em tempo real, sistemas de gerenciamento de conteúdo etc.
= Suporte para qualquer dúvida =
* luiz.theodoro@ufu.br
= Apresentação em slides =
[[Arquivo:Banco de Dados.pdf]]

Edição atual tal como às 21h48min de 13 de agosto de 2020