Você está na página 1de 65

Gabriel Carrijo Introdução a Banco de Dados

DISCIPLINA: Introdução a Banco de Dados

Professor Formador: Gabriel Carrijo


UNIDADE IV

Conteúdo: Linguagem de Definição de Dados.


Mas antes...
Vamos relembrar o estudo de caso da
aula passada...
Estudo de caso
• Para o decorrer da nossa disciplina, iremos trabalhar
com um estudo de caso.
• Você pode criar o diagrama em alguma ferramenta
online, recomendo uma das seguintes:
– https://creately.com/pt/lp/ferramenta-de-diagrama-er-
online/
– https://www.lucidchart.com/pages/pt/exemplos/diagrama
-entidade-relacionamento-online
– https://draw.io
Estudo de caso
• Crie um diagrama ER para o Programa Novos
Caminhos.
– As entidades serão:
• Curso
• Disciplina
• Professor
• Aluno
• Histórico (contendo notas dos alunos nas disciplinas)
Falando sobre chaves
• Em SQL existem basicamente dois tipos de
chaves:
– Chaves Primárias;
– Chaves Estrangeiras.
Chaves Primárias
• A chave primária, ou primary key, é o conceito
mais básico relacionado à organização em um
banco de dados.
• A maioria das tabelas possuirá uma, e somente
uma, chave primária.
• Essa chave é utilizada como identificador único
da tabela, sendo representada por aquele campo
(ou campos) que não receberá valores repetidos.
Chaves Primárias
• Quais são as chaves primárias do nosso Estudo
de Caso?
Chaves Primárias
• Quais são as chaves primárias do nosso Estudo
de Caso?
– Tabela Curso -> ID_Curso
– Tabela Disciplina -> ID_Disciplina
– Tabela Professor -> CPF
– Tabela Aluno -> CPF
Chaves Estrangeiras
• A chave estrangeira, ou foreign key, é um
conceito ligeiramente diferente.
• Ela não diz respeito, especificamente, a uma
tabela, mas sim a um relacionamento entre
tabelas.
• De forma sucinta, a chave estrangeira é uma
referência em uma tabela a uma chave primária
de outra tabela.
Chaves Estrangeiras
• Para facilitar a compreensão, tomemos como
exemplo duas tabelas: Pessoa e Carro.
• Para montarmos um relacionamento entre
elas poderíamos ter na tabela Carro o campo
ID_Pessoa fazendo referência à chave primária
da tabela Pessoa.
Chaves Estrangeiras
• Quais são as chaves estrangeiras do nosso
Estudo de Caso?
– Lembrando que cada relacionamento será a
relação entre uma Chave Primária e uma Chave
Estrangeira.
Chaves Estrangeiras
• Quais são as chaves estrangeiras do nosso
Estudo de Caso?
– Tabela Disciplina -> ID_Curso e CPF_Professor
– Tabela Histórico -> ID_Disciplina e CPF_Aluno
Vídeo
Chaves: primária, estrangeira e candidata

http://ddsoft.ru/search/SteelSoft%20TV/

https://youtu.be/bvjWvaMMB6c
Tipos de dados mais usados
Nome Características
DECIMAL(M,D) Ponto decimal com M dígitos no total (precisão) e D casas
decimais (escala); o padrão é 10,0; M vai até 65 e D até 30.
INT Número inteiro; Indo de -2.147.483.648 a 2.147.483.647 ou 0 a
4.294.967.295
BIGINT Número inteiro; Indo de -9.223.372.036.854.775.808 a
9.223.372.036.854.775.807 ou 0 a 18.446.744.073.709.551.615
SMALLINT Número inteiro; Indo -32.768 a 32.767 ou 0 a 65.535
CHAR(M) String que ocupa tamanho fixo entre 0 e 255 caracteres
VARCHAR(M) String de tamanho variável, até 65535 caracteres.
MEDIUMTEXT Permite armazenar até 16.777.215 caracteres.
LONGTEXT Permite armazenar até 4.294.967.295 caracteres.
Tipos de dados mais usados
Nome Características
BOOL / BOOLEAN Valores binários 0 / 1
BLOB / Campo com tamanho máximo de 65535 caracteres binários;
MEDIUMBLOB/ ‘Binary Large Objects’, são usados para armazenar grandes
TINYBLOB quantidades de dados, como imagens.
DATE Uma data de 01/01/1000 a 31/12/9999, no formato YYYY-MM-
DD
DATETIME Uma combinação de data e hora de 01/01/1000 00:00:00 a
31/12/9999 23:59:59, no formato YYYY-MM-DD HH:MM:SS
TIME Hora apenas, no formato HH:MM:SS
YEAR(M) Ano nos formatos de 2 ou 4 dígitos; Se forem 2 (YEAR(2)), ano vai
de 1970 a 2069; para 4 (YEAR(4)), vai de 1901 a 2155. O padrão é
4.
Tabelas do nosso Estudo de Caso
• Vamos criar as tabelas a serem utilizadas em
nosso Banco de Dados, baseado no Diagrama
mostrado anteriormente, juntamente com os
tipos de dados demonstrados.
Tabelas do nosso Estudo de Caso
Curso
ID_Curso SMALLINT AUTO_INCREMENT PRIMARY KEY
Nome VARCHAR(50)
Carga_Horaria SMALLINT

