Sei sulla pagina 1di 17

Centro de Operações de Socorro

Trabalho realizado por:

André Garcia EI072135

ISPGaya, Janeiro de 2009


BD 2008-09
Centro de Operações de Socorros

Índice de conteúdos
1. Requisitos .................................................................................................................. 3
2. Modelização conceptual ........................................................................................... 5
. Modelo Entidade-Associação .............................................................................................. 5
Esquema Relacional ............................................................................................................ 6

3. Projecto detalhado .................................................................................................... 6


Scripts SQL de definição de dados ..................................................................................... 6
Dicionário de dados ............................................................................................................. 8
Scripts SQL de inserção de dados .................................................................................... 10
Relacionamentos entre tabelas ............................................ Erro! Marcador não definido.

4. Vistas e perguntas em SQL .................................................................................... 14


5. Conclusão ................................................................................................................ 17

trabalhoBD 2
BD 2008-09
Centro de Operações de Socorros

1. Requisitos
Num concelho como o de Vila Nova de Gaia com mais de 300 mil habitantes é importante
uma boa gestão dos meios disponiveis para uma missão de socorro, sendo que os meios
existentes por vezes não são os suficientes para a prestação de um bom serviço.

A Gestão de Ocorrências de um centro de operações de socorro pode ser modelada de


acordo com a seguinte descrição:

Recebido um alerta de socorro para determinada ocorrência, é dada saída dos meios para o
local da ocorrência (através de telefone, sistema de som ou comunicações rádio), de seguida
é registado a ficha da ocorrência com todos os dados importantes, meios e pessoal
envolvido.

O importante para alem do registo das ocorrências e o respectivo tratamento estatístico é


saber quais os meios envolvidos em cada ocorrência e os disponíveis para uma próxima
ocorrência que entretanto possa vir a surgir.

Pretende-se elaborar uma base de dados que faça todo o processo de gestão das
ocorrências.

Durante o desenrolar da ocorrência devem ser registados os seguintes dados:

• Classificação do tipo de ocorrência (de acordo com uma tabela existente);


• Viaturas e Meios que saíram para o local;
• Data
• Morada;
• Freguesia;
• Concelho;
• Classificação da ocorrência;
• Comando envolvido.

Na tabela viaturas devem ser registados os seguintes dados:

• A descrição da viatura;
• Estado (OP ou INOP).

Na tabela meios_envolvidos devem ser registados os seguintes dados:

• As viaturas envolvidas na operação


• Pessoal envolvido na operação

trabalhoBD 3
BD 2008-09
Centro de Operações de Socorros

Na tabela freguesias devem ser registados os seguintes dados:

• As diferentes freguesias dos concelhos abrangidos;

Na tabela concelhos devem ser registados os seguintes dados:

• Os concelhos abrangidos;

Na tabela estadoviatura devem ser registados os seguintes dados:

• Estado da viatura (Operacional ou Não Operacional)

Na tabela tipo_oc devem ser registados os seguintes dados:

• Tipo_oc;
• Descricao

Na tabela comando_op devem ser registados os seguintes dados:

• Nome
• Freguesia que está afecta
• Contacto

Algumas regras da base de dados

• Não devem ser atribuídos números diferentes para a mesma ocorrência;


• Deve ser atribuido a uma ocorrência um e só um código de identificaçao.
• Não deve ser possível dar saída de meios que não estão operacionais;
• Numa ocorrência só pode estar envolvido um comando operacional.

A base de dados deverá permitir efectuar diversos tipos de consultas. Exemplo:

• Listagem de ocorrências por data, tipo, freguesia;


• Consulta de meios disponíveis
• Consulta de meios activos em ocorrências;
• Consulta de meios inoperacionais (meios que não estão em ocorrências e não estão
prontos para sair).
• Consultas de meios envolvidos em operações de socorro.

trabalhoBD 4
BD 2008-09
Centro de Operações de Socorros

2. Modelização conceptual

Modelo Entidade-Associação

trabalhoBD 5
BD 2008-09
Centro de Operações de Socorros

Esquema Relacional

TIPO_OC ( tipo_oc , designacao)

FREGUESIA (numfreguesia, nomefreguesia)

CONCELHO (numconcelho, nomeconcelho)

