Header

domingo, 27 de mayo de 2007

SQL: Tablas

CREATE TABLE pilotos (
nombre VARCHAR(15),
apellido VARCHAR(15),
nacimiento DATE,
pais VARCHAR(15),
ciudad VARCHAR(15),
peso INT,
altura NUMERIC,
debut VARCHAR(20),
estatus tipo_piloto,
retiro DATE,
foto VARCHAR(500) UNIQUE,
casco VARCHAR(500) UNIQUE,

CONSTRAINT cp_pilotos PRIMARY KEY (nombre,apellido)
);


CREATE TABLE escuderias (
esc_nombre VARCHAR (25),
creacion VARCHAR(4),
web VARCHAR (500) UNIQUE,
logo VARCHAR (500) UNIQUE,

CONSTRAINT cp_escuderias PRIMARY KEY (esc_nombre)
);


CREATE TABLE monoplazas (
mono_nombre VARCHAR (15),
temporada VARCHAR (5),
esc_nombre VARCHAR (25),
motor VARCHAR (20),
cilindrada VARCHAR (15),
potencia NUMERIC (4),
chasis VARCHAR (300),
suspension VARCHAR (300),
amortiguacion VARCHAR (20),
transmision VARCHAR (50),
electronica VARCHAR (20),
ruedas VARCHAR (7),
frenos VARCHAR (50),
lubricante VARCHAR (15),
combustible VARCHAR (30),
longitud NUMERIC (5,1),
altura NUMERIC (5,1),
ancho NUMERIC (5,1),
peso NUMERIC (5,1),
via_trasera NUMERIC (5,1),
batalla NUMERIC (5,1),
foto VARCHAR(500) UNIQUE,

CONSTRAINT cp_monoplazas PRIMARY KEY (mono_nombre,temporada),
CONSTRAINT ce_monoplazas FOREIGN KEY (esc_nombre) REFERENCES escuderias (esc_nombre)
);


CREATE TABLE patrocinadores (
patro_nombre VARCHAR (30),
web VARCHAR (500) UNIQUE,
logo VARCHAR (500) UNIQUE,

CONSTRAINT cp_patrocinadores PRIMARY KEY (patro_nombre)
);


CREATE TABLE mundiales (
temporada VARCHAR (5),
N_GPs INT,

CONSTRAINT cp_mundiales PRIMARY KEY (temporada)
);


CREATE TABLE circuitos (
cir_nombre VARCHAR (25),
pais VARCHAR (15),
aforo INT,
direccion VARCHAR (500),
web VARCHAR (500),

CONSTRAINT cp_circuitos PRIMARY KEY (cir_nombre)
);


CREATE TABLE GPs (
gp_nombre VARCHAR (25),
fecha_mundial DATE,
cir_nombre VARCHAR (25),
temporada VARCHAR (5),

CONSTRAINT cp_GPs PRIMARY KEY (gp_nombre, fecha_mundial),
CONSTRAINT ce_GPs FOREIGN KEY (cir_nombre) REFERENCES circuitos (cir_nombre)
);



CREATE TABLE trazado (
cir_nombre VARCHAR (25),
temporada VARCHAR (5),
n_vueltas NUMERIC (2),
carga_aerodinamica esp_circuito,
desgaste_frenos esp_circuito,
desgaste_neumaticos esp_circuito,
agarre esp_circuito,
consumo NUMERIC (2,1),
n_cambios_marcha INT,
aceleracion_max INT,
max_tramo_aceleracion VARCHAR (6),
velocidad_max NUMERIC (4,1),
web VARCHAR (500),

CONSTRAINT cp_trazado PRIMARY KEY (temporada)
);



CREATE TABLE curvas (
n_curva INT,
cir_nombre VARCHAR (25),
temporada VARCHAR (5),
nombre_propio VARCHAR (500),
velocidad NUMERIC (3),
fuerza_G NUMERIC (2,1),
marcha NUMERIC (1),
tipo izqder,

CONSTRAINT cp_cuvas PRIMARY KEY (n_curva, cir_nombre),
CONSTRAINT ce_curvas FOREIGN KEY (temporada) REFERENCES trazado (temporada)
);


CREATE TABLE I_TIENEN_2 (
esc_nombre VARCHAR (25),
pil_nombre VARCHAR (15),
pil_apellido VARCHAR (20),
temporada VARCHAR (5),

CONSTRAINT cp_I_TIENEN_2 PRIMARY KEY (esc_nombre, pil_nombre,pil_apellido)

);


CREATE TABLE I_TIENEN_3 (
esc_nombre VARCHAR (25),
patro_nombre VARCHAR (30),
temporada VARCHAR (5),

CONSTRAINT cp_I_TIENEN_3 PRIMARY KEY (esc_nombre, patro_nombre)

);


CREATE TABLE I_PARTICIPAN (
pil_nombre VARCHAR (15),
pil_apellido VARCHAR (20),
temporada VARCHAR (5),

CONSTRAINT cp_I_PARTICIPAN PRIMARY KEY (pil_nombre,pil_apellido, temporada)

);


CREATE TABLE I_POSICION (
pil_nombre VARCHAR (15),
pil_apellido VARCHAR (20),
gp_nombre VARCHAR (25),
fecha_mundial DATE,
parrilla INT,
llegada INT,
VR TIME,

CONSTRAINT cp_I_POSICION PRIMARY KEY (pil_nombre,pil_apellido, gp_nombre, fecha_mundial)

);


CREATE TABLE I_TIENEN_4 (
temporada VARCHAR (5),
gp_nombre VARCHAR (25),
fecha_mundial DATE,


CONSTRAINT cp_I_TIENEN_4 PRIMARY KEY (temporada, gp_nombre, fecha_mundial)

);



CREATE TABLE I_TIENEN_5 (
cir_nombre VARCHAR (25),
temporada VARCHAR (5),


CONSTRAINT cp_I_TIENEN_5 PRIMARY KEY (cir_nombre, temporada)

);

0 comentarios: