Prática em Banco de Dados
MER Estendido – Sistema SIGEM

Grupo:
Marcos Felipe
Renan Reis

Manaus - 2013
Descrição do Sistema
O sistema o SIGEM (Sistema de gestão de materiais) tem por objetivo o controle de
equipamentos que são emprestados e movimentados entre departamentos, e estes variam
desde computadores e impressoras até placas e equipamentos de menor porte.
O sistema SIGEM possui o objetivo de fazer o controle da movimentação de equipamentos, seu
processamento é baseado em cadastros dos equipamentos, devidamente registrados com a imagem
dos mesmos, o controle e geração de uma identificação única para cada equipamento, assim como
registro de data e hora do empréstimo, rastreamento do produto (última pessoa a registrar o
empréstimo), e módulos de consulta pública, destinado à alunos que necessitem consultar a
disponibilidade de determinado equipamento para empréstimo imediato e/ou à longo prazo.
As principais funções exercidas pelo sistema Sigem são o controle de empréstimos dos equipamentos
baseado em registros, registro e verificação de um ID único para o equipamento (tombamento), e
rastreamento do mesmo baseado nas informações obtidas dos empréstimos (data, hora, equipamento
emprestado, movimentação, se está ligada à algum projeto ou é pessoal, etc), basicamente, criando um
ambiente para controle dos equipamentos. A aquisição de um equipamento, assim como seu empréstimo,
está diretamente relacionado à um projeto, que será inserido no momento do registro do empréstimo.
Modelagem Lógica -Banco de dados SIGEM
Modelagem EER -SIGEM
Comandos LDD utilizados
-- ------------------------------------------------------ Table `categorias`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `categorias` (
`id` INT NOT NULL AUTO_INCREMENT ,
`nome` VARCHAR(255) NOT NULL ,
`created` DATETIME NULL DEFAULT NULL ,
`modified` DATETIME NULL DEFAULT NULL ,
PRIMARY KEY (`id`) )
-- ------------------------------------------------------ Table `cursos`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `cursos` (
`id` INT NOT NULL AUTO_INCREMENT ,
`nome` VARCHAR(45) NOT NULL ,
`created` DATETIME NULL DEFAULT NULL ,
`modified` DATETIME NULL DEFAULT NULL ,
PRIMARY KEY (`id`) )
-- ------------------------------------------------------ Table `projetos`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `projetos` (
`id` INT NOT NULL AUTO_INCREMENT ,
`nome` VARCHAR(255) NOT NULL ,
`created` DATETIME NULL DEFAULT NULL ,
`modified` DATETIME NULL DEFAULT NULL ,
`data_inicio` DATE NULL DEFAULT NULL ,
`data_termino` DATE NULL DEFAULT NULL ,
`descricao_resumida` VARCHAR(255) NULL DEFAULT NULL ,
`coordenador_id` INT NULL ,
PRIMARY KEY (`id`) ,
INDEX `fk_projetos_usuarios1` (`coordenador_id` ASC) )
-- ------------------------------------------------------ Table `alunos`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `alunos` (
`id` INT NOT NULL AUTO_INCREMENT ,
`matricula` VARCHAR(255) NOT NULL ,
`nome` VARCHAR(255) NOT NULL ,
`email` VARCHAR(255) NOT NULL ,
`telefone` VARCHAR(255) NULL DEFAULT NULL ,
`created` DATETIME NULL DEFAULT NULL ,
`modified` DATETIME NULL DEFAULT NULL ,
`rg` VARCHAR(15) NOT NULL ,
`tipo` CHAR(1) NOT NULL ,
`curso_id` INT NOT NULL ,
PRIMARY KEY (`id`) ,
UNIQUE INDEX `matricula` (`matricula` ASC) ,
INDEX `fk_solicitantes_cursos1_idx` (`curso_id` ASC) ,
CONSTRAINT `fk_solicitantes_cursos1`
FOREIGN KEY (`curso_id` )
REFERENCES `cursos` (`id` )

-- ------------------------------------------------------ Table `perfils`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `perfils` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`nome` VARCHAR(45) NOT NULL ,
`created` DATETIME NULL DEFAULT NULL ,
`modified` DATETIME NULL DEFAULT NULL ,
PRIMARY KEY (`id`) )
-- ------------------------------------------------------ Table `usuarios`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `usuarios` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`login` VARCHAR(255) NOT NULL ,
`password` VARCHAR(255) NOT NULL ,
`nome` VARCHAR(255) NOT NULL ,
`email` VARCHAR(255) NOT NULL ,
`telefone` VARCHAR(255) NULL DEFAULT NULL ,
`situacao` CHAR(1) NOT NULL DEFAULT 'A' COMMENT 'A = Ativo, I = Inativo' ,
`created` DATETIME NULL DEFAULT NULL ,
`modified` DATETIME NULL DEFAULT NULL ,
`perfil_id` INT(11) NOT NULL ,
PRIMARY KEY (`id`) ,
UNIQUE INDEX `login` (`login` ASC) ,
INDEX `fk_usuarios_perfils1_idx` (`perfil_id` ASC) ,
CONSTRAINT `fk_usuarios_perfils1`
FOREIGN KEY (`perfil_id` )
REFERENCES `perfils` (`id` )
)
-- ------------------------------------------------------ Table `emprestimos`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `emprestimos` (
`id` INT NOT NULL AUTO_INCREMENT ,
`projeto_id` INT NOT NULL ,
`aluno_id` INT NOT NULL ,
`autorizador_id` INT NOT NULL ,
`data_inicio` DATE NOT NULL ,
`data_devolucao` DATE NULL DEFAULT NULL ,
`finalidade` VARCHAR(255) NULL DEFAULT NULL ,
`data_entrega` DATE NOT NULL ,
`situacao` CHAR(1) NULL DEFAULT NULL ,
`usuario_id` INT NULL DEFAULT NULL ,
`created` DATETIME NULL DEFAULT NULL ,
`modified` DATETIME NULL DEFAULT NULL ,
`observacao` VARCHAR(255) NULL ,
PRIMARY KEY (`id`) ,
INDEX `fk_emprestimos_projetos1_idx` (`projeto_id` ASC) ,
INDEX `fk_emprestimos_solicitantes_idx` (`aluno_id` ASC) ,
INDEX `fk_emprestimos_usuarios1_idx` (`autorizador_id` ASC) ,
INDEX `fk_emprestimos_usuarios2_idx` (`usuario_id` ASC) ,
CONSTRAINT `fk_emprestimos_projetos1`
FOREIGN KEY (`projeto_id` )
REFERENCES `projetos` (`id` )
CONSTRAINT `fk_emprestimos_solicitantes`
FOREIGN KEY (`aluno_id` )
REFERENCES `alunos` (`id` )
CONSTRAINT `fk_emprestimos_usuarios1`
FOREIGN KEY (`autorizador_id` )
REFERENCES `usuarios` (`id` )
CONSTRAINT `fk_emprestimos_usuarios2`
FOREIGN KEY (`usuario_id` )
REFERENCES `usuarios` (`id` ))
-- ------------------------------------------------------ Table `images`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `images` (
`id` INT NOT NULL AUTO_INCREMENT ,
`name` VARCHAR(75) NOT NULL DEFAULT '' ,
`clean_name` VARCHAR(75) NOT NULL DEFAULT '' ,
`type` VARCHAR(255) NOT NULL DEFAULT '' ,
`size` INT NOT NULL DEFAULT '0' ,
`data` LONGBLOB NOT NULL ,
`filehash` VARCHAR(255) NOT NULL DEFAULT '' ,
`ext` VARCHAR(255) NOT NULL DEFAULT '' ,
`created` DATETIME NULL DEFAULT NULL ,
`updated` DATETIME NULL DEFAULT NULL ,
PRIMARY KEY (`id`) )
-- ------------------------------------------------------ Table `localizacaos`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `localizacaos` (
`id` INT NOT NULL AUTO_INCREMENT ,
`local` VARCHAR(45) NOT NULL ,
`created` DATETIME NULL DEFAULT NULL ,
`modified` DATETIME NULL DEFAULT NULL ,
`detalhe` VARCHAR(90) NULL ,
PRIMARY KEY (`id`) )
-- ------------------------------------------------------ Table `equipamentos`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `equipamentos` (
`id` INT NOT NULL AUTO_INCREMENT ,
`descricao` VARCHAR(255) NOT NULL ,
`created` DATETIME NULL DEFAULT NULL ,
`modified` DATETIME NULL DEFAULT NULL ,
`situacao` CHAR(1) NULL DEFAULT NULL ,
`numero_serie` VARCHAR(20) NULL DEFAULT NULL ,
`tombo` INT NULL DEFAULT NULL ,
`quantidade` INT NULL DEFAULT NULL ,
`image_id` INT NULL ,
`categoria_id` INT NOT NULL ,
`localizacao_id` INT NOT NULL ,
`projeto_id` int(11) NOT NULL,
PRIMARY KEY (`id`) ,
INDEX `fk_equipamentos_images1_idx` (`image_id` ASC) ,
INDEX `fk_equipamentos_categorias1_idx` (`categoria_id` ASC) ,
INDEX `fk_equipamentos_localizacaos1_idx` (`localizacao_id` ASC) ,
CONSTRAINT `fk_equipamentos_images1`
FOREIGN KEY (`image_id` )
REFERENCES `images` (`id` )
CONSTRAINT `fk_equipamentos_categorias1`
FOREIGN KEY (`categoria_id` )
REFERENCES `categorias` (`id` )
CONSTRAINT `fk_equipamentos_localizacaos1`
FOREIGN KEY (`localizacao_id` )
REFERENCES `localizacaos` (`id` )
)

