Skip to content

Instantly share code, notes, and snippets.

@wesleysantossts
Last active May 10, 2022 13:55
Show Gist options
  • Select an option

  • Save wesleysantossts/9c51629291397ff98813b7ed77dd0806 to your computer and use it in GitHub Desktop.

Select an option

Save wesleysantossts/9c51629291397ff98813b7ed77dd0806 to your computer and use it in GitHub Desktop.
Principais comandos e termos da disciplina.

Aula 01 - Termos pilares do bancos de dados

  • Entidade: é uma representação sobre um conjunto de atributos sobre determinado conceito do sistema. Toda entidade possui atributos (campos), que são as informações que referenciam a entidade (exemplo: clientes, funcionários, departamentos, etc.)
  • Tabela: é a estrutura dos dados que serão armazenados do cliente (é a estrutura de uma entidade), é como se fosse uma ficha em branco de uma entidade.
  • Campos (ou "atributos"): são os atributos de uma tabela (nome, idade, cpf, endereço, etc.).
  • Registro: é como se fosse uma ficha preenchida.
  • Índice: é um atributo (campo) otimizador de busca, que ajuda o banco de dados a organizar a tabela (exemplo: organizar em ordem alfabética pelo atributo "nome").

Chaves

  • Campo-chave ("Chave-Primária" ou "Primary-Key" (PK))

    É um campo que eu defino que não vai se repetir de jeito nenhum em outros registros. É um campo que identifica unicamente um registro dentro de um conjunto de registros, a chave-primária tem que ser mínima: nenhum atributo que a compõe poderá ser retirado.

  • Chave-estrangeira

    É o atributo que faz referência a chave-primária de outra entidade, é o atributo usado para fazer o relacionamento entre duas entidades.

SGBD

Sistema Gerenciador de Banco de Dados.

Projeto lógico (Modelagem de Dados)

É um caminho para representar as entidades e suas características (atributos) em um modelo. É, basicamente, o modelo de um projeto.

Aula 01 e 02 - Comandos básicos do MySQL

Criação de usuário e conexão com banco de dados

Conectar ao banco de dados.

  • O prompt vai lhe pedir para digitar a senha de root do MySQL. Essa senha deve ter sido configurada durante o processo de instalação (pos- sivelmente por meio do utilitário mysql_secure_installation). Se você es- tiver em um ambiente Linux, pode ser necessário também acrescentar o sudo no início do comando ($sudo mysql -u root -p).
mysql -u root -p;

Criar novo usuário.

CREATE USER ‘aluno’@’localhost’ IDENTIFIED BY ‘senha’;

Criar um novo banco de dados.

GRANT ALL PRIVILEGES ON * . * TO ‘aluno’@’localhost’;

Saia do prompt do MySQL (com o atalho ctrl + d ou com o comando exit) e se reconecte como o usuário (nesse caso, usuário "aluno").

mysql -u aluno -p

Criação de banco de dados e CRUD (Create, Read, Update e Delete)

Observação: SEMPRE colocar ponto e vírgula no final dos comandos.

Criar um novo banco de dados (nesse caso, chamado "brasil") e entrar no BD.

> CREATE DATABASE brasil;
> USE brasil;

Ver tabelas existentes no BD.

SHOW TABLES;

Criar uma tabela e inserir seus atributos.

> CREATE TABLE municipios (
 nome text,
 uf varchar(2)
);

CREATE - Inserir valores nos atributos da tabela.

> INSERT INTO municipios (nome, uf) VALUES (‘Sorocaba’, 
‘SP’), (‘São Paulo’, ‘SP’), (‘Osasco’, ‘SP’), 
(‘Guaratinguetá’, ‘SP’), (‘Altamira’, ‘PA’), (‘Palmas’, 
‘GO’);

Para visualizar o estado atual da tabela.

> TABLE municipios;
+---------------+------+
| nome          |  uf  |
+---------------+------+
| Sorocaba      |  SP  |
| São Paulo     |  SP  |
| Osasco        |  SP  |
| Guaratinguetá |  SP  |
| Altamira      |  PA  |
| Palmas        |  GO  |
+---------------+------+

READ - Ler algum registro da tabela.

SELECT campo1, campo2, campo3
FROM nome_da_tabela
WHERE campo CONDIÇÃO valor

UPDATE - Atualizar algum (ou vários) valor(es) de um atributo que corresponda ao "WHERE" apontado.

  • Sempre colocar o "WHERE" para não correr o risco de atualizar TODOS os valores do atributo informado.
