• Stars
    star
    379
  • Rank 113,004 (Top 3 %)
  • Language SQL
  • License
    MIT License
  • Created about 6 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Aulas, exercícios e resumos sobre banco de dados

Banco de Dados

License learning ufsc Hits

Fundamentos de Banco de Dados


Banco de Dados II


Banco de Dados III



Noções Básicas

Linguagens SQL
  • DDL (Linguagem de Definição de Dados), que lida com esquemas e descrições de banco de dados.
  • DML (Linguagem de Manipulação de Dados), que lida com a manipulação de dados e inclui instruções SQL mais comuns, como SELECT, INSERT, UPDATE, DELETE etc.
  • DCL (Linguagem de Controle de Dados), que inclui comandos como GRANT, e principalmente relacionado com direitos, permissões e outros controles do sistema de banco de dados.

Tipos de Dados

Cheat Sheet

SQL Joins
Transações

Transação em banco de dados é uma coleção de várias operações ex: SELECT, UPDATE, DELETE ou INSERT como uma única unidade de trabalho.
Podemos definir onde a transação começará e quando terminará. Para iniciar a transação, usamos a sintaxe BEGIN.
Se as consultas em uma transação foram executadas com sucesso, salvamos as alterações usando a sintaxe COMMIT. Se as consultas em uma transação falharem na execução, então reverteremos as alterações antes da execução da transação usando a sintaxe ROLLBACK.

Ex:

SELECT BALANCE FROM ACCOUNT WHERE ID = 1
UPDATE ACCOUNT SET BALANCE = BALANCE - 100 WHERE ID = 1
UPDATE ACCOUNT SET BALANCE = BALANCE + 100 WHERE ID = 2

Propriedades das Trasações

Todo banco de dados RELACIONAL deve possuir as propriedades ACID:

  • ATOMICIDADE: todas as operações de uma transação são realizadas. Isso significa que em caso de sucesso deve ser executada totalmente e em casos de erros ou falhas deve ser abortada por completo.
  • CONSISTENCIA: leva o DB de um estado consistente para outro estado consistente.
  • INDEPENDENCIA: o processamento de transações não deve interferir em outras transações.
  • DURABILIDADE: resultados de operações confirmadas não devem interferir em outras transações.

Controle de transações

Controle de transações serve para garantir as caracteristicas fundamentais de uma transação (ACID).

Protocolo 2phase commit
  • Preparação: um dos participantes é eleito coordenador e envia a cada nodo uma solicitação para preparar para o commit.
  • Commit: se todos os nodos participantes estão prontos, o coordenador envia um sinal de commit para cada participante e depois executa
    • Se um nodo falhar na preparação do coomit, o coordenador manda um sinal de rollback para todos.
    • Se o nodo coordenador cair: haverá um backup que será eleito. Em seguida por broadcast, os outros nodos são avisados da mundança.


Deadlocks

Lock é quando uma ação está sendo tomada em um banco de dados e para evitar a concorrência de 2 comandos em cima do mesmo registro ou tabela, um lock (travamento) é executado. Quando um lock é ativo a transação por sua vez aguarda o unlock (destravamento) da tarefa que estava a sua frente para assim poder ser executada.
Já o DeadLock, é um caso que ocorre nos bancos de dados quando são feitos muitos lock’s que dependem de outros lock’s para prosseguirem, causando uma fila eterna de bloqueio.


Isso causa um ciclo de dependências (dependência cíclica) e assim impedindo que qualquer tarefa possa ser executada. Geralmente em casos assim, os SGBD’s cancelam ambas as transações para que as próximas possam ser realizadas.


Otimização de Consultas

É sempre necessário levar em conta:

  • replicação dos dados
  • reconstrução das relações a partir de fragmentos
  • tempo de recuperação
  • tempo de processamento
  • transmissão pela rede

Fragmentação de Dados

Um dado ou relação será fragmentado e armazenado em diferentes nodos.
A fragmentação pode ser de 2 formas:

  • Horizontal: os fragmentos são definidos por SELEÇÃO
  • Vertical: os fragmentos são definidos por PROJEÇÃO



Livros de Referência



Creative Commons License

More Repositories

1

understanding-the-python-ecosystem

This project focuses on understanding the language ecosystem
Python
105
star
2

forecast-of-time-series-with-stock-data

Comparative Analysis of Techniques for Forecasting Time Series in Financial Markets
Python
32
star
3

redes-de-computadores

Aulas, exercícios e resumos das matérias: redes de computadores I, II, gerência de redes e redes de telecomunicações.
Python
21
star
4

encrypt-file

🔒 📃 CLI to encrypt or decrypt files with only one command.
Python
17
star
5

organizacao-e-arquitetura-de-computadores

Repositório para as aulas, exercícios e resumos da matéria: organização e arquitetura de computadores (INE5607).
Assembly
17
star
6

inteligencia-artificial

Aulas e exercícios da matéria: Sistemas inteligentes (INE5633).
Python
14
star
7

introducao-a-programacao-orientada-a-objetos

Aulas e exercícios da matéria: Introdução à Programação Orientada a Objetos I (INE5603)
Java
14
star
8

predicting-retail-churn-with-azure-ml-studio

Challenge to job: Data Scientist
Python
14
star
9

federated-learning-for-text-generation

Machine learning project using federated learning for text generation
Python
12
star
10

teoria-da-computacao

Aulas, exercícios e resumos das matérias: Introdução à Informática e Teoria da Computação.
Python
12
star
11

seguranca-de-redes

Aulas, exercícios e resumos da matéria: segurança da informação.
Java
12
star
12

desenvolvimento-de-sistemas

Exercícios das matérias: Desenvolvimento de Sistemas Orientados a Objetos I e II.
Java
12
star
13

data-engineering

Python
11
star
14

porto-seguro-safe-driver-prediction

Predict if a driver will file an insurance claim next year. (Kaggle Competition)
Python
11
star
15

pyssas

Build and deploy automated to SQL Server Analysis Services (SSAS) with Python.
Python
9
star
16

programacao-paralela-e-distribuida

Aulas e exercícios da matéria: Programação Paralela e Distribuída (INE5645) e Computação Distribuida (INE5625).
Java
7
star
17

brunocampos01

7
star
18

allstate-claims-severity

Udacity Machine Learning Engineer Nanodegree capstone proposal.
Python
7
star
19

predict-which-customers-a-call-center-should-contact

Predict which customers should a call-center call for greater assertiveness in a sale
Python
6
star
20

automated-business-intelligence-at-azure

This project contains Python and HCL (terraform) scripts to create the automated business intelligence environment at Azure.
HCL
6
star
21

compiladores

Aulas, exercícios e resumos da matéria introdução à compiladores (INE5622).
Java
5
star
22

prolog-language

Aulas e exercícios de PROLOG, vista nas matérias: Paradigmas da computação e Sistemas inteligentes
Prolog
5
star
23

showenv

It is a tool to show detailed information about Python version, Pip version, libraries installed, O.S, and disk usage by the project.
Python
4
star
24

game-craps

Game CRAPS desenvolvido na matéria: Análise e projeto de sistemas.
Java
4
star
25

home-sweet-home

My personal config
Shell
3
star
26

dissertacao

REFACTORING ...
Python
3
star
27

preparation-for-technical-interviews

In construction ...
1
star
28

finding-donors

Data Science project using Census Income dataset. (Kaggle Competition)
Python
1
star