-- ------------------------------------------------------ Table `itensemprestimos`
-- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `itensemprestimos` (
`id` INT NOT NULL AUTO_INCREMENT ,
`quantidade` INT NOT NULL ,
`emprestimo_id` INT NOT NULL ,
`equipamento_id` INT NOT NULL ,
`created` DATETIME NULL DEFAULT NULL ,
PRIMARY KEY (`id`) ,
INDEX `fk_itensemprestimos_emprestimos1_idx` (`emprestimo_id` ASC) ,
INDEX `fk_itensemprestimos_equipamentos1_idx` (`equipamento_id` ASC) ,
CONSTRAINT `fk_itensemprestimos_emprestimos1`
FOREIGN KEY (`emprestimo_id` )
REFERENCES `emprestimos` (`id` )
CONSTRAINT `fk_itensemprestimos_equipamentos1`
FOREIGN KEY (`equipamento_id` )
REFERENCES `equipamentos` (`id`))
Descrição das Entidades e Relacionamentos
Usuário
Representa o usuário do sistema que irá manter os cadastros básicos, registrar as operações de
empréstimos e gerar relatórios. O usuário deverá ter um perfil associado conforme suas
permissões de acesso às funcionalidades do sistema:
• Secretária: Responsável por registrar as movimentações de empréstimos e
devoluções dosequipamentos.
• Professor: Gerencia os equipamentos de sua responsabilidade e tem controle sobre a
situação deequipamentos emprestados.
•

