Definição de banco de dados

Get Started. It's Free
or sign up with your email address
Definição de banco de dados by Mind Map: Definição de banco de dados

1. O que é um Banco de Dados

1.1. Informações correlacionadas

1.2. Aborda assunto em específico

1.3. Banco de Dados vs Bando de Dados

1.4. Não há somente uma resposta

2. O que é um SGDB

2.1. Capacidade de gerenciar, interagir e manipular as informações do banco de dados

2.2. Responsável por controlar a concorrência de requisições

2.3. Disponibiliza gatilhos para manter a integridade das informações

2.4. Garante a segurança que somente usuários com permissão possam ter qualquer tipo de interação com o banco de dados (leitura, escrita, alteração, remoção...)

2.5. Controla o fluxo de informações para não gerar redundância de informações

3. Abstração e Projeção

3.1. Abstração: Compreender o processo "humano" e transcrever de maneira lógica e organizada

3.2. Projeção: Organizar, segmentar, analisar todas as informações necessárias e export de maneira que o SGDB compreenda

4. Nosso Ambiente

4.1. MariaDB

4.1.1. Relacional

4.1.1.1. Todas as informações são relacionadas em torno de um problema que deve ser resolvido

4.1.1.2. Modelo de Entidade-Relacionamento

4.1.1.3. Relacionamento 1..1

4.1.1.4. Relacionamento 1..N

4.1.1.5. Relacionamento N..M

4.1.2. Transacional

4.1.2.1. Uma sequência de processos, que quando executadas formam apenas uma ação

4.1.2.2. 4 atributos ACID

4.1.2.2.1. Atomicidade: Todo processo deve ter um fim, e quando executado com falha deve ser desprezada as informações (rollback), e quando finalizada com sucesso devem ser escritas no repositório (commit).

4.1.2.2.2. Consistência: Todos os processos devem ser executados obedecendo todas as regras e restrições impostas (valores únicos [UNIQUE], chaves estrangeiras [Foreing Key], valores não nulos [NOT NULL]...)

4.1.2.2.3. Isolamento: Nenhuma transação pode afetar outra em andamento. Se elas forem concorrentes (alteram a mesma tabela por exemplo) uma deve ser finalizada antes que outra possa ser executada. Nesse momento a transação fica numa fila chamada "spool"

4.1.2.2.4. Durabilidade [ou Persistência]: Toda informação escrita no repositório só pode ser desfeita/refeita por outra transação. Isso significa que não pode ser suscetível a erros de hardware por exemplo

4.1.2.3. Gerenciado na maioria das vezes pela própria aplicação, mas há a possibilidade de forçar o uso em determinadas situações.

4.1.3. Normalizado

4.1.3.1. Tem se normalizado, um banco que atende as 5 formas normais.

4.1.3.2. Um banco normalizado nas 5 formas normais tende a ser extremamente dinâmico porém com perda de desempenho

4.1.3.3. Um banco não normalizado (desnormalizado) tende a ter um desempenho melhor, porém com informações limitadas. Pode ser chamado também de dimensões, ao invés de tabelas.

4.2. Hierarquia

4.2.1. Banco de dados: Conjunto de tabelas

4.2.1.1. lojavirtual

4.2.1.2. blog

4.2.1.3. imobi

4.2.2. Tabelas [Entidade]: Conjunto de campos com linhas

4.2.2.1. posts

4.2.2.2. categories

4.2.2.3. users

4.2.2.4. products

4.2.3. Campos [Atributos]: Responsável por armazenar uma informação. E este possui parâmetros e valores para configuração

4.2.3.1. post_title

4.2.3.2. post_subtitle

4.2.3.3. post_author

4.2.4. Linhas [Registros]: Uma informação pertinente ao campo da tabela

4.2.4.1. posts

4.2.4.1.1. post_title

4.2.4.1.2. post_subtitle

4.2.5. Parâmetros e valores: Pertinentes aos campos/atributos

4.2.5.1. Nome

4.2.5.2. Tipo?

4.2.5.2.1. Numérico

4.2.5.2.2. Texto

4.2.5.2.3. Data/Hora

4.2.5.3. Permite nulo?

4.2.5.3.1. Sim ou não

4.2.5.4. Auto incremento?

4.2.5.4.1. Sim ou não

4.2.6. Resumo:

4.2.6.1. [BD] blog

4.2.6.1.1. [ENTIDADE] posts

4.2.6.1.2. [REGISTRO] posts

4.2.6.1.3. [ENTIDADE] categories

4.2.6.1.4. [REGISTRO] categories

4.2.6.1.5. [ENTIDADE] users

4.2.6.1.6. [REGISTRO] users

5. Características do MariaDB

5.1. Implementação C e C++

5.2. Multiplataforma

5.3. Open Source

5.4. Aceita várias linguagens de programação

5.4.1. C

5.4.2. C#

5.4.3. C++

5.4.4. Java

5.4.5. Objective-C

5.4.6. Perl

5.4.7. PHP

5.4.8. Python

5.4.9. Ruby

5.5. Comparação MariaDB x MySQL

5.5.1. Evolução

5.5.2. Um é melhor que outro, mas outro não é melhor que um! [Atualmente]

5.5.3. Plugins adicionais

5.5.3.1. Migração de dados legado

5.5.3.2. Storage Engines

5.5.3.2.1. +Mecanismos de armazenamento

5.5.3.2.2. Aria -> Mylsam = Melhora no cache

5.5.3.2.3. XtraDB -> InnoDB = Melhora o desempenho em hardware moderno

5.5.3.2.4. Engine sequencial crescente e decrescente SEQUENCE (não substitue o AUTO_INCREMENT)

5.5.3.2.5. Possibilidade de integração com banco NoSQL

5.5.3.3. Benckmark aprovado

5.5.3.3.1. Estudos comprovam ganho de em média 5% na geração de cada query. Em um sistema como um todo esse ganho é visívelmente significativo

5.5.3.3.2. Benckmark não traduz realidade, mas aponta para o caminho correto

5.5.3.3.3. Uso pouco mais elevado de memória

5.6. Repositórios

5.6.1. Mysql

5.6.2. MariaDB