Você está na página 1de 4

1 - Descrição da aplicação:

Uma aluna do curso de Sistemas de Informação deseja construir um site para fazer o
acompanhamento de mulheres que sofreram algum tipo de violência podendo ser física,
psicológica, patrimonial, sexual e moral.
O sistema deve permitir o cadastro dos usuários e cada usuário pode registrar várias
ocorrências; cadastrar instituições públicas de acordo com a lei Maria da Penha 11.340/06 e
cadastrar profissionais da área do direito, policial e saúde. O usuário pode requisitar
serviços das instituições públicas e as instituições podem requisitar ou notificar outras
instituições de acordo com a ocorrência. Os usuários podem consultar diversos profissionais
disponíveis cadastrados na aplicação, os profissionais podem ou não ser de instituições
públicas.
Dos usuários é necessário ter e-mail, telefone, CPF, nome completo, idade, data de
nascimento, endereço e sexo.
Das ocorrências é necessário: instituição, data, motivo (tipo de violência), número de
registro.
Das instituições públicas é necessário CNPJ, endereço, telefone, nome, área de atuação.
Dos profissionais é necessário CPF, nome, telefone, profissão, endereço, cidade, Telefone
da Instituição.

2 - Requisitos funcionais:
(RF01) Manter usuário
(RF02) Manter ocorrência
(RF03) Manter instituição
(RF04) Registrar ocorrência
(RF05) Requisitar serviços instituição
(RF06) Consultar profissionais
(RF07) Vincular profissional a instituição pública
(RF08) Manter profissional
(RF09) Instituição associa ocorrência

3 - Modelagem conceitual da aplicação:


4 - Mapeamento entidade de relacionamento:

Usuário (CPF, Nome, E-mail, Telefone, Idade, Endereço, DataNascimento, Sexo)

̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅ , ̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅
Consulta (𝐶𝑃𝐹_𝑈𝑠𝑢á𝑟𝑖𝑜 𝐶𝑃𝐹_𝑃𝑟𝑜𝑓𝑖𝑠𝑠𝑖𝑜𝑛𝑎𝑙 )

Ocorrência (Número_Registro, Instituição, Data, Motivo, ̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅


𝐶𝑃𝐹_𝑈𝑠𝑢á𝑟𝑖𝑜 )

̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅, ̅̅̅̅̅̅̅̅̅̅̅̅̅
Associa (𝑁ú𝑚𝑒𝑟𝑜_𝑅𝑒𝑔𝑖𝑠𝑡𝑟𝑜 𝐶𝑁𝑃𝐽𝐼𝑛𝑠𝑡)

InstituiçãoPublica (CNPJ, Nome, AreaAtuação, Endereço, Telefone)

Profissional (CPF, Nome, Profissão, Telefone, Endereço, Cidade, TelefoneIns, ̅̅̅̅̅̅̅̅̅̅̅̅̅


𝐶𝑁𝑃𝐽𝐼𝑛𝑠𝑡)

̅̅̅̅̅̅̅̅ 𝐶𝑁𝑃𝐽_𝐼𝑛𝑠𝑡𝑅𝑒𝑞
Requisita (𝐶𝑁𝑃𝐽, ̅̅̅̅̅̅̅̅̅̅̅̅̅)
̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅ , 𝑑𝑎𝑡𝑎𝐻𝑜𝑟𝑎

5 - Normalização até a 3ª forma normal:

6 - Scripts criação das tabelas:


-- criar banco dados

create schema bdsite;


-- drop schema bdsite;
-- use bdsite;

-- criando as tabelas

CREATE TABLE Usuario (


cpf varchar(11) not null,
nome varchar(30),
email varchar(30),
telefone int,
endereco varchar(30),
idade int,
datanasc date,
sexo varchar(15)
);

CREATE TABLE Consulta(


CPF_Usuario varchar(11) not null,
CPF_Profissional varchar(11) not null
);

CREATE TABLE Ocorrencia (


numeroregistro int not null,
cpf varchar(11) not null,
instituicao varchar(30),
data date,
motivo varchar(30)
);
CREATE TABLE Profissional (
cpf varchar(11) not null,
telefone int,
cnpjInst varchar(14) not null,
nome varchar(30),
endereco varchar(30),
cidade varchar(30),
telefoneInst int
);

CREATE TABLE Associa(


numeroRegistroOc int not null,
cnpjInst varchar(14) not null
);

CREATE TABLE InstituicaoPublica (


cnpj varchar(14) not null ,
nome varchar(30),
area_atuacao varchar(30),
telefone int
);

CREATE TABLE Requisita(


cnpj varchar(14),
cnpj_Inst_Req varchar(14),
dataHora datetime
);

-- Inserindo PK

alter table usuario add primary key (cpf);


alter table ocorrencia add primary key(numeroregistro);
alter table profissional add primary key(cpf);
alter table Instituicaopublica add primary key(cnpj);
alter table consulta add primary key(CPF_Usuario, CPF_profissional);
alter table associa add primary key(numeroregistro, cnpj);
alter table Requisita add primary key (cnpj, cnpj_Inst_Req);

-- inserindo FK

alter table Ocorrencia add constraint FK_Usuario foreign key (cpf) references Usuario(cpf);

alter table Profissional add constraint FK_Instituicao foreign key (cnpjInst) references
Instituicaopublica(cnpj);

alter table consulta add constraint FK_consulta foreign key (CPF_Usuario)


references usuario(cpf);

alter table consulta add constraint FK_consulta2 foreign key (CPF_profissional)


references profissional(cpf);
alter table associa add constraint FK_associa foreign key(numeroregistro) references
ocorrencia(numeroregistro);
alter table associa add constraint FK_associa2 foreign key(cnpj) references
instituicaopublica(cnpj);

alter table requisita add constraint FK_requisita


foreign key (cnpj_Inst_Req) references instituicaopublica(cnpj);

alter table requisita add constraint FK_requisita2


foreign key(cnpj) references instituicaopublica(cnpj);

7 - Consultas SQL:

Você também pode gostar