Definição de banco de dados

Começar. É Gratuito
ou inscrever-se com seu endereço de e-mail
Definição de banco de dados por 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. Nosso Ambiente

3.1. MariaDB

3.1.1. Relacional

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

3.1.1.2. Modelo de Entidade-Relacionamento

3.1.1.3. Relacionamento 1..1

3.1.1.4. Relacionamento 1..N

3.1.1.5. Relacionamento N..M

3.1.2. Transacional

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

3.1.2.2. 4 atributos ACID

3.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).

3.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]...)

3.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"

3.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

3.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.

3.1.3. Normalizado

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

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

3.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.

3.2. Hierarquia

3.2.1. Banco de dados: Conjunto de tabelas

3.2.1.1. lojavirtual

3.2.1.2. blog

3.2.1.3. imobi

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

3.2.2.1. posts

3.2.2.2. categories

3.2.2.3. users

3.2.2.4. products

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

3.2.3.1. post_title

3.2.3.2. post_subtitle

3.2.3.3. post_author

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

3.2.4.1. posts

3.2.4.1.1. post_title

3.2.4.1.2. post_subtitle

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

3.2.5.1. Nome

3.2.5.2. Tipo?

3.2.5.2.1. Numérico

3.2.5.2.2. Texto

3.2.5.2.3. Data/Hora

3.2.5.3. Permite nulo?

3.2.5.3.1. Sim ou não

3.2.5.4. Auto incremento?

3.2.5.4.1. Sim ou não

3.2.6. Resumo:

3.2.6.1. [BD] blog

3.2.6.1.1. [ENTIDADE] posts

3.2.6.1.2. [REGISTRO] posts

3.2.6.1.3. [ENTIDADE] categories

3.2.6.1.4. [REGISTRO] categories

3.2.6.1.5. [ENTIDADE] users

3.2.6.1.6. [REGISTRO] users

4. Abstração e Projeção

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

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

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