0% encontró este documento útil (0 votos)
22 vistas8 páginas

Estructura de Base de Datos Académica

Cargado por

Jocelyn Mamani
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
22 vistas8 páginas

Estructura de Base de Datos Académica

Cargado por

Jocelyn Mamani
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

CREATE TABLE region (

reg_codigo INT,

reg_nombre VARCHAR(50),

PRIMARY KEY (reg_codigo)

);

CREATE TABLE provincia (

prov_codigo INT,

prov_nombre VARCHAR(50),

prov_region INT,

PRIMARY KEY (prov_codigo),

FOREIGN KEY (prov_region) REFERENCES region (reg_codigo)

);

CREATE TABLE comuna (

com_codigo INT,

com_nombre VARCHAR(50),

com_provincia INT,

PRIMARY KEY (com_codigo),

FOREIGN KEY (com_provincia) REFERENCES provincia(prov_codigo)

);

CREATE TABLE tipo_institucion (

tpinst_codigo INT,

tpinst_descripcion VARCHAR(50),

PRIMARY KEY (tpinst_codigo)

);

CREATE TABLE acreditacion (


acr_codigo INT,

acr_descripcion VARCHAR(100),

PRIMARY KEY (acr_codigo)

);

CREATE TABLE institucion (

inst_codigo INT,

inst_nombre VARCHAR(100),

inst_acreditacion_inicio DATE,

inst_acreditacion_fin DATE,

inst_acreditacion INT,

inst_tipo_institucion INT,

PRIMARY KEY (inst_codigo),

FOREIGN KEY (inst_acreditacion) REFERENCES acreditacion (acr_codigo),

FOREIGN KEY (inst_tipo_institucion) REFERENCES tipo_institucion (tpinst_codigo)

);

CREATE TABLE sede (

sed_codigo INT,

sed_institucion INT,

sed_nombre VARCHAR(100),

sed_comuna INT,

PRIMARY KEY (sed_codigo, sed_institucion),

FOREIGN KEY (sed_institucion) REFERENCES institucion (inst_codigo),

FOREIGN KEY (sed_comuna) REFERENCES comuna (com_codigo)

);

CREATE TABLE nivel (

niv_codigo INT,
niv_descripcion VARCHAR(100),

PRIMARY KEY (niv_codigo)

);

CREATE TABLE modalidad (

mod_codigo INT,

mod_descripcion VARCHAR(50),

PRIMARY KEY (mod_codigo)

);

CREATE TABLE vigencia (

vig_codigo INT,

vig_descripcion VARCHAR(100),

PRIMARY KEY (vig_codigo)

);

CREATE TABLE tipo_area (

tpar_codigo INT,

tpar_descripcion VARCHAR(100),

PRIMARY KEY (tpar_codigo)

);

CREATE TABLE area (

are_codigo INT,

are_descripcion VARCHAR(100),

are_tipo_area INT,

PRIMARY KEY (are_codigo),

FOREIGN KEY (are_tipo_area) REFERENCES tipo_area(tpar_codigo)

);
CREATE TABLE jornada (

jor_codigo INT,

jor_descripcion VARCHAR(100),

PRIMARY KEY (jor_codigo)

);

CREATE TABLE tipo_plan (

tppl_codigo INT,

tppl_descripcion VARCHAR(100),

PRIMARY KEY (tppl_codigo)

);