COMANDO_OPERACOES ( Cod_Comando, nrfreguesia, nome)


{nrfreguesia] Ref Freguesia

ESTADOVIATURA (tipoestado, estado)

VIATURAS (codviatura,tipoestado, nomeviatura)


{ tipoestado } ref ESTADOVIATURA

OCORRENCIAS (cod_oc, tipooc, cod_comando, nrfreguesia, morada, data,)


{ numfreguesia } ref FREGUESIA
{ concelho } ref CONCELHO
{ tipooc } ref tipooc
{ cod_comando } ref comandoop

PESSOAL ( cod_pessoal,tipoestado, nome, , contacto)


{tipoestado} Ref estadopessoal

ESTADOPESSOAL (tipoestado, estado)

MEIOSENVOLVIDOS (cod_oc, cod_comando, cod_pessoal, cod_viatura)


{cod_oc} ref ocorrencias
{ cod_comando } ref comandoop
{cod_pessoal} ref pessoal
{cod viatura} ref viaturas

3. Projecto Detalhado

Scripts SQL de definição de dados

CREATE TABLE tipo_oc (


Tipo_oc smallint PRIMARY KEY,
designacao varchar(30) );

CREATE TABLE concelho (

trabalhoBD 6
BD 2008-09
Centro de Operações de Socorros

numconcelho smallint PRIMARY KEY,


nomeconcelho varchar(30) );

CREATE TABLE freguesias (


numfreguesia smallint PRIMARY KEY,
numconcelho smallint references concelho,
nomefreguesia varchar(30) );

CREATE TABLE estadoviatura (


tipoestado smallint PRIMARY KEY,
estado varchar(30) );

Create table comandoop (


Cod_comando smallint Primary Key,
Numfreguesia smallint References Freguesias,
Nome varchar(30),
Contacto char(30));

CREATE TABLE viaturas (


codviatura smallint PRIMARY KEY,
cod_comando smallint references comandoop,
designacao varchar(30),
estado smallint REFERENCES estadoviatura);

Create table ocorrência (


Cod_oc smallint Primary Key,
Tipo_oc smallint References Tipo_oc,
Cod_Comando smallint references comandoop,
Numfreguesia smallint references freguesias,
Morada varchar(100),
Data datetime);

Create table estadopessoal (


tipoestado smallint PRIMARY KEY,
estado varchar(30) );

Create table pessoal (


Cod_pessoal smallint Primary Key,
Cod_comando smallint References comandoop,
Nome varchar(30),
Estado smallint References estadopessoal,
Contacto numeric (20));

Create table meiosenvolvidos (


Cod_oc smallint references ocorrência,
Cod_viatura smallint references viaturas,
Cod_pessoal smallint references pessoal,
CONSTRAINT meiosenvolvidos_pk PRIMARY KEY (cod_oc, Cod_viatura,
Cod_pessoal));

trabalhoBD 7
BD 2008-09
Centro de Operações de Socorros

Dicionário de dados

Tipo_OC
Campo Descrição Valores

Tipo_OC Código de classificação da ocorrência

Designacao Nome

Ocorrencias
Campo Descrição Valores

Cod_Oc Número identificador da ocorrência

Cod_comando Código do comando envolvido

Data Data que se verificou a ocorrência

Morada Local da ocorrência

numFreguesia Cod da Freguesia da origem da ocorrência

Tipo_OC Código de classificação da ocorrência

Meiosenvolvidos
Campo Descrição Valores

Cod_Oc Número identificador da ocorrência

Cod_Pessoal Identificador do pessoal envolvido

Cod_Viatura Identificador da viatura envolvida

Freguesias
Campo Descrição Valores

Numfreguesia Código identificador da freguesia

Nomefreguesia Nome da freguesia

trabalhoBD 8
BD 2008-09
Centro de Operações de Socorros

Concelho
Campo Descrição Valores

Numconcelho Identificador do concelho

Nomeconcelho Nome do concelho

EstadoViatura
Campo Descrição Valores

Tipoestado Código identificador do estado da viatura


- OP
Estado Estado
- INOP

Viaturas
Campo Descrição Valores

Codviatura Código identificador da viatura

Nomeviatura Nome viatura por ex: (Jipe Land Rover 4x4.


AutoTanque Mercedes)

