Chaves Primárias e Estrangeiras Para Garantir a Integridade Referencial

Avatar do usuário
bernardino
Site Admin
Mensagens: 929
Registrado em: 28 Ago 2020, 15:11

Chaves Primárias e Estrangeiras Para Garantir a Integridade Referencial

Mensagem por bernardino »

Estruturando um banco de dados acadêmico no pgAdmin para gerenciar professores, turmas e alunos. Sua modelagem está bem organizada, com as devidas chaves primárias e estrangeiras para garantir a integridade referencial.

Resumo das Ações Realizadas

Criação das tabelas:

professor: contém código, nome e posteriormente foi adicionado um e-mail.

turma: inclui código, número, nível, professor responsável e depois foi adicionada uma coluna nome_turma.

aluno: inicialmente possuía uma coluna idade, mas foi substituída por dt_nascimento.

Alterações nas tabelas:
  • Adicionou e-mail na tabela professor.
  • Substituiu idade por dt_nascimento na tabela aluno.
  • Criou a coluna nome_turma na tabela turma.
Inserções e Atualizações:
  • Foram inseridos 3 professores com seus respectivos e-mails.
  • Foram inseridas 3 turmas associadas a professores.
  • Atualizações foram feitas na coluna nome_turma para definir nomes descritivos das turmas.
Fim do Resumo das Ações Realizadas

Criar Tabela Professor

Código: Selecionar todos

CREATE TABLE professor (
	codigo integer primary key,
	nome varchar(50)
);
Criar Tabela Turma

Código: Selecionar todos

CREATE TABLE turma (
	codigo integer primary key,
	numero integer,
	nivel varchar(50),
	cod_prof_responsavel integer,
	CONSTRAINT fk_cod_prof FOREIGN KEY (cod_prof_responsavel)
	REFERENCES professor (codigo)
);
Criar Tabela Turma

Código: Selecionar todos

CREATE TABLE aluno (
	codigo integer primary key,
	nome varchar(50),
	idade integer,
	cod_turma integer,
	CONSTRAINT fk_cod_turma FOREIGN KEY (cod_turma)
	REFERENCES turma (codigo)
);
Remover coluna de idade

Código: Selecionar todos

ALTER TABLE aluno DROP COLUMN idade;
Adicionar coluna data de nascimento

Código: Selecionar todos

ALTER TABLE aluno ADD COLUMN dt_nascimento DATE;
Adicionar coluna de e-mail na tabela professor

Código: Selecionar todos

ALTER TABLE professor ADD COLUMN email varchar(50);
Inserir dados na tabela de professor

Código: Selecionar todos

INSERT INTO professor (codigo, nome, email)
VALUES (1, 'Caio', '[email protected]'),
		(2, 'Davi', '[email protected]'),
		(3, 'Renata', '[email protected]');
Inserir dados nas tabelas

Código: Selecionar todos

INSERT INTO turma (codigo, numero, nivel, cod_prof_responsavel)
VALUES 	(1,145, 'SEM 1',1),
		(2,255, 'SEM 3',2),
		(3,263, 'SEM 4',1);
Adicionar novo campo de nome da turma na tabela turma

Código: Selecionar todos

ALTER TABLE turma ADD COLUMN nome_turma varchar(50);
Visualizar os dados cadastrados em, turma

Código: Selecionar todos

SELECT * FROM turma;
Atualizar dados da coluna nome_turma

Código: Selecionar todos

UPDATE turma SET nome_turma = 'Banco de dados'; 
Atualizar a turma 1 para programação de computadores

Código: Selecionar todos

UPDATE turma SET nome_turma = 'Programação de Computadores' WHERE codigo = 1; 
Atualizar a turma 2 para programação orientada a objetos

Código: Selecionar todos

UPDATE turma SET nome_turma = 'Programação Orientada a Objetos' WHERE cod_prof_responsavel = 2; 
Leia Mais: https://www.devmedia.com.br/sql-clausula-where/37645
Algumas pessoas acham que foco significa dizer sim para a coisa em que você vai se focar.
Mas não é nada disso.
Significa dizer não às centenas de outras boas ideias que existem.
Você precisa selecionar cuidadosamente.”

Steve Jobs
Avatar do usuário
bernardino
Site Admin
Mensagens: 929
Registrado em: 28 Ago 2020, 15:11

Re: 25/03

Mensagem por bernardino »

1. Insira três professores na tabela professor. Use os seguintes dados:

