Home Page Image


Relatório da ListEx5
                        

1.Objetivos

            Esta lista de exercícios tem por objetivo integrar os Aplicativos de BD Embarcações (TDE), Cargas (TDC), Rotas (TDR) e Portos (TDP), no Banco de Dados Setorial Transporte (PT-TRA) da Empresa SIG-PT (Sistema de Informações Georreferenciadas para Processamento Transacional) escolhida como Estudo de Caso, visando a melhorar as suas deficiências setoriais e reduzir os seus desperdícios de recursos.
            Além disso, esta lista também visa implementar a integração de Aplicativos de BD nos Bancos de Dados Setoriais – BDS da Empresa SIG-PT, visando testar as funcionalidades de suas integrações setoriais debaixo do SGBD previamente escolhido (ORACLE 10g Spatial), e verificar a melhoria das suas eficiências setoriais e a redução dos desperdícios de seus recursos.
             

2. Conteúdo

           
2.1. Banco de Dados Setorial Tranporte

            O Banco de Dados Setorial Transporte (PT-TRA) é responsável por todo o monitoramento de embarcações, cargas, rotas e portos existentes na Amazônia, sendo parte integrante da Empresa SIG-PT, do Projeto MONITORAMA (Monitoramento de Águas da Amazônia).
            O grupo é formado por 4 integrantes, sendo que as funções são distribuídas da seguinte forma:


Função

Integrante

Integrador

Arthur de Almeida Rodrigues

Normalizador

Jordan Guimarães Lombardi

Dicionarizador

Douglas Yamashita de Moura

Suporte Técnico

Juliana Claro Mourisca

 

2.1.1 Criação das Tabelas e Inserção dos Valores

CREATE TABLE TIPO(
       tip_codigo     INTEGER,
       tip_nome       VARCHAR(50),
       tip_capacidade            INTEGER
);

ALTER TABLE TIPO ADD ( PRIMARY KEY (tip_codigo));

INSERT INTO TIPO VALUES (1,'Canoa', 300);

INSERT INTO TIPO VALUES (2,'Barco', 10000);

INSERT INTO TIPO VALUES (3,'Navios', 100000);

CREATE TABLE EMBARCACAO(
        emb_codigo                 INTEGER,
        emb_nome   VARCHAR(50),
        tip_codigo    INTEGER,
                pro_codigo           INTEGER
);

ALTER TABLE EMBARCACAO ADD ( PRIMARY KEY (emb_codigo));

INSERT INTO EMBARCACAO VALUES (1,'Poseidon', 2, 3);

INSERT INTO EMBARCACAO VALUES (2,'Titanic', 3, 2);

INSERT INTO EMBARCACAO VALUES (3,'Ana Luzia', 2, 2);

CREATE TABLE PROPRIETARIO(
        pro_codigo   INTEGER,
        pro_nome     VARCHAR(50),
        pro_tipo        VARCHAR(50),
                pro_telefone        VARCHAR(50)
);

ALTER TABLE PROPRIETARIO ADD ( PRIMARY KEY (pro_codigo));

INSERT INTO PROPRIETARIO VALUES (1,'Joaquim Manuel', 'fisica', '(12) 3947-0001');

INSERT INTO PROPRIETARIO VALUES (2,'Jose da Silva', 'fisica', '(12) 3947-0002');

INSERT INTO PROPRIETARIO VALUES (3,'MADEIRA SA', 'juridica', '(12) 3947-0003');

CREATE TABLE CARGA(
                 car_codigo          INTEGER,
                nat_codigo           INTEGER,
                pro_codigo           INTEGER,
                car_volume          INTEGER,
                car_peso               INTEGER,
                car_valor              INTEGER
);

ALTER TABLE CARGA ADD ( PRIMARY KEY (car_codigo));

INSERT INTO CARGA VALUES (1, 1, 1, 300, 60000, 500000);

INSERT INTO CARGA VALUES (2, 2, 1, 400, 30000, 300000);

INSERT INTO CARGA VALUES (3, 3, 3, 500, 50000, 400000);

CREATE TABLE NATUREZA(
        nat_codigo   INTEGER,
        nat_nome     VARCHAR(50),
        nat_toxidade               VARCHAR(50),
                nat_fragilidade    VARCHAR(50),
                nat_inflamabilidade          VARCHAR(50)
);

ALTER TABLE NATUREZA ADD ( PRIMARY KEY (nat_codigo));

INSERT INTO NATUREZA VALUES (1,'Madeira', 'baixa', 'baixa', 'media');