Comando_OP
Campo Descrição Valores

Cod_Comando Código Identificador do comando

Numfreguesia Código Identificador da freguesia a que


pertence

Nome Nome do comando (quartel)

Contacto Contacto

EstadoPessoal
Campo Descrição Valores

Tipoestado Código identificador do estado do pessoal


- OP
Estado Estado
- INOP

trabalhoBD 9
BD 2008-09
Centro de Operações de Socorros

Scripts SQL de inserção de dados


INSERT INTO tipo_oc(tipo_oc, designacao) VALUES (0,' Não definido');
INSERT INTO tipo_oc(tipo_oc, designacao) VALUES (10,'Incendio Rural');
INSERT INTO tipo_oc(tipo_oc, designacao) VALUES (11,'Incendio Urbano');
INSERT INTO tipo_oc(tipo_oc, designacao) VALUES (12,'Incendio
Industrial');
INSERT INTO tipo_oc(tipo_oc, designacao) VALUES (13,'Incendio Outro');
INSERT INTO tipo_oc(tipo_oc, designacao) VALUES (14,'Acidente
Rodoviario');
INSERT INTO tipo_oc(tipo_oc, designacao) VALUES (15,'Acidente Outro');
INSERT INTO tipo_oc(tipo_oc, designacao) VALUES (16,'Emergencia-Medica');
INSERT INTO tipo_oc(tipo_oc, designacao) VALUES (17,'Transporte
Doentes');
INSERT INTO tipo_oc(tipo_oc, designacao) VALUES (18,'Outras
Ocorrencias');

INSERT INTO estadoviatura(tipoestado, estado) VALUES (1,'Operacional' );


INSERT INTO estadoviatura(tipoestado, estado) VALUES (2,'Inoperacional'
);
INSERT INTO estadoviatura(tipoestado, estado) VALUES (3,'Falta de óleo'
);
INSERT INTO estadoviatura(tipoestado, estado) VALUES (4,'Avaria na
hidráulica' );
INSERT INTO estadoviatura(tipoestado, estado) VALUES (5,'Tanque Vazio' );
INSERT INTO estadoviatura(tipoestado, estado) VALUES (6,'Pneus Carecas'
);
INSERT INTO estadoviatura(tipoestado, estado) VALUES (7,'Travões
insuficientes' );
INSERT INTO estadoviatura(tipoestado, estado) VALUES (8,'Depósito Vazio'
);

INSERT INTO concelho(numconcelho, nomeconcelho) VALUES (0,' Não


definido');
INSERT INTO concelho(numconcelho, nomeconcelho) VALUES (1,'V. N. Gaia');
INSERT INTO concelho(numconcelho, nomeconcelho) VALUES (2,'Porto');
INSERT INTO concelho(numconcelho, nomeconcelho) VALUES (3,'Outro');

INSERT INTO freguesias(numfreguesia,numconcelho, nomefreguesia) VALUES


(0,1,' Não definido');
INSERT INTO freguesias(numfreguesia,numconcelho, nomefreguesia) VALUES
(1,1,'Afurada');
INSERT INTO freguesias(numfreguesia,numconcelho, nomefreguesia) VALUES
(2,1,'Arcozelo');
INSERT INTO freguesias(numfreguesia,numconcelho, nomefreguesia) VALUES
(3,1,'Avintes');
INSERT INTO freguesias(numfreguesia,numconcelho, nomefreguesia) VALUES
(4,1,'Canelas');

trabalhoBD 10
BD 2008-09
Centro de Operações de Socorros

INSERT INTO freguesias(numfreguesia,numconcelho, nomefreguesia) VALUES


(5,1,'Canidelo');
INSERT INTO freguesias(numfreguesia,numconcelho, nomefreguesia) VALUES
(6,1,'Crestuma');
INSERT INTO freguesias(numfreguesia,numconcelho, nomefreguesia) VALUES
(7,1,'Grijó');
INSERT INTO freguesias(numfreguesia,numconcelho, nomefreguesia) VALUES
(8,1,'Gulpilhares');
INSERT INTO freguesias(numfreguesia,numconcelho, nomefreguesia) VALUES
(9,1,'Lever');
INSERT INTO freguesias(numfreguesia,numconcelho, nomefreguesia) VALUES
(10,1,'Madalena');
INSERT INTO freguesias(numfreguesia,numconcelho, nomefreguesia) VALUES
(11,1,'Mafamude');
INSERT INTO freguesias(numfreguesia,numconcelho, nomefreguesia) VALUES
(12,1,'Olival');
INSERT INTO freguesias(numfreguesia,numconcelho, nomefreguesia) VALUES
(13,1,'Oliveira do Douro');
INSERT INTO freguesias(numfreguesia,numconcelho, nomefreguesia) VALUES
(14,1,'Pedroso');
INSERT INTO freguesias(numfreguesia,numconcelho, nomefreguesia) VALUES
(15,1,'Perosinho');
INSERT INTO freguesias(numfreguesia,numconcelho, nomefreguesia) VALUES
(16,1,'Sandim');
INSERT INTO freguesias(numfreguesia,numconcelho, nomefreguesia) VALUES
(17,1,'Santa Marinha');
INSERT INTO freguesias(numfreguesia,numconcelho, nomefreguesia) VALUES
(18,1,'São Félix da Marinha');
INSERT INTO freguesias(numfreguesia,numconcelho, nomefreguesia) VALUES
(19,1,'Seixezelo');
INSERT INTO freguesias(numfreguesia,numconcelho, nomefreguesia) VALUES
(20,1,'Sermonde');
INSERT INTO freguesias(numfreguesia,numconcelho, nomefreguesia) VALUES
(21,1,'Serzedo');
INSERT INTO freguesias(numfreguesia,numconcelho, nomefreguesia) VALUES
(22,1,'Valadares');
INSERT INTO freguesias(numfreguesia,numconcelho, nomefreguesia) VALUES
(23,1,'Vilar de Andorinho');
INSERT INTO freguesias(numfreguesia,numconcelho, nomefreguesia) VALUES
(24,1,'Vilar do Paraíso');

INSERT INTO comandoop(cod_comando, numfreguesia, nome, contacto) VALUES


(0,2,' BASJ',224324567 );
INSERT INTO comandoop(cod_comando, numfreguesia, nome, contacto) VALUES
(1,3,'BVAG', 227654389 );
INSERT INTO comandoop(cod_comando, numfreguesia, nome, contacto) VALUES
(2,4,'BPVNG',234854395);
INSERT INTO comandoop(cod_comando, numfreguesia, nome, contacto) VALUES
(3,5,'BVPRT',229876232 );

INSERT INTO ocorrência(cod_oc, tipo_oc, cod_comando, numfreguesia,


morada, data) VALUES (1,10, 1, 2, 'Rua Salvador Dali','02-03-2008');
INSERT INTO ocorrência(cod_oc, tipo_oc, cod_comando, numfreguesia,
morada, data) VALUES (2,12, 1, 18, 'Rua Nossa Senhora de Fátima','12-06-
1992');
INSERT INTO ocorrência(cod_oc, tipo_oc, cod_comando, numfreguesia,
morada, data) VALUES (3,11, 1, 11, 'Rua D.Dinis','15-02-2005');

trabalhoBD 11
BD 2008-09
Centro de Operações de Socorros

INSERT INTO ocorrência(cod_oc, tipo_oc, cod_comando, numfreguesia,


morada, data) VALUES (4,14, 1, 10, 'Rua Soares dos Reis','25-05-1974');
INSERT INTO ocorrência(cod_oc, tipo_oc, cod_comando, numfreguesia,
morada, data) VALUES (5,13, 1, 10, 'Av. da Républica','12-08-1998');
INSERT INTO ocorrência(cod_oc, tipo_oc, cod_comando, numfreguesia,
morada, data) VALUES (6,10, 1, 11, 'Av. dos Aliados','22-12-2008');
INSERT INTO ocorrência(cod_oc, tipo_oc, cod_comando, numfreguesia,
morada, data) VALUES (7,11, 2, 10, 'Praça do Marquês','02-04-2002');
INSERT INTO ocorrência(cod_oc, tipo_oc, cod_comando, numfreguesia,
morada, data) VALUES (8,18, 3, 5, 'Campo 24 de Agosto','11-03-2000');
INSERT INTO ocorrência(cod_oc, tipo_oc, cod_comando, numfreguesia,
morada, data) VALUES (9,17, 2, 4, 'Rua do Carmo','02-03-2004');

INSERT INTO estadopessoal(tipoestado, estado) VALUES (1,'Operacional' );


INSERT INTO estadopessoal(tipoestado, estado) VALUES (2,'Inoperacional'
);
INSERT INTO estadopessoal(tipoestado, estado) VALUES (3,'Atestado Médico'
);
INSERT INTO estadopessoal(tipoestado, estado) VALUES (4,'Férias' );
INSERT INTO estadopessoal(tipoestado, estado) VALUES (5,'Baixa Médica' );

INSERT INTO pessoal(Cod_pessoal,Cod_comando, Nome, Estado, Contacto)


VALUES (100,1,'António Soares',1,913845738 );
INSERT INTO pessoal(Cod_pessoal,Cod_comando, Nome, Estado, Contacto)
VALUES (101,2,'Miguel Monteiro',1,963483948 );
INSERT INTO pessoal(Cod_pessoal,Cod_comando, Nome, Estado, Contacto)
VALUES (102,2,'André Garcia',1,963459204 );
INSERT INTO pessoal(Cod_pessoal,Cod_comando, Nome, Estado, Contacto)
VALUES (103,3,'João Pinto',2,912348328 );
INSERT INTO pessoal(Cod_pessoal,Cod_comando, Nome, Estado, Contacto)
VALUES (104,3,'Bárbara Teresa',3,930183473 );
INSERT INTO pessoal(Cod_pessoal,Cod_comando, Nome, Estado, Contacto)
VALUES (105,1,'Ágata Leite',2,938475892 );
INSERT INTO pessoal(Cod_pessoal,Cod_comando, Nome, Estado, Contacto)
VALUES (106,1,'Luis Torres',1,934583958 );
INSERT INTO pessoal(Cod_pessoal,Cod_comando, Nome, Estado, Contacto)
VALUES (107,1,'Guilherme Monteiro',1,934535694 );
INSERT INTO pessoal(Cod_pessoal,Cod_comando, Nome, Estado, Contacto)
VALUES (108,2,'Vitor Santos',1,934526789 );
INSERT INTO pessoal(Cod_pessoal,Cod_comando, Nome, Estado, Contacto)
VALUES (109,3,'Rui Fonseca',2,934534567 );
INSERT INTO pessoal(Cod_pessoal,Cod_comando, Nome, Estado, Contacto)
VALUES (110,3,'Rita Ferreira',4,933454324 );
INSERT INTO pessoal(Cod_pessoal,Cod_comando, Nome, Estado, Contacto)
VALUES (111,2,'Sandra Custódio',4,227128349 );

INSERT INTO viaturas(Codviatura,cod_comando, designacao, estado) VALUES


(1,2,'Jipe Land-Rover',1 );
INSERT INTO viaturas(Codviatura,cod_comando, designacao, estado) VALUES
(2,1,'Jipe Land-Rover',1 );
INSERT INTO viaturas(Codviatura,cod_comando, designacao, estado) VALUES
(3,3,'Jipe Nissan Pajero',1 );
INSERT INTO viaturas(Codviatura,cod_comando, designacao, estado) VALUES
(4,1,'Jipe Nissan Terrano',2 );
INSERT INTO viaturas(Codviatura,cod_comando, designacao, estado) VALUES
(5,2,'Jipe Nissan Terrano II',1 );
INSERT INTO viaturas(Codviatura,cod_comando, designacao, estado) VALUES
(6,3,'Jipe Nissan Terrano II',3 );

trabalhoBD 12
BD 2008-09
Centro de Operações de Socorros

INSERT INTO viaturas(Codviatura,cod_comando, designacao, estado) VALUES


(7,2,'Jipe Nissan Terrano II',4 );
INSERT INTO viaturas(Codviatura,cod_comando, designacao, estado) VALUES
(8,3,'Jipe Nissan Terrano II',1 );
INSERT INTO viaturas(Codviatura,cod_comando, designacao, estado) VALUES
(9,1,'Ambulância de Socorro',1 );

INSERT INTO meiosenvolvidos(Cod_oc, Cod_viatura, Cod_pessoal) VALUES


(1,2,102 );
INSERT INTO meiosenvolvidos(Cod_oc, Cod_viatura, Cod_pessoal) VALUES
(2,3,102 );
INSERT INTO meiosenvolvidos(Cod_oc, Cod_viatura, Cod_pessoal) VALUES
(2,4,103 );
INSERT INTO meiosenvolvidos(Cod_oc, Cod_viatura, Cod_pessoal) VALUES
(2,5,104 );
INSERT INTO meiosenvolvidos(Cod_oc, Cod_viatura, Cod_pessoal) VALUES
(3,6,103 );
INSERT INTO meiosenvolvidos(Cod_oc, Cod_viatura, Cod_pessoal) VALUES
(3,7,101 );
INSERT INTO meiosenvolvidos(Cod_oc, Cod_viatura, Cod_pessoal) VALUES
(4,1,101 );
INSERT INTO meiosenvolvidos(Cod_oc, Cod_viatura, Cod_pessoal) VALUES
(1,3,103 );
INSERT INTO meiosenvolvidos(Cod_oc, Cod_viatura, Cod_pessoal) VALUES
(1,4,101 );
INSERT INTO meiosenvolvidos(Cod_oc, Cod_viatura, Cod_pessoal) VALUES
(2,1,109 );
INSERT INTO meiosenvolvidos(Cod_oc, Cod_viatura, Cod_pessoal) VALUES
(2,6,110 );
INSERT INTO meiosenvolvidos(Cod_oc, Cod_viatura, Cod_pessoal) VALUES
(1,7,111 );
INSERT INTO meiosenvolvidos(Cod_oc, Cod_viatura, Cod_pessoal) VALUES
(9,2,100 );
INSERT INTO meiosenvolvidos(Cod_oc, Cod_viatura, Cod_pessoal) VALUES
(8,1,106 );
INSERT INTO meiosenvolvidos(Cod_oc, Cod_viatura, Cod_pessoal) VALUES
(8,3,105 );
INSERT INTO meiosenvolvidos(Cod_oc, Cod_viatura, Cod_pessoal) VALUES
(7,4,103 );
INSERT INTO meiosenvolvidos(Cod_oc, Cod_viatura, Cod_pessoal) VALUES
(3,5,105 );
INSERT INTO meiosenvolvidos(Cod_oc, Cod_viatura, Cod_pessoal) VALUES
(4,6,106);

INSERT INTO meiosenvolvidos(Cod_oc, Cod_viatura, Cod_pessoal) VALUES


(7,1,107);

trabalhoBD 13
BD 2008-09
Centro de Operações de Socorros

4.Vistas e perguntas em SQL


Queries

todo o historial de meios envolvidos na freguesia , morada e respectivo


cód de ocorrencia:

Select ocorrência.Cod_Oc, Cod_comando, Cod_viatura, Cod_pessoal, morada


From meiosenvolvidos, ocorrência
where numfreguesia=10 and ocorrência.Cod_oc= meiosenvolvidos.Cod_oc;

O número de ocorrências(de qualquer tipo) por freguesia,indicando o nome


da freguesia:

Select Distinct Count (*) NumOcorrências, nomefreguesia


From ocorrência, freguesias
Where ocorrência.numfreguesia= freguesias.numfreguesia
group by nomefreguesia;

O nome do Pessoal envolvido na ocorrência 2:

Select distinct nome, contacto


From Pessoal, Ocorrência
Where cod_pessoal in
(
Select cod_pessoal
From meiosenvolvidos where cod_oc in
(
Select cod_oc From ocorrência
where cod_oc=2
)
);

A designação dos veiculos presentes na ocorrência 2:

Select distinct designacao


From viaturas, Ocorrência
Where codviatura in
(
Select codviatura
From meiosenvolvidos where cod_oc in
(
Select cod_oc From ocorrência
where cod_oc=2
)
);

trabalhoBD 14
BD 2008-09
Centro de Operações de Socorros

O nome e contacto do comando operacional envolvido na ocorrência 2:

Select nome,contacto
From ocorrência, comandoop
where cod_oc=2 And ocorrência.cod_comando=comandoop.cod_comando;

O nome dos comandos operacionais, designação e contacto cujos veiculos


se encontram operacionais

Select nome, designacao, contacto


from comandoop, viaturas
where estado=1 and viaturas.cod_comando= comandoop.cod_comando;

O nome do pessoal envolvido no tipo de ocorrência 10:

Select distinct nome


From pessoal, Ocorrência
Where cod_pessoal in
(
Select cod_pessoal
From meiosenvolvidos where cod_oc in
(
Select cod_oc From ocorrência
where tipo_oc=10
)
);

O numero de ocorrências verificadas na freguesia 10 entre as datas de 12-


06-1960 a 12-06-2000

Select Count (*) NumOcorrências, numfreguesia


From ocorrência
Where numfreguesia=10 and data between '12-06-1960' and '12-06-2000'
group by numfreguesia;

Vistas

Create view freguesias_por_concelho AS (


Select numconcelho, Count (*) "numfreguesias"
From freguesias
Group by numconcelho);

Create view Pessoal_Operacional as (


Select nome, contacto
from pessoal
where estado=1);

Create view NumOcorrências_Freguesias as (


Select Distinct Count (*) NumOcorrências, nomefreguesia
From ocorrência, freguesias
Where ocorrência.numfreguesia= freguesias.numfreguesia
group by nomefreguesia);

trabalhoBD 15
BD 2008-09
Centro de Operações de Socorros

Create view Freguesias_ComandosOP as (


Select Nome, nomefreguesia
from freguesias, comandoop
where comandoop.numfreguesia= freguesias.numfreguesia);

Indices

create index procura_ocorrencia on ocorrência (cod_oc);

create index ocorrencia_comando on ocorrência (cod_oc, cod_comando);

trabalhoBD 16
BD 2008-09
Centro de Operações de Socorros

5. Conclusão
O início, desenvolvimento e conclusão deste trabalho permitiu-nos uma melhor percepção
da extrema importância que hoje em dia as novas tecnologias têm nas nossas vidas. Essas
tecnologias aplicadas a uma área tão sensivel como o tema do nosso projecto, adquirem um
impacto ainda maior, porque foram originalmente pensadas para optimizar processos em
situações críticas, como a preservação e o bem-estar da vida humana.
A organização é, sem dúvida, um dos principais factores de sucesso, quer seja na vida de
uma pessoa, de uma empresa, ou de um serviço e este projecto é resultado disso mesmo.
Uma gestão eficaz de uma Base de Dados como a nossa permite uma informação mais
sólida e precisa, permitindo dessa forma a um centro de operações de socorro, executar e
gerir os meios necessários para as missões, de acordo com a uma análise do tipo e
gravidade da ocorrência.

No decorrer do nosso trabalho, foi necessário percebermos primeiro o funcionamento de


um centro de operações de socorro, organizar as ideias, e implementar os processos que nos
pareceram mais pertinentes. O objectivo de uma base de dados como a nossa, é que seja
fiável, que faça uma boa gestão dos meios e das ocorrências e , mais importante, que seja
eficaz e fidedigna. Para isso, e no seguimento da ideia de organização que pretendemos,
pareceu-nos importante criar tabelas para freguesias e concelhos, criar uma tabela
(comando de operações) de forma a saber qual o comando de operações responsável de
uma ocorrência, assim como uma tabela (meios envolvidos) para melhor gerir uma
utilização eficaz dos recursos disponiveis. Em seguida, pareceu-nos também importante que
no acto de registar uma ocorrência, dispuséssemos de uma tabela (Tipo_OC), que nos
permitisse enquadrar em qual tipo de incidente uma ocorrência se pode incluir, por forma a
facilitar a seleccão dos meios e pessoal mais adequado a intervir. Dado que o nosso tema se
centra num ambiente de Município, entendemos que necessitaríamos de uma tabela
(Freguesias), de forma a obter uma informação mais detalhada e precisa, sendo também
importante para possiveis dados estatísticos de ocorrências.

Para concluir devemos dizer que este projecto permitiu-nos aperfeiçoar a nossa
capacidade de análise de problemas e compreender o mecanismo de uma ferramenta
poderosa como o SQL Server e pensamos que com uma maior prática em SQL Server os
futuros projectos em que estivermos envolvidos, tendem a ser superiores em qualidade e
complexidade.

trabalhoBD 17

Potrebbero piacerti anche