segunda-feira, 27 de fevereiro de 2017

DB_Trem_Estacoes

Trens e Estacoes
Modele um Banco de Dados pra atender as seguintes especificacoes:
-Trens podem ser dois tipos: Trem Local ou Trem Expresso. OBS: nunca ambos;
-Cada trem tem um numero unico e um Engenheiro responssavel;
-Estacoes são paradas Expressas ou paradas Local, OBS: nunca ambas;
-Estacao tem um nome Unico e um Endereco;
-Todos os trens Locais param em todas estacoes;
-Trens Expresso param apenas em estacoes Expressa;
-Para cada estacao cada trem tem hora de Ida e Retorno.



create database DB_Trem_Estacoes

use DB_Trem_Estacoes

create table trem(
numero_trem int primary key,
engenheiro varchar(30) not null)

create table estacao(
nome_estacao varchar(50) primary key,
endereco varchar(100))

create table trem_expresso(
numero_trem_expresso int foreign key references trem(numero_trem), primary key(numero_trem_expresso))

create table trem_local(
numero_trem_local int foreign key references trem(numero_trem), primary key(numero_trem_local))

create table estacao_expressa(
nome_estacao_expressa varchar(50) foreign key references estacao(nome_estacao), primary key(nome_estacao_expressa))

create table estacao_local(
nome_estacao_local varchar(50) foreign key references estacao(nome_estacao), primary key(nome_estacao_local))

create table parada_expressa(
nome_estacao_expressa varchar(50) foreign key references estacao_expressa(nome_estacao_expressa),
numero_trem_expresso int foreign key references trem_expresso(numero_trem_expresso), primary key(nome_estacao_expressa,numero_trem_expresso),
hora_ida time,
hora_retorno time)

create table parada_local(
nome_estacao_local varchar(50) foreign key references estacao_local(nome_estacao_local),
numero_trem_local int foreign key references trem_local(numero_trem_local), primary key(nome_estacao_local,numero_trem_local),
hora_ida time,
hora_retorno time)