Please enable JavaScript.
Coggle requires JavaScript to display documents.
Definição de banco de dados (Características do MariaDB (Aceita várias…
Definição de banco de dados
O que é um Banco de Dados
Informações correlacionadas
Aborda assunto em específico
Banco de Dados vs Bando de Dados
Não há somente uma resposta
O que é um SGDB
Capacidade de gerenciar, interagir e manipular as informações do banco de dados
Responsável por controlar a concorrência de requisições
Disponibiliza gatilhos para manter a integridade das informações
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...)
Controla o fluxo de informações para não gerar redundância de informações
Abstração e Projeção
Abstração: Compreender o processo "humano" e transcrever de maneira lógica e organizada
Projeção: Organizar, segmentar, analisar todas as informações necessárias e export de maneira que o SGDB compreenda
Nosso Ambiente
MariaDB
Relacional
Todas as informações são relacionadas em torno de um problema que deve ser resolvido
Modelo de Entidade-Relacionamento
Relacionamento 1..1
Relacionamento 1..N
Relacionamento N..M
Transacional
Uma sequência de processos, que quando executadas formam apenas uma ação
4 atributos ACID
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).
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]...)
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"
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
Gerenciado na maioria das vezes pela própria aplicação, mas há a possibilidade de forçar o uso em determinadas situações.
Normalizado
Tem se normalizado, um banco que atende as 5 formas normais.
Um banco normalizado nas 5 formas normais tende a ser extremamente dinâmico porém com perda de desempenho
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.
Hierarquia
Banco de dados: Conjunto de tabelas
lojavirtual
blog
imobi
Tabelas [Entidade]: Conjunto de campos com linhas
posts
categories
users
products
Campos [Atributos]: Responsável por armazenar uma informação. E este possui parâmetros e valores para configuração
post_title
post_subtitle
post_author
Linhas [Registros]: Uma informação pertinente ao campo da tabela
posts
post_title
Um artigo de teste para UpInside Treinamentos
post_subtitle
Aqui você estuda tudo o que precisa para se tornar um WebMaster de Sucesso!
Parâmetros e valores: Pertinentes aos campos/atributos
Nome
Tipo?
Numérico
Texto
Data/Hora
Permite nulo?
Sim ou não
Auto incremento?
Sim ou não
Resumo:
[BD] blog
[ENTIDADE] posts
[ATRIBUTO] post_title
texto, não nulo
[ATRIBUTO] post_subtitle
texto, não nulo
[ATRIBUTO] post_category
texto, não nulo
[ATRIBUTO] post_author
texto, não nulo
[ATRIBUTO] post_date
data e hora, não nulo
[REGISTRO] posts
Artigo de teste, Subtítulo do meu primeiro artigo, Programação, Gustavo, 2017-05-18
[ENTIDADE] categories
[ATRIBUTO] category_name
texto, não nulo
[ATRIBUTO] category_description
texto, não nulo
[REGISTRO] categories
Programação, Tudo sobre programação num só lugar
[ENTIDADE] users
[ATRIBUTO] user_name
texto, não nulo
[ATRIBUTO] user_email
texto, não nulo
[REGISTRO] users
Gustavo,
gustavo@upinside.com.br
Características do MariaDB
Implementação C e C++
Multiplataforma
Open Source
Aceita várias linguagens de programação
C
C#
C++
Java
Objective-C
Perl
PHP
Python
Ruby
Comparação MariaDB x MySQL
Evolução
Um é melhor que outro, mas outro não é melhor que um! [Atualmente]
Plugins adicionais
Migração de dados legado
Storage Engines
+Mecanismos de armazenamento
Aria -> Mylsam = Melhora no cache
XtraDB -> InnoDB = Melhora o desempenho em hardware moderno
Engine sequencial crescente e decrescente SEQUENCE (não substitue o AUTO_INCREMENT)
Possibilidade de integração com banco NoSQL
Benckmark aprovado
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
Benckmark não traduz realidade, mas aponta para o caminho correto
Uso pouco mais elevado de memória
Repositórios
Mysql
MariaDB