Exercícios
  1. Preparar BD:
    1. Criar tabela de cliente:
      Nome da Coluna Tipo de Dado Restrição de Dados
      cli_codigo integer not null
      cli_nome varchar(20)  

    2. 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)  

    3. Criar as pks:
      Nome da Tabela Nome da PK Nome da Coluna
      cliente pk_cliente cli_codigo
      emprestimo pk_emprestimo emp_numero

  2. Relacionamento 1 cliente para 1 empréstimo:
    1. Exportar a pk de Cliente para a fk em empréstimo:
      1. Criar o campo cli_codigo com o mesmo nome e tipo em empréstimo:
        alter table emprestimo
        add cli_codigo integer
      2. 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
    2. Tornar emprestimo único para cada cliente:
      1. Criar um índice único na fk:
        create unique index ix_emprestimo_cli_codigo
        on emprestimo(cli_codigo)
    3. Realizar o relacionamento:
      1. Inserir um registro na tabela Mestre:
        Insert into cliente values(1,’PEDRO’)
      2. Inserir um registro na tabela Detalhe, relacionado com a tabela Mestre:
        Insert into emprestimo values(1, 100, 1);
    4. Violar o relacionamento:
      1. Tentar inserir mais de um registro na tabela Detalhe, relacionado com a tabela Mestre:
        Insert into emprestimo values(2, 200, 1);
    5. Mostrar todas as colunas e todos os registros de cliente.
    6. Mostrar todas as colunas e todos os registros de emprestimo.
    7. Mostrar o nome de cada cliente e o valor do seu emprestimo.

  3. Relacionamento 1 cliente para muitos emprestimos:
    1. Exportar a pk de Cliente para a fk em empréstimo:
      1. Criar o campo cli_codigo com o mesmo nome e tipo em empréstimo:
      2. Criar a regra de restrição de integridade referencial em empréstimo:
    2. Realizar o relacionamento:
      1. Inserir um registro na tabela Mestre:
        Insert into cliente values(1,’PEDRO’)
      2. 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);

    3. Violar o relacionamento:
      1. Tentar inserir um registro na tabela Detalhe, NÃO relacionado com a tabela Mestre:
        Insert into emprestimo values(2, 200, 10);
    4. Mostrar todas as colunas e todos os registros de cliente.
    5. Mostrar todas as colunas e todos os registros de emprestimo.
    6. Mostrar o nome de cada cliente e o valor dos seus emprestimos.
    7. Mostrar o nome de cada cliente e o valor total dos seus emprestimos.
    8. 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.

  4. Relacionamento muitos cliente para muitos emprestimos:
    1. 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

    2. Exportar a pk de emprestimo para a fk em emp_do_cli:
      1. Criar o campo emp_numero com o mesmo nome e tipo em emp_do_cli:
      2. Criar a regra de restrição de integridade referencial em emp_do_cli:
    3. Exportar a pk de Cliente para a fk em emp_do_cli:
      1. Criar o campo cli_codigo com o mesmo nome e tipo em emp_do_cli:
      2. Criar a regra de restrição de integridade referencial em emp_do_cli:
    4. Realizar o relacionamento:
      1. Inserir muitos registros na tabela Mestre cliente:
        Insert into cliente values(1,’PEDRO’);
        Insert into cliente values(2,’MAURO’);
      2. Inserir muitos registros na tabela Mestre emprestimo:
        Insert into emprestimo values(1, 100);
        Insert into emprestimo values(2, 200);
      3. 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);

    5. Violar o relacionamento:
      1. Tentar inserir um registro na tabela Detalhe, NÃO relacionado com a tabela Mestre:
        Insert into emprestimo values(3, 1);


Hosted by www.Geocities.ws

1