> UPDATE municipios SET uf = ‘TO’ WHERE nome = ‘Palmas’;

DELETE - Deletar algum (ou vários) registro(os) que corresponda ao "WHERE" apontado.

  • Sempre colocar o "WHERE" para não correr o risco de excluir TODOS os valores da tabela.
> DELETE FROM municipios WHERE nome = ‘Osasco’;

Comandos adicionais

Excluir uma tabela.

Apaga a tabela inteira.

DROP TABLE nome_da_tabela

Alteração de uma tabela.

Usado para ADICIONAR um atributo ou APAGAR um atributo.

> Adicionar atributo: 
ALTER TABLE nome_da_tabela ADD nome_do_campo TIPO

> Apagar atributo:
ALTER TABLE nome_da_tabela DROP COLUMN nome_do_campo

Exemplos:
ALTER TABLE periodo_letivo ADD DataNascimento DATE
ALTER TABLE periodo_letivo DROP COLUMN DataNascimento

Aula 02 - Modelagem de Dados - Projeto Lógico e MER (Model Entidade-Relacionamento)

MER

Classificação dos atributos

  • Simples: não são divididos em partes. Exemplo: atributo "nome" da entidade "cliente".
  • Compostos: são divididos em partes, pode-se dividir em mais de um campo sem perder a informação. Exemplo: atributo "nome" da entidade "cliente" poderia ser dividido em "nome" e "sobrenome".
  • Nulos: pode ou não possuir um valor ou seu valor pode ser desconhecido. Exemplo: campo "complemento" de um endereço, "nome do dependente", etc.
  • Derivado: é aquele cujo valor deriva de outros 2 campos. Exemplo: idade, tempo de conta corrente de um cliente.

Restrições de integridade

  • Restrição de unicidade de chave

    É a chave-primária OU é o que chamamos em um primeiro momento de chave-candidata (às vezes estamos rabiscando o modelo e a gente escolhe as chaves que são candidatas a chave-primaria, eventualmente elas podem se tornar quando a gente for fechar o modelo, então chamamos dessa forma)

  • Restrição de Integridade de Entidade

    Nunca pode ter uma chave-primária nula em hipótese alguma.

  • Restrição de Integridade Referencial

    Nunca deve-se excluir o registro da PK (primary-key) da tabela raíz, porque se isso acontecer pode-se perder a referência.

Tipos de Cardinalidade

  • 1, 1 (1 para 1)
  • 1, N (1 para Muitos)
  • N, 1 (Muitos para 1)
  • N, N (Muitos para Muitos)

Aula 02 - Comandos do MySQL

  • Criar índice na tabela.

    Ordena em ordem alfabética os dados.

    Note que para criar um índice para uma coluna textual é preciso defi- nir quantos caracteres iniciais do texto o índice considerará.

> CREATE INDEX nome_do_indice ON nome_da_tabela
(nome_da_coluna(comprimento_do_texto));

> CREATE INDEX index_nome_cliente ON cliente (nome(10));
  • Sintaxe do comando de criação de tabela.
create table nome_da_tabela
(
nome_de_coluna tipo( tamanho) [restrições ],
nome_de_coluna tipo( tamanho) [restrições ],
nome_de_coluna tipo( tamanho) [NULL | NOT NULL ], ...
);

Exemplo:

> create table tb_aluno
(
matricula integer not null,
nome varchar(40) not null,
dat_final date
);

Constraint (limitação): Restrição de Integridade - PK, FK (Foreign Key)

  • PK (Primary Key)

    Criação de chave primária. Basta inserir: CONSTRAINT apelidoTabela_pk PRIMARY KEY (atributo(os)_chave)

create table tb_aluno
(
matricula number(3) not null,
nome varchar(40) not null,
dat_final date,
CONSTRAINT tb_aluno_pk PRIMARY KEY (matricula )
);
  • FK (Foreign Key)

    Criação da chave estrangeira. Basta inserir: CONSTRAINT apelidoTabela_fk FOREIGN KEY (atributo(os)_chave) REFERENCES apelidoTabela_pk(atributo(os)_chave)

create table tb_aluno
(
matricula integer not null,
nome varchar(40) not null,
dat_final date,
departamento integer
CONSTRAINT tb_aluno_Fk FOREIGN KEY (departamento)
REFERENCES tb_departamento(departamento)
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment