MESTRADO EM ENGENHARIA ELECTROTÉCNICA E COMPUTADORES TÓPICOS AVANÇADOS DE BASES DE DADOS Exame final Com consulta Duração: 2H30 97-07-02 4 (4.0) 4.1 Em SQL embebido numa linguagem hospedeira, existe o comando EXEC SQL DECLARE CURSOR meucursor FOR SELECT * FROM TABELA; a) Qual o seu objectivo e em que circunstâncias se usa? Que problema visa resolver? b) Como compara este comando com a construção os_Cursor do ObjectStore? 4.2 Considere que se adicionava a um sistema relacional uma construção linguística que permitisse construir objectos complexos pela inclusão de valores de outras classes. Exemplo: CREATE TABLE emp ( nr NUMBER, dept departamento); CREATE TABLE departamento (nome VARCHAR2(25), director emp); a) Que comentários lhe suscita esta solução? b) Qual a diferença entre tipo e classe? c) Caso pretendesse expandir a funcionalidade dos sistemas relacionais no sentido de suportar tipos de dados definidos pelo utilizador, que tipo de estratégia utilizaria? 5 (6.0) A TRACK&STOCK é uma empresa especializada em armazenamento e transporte de mercadorias. A empresa possui um conjunto de armazéns espalhados pelo país e uma frota de transportes terrestres que diariamente movimentam mercadorias entre os mais diversos locais indicados pelos seus clientes. Os clientes recorrem à TRACK&STOCK para armazenamento e/ou transporte de mercadorias, evitando assim a necessidade de manutenção de frotas de viaturas e de instalações para armazenamento de mercadorias. A empresa encontra-se numa fase de expansão e, para tal, irá desenvolver novos sistemas de software que lhe permitam acompanhar o seu crescimento. Após um levantamento inicial de requisitos, apurou-se a seguinte informação como sendo a mais relevante: 1. A empresa possui uma frota de camiões especializados para o transporte de diferentes mercadorias. 2. As mercadorias são agrupadas em categorias, consoante as suas necessidades específicas de acondicionamento e transporte. Eis alguns exemplos: frágeis, perecíveis, inflamáveis, congeladas, etc. 3. O armazenamento e transporte das mercadorias é feito em paletes, as quais possuem formatos normalizados. 4. Os camiões podem ser de diferentes modelos e marcas, pelo que são agrupados em classes, consoante as categorias de mercadorias que estão habilitados a transportar. Para cada classe pretende-se saber a sua capacidade de transporte para cada uma das categorias de mercadorias. Sobre os camiões deverá conhecer-se a matrícula, a marca, modelo e ano. 5. A empresa emprega diversos motoristas para a condução dos camiões, dos quais se conhece o nome, endereço, n.º contribuinte e idade. 6. Os motoristas executam tarefas, sendo cada uma delas constituída por uma sequência de ordens de serviço. As ordens de serviço podem ser de marcha, de carga e de Gabriel David / João Correia Lopes 1 FEUP MEEC Tópicos Avançados de Bases de Dados descarga. As ordens de marcha indicam ao motorista para seguir para determinado endereço. As ordens de carga e descarga indicam ao motorista que no local em que estiver deverá carregar ou descarregar determinadas paletes de mercadorias. 7. A empresa possui um conjunto de armazéns dispersos pelo país. Os armazéns estão aptos a receber qualquer categoria de mercadorias. Sobre os armazéns deverá saberse o seu nome e endereço. Para cada armazém pretende-se saber a capacidade de armazenamento para cada uma das categorias de mercadorias. 8. Cada palete ao ser armazenada é registada. Neste registo constará a data e hora de entrada em armazém e a sua localização. Ao ser carregada, registar-se-á a data e hora de saída de armazém. 9. Os pedidos podem ser de três tipos: carga, descarga ou transporte. Os pedidos de carga apenas indicam o local e data de carga da mercadoria. De igual modo, os pedidos de descarga apenas indicam o local e data de descarga da mercadoria. Os pedidos de transporte indicam o local e data de carga e de descarga da mercadoria. 10.Os pedidos são emitidos remotamente pelos clientes através de computador. Para cada pedido recebido, é verificada a sua correcção e viabilidade de execução nas condições solicitadas pelo cliente. Em caso afirmativo, é confirmada a aceitação do pedido e este será escalonado para ser executado futuramente. Em caso negativo, o pedido é considerado suspenso e são comunicadas ao cliente propostas de alteração de dia e hora por forma a viabilizar a sua execução. 11.Os pedidos são constituídos por várias linhas, sendo em cada linha discriminada a categoria da mercadoria, o formato e a quantidade das paletes a transportar e/ou armazenar. 12.Os dados dos clientes a armazenar são o nome, os seus diversos endereços, e o n.º de contribuinte. a) b) c) d) Defina um esquema (só a parte dos dados) para a BD descrita, usando o sistema ObjectStore. Justifique as opções que tomar. Baseando-se no esquema obtido em a), esquematize um algoritmo que lhe permitisse saber quanto tempo uma dada palete passou num certo armazém, para um período indicado. Que query empregaria para listar todas as ordens de serviço que o motorista X tem para cumprir hoje? O que é uma raiz da Base de Dados ObjectStore? Para que serve? Gabriel David / João Correia Lopes 2 FEUP