CREATE TABLE carrera (

car_codigo INT,

car_nombre VARCHAR(50),

car_version VARCHAR(50),

car_duracion_estudio INT,

car_duracion_titulacion INT,

car_duracion_total INT,

car_requisito_ingreso VARCHAR(100),

car_codigo_demre VARCHAR(100),

car_modalidad INT,

car_jornada INT,

car_tipo_plan INT,

car_nivel INT,

car_area INT,

car_sede INT,

car_vigencia INT,
car_acreditacion INT,

PRIMARY KEY (car_codigo),

FOREIGN KEY (car_modalidad) REFERENCES modalidad(mod_codigo),

FOREIGN KEY (car_jornada) REFERENCES jornada(jor_codigo),

FOREIGN KEY (car_tipo_plan) REFERENCES tipo_plan(tppl_codigo),

FOREIGN KEY (car_nivel) REFERENCES nivel(niv_codigo),

FOREIGN KEY (car_area) REFERENCES area(are_codigo),

FOREIGN KEY (car_sede) REFERENCES sede(sed_codigo),

FOREIGN KEY (car_vigencia) REFERENCES vigencia(vig_codigo),

FOREIGN KEY (car_acreditacion) REFERENCES acreditacion(acr_codigo)

);

CREATE TABLE sexo (

sex_codigo INT,

sex_descripcion VARCHAR(50),

PRIMARY KEY (sex_codigo)

);

CREATE TABLE estudiante (

est_run INT,

est_nacimiento DATE,

est_rango_edad VARCHAR(50),

est_sexo INT,

PRIMARY KEY (est_run),

FOREIGN KEY (est_sexo) REFERENCES sexo(sex_codigo)

);

CREATE TABLE ingreso (

ing_codigo INT,
ing_descripcion VARCHAR(150),

PRIMARY KEY (ing_codigo)

);

CREATE TABLE matricula (

mat_estudiante INT,

mat_carrera VARCHAR(50),

mat_periodo INT,

mat_valor_matricula FLOAT,

mat_valor_arancel FLOAT,

mat_ingreso_primer_agno INT,

mat_ingreso_semestre_matricula INT,

mat_agno_ingreso INT,

mat_semestre_ingreso INT,

mat_forma_ingreso INT,

PRIMARY KEY (mat_estudiante, mat_carrera, mat_periodo),

FOREIGN KEY (mat_estudiante) REFERENCES estudiante (est_run),

FOREIGN KEY (mat_forma_ingreso) REFERENCES ingreso (ing_codigo)

);

SELECT * from matricula

describe matricula

alter TABLE matricula ADD FOREIGN KEY (mat_carrera) REFERENCES carrera(car_codigo); -- intentar
nuevamente

ALTER table carrera add car_valor_matricula INT not null;


SELECT acreditado - no acreditado as diff

from ( SELECT acr_descripcion, AVG (car_valor_matricula) AS acreditado

FROM nivel INNER JOIN carrera ON niv_codigo = car_nivel

INNER JOIN sede ON sed_codigo = car_sede

INNER JOIN institucion ON inst_codigo =sed_institucion

inner join acreditacion ON inst_acreditacion = acr_codigo

WHERE niv_descripcion = 'magister'

AND acr_codigo = 1

) as tab1,

( SELECT acr_descripcion, AVG(car_valor_matricula) AS no_acreditado

from nivel INNER JOIN carrera ON niv_codigo = car_nivel

INNER JOIN sede ON sed_codigo = car_sede

INNER JOIN institucion ON inst_codigo = sed_institucion

INNER JOIN acreditación ON ins_acreditacion =a cr_codigo

WHERE niv_descripcion ='magister'

AND acr_codigo = 2

) AS tab2

inst_acr_codigo IS NOT NULL THEN mat.mat_valor_matricula END)- AVG (CASE

ALTER TABLE institucion ADD inst_acr_codigo INT not null;.

SELECT

(AVG(CASE WHEN inst_acr_codigo IS NOT NULL THEN mat_valor_matricula END) -

AVG(CASE WHEN inst_acr_codigo IS NULL THEN mat_valor_matricula END))

AS diferencia_promedios
FROM matricula mat

JOIN carrera car ON mat_carrera = car_codigo

JOIN sede sed ON car_sede = sed_codigo

JOIN institucion inst ON sed_institucion = inst_codigo

WHERE niv_codigo = 'MAG'; -- Suponiendo que 'MAG' identifica programas de Magíster

También podría gustarte