Você está na página 1de 99

UNIVERSIDADE CATÓLICA DE ANGOLA

FACULDADE DE ENGENHARIA
LICENCIATURA EM ENGENHARIA INFORMÁTICA

Sistema Integrado de Gestão da


Biblioteca da Universidade Católica de
Angola

Relatório do Projecto Final do Curso

Módulos: Catalogação, Acervo, Utentes,


Requisições, Localizações, Geral e Segurança

Herman Diyabanza – 16231

Orientador: Prof. Doutor Aires Manuel Araújo Veloso

Luanda, 2023
UNIVERSIDADE CATÓLICA DE ANGOLA
FACULDADE DE ENGENHARIA
LICENCIATURA EM ENGENHARIA INFORMÁTICA

Sistema Integrado de Gestão da


Biblioteca da Universidade Católica de
Angola

Relatório do Projecto Final do Curso

Módulos: Catalogação, Acervo, Utentes,


Requisições, Localizações, Geral e Segurança

Luanda, 2023
“Confia no Senhor de todo o teu coração. Não te firmes em tua
própria sabedoria. Reconhece-o em todos os teus caminhos, e ele
endireitará as tuas veredas.”
Provérbios 3:5-6
Dedicatória

A Deus, por ter traçado o meu destino, por me


guiar e por permitir que eu chegasse até a essa fase

IV
Agradecimentos

Agradeço ao Eterno Deus, pela sabedoria, por ter iluminado o meu caminho, por ter permitido que
eu chegasse até aqui.

Ao meu amado pai, Diyabanza Nkomi, pelo apoio moral, financeiro e não só sem esquecer a
Senhora Honorina Zola, a quem chamo de tia pela ajuda que foi crucial para dar continuidade aos
meus estudos.

A Universidade Católica de Angola junto do seu Gabinete de Desenvolvimento de Carreiras e


Cooperação Institucional (GDCI), actualmente Gabinete de Responsabilidade Social por ter me
contemplado com uma bolsa de estudo interna sem a qual não estaria a esta a fazer o projecto final
neste ano.

Ao orientador, Professor Doutor Aires Manuel Araújo Veloso, pelos conhecimentos transmitidos
desde a cadeira de Sistemas Distribuídos I até culminar com a cadeira de Projecto Final pelos
ensinamentos, críticas e correções feitas no decorrer do presente projecto.

Ao professor e meu mentor Hermenegildo Teixeira de Aguiar pelo apoio moral e não só e
sobretudo pelos conselhos que não tem se cansado em me dar.

Aos amigos e colegas, Inocência Daniel, Augusto Napoleão, Jurema Gonçalves, Jesse Cassule,
Ivandro Mona, Jonathan Mandombe, Mamengi Samuel, Emanuel Nuno, Dinamuene Tomás,
Samuel Makambo.

Aos funcionários da Biblioteca da UCAN nomeadamente o Director, Pe. Doutor Samuel Helena
Tumbula, os Catalogadores Márcio dos Santos, Wilson da Silva, António José P. de Oliveira,
Kobech Ventura, Watson dos Anjos e Domilson A. Muati pelo auxílio no levantamento de algumas
informações importantes bem como os formadores do curso de Biblioteconomia pelos
conhecimentos transmitidos.

V
Resumo

O presente relatório visa documentar e descrever a implementação do Sistema Integrado de Gestão


da Biblioteca da Universidade Católica de Angola e apresenta de forma detalhada o processo de
levantamento, análise e implementação do projecto.

O referido projecto por sua vez possui os seguintes módulos: Catalogação, Utentes, Acervo,
Requisições, Localizações e Segurança.

Palavras-chaves: SIG-BUCAN, catalogação, biblioteconomia, biblioteca.

VI
Abstract

This report aims to document and describe the implementation of the Library Management System
of the Catholic University of Angola and presents in detail the process of survey, analysis and
implementation of the project.
This project in turn has the following modules: Cataloging, Users, Collection, Requisitions,
Locations and Security.
Keywords: SIG-BUCAN, cataloging, librarianship, library.

VII
Índice Geral

Dedicatória ........................................................................................................................ IV
Agradecimentos.................................................................................................................. V
Resumo.............................................................................................................................. VI
Abstract ............................................................................................................................ VII
Índice Geral .................................................................................................................... VIII
Índice Detalhado ............................................................................................................... IX
Índice de Figuras .............................................................................................................. XII
Índice de Tabelas............................................................................................................ XIII
1. Introdução ............................................................................................................... 15
2. Apresentação da Instituição .................................................................................... 19
3. Enquadramento e Fundamentos .............................................................................. 22
4. Requisitos do Sistema ............................................................................................. 25
5. Arquitectura do Sistema .......................................................................................... 27
6. Padrões de Desenvolvimento .................................................................................. 31
7. Módulo de Catalogação .......................................................................................... 38
8. Módulo do Acervo .................................................................................................. 42
9. Módulode Utentes ................................................................................................... 45
10. Módulo de Requisições ........................................................................................... 49
11. Módulo de Localizações ......................................................................................... 53
13. Conclusões .............................................................................................................. 56
14. Perspectivas Futuras................................................................................................ 57
Glossário ........................................................................................................................... 58
Bibliografia ....................................................................................................................... 60
Anexos .............................................................................................................................. 62

VIII
Índice Detalhado

Dedicatória ........................................................................................................................ IV
Agradecimentos.................................................................................................................. V
Resumo.............................................................................................................................. VI
Abstract ............................................................................................................................ VII
Índice Detalhado ............................................................................................................... IX
Índice de Figuras .............................................................................................................. XII
Índice de Tabelas............................................................................................................ XIII
1. Introdução ............................................................................................................... 15
1.1. Considerações Iniciais ................................................................................................... 15
1.2. Objectivo Geral ................................................................................................................. 15
1.3. Objectivos Específicos ................................................................................................... 15
1.4. Motivação ........................................................................................................................... 15
1.5. Membros do Grupo ......................................................................................................... 15
1.6. Estrutura do Relatório .................................................................................................. 16
2. Apresentação da Instituição .................................................................................... 19
2.1. Sobre a Instituição .......................................................................................................... 19
2.2. Objectivo Social ................................................................................................................ 19
2.3. Contexto .............................................................................................................................. 20
2.4. Serviços Prestados .......................................................................................................... 20
3. Enquadramento e Fundamentos .............................................................................. 22
3.1. Estado do Software Existente ..................................................................................... 22
3.2. Justificativa para a Melhoria do Software Existente.......................................... 22
4. Requisitos do Sistema ............................................................................................. 25
4.1. Levantamento de Requisitos ...................................................................................... 25
4.2. Requisitos Funcionais ................................................................................................... 25
4.3. Requisitos Não Funcionais .......................................................................................... 25
5. Arquitectura do Sistema .......................................................................................... 27
5.1. Arquitectura Lógica ........................................................................................................ 27
5.2. Arquitectura Física ......................................................................................................... 28
5.3. Métodos de Implementação ........................................................................................ 28
6. Padrões de Desenvolvimento .................................................................................. 31
6.1. Padrões de Base de Dados ........................................................................................... 31
6.2. Padrões a Nível Aplicacional....................................................................................... 32
6.2.1. Pacotes ...................................................................................................32
6.2.2. Classes ...................................................................................................32

IX
6.3. Tecnologias Utilizadas................................................................................................... 33
6.4. Ferramentas Utilizadas ................................................................................................. 34
6.4.1. Especificação ......................................................................................... 35
6.5. Servidores e Plataformas ............................................................................................. 35
7. Módulo de Catalogação .......................................................................................... 38
7.1. Objectivos ........................................................................................................................... 38
7.2. Requisitos Funcionais ................................................................................................... 38
7.3. Modelagem ........................................................................................................................ 38
7.3.1. Actores ...................................................................................................39
7.3.2. Diagramas e Descrições de Casos de Uso .............................................39
7.4. Implementação ................................................................................................................ 40
7.4.1. Páginas ...................................................................................................40
8. Módulo do Acervo .................................................................................................. 42
8.1. Objectivos ........................................................................................................................... 42
8.2. Requisitos Funcionais ................................................................................................... 42
8.3. Modelagem ........................................................................................................................ 42
8.3.1. Actores ...................................................................................................42
8.3.2. Diagramas e Descrições de Casos de Uso .............................................43
8.4. Implementação ................................................................................................................ 43
8.4.1. Páginas ...................................................................................................43
9. Módulode Utentes ................................................................................................... 45
9.1. Objectivos ........................................................................................................................... 45
9.2. Requisitos Funcionais ................................................................................................... 45
9.3. Modelagem ........................................................................................................................ 45
9.3.1. Actores ...................................................................................................46
9.3.2. Diagramas e Descrições de Casos de Uso .............................................46
9.4. Implementação ................................................................................................................ 47
9.4.1. Páginas ...................................................................................................47
10. Módulo de Requisições ........................................................................................... 49
10.1. Objectivos ........................................................................................................................... 49
10.2. Requisitos Funcionais ................................................................................................... 49
10.3. Modelagem ........................................................................................................................ 49
10.3.1. Actores ...................................................................................................50
10.3.2. Diagramas e Descrições de Casos de Uso .............................................50
10.4. Implementação ................................................................................................................ 51
10.4.1. Páginas ...................................................................................................51
11. Módulo de Localizações ......................................................................................... 53
11.1. Objectivos ........................................................................................................................... 53
11.2. Requisitos Funcionais ................................................................................................... 53
11.3. Modelagem ........................................................................................................................ 53
11.3.1. Actores ...................................................................................................53
X
11.3.2. Diagramas e Descrições de Casos de Uso .............................................54
13. Conclusões .............................................................................................................. 56
14. Perspectivas Futuras................................................................................................ 57
Glossário ........................................................................................................................... 58
Bibliografia ....................................................................................................................... 60
Anexos .............................................................................................................................. 62
Anexo A. Abreviatura dos Módulos ......................................................................................... 63
Anexo B. Páginas do Sistema ...................................................................................................... 64
Anexo C. Cronograma de Implementação do Projecto ..................................................... 72
Anexo D. Requisitos Funcionais ................................................................................................ 73
Anexo E. Requisitos Não Funcionais ....................................................................................... 74
Anexo F. Script da Base de Dados............................................................................................. 75

XI
Índice de Figuras

Figura 1 - Arquitectura Lógica do SIG-BUCAN .......................................................................... 27


Figura 2- Arquitectura Física do SIG-BUCAN ............................................................................ 28
Figura 3 - Actores do Módulo de Catalogação ............................................................................. 39
Figura 4- Diagrama de Caso de Uso: Módulo de Catalogação ..................................................... 40
Figura 5 - Actores do Módulo de Acervo ..................................................................................... 42
Figura 6 - Diagrama de Caso de Uso: Módulo de Acervo ............................................................ 43
Figura 7- Actores do Módulo de Utentes ...................................................................................... 46
Figura 8 - Diagrama de Caso de Uso: Módulo de Utentes ........................................................... 46
Figura 9- Actores do Módulo de Requisições............................................................................... 50
Figura 10 - Diagrama de Caso de Uso: Módulo de Requisições .................................................. 50

XII
Índice de Tabelas

Tabela 1 – Membros da equipa de desenvolvimento .................................................................... 16


Tabela 2 - Descrição do contexto da BMJAC .............................................................................. 20
Tabela 3 - Descrição da Arquitectura Lógica do SIG-BUCAN ................................................... 28
Tabela 4 - Padrões de base de dados ............................................................................................. 32
Tabela 5 - Tecnologias utilizadas no sistema ............................................................................... 34
Tabela 6 - Plataformas e servidores utilizados no sistema ........................................................... 36
Tabela 7 - Requisitos Funcionais do Módulo de Catalogação ...................................................... 38
Tabela 8 – Descrição dos Actores do Módulo de Catalogação .................................................... 39
Tabela 9 – Páginas do Módulo de Catalogação ............................................................................ 40
Tabela 10 - Requisitos Funcionais do Módulo de Acervo ............................................................ 42
Tabela 11 – Páginas do Módulo de Acervo .................................................................................. 43
Tabela 12 - Requisitos Funcionais do Módulo de Utentes ........................................................... 45
Tabela 13– Páginas do Módulo de Utentes................................................................................... 47
Tabela 14 - Requisitos Funcionais do Módulo de Requisições .................................................... 49
Tabela 15 – Páginas do Módulo de Catalogação .......................................................................... 51
Tabela 16 – Cronograma de Implementação do Projecto ............................................................. 72
Tabela 17- Requisitos Funcionais ................................................................................................. 73
Tabela 18 - Requisitos Não Funcionais ........................................................................................ 74