Coordenador: Representa o coordenador de um projeto, no qual os equipamentos estão associados.

Atributos:
•

Login: Alfanumérico. Representa o login usado na autenticação e deve ser único para cada usuário.

•
•
•

Senha: Alfanumérico. Representa a senha de acesso do usuário ao sistema.
Telefone: Alfanumérico. Representa o número de telefone do usuário.
E-mail: Alfanumérico. Endereço de e-mail do usuário.

Localização
Representa o local no qual o equipamento está
localizado. Atributos
•

Descrição: Alfanumérico. Representa a descrição do local onde o equipamento pode ser localizado.

Projeto
O projeto no qual os equipamentos serão utilizados. Pode ser um projeto institucional ou pessoal.
Atributos
•
Descrição: Descreve o nome do projeto.

Empréstimo
Representa o empréstimo do equipamento e seu registro.
Atributos
• Finalidade: Alfanumérico. Descrição textual do propósito do empréstimo.
• Situação: Alfanumérico[1]. Representa a situação atual do empréstimo. Pode ser: 'A'Aberto, 'E' – Emprestado, 'D'-Devolvido.
• Data de Empréstimo: Data do registro do empréstimo.
• Data de Devolução: Data efetiva da devolução do(s) equipamento(s)

Equipamento
Representa todos os equipamentos que podem ser emprestados pelos alunos.
Atributos
• Identificação: Numérico. Representa o identificador único para um equipamento.
• Descrição: Alfanumérico. Representa a descrição do equipamento.
•
•