Professor
CPF CHAR(11) PRIMARY KEY
Nome VARCHAR(50)
Email VARCHAR(50)
Tabelas do nosso Estudo de Caso
Disciplina
ID_Disciplina SMALLINT AUTO_INCREMENT PRIMARY KEY
Nome VARCHAR(50)
Carga_Horaria SMALLINT
Curso FOREIGN KEY (Curso) REFERENCES Curso (ID_Curso)
Professor FOREIGN KEY (Professor) REFERENCES Professor (CPF)
Tabelas do nosso Estudo de Caso
Aluno
CPF CHAR(11) PRYMARY KEY
Nome VARCHAR(50)
E-mail VARCHAR(50)

Histórico
CPF_Aluno FOREIGN KEY REFERENCES Aluno (CPF)
ID_Disciplina FOREIGN KEY REFERENCES Disciplina (ID_Disciplina)
Nota DECIMAL
Utilizando um SGBD
• Utilizaremos para nossas aulas o SGBD Mysql
na sua versão Open Source.
• Inicialmente iremos instalar o SGBD.
Vídeo
Como Baixar e Instalar MySQL 8.0 e MySQL Workbench
no Windows 10

http://ddsoft.ru/search/SteelSoft%20TV/

https://youtu.be/fmerTu7dWk8
Utilizando o Banco de Dados
• Utilizaremos o Mysql Workbench para
manipular nosso banco de dados.
Criando um Banco de Dados
• Iremos utilizar o comando CREATE DATABASE
para a criação de um banco de dados:
– CREATE DATABASE teste;
• Após, clique no símbolo destacado abaixo
para a execução.
Criando um Banco de Dados
• Você pode verificar se o Banco de Dados foi
criado, com a utilização do comando SHOW
DATABASES
Excluindo um Banco de Dados
• Iremos utilizar o comando DROP DATABASE
para a exclusão de um banco de dados:
– DROP DATABASE teste;
Excluindo um Banco de Dados
• Você pode verificar se o Banco de Dados foi
excluído, com a utilização do comando SHOW
DATABASES
Vídeo
MySQL - Criação de um Banco de Dados - 05

http://ddsoft.ru/search/SteelSoft%20TV/

https://youtu.be/_NPU_o0n-fo
Criando Tabelas
• Antes da criação das tabelas, vamos criar um
banco de testes em nosso Mysql:
– CREATE DATABASE teste;
• Logo depois vamos selecionar o banco teste
para a criação da tabela:
– USE teste;
Criando Tabelas
• Para criação de tabelas utilizamos o comando
CREATE TABLE.
– Exemplo:
CREATE TABLE tabela_teste (
ID_teste SMALLINT PRIMARY KEY,
Nome VARCHAR(50),
Valor DECIMAL
);
Criando Tabelas
• Para verificar se a tabela realmente foi criada,
utilize o comando SHOW TABLES;
Excluindo Tabelas
• Para remover a tabela criada acima, utilize o
comando DROP TABLE tabela_teste;
Excluindo Tabelas
• Para verificar se a tabela realmente foi
excluída, utilize o comando SHOW TABLES;
Vídeo
MySQL - Criação de Tabelas - CREATE TABLE - Curso de
Bancos de Dados - 07

http://ddsoft.ru/search/SteelSoft%20TV/