XIII
1. Introdução
Sumário
1.1. Considerações Iniciais
1.2. Objectivos Gerais
1.3. Objectivos Específicos
1.4. Motivação
1.5. Membros da Equipa
1.6. Estrutura do Relatório
1. Introdução

1.1. Considerações Iniciais

Este projecto foi desenvolvido no âmbito da cadeira de Projecto Final que por sinal é o trabalho
de fim de Curso de Engenharia Informática da Universidade Católica de Angola. O referido
documento ilustra todos os passos e as etapas de desenvolvimento do Sistema Integrado de Gestão
da Biblioteca da Universidade Católica de Angola SIG-BUCAN.

O sistema traz consigo os seguintes módulos: Catalogação, Acervo, Utente, Requisições,


Localizações e Segurança.

1.2. Objectivo Geral

Implementar o módulo de Biblioteca do SIG-BUCAN para facilitar a gestão das informações da


A Biblioteca Monsenhor José Alves Cachadinha da Universidade Católica de Angola (BMJAC).

1.3. Objectivos Específicos

• Implementar o Módulo de Catalogação para os livros e periódicos;


• Implementar o Módulo de Acervo Bibliográfico para a gestão dos livros;
• Implementar o módulo de Utentes e das Requisições

1.4. Motivação

O que levou a implementar o referido módulo foi baseado essencialmente nas dificuldades
apresentadas pelos funcionários e pelo facto de o software existente apresentar algumas limitações.

1.5. Membros do Grupo

A SIG-BUCAN sendo um Sistema Integrado possui diversos módulos sendo cada membro é
responsável pelo seu módulo.

15
A tabela 1 ilustra a descrição, os membros bem como o prefixo dos módulos do referido sistema.

Nº de Ordem Membros do Grupo Descrição do Módulo Prefixo do Módulo


1 Herman Diyabanza Catalogação, Acervo, Cat, Acv, Utt,Req,
Utentes, Requisições, Loc, Grl, Seg
Localizações, Geral,
Segurança
Tabela 1 – Membros da equipa de desenvolvimento

1.6. Estrutura do Relatório

Ponto 1 – Introdução: Descreve a introdução do trabalho, essencialmente na apresentação do


problema, enquadramento sobre o tema, bem como as motivações que me levaram a apostar neste
projecto, para além dos objectivos que se pretende alcançar.

Ponto 2 – Apresentação da Instituição: É feita a apresentação da Biblioteca da Universidade


Católica de Angola.

Ponto 3 – Enquadramento e Fundamentos: Apresenta os elementos que estão na base da


motivação.

Ponto 4 – Arquitectura do sistema: Ilustra o conceito dos componentes lógicos de software, seus
relacionamentos com outros módulos, e suas propriedades externas, bem como a base de dados e
arquitetura física do sistema.

Ponto 5 - Padrões de Desenvolvimento: Mostra os padrões utilizados para o desenvolvimento da


aplicação, bem como o padrão para a nomenclatura de tabelas, ids, base de dados, pacotes e classes
do sistema.

Ponto 6 – Módulo de Catalogação: Apresentação do módulo de Catalogação.

Ponto 7 – Módulo do Acervo: Apresentação do módulo do Acervo.

Ponto 8 – Módulo de Utentes: Apresentação do módulo de Utentes.

Ponto 9 – Módulo de Requisições: Apresentação do módulo de Requisições.

Ponto 10– Conclusões: Descrição das conclusões finais relativamente as melhorias feitas na
aplicação.

16
Ponto 11– Perspectivas Futuras: Descrição das perspectivas futuras para otimização e
melhoramento do sistema.

Ponto 12- Glossário: Descrição dos significados de siglas e termos utilizados neste trabalho.

Ponto 13- Bibliografia: Descrição da bibliografia utilizada no processo de melhoria do sistema.

Ponto 14- Anexos: Apresentação dos anexos do relatório.

17
2. Apresentação da Instituição
Sumário
2.1. Sobre a Instituição
2.2. Objectivo Social
2.3. Contexto
2.4. Serviços Prestados
2. Apresentação da Instituição

2.1. Sobre a Instituição

É uma Biblioteca Universitária, antes a sua denominação foi BUCAN – Biblioteca da


Universidade Católica de Angola, actualmente BMJAC, Biblioteca Monsenhor José Alves
Cachadinha, é uma propriedade da Universidade Católica de Angola, um órgão de apoio
académico que seleciona, colecta, organiza, armazena, recupera e dissemina informações
bibliográficas para o corpo docente e discente.1

A mesma existe há 22 anos, tendo começado a colocar os livros nas estantes, mas alguns anos
antes começou a percorrer bibliotecas, livrarias e a contactar pessoas para angariar livros. Com
dezenas de milhares de livros, iniciou-se o seu tratamento segundo a CDU e PORBASE. A
instituição teve que formar os seus próprios técnicos.

A Biblioteca abriu as portas aos professores e estudantes da UCAN no dia 15 de Março de 1999
estava ainda na fase inicial da sua organização. Actualmente, a BMJAC já conta com cerca de
19.000 livros catalogados.

2.2. Objectivo Social

O objectivo social da instituição é promover o desenvolvimento científico e cultural de toda a


comunidade académica. Como unidade de informação a BMJAC dá aos usuários os apoios
necessários no processo de ensino-apresendizagem bem como na investigação e extensão.

1
Regulamento da BMJAC – Disposições Gerais

19
2.3. Contexto

A BMJAC interage com várias entidades para a realização das suas actividades tal como ilustramos
na tabela 2 onde estão mencionadas a designação bem como a descrição de cada entidade.

Entidade Descrição
Faculdades/Departamentos da UCAN Entidades que fazem sugestões de livros, revistas, ..
Instituições externas Parceiros, Fornecedores, Doadores, …

Usuários Professores, estudantes e funcionários da UCAN,


bem como ex-estudantes da UCAN e estudantes de
outras instituições.
Tabela 2 - Descrição do contexto da BMJAC

2.4. Serviços Prestados

A BMJAC presta vários serviços com o fim de servir os utentes, dentre eles destacam-se:

• Selecção e aquisição de Fundo Documental: Traça as políticas de escolhas e/ou compras de


livros de acordo com as necessidades.
• Consulta e requisição: Todos os documentos (livros, revistas, jornais, CDs, vídeos, DVD’S)
encontram-se à disposição do usuário, seja para consulta na biblioteca, na sala de aula ou para
requisição domiciliária. A requisição é efectuada através do cartão de leitor único utilizado em
todas as escolas.
• Serviços de informação e orientação: Os profissionais que trabalham na biblioteca fornecem
informações acerca dos serviços disponíveis na biblioteca e orientam os utilizadores nas suas
pesquisas.
• Formação: A BMJC ministra todos os anos o curso de Biblioteconomia

20
3. Enquadramento e Fundamentos
Sumário
3.1. Estado do Software Existente
3.2. Justificativa para a Melhoria do Software Existente
3. Enquadramento e Fundamentos

3.1. Estado do Software Existente

A BMJAC actualmente usa uma aplicação paga, que por sinal obsoleta, que conta apenas com os
módulos de catalogação e consulta. A referida aplicação está instalada num dos servidores da
UCAN e acessada remotamente pelos funcionários da biblioteca usando o Ambiente Remoto do
Windows. Porém, sendo um software Desktop possui algumas limitações e a mais crucial é o
número limitado de acesso simultâneo comprometendo assim o tempo de catalogação e
consequentemente atrasando a disponibilização dos livros para os utentes visto que a biblioteca
possui mais de um técnico de catalogação.

Por outra, o processo de controlo dos utentes, atendimento à requisição dos mesmos e elaboração
das estatísticas ainda é feita de forma manual, ou seja, para atender os utentes ainda usa-se uma
ficha de leitor impressa contendo os dados do utente bem como os livros a serem requisitados. O
processo repete-se sempre que o mesmo leitor frequenta a biblioteca. Quanto ao processo de
elaboração de estatísticas, os funcionários da BMJAC recorrem a contagem manual das fichas de
leitor preenchidas ao longo do dia. Além de ser um processo cansativo, possui uma margem de
erro muito elevada tendo em conta a vários factores.

3.2. Justificativa para a Melhoria do Software Existente

As razões que levaram o autor deste documento, a implementar o SIG-BUCAN resumem-se nas
seguintes:

• Migração do ambiente desktop para web facilitando o acesso em qualquer dispositivo, qualquer
lugar e a qualquer hora;
• Integração do módulo de gestão dos utentes e requisições além dos módulos de catalogação e
do acervo;
• Aumento de produtividade da própria instituição;
• Redução do uso demasiado de papel:
• Melhoria da interface da aplicação;

22
23
4. Requisitos do Sistema
Sumário
4.1 Levantamentos de Requisitos
4.2 Requisitos Funcionais
4.3 Requisitos Não Funcionais
4. Requisitos do Sistema

Após a análise e definição do escopo do sistema, foram determinados os seus requisitos. O


objectivo da sua definição foi especificar o que a aplicação deverá ser capaz de fazer e determinar
os critérios de validação que serão utilizados para que avaliar se a mesma cumpre com o que foi
determinado.

4.1. Levantamento de Requisitos

O levantamento de requisitos é uma das etapas iniciais do processo de desenvolvimento de um


software. A etapa de levantamento de requisitos trabalha com o domínio do problema a fim de
determinar “o que” o sistema deve fazer e se é realmente possível desenvolvé-lo. Nesta etapa
buscamos entender as necessidades da BMJAC e o que desejam no sistema a ser desenvolvido.

Nesta fase devem-se identificar dois tipos de requisitos: os funcionais e os não funcionais. Os
requisitos funcionais correspondem ao que o cliente quer que o sistema seja capaz de fazer, ou
seja, as funcionalidades do software. Já os requisitos não funcionais correspondem às condições,
restrições, validações e consistências que devem ser levadas a efeito sobre os requisitos funcionais.

A obtenção dos requisitos foi feita por meio de entrevistas com os funcionários da biblioteca onde
procurou-se perceber como funciona o sistema na actualidade o processo a ser informatizado e
quais são os serviços que a instituição precisa que o sistema ofereça.

4.2. Requisitos Funcionais

Vide em Anexos D.

4.3. Requisitos Não Funcionais

Vide em Anexos E.

25
5. Arquitectura do Sistema
Sumário
5.1. Arquitectura Lógica
5.2. Arquitectura Física
5. Arquitectura do Sistema

5.1. Arquitectura Lógica

A arquitectura lógica do sistema tem como objectivo apresentar o sistema logicamente,


relactivamente aos seus componentes de software. A figura 1 mostra os módulos que compõem o
sistema.

Figura 1 - Arquitectura Lógica do SIG-BUCAN

Tal como ilustra a figura acima, a arquitectura lógica do SIG-BUCAN possui os seguintes itens
descritos na tabela 3 onde podemos ver a descrição de cada módulo:
Item Descrição
Módulo de Catalogação Módulo responsável por garantir todas as actividades
relacionadas a catalogação.
Módulo de Acervo Módulo responsável por garantir todas as actividades
relacionadas a gestão do acervo.
Módulo de Utentes Módulo responsável por garantir todas as actividades
relacionadas a gestão dos utentes.
27
Módulo de Requisições Módulo responsável por garantir todas as actividades
relacionadas a gestão das requisições.
Módulo Geral Módulo responsável por garantir todas as actividades
relacionadas a gestão geral.
Módulo de Segurança Módulo responsável por garantir todas as actividades
relacionadas a gestão da segurança.
Tabela 3 - Descrição da Arquitectura Lógica do SIG-BUCAN

5.2. Arquitectura Física

A figura 2 ilustra a arquitectura física do SIG-BUCAN usando o modelo Cliente-servidor, onde o


servidor actua como produtor e o cliente (que pode ser desktop, laptop, smartphone ou tablet) como
consumidor ambos conectados por via de uma rede interna (LAN) e/ou por via da internet.
Lembrando que o cliente precisará apenas de um navegador e precisa estar conectado na mesma
rede que o servidor. O servidor por sua vez provê os serviços de base de dados, aplicação, ficheiros
entre outros.

Figura 2- Arquitectura Física do SIG-BUCAN

5.3. Métodos de Implementação

A instituição poderá implementar o sistema num dos servidores da UCAN, isto é para o acesso
local, ou então hospedar o site num dos provedores de serviços, onde será possível acessar o site
por meio da internet.

28
6. Padrões de Desenvolvimento
Sumário
6.1. Padrões de Base de Dados
6.2. Padrões a Nível Aplicacional
6.3. Tecnologias Utilizadas
6.4. Ferramentas Utilizadas
6.5. Servidores e Plataformas
6. Padrões de Desenvolvimento

