Relatório Final Informação Judicial Licenciatura Engenharia Informática e Computação Laboratório de Base de Dados Helder Coelho, [email protected] Sérgio Correia, [email protected] Turma 3 – lbd032 Laboratório Base Dados FEUP - LEIC Índice 1. Introdução 2. Alterações e Correcções 3. Instância Exemplo 4. Definição de Triggers 5. Consultas 6. Interface Gráfica 7. Casos de Teste 8. Conclusões e Perspectivas de Desenvolvimento 9. Bibliografia Informação Judicial Pág. 2 4 6 15 18 22 29 20 31 pág. 1 / 31 Laboratório Base Dados FEUP - LEIC 1. Introdução No âmbito da disciplina de Laboratório de Base de Dados, foi proposto a realização de um projecto com recurso a tecnologia de base de dados. As ferramentas que foram postas à disposição foram as ferramentas da ORACLE para o desenvolvimento de software, como o Oracle Designer. Este relatório descreve toda a fase final da implementação do trabalho através dessas ferramentas. Nesta fase foram implementados todos os módulos que constituem o site da base de dados. Serão descritos os diversos detalhes de implementação, nomeadamente, informação sobre triggers, procedimentos e funções que foram implementados. Como foram feitas algumas alterações ao modelo entidade associação e ao esquema relacional, colocam-se todas as alterações realizadas. Por ultimo são dadas informações específicas sobre a interface gráfica, dos casos de teste e dos dados que servem de exemplo para a demonstração do site. 1.1. Motivação Actualmente, as diferentes partes envolvidas na gestão da informação quer judicial, quer civil ou automóvel, está distribuída por diferentes sistemas de informação e de difícil interligação; existem casos até que os sistemas informáticos são inexistentes, fazendo-se os vários processos tendo como base o papel, o resultado é o atraso de informação vital. Por exemplo, na identificação de um automóvel roubado, com as diferentes fases de burocracia que hoje em dia tudo se processa, os agentes tomam conhecimento da ocorrência fora de um prazo útil, limitando as hipóteses de ser cumprida a lei. Um dos problemas que as autoridades, hoje em dia, se deparam é a ausência de cruzamento de informação entre diferentes instituições, neste aspecto a existência de um único sistema que trata várias vertentes de informação do cidadão, é evidente que virá facilitar a investigação de aspectos que demoram bastante tempo. Com este sistema não se podem esperar milagres, mas pode-se esperar muitos melhoramentos no cumprimento da lei em tempo útil, no acesso à informação judicial de forma menos burocrática e mais aberta ao cidadão, colocando a tecnologia ao serviço da cidadania. Numa situação hipotética e muito remota gostaríamos de poder dar seguimento a este projecto e dar-lhe alguma utilidade real. Para que não seja um trabalho académico unicamente avaliado e deixado de lado para esquecer. Quem trabalha gosta sempre que o seu trabalho dê frutos e gostaríamos que continuar e amadurecer esta solução. No que toca às ferramentas utilizadas deparamo-nos com diversas dificuldades, principalmente aquando da geração das tabelas para o servidor, pois encontrava diversos erros, alguns sem razão aparente. Mas com o tempo e aprendizagem verificamos que a base de dados Oracle é uma solução poderosíssima e que poupa imenso trabalho, gerando uma grande parte do código. Neste trabalho a parte em que tivemos de estudar mais a fundo foi o estudo da linguagem web pl/sql, pois não sabíamos como funcionava e a documentação era Informação Judicial pág. 2 / 31 Laboratório Base Dados FEUP - LEIC reduzida, pois a linguagem para a web é diferente da linguagem para os forms. No nosso trabalho usamos esta linguagem para criar certas consultas, que foram pedidas pelos docentes, mas que na nossa opinião o facto de a nossa aplicação ser basicamente um repositório de informação, que os diferentes actores irão aceder. 1.2. Estrutura do Trabalho Este trabalho encontra-se estruturado em nove capítulos cada um com o seu conteúdo que se passa a resumir: 1. Introdução ao trabalho, em que se explica o que pode encontrar, motivações e a estrutura do trabalho; 2. Alterações e correcções que foram feitas desde o relatório de análise; 3. Instância Exemplo. Definição de uma instância exemplo e sua implementação. 4. Definição de Triggers. Definição de triggers específicos da nossa aplicação. 5. Consultas. Produção de consultas, recorrendo a SQL, de variados graus de dificuldade. 6. Interface Gráfica. Produção da interface gráfica mais adequada, em formulários autónomos ou na Web a partir da especificação gráfica de módulos e menus. 7. Casos de Teste. Elaboração de Casos de Teste para os aspectos mais significativos do trabalho. 8. Conclusões e perspectivas de desenvolvimento, analisa-se os seus principais resultados, e apresenta algumas perspectivas de desenvolvimentos futuros; 9. Bibliografia, material consultado no âmbito do desenvolvimento do projecto; Informação Judicial pág. 3 / 31 Laboratório Base Dados FEUP - LEIC 2. Alterações e Correcções Neste capítulo apresenta-se o modelo entidade-associação corrigido do sistema a desenvolvido que dá a conhecer a identificação dos conjuntos de entidades, seus atributos e respectivos domínios; a definição das chaves das entidades; a identificação das associações, sua funcionalidade e carácter de obrigatoriedade A correcção efectuada a este modelo foi o facto de termos trocado o sentido das relações, que embora estivessem certas a origem devia ser o destino e vice-versa. Este problema implicou ter que alterar certos campos no modelo entidade-relação que pode ver nas páginas seguintes. Modelo Entidade Associação Informação Judicial pág. 4 / 31 Laboratório Base Dados FEUP - LEIC De seguida pode-se encontrar o modelo relacional depois de algumas alterações com tabelas, respectivos campos, relações, identificação do tipo de dados e as chaves. Modelo Entidade Relação Informação Judicial pág. 5 / 31 Laboratório Base Dados FEUP - LEIC 3. Instância Exemplo Para ter um exemplo dos dados que pode aceder nesta aplicação pode ver um registo de cada tabela que temos na base de dados. Este exemplo serve como ajuda e orientação para um novo utilizador ter uma ideia dos campos que deve preencher. Outra coisa que é necessário ter em atenção é o facto de termos domínios definidos em vários campos e que passamos a mostrar: Categoria Automóvel: Ligeiro Pesado Tractor Agrícola Tractor Diverso Combustíveis: Gasolina Gasóleo Gas Electricidade Sol Outro Estados: Activo Óbito Desaparecido Estados Civis: Solteiro Casado Viúvo Grupos: Utente Advogado Policial Judicial DGV Notariado Administrador Tipo Automóvel: Passageiros Mercadorias Misto Ambulância Pronto-Socorro Maquina Industrial Informação Judicial pág. 6 / 31 Laboratório Base Dados FEUP - LEIC Exemplo de Registo Utente Informação Judicial pág. 7 / 31 Laboratório Base Dados FEUP - LEIC Exemplo de Registo Utilizador Informação Judicial pág. 8 / 31 Laboratório Base Dados FEUP - LEIC Exemplo de Registo Advogado Informação Judicial pág. 9 / 31 Laboratório Base Dados FEUP - LEIC Exemplo de Registo Cliente do Advogado Informação Judicial pág. 10 / 31 Laboratório Base Dados FEUP - LEIC Exemplo de Registo Policia Informação Judicial pág. 11 / 31 Laboratório Base Dados FEUP - LEIC Exemplo Registo de um Crime Informação Judicial pág. 12 / 31 Laboratório Base Dados FEUP - LEIC Exemplo Registo de uma Ocorrência Informação Judicial pág. 13 / 31 Laboratório Base Dados FEUP - LEIC Exemplo Registo de um Automóvel Informação Judicial pág. 14 / 31 Laboratório Base Dados FEUP - LEIC 4. Definição de Triggers Um trigger é um conjunto de instruções que, no nosso caso, são associados às tabelas, para um determinado evento. O trigger, tal como o nome o indica, dispara quando a tabela está sujeita a uma determinada operação. Na aplicação desenvolvida, os triggers actuam independentemente sobre os diversos campos que compõem as nossas tabelas. Neste relatório, apenas especificaremos amostras de triggers que sejam elaborados de diferentes formas, pois a lógica de cada um repete-se um pouco por todas as tabelas, sendo desnecessário a divulgação uma vez que estaríamos a repetir toda a estruturação do trigger. Inserção ou Modificação de um campo do tipo numérico Como é de esperar, os números de alguns campos não podem assumir valores negativos. Não haveria nexo se por exemplo, a altura de um cidadão correspondesse a um número inferior a zero. Para que tal não aconteça, foi necessário criar alguns triggers para apenas autorizar números superiores a zero. Aqui está o código de um trigger que valida se o número é superior ao igual a um. Este trigger chama-se valida_altura_utente e exige que antes de ocorrer uma inserção ou uma modificação, que o valor introduzido no campo altura seja igual ou superior a um. Como podemos observar no código abaixo, o trigger actua sobre a tabela Utentes e é activado quando a sua condição não é respeitada, aparecendo a mensagem de erro: ‘ Erro – Número da altura inválido! ‘. Create or replace trigger valida_altura_utente Before insert or update on utentes For each row Begin If (:new.altura <1) then Raise_application_error (-20000, ‘ ERRO – Numero da altura inválido! ‘); End if; End; Tal como já foi referido, como este trigger existem outros idênticos para os campos lotacao, nmotor, cilindrada, pesobruto, nportas, nquadro e tara da tabela Automoveis, ncontribuinte e ncarta da tabela Utentes e altura evidentemente. Idênticos a este trigger ainda podemos referenciar as chaves primárias das tabelas Advogados, Crimes, Ocorrencia, Policiais e Utentes que são nadvogado, nprocesso, nocorrencia, nagente e nbi respectivamente. Todas estas chaves terão de assumir valores superiores a zero para respeitar certas normas que estão impostas na sociedade dos dias que decorrem. Opcionalmente também decidimos validar o campo idtribunal da tabela crimes já que caso a base dados necessitasse de ser expandida para os tribunais dos países e seus funcionários estaria automaticamente validada mais uma chave primária. Informação Judicial pág. 15 / 31 Laboratório Base Dados FEUP - LEIC Inserção ou Modificação dos campos do tipo data Mais uma vez, os campos caracterizados com o tipo data têm de corresponder às normas gerais. Como todos sabemos é impossível possuir um bilhete de identidade com o campo data de nascimento preenchido com uma data que ainda está por chegar. Para isto, foi necessário a criação de triggers que apenas aceitem datas inferiores à do sistema onde estamos a trabalhar. Para estes triggers funcionarem na perfeição é preciso que a data da máquina onde se está a operar esteja com a data actualizada. Aqui está o código de um trigger que valida se a data é inferior a do sistema. Este trigger chama-se valida_data_utente e exige que antes de ocorrer uma inserção ou uma modificação, a data introduzida no campo datanascimento seja inferior a data do sistema. Como podemos observar no código abaixo, o trigger actua sobre a tabela Utentes e é activado quando a sua condição não é respeitada, aparecendo a mensagem de erro: ‘ Erro – Data de nascimento errada! ‘. Create or replace trigger valida_data_utentes Before insert or update on utentes For each row Begin If (:new.data > sysdate) then Raise_application_error (-20000, ‘ ERRO - Data de nascimento errada! ’); End if; End; Tal como foi referido, para este trigger existem outros idênticos para os campos data da tabela Automoveis, para o campo data da tabela Crimes e para o campo data da tabela Ocorrencias respectivamente. Para estes triggers foi necessário utilizar a função que a linguagem SQL e a aplicação Oracle dispõem chamada de sysdate. Esta função devolve a data actual com que o sistema se encontra naquele momento. Inserção ou Modificação de um campo numérico correspondente a um telefone, telemóvel ou fax Os números de telefone, fax e telemóvel que Portugal suporta encontram-se compreendidos entre uma grande gama de valores. Para que não possa existir números que não respeitem a gama adoptada pelos operadores de telefone e de telemóvel, recorremos a triggers que apenas validassem os números inseridos quando estivessem dentro da gama pretendida. Aqui está o código que valida todos os números correspondentes ao mencionado. Este trigger chama-se valida_tel_utente e exige que antes de ocorrer uma inserção ou uma modificação o campo correspondente aos números de telefone e fax estejam compreendidos entre 210000000 e 299999999. Como podemos observar no código abaixo, o trigger actua sobre a tabela utentes e é activado quando a sua condição é desrespeitada, aparecendo a mensagem de erro: ‘ Erro – Número de telefone inválido! ‘ Informação Judicial pág. 16 / 31 Laboratório Base Dados FEUP - LEIC Create or replace trigger valida_tel_utente Before insert or update on utentes For each row Begin If (:new.telefone <210000000 or :new.telefone > 299999999) THEN Raise_application_error (-20000, ‘ ERRO - Numero de telefone inválido! '); End if; End; Tal como foi referido, fax e telemóvel adoptam a mesma estrutura destes triggers embora este último esteja compreendido entre uma gama de valores diferente da dos telefones. Os campos que estão sujeitos à restrição deste trigger são fax e telefone da tabela Advogados e telemóvel da tabela Utentes mais ainda o que está acima referenciado. Para terminar a explicação sobre os nossos triggers, apenas gostaria de dizer que os campos sobre os quais eles actuam podem estar vazios caso o dado a introduzir não corresponda ao elemento sobre o qual estamos a introduzir dados. Por exemplo, caso um utente não tenha telefone, o campo devera ficar vazio de forma a não causar conflitos com o trigger. Desta forma, o campo será validado da mesma forma caso se tivesse inserido um valor correcto. Informação Judicial pág. 17 / 31 Laboratório Base Dados FEUP - LEIC 5. Consultas Uma consulta é um procedimento do qual resulta uma selecção consoante uma ou mais restrições. A nossa aplicação, embora seja apenas constituída por duas consultas, estas são essenciais para um decorrer sem problemas e com eficácia. Todavia, muitas consultas já estão disponíveis através do próprio Oracle, que disponibiliza a função através de um botão nomeado ‘ find ’. Embora estas últimas consultas so devolvam resultados globais, é possível impor restrições de forma a aperfeiçoar os resultados pretendidos. A primeira consulta consiste em verificar se houve novos utilizadores a solicitarem password, de forma a poderem desfrutar dos privilégios que esta oferece. Os administradores, ao executar essa consulta, ficam logo a saber quem solicitou acesso a base de dados. Posteriormente, os administradores ficam encarregados de enviarem uma carta para os solicitadores de forma a poderem aceder aos seus dados sem saírem de casa ou do local onde se encontram. Aqui fica o código da consulta que tem por nome ‘ utili_acab_regis ‘. Create or replace procedure util_acab_regis as Cursor c_Novos IS Select * From utentes, utilizadores Where nbi=utente_nbi and password='password' Order by nbi; Begin htphtmlOpen; htpheadOpen; htptitle('Utilizadores acabados de registar'); htpheadClose; htpPbodyOpen; htpheader(1,'Utilizadores Acabados de Registar'); htptableOpen(cborder => 'BORDER=1'); htptableRowOpen; htptabledata(cvalue => 'Num. BI'); htptabledata(cvalue => 'Nome'); htptabledata(cvalue => 'Residencia'); htptabledata(cvalue => 'Login'); htptabledata(cvalue => 'Password'); htptabledata(cvalue => 'Grupo'); tableRowClose; For v_NovosRec in c_Novos Loop tableRowOpen; htptabledata(htf.bold(v_NovosRec.nbi)); htptabledata(cvalue => v_NovosRec.nome); htptabledata(cvalue => v_NovosRec.residencia); htptabledata(cvalue => v_NovosRec.login); Informação Judicial pág. 18 / 31 Laboratório Base Dados FEUP - LEIC htptabledata(cvalue => v_NovosRec.password); htptabledata(cvalue => v_NovosRec.grupo); htptableRowClose; End Loop; htptableClose; htpbodyClose; htphtmlClose; End; Esta consulta irá devolver o número do bilhete de identidade, o nome, a morada, o login, a password e o grupo a que o utilizador pertence. A partir de aqui então os administradores enviarão uma carta com o respectivo login e password para o utente em questão. A outra consulta será essencial para as centrais da polícia ou até talvez, num futuro não muito distante, nos próprio carros patrulha. Sempre que um agente achar conveniente verificar se um carro está legal ou corresponde as definições do livrete, basta digitar a matrícula no local da consulta e automaticamente serão apresentados os dados do veículo. Rapidamente e facilmente serão tiradas as dúvidas em relação a uma suspeita, uma perseguição a um veículo ou a um roubo ocorrido. Desta forma os agentes ficarão a saber se foi apresentado alguma queixa em relação ao veículo ou se a matricula que utiliza lhe corresponde. Aqui está o codigo do procedimento matricula e valida_matricula. Procedimento matricula: Create or replace procedure matricula Is Begin htp.p(' <html> <head> <title>Consulta matricula</title> </head> <body> <table width="100%" height="100%"> <tr> <td align="center" valign="middle"> <p> <font color="darkred"><b><em><H1>Base de Judicial</H1></em></b></font> <font color="darkred"><b><em><H1>Introduza uma informacao acerca de um veiculo</H1></em></b></font> '); htp.nl; htp.p('<form action="Valida_matricula" method="mat">'); Informação Judicial Dados de Apoio matricula para obter pág. 19 / 31 Laboratório Base Dados FEUP - LEIC htp.p('<b>Matricula : </b>'); htp.p('<input type="text" size=10 name="Matr">'); htp.p('<p><input type="submit" value="GO">'); htp.p('</body></html>'); End; Procedimento valida_matricula: Create or replace procedure valida_matricula(matr in automoveis.matricula%type) Is bi utentes.nbi%type; nom utentes.nome%type; morada utentes.residencia%type; carta utentes.ncarta%type; marc automoveis.marca%type; model automoveis.modelo%type; Begin Select nbi, nome, residencia, ncarta, marca, modelo Into bi, nom, morada, carta, marc, model From utentes, automoveis Where utente_nbi = nbi and matricula=matr; htp.htmlOpen; htp.headOpen; htp.title('Informacao veiculo'); htp.headClose; htp.header(1,'Informacao veiculo'); htp.bodyOpen; htp.nl; htp.print(' NBI : ' ||bi); htp.nl; htp.print(' Matricula : ' ||matr); htp.nl; htp.print(' Nome : ' ||nom); htp.nl; htp.print(' Morada : ' ||morada); htp.nl; htp.print(' Num. Carta : ' ||carta); htp.nl; htp.print(' Marca : ' ||marc); htp.nl; htp.print(' Modelo : ' ||model); htp.nl; htp.bodyClose; htp.htmlClose; Informação Judicial pág. 20 / 31 Laboratório Base Dados FEUP - LEIC Exception When no_data_found then htp.p(' Matricula invalida! '); End; Neste ultimo procedimento, caso a matricula introduzida esteja errada ou não exista, uma mensagem de erro aparecerá ao agente que estiver a efectuar a pesquisa. Informação Judicial pág. 21 / 31 Laboratório Base Dados FEUP - LEIC 6. Interface Gráfica Os seguintes menus apresentados, são layouts da aplicação criada. Todos os menus são constituídos por uma frame do lado esquerda com aspecto idêntico a todos os outros, e uma frame do lado direito com propriedades únicas de cada uma. A frame esquerda é formada pelos links para onde cada diferente utilizador se poderá dirigir e duas opções iguais em todos os outros menus que são a de alterar password e a de efectuar o logout. De seguida, iremos apresentar cada menu, seguido de uma breve explicação. Menu Administrador Este menu tem como função possibilitar aos administradores a gestão de utilizadores, advogados, polícias, juízes, funcionários do notariado, funcionários da DGV e ainda os próprios administradores da base de dados. São também eles que ficam encarregues de tratar do processo de envio de password para os utilizadores que tenham efectuado o registo. Também podem consultar todos utilizadores da aplicação, bem como alterar certos dados relativos à conta de cada um. Informação Judicial pág. 22 / 31 Laboratório Base Dados FEUP - LEIC Menu Advogado Este menu oferece a todos os advogados a possibilidade de aceder a informação relativa aos seus clientes. Os dados pessoais dos clientes bem como as ocorrências e crimes relativos a estes e ainda os seus veículos. Informação Judicial pág. 23 / 31 Laboratório Base Dados FEUP - LEIC Menu DGV Este menu disponibiliza a todos os funcionários da DGV a poderem aceder aos registos automóveis dos cidadãos. Os funcionários deste grupo conseguem aceder a todos os registos automóveis, bem como altera-los ou inserir novos. Podem também consultar os dados relativos aos proprietários de cada veiculo. Informação Judicial pág. 24 / 31 Laboratório Base Dados FEUP - LEIC Menu Judicial Este menu possibilita a todos os juízes de acederem com facilidade ao cadastro de qualquer cidadão. Têm ainda a permissão para o aumentar, caso seja necessário. Apenas os juízes podem julgar um cidadão, e é por este motivo que sempre que alguém for julgado, seja logo acrescentado ao seu cadastro o processo e o tribunal onde decorreu a sentença. Os utilizadores deste grupo podem ainda consultar os dados relativos a todos os cidadãos bem como os seus veículos. Informação Judicial pág. 25 / 31 Laboratório Base Dados FEUP - LEIC Menu Notariado Este menu consiste em possibilitar a gestão dos cidadãos a todos os funcionários do grupo notariado. A inserção e modificação de utentes terão de ser efectuado por membros deste grupo. Podem ainda pesquisar informação relacionada com os cidadãos. Informação Judicial pág. 26 / 31 Laboratório Base Dados FEUP - LEIC Menu Policial Este menu é destinado a membros do grupo policial. Um polícia poderá aceder aos dados de qualquer cidadão. Poderá ainda pesquisar informação relacionada com automóveis, crimes e ocorrências referentes a qualquer utente. Também são os polícias que inserem as próprias ocorrências na base de dados, podendo também modifica-las. Informação Judicial pág. 27 / 31 Laboratório Base Dados FEUP - LEIC Menu Utente Este menu possibilita aos cidadãos obterem qualquer informação acerca de si mesmo. Com este menu, um utilizador consegue saber tudo a seu respeito, desde dados pessoais até cadastro. Tudo o que ele fizer ficará registado e um cidadão tem, por lei, direito a aceder às suas infracções, crimes, dados pessoais e registo automóvel. Informação Judicial pág. 28 / 31 Laboratório Base Dados FEUP - LEIC 7. Casos de Teste Nesta aplicação temos inserido diversos registos, com que fomos testando a aplicação. Temos dados inseridos em todas as tabelas que respeitam os relacionamentos entre as tabelas. Inserimos todos os tipos de utilizadores na base de dados, testamos o login, com sucesso em todos os casos. Os utentes inseridos estão conforme as regras impostas pela aplicação, usando para isso os triggers, assim como todos os dados que inserimos. Para testar a aplicação pode aceder facilmente à página da aplicação (www.fe.up.pt/~ei00054) e com as instruções aí encontradas e os logins, entrar na aplicação e ver todos os registos. Para ter uma ideia dos campos disponíveis assim como os domínios pode consultar o capítulo com a instância exemplo. Nesta aplicação todos as operações foram testadas e revistas, podemos considerar que não existem problemas de maior. Informação Judicial pág. 29 / 31 Laboratório Base Dados FEUP - LEIC 8. Conclusões e Perspectivas de Desenvolvimento O “Oracle” fornece-nos ferramentas de elevado calibre graças as quais conseguimos criar rapidamente diagramas, hierarquias que facilitam a compreensão da sua realização mesmo por pessoa que não estiveram envolvidas no projecto. A geração dos módulos também facilita em muito o desenvolvimento dos formulários. Se tivermos toda a análise bem feita, a geração é quase automática, resultando pelo menos os formulários padrão com respectivas operações. O trabalho ficou minimamente funcional dentro do prazo, embora a ultima semana antes da entrega tenha sido um sufoco com diversos trabalhos para entrega. O servidor por vezes esteve em baixo, mas desde que houve a migração da nossa conta para o novo servidor, não houve grandes problemas, unicamente houve uma tarde que este estava mais tempo em baixo do que a funcionar. Aplicação tem alguns problemas que deveriam ser resolvidos caso houvesse mais tempo. Um deles é o facto de gerar a BD com mais do que 1 tipo long como uma imagem, dá problemas. No nosso caso colocamos campos como foto, assinatura e impressão digital como char, com o link, mas não resolvemos o problema. Outra situação anómala que ocorreu foi o facto de termos de eliminar o tipo de display pop list dos campos de domínio que resultavam em invalido, inseríamos correctamente, mas se fossemos consultar aparecia invalido. Resultado desta situação foi colocar os campos como caixa de texto, implicando que o utilizador insira os dados Quanto às funcionalidades que não estão implementadas salienta-se a gestão de sessões que era importante neste trabalho, pela particularidade do tipo de informação. Por exemplo, se um utente faz login só deve ver a sua informação, se o advogado fizer login devem ser mostrados unicamente os seus clientes. No que toca a consultas achamos que o tipo de consultas geradas pelo designer são suficientes para a base de dados, depois de muito tempo a pensar sobre que consultas deveríamos fazer, não encontramos mais hipóteses a não ser algumas consultas sem nexo e utilidade. Globalmente pensamos que foi um projecto enriquecedor. Tomamos contacto com um ambiente de desenvolvimento bastante avançado e temos a consciência que também nos perdemos em certas ocasiões em tantas possibilidades. Uma coisa é certa para aprender e pôr a aplicação a funcionar tivemos que refazer várias vezes algumas coisas por bugs na aplicação. Erros esses que vieram a aumentar o tempo de implementação em demasia. Informação Judicial pág. 30 / 31 Laboratório Base Dados FEUP - LEIC 9. Anexos Recursos em papel: Requerimento de certificado do registo criminal, mod. 101 – DGAJ – DSIC Requerimento-declaração para registo de propriedade, mod. 2 – DGRN Requerimento livrete, mod. 1402 – DGV Oracle 8i, Moreno - FCA Recursos web Página da cadeira lbd, www.fe.up.pt/~gtd/lbd Página da cadeira lbd prática, http://www.fe.up.pt/~jlopes/teach/lbd.html Tutorial da ferramenta de desenvolvimento de software ORACLE designer 2000, www.prenhall.com/divisions/bp/app/hoffer/oracle/tutorial/ Decreto-Lei n.º 62/99 de 2 de Março - Regime jurídico dos ficheiros informáticos em matéria de identificação criminal e de contumazes, http://gf.com.sapo.pt/legis/diplomas/DL62-99.htm Decreto-Lei n.º 352/99 de 3 de Setembro - Regime jurídico dos ficheiros informáticos da Polícia Judiciária, http://gf.com.sapo.pt/legis/diplomas/DL352-99.htm Resolução do Conselho de Ministros n.º 5/90 - Resolução sobre a Segurança nos Sistemas Informáticos, http://gf.com.sapo.pt/legis/diplomas/RES5-90.htm Informação Judicial pág. 31 / 31