INSERT INTO NATUREZA VALUES (2,'Acido Sulfurico', 'alta', 'alta', 'baixa');

INSERT INTO NATUREZA VALUES (3,'Petroleo', 'alta', 'alta', 'alta');

CREATE TABLE TRIPULANTE(
        tri_codigo     INTEGER,
        tri_nome       VARCHAR(50),
        emb_codigo INTEGER,
                tri_cargo               VARCHAR(50),
                tri_telefone           VARCHAR(50)
);

ALTER TABLE TRIPULANTE ADD ( PRIMARY KEY (tri_codigo));

INSERT INTO TRIPULANTE VALUES (1,'Ze de Souza', 2, 'capitao', '(12) 3947-0003');

INSERT INTO TRIPULANTE VALUES (2,'Moacir Matos Junior', 3, 'marijo', '(12) 3947-0004');

INSERT INTO TRIPULANTE VALUES (3,'Joao Macedo', 3, 'capitao', '(12) 3947-0005');

CREATE TABLE EMPREGADO(
        emp_codigo                 INTEGER,
        emp_nome   VARCHAR(50),
        por_codigo   INTEGER,
                emp_cargo           VARCHAR(50),
                emp_telefone      VARCHAR(50)
);

ALTER TABLE EMPREGADO ADD ( PRIMARY KEY (emp_codigo));

INSERT INTO EMPREGADO VALUES (1,'Marcos Rosa', 2, 'Janitor', '(12) 3947-0006');

INSERT INTO EMPREGADO VALUES (2,'Moacir Matos Junior', 3, 'Operador', '(12) 3947-0007');

