EXERCÍCIO DE BANCO DE DADOS Considere que uma empresa contrata estagiários e que cada um deles está associado a um supervisor e a um orientador. As pessoas trabalham em departamentos, de acordo com tabela departamento. Tanto o estagiário, quanto o supervisor e o orientador são pessoas cujas informações estão armazenadas na tabela pessoa. A descrição das tabelas é a seguinte: pessoa CAMPO codigo nome cod_depto TIPO Numérico até 8 dígitos Texto até 50 caracteres Numérico até 8 dígitos departamento DESCRIÇÃO Código da pessoa CAMPO codigo Nome da pessoa descricao Código do departamento onde a pessoa trabalha ramal TIPO Numérico até 8 dígitos Texto até 100 caracteres Numérico até 4 dígitos DESCRIÇÃO Código do departamento Descrição do departamento Ramal do departamento estagiario CAMPO codigo cod_sup cod_or data_inicio data_fim TIPO Numérico até 8 dígitos Numérico até 8 dígitos Numérico até 8 dígitos Data Data DESCRIÇÃO Código do estagiário Código do supervisor Código do orientador Data de início do estágio Data final do estágio Na resolução das questões abaixo, considere que o banco de dados é o PostgreSQL. 1. 2. 3. 4. Escreva os comandos SQL para criar as tabelas, incluindo as chaves primárias e chaves estrangeiras. Ao criar as tabelas considere que todo estagiário, supervisor ou orientador deve estar presente na tabela pessoa e que todo departamento referenciado na tabela pessoa deve existir na tabela departamento. Imponha a restrição de que a data final deve ser posterior à data inicial e que a diferença deve ser de pelo menos 30 dias. Imponha a restrição de que o supervisor e o orientador não podem ser a mesma pessoa. O código da pessoa e do departamento devem ser gerados automaticamente (autoincrementados). Exceto pelo ramal do departamento, nenhum outro campo poderá ser nulo. As chaves primárias serão os campos sombreados acima. Utilize tipos de dados adequados para cada campo. Escreva um comando SQL para selecionar o código e descrição de todos os departamentos e o número de estagiários em cada departamento. Somente devem ser considerados os estagiários cuja data final não tenha sido ultrapassada. Ordenar pela descrição do departamento. Escreva um comando SQL para selecionar o código, o nome e a quantidade de estagiários de todos os orientadores que tiverem mais do que 10 estagiários orientados. Somente devem ser considerados os estagiários cuja data final não tenha sido ultrapassada. Ordenar pelo nome do orientador. Escreva um comando SQL para selecionar código e nome do estagiário, código e nome do supervisor, código e nome do orientador, código e nome do departamento e data final de todos os estagiários. Ordenar pelo código do supervisor, código do orientador e nome do estagiário.