Revisão ER /SQL / PL Exemplo • Um clube social deseja informatizar suas atividades utilizando banco de dados contendo: – Sócios(matrícula, nome, endereço, situação com relação à tesouraria); – Esportes(código,modalidade, horários); – Dependências esportivas(código, descrição, status); – Instrutores(cpf, matrícula, nome); Exemplo • Cada instrutor ministra um único esporte, o qual pode ter vários instrutores alocados; • Um sócio pode compartilhar várias dependências esportivas e cada uma delas pode ser compartilhada por vários sócios; • Para cada sócio, deve ser registrada a utilização de dependências esportivas com data e duração da utilização; • Para cada sócio, o sistema deve registrar todos os esportes que pratica. Um sócio pode praticar vários esportes e vice_versa. Nome Modalidade Endereço Situação Código Horários Matrícula m Sócios n Esporte Pratica m 1 Data Usa Ministra Duração n Código n Descrição Nome CPF Status Matrícula Dependências Instrutores PL/SQL i) Apresente o modelo lógico normalizado ii) Altere a definição da Relação Dependencias para criar um atributo que armazena a quantidade de vezes que a dependência foi utilizada. iii) Qual a modalidade do Esporte com o maior número de instrutores e quantos são esses instrutores? iv) Escreva um trigger para que a cada inserção de um uso da quadra seja alterada a quantidade de usos na relação Dependencias. PL/SQL i) Esquema Normalizado SOCIOS (Matricula, Nome, Endereco, Situacao) ESPORTE (Codigo, Modalidade) DEPENDÊNCIAS (Codigo, Descricao, Status) INSTRUTORES(CPF, Matricula, Nome, Cod_esporte) Cod_esporte referencia ESPORTE (Codigo) PL/SQL USA (CódigoDep, MatriculaS,Data, Duração) CodigoDep referencia Dependencia (Codigo), MatriculaS referencia Socios ( Matricula) PRATICA(MatS, CodE) Mat referencia Socio (Matricula), CodE referencia Esporte (Codigo) Horarios(CodE, HoraEsporte) PL/SQL ii) ALTER TABLE DEPENDENCIAS ADD (Quant Number); PL/SQL iii)CREATE OR REPLACE TRIGGER trig_3 AFTER INSERT ON USA FOR EACH ROW BEGIN UPDATE DEPENDENCIAS SET QUANT = QUANT +1 WHERE CODIGO = :NEW.CODIGODEP; END; /