INSERT INTO EMPREGADO VALUES (3,'Herbert Fonseca’, 3, 'Gerente', '(12) 3947-0008');

CREATE TABLE MOVIMENTO_CARGA(
        mov_codigo                INTEGER,
                atr_codigo            INTEGER,
                car_codigo           INTEGER,
                mov_tipo              VARCHAR(50)
);

ALTER TABLE MOVIMENTO_CARGA  ADD ( PRIMARY KEY (mov_codigo));

INSERT INTO MOVIMENTO_CARGA VALUES (1,1,1,'carga');

INSERT INTO MOVIMENTO_CARGA VALUES (2,2,1,'descarga');

INSERT INTO MOVIMENTO_CARGA VALUES (3,3,2,'carga');

INSERT INTO MOVIMENTO_CARGA VALUES  (4,4,2,'descarga');

INSERT INTO MOVIMENTO_CARGA VALUES (5,3,3,'carga');

INSERT INTO MOVIMENTO_CARGA VALUES (6,4,3,'descarga');

CREATE TABLE ATRACACAO(
        atr_codigo    INTEGER,
                emb_codigo         INTEGER,
                por_codigo           INTEGER,
                atr_horario_entreada        DATE,
                atr_horario_saida               DATE
);

ALTER TABLE ATRACACAO ADD ( PRIMARY KEY (atr_codigo));

INSERT INTO ATRACACAO VALUES (1,2,1,to_date('2007/05/17:09:00:00AM', 'yyyy/mm/dd:hh:mi:ssam'), to_date('2007/05/17:06:00:00PM', 'yyyy/mm/dd:hh:mi:ssam'));

INSERT INTO ATRACACAO VALUES (2,2,2,to_date('2007/05/20:08:00:00AM', 'yyyy/mm/dd:hh:mi:ssam'), to_date('2007/05/20:03:00:00PM', 'yyyy/mm/dd:hh:mi:ssam'));

INSERT INTO ATRACACAO VALUES (3,3,2,to_date('2007/05/19:04:00:00AM', 'yyyy/mm/dd:hh:mi:ssam'), to_date('2007/05/19:07:00:00PM', 'yyyy/mm/dd:hh:mi:ssam'));

INSERT INTO ATRACACAO VALUES (4,3,1,to_date('2007/05/25:10:00:00AM', 'yyyy/mm/dd:hh:mi:ssam'), to_date('2007/05/25:09:00:00PM', 'yyyy/mm/dd:hh:mi:ssam'));

CREATE TABLE EXTREMO_ROTA(
        ext_codigo   INTEGER,
        rot_codigo    INTEGER,
                atr_codigo            INTEGER
);

ALTER TABLE EXTREMO_ROTA ADD ( PRIMARY KEY (ext_codigo));

INSERT INTO EXTREMO_ROTA VALUES (1,1, 1);

INSERT INTO EXTREMO_ROTA VALUES (2,1, 2);

INSERT INTO EXTREMO_ROTA VALUES (3,2, 3);

INSERT INTO EXTREMO_ROTA VALUES (4,2, 4);

CREATE TABLE ROTA(
        rot_codigo    INTEGER,
        rot_nome      VARCHAR(50),
                rot_periculosidade              VARCHAR(50)
);

ALTER TABLE ROTA ADD ( PRIMARY KEY (rot_codigo));

INSERT INTO ROTA VALUES (1,'Rota da Madeira - ida', 'alta');

INSERT INTO ROTA VALUES (2,'Rota da Madeira - volta', 'alta');

INSERT INTO ROTA VALUES (3,'Rota do Ouro ida', 'media');

CREATE TABLE DESCRICAO_ROTA(
        des_codigo   INTEGER,
        rot_codigo    INTEGER,
                tre_codigo            INTEGER
);

ALTER TABLE DESCRICAO_ROTA ADD ( PRIMARY KEY (des_codigo));

INSERT INTO DESCRICAO_ROTA VALUES (1,1,1);

INSERT INTO DESCRICAO_ROTA VALUES (2,1,2);

INSERT INTO DESCRICAO_ROTA VALUES (3,2,1);

INSERT INTO DESCRICAO_ROTA VALUES (4,2,2);

CREATE TABLE TRECHO(
        tre_codigo    INTEGER,
        rio_codigo    INTEGER,
                tre_km_inicial     INTEGER,
                tre_km_final        INTEGER
);

ALTER TABLE TRECHO ADD ( PRIMARY KEY (tre_codigo));

INSERT INTO TRECHO VALUES (1,1,58,89);

INSERT INTO TRECHO VALUES (2,2,36,90);

INSERT INTO TRECHO VALUES (3,3,50,79);
CREATE TABLE RIO(
        rio_codigo    INTEGER,
        rio_nome      VARCHAR(50),
                rio_comprimento                INTEGER
);

ALTER TABLE RIO ADD ( PRIMARY KEY (rio_codigo));

INSERT INTO RIO VALUES (1,'Amazonas',2000);

INSERT INTO RIO VALUES (2,'Solimoes',300);

INSERT INTO RIO VALUES (3,'Jaima',500);

CREATE TABLE PORTO(
        por_codigo   INTEGER,
        por_nome     VARCHAR(50),
                por_endereco       VARCHAR(50),
                por_posicao         MDSYS.SDO_GEOMETRY NOT NULL
);

ALTER TABLE PORTO  ADD ( PRIMARY KEY (por_codigo));

INSERT INTO USER_SDO_GEOM_METADATA (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID) VALUES ('PORTO', 'por_posicao', MDSYS.SDO_DIM_ARRAY(MDSYS.SDO_DIM_ELEMENT('LONG', -50.9, -30.8, 5.0E-8), MDSYYS.SDO_DIM_ELEMENT('LAT', -60.2, 6.3, 5.0E-8)), NULL);

CREATE INDEX ORIGEM_SDX ON PORTO (por_posicao) INDEXTYPE IS MDSYS.SPATIAL_INDEX PARAMETERS ('SDO_INDX_DIMS=2 LAYER_GTYPE="POINT"');

CREATE UNIQUE INDEX XPKORIGEM ON PORTO
(
por_codigo
);

INSERT INTO PORTO VALUES
(1,'Porto de Manaus','Rua Santa Maria, 30',MDSYS.SDO_GEOMETRY(2001,NULL,MDSYS.SDO_POINT_TYPE(-2.0,-10.1,50.0),NULL,NULL));

INSERT INTO PORTO VALUES
(2,'Porto de Japioca','Av JK, 3000',MDSYS.SDO_GEOMETRY(2001,NULL,MDSYS.SDO_POINT_TYPE(-5.0,-30.1,50.0),NULL,NULL));

INSERT INTO PORTO VALUES (3,'Porto de Baiatuba','Rodovia dos Madeireiros, 200',MDSYS.SDO_GEOMETRY(2001,NULL,MDSYS.SDO_POINT_TYPE(10.0,20.1,50.0),NULL,NULL));

ALTER TABLE EMBARCACAO ADD ( FOREIGN KEY (tip_codigo) REFERENCES TIPO);

ALTER TABLE EMBARCACAO ADD ( FOREIGN KEY (pro_codigo) REFERENCES PROPRIETARIO);

ALTER TABLE CARGA  ADD ( FOREIGN KEY (pro_codigo) REFERENCES PROPRIETARIO);

ALTER TABLE CARGA ADD ( FOREIGN KEY (nat_codigo) REFERENCES NATUREZA);

ALTER TABLE TRIPULANTE ADD ( FOREIGN KEY (emb_codigo) REFERENCES EMBARCACAO);

ALTER TABLE EMPREGADO ADD ( FOREIGN KEY (por_codigo) REFERENCES PORTO);

ALTER TABLE ATRACACAO ADD ( FOREIGN KEY (emb_codigo) REFERENCES EMBARCACAO);

ALTER TABLE ATRACACAO ADD ( FOREIGN KEY (por_codigo) REFERENCES PORTO);

ALTER TABLE EXTREMO_ROTA ADD ( FOREIGN KEY (rot_codigo) REFERENCES ROTA);

ALTER TABLE EXTREMO_ROTA ADD ( FOREIGN KEY (atr_codigo) REFERENCES ATRACACAO);

ALTER TABLE MOVIMENTO_CARGA ADD ( FOREIGN KEY (atr_codigo) REFERENCES ATRACACAO);

ALTER TABLE MOVIMENTO_CARGA ADD ( FOREIGN KEY (car_codigo) REFERENCES CARGA);

ALTER TABLE DESCRICAO_ROTA ADD ( FOREIGN KEY (rot_codigo) REFERENCES ROTA);

ALTER TABLE DESCRICAO_ROTA ADD ( FOREIGN KEY (tre_codigo) REFERENCES TRECHO);

ALTER TABLE TRECHO ADD ( FOREIGN KEY (rio_codigo) REFERENCES RIO);

2.2. Integração

            A Integração do Banco de Dados Setorial Transporte encontra-se na Página de Índices do Arthur de Almeida Rodrigues.
            Endereço: http://www.geocities.com/arthur84/


2.3. Normalização

            A Integração do Banco de Dados Setorial Transporte encontra-se na Página de Índices do Jordan Guimarães Lombardi.
            Endereço: http://jordanlombardi.googlepages.com/


2.4. Dicionarização

2.4.1. Dicionário de Dados

Tipo

Nome

Conteúdo

Estrutura

Integridade

Segurança

Entidade

ATRACACAO

Tabela contendo dados relativos às atraçações

Possui 5 atributos

Sem restrições

Somente administradores do sistema podem efetuar alterações

Atributo

atr_codigo

Chave primária. Código que identifica a atracação.

INTEGER

Chave primária

Sua exclusão implica na exclusão de todos os registros a ele relacionados

emb_codigo

Chave estrangeira da tabela EMBARCACAO. Código que identifica a embarcação.

Sem restrições

Sem restrições

por_codigo

Chave estrangeira da tabela PORTO. Código que identifica o porto.

Chave estrangeira

atr_horario_entrada

Horário de entrada da embarcação no porto.

DATE

Sem restrições

atr_horario_saida

Horário de saída da embarcação do porto.


Tipo

Nome

Conteúdo

Estrutura

Integridade

Segurança

Entidade

CARGA

Tabela contendo as características relativas às cargas

Possui 6 atributos

Sem restrições

Somente administradores do sistema podem efetuar alterações

Atributo

car_codigo

Chave primária. Código que identifica a carga.

INTEGER

Chave primária

Sua exclusão implica na exclusão de todos os registros a ele relacionados

nat_codigo

Chave estrangeira da tabela NATUREZA. Código que identifica a natureza da carga.

Sem restrições

Sem restrições

pro_codigo

Chave estrangeira da tabela PROPRIETARIO. Código que identifica o proprietário da embarcação.

Chave estrangeira

car_volume

Volume da carga.

Sem restrições

car_peso

Peso da carga.

car_valor

Valor da carga.


Tipo

Nome

Conteúdo

Estrutura

Integridade

Segurança

Entidade

DESCRICAO_ROTA

Tabela contendo as descrições das rotas

Possui 3 atributos

Sem restrições

Somente administradores do sistema podem efetuar alterações

Atributo

des_codigo

Chave primária. Código que identifica a descrição da rota.

INTEGER

Chave primária

Sua exclusão implica na exclusão de todos os registros a ele relacionados

rot_codigo

Chave estrangeira da tabela ROTA. Código que identifica a rota.

Chave estrangeira

Sem restrições

tre_codigo

Chave estrangeira da tabela TRECHO. Código que identifica o trecho.

Chave estrangeira


Tipo

Nome

Conteúdo

Estrutura

Integridade

Segurança

Entidade

EMBARCACAO

Tabela que armazena as características relativas às embarcações

Possui 4 atributos

Sem restrições

Somente administradores do sistema podem efetuar alterações

Atributo

emb_codigo

Chave primária. Código que identifica a embarcação.

INTEGER

Chave primária

Sua exclusão implica na exclusão de todos os registros a ele relacionados

tip_codigo

Chave estrangeira. Código do Tipo da Embarcação.

Chave estrangeira

Sem restrições

pro_codigo

Chave estrangeira da tabela PROPRIETARIO. Código que identifica o proprietário da embarcação.

emb_nome

Nome da embarcação.

VARCHAR(50)

Sem restrições


Tipo

Nome

Conteúdo

Estrutura

Integridade

Segurança

Entidade

EMPREGADO

Tabela contendo informações sobre os empregados dos portos

Possui 5 atributos

Sem restrições

Somente administradores do sistema podem efetuar alterações

Atributo

emp_codigo

Chave primária. Código que identifica o empregado.

INTEGER

Chave primária

Sua exclusão implica na exclusão de todos os registros a ele relacionados

por_codigo

Chave estrangeira da tabela PORTO. Código que identifica o porto.

Chave estrangeira

Sem restrições

emp_nome

Nome do empregado.

VARCHAR(50)

Sem restrições

emp_cargo

Cargo do empregado.

emp_telefone

Telefone do empregado.

CHAR(18)


Tipo

Nome

Conteúdo

Estrutura

Integridade

Segurança

Entidade

EXTREMO_ROTA

Tabela contendo informações sobre a rota relativa a cada atracação

Possui 3 atributos

Sem restrições

Somente administradores do sistema podem efetuar alterações

Atributo

ext_codigo

Chave primária. Código que identifica o extremo da rota.

INTEGER

Chave primária

Sua exclusão implica na exclusão de todos os registros a ele relacionados

rot_codigo

Chave estrangeira da tabela ROTA. Código que identifica a rota.

Chave estrangeira

Sem restrições

atr_codigo

Chave estrangeira da tabela ATRACACAO. Código que identifica a atracação.


Tipo

Nome

Conteúdo

Estrutura

Integridade

Segurança

Entidade

MOVIMENTO_CARGA

Tabela contendo informações sobre a carga relativa a cada atracação

Possui 5 atributos

Sem restrições

Somente administradores do sistema podem efetuar alterações

Atributo

mov_codigo

Chave primária. Código que identifica a movimentação da carga.

INTEGER

Chave primária

Sua exclusão implica na exclusão de todos os registros a ele relacionados

atr_codigo

Chave estrangeira da tabela ATRACACAO. Código que identifica a atracação.

Chave estrangeira

Sem restrições

car_codigo

Chave estrangeira da tablea CARGA. Código que identifica a carga.


Tipo

Nome

Conteúdo

Estrutura

Integridade

Segurança

Entidade

NATUREZA

Tabela que armazena informações sobre a natureza das cargas

Possui 5 atributos

Sem restrições

Somente administradores do sistema podem efetuar alterações

Atributo

nat_codigo

Chave primária. Código que identifica a natureza da carga.

INTEGER

Chave primária

Sua exclusão implica na exclusão de todos os registros a ele relacionados

nat_toxidade

Toxicidade da carga.

VARCHAR(50)

Sem restrições

Sem restrições

nat_fragilidade

Fragilidade da carga.

INTEGER

nat_inflamabilidade

Inflamabilidade da carga.

nat_nome

Tipo da natureza.

VARCHAR(50)


Tipo

Nome

Conteúdo

Estrutura

Integridade

Segurança

Entidade

PORTO

Tabela que armazena informações relativas aos portos

Possui 4 atributos

Sem restrições

Somente administradores do sistema podem efetuar alterações

Atributo

por_codigo

Chave primária. Código que identifica o porto.

INTEGER

Chave primária

Sua exclusão implica na exclusão de todos os registros a ele relacionados

por_nome

Nome do porto.

VARCHAR(50)

Sem restrições

Sem restrições

por_endereco

Endereço do porto.

por_posicao

Fornece o georreferenciamento das posicões dos portos.

MDSYS.SDO_
GEOMETRY


Tipo

Nome

Conteúdo

Estrutura

Integridade

Segurança

Entidade

PROPRIETAR
IO

Tabela contendo os dados dos proprietários das embarcações

Possui 4 atributos

Sem restrições

Somente administradores do sistema podem efetuar alterações

Atributo

pro_codigo

Chave primária. Código que identifica o proprietário da embarcação.

INTEGER

Chave primária

Sua exclusão implica na exclusão de todos os registros a ele relacionados

pro_nome

Nome do proprietário.

VARCHAR(50)

Sem restrições

Sem restrições

pro_tipo

Tipo do proprietário.

pro_telefone

Telefone do proprietário.


Tipo

Nome

Conteúdo

Estrutura

Integridade

Segurança

Entidade

RIO

Tabela contendo informações sobre os rios

Possui 3 atributos

Sem restrições

Somente administradores do sistema podem efetuar alterações

Atributo

rio_codigo

Chave primária. Código que identifica o tipo do rio.

INTEGER

Chave primária

Sua exclusão implica na exclusão de todos os registros a ele relacionados

rio_nome

Nome do rio.

VARCHAR(50)

Sem restrições

Sem restrições

rio_comprimento

Comprimento do rio.

INTEGER


Tipo

Nome

Conteúdo

Estrutura

Integridade

Segurança

Entidade

ROTA

Tabela que armazena dados das rotas

Possui 3 atributos

Sem restrições

Somente administradores do sistema podem efetuar alterações

Atributo

rot_codigo

Chave primária. Código que identifica a rota.

INTEGER

Chave primária

Sua exclusão implica na exclusão de todos os registros a ele relacionados

rot_nome

Nome da rota.

VARCHAR(50)

Sem restrições

Sem restrições

rot_periculosidade

Periculosidade da rota.


Tipo

Nome

Conteúdo

Estrutura

Integridade

Segurança

Entidade

TIPO

Tabela que armazena os tipos das embarcações

Possui 3 atributos

Sem restrições

Somente administradores do sistema podem efetuar alterações

Atributo

tip_codigo

Código do Tipo da Embarcação

INTEGER

Chave primária

Sua exclusão implica na exclusão de todos os registros a ele relacionados

tip_nome

Nome do Tipo

VARCHAR(50)

Sem restrições

Sem restrições

tip_capacidade

Capacidade da Embarcação

INTEGER


Tipo

Nome

Conteúdo

Estrutura

Integridade

Segurança

Entidade

TRECHO

Tabela contendo informações sobre os trechos a serem percorridos

Possui 4 atributos

Sem restrições

Somente administradores do sistema podem efetuar alterações

Atributo

tre_codigo

Chave primária. Código que identifica o trecho.

INTEGER

Chave primária

Sem restrições

rio_codigo

Chave estrangeira da tabela RIO. Código que identifica o tipo do rio.

Chave estrangeira

tre_km_inicial

Quilometragem inicial do trecho.

Sem restrições

tre_km_final

Quilometragem final do trecho.


Tipo

Nome

Conteúdo

Estrutura

Integridade

Segurança

Entidade

TRIPULANTE

Tabela contendo informações sobre os tripulantes das embarcações

Possui 5 atributos

Sem restrições

Somente administradores do sistema podem efetuar alterações

Atributo

tri_codigo

Chave primária. Código que identifica o tripulante.

INTEGER

Chave primária

Sua exclusão implica na exclusão de todos os registros a ele relacionados

emb_codigo

Chave estrangeira da tabela EMBARCACAO. Código que identifica a embarcação.

Chave estrangeira

Sem restrições

tri_nome

Nome do tripulante.

VARCHAR(50)

Sem restrições

tri_cargo

Cargo do tripulante.

tri_telefone

Telefone do tripulante.


 

2.4.2. Diretório de Dados

Entidade

Atributo

Relacionamento

Entidade-Relacionamento

ATRACACAO

(PK) atr_codigo

(FK) atr_codigo

MOVIMENTO_CARGA

EXTREMO_ROTA

CARGA

(PK) car_codigo

(FK) car_codigo

PROPRIETARIO

MOVIMENTO_CARGA

DESCRICAO_ROTA

(PK) des_codigo

 

 

EMBARCACAO

(PK) emb_codigo

(FK) emb_codigo

ATRACACAO

TRIPULANTE

EMPREGADO

(PK) emp_codigo

 

 

EXTREMO_ROTA

(PK) ext_codigo

 

 

MOVIMENTO

(PK) mov_codigo

 

 

NATUREZA

(PK) nat_codigo

(FK) nat_codigo

CARGA

PORTO

(PK) por_codigo

(FK) por_codigo

ATRACACAO

EMPREGADO

PROPRIETARIO

(PK) pro_codigo

(FK) pro_codigo

EMBARCACAO

CARGA

ROTA

(PK) rot_codigo

(FK) rot_codigo

EXTREMO_ROTA

DESCRICAO_ROTA

RIO

(PK) rio_codigo

(FK) rio_codigo

TRECHO

TIPO

(PK) tip_codigo

(FK) tip_codigo

EMBARCACAO

TRECHO

(PK) tre_codigo

(FK) tre_codigo

DESCRICAO_ROTA

TRIPULANTE

(PK) tri_codigo

 

 

 

2.4.3. Dicionário de Recursos de Dados

SGBD

Oracle 10g Spatial

Address

http://seti.fcmf.ita.br/

Alias

orcl

Projeto

Banco de Dados Setorial Transporte (PT-TRA)

Sistema Operacional

Windows XP Professional

Memória RAM

1 GB

Utilização

24 h

 

2.4.4. Dicionário de Metadados

 

imagem

 

2.5. Suporte Técnico

            O Suporte Técnico do Banco de Dados Setorial Transporte encontra-se na Página de Índices da Juliana Claro Mourisca.
            Endereço: http://jmourisca.googlepages.com/

2.6.  Testes de Verificação

            Para verificar a integração do Banco de Dados Setorial, foram realizadas consultas.

2.6.1. 1ª Consulta

            “Listar todas as informações do Porto de Manaus”.
           
SELECT *
FROM PORTO
WHERE por_nome= 'Porto de Manaus'


POR_CODIGO

POR_NOME

POR_ENDERECO

POR_POSICAO(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINATES)

1

Porto de Manaus

Rua Santa Maria, 30

SDO_GEOMETRY(2001, NULL, SDO_POINT_TYPE(-2, -10.1, 50), NULL, NULL)

Observação: Como não houve alteração na tabela Porto, o resultado da consulta possui a mesma estrutura.

 

2.6.2. 2ª Consulta

“Listar os horários de chegada das embarcações em cada berço.”

SELECT ATRACACAO.atr_berco, HORARIO.hor_chegada
FROM ATRACACAO INNER JOIN HORARIO
ON ATRACACAO.hor_codigo=HORARIO.hor_codigo;

Anomalia: A tabela ATRACACAO foi alterada, tendo alguns de seus atributos substituídos. Além disso, a tabela HORARIO foi unida à tabela ATRACACAO, sendo que também foram retirados atributos da mesma.

Novo enunciado: “Listar os horários de chegada das embarcações nos portos.”

SELECT atr_horario_entrada, por_codigo
FROM ATRACACAO

 

POR_CODIGO

ATR_HORARIO_ENTRADA

1

17-MAY-07

2

20-MAY-07

2

19-MAY-07

1

25-MAY-07

 

2.6.3. 3ª Consulta

            “Listar o código, nome e bandeira da embarcação, o código da atracação e o código e o nome do porto cuja embarcação possui como destino Manaus.”

SELECT EMBARCACAO.emb_codigo, EMBARCACAO.emb_nome, EMBARCACAO.emb_bandeira, ATRACACAO.atr_codigo, PORTO.por_codigo, PORTO.por_nome
FROM ATRACACAO INNER JOIN EMBARCACAO ON ATRACACAO.emb_codigo=EMBARCACAO.emb_codigo INNER JOIN PORTO
ON ATRACACAO.por_codigo=PORTO.por_codigo
WHERE ATRACACAO.atr_destino='MANAUS';

            Anomalia: O atributo emb_bandeira da tabela EMBARCACAO foi excluído, bem como o atributo atr_destino da tabela ATRACACAO.

            Novo enunciado: “Listar o código e o nome da embarcação, o código da atracação e o código do porto cuja embarcação possui como porto de atracação o Porto de Manaus.”

SELECT EMBARCACAO.emb_codigo, EMBARCACAO.emb_nome, ATRACACAO.atr_codigo, PORTO.por_código
FROM EMBARCACAO, PORTO, ATRACACAO
WHERE PORTO.por_nome='Porto de Manaus' AND ATRACACAO.emb_codigo=EMBARCACAO.emb_codigo AND ATRACACAO.por_codigo=PORTO.por_codigo

 

EMB_CODIGO

EMB_NOME

ATR_CODIGO

POR_CODIGO

2

Titanic

1

1

3

Ana Luzia

4

1

 

2.6.4. 4ª Consulta

            “Listar a posição do porto no qual trabalha o empregado Marcos Rosa.”

SELECT PORTO.por_posicao
FROM PORTO, EMPREGADO
WHERE PORTO.por_codigo=EMPREGADO.por_codigo and EMPREGADO.emp_nome='Marcos Rosa'

 

POR_POSICAO(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINATES)

SDO_GEOMETRY(2001, NULL, SDO_POINT_TYPE(-5, -30.1, 50), NULL, NULL)

 

Observação: Não houve nenhuma alteração que implicasse em alterações nessa consulta.

 

2.6.5. 5ª Consulta

            “Listar as informações dos tripulantes da embarcação Ana Luiza.”

SELECT TRIPULANTE.tri_codigo, TRIPULANTE.tri_nome, TRIPULANTE.tri_cargo, TRIPULANTE.tri_telefone
FROM EMBARCACAO, TRIPULANTE
WHERE EMBARCACAO.emb_codigo=TRIPULANTE.emb_codigo  and EMBARCACAO.emb_nome='Ana Luzia'

 

TRI_CODIGO

TRI_NOME

TRI_CARGO

TRI_TELEFONE

2

Moacir Matos Junior

marijo

(12) 3947-0004

3

Joao Macedo

capitao

(12) 3947-0005

 

2.6.6. 6ª Consulta

            “Listar os portos em que se encontram as embarcações cujos proprietários são pessoas físicas.”

SELECT DISTINCT (PORTO.por_nome)
FROM PORTO, ATRACACAO, EMBARCACAO, PROPRIETARIO
WHERE PROPRIETARIO.pro_tipo='fisica' AND PROPRIETARIO.pro_codigo=EMBARCACAO.pro_codigo AND EMBARCACAO.emb_codigo=ATRACACAO.emb_codigo AND PORTO.por_codigo=ATRACACAO.por_codigo

 

POR_NOME

Porto de Manaus

Porto de Japioca

 

2.6.7. 7ª Consulta

            “Listar o nome e o tipo das embarcações com capacidade de 10000 ou 100000 cujas periculosidades das rotas sejam altas.”

 

SELECT DISTINCT(EMBARCACAO.emb_nome), TIPO.tip_nome
FROM EMBARCACAO, TIPO, ATRACACAO, EXTREMO_ROTA, ROTA
WHERE (TIPO.tip_capacidade='10000' OR TIPO.tip_capacidade='100000') AND ROTA.rot_periculosidade='alta' AND EMBARCACAO.tip_codigo=TIPO.tip_codigo AND ATRACACAO.emb_codigo=EMBARCACAO.emb_codigo AND EXTREMO_ROTA.atr_codigo=ATRACACAO.atr_codigo AND ROTA.rot_codigo=EXTREMO_ROTA.rot_codigo

 

EMB_NOME

TIP_NOME

Titanic

Navios

Ana Luzia

Barco

 

2.6.8. 8ª Consulta

            “Listar os dados dos portos e suas distâncias ao ponto de latitude e longitude zero cujo código de atracação também é dois.”

SELECT PORTO.*, SDO_GEOM.SDO_DISTANCE(PORTO.por_posicao,MDSYS.SDO_GEOMETRY(2001,NULL,MDSYS.SDO_POINT_TYPE(0,0,0),NULL,NULL) ,1) AS DISTANCIA
FROM PORTO, ATRACACAO
WHERE PORTO.por_nome='Porto de Japioca' AND ATRACACAO.por_codigo=PORTO.por_codigo AND ATRACACAO.atr_codigo='2'

 

POR_CODIGO

POR_NOME

POR_ENDERECO

POR_POSICAO(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINATES)

DISTANCIA

2

Porto de Japioca

Av JK, 3000

SDO_GEOMETRY(2001, NULL, SDO_POINT_TYPE(-5, -30.1, 50), NULL, NULL)

305.124.565

 

3. Conclusão
           
             Nesta lista de exercícios foi implementada a Terceira Forma Normal do Protótipo de Aplicativo de Banco de Dados da temática de Portos, do Setor de Transportes. Também foi realizada conversão da 3ªFN do Protótipo de Aplicativo de BD no Modelo de Dados Relacional para os Modelos Hierárquico, Rede e Orientado a Objetos.
            Através desses procedimentos, resultamos na Versão 1.0 do Sistema de Dicionário de Dados e nos Modelos de Dados Relacional, Hierárquico, Rede e Orientado a Objetos.
            Dessa forma, o Protótipo de Aplicativo de BD já é passível de ser integrado às demais temáticas do Setor de Transportes, que são as temáticas de Rotas, Embarcações e Cargas.


           

   
           
Hosted by www.Geocities.ws

1