Situação: Alfanumérico[1]. Representa a situação do equipamento, quanto a sua
disponibilidade. Pode ser 'A'-Ativo ou 'I'-Inativo
Categoria: Alfanumérico. Representa a categoria o qual está associado um equipamento.

Registra
Este relacionamento representa a ação da Secretaria de registrar os equipamentos no
sistema SIGEM. O relacionamento tem cardinalidade um para muitos(1xN), que significa que
um usuário do tipo Secretaria pode registrar mais de um equipamento no SIGEM.
Atributos
• Data de Emissão: Data de entrada de um equipamento no sistema.
• Identificador do Registro: Numérico. Identificador único da operação de registro.
Solicita
Este relacionamento representa a ação de um Professor ou Coordenador solicitar um equipamento
para seu projeto. O relacionamento tem cardinalidade um para muitos(1xN), que significa que um
usuário do tipo Professor ou Coordenador pode solicitar mais de um equipamento no SIGEM.
Atributos:
•

Número de Protocolo: Alfanumérico. Representa unicamente a solicitação de um equipamento.

Possui
Este relacionamento representa a listagem de Equipamentos que um Empréstimo possui. O
relacionamento tem cardinalidade muitos para muitos(NxN), que significa que em um empréstimo
pode ter vários equipamentos, e que um equimamento pode participar de vários empréstimos.
Atributos:
• Localização: Alfanumérico. Representa o local associado ao empréstimo.
• Projeto: Alfanumérico. Indica o projeto para o qual o equipamento será emprestado.

Melhorias no Diagrama e Decisões de Projeto
Correções no diagrama desenvolvido no primeiro trabalho foram aplicadas neste novo diagrama,
levando-se em conta o andamento atual do projeto SIGEM.
No diagrama anterior, foi removida a entidade Perfil e a especialização Tipos com os tipos administrador,
professor e usuário. A entidade usuário, no diagrama atual, possui as especializações: Secretária, Professor e
Coordenador. As atribuições de cada uma dessas especializações ficou evidenciada no diagrama atual.
Foi removido a entidade Histórico, devido a falta de necessidade do mesmo para o registro de empréstimo.

A entidade Empréstimo no diagrama atual mantém as datas de empréstimo e devolução como atributos.