Design Patterns, ou padrões de de desenvolvimento, são soluções já testadas e aprovadas em


problemas recorrentes durante o desenvolvimento de software. Em outras palavras, são aplicadas
para deixar o código elegante e com fácil entendimento. Além disso, ajudam a dar mais agilidade
a situações comuns do dia a dia de um desenvolvedor.

Os padrões de design em desenvolvimento surgiram a partir de experiências em projetos de


software e ganharam força com a adoção da programação orientada a objetos.

O principal objetivo dos padrões de design em desenvolvimento é deixar o código mais fácil de
ser mantido e testado. Afinal, se representam soluções já testadas e aprovadas em outros projetos,
trazem maior segurança, agilidade e flexibilidade aos desenvolvedores. Para o nosso caso, o padrão
de desenvolvimento se basea nos projectos anteriormente implementados pelos finalistas da
UCAN segundo as orientações do tutor e não só.

6.1. Padrões de Base de Dados

Quanto a base de dados, a padronização consistiu em regras de nomenclatura, tanto para tabelas
que estão descritas na tabela 4:

Elemento Regra
Base de Dados A base de dados deverá ter a designação de “sig_ucan_db”.
Tabelas O nome da tabela é formado pela sigla que representa o módulo +
underscore o + nome da tabela.
Exemplo: cat_cdu– Entidade do módulo catalogação;
Chaves Primárias O nome da chave primária é formado inicialmente pelo pk seguido do
nome sugestivo da tabela.
Exemplo: pk_entidade – id da entidade;
Chaves Estrangeiras O nome da chave estrangeira é formado inicialmente pelo fk underscore
nome da tabela relacionada.
Exemplo: fk_seg_conta – relação com a tabela financa do modulo de
Finanças;

31
Regras Gerais:
✓ As palavras deverão ser separadas por underscore (_);
✓ Todas as designações deverão ser feitas usando somente letras minúsculas;
✓ Deverão ser atribuídos nomes sugestivos.

Tabela 4 - Padrões de base de dados

6.2. Padrões a Nível Aplicacional

A nível aplicacional, a padronização consiste em regras de importação de bibliotecas, de


nomenclatura de pacotes, classes, páginas, variáveis, métodos, e do agrupamento dos diferentes
elementos que constituem o sistema (páginas, classes, etc.).

6.2.1. Pacotes

Regras gerais de nomenclatura:

✓ O nome do pacote deverá seguir o seguinte padrão: iniciais do módulo, nome dos subpacotes,
em letras minúsculas e separadas por ponto. Exemplo: bbt.cat.beans;
✓ As palavras não deverão ser separadas por underscore.

O módulo EJB encontra-se actualmente dentro do WAR, e contém os entities, facades, importados
da base de dados, e caches. Segue a nomenclatura dos seus pacotes baixo:

✓ ejbs.entities;
✓ ejbs.facades;
✓ ejbs.caches.

6.2.2. Classes
Regras gerais de nomenclatura:

✓ Não é permitida a inclusão de underscore no nome das classes.


✓ As classes deverão ter a palavras começadas por letras maiúsculas;
✓ Classes do tipo ManagedBean deverão ter o sufixo Bean;

32
✓ As classes cujo nome contém duas ou mais palavras, obedecerão a nomenclatura no padrão
camel case. Exemplo: SegPerfilBean.

6.3. Tecnologias Utilizadas

A implementação de uma aplicação Web necessita de tecnologias de desenvolvimento. Abaixo


estão descritas as tecnologias usadas neste projecto.