https://youtu.be/H1_3ttK2Wbw
Alterando Tabelas
• Primeiro vamos selecionar nosso banco de
dados teste:
– USE teste;
Alterando Tabelas
• Antes de alterar, vamos recriar a tabela_teste
em nosso banco de dados teste:
CREATE TABLE tabela_teste (
ID_teste SMALLINT PRIMARY KEY,
nome VARCHAR(50),
valor DECIMAL
);
Criando Tabelas
• Para verificar se a tabela realmente foi criada,
utilize o comando SHOW TABLES;
Alterando Tabelas
• Podemos alterar uma tabela removendo um
atributo (campo).
• Por exemplo, vamos remover o atributo valor
da nossa tabela_teste:
ALTER TABLE tabela_teste DROP COLUMN valor;
Alterando Tabelas
• Para validar a remoção do campo, podemos
usar o comando:
SHOW COLUMNS FROM tabela_teste;
Alterando Tabelas
• Podemos alterar uma tabela adicionando um
atributo (campo).
• Por exemplo, vamos adcionar o atributo valor
da nossa tabela_teste:
ALTER TABLE tabela_teste ADD valor DECIMAL;
Alterando Tabelas
• Para validar a remoção do campo, podemos
usar o comando:
SHOW COLUMNS FROM tabela_teste;
Alterando Tabelas
• Podemos alterar uma tabela modificando o tipo
de um atributo (campo).
• Por exemplo, vamos alterar o atributo nome da
nossa tabela_teste para VARCHAR(80) e
acrescentando o NOT NULL, para impedir o não
preenchimento do campo:
ALTER TABLE tabela_teste
MODIFY nome VARCHAR(80) NOT NULL;
Alterando Tabelas
• Para validar a ALTER TABLE tabela_teste
• CHANGE COLUMN nome nome_do_teste
VARCHAR(80) NOT NULL; do campo, podemos
usar o comando:
SHOW COLUMNS FROM tabela_teste;
Alterando Tabelas
• Podemos alterar uma tabela modificando o
nome um atributo (campo).
• Por exemplo, vamos alterar o atributo nome
da nossa tabela_teste para nome_do_teste:
ALTER TABLE tabela_teste
CHANGE COLUMN nome nome_do_teste
VARCHAR(80) NOT NULL;
Alterando Tabelas
• Para validar a alteração do campo, podemos
usar o comando:
SHOW COLUMNS FROM tabela_teste;
Alterando Tabelas
• Podemos alterar o nome de uma tabela.
• Por exemplo, vamos alterar o nome da tabela
tabela_teste para nova_tabela_teste:
ALTER TABLE tabela_teste
RENAME TO nova_tabela_teste;
Alterando Tabelas
• Para validar a alteração do campo, podemos
usar o comando:
SHOW TABLES;
Vídeo
MySQL - Alterar Tabelas - ALTER TABLE e visualizar
Relacionamentos - 10

http://ddsoft.ru/search/SteelSoft%20TV/

https://youtu.be/ZTWhdNG963M
Estudo de caso
Estudo de caso
• Vamos criar nosso Banco de Dados
Novos_Caminhos.
Estudo de caso
• Vamos selecionar nosso Banco de Dados
Novos_Caminhos.
Estudo de caso
• Vamos criar nossa tabela Cursos:
CREATE TABLE Cursos (
ID_Curso SMALLINT AUTO_INCREMENT
PRIMARY KEY,
Nome VARCHAR(50) NOT NULL,
Carga_Horaria SMALLINT NOT NULL);
Estudo de caso
• Vamos criar nossa tabela Professor:
CREATE TABLE Professor (
CPF CHAR(11) PRIMARY KEY,
Nome VARCHAR(50) NOT NULL,
Email VARCHAR(50) NOT NULL);
Estudo de caso
• Vamos criar nossa tabela Aluno:
CREATE TABLE Aluno (
CPF CHAR(11) PRIMARY KEY,
Nome VARCHAR(50) NOT NULL,
Email VARCHAR(50) NOT NULL);
Estudo de caso
• Vamos criar nossa tabela Disciplina:
CREATE TABLE Disciplina (
ID_Disciplina SMALLINT AUTO_INCREMENT PRIMARY KEY,
Nome VARCHAR(50) NOT NULL,
Carga_Horaria SMALLINT NOT NULL,
Curso SMALLINT,
Professor CHAR(11),
FOREIGN KEY (Curso) REFERENCES Cursos (ID_Curso),
FOREIGN KEY (Professor) REFERENCES Professor (CPF) );
Estudo de caso
• Vamos criar nossa tabela Historico:
CREATE TABLE Historico (
Aluno CHAR(11),
Disciplina SMALLINT,
Nota DECIMAL NOT NULL,
FOREIGN KEY (Aluno) REFERENCES Aluno (CPF),
FOREIGN KEY (Disciplina) REFERENCES Disciplina
(ID_Disciplina) );
Estudo de caso
• Execute o comando SHOW TABLES para ver as
tabelas criadas no banco:
Estudo de caso
• Execute cada um dos comandos abaixo para ver o
conteúdo das tabelas:
SHOW COLUMNS FROM Cursos;
SHOW COLUMNS FROM Professor;
SHOW COLUMNS FROM Aluno;
SHOW COLUMNS FROM Disciplina;
SHOW COLUMNS FROM Historico;
Referência Bibliográfica

• DATE, C. J. Introdução a sistemas de banco de


dados. Rio de Janeiro: Elsevier, 2003.
• HEUSER, Carlos Alberto. Projeto de banco de
dados. 6. Ed. Porto Alegre: Bookman, 2009.
• BEIGHLEY, Lynn. Use a cabeça! SQL. Rio de
Janeiro: Alta Books, 2010.
Atividade 3 no AVA:
• Questionário 3 (10 pontos)
• Período de Realização: 08/09/2020 à 27/09/2020

Você também pode gostar