Professor(a) 1: Nome: João Souza, E-mail: [email protected]
Professor(a) 2: Nome: Mariana Silva, E-mail: [email protected]
Professor(a) 3: Nome: Carlos Mendes, E-mail: [email protected]

Código: Selecionar todos

INSERT INTO professor (codigo, nome, email)
VALUES 
    (4, 'João Souza', '[email protected]'),
    (5, 'Mariana Silva', '[email protected]'),
    (6, 'Carlos Mendes', '[email protected]');
2. Insira duas turmas na tabela turma relacionadas a professores já inseridos:

Turma 1: Número: 101, Nível: Fundamental, Nome da Turma: Turma A, Professor responsável: João Souza
Turma 2: Número: 102, Nível: Médio, Nome da Turma: Turma B, Professor responsável: Mariana Silva

Código: Selecionar todos

INSERT INTO turma (codigo, numero, nivel, nome_turma, cod_prof_responsavel)
VALUES 
    (4, 101, 'Fundamental', 'Turma A', 4),
    (5, 102, 'Médio', 'Turma B', 5);
3. Atualize o e-mail do professor João Souza para: [email protected].

Código: Selecionar todos

UPDATE professor SET email = '[email protected]' WHERE nome = 'João Souza';
4. Insira quatro alunos na tabela aluno, associando-os às turmas já existentes:

Aluno 1: Nome: 1001, Data de Nascimento: 2007-03-10, Turma: Turma A
Aluno 2: Nome: 1002, Data de Nascimento: 2006-11-25, Turma: Turma A
Aluno 3: Nome: 2001, Data de Nascimento: 2005-09-14, Turma: Turma B
Aluno 4: Nome: 2002, Data de Nascimento: 2005-01-07, Turma: Turma B

Código: Selecionar todos

INSERT INTO aluno (codigo, nome, dt_nascimento, cod_turma)
VALUES 
    (1001, '1001', '2007-03-10', 4),
    (1002, '1002', '2006-11-25', 4),
    (2001, '2001', '2005-09-14', 5),
    (2002, '2002', '2005-01-07', 5);
5. Atualize a turma do aluno de número 1002 para a Turma B.

Código: Selecionar todos

UPDATE aluno SET cod_turma = 5 WHERE codigo = 1002;
6. Insira uma nova turma na tabela turma:

Número: 103, Nível: Fundamental, Nome da Turma: Turma C, Professor responsável: Carlos Mendes

Código: Selecionar todos

INSERT INTO turma (codigo, numero, nivel, nome_turma, cod_prof_responsavel)
VALUES 
    (6, 103, 'Fundamental', 'Turma C', 6);
7. Atualize o nome da turma de número 102 para “Turma Avançada B”.

Código: Selecionar todos

UPDATE turma SET nome_turma = 'Turma Avançada B' WHERE numero = 102;
8. Insira mais dois alunos na nova turma (Turma C):

Aluno 5: Nome: 3001, Data de Nascimento: 2007-06-21, Turma: Turma C
Aluno 6: Nome: 3002, Data de Nascimento: 2006-12-12, Turma: Turma C

Código: Selecionar todos

INSERT INTO aluno (codigo, nome, dt_nascimento, cod_turma)
VALUES 
    (3001, '3001', '2007-06-21', 6),
    (3002, '3002', '2006-12-12', 6);
9. Atualize o professor responsável pela Turma A para o professor Carlos Mendes.

Código: Selecionar todos

UPDATE turma SET cod_prof_responsavel = 6 WHERE nome_turma = 'Turma A';

10. Insira um novo professor e altere o nome e o nível da turma de número 103:

- Novo professor: Nome: Ana Costa, E-mail: [email protected]

- Alterações na turma 103: Novo Nome: Turma Fundamental C Avançada, Novo Nível: Fundamental Avançado

Código: Selecionar todos

INSERT INTO professor (codigo, nome, email)
VALUES (7, 'Ana Costa', '[email protected]');

UPDATE turma SET nome_turma = 'Turma Fundamental C Avançada', nivel = 'Fundamental Avançado' WHERE numero = 103;
Professor
professor.png
professor.png (28.25 KiB) Exibido 4574 vezes
Turma
turma.png
turma.png (31.18 KiB) Exibido 4574 vezes
Aluno
aluno.png
aluno.png (19.96 KiB) Exibido 4574 vezes
Algumas pessoas acham que foco significa dizer sim para a coisa em que você vai se focar.
Mas não é nada disso.
Significa dizer não às centenas de outras boas ideias que existem.
Você precisa selecionar cuidadosamente.”

Steve Jobs
Responder