Designação Fabricante Descrição (Fontes http://pt.wikipedia.org)


O XHTML (extensible Hypertext Markup Language), é
XHTML W3C uma espécie de junção entre o HTML e o XML, pois
combina as tags de marcação HTML com regras da XML.
A mesma resulta de uma reformulação da linguagem de
marcação HTML baseada em XML.
O CSS (Cascading Style Sheets) é uma linguagem de estilo
CSS 3 W3C composta por “camadas” e utilizada para definir a
apresentação em páginas da internet que adotam para o seu
desenvolvimento linguagens de marcação (como XML,
HTML e XHTML). Define como serão exibidos os
elementos contidos no código de uma página da internet e
sua maior vantagem é efetuar a separação entre o formato e
o conteúdo de um documento.
JavaScript é uma linguagem de programação interpratada
JavaScript Netscape que permite ao utilizador implementar itens complexos em
páginas web, por meio de execução de scripts do lado do
cliente e interação com o utilizador sem a necessidade dos
mesmo passarem pelo servidor, controlando o navegador,
realizando comunicação assíncrona e alterando o conteúdo
do documento exibido.
O JSF (JavaServer Faces) é um framework de interface de
JSF 2 ORACLE usuário (IU) para aplicações Java Web. Foi projetado para
facilitar significativamente a trabalhosa tarefa de escrever e
manter as aplicações que são executadas em um servidor de
aplicações Java e renderizar as IUs de volta a um cliente de
destino.
EJB (Enterprise JavaBeans) é a arquitetura de componente
EJB 3.0 ORACLE, IBM, HP do lado do servidor para o desenvolvimento e implantação
de aplicativos de negócios baseados em componentes. A
tecnologia EJB permite o desenvolvimento rápido e
simplificado de aplicativos distribuídos, transacionais,
seguros e portáteis baseados na tecnologia Java EE 6.

33
jQuery é uma biblioteca de código JavaScript que contém
Jquery John Resig recursos de uso comum para a realização de várias tarefas
no browser local, liberando o programador de ter que
implementá-las e padronizar seu uso.
AJAX (Asynchronous JavaScript and XML) é um
Ajax Jessé James conjunto de técnicas de desenvolvimento voltado para a
GarretOutras web que permite a criação de aplicações mais
Associações interactivas permitindo que as mesmas trabalhem de
modo assíncrono, processando qualquer requisição ao
servidor em segundo plano.
PrimeFaces é uma bibliotecas de componentes ricos para
PrimeFaces PrimeTek aplicações criadas com os frameworks JSF e JQuery, de
modo a aumentar a interactividade e funcionalidade das
aplicações web em JSF 2.
Jasper Soft Studio é um framework gerador de relatório
Jaspersoft Jaspersoft Corporation baseado em Eclipse. É totalmente open source e gratuita,
Studio sendo a mais utilizada com este propósito atualmente. Entre
as funcionalidades do JasperReports podemos destacar: é
capaz de exportar relatórios para diversos formatos
diferentes, tais como PDF, HTML, XML, XLS, etc.

Microsoft O Visual Studio Code é um editor de código-fonte


Visual Studio desenvolvido pela Microsoft para Windows, Linux e
Code macOS. Ele inclui suporte para depuração, controle de
versionamento Git incorporado, realce de sintaxe,
complementação inteligente de código, snippets e
refatoração de código.
Guido van Rossum Python é uma linguagem de programação de alto nível,
Python interpretada de script, imperativa, orientada a objetos,
funcional, de tipagem dinâmica e forte.

Tabela 5 - Tecnologias utilizadas no sistema

6.4. Ferramentas Utilizadas

A implementação de softwares de médio a grande porte envolve o uso de Ambientes Integrados


de Desenvolvimento, pois asseguram um incremento na produtividade em todas as fases do seu
ciclo de desenvolvimento.

34
6.4.1. Especificação
A especificação da aplicação foi feita por meio de diagramas UML utilizando a ferramenta
Enterprise Architect para o desenvolvimento dos casos de uso. Para seu desenvolvimento foram
utilizadas as ferramentas NetBeans, PostgresSQL e PGAdmin.

Designação Fabricante Descrição (Fontes http://pt.wikipedia.org)


O NetBeans IDE é um ambiente de desenvolvimento
NetBeans 12.0 ORACLE integrado (IDE) gratuito e de código aberto para
desenvolvedores de software nas linguagens Java, C,
C++, PHP, Groovy, Ruby, entre outras. Possui um
conjunto de ferramentas que auxiliam a programação de
tarefas comuns relacionadas à implementação de
aplicações.
O pgAdmin é uma plataforma de desenvolvimento e
PgAdmin Dave Page administração de interface gráfica de usuário (GUI)
gratuita e de código aberto para PostgreSQL. É
compatível com diversas plataformas.
O PostgreSQL é um sistema de gestão de base de dados
PostgresSQL 10 Barkley University objeto-relacional, enfatizando extensibilidade e
California conformidade com SQL.
É uma plataforma de desenvolvimento colaborativa para
Enterprise Sparx Systems modelagem, design e gerenciamento baseada em UML e
Architect 12 padrões similares. Uma solução completa e empresarial
para visualização, análise, modelagem, teste e
manutenção de uma grande variedade de sistemas,
softwares, processos e arquiteturas.
Tabela 6 - Ferramentas utilizadas

6.5. Servidores e Plataformas

Abaixo estão descritos os servidores e plataformas usadas no projecto, como servidor web o
WildFly, programa este que recebe as requisições, interpretam-nas e retornam um resultado para
os clientes e a plataforma JAVA EE, tendo todos sido utilizados para a implementação do sistema.

Designação Fabricante Descrição (Fontes )


WildFly 25.0.0 REDHAT WildFly é um servidor de aplicação de código fonte
aberto baseado na plataforma JEE e implementado
completamente na linguagem de programação Java.

35
Java EE ORACLE Java EE é uma plataforma de desenvolvimento colaborativa
para modelagem, design e gerenciamento baseada em UML e
padrões similares. Uma solução completa e empresarial para
visualização, análise, modelagem, teste e manutenção de uma
grande variedade de sistemas, softwares, processos e
arquiteturas.
Tabela 6 - Plataformas e servidores utilizados no sistema

36
7. Módulo de Catalogação
Sumário
7.1. Objectivos
7.2. Requisitos Funcionais
7.3. Modelagem
7. Módulo de Catalogação

7.1. Objectivos

O módulo de Catalogação tem como objectivo de gerir e controlar as informações relativas ao


processo de catalogação nomeadamente, a catalogação bibliográfica e das autoridades.

7.2. Requisitos Funcionais

No que concerne a este módulo, foram identificados os seguintes requisitos funcionais:

Ref. Requisito

RFI01 Catalogação Bibliográfica


✓ Cadastrar Documento
✓ Visualizar Documento
✓ Pesquisar Documento
✓ Editar Documento
✓ Eliminar Documento
RFI02 Catalogação de Peródico
✓ Cadastrar Peródico
✓ Visualizar Peródico
✓ Pesquisar Peródico
✓ Editar Peródico
✓ Eliminar Peródico
Tabela 7 - Requisitos Funcionais do Módulo de Catalogação

7.3. Modelagem

Nesta secção são apresentados diagramas que descrevem como o módulo de Catalogação funciona,
de forma a clarificar aos leitores o seu fluxo de funcionamento.

38
7.3.1. Actores
O módulo de Catalogação, além do administrador, tal como em outros módulos, possui um actor,
que é o técnico de catalogação, funcionário da biblioteca todos eles ilustrados na figura 3.

Figura 3 - Actores do Módulo de Catalogação

Actor Descrição

Catalogador Pessoa responsável pela catalogação, classificação dos documentos (livros,


revistas) da biblioteca.
Funcionário Responsável pelo atendimento das requisições dos utentes.
Tabela 8 – Descrição dos Actores do Módulo de Catalogação

7.3.2. Diagramas e Descrições de Casos de Uso


Os seguintes casos de uso foram identificados neste módulo, e estão descritos e representados
abaixo:

✓ Gerir Documentos
✓ Gerir Periódicos
✓ Gerir Autoridades
✓ Gerir Tabelas Auxiliares

A figura abaixo ilustra os casos de uso por meio de um diagrama de casos de uso:

39
Figura 4- Diagrama de Caso de Uso: Módulo de Catalogação

7.4. Implementação

7.4.1. Páginas
A tabela 4 ilustra as páginas que fazem parte deste módulo e as suas respectivas descrições.
Página Descrição
bbt_cat_autoridade_cadastrar.xhtml Responsável pela criação/inserção dos autores
bbt_cat_autoridade_listar.xhtml Responsável pela listagem dos autores
bbt_cat_autoridade_alterar.xhtml Responsável pela alteração de autores
bbt_cat_periodicos_cadastrar.xhtml Responsável pela criação/inserção dos periodicos
bbt_cat_ periodicos _listar.xhtml Responsável pela listagem dos periodicos
bbt_cat_ periodicos _alterar.xhtml Responsável pela alteração de periodicos
bbt_cat_cdu_cadastrar.xhtml Responsável pela criação/inserção da CDU
bbt_cat_bibliografica_cadastrar.xhtml Responsável pela listagem dos autores
bbt_cat_bibliografica_listar.xhtml Responsável pela listagem de dos documentos
bbt_cat_bibliografica_alterar.xhtml Responsável pela alteração dos documentos
Tabela 9 – Páginas do Módulo de Catalogação

40
8. Módulo do Acervo
Sumário
8.1. Objectivos
8.2. Requisitos Funcionais
8.3. Modelagem

41
8. Módulo do Acervo

8.1. Objectivos

O módulo de Acervo tem como finalidade, fazer a gestão e controlo dos exemplares de documentos
anteriormente catalogados.

8.2. Requisitos Funcionais

No que concerne a este módulo, foram identificados os seguintes requisitos funcionais:


Ref. Requisito
RFI01 Gestão do Acervo
✓ Dar entrada de Exemplares
✓ Visualizar Exemplares
Tabela 10 - Requisitos Funcionais do Módulo de Acervo

8.3. Modelagem

Nesta secção são apresentados diagramas que descrevem como o módulo de Acervo funciona com
o intuíto de clarificar aos leitores o seu fluxo de funcionamento.

8.3.1. Actores
O módulo de Acervo, além do administrador, tal como em outros módulos, possui um actor, que
é o técnico de catalogação, funcionário da biblioteca conforme ilustrado na figura 5.

Figura 5 - Actores do Módulo de Acervo


8.3.2. Diagramas e Descrições de Casos de Uso
A figura 6 ilustra os casos de uso por meio de um diagrama de casos de uso onde temos o
catalogador como actor e o mesmo dá entrada dos exemplares dos documentos catalogados bem
como visualizar os mesmos.

Figura 6 - Diagrama de Caso de Uso: Módulo de Acervo

8.4. Implementação

8.4.1. Páginas

A tabela 11 ilustra as páginas que fazem parte deste módulo bem como as suas respectivas
descrições.
Página Descrição
bbt_acv_entrada_exemplar.xhtml Responsável pela entrada dos exemplares
bbt_acv_exemplares_listar.xhtml Responsável pela listagem dos exemplares
bbt_cat_autoridade_alterar.xhtml Responsável pela alteração de autores
Tabela 11 – Páginas do Módulo de Acervo
9. Módulo de Utentes
Sumário
9.1. Objectivos
9.2. Requisitos Funcionais
9.3. Modelagem
9. Módulode Utentes

9.1. Objectivos

O módulo de Utentes tem como objectivo de gerir e controlar as informações dos leitores que
frequentam a biblioteca agrupados em

9.2. Requisitos Funcionais

Este módulo inclui os seguintes sub-módulos:


✓ Estudantes
✓ Funcionários

No que concerne a este módulo, foram identificados os seguintes requisitos funcionais:

Ref. Requisito

RFI01 Gestão de Estudantes


✓ Cadastrar Estudantes
✓ Visualizar Estudantes
✓ Pesquisar Estudantes
✓ Editar Estudantes
✓ Eliminar Estudantes
RFI02 Gestão de Funcionários
✓ Cadastrar Funcionários
✓ Visualizar Funcionários
✓ Pesquisar Funcionários
✓ Editar Funcionários
✓ Eliminar Funcionários
Tabela 12 - Requisitos Funcionais do Módulo de Utentes

9.3. Modelagem

Nesta secção são apresentados diagramas que descrevem como o módulo de Finanças funciona,
de forma a clarificar aos leitores o seu fluxo funcionamento.
9.3.1. Actores
Tal como descrito na figura 7, o módulo de Utentes, possui os seguintes actores: Catalogadores e
Recepcionistas.

Figura 7- Actores do Módulo de Utentes

9.3.2. Diagramas e Descrições de Casos de Uso


A figura 8 ilustra os casos de uso por meio de um diagrama de casos de uso onde encontramos o
Recepcionista tem como funções gerir os utentes, isto é, os funcionários da UCAN e estudantes:

Figura 8 - Diagrama de Caso de Uso: Módulo de Utentes


9.4. Implementação

9.4.1. Páginas
A tabela 13 ilustra as páginas que fazem parte deste módulo bem como as suas respectivas
descrições.
Página Descrição
bbt_utt_estudante_cadastrar.xhtml Responsável pelo cadastro de estudantes
bbt_utt_estudante_listar.xhtml Responsável pela listagem dos estudantes
bbt_cat_funcionario_cadastrar.xhtml Responsável pelo cadastro de funcionários
bbt_cat_funcionario_listar.xhtml Responsável pela visualização de funcionários
Tabela 13– Páginas do Módulo de Utentes
10.Módulo de Requisições
Sumário
10.1. Objectivos
10.2. Requisitos Funcionais
10.3. Modelagem
10.4. Problemas Encontrados
10.5. Resolução e Melhorias
10. Módulo de Requisições

10.1. Objectivos

A implementação do presente módulo visa automatizar a gestão da informação relacionada ao


processo de requisições feitas pelos utentes.

10.2. Requisitos Funcionais

Este módulo inclui os seguintes sub-módulos:


✓ Requisições de Estudantes
✓ Requisições de Funcionários

No que concerne a este módulo, foram identificados os seguintes requisitos funcionais descritos
na tabela 14:

Ref. Requisito

RFI01 Gestão de Requisições de Estudantes


✓ Cadastrar Requisições de Estudantes
✓ Visualizar Requisições de Estudantes
✓ Ver Estatística de Requisições
RFI02 Gestão de Requisições de Funcionários
✓ Cadastrar Requisições de Estudantes
✓ Visualizar Requisições de Estudante
✓ Ver Estatística de Requisições
Tabela 14 - Requisitos Funcionais do Módulo de Requisições

10.3. Modelagem

Nesta secção são apresentados diagramas que descrevem como o módulo de Finanças funciona,
de forma a clarificar aos leitores o seu fluxo funcionamento.

49
10.3.1. Actores
Tal como o módulo de Utentes, o módulo de Requisições também possui os seguintes actores:
Catalogadores e Recepcionistas conforme ilustra a figura 9.

Figura 9- Actores do Módulo de Requisições

10.3.2. Diagramas e Descrições de Casos de Uso


A figura 10 ilustra os casos de uso por meio de um diagrama de casos de uso onde temos o
Recepcionista como actor e o mesmo atende as requisições dos estudantes e dos funcionários:

Figura 10 - Diagrama de Caso de Uso: Módulo de Requisições

50
10.4. Implementação

10.4.1. Páginas
A tabela 15 ilustra as páginas que fazem parte deste módulo bem como as suas respectivas
descrições.

Página Descrição

bbt_req_estudante_cadastrar.xhtml Responsável pelo cadastro das requisições dosestudantes


bbt_req_estudante_listar.xhtml Responsável pela listagem das requisições dos estudantes
bbt_req_estudante_estatistica.xhtml Responsável pelo cadastro das requisições dos funcionários
bbt_req_funcionario_cadastrar.xhtml Responsável pelo cadastro das requisições dos funcionários
bbt_req_funcionario_listar.xhtml Responsável pela listagem das requisições dos funcionários
bbt_req_estudante_estatistica.xhtml Responsável pela visualização da estatística dos estudantes
Tabela 15 – Páginas do Módulo de Catalogação

51
11. Módulo de Localizações
Sumário
11.1. Objectivos
11.2. Requisitos Funcionais
11.3. Modelagem
11.4. Problemas Encontrados
11.5. Resolução e Melhorias
11. Módulo de Localizações

11.1. Objectivos

O objectivo de trabalho neste módulo foi de realizar melhorias tanto a nível do código do projecto,
bem como a nível das funcionalidades, incluindo a correção de excepções, aplicação de cache, e
mais. O módulo de Localizações tem como objectivo a gestão das finanças da instituição.

11.2. Requisitos Funcionais

No que concerne a este módulo, foram identificados os seguintes requisitos funcionais:

Ref. Requisito

RFI01 Gestão de Localizações


✓ Carregar ficheiro Excel de Localizações
Tabela 25 - Requisitos Funcionais do Módulo de Localizações

11.3. Modelagem

Nesta secção são apresentados diagramas que descrevem como o módulo de Localizações
funciona, de forma a clarificar aos leitores o seu fluxo funcionamento.

11.3.1. Actores
O módulo de Localizações possui os seguintes actores: administrador.

Figura 11 - Actores do Módulo de Localizações

53
11.3.2. Diagramas e Descrições de Casos de Uso
Os seguintes casos de uso foram identificados neste módulo, e estão descritos e representados
abaixo:
✓ Gerir Localizações

A figura 10 ilustra o caso de uso por meio de um diagrama de casos de uso:

Figura 12 - Diagrama de Caso de Uso: Módulo de Localizações

54
13. Conclusões

O presente relatório apresentou o desenvolvimento do Sistema Integrado de Gestão da Biblioteca


da UCAN. Inicialmente, foram apresentadas a fundamentação para o desenvolvimento e as e
ferramentas tecnologias utilizadas. Foram descritos os principais requisitos do sistema, a sua
modelagem e o desenvolvimento da aplicação.

O projecto permitiu-me ter um maior entendimento sobre os procedimentos bibliotecários


existentes na BMJAC bem como o seu fluxo de funcionamento. Foi possível interagir com os
profissionais da referida instituição em busca de informações com vista a desenvolver e melhorar
o sistema. Com a implementação do mesmo, ainda foi possível desenvolver as habilidades relativas
à gestão de tempo bem como o trabalho em grupo e o cumprimento de prazos. Outra mais-valia
que este projecto trouxe é desenvolvimento de sistemas complexos, uma experiência que com
certeza poderei levar e optimizar no mundo profissional.

56
14. Perspectivas Futuras

A primeira versão do SIG-BUCAN, como proposto neste trabalho, contempla várias


funcionalidades que superam o software actualmente usado pela BMJAC. Porém, visto que o
software nunca é um produto acabado pois está sempre sujeito a actualizações, durante o
desenvolvimento do projeto, considerando algumas limitações e definições do escopo do trabalho,
algumas propostas e continuidade foram identificadas nomeadamente:

• Integração com o sistema, a base de dados (estudantes, colaboradores) e site da UCAN


• Inscrições e requisições online: Onde cada utente poderá se increver e consultar a
disponiblidade de um livro.
• Repositório digital online: Possibilitando que cada artigo, monografia ou tese produzido
na UCAN esteja disponível digitalmente na internet.
• Criação de uma rede de bibliotecas: Permitindo a troca de informações entre diferentes
bibliotecas:

57
Glossário

API (Application Programming Interface): é a interface, normalmente documentada que uma


biblioteca ou framework disponibiliza.

Cache: é um dispositivo de acesso rápido, interno a um sistema, que tem como principal
vantagem, evitar o acesso ao dispositivo de armazenamento, que pode ser demorado, armazenando
os dados em meios de acesso mais rápidos.

EJB (Enterprise Java Bean): é um componente da plataforma JEE que roda em um container de
um servidor de aplicação. O seu principal objectivo é fornecer um desenvolvimento rápido e
simplificado de aplicações Java, com base em componentes distribuídos, seguros e portáteis.

Entity: JavaBean que mapeia uma tabela numa base de dados.

Facade: é uma classe que fornece uma interface simples para um subsistema complexo que contém
muitas partes móveis.

Framework: conjunto de classes implementadas em uma linguagem de programação específica,


usadas para auxiliar o desenvolvimento de software.

Java: linguagem de programação de alto nível orientada a objectos.

Java EE (Java Enterprise Edition): plataforma de programação para servidores baseados na


linguagem de programação Java.

JavaBean: é uma especificação da Sun que define vários padrões para permitir a construção de
componentes de software reutilizáveis escritos na linguagem de programação Java.

JPA (Java Persistence API): é uma API padrão da linguagem Java que descreve uma interface
comum para frameworks de persistência de dados.

JSF (Java Server Faces): framework MVC para o desenvolvimento de aplicações web.

MVC (Model, View e Controller): é uma arquitectura ou padrão que permite dividir as
funcionalidades do sistema/site em camadas, essa divisão é realizada para facilitar resolução de
um problema maior.

58
BMJAC (Biblioteca Monsenhor José Alves Cachadinha): é uma biblioteca Universitária da
UCAN.

Servidor de Aplicação: é um servidor que disponibiliza um ambiente para a instalação e execução


de aplicações de informática, centralizando e dispensando a instalação em computadores clientes

Servidor de Arquivos: é um computador conectado a uma rede que tem o objetivo principal de
proporcionar um local para o armazenamento compartilhado de arquivos de computadores que
podem ser acessados pelo trabalho que estão ligados à rede de computadores.

Servidor de Base de Dados: equipamentos dentro de um sistema computacional usados para


armazenar e gerenciar dados de forma estruturada.

Servidor Web: é um software responsável por aceitar pedidos em HTTP de clientes, geralmente
os navegadores, e servi-los com respostas em HTTP.

SIG: É um sistema que integra todos os demais sistemas e processos de uma empresa em um
organismo completo, permitindo que essa organização trabalhe com uma unidade de objetivos
conectados.

SGBD (Sistema de Gestão de Base de Dados): é o conjunto de programas de computador


responsáveis pela gestão de uma base de dados.

T.I. (Tecnologias de Informação): são definidas como o conjunto de todas as actividades e


soluções providas por recursos de computação que visam permitir a produção.

Cat: Sigla que representa o módulo de catalogação.

Acv: Sigla que representa o módulo do acervo.

Utt: Sigla que representa o módulo de utentes.

Req: Sigla que representa o módulo de finanças.

Loc: Sigla que representa o módulo de localizações.

Grl: Sigla que representa o módulo geral.

Seg: Sigla que representa o módulo de segurança.

59
Bibliografia

• Padre Apolinário Hilemusinda, História da Universidade Católica de Angola - Da génesis


à fase actual (1999-2014) Volume II, Mayamba Editora, 2015.
• Regulamento da Biblioteca Monsenhor José Alves Cachadinha.
• Michał Ćmil, Michał Matłoka, Francesco Marchioni, Java EE 7 Development with
WildFly, Packt Publishing, 2014.
• Hélder da Rocha, Programação de aplicações Java EE usando Glassfish e WildFly,
argonavis, 2016.
• Debu Panda, Reza Rahman, Ryan Cuprak, Michael Remijan, EJB 3 in Action 2nd Edition,
Maning, 2014.
• David Geary, Core JavaServer Faces 3rd Edition, Prentice Hall
• Anghek Leonard, Mastering JavaServer Faces 2.2, Packt Publishing, 2014.
• Çağatay Çivici, Primefaces User Guide 6.2
• Primefaces, Primefaces Showcase, https://www.primefaces.org/showcase/
• POSTGRES, PostgreSQL Documentation, https://www.postgresql.org/docs/current/

60
61
Anexos
Anexo A. Abreviatura dos Módulos
Anexo B. Páginas do Sistema
Anexo C. Cronograma de Implementação do Projecto
Anexo D. Requisitos Funcionais
Anexo E. Requisitos Não Funcionais
Anexo F. Script da Base de Dados
Anexo A.
Abreviatura dos Módulos
Módulo Abreviatura

Catalogação Cat

Acervo Acv

Requisicoes Req

Localizações Loc

Geral Grl

Segurança Seg

Tabela 44 - Abreviatura dos Módulos

63
Anexo B.
Páginas do Sistema
Página de Autenticação:

Figura 13 - Página de Autenticação

64
Página de Catalogação Bibliográfica:

Figura 14 - Página de Catalogação Bibliográfica

Página de Catalogação Bibliográfica (Edição/Publicação):

Figura 15 - Página de Catalogação Bibliográfica (Edição/Publicação)

65
Página de Catalogação Bibliográfica (Ficha Bibliográfica):

Figura 16 - Página de Catalogação Bibliográfica (Ficha Bibliográfica)

Página de Listagem de Exemplares:

Figura 17 - Página de Listagem de Livros

66
Página de Entrada de Exemplares:

Figura 18 - Página de Entrada de Exemplares

Página de Listagem de Exemplares:

Figura 19 - Página de Listagem de Exemplares

67
Página de Cadastro de Utentes (Estudantes):

Figura 20 - Página de Cadastro de Utentes (Estudantes)

Página de Cadastro de Requisição :

Figura 21 - Página de Cadastro de Requisição

68
Página de Visualização da Estatística Interna:

Figura 22 - Página de Visualização da Estatística Interna

Ficheiro de Visualização da Estatística Interna:

Figura 23 – Ficheiro de Visualização da Estatística Interna

69
Ficheiro de Visualização do Gráfico Estatística Interna:

Figura 24 – Ficheiro de Visualização do Gráfico Estatística Interna

Página de Carregamento da CDU:

Figura 25 – Página de Carregamento da CDU

70
Página de Catalogação de Periódico

Figura 26 – Página de Catalogação de Periódico

Página de Catalogação de Periódico (Artigos)

Figura 27 – Página de Catalogação de Periódico (Artigos)

71
Anexo C.
Cronograma de
Implementação do Projecto
Ordem Descrição da Etapa do Data de Início Data de Fim
Projecto
1º Validação do projecto Julho de 2021 Setembro de 2021

2º Levantamento de requisitos Outubro de 2021 Novembro de 2021

3º Desenvolvimento do sistema Janeiro de 2022 Novembro de 2022

4º Sessões de apresentações e Novembro de 2020 Dezembro de 2022


melhorias do sistema
5º Relatório final Junho de 2022 Dezembro de 2022

Tabela 16 – Cronograma de Implementação do Projecto

72
Anexo D.
Requisitos Funcionais
Ref. Requisito
RF01 O sistema deve permitir fazer a gestão da catalogação dos livros e periódicos.
RF02 O sistema deve permitir fazer a gestão do acervo
RF03 O sistema deve permitir fazer a gestão dos utentes
RF04 O sistema deve permitir fazer a gestão das requisições
RF05 O sistema deve permitir fazer a gestão das localizações e dos itens gerais
RF06 O sistema deve permitir fazer a gestão do controle de acesso a aplicação
(segurança)
Tabela 17- Requisitos Funcionais

73
Anexo E.
Requisitos Não Funcionais
Ref. Requisito
RNF01: Acessibilidade Suporte de até 128 sessões simultâneas; Disponibilidade do
sistema em Intranet e Internet.
RNF02: Desempenho Cada registo será guardado num período máximo de 4 segundos;
O tempo de resposta do sistema não deverá ultrapassar 10
segundos.
RNF03: Disponibilidade O sistema funcionará 24/24h.
RNF04: Escalabilidade O sistema terá a capacidade de escalar com poucas dificuldades,
mantendo o seu desempenho quando novos recursos forem
adicionados.
RNF05: Portabilidade O sistema poderá ser acedido a partir de diferentes dispositivos de
diferentes plataformas num ambiente web.
RNF06: Segurança O sistema possuirá senhas de acesso para diferentes tipos de
utilizadores (autenticação);

Restrição de acesso a funcionalidades do sistema por parte dos


utilizadores, níveis de acesso diferenciado para cada utilizador
(autorização).
Tabela 18 - Requisitos Não Funcionais

74
Anexo F.
Script da Base de Dados
-- Table: public.bbt_area

-- DROP TABLE public.bbt_area;

CREATE TABLE public.bbt_area


(
pk_bbt_area integer NOT NULL DEFAULT
nextval('bbt_area_pk_bbt_area_seq'::regclass),
designacao character varying COLLATE pg_catalog."default" NOT NULL,
CONSTRAINT bbt_area_pkey PRIMARY KEY (pk_bbt_area)
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.bbt_area


OWNER to postgres;

-- Table: public.bbt_artigo

-- DROP TABLE public.bbt_artigo;

CREATE TABLE public.bbt_artigo


(
pk_bbt_artigo integer NOT NULL DEFAULT
nextval('bbt_artigo_bbt_pk_artigo_seq'::regclass),
titulo character varying COLLATE pg_catalog."default" NOT NULL,
fk_grl_lingua integer,
fk_grl_pais character varying COLLATE pg_catalog."default",
link character varying COLLATE pg_catalog."default",
volume integer,
pagina integer,
ano integer,
fk_grl_cidade integer,
nota character varying COLLATE pg_catalog."default",
outro_titulo character varying COLLATE pg_catalog."default",
numero integer,
fk_periodico integer,
CONSTRAINT bbt_artigo_pkey PRIMARY KEY (pk_bbt_artigo),
CONSTRAINT grl_cidade_fkey FOREIGN KEY (fk_grl_cidade)

75
REFERENCES public.grl_cidade (pk_grl_cidade) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID,
CONSTRAINT grl_lingua_fkey FOREIGN KEY (fk_grl_lingua)
REFERENCES public.grl_lingua (pk_grl_lingua) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID,
CONSTRAINT grl_pais_fkey FOREIGN KEY (fk_grl_pais)
REFERENCES public.grl_pais (pk_grl_pais) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID,
CONSTRAINT periodico_fkey FOREIGN KEY (fk_periodico)
REFERENCES public.bbt_periodico (pk_bbt_periodico) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.bbt_artigo


OWNER to postgres;

-- Table: public.bbt_artigo_bbt_autoridade

-- DROP TABLE public.bbt_artigo_bbt_autoridade;

CREATE TABLE public.bbt_artigo_bbt_autoridade


(
pk_bbt_artigo_bbt_autoridade integer NOT NULL DEFAULT
nextval('bbt_artigo_bbt_autoridade_pk_bbt_artigo_bbt_autoridade_seq'::regclass),
fk_bbt_artigo integer NOT NULL,
fk_bbt_autoridade integer NOT NULL,
CONSTRAINT bbt_artigo_bbt_autoridade_pkey PRIMARY KEY
(pk_bbt_artigo_bbt_autoridade),
CONSTRAINT bbt_artigo_fkey FOREIGN KEY (fk_bbt_artigo)
REFERENCES public.bbt_artigo (pk_bbt_artigo) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION,
CONSTRAINT bbt_autoridade_fkey FOREIGN KEY (fk_bbt_autoridade)
REFERENCES public.bbt_autoridade (pk_bbt_autoridade) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

76
ALTER TABLE public.bbt_artigo_bbt_autoridade
OWNER to postgres;
4
-- Table: public.bbt_audiencia

-- DROP TABLE public.bbt_audiencia;

CREATE TABLE public.bbt_audiencia


(
pk_bbt_audiencia integer NOT NULL DEFAULT
nextval('bbt_audiencia_pk_bbt_audiencia_seq'::regclass),
designacao character varying COLLATE pg_catalog."default" NOT NULL,
CONSTRAINT bbt_audiencia_pkey PRIMARY KEY (pk_bbt_audiencia)
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.bbt_audiencia


OWNER to postgres;

-- Table: public.bbt_autoridade

-- DROP TABLE public.bbt_autoridade;

CREATE TABLE public.bbt_autoridade


(
pk_bbt_autoridade integer NOT NULL DEFAULT
nextval('bbt_autoridade_pk_bbt_autoridade_seq'::regclass),
nome_completo character varying COLLATE pg_catalog."default",
palavra_ordem character varying COLLATE pg_catalog."default",
outra_parte_nome character varying COLLATE pg_catalog."default",
fk_tipo_autoridade integer,
CONSTRAINT bbt_autoridade_pkey PRIMARY KEY (pk_bbt_autoridade),
CONSTRAINT tipo_autoridade_fkey FOREIGN KEY (fk_tipo_autoridade)
REFERENCES public.bbt_tipo_autoridade (pk_bbt_tipo_autoridade) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.bbt_autoridade


OWNER to postgres;

-- Table: public.bbt_autoridade_colectiva

-- DROP TABLE public.bbt_autoridade_colectiva;

CREATE TABLE public.bbt_autoridade_colectiva


77
(
pk_bbt_autoridade_colectiva integer NOT NULL DEFAULT
nextval('bbt_autoridade_colectiva_pk_bbt_autoridade_colectiva_seq'::regclass),
palavra_ordem character varying COLLATE pg_catalog."default",
sub_divisao character varying COLLATE pg_catalog."default",
fk_tipo_autoridade integer,
CONSTRAINT bbt_autoridade_colectiva_pkey PRIMARY KEY
(pk_bbt_autoridade_colectiva),
CONSTRAINT tipo_autoridade_fkey FOREIGN KEY (fk_tipo_autoridade)
REFERENCES public.bbt_tipo_autoridade (pk_bbt_tipo_autoridade) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.bbt_autoridade_colectiva


OWNER to postgres;

-- Table: public.bbt_biblioteca

-- DROP TABLE public.bbt_biblioteca;

CREATE TABLE public.bbt_biblioteca


(
pk_bbt_biblioteca integer NOT NULL DEFAULT
nextval('bbt_biblioteca_pk_bbt_biblioteca_seq'::regclass),
designacao character varying COLLATE pg_catalog."default" NOT NULL,
acronimo character varying COLLATE pg_catalog."default" NOT NULL,
fk_estrutura_fisica character varying COLLATE pg_catalog."default" NOT NULL,
CONSTRAINT bbt_biblioteca_pkey PRIMARY KEY (pk_bbt_biblioteca),
CONSTRAINT estrutura_fisica_fkey FOREIGN KEY (fk_estrutura_fisica)
REFERENCES public.estrutura_fisica (pk_estrutura_fisica) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.bbt_biblioteca


OWNER to postgres;

-- Table: public.bbt_cdu

-- DROP TABLE public.bbt_cdu;

CREATE TABLE public.bbt_cdu


(
pk_bbt_cdu character varying COLLATE pg_catalog."default" NOT NULL,
designacao character varying COLLATE pg_catalog."default",
78
fk_bbt_cdu character varying COLLATE pg_catalog."default",
CONSTRAINT bbt_cdu_pkey PRIMARY KEY (pk_bbt_cdu),
CONSTRAINT bbt_cdu_fkey FOREIGN KEY (fk_bbt_cdu)
REFERENCES public.bbt_cdu (pk_bbt_cdu) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.bbt_cdu


OWNER to postgres;

-- Table: public.bbt_cod_audiencia

-- DROP TABLE public.bbt_cod_audiencia;

CREATE TABLE public.bbt_cod_audiencia


(
pk_bbt_cod_audiencia integer NOT NULL DEFAULT
nextval('bbt_cod_audiencia_pk_bbt_cod_audiencia_seq'::regclass),
designacao character varying COLLATE pg_catalog."default" NOT NULL,
CONSTRAINT bbt_cod_audiencia_pkey PRIMARY KEY (pk_bbt_cod_audiencia)
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.bbt_cod_audiencia


OWNER to postgres;

-- Table: public.bbt_colecao

-- DROP TABLE public.bbt_colecao;

CREATE TABLE public.bbt_colecao


(
pk_bbt_colecao integer NOT NULL DEFAULT
nextval('bbt_colecao_pk_bbt_colecao_seq'::regclass),
designacao character varying COLLATE pg_catalog."default" NOT NULL,
CONSTRAINT bbt_colecao_pkey PRIMARY KEY (pk_bbt_colecao)
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.bbt_colecao


OWNER to postgres;

-- Table: public.bbt_documento
79
-- DROP TABLE public.bbt_documento;

CREATE TABLE public.bbt_documento


(
pk_bbt_documento integer NOT NULL DEFAULT
nextval('bbt_documento_pk_bbt_documento_seq'::regclass),
isbn character varying COLLATE pg_catalog."default",
fk_bbt_tipo_documento integer NOT NULL DEFAULT 1,
edicao integer DEFAULT 1,
titulo character varying COLLATE pg_catalog."default" NOT NULL,
sub_titulo character varying COLLATE pg_catalog."default",
fk_bbt_editora integer,
fk_loc_localidade character varying COLLATE pg_catalog."default",
num_paginas integer,
altura integer,
largura integer,
notas character varying COLLATE pg_catalog."default",
deposito_legal character varying COLLATE pg_catalog."default",
fk_grl_lingua integer NOT NULL DEFAULT 1,
ano integer,
fk_bbt_colecao integer,
url_imagem character varying COLLATE pg_catalog."default",
created_at timestamp without time zone DEFAULT now(),
updated_at timestamp without time zone,
is_removed boolean NOT NULL DEFAULT false,
fk_seg_conta_created_by integer NOT NULL,
fk_seg_conta_updated_by integer,
fk_autoridade_principal integer,
cota character varying COLLATE pg_catalog."default",
fk_autoridade_secundaria integer,
fk_autor_co_responsavel integer,
fk_autor_colect integer,
fk_autor_co_resp_colect integer,
fk_autor_secundario_colect integer,
fk_bbt_cdu character varying COLLATE pg_catalog."default",
issn character varying COLLATE pg_catalog."default",
fk_periodicidade integer,
fk_grl_pais character varying COLLATE pg_catalog."default",
fk_grl_cidade integer,
CONSTRAINT bbt_documento_pkey PRIMARY KEY (pk_bbt_documento),
CONSTRAINT bbt_documento_isbn_key UNIQUE (isbn)
,
CONSTRAINT autor_co_resp_colect_fkey FOREIGN KEY (fk_autor_co_resp_colect)
REFERENCES public.bbt_autoridade_colectiva (pk_bbt_autoridade_colectiva)
MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID,
CONSTRAINT autor_co_responsavel_fkey FOREIGN KEY (fk_autor_co_responsavel)
REFERENCES public.bbt_autoridade (pk_bbt_autoridade) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID,
80
CONSTRAINT autor_colect_fkey FOREIGN KEY (fk_autor_colect)
REFERENCES public.bbt_autoridade_colectiva (pk_bbt_autoridade_colectiva)
MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID,
CONSTRAINT autor_secundario_colect_fkey FOREIGN KEY (fk_autor_secundario_colect)
REFERENCES public.bbt_autoridade_colectiva (pk_bbt_autoridade_colectiva)
MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID,
CONSTRAINT autoridade_principal_fkey FOREIGN KEY (fk_autoridade_principal)
REFERENCES public.bbt_autoridade (pk_bbt_autoridade) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID,
CONSTRAINT autoridade_secundaria_fkey FOREIGN KEY (fk_autoridade_secundaria)
REFERENCES public.bbt_autoridade (pk_bbt_autoridade) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID,
CONSTRAINT bbt_cdu_fkey FOREIGN KEY (fk_bbt_cdu)
REFERENCES public.bbt_cdu (pk_bbt_cdu) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID,
CONSTRAINT bbt_colecao_fkey FOREIGN KEY (fk_bbt_colecao)
REFERENCES public.bbt_colecao (pk_bbt_colecao) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION,
CONSTRAINT bbt_editora_fkey FOREIGN KEY (fk_bbt_editora)
REFERENCES public.bbt_editora (pk_bbt_editora) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION,
CONSTRAINT bbt_tipo_documento_fkey FOREIGN KEY (fk_bbt_tipo_documento)
REFERENCES public.bbt_tipo_documento (pk_bbt_tipo_documento) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION,
CONSTRAINT grl_cidade_fkey FOREIGN KEY (fk_grl_cidade)
REFERENCES public.grl_cidade (pk_grl_cidade) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID,
CONSTRAINT grl_lingua_fkey FOREIGN KEY (fk_grl_lingua)
REFERENCES public.grl_lingua (pk_grl_lingua) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION,
CONSTRAINT grl_pais_fkey FOREIGN KEY (fk_grl_pais)
REFERENCES public.grl_pais (pk_grl_pais) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID,
CONSTRAINT loc_localidade_fkey FOREIGN KEY (fk_loc_localidade)
81
REFERENCES public.loc_localidade (pk_loc_localidade) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION,
CONSTRAINT periodicidade_fkey FOREIGN KEY (fk_periodicidade)
REFERENCES public.bbt_periodicidade (pk_bbt_periodicidade) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID,
CONSTRAINT seg_conta_created_by_fkey FOREIGN KEY (fk_seg_conta_created_by)
REFERENCES public.seg_conta (pk_seg_conta) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION,
CONSTRAINT seg_conta_updated_by_fkey FOREIGN KEY (fk_seg_conta_updated_by)
REFERENCES public.seg_conta (pk_seg_conta) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.bbt_documento


OWNER to postgres;

-- Table: public.bbt_documento_audiencia

-- DROP TABLE public.bbt_documento_audiencia;

CREATE TABLE public.bbt_documento_audiencia


(
pk_bbt_documento_audiencia integer NOT NULL DEFAULT
nextval('bbt_documento_audiencia_pk_bbt_documento_audiencia_seq'::regclass),
fk_bbt_documento integer,
fk_bbt_audiencia integer,
CONSTRAINT bbt_documento_audiencia_pkey PRIMARY KEY (pk_bbt_documento_audiencia),
CONSTRAINT bbt_audiencia_fkey FOREIGN KEY (fk_bbt_audiencia)
REFERENCES public.bbt_audiencia (pk_bbt_audiencia) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION,
CONSTRAINT bbt_documento_fkey FOREIGN KEY (fk_bbt_documento)
REFERENCES public.bbt_documento (pk_bbt_documento) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.bbt_documento_audiencia


OWNER to postgres;

82
-- Table: public.bbt_documento_bbt_autoridade

-- DROP TABLE public.bbt_documento_bbt_autoridade;

CREATE TABLE public.bbt_documento_bbt_autoridade


(
pk_bbt_documento_bbt_autoridade integer NOT NULL DEFAULT
nextval('bbt_documento_bbt_autoridade_pk_bbt_documento_bbt_autoridad_seq'::regclass),
fk_bbt_documento integer NOT NULL,
fk_bbt_autoridade integer NOT NULL,
CONSTRAINT bbt_documento_bbt_autoridade_pkey PRIMARY KEY
(pk_bbt_documento_bbt_autoridade),
CONSTRAINT bbt_autoridade_fkey FOREIGN KEY (fk_bbt_autoridade)
REFERENCES public.bbt_autoridade (pk_bbt_autoridade) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION,
CONSTRAINT bbt_documento_fkey FOREIGN KEY (fk_bbt_documento)
REFERENCES public.bbt_documento (pk_bbt_documento) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.bbt_documento_bbt_autoridade


OWNER to postgres;

-- Table: public.bbt_documento_bbt_cdu

-- DROP TABLE public.bbt_documento_bbt_cdu;

CREATE TABLE public.bbt_documento_bbt_cdu


(
pk_bbt_documento_bbt_cdu integer NOT NULL DEFAULT
nextval('bbt_documento_bbt_cdu_pk_bbt_documento_bbt_cdu_seq'::regclass),
fk_bbt_documento integer NOT NULL,
fk_bbt_cdu character varying COLLATE pg_catalog."default" NOT NULL,
CONSTRAINT bbt_documento_bbt_cdu_pkey PRIMARY KEY (pk_bbt_documento_bbt_cdu),
CONSTRAINT bbt_cdu_fkey FOREIGN KEY (fk_bbt_cdu)
REFERENCES public.bbt_cdu (pk_bbt_cdu) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION,
CONSTRAINT bbt_documento_fkey FOREIGN KEY (fk_bbt_documento)
REFERENCES public.bbt_documento (pk_bbt_documento) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

83
ALTER TABLE public.bbt_documento_bbt_cdu
OWNER to postgres;

-- Table: public.bbt_editora

-- DROP TABLE public.bbt_editora;

CREATE TABLE public.bbt_editora


(
pk_bbt_editora integer NOT NULL DEFAULT
nextval('bbt_editora_pk_bbt_editora_seq'::regclass),
designacao character varying COLLATE pg_catalog."default" NOT NULL,
CONSTRAINT bbt_editora_pkey PRIMARY KEY (pk_bbt_editora)
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.bbt_editora


OWNER to postgres;

-- Table: public.bbt_editora_loc_localidade

-- DROP TABLE public.bbt_editora_loc_localidade;

CREATE TABLE public.bbt_editora_loc_localidade


(
fk_bbt_editora integer NOT NULL,
fk_loc_localidade character varying COLLATE pg_catalog."default" NOT NULL,
num_ordem integer NOT NULL,
CONSTRAINT bbt_editora_grl_localidade_pkey PRIMARY KEY (fk_bbt_editora,
fk_loc_localidade),
CONSTRAINT cat_editora_fkey FOREIGN KEY (fk_bbt_editora)
REFERENCES public.bbt_editora (pk_bbt_editora) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION,
CONSTRAINT loc_localidade_fkey FOREIGN KEY (fk_loc_localidade)
REFERENCES public.loc_localidade (pk_loc_localidade) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.bbt_editora_loc_localidade


OWNER to postgres;

-- Table: public.bbt_estado_exemplar

84
-- DROP TABLE public.bbt_estado_exemplar;

CREATE TABLE public.bbt_estado_exemplar


(
pk_bbt_estado_exemplar integer NOT NULL DEFAULT
nextval('bbt_estado_exemplar_pk_bbt_estado_exemplar_seq'::regclass),
designacao character varying COLLATE pg_catalog."default" NOT NULL,
CONSTRAINT bbt_estado_exemplar_pkey PRIMARY KEY (pk_bbt_estado_exemplar)
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.bbt_estado_exemplar


OWNER to postgres;

-- Table: public.bbt_exemplar_documento

-- DROP TABLE public.bbt_exemplar_documento;

CREATE TABLE public.bbt_exemplar_documento


(
pk_bbt_exemplar_documento integer NOT NULL DEFAULT
nextval('bbt_exemplar_documento_pk_bbt_exemplar_documento_seq'::regclass),
fk_bbt_documento integer,
data_entrada timestamp(4) without time zone DEFAULT now(),
cod_interno integer,
fk_bbt_biblioteca integer NOT NULL,
num_registo character varying COLLATE pg_catalog."default",
fk_bbt_estado_exemplar integer DEFAULT 1,
fk_tipo_documento integer DEFAULT 1,
fk_bbt_periodico integer,
CONSTRAINT bbt_exemplar_documento_pkey PRIMARY KEY (pk_bbt_exemplar_documento),
CONSTRAINT bbt_biblioteca_fkey FOREIGN KEY (fk_bbt_biblioteca)
REFERENCES public.bbt_biblioteca (pk_bbt_biblioteca) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION,
CONSTRAINT bbt_documento FOREIGN KEY (fk_bbt_documento)
REFERENCES public.bbt_documento (pk_bbt_documento) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION,
CONSTRAINT bbt_estado_exemplar_fkey FOREIGN KEY (fk_bbt_estado_exemplar)
REFERENCES public.bbt_estado_exemplar (pk_bbt_estado_exemplar) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID,
CONSTRAINT bbt_periodico_fkey FOREIGN KEY (fk_bbt_periodico)
REFERENCES public.bbt_periodico (pk_bbt_periodico) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID,
CONSTRAINT fk_tipo_documento FOREIGN KEY (fk_tipo_documento)
85
REFERENCES public.bbt_tipo_documento (pk_bbt_tipo_documento) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.bbt_exemplar_documento


OWNER to postgres;

-- Table: public.bbt_exemplar_periodico

-- DROP TABLE public.bbt_exemplar_periodico;

CREATE TABLE public.bbt_exemplar_periodico


(
pk_bbt_exemplar_periodico integer NOT NULL DEFAULT
nextval('bbt_exemplar_periodico_pk_bbt_exemplar_periodico_seq'::regclass),
fk_bbt_periodico integer NOT NULL,
data_entrada timestamp(4) without time zone DEFAULT now(),
cod_interno integer,
fk_bbt_biblioteca integer NOT NULL,
num_registo character varying COLLATE pg_catalog."default",
fk_bbt_estado_exemplar integer DEFAULT 1,
CONSTRAINT bbt_exemplar_periodico_pkey PRIMARY KEY (pk_bbt_exemplar_periodico),
CONSTRAINT bbt_biblioteca_fkey FOREIGN KEY (fk_bbt_biblioteca)
REFERENCES public.bbt_biblioteca (pk_bbt_biblioteca) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION,
CONSTRAINT bbt_estado_exemplar_fkey FOREIGN KEY (fk_bbt_estado_exemplar)
REFERENCES public.bbt_estado_exemplar (pk_bbt_estado_exemplar) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION,
CONSTRAINT bbt_periodico FOREIGN KEY (fk_bbt_periodico)
REFERENCES public.bbt_periodico (pk_bbt_periodico) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.bbt_exemplar_periodico


OWNER to postgres;

-- Table: public.bbt_periodicidade

-- DROP TABLE public.bbt_periodicidade;

CREATE TABLE public.bbt_periodicidade


86
(
pk_bbt_periodicidade integer NOT NULL DEFAULT
nextval('bbt_periodicidade_pk_bbt_periodicidade_seq'::regclass),
designacao character varying COLLATE pg_catalog."default" NOT NULL,
CONSTRAINT bbt_periodicidade_pkey PRIMARY KEY (pk_bbt_periodicidade)
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.bbt_periodicidade


OWNER to postgres;

-- Table: public.bbt_periodico

-- DROP TABLE public.bbt_periodico;

CREATE TABLE public.bbt_periodico


(
pk_bbt_periodico integer NOT NULL DEFAULT
nextval('bbt_periodico_pk_bbt_periodico_seq'::regclass),
designacao character varying COLLATE pg_catalog."default",
issn character varying COLLATE pg_catalog."default",
fk_periodicidade integer,
fk_grl_instituicao integer,
fk_grl_pais character varying COLLATE pg_catalog."default",
numero integer,
ano integer,
link character varying COLLATE pg_catalog."default",
fk_bbt_area integer,
fk_bbt_cdu character varying COLLATE pg_catalog."default",
fk_grl_cidade integer,
notas character varying COLLATE pg_catalog."default",
imagem character varying COLLATE pg_catalog."default",
volume character varying COLLATE pg_catalog."default",
CONSTRAINT bbt_periodico_pkey PRIMARY KEY (pk_bbt_periodico),
CONSTRAINT bbt_area_fkey FOREIGN KEY (fk_bbt_area)
REFERENCES public.bbt_area (pk_bbt_area) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID,
CONSTRAINT bbt_cdu_fkey FOREIGN KEY (fk_bbt_cdu)
REFERENCES public.bbt_cdu (pk_bbt_cdu) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID,
CONSTRAINT grl_cidade_fkey FOREIGN KEY (fk_grl_cidade)
REFERENCES public.grl_cidade (pk_grl_cidade) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID,
CONSTRAINT grl_instituicao_fkey FOREIGN KEY (fk_grl_instituicao)
REFERENCES public.grl_instituicao (pk_grl_instituicao_ensino) MATCH SIMPLE
87
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID,
CONSTRAINT grl_pais_fkey FOREIGN KEY (fk_grl_pais)
REFERENCES public.grl_pais (pk_grl_pais) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID,
CONSTRAINT periodicidade_fkey FOREIGN KEY (fk_periodicidade)
REFERENCES public.bbt_periodicidade (pk_bbt_periodicidade) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.bbt_periodico


OWNER to postgres;

-- Table: public.bbt_prateleira_utente

-- DROP TABLE public.bbt_prateleira_utente;

CREATE TABLE public.bbt_prateleira_utente


(
pk_bbt_prateleira_utente integer NOT NULL DEFAULT
nextval('bbt_prateleira_utente_pk_bbt_prateleira_utente_seq'::regclass),
designacao character varying COLLATE pg_catalog."default" NOT NULL,
is_ocupado boolean DEFAULT false,
CONSTRAINT bbt_prateleira_utente_pkey PRIMARY KEY (pk_bbt_prateleira_utente)
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.bbt_prateleira_utente


OWNER to postgres;

-- Table: public.bbt_requisicao

-- DROP TABLE public.bbt_requisicao;

CREATE TABLE public.bbt_requisicao


(
pk_bbt_requisicao integer NOT NULL DEFAULT
nextval('requisicao_pk_requisicao_seq'::regclass),
data_hora_entrega timestamp without time zone NOT NULL DEFAULT now(),
data_hora_recepcao timestamp without time zone,
fk_seg_conta integer NOT NULL,
fk_bbt_prateleira_utente integer,
88
CONSTRAINT requisicao_pkey PRIMARY KEY (pk_bbt_requisicao),
CONSTRAINT bbt_prateleira_utente_fkey FOREIGN KEY (fk_bbt_prateleira_utente)
REFERENCES public.bbt_prateleira_utente (pk_bbt_prateleira_utente) MATCH
SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION,
CONSTRAINT seg_conta_fkey FOREIGN KEY (fk_seg_conta)
REFERENCES public.seg_conta (pk_seg_conta) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.bbt_requisicao


OWNER to postgres;

-- Table: public.bbt_requisicao

-- DROP TABLE public.bbt_requisicao;

CREATE TABLE public.bbt_requisicao


(
pk_bbt_requisicao integer NOT NULL DEFAULT
nextval('requisicao_pk_requisicao_seq'::regclass),
data_hora_entrega timestamp without time zone NOT NULL DEFAULT now(),
data_hora_recepcao timestamp without time zone,
fk_seg_conta integer NOT NULL,
fk_bbt_prateleira_utente integer,
CONSTRAINT requisicao_pkey PRIMARY KEY (pk_bbt_requisicao),
CONSTRAINT bbt_prateleira_utente_fkey FOREIGN KEY (fk_bbt_prateleira_utente)
REFERENCES public.bbt_prateleira_utente (pk_bbt_prateleira_utente) MATCH
SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION,
CONSTRAINT seg_conta_fkey FOREIGN KEY (fk_seg_conta)
REFERENCES public.seg_conta (pk_seg_conta) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.bbt_requisicao


OWNER to postgres;

-- Table: public."bbt_requisicao_ bbt_funcionario"

-- DROP TABLE public."bbt_requisicao_ bbt_funcionario";

89
CREATE TABLE public."bbt_requisicao_ bbt_funcionario"
(
pk_bbt_requisicao__bbt_tuncionario integer NOT NULL DEFAULT
nextval('"bbt_requisicao_ rh_funcionari_pk_bbt_requisicao_
rh_funcion_seq"'::regclass),
fk_bbt_requisicao integer NOT NULL,
fk_bbt_funcionario integer NOT NULL,
CONSTRAINT "bbt_requisicao_ rh_funcionario_pkey" PRIMARY KEY
(pk_bbt_requisicao__bbt_tuncionario),
CONSTRAINT bbt_funcionario_fkey FOREIGN KEY (fk_bbt_funcionario)
REFERENCES public.bbt_utente_funcionario (pk_bbt_utente_funcionario) MATCH
SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID,
CONSTRAINT bbt_requisicao_fkey FOREIGN KEY (fk_bbt_requisicao)
REFERENCES public.bbt_requisicao (pk_bbt_requisicao) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public."bbt_requisicao_ bbt_funcionario"


OWNER to postgres;

-- Table: public.bbt_requisicao_bbt_estudante

-- DROP TABLE public.bbt_requisicao_bbt_estudante;

CREATE TABLE public.bbt_requisicao_bbt_estudante


(
pk_bbt_requisicao_bbt_estudante integer NOT NULL DEFAULT
nextval('bbt_requisicao_grl_estudante_pk_bbt_requisicao_grl_estudant_seq'::regclass),
fk_bbt_requisicao integer NOT NULL,
fk_bbt_estudante integer NOT NULL,
CONSTRAINT bbt_requisicao_bbt_estudante_pkey PRIMARY KEY
(pk_bbt_requisicao_bbt_estudante),
CONSTRAINT bbt_estudante_fkey FOREIGN KEY (fk_bbt_estudante)
REFERENCES public.bbt_utente_estudante (pk_bbt_estudante) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION,0
CONSTRAINT bbt_requisicao_fkey FOREIGN KEY (fk_bbt_requisicao)
REFERENCES public.bbt_requisicao (pk_bbt_requisicao) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

90
ALTER TABLE public.bbt_requisicao_bbt_estudante
OWNER to postgres;

-- Table: public.bbt_requisicao_bbt_exemplar

-- DROP TABLE public.bbt_requisicao_bbt_exemplar;

CREATE TABLE public.bbt_requisicao_bbt_exemplar


(
pk_bbt_requisicao_bbt_exemplar integer NOT NULL DEFAULT
nextval('bbt_requisicao_bbt_exemplar_pk_bbt_requisicao_bbt_exemplar_seq'::regclass),
fk_bbt_requisicao integer NOT NULL,
fk_bbt_exemplar_documento integer NOT NULL,
CONSTRAINT bbt_requisicao_bbt_exemplar_pkey PRIMARY KEY
(pk_bbt_requisicao_bbt_exemplar),
CONSTRAINT bbt_exemplar_documento_fkey FOREIGN KEY (fk_bbt_exemplar_documento)
REFERENCES public.bbt_exemplar_documento (pk_bbt_exemplar_documento) MATCH
SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION,
CONSTRAINT bbt_requisicao_fkey FOREIGN KEY (fk_bbt_requisicao)
REFERENCES public.bbt_requisicao (pk_bbt_requisicao) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.bbt_requisicao_bbt_exemplar


OWNER to postgres;

-- Table: public.bbt_tipo_artigo

-- DROP TABLE public.bbt_tipo_artigo;

CREATE TABLE public.bbt_tipo_artigo


(
pk_bbt_tipo_artigo integer NOT NULL DEFAULT
nextval('bbt_tipo_artigo_pk_bbt_tipo_artigo_seq'::regclass),
designacao character varying COLLATE pg_catalog."default",
CONSTRAINT bbt_tipo_artigo_pkey PRIMARY KEY (pk_bbt_tipo_artigo)
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.bbt_tipo_artigo


OWNER to postgres;

-- Table: public.bbt_tipo_autoridade

91
-- DROP TABLE public.bbt_tipo_autoridade;

CREATE TABLE public.bbt_tipo_autoridade


(
pk_bbt_tipo_autoridade integer NOT NULL DEFAULT
nextval('bbt_tipo_autoridade_pk_bbt_tipo_autoridade_seq'::regclass),
designacao character varying COLLATE pg_catalog."default" NOT NULL,
CONSTRAINT bbt_tipo_autoridade_pkey PRIMARY KEY (pk_bbt_tipo_autoridade)
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.bbt_tipo_autoridade


OWNER to postgres;

-- Table: public.bbt_tipo_documento

-- DROP TABLE public.bbt_tipo_documento;

CREATE TABLE public.bbt_tipo_documento


(
pk_bbt_tipo_documento integer NOT NULL DEFAULT
nextval('bbt_tipo_documento_pk_bbt_tipo_documento_seq'::regclass),
designacao character varying COLLATE pg_catalog."default" NOT NULL,
CONSTRAINT cat_tipo_documento_pkey PRIMARY KEY (pk_bbt_tipo_documento)
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.bbt_tipo_documento


OWNER to postgres;

-- Table: public.bbt_tipo_estudante

-- DROP TABLE public.bbt_tipo_estudante;

CREATE TABLE public.bbt_tipo_estudante


(
pk_bbt_tipo_estudante integer NOT NULL DEFAULT
nextval('bbt_tipo_utente_pk_bbt_tipo_utente_seq'::regclass),
designacao character varying COLLATE pg_catalog."default" NOT NULL,
CONSTRAINT bbt_tipo_utente_pkey PRIMARY KEY (pk_bbt_tipo_estudante)
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.bbt_tipo_estudante


OWNER to postgres;
92
-- Table: public.bbt_utente

-- DROP TABLE public.bbt_utente;

CREATE TABLE public.bbt_utente


(
pk_bbt_utente integer NOT NULL DEFAULT
nextval('bbt_utente_pk_bbt_utente_seq'::regclass),
nome character varying COLLATE pg_catalog."default" NOT NULL,
telefone_principal character varying COLLATE pg_catalog."default",
telefone_secundario_ character varying COLLATE pg_catalog."default",
email_principal character varying COLLATE pg_catalog."default",
email_secundario character varying COLLATE pg_catalog."default",
num_leitor character varying COLLATE pg_catalog."default",
CONSTRAINT bbt_utente_pkey PRIMARY KEY (pk_bbt_utente)
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.bbt_utente


OWNER to postgres;

-- Table: public.bbt_utente_estudante

-- DROP TABLE public.bbt_utente_estudante;

CREATE TABLE public.bbt_utente_estudante


(
pk_bbt_estudante integer NOT NULL DEFAULT
nextval('bbt_utente_pk_bbt_utente_seq1'::regclass),
num_estudante character varying COLLATE pg_catalog."default" NOT NULL,
ano integer NOT NULL,
fk_grl_instituicao integer,
fk_bbt_tipo_estudante integer NOT NULL,
created_at timestamp without time zone DEFAULT now(),
updated_at timestamp without time zone,
url_imagem integer,
fk_seg_conta_created_by integer NOT NULL,
is_removed boolean NOT NULL DEFAULT false,
fk_seg_conta_updated_by integer,
fk_bbt_utente integer,
fk_grl_curso_faculdade character varying COLLATE pg_catalog."default" NOT NULL,
CONSTRAINT bbt_estudante_pkey PRIMARY KEY (pk_bbt_estudante),
CONSTRAINT bbt_tipo_utente_fkey FOREIGN KEY (fk_bbt_tipo_estudante)
REFERENCES public.bbt_tipo_estudante (pk_bbt_tipo_estudante) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION,
CONSTRAINT bbt_utente_fkey FOREIGN KEY (fk_bbt_utente)
REFERENCES public.bbt_utente (pk_bbt_utente) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
93
NOT VALID,
CONSTRAINT grl_curso_faculdade_fkey FOREIGN KEY (fk_grl_curso_faculdade)
REFERENCES public.grl_curso_faculdade (pk_grl_curso_faculdade) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID,
CONSTRAINT grl_instituicao_fkey FOREIGN KEY (fk_grl_instituicao)
REFERENCES public.grl_instituicao (pk_grl_instituicao_ensino) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION,
CONSTRAINT seg_conta_created_by_fkey FOREIGN KEY (fk_seg_conta_created_by)
REFERENCES public.seg_conta (pk_seg_conta) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION,
CONSTRAINT seg_conta_updated_by_fkey FOREIGN KEY (fk_seg_conta_updated_by)
REFERENCES public.seg_conta (pk_seg_conta) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.bbt_utente_estudante


OWNER to postgres;

-- Table: public.bbt_utente_funcionario

-- DROP TABLE public.bbt_utente_funcionario;

CREATE TABLE public.bbt_utente_funcionario


(
pk_bbt_utente_funcionario integer NOT NULL DEFAULT
nextval('bbt_utente_funcionario_pk_bbt_utente_funcionario_seq'::regclass),
num_funcionario character varying COLLATE pg_catalog."default",
fk_rh_funcao integer NOT NULL,
fk_bbt_utente integer NOT NULL,
CONSTRAINT bbt_utente_funcionario_pkey PRIMARY KEY (pk_bbt_utente_funcionario),
CONSTRAINT bbt_utente_fkey FOREIGN KEY (fk_bbt_utente)
REFERENCES public.bbt_utente (pk_bbt_utente) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID,
CONSTRAINT rh_funcao_fkey FOREIGN KEY (fk_rh_funcao)
REFERENCES public.rh_funcao (pk_funcao) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;
94
ALTER TABLE public.bbt_utente_funcionario
OWNER to postgres;

-- Table: public.estrutura_fisica

-- DROP TABLE public.estrutura_fisica;

CREATE TABLE public.estrutura_fisica


(
pk_estrutura_fisica character varying COLLATE pg_catalog."default" NOT NULL,
designacao character varying COLLATE pg_catalog."default" NOT NULL,
fk_estrutura_fisica character varying COLLATE pg_catalog."default",
fk_localidade character varying COLLATE pg_catalog."default",
CONSTRAINT estrutura_fisica_pkey PRIMARY KEY (pk_estrutura_fisica),
CONSTRAINT estrutura_fisica_fkey FOREIGN KEY (fk_estrutura_fisica)
REFERENCES public.estrutura_fisica (pk_estrutura_fisica) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION,
CONSTRAINT localidade_fkey FOREIGN KEY (fk_localidade)
REFERENCES public.loc_localidade (pk_loc_localidade) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.estrutura_fisica


OWNER to postgres;

-- Table: public.estrutura_grl_excel_path

-- DROP TABLE public.estrutura_grl_excel_path;

CREATE TABLE public.estrutura_grl_excel_path


(
pk_grl_excel_path integer NOT NULL DEFAULT
nextval('estrutura_grl_excel_path_pk_grl_excel_path_seq'::regclass),
path character varying COLLATE pg_catalog."default" NOT NULL,
CONSTRAINT estrutura_grl_excel_path_pkey PRIMARY KEY (pk_grl_excel_path)
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.estrutura_grl_excel_path


OWNER to postgres;

-- Table: public.estrutura_logica

-- DROP TABLE public.estrutura_logica;


95
CREATE TABLE public.estrutura_logica
(
pk_estrutura_logica character varying COLLATE pg_catalog."default" NOT NULL,
designacao character varying COLLATE pg_catalog."default" NOT NULL,
fk_estrutura_logica character varying COLLATE pg_catalog."default",
CONSTRAINT estrutura_logica_pkey PRIMARY KEY (pk_estrutura_logica),
CONSTRAINT estrutura_logica_fkey FOREIGN KEY (fk_estrutura_logica)
REFERENCES public.estrutura_logica (pk_estrutura_logica) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.estrutura_logica


OWNER to postgres;

-- Table: public.estrutura_logica_fisica

-- DROP TABLE public.estrutura_logica_fisica;

CREATE TABLE public.estrutura_logica_fisica


(
pk_estrutura_logica_fisica integer NOT NULL DEFAULT
nextval('estrutura_logica_fisica_pk_estrutura_logica_fisica_seq'::regclass),
fk_estrutura_fisica character varying COLLATE pg_catalog."default" NOT NULL,
fk_estrutura_logica character varying COLLATE pg_catalog."default" NOT NULL,
data date NOT NULL,
hora timestamp without time zone NOT NULL,
CONSTRAINT estrutura_logica_fisica_pkey PRIMARY KEY (pk_estrutura_logica_fisica),
CONSTRAINT estrutura_fisica_fkey FOREIGN KEY (fk_estrutura_fisica)
REFERENCES public.estrutura_fisica (pk_estrutura_fisica) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION,
CONSTRAINT estrutura_logica_fkey FOREIGN KEY (fk_estrutura_logica)
REFERENCES public.estrutura_logica (pk_estrutura_logica) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.estrutura_logica_fisica


OWNER to postgres;

-- Table: public.grl_cidade

-- DROP TABLE public.grl_cidade;

96
CREATE TABLE public.grl_cidade
(
pk_grl_cidade integer NOT NULL DEFAULT
nextval('grl_cidade_pk_grl_cidade_seq'::regclass),
designacao character varying COLLATE pg_catalog."default" NOT NULL,
pais character varying COLLATE pg_catalog."default",
sub_pais character varying COLLATE pg_catalog."default",
geoname_id character varying COLLATE pg_catalog."default",
CONSTRAINT grl_cidade_pkey PRIMARY KEY (pk_grl_cidade)
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.grl_cidade


OWNER to postgres;

-- Table: public.grl_curso_faculdade

-- DROP TABLE public.grl_curso_faculdade;

CREATE TABLE public.grl_curso_faculdade


(
pk_grl_curso_faculdade character varying COLLATE pg_catalog."default" NOT NULL,
designacao character varying COLLATE pg_catalog."default" NOT NULL,
fk_grl_curso_faculdade character varying COLLATE pg_catalog."default",
CONSTRAINT grl_curso_faculdade_pkey1 PRIMARY KEY (pk_grl_curso_faculdade),
CONSTRAINT grl_curso_faculdade_fkey FOREIGN KEY (fk_grl_curso_faculdade)
REFERENCES public.grl_curso_faculdade (pk_grl_curso_faculdade) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.grl_curso_faculdade


OWNER to postgres;

-- Table: public.grl_instituicao

-- DROP TABLE public.grl_instituicao;

CREATE TABLE public.grl_instituicao


(
pk_grl_instituicao_ensino integer NOT NULL DEFAULT
nextval('grl_instituicao_pk_grl_instituicao_seq'::regclass),
designacao character varying COLLATE pg_catalog."default" NOT NULL,
acronimo character varying COLLATE pg_catalog."default" NOT NULL,
fk_grl_tipo_instituicao integer,
97
CONSTRAINT grl_instituicao_pkey PRIMARY KEY (pk_grl_instituicao_ensino),
CONSTRAINT grl_tipo_instituicao_fkey FOREIGN KEY (fk_grl_tipo_instituicao)
REFERENCES public.grl_tipo_instituicao (pk_tipo_instituicao) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
NOT VALID
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.grl_instituicao


OWNER to postgres;

-- Table: public.seg_conta

-- DROP TABLE public.seg_conta;

CREATE TABLE public.seg_conta


(
pk_seg_conta integer NOT NULL,
nome_utilizador character varying COLLATE pg_catalog."default",
palavra_passe character varying COLLATE pg_catalog."default" NOT NULL,
data_cadastro timestamp without time zone NOT NULL DEFAULT now(),
fk_seg_pessoa integer,
activo boolean DEFAULT false,
primeiro_login_conta boolean DEFAULT true,
fk_seg_perfil integer,
ultimo_acesso_conta timestamp without time zone,
fk_seg_conta integer,
fk_seg_pagina_arranque integer,
tempo_inactividade integer,
fk_tipo_conta integer,
max_idle_time integer DEFAULT 0,
activar_tempo_inactividade boolean DEFAULT true,
CONSTRAINT seg_conta_pkey PRIMARY KEY (pk_seg_conta),
CONSTRAINT "segPagina_arranque2_fkey" FOREIGN KEY (fk_seg_pagina_arranque)
REFERENCES public.seg_pagina_arranque (pk_seg_pagina_arranque) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION,
CONSTRAINT seg_conta_fk_seg_conta_fkey FOREIGN KEY (fk_seg_conta)
REFERENCES public.seg_conta (pk_seg_conta) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION,
CONSTRAINT seg_conta_fk_seg_perfil_fkey FOREIGN KEY (fk_seg_perfil)
REFERENCES public.seg_perfil (pk_seg_perfil) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION,
CONSTRAINT seg_conta_fk_seg_pessoa_fkey FOREIGN KEY (fk_seg_pessoa)
REFERENCES public.grl_pessoa (pk_grl_pessoa) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION,
CONSTRAINT seg_conta_fk_tipo_conta_fkey FOREIGN KEY (fk_tipo_conta)
98
REFERENCES public.seg_tipo_conta (pk_seg_tipo_conta) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.seg_conta


OWNER to postgres;

99

Você também pode gostar