- Preparar BD:
- Criar tabela de cliente:
| Nome da Coluna |
Tipo de Dado |
Restrição de Dados |
| cli_codigo |
integer |
not null |
| cli_nome |
varchar(20) |
|
- Criar tabela de empréstimo:
| Nome da Coluna |
Tipo de Dado |
Restrição de Dados |
| emp_numero |
integer |
not null |
| emp_valor |
numeric(15,2) |
|
- Criar as pks:
| Nome da Tabela |
Nome da PK |
Nome da Coluna |
| cliente |
pk_cliente |
cli_codigo |
| emprestimo |
pk_emprestimo |
emp_numero |
- Relacionamento 1 cliente para 1 empréstimo:
- Exportar a pk de Cliente para a fk em empréstimo:
- Criar o campo cli_codigo com o mesmo nome e tipo em empréstimo:
alter table emprestimo
add cli_codigo integer
- Criar a regra de restrição de integridade referencial em empréstimo, relacionando a fk(cli_codigo) com a pk(cli_codigo) de cliente:
| Tabela Detalhe |
Nome da FK |
Coluna da FK |
Tabela Mestre |
Coluna da PK |
| emprestimo |
fk_emprestimo_1 |
cli_codigo |
cliente |
cli_codigo |
- Tornar emprestimo único para cada cliente:
- Criar um índice único na fk:
create unique index ix_emprestimo_cli_codigo
on emprestimo(cli_codigo)
- Realizar o relacionamento:
- Inserir um registro na tabela Mestre:
Insert into cliente values(1,’PEDRO’)
- Inserir um registro na tabela Detalhe, relacionado com a tabela Mestre:
Insert into emprestimo values(1, 100, 1);
- Violar o relacionamento:
- Tentar inserir mais de um registro na tabela Detalhe, relacionado com a tabela Mestre:
Insert into emprestimo values(2, 200, 1);
- Mostrar todas as colunas e todos os registros de cliente.
- Mostrar todas as colunas e todos os registros de emprestimo.
- Mostrar o nome de cada cliente e o valor do seu emprestimo.
- Relacionamento 1 cliente para muitos emprestimos:
- Exportar a pk de Cliente para a fk em empréstimo:
- Criar o campo cli_codigo com o mesmo nome e tipo em empréstimo:
- Criar a regra de restrição de integridade referencial em empréstimo:
- Realizar o relacionamento:
- Inserir um registro na tabela Mestre:
Insert into cliente values(1,’PEDRO’)
- Inserir muitos registros na tabela Detalhe, relacionados com a tabela Mestre:
Insert into emprestimo values(1, 100, 1);
Insert into emprestimo values(2, 200, 1);
- Violar o relacionamento:
- Tentar inserir um registro na tabela Detalhe, NÃO relacionado com a tabela Mestre:
Insert into emprestimo values(2, 200, 10);
- Mostrar todas as colunas e todos os registros de cliente.
- Mostrar todas as colunas e todos os registros de emprestimo.
- Mostrar o nome de cada cliente e o valor dos seus emprestimos.
- Mostrar o nome de cada cliente e o valor total dos seus emprestimos.
- Inserir outro registro na tabela Mestre:
Insert into cliente values(2,'MAURO')
... e mostrar o nome de cada cliente e o valor total dos seus emprestimos, mesmo que ele não tenha feito emprestimo.
- Relacionamento muitos cliente para muitos emprestimos:
- Criar tabela de relacional emp_do_cli (emprestimos do cliente):
| Nome da Coluna |
Tipo de Dado |
Restrição de Dados |
| emp_numero |
integer |
not null |
| cli_codigo |
integer |
not null |
- Exportar a pk de emprestimo para a fk em emp_do_cli:
- Criar o campo emp_numero com o mesmo nome e tipo em emp_do_cli:
- Criar a regra de restrição de integridade referencial em emp_do_cli:
- Exportar a pk de Cliente para a fk em emp_do_cli:
- Criar o campo cli_codigo com o mesmo nome e tipo em emp_do_cli:
- Criar a regra de restrição de integridade referencial em emp_do_cli:
- Realizar o relacionamento:
- Inserir muitos registros na tabela Mestre cliente:
Insert into cliente values(1,’PEDRO’);
Insert into cliente values(2,’MAURO’);
- Inserir muitos registros na tabela Mestre emprestimo:
Insert into emprestimo values(1, 100);
Insert into emprestimo values(2, 200);
- Inserir muitos registros na tabela Detalhe emp_do_cli, relacionados com as tabelas Mestre cliente e emprestimo:
Insert into emp_do_cli values(1, 1);
Insert into emp_do_cli values(1, 2);
Insert into emp_do_cli values(2, 2);
- Violar o relacionamento:
- Tentar inserir um registro na tabela Detalhe, NÃO relacionado com a tabela Mestre:
Insert into emprestimo values(3, 1);
|