Modelo entidade-relacionamento - SIGEM (sistema de gestão de materiais)

  • 1.
    Prática em Bancode Dados MER Estendido – Sistema SIGEM Grupo: Marcos Felipe Renan Reis Manaus - 2013
  • 2.
    Descrição do Sistema Osistema o SIGEM (Sistema de gestão de materiais) tem por objetivo o controle de equipamentos que são emprestados e movimentados entre departamentos, e estes variam desde computadores e impressoras até placas e equipamentos de menor porte. O sistema SIGEM possui o objetivo de fazer o controle da movimentação de equipamentos, seu processamento é baseado em cadastros dos equipamentos, devidamente registrados com a imagem dos mesmos, o controle e geração de uma identificação única para cada equipamento, assim como registro de data e hora do empréstimo, rastreamento do produto (última pessoa a registrar o empréstimo), e módulos de consulta pública, destinado à alunos que necessitem consultar a disponibilidade de determinado equipamento para empréstimo imediato e/ou à longo prazo. As principais funções exercidas pelo sistema Sigem são o controle de empréstimos dos equipamentos baseado em registros, registro e verificação de um ID único para o equipamento (tombamento), e rastreamento do mesmo baseado nas informações obtidas dos empréstimos (data, hora, equipamento emprestado, movimentação, se está ligada à algum projeto ou é pessoal, etc), basicamente, criando um ambiente para controle dos equipamentos. A aquisição de um equipamento, assim como seu empréstimo, está diretamente relacionado à um projeto, que será inserido no momento do registro do empréstimo.
  • 3.
  • 4.
  • 5.
    Comandos LDD utilizados -------------------------------------------------------- Table `categorias` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `categorias` ( `id` INT NOT NULL AUTO_INCREMENT , `nome` VARCHAR(255) NOT NULL , `created` DATETIME NULL DEFAULT NULL , `modified` DATETIME NULL DEFAULT NULL , PRIMARY KEY (`id`) ) -- ------------------------------------------------------ Table `cursos` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `cursos` ( `id` INT NOT NULL AUTO_INCREMENT , `nome` VARCHAR(45) NOT NULL , `created` DATETIME NULL DEFAULT NULL , `modified` DATETIME NULL DEFAULT NULL , PRIMARY KEY (`id`) ) -- ------------------------------------------------------ Table `projetos` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `projetos` ( `id` INT NOT NULL AUTO_INCREMENT , `nome` VARCHAR(255) NOT NULL , `created` DATETIME NULL DEFAULT NULL , `modified` DATETIME NULL DEFAULT NULL , `data_inicio` DATE NULL DEFAULT NULL , `data_termino` DATE NULL DEFAULT NULL , `descricao_resumida` VARCHAR(255) NULL DEFAULT NULL , `coordenador_id` INT NULL , PRIMARY KEY (`id`) , INDEX `fk_projetos_usuarios1` (`coordenador_id` ASC) ) -- ------------------------------------------------------ Table `alunos` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `alunos` ( `id` INT NOT NULL AUTO_INCREMENT , `matricula` VARCHAR(255) NOT NULL , `nome` VARCHAR(255) NOT NULL , `email` VARCHAR(255) NOT NULL , `telefone` VARCHAR(255) NULL DEFAULT NULL , `created` DATETIME NULL DEFAULT NULL , `modified` DATETIME NULL DEFAULT NULL , `rg` VARCHAR(15) NOT NULL ,
  • 6.
    `tipo` CHAR(1) NOTNULL , `curso_id` INT NOT NULL , PRIMARY KEY (`id`) , UNIQUE INDEX `matricula` (`matricula` ASC) , INDEX `fk_solicitantes_cursos1_idx` (`curso_id` ASC) , CONSTRAINT `fk_solicitantes_cursos1` FOREIGN KEY (`curso_id` ) REFERENCES `cursos` (`id` ) -- ------------------------------------------------------ Table `perfils` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `perfils` ( `id` INT(11) NOT NULL AUTO_INCREMENT , `nome` VARCHAR(45) NOT NULL , `created` DATETIME NULL DEFAULT NULL , `modified` DATETIME NULL DEFAULT NULL , PRIMARY KEY (`id`) ) -- ------------------------------------------------------ Table `usuarios` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `usuarios` ( `id` INT(11) NOT NULL AUTO_INCREMENT , `login` VARCHAR(255) NOT NULL , `password` VARCHAR(255) NOT NULL , `nome` VARCHAR(255) NOT NULL , `email` VARCHAR(255) NOT NULL , `telefone` VARCHAR(255) NULL DEFAULT NULL , `situacao` CHAR(1) NOT NULL DEFAULT 'A' COMMENT 'A = Ativo, I = Inativo' , `created` DATETIME NULL DEFAULT NULL , `modified` DATETIME NULL DEFAULT NULL , `perfil_id` INT(11) NOT NULL , PRIMARY KEY (`id`) , UNIQUE INDEX `login` (`login` ASC) , INDEX `fk_usuarios_perfils1_idx` (`perfil_id` ASC) , CONSTRAINT `fk_usuarios_perfils1` FOREIGN KEY (`perfil_id` ) REFERENCES `perfils` (`id` ) ) -- ------------------------------------------------------ Table `emprestimos` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `emprestimos` ( `id` INT NOT NULL AUTO_INCREMENT , `projeto_id` INT NOT NULL , `aluno_id` INT NOT NULL , `autorizador_id` INT NOT NULL ,
  • 7.
    `data_inicio` DATE NOTNULL , `data_devolucao` DATE NULL DEFAULT NULL , `finalidade` VARCHAR(255) NULL DEFAULT NULL , `data_entrega` DATE NOT NULL , `situacao` CHAR(1) NULL DEFAULT NULL , `usuario_id` INT NULL DEFAULT NULL , `created` DATETIME NULL DEFAULT NULL , `modified` DATETIME NULL DEFAULT NULL , `observacao` VARCHAR(255) NULL , PRIMARY KEY (`id`) , INDEX `fk_emprestimos_projetos1_idx` (`projeto_id` ASC) , INDEX `fk_emprestimos_solicitantes_idx` (`aluno_id` ASC) , INDEX `fk_emprestimos_usuarios1_idx` (`autorizador_id` ASC) , INDEX `fk_emprestimos_usuarios2_idx` (`usuario_id` ASC) , CONSTRAINT `fk_emprestimos_projetos1` FOREIGN KEY (`projeto_id` ) REFERENCES `projetos` (`id` ) CONSTRAINT `fk_emprestimos_solicitantes` FOREIGN KEY (`aluno_id` ) REFERENCES `alunos` (`id` ) CONSTRAINT `fk_emprestimos_usuarios1` FOREIGN KEY (`autorizador_id` ) REFERENCES `usuarios` (`id` ) CONSTRAINT `fk_emprestimos_usuarios2` FOREIGN KEY (`usuario_id` ) REFERENCES `usuarios` (`id` )) -- ------------------------------------------------------ Table `images` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `images` ( `id` INT NOT NULL AUTO_INCREMENT , `name` VARCHAR(75) NOT NULL DEFAULT '' , `clean_name` VARCHAR(75) NOT NULL DEFAULT '' , `type` VARCHAR(255) NOT NULL DEFAULT '' , `size` INT NOT NULL DEFAULT '0' , `data` LONGBLOB NOT NULL , `filehash` VARCHAR(255) NOT NULL DEFAULT '' , `ext` VARCHAR(255) NOT NULL DEFAULT '' , `created` DATETIME NULL DEFAULT NULL , `updated` DATETIME NULL DEFAULT NULL , PRIMARY KEY (`id`) ) -- ------------------------------------------------------ Table `localizacaos` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `localizacaos` ( `id` INT NOT NULL AUTO_INCREMENT , `local` VARCHAR(45) NOT NULL , `created` DATETIME NULL DEFAULT NULL , `modified` DATETIME NULL DEFAULT NULL , `detalhe` VARCHAR(90) NULL , PRIMARY KEY (`id`) )
  • 8.
    -- ------------------------------------------------------ Table`equipamentos` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `equipamentos` ( `id` INT NOT NULL AUTO_INCREMENT , `descricao` VARCHAR(255) NOT NULL , `created` DATETIME NULL DEFAULT NULL , `modified` DATETIME NULL DEFAULT NULL , `situacao` CHAR(1) NULL DEFAULT NULL , `numero_serie` VARCHAR(20) NULL DEFAULT NULL , `tombo` INT NULL DEFAULT NULL , `quantidade` INT NULL DEFAULT NULL , `image_id` INT NULL , `categoria_id` INT NOT NULL , `localizacao_id` INT NOT NULL , `projeto_id` int(11) NOT NULL, PRIMARY KEY (`id`) , INDEX `fk_equipamentos_images1_idx` (`image_id` ASC) , INDEX `fk_equipamentos_categorias1_idx` (`categoria_id` ASC) , INDEX `fk_equipamentos_localizacaos1_idx` (`localizacao_id` ASC) , CONSTRAINT `fk_equipamentos_images1` FOREIGN KEY (`image_id` ) REFERENCES `images` (`id` ) CONSTRAINT `fk_equipamentos_categorias1` FOREIGN KEY (`categoria_id` ) REFERENCES `categorias` (`id` ) CONSTRAINT `fk_equipamentos_localizacaos1` FOREIGN KEY (`localizacao_id` ) REFERENCES `localizacaos` (`id` ) ) -- ------------------------------------------------------ Table `itensemprestimos` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `itensemprestimos` ( `id` INT NOT NULL AUTO_INCREMENT , `quantidade` INT NOT NULL , `emprestimo_id` INT NOT NULL , `equipamento_id` INT NOT NULL , `created` DATETIME NULL DEFAULT NULL , PRIMARY KEY (`id`) , INDEX `fk_itensemprestimos_emprestimos1_idx` (`emprestimo_id` ASC) , INDEX `fk_itensemprestimos_equipamentos1_idx` (`equipamento_id` ASC) , CONSTRAINT `fk_itensemprestimos_emprestimos1` FOREIGN KEY (`emprestimo_id` ) REFERENCES `emprestimos` (`id` ) CONSTRAINT `fk_itensemprestimos_equipamentos1` FOREIGN KEY (`equipamento_id` ) REFERENCES `equipamentos` (`id`))
  • 9.
    Descrição das Entidadese Relacionamentos Usuário Representa o usuário do sistema que irá manter os cadastros básicos, registrar as operações de empréstimos e gerar relatórios. O usuário deverá ter um perfil associado conforme suas permissões de acesso às funcionalidades do sistema: • Secretária: Responsável por registrar as movimentações de empréstimos e devoluções dosequipamentos. • Professor: Gerencia os equipamentos de sua responsabilidade e tem controle sobre a situação deequipamentos emprestados. • Coordenador: Representa o coordenador de um projeto, no qual os equipamentos estão associados. Atributos: • Login: Alfanumérico. Representa o login usado na autenticação e deve ser único para cada usuário. • • • Senha: Alfanumérico. Representa a senha de acesso do usuário ao sistema. Telefone: Alfanumérico. Representa o número de telefone do usuário. E-mail: Alfanumérico. Endereço de e-mail do usuário. Localização Representa o local no qual o equipamento está localizado. Atributos • Descrição: Alfanumérico. Representa a descrição do local onde o equipamento pode ser localizado. Projeto O projeto no qual os equipamentos serão utilizados. Pode ser um projeto institucional ou pessoal. Atributos • Descrição: Descreve o nome do projeto. Empréstimo Representa o empréstimo do equipamento e seu registro. Atributos • Finalidade: Alfanumérico. Descrição textual do propósito do empréstimo. • Situação: Alfanumérico[1]. Representa a situação atual do empréstimo. Pode ser: 'A'Aberto, 'E' – Emprestado, 'D'-Devolvido. • Data de Empréstimo: Data do registro do empréstimo. • Data de Devolução: Data efetiva da devolução do(s) equipamento(s) Equipamento Representa todos os equipamentos que podem ser emprestados pelos alunos. Atributos • Identificação: Numérico. Representa o identificador único para um equipamento. • Descrição: Alfanumérico. Representa a descrição do equipamento.
  • 10.
    • • Situação: Alfanumérico[1]. Representaa situação do equipamento, quanto a sua disponibilidade. Pode ser 'A'-Ativo ou 'I'-Inativo Categoria: Alfanumérico. Representa a categoria o qual está associado um equipamento. Registra Este relacionamento representa a ação da Secretaria de registrar os equipamentos no sistema SIGEM. O relacionamento tem cardinalidade um para muitos(1xN), que significa que um usuário do tipo Secretaria pode registrar mais de um equipamento no SIGEM. Atributos • Data de Emissão: Data de entrada de um equipamento no sistema. • Identificador do Registro: Numérico. Identificador único da operação de registro.
  • 11.
    Solicita Este relacionamento representaa ação de um Professor ou Coordenador solicitar um equipamento para seu projeto. O relacionamento tem cardinalidade um para muitos(1xN), que significa que um usuário do tipo Professor ou Coordenador pode solicitar mais de um equipamento no SIGEM. Atributos: • Número de Protocolo: Alfanumérico. Representa unicamente a solicitação de um equipamento. Possui Este relacionamento representa a listagem de Equipamentos que um Empréstimo possui. O relacionamento tem cardinalidade muitos para muitos(NxN), que significa que em um empréstimo pode ter vários equipamentos, e que um equimamento pode participar de vários empréstimos. Atributos: • Localização: Alfanumérico. Representa o local associado ao empréstimo. • Projeto: Alfanumérico. Indica o projeto para o qual o equipamento será emprestado. Melhorias no Diagrama e Decisões de Projeto Correções no diagrama desenvolvido no primeiro trabalho foram aplicadas neste novo diagrama, levando-se em conta o andamento atual do projeto SIGEM. No diagrama anterior, foi removida a entidade Perfil e a especialização Tipos com os tipos administrador, professor e usuário. A entidade usuário, no diagrama atual, possui as especializações: Secretária, Professor e Coordenador. As atribuições de cada uma dessas especializações ficou evidenciada no diagrama atual. Foi removido a entidade Histórico, devido a falta de necessidade do mesmo para o registro de empréstimo. A entidade Empréstimo no diagrama atual mantém as datas de empréstimo e devolução como atributos.