Proyecto Matricula Final

21
Administración de Base de Datos UNIVERSIDAD CATÓLICA Santo Toribio de Mogrovejo” Trabajo : Base de datos de Matricula Integrantes : Gonzales Gonzales Juan Alberto José N. Delgado Gonzales Walter Tarrillo Mondragón Carrera : Ingeniería de Sistema y Computación Ciclo : VII Asignatura : Pag. 1

Transcript of Proyecto Matricula Final

Page 1: Proyecto Matricula Final

Administración de Base de Datos

UNIVERSIDAD CATÓLICA

“Santo Toribio de Mogrovejo”

Trabajo :

Base de datos de Matricula

Integrantes :

Gonzales Gonzales Juan Alberto José N. Delgado Gonzales Walter Tarrillo Mondragón

Carrera :

Ingeniería de Sistema y Computación

Ciclo :

VII

Asignatura :

Administración de Base Datos

Docente :

Ing. José Castillo Zumaran

Pag. 1

Page 2: Proyecto Matricula Final

Administración de Base de Datos Chiclayo, Julio del 2005

Pag. 2

Page 3: Proyecto Matricula Final

Administración de Base de Datos

1. Modelo Entidad - Relacion

Pag. 3

Page 4: Proyecto Matricula Final

Administración de Base de Datos

2. Modelo Lógico

Pag. 4

Page 5: Proyecto Matricula Final

Administración de Base de Datos

Pag. 5

Page 6: Proyecto Matricula Final

Administración de Base de Datos

3. Modelo Físico de BD

Pag. 6

Page 7: Proyecto Matricula Final

Administración de Base de Datos

4. Modelo Físico de BD en SQL Server

Pag. 7

Page 8: Proyecto Matricula Final

Administración de Base de Datos

5. Implementación de la Base de Datos: Creación de la Base de datos

Use MasterGOCreate Database COLEGIOOn Primary(NAME = 'COLEGIO_Data',FILENAME = 'C:\Archivos de programa\Microsoft SQL Server\MSSQL\data\COLEGIO _Data.Mdf',SIZE = 10Mb,MAXSIZE = 20Mb,FILEGROWTH= 1Mb)LOG ON (NAME = 'COLEGIO_Log',FILENAME = 'C:\Archivos de programa\Microsoft SQL Server\MSSQL\data\COLEGIO _Data.ldf',SIZE = 5Mb,MAXSIZE = 10Mb,FILEGROWTH= 1Mb)

Creación de Tablas: create table Aula(IdAula char(5) not null constraint pk_IdAula Primary key,Tipo varchar(15) not null,Capacidad numeric not null)

create table Curso(IdCurso char(5) not null constraint pk_IdCurso Primary key,NombreCurso varchar(15) not null,HorasTeoricas numeric not null,HorasPracticas numeric not null,Nivel char(1) not null,Grado char(1) not null)

Pag. 8

Page 9: Proyecto Matricula Final

Administración de Base de Datoscreate table Docente(IdDocente char(5) not null constraint pk_IdDocente Primary key,Nombre varchar(25) not null,Apellidos varchar(35) not null,Direccion varchar(50) not null,Telefono varchar(12),Dni char(8) not null,Especialidad varchar(25) not null,E_Mail varchar(50),Sexo char(1) not null)create table AñoEscolar(NumAño char(4) not null constraint pk_NumAño Primary key,FechaIni datetime not null,FechaFin datetime not null,Estado char(1) not null)drop table AñoEscolarcreate table Ubigeo(IdUbigeo char(6) not null constraint pk_IdUbigeo Primary key,Distrito varchar(35) not null,Provincia varchar(25) not null,Departamento varchar(25) not null)create table Apoderado(Dni Char(8) not null constraint pk_Dni Primary key,Nombre varchar(25) not null,Apellidos varchar(35) not null,Sexo char(1) not null,Direccion varchar(35) not null,EstadoCiv char(1) not null,Telefono varchar(12))create table Colegio(IdColegio char(5)not null constraint pk_IdColegio Primary key,Nombre varchar(25) not null,Direccion varchar(25) not null,Tipo char(1) not null,IdUbigeo char(6)not null constraint fk_IdUbigeo references Ubigeo)

create table Alumno(IdAlumno char(5) not null constraint pk_IdAlumno Primary key,

Pag. 9

Page 10: Proyecto Matricula Final

Administración de Base de DatosNombre varchar(25) not null,Apellidos varchar(35)not null, FechaNac datetime not null,Telefono varchar(12),Sexo char(1) not null,E_Mail varchar(50) ,IdUbigeo char(6) CONSTRAINT fk_IdUbigeo2 REFERENCES Ubigeo)

create table Parentesco(Dni Char(8) not null constraint fk_Dni references Apoderado,IdAlumno char(5) not null constraint fk_IdAlumno references Alumno,Parentesco varchar(15) not null,constraint pk_Parentesco primary key(Dni,IdAlumno))

create table Promedio(IdAlumno char(5) not null constraint fk_Alumno2 references Alumno,IdCurso char(5)not null constraint fk_IdCurso references Curso,Promedio real,constraint pk_Promedio primary key(IdAlumno,IdCurso))

create table Horario(IdHorario char(5) not null constraint pk_IdHorario Primary key,Dia varchar(10) not null,HoraIni datetime not null,HoraFin datetime not null,IdAula char(5)constraint fk_IdAula references Aula,IdDocente char(5) not null Constraint fk_IdDocente References Docente,IdCurso char(5) not null constraint fk_IdCurso2 references Curso,NumAño char(4) not null Constraint fk_NumAño references AñoEscolar)

Create Table Asignacion(IdDocente char(5) not null Constraint fk_IdDocente2 References Docente,IdCurso char(5) not null Constraint fk_IdCurso3 references Curso,NumAño char(4) not null Constraint fk_NumAño2 references AñoEscolar,Seccion Char(1) Not Null,Constraint fk_Asigancion Primary Key (IdDocente,IdCurso,NumAño),)

Create Table Programacion

Pag. 10

Page 11: Proyecto Matricula Final

Administración de Base de Datos(IdProgramacion Char(5) not null constraint pk_IdProgra Primary key,Nivel Char(1) Not Null,Grado Char(1) Not Null,Seccion Char(1) Not Null,Turno Char(1) Not Null,NumAño char(4) not null Constraint fk_NumAño3 references AñoEscolar,CantMax numeric not null)

create table Matricula(NroMatricula char(10)not null constraint pk_NroMatricula Primary key,FechaMat datetime not null,HoraMat datetime not null,Nivel char(1) not null,Grado char(1)not null,Seccion char(1) not null,Turno char(1) not null,Situacion varchar(15)not null,IdAlumno char(5) not null Constraint fk_IdAlumno3 references Alumno,IdColegio char(5) Constraint fk_IdColegio references Colegio,Dni Char(8) not null constraint fk_Dni2 references Apoderado,NumAño char(4) not null Constraint fk_NumAño4 references AñoEscolar,Estado char(1) not null,Observación varchar(80) null)create table Notas(IdCurso char(5) not null constraint fk_IdCurso4 references Curso,IdAlumno char(5) not null Constraint fk_IdAlumno4 references Alumno,B1 float not null,B2 float not null,B3 float not null,B4 float not null,Promedio float not nullConstraint pk_Notas Primary Key (IdCurso,IdAlumno))

Llenado de tablas (Algunas):

insert into Aula values('AU001','Laboratorio',20)

insert into Docente values('D0001','Pedro','Siva Perez','Los Andes','215468','12457845','Historia Y Geografía','[email protected]','M')

insert into Curso values('C0001','Historia',2,1,'P','3')

Pag. 11

Page 12: Proyecto Matricula Final

Administración de Base de Datosinsert into AñoEscolar values('2004','07/04/2004','07/04/2004','A')

insert into Ubigeo values('00001','La Victoria','Chiclayo','Lambayeque')

insert into Alumno values('A0001','Elber','Sanchez Callao','22/08/1984','215469','M',default,'00001')

insert into Apoderado values('24578856','Irineo','Uriarte','M','los Andes 320','S','124578')

insert into Parentesco values('24578856','A0001','Ninguno')

insert into Horario values('H0006','Miercoles','11:00','13:00','AU003','D0007','C0003','2004')

insert into Notas values('C0001','A0001',15,10,10,15,12.5)

insert into Horario('00011','Lunes','12','3','AU001','D0001','C0001','2004')

Validaciones Integridad Referencial de algunos campos :

alter table Apoderadoadd constraint chk_sexoApo check(sexo like'[FM]')

alter table Alumnoadd constraint chk_sexo check(sexo like'[FM]')

alter table Docenteadd constraint chk_sexoDoc check(sexo like'[FM]')

alter table Apoderadoadd constraint chk_dniApo check(Dni like '[1-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),constraint u_dniApo unique(Dni)

--todavia(ver)--alter table Docente,Alumno--constraint chk_emailDoc check(E_Mail like '[a-zA-Z_1-9][@][a-zA-Z][.][a-z]'),

alter table Docenteadd constraint chk_dniDoc check(Dni like '[1-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),constraint u_dniDoc unique(Dni),constraint chk_TelDoc check(Telefono like '[1-9][0-9][0-9][0-9][0-9][0-9]' or Telefono like '[9][1-9][0-9][0-9][0-9][0-9][0-9]' or Telefono like '[0][0-9][0-9][-][0-9][0-9][0-9][0-9][0-9][0-9]')

alter table Alumno

Pag. 12

Page 13: Proyecto Matricula Final

Administración de Base de Datosadd constraint chk_Tel check(Telefono like '[1-9][0-9][0-9][0-9][0-9][0-9]' or Telefono like '[9][1-9][0-9][0-9][0-9][0-9][0-9]' or Telefono like '[0][0-9][0-9][-][0-9][0-9][0-9][0-9][0-9][0-9]')

alter table Alumnoadd constraint chk_IdA check(IdAlumno like '[A][0-9][0-9][0-9][0-9]')

alter table Aulaadd constraint chk_IdAU check(IdAula like '[A][U][0-9][0-9][0-9]')

alter table Docenteadd constraint chk_IdD check(IdDocente like '[D][0-9][0-9][0-9][0-9]')

alter table Apoderadoadd constraint chk_EstadoAP check(EstadoCiv like '[SCV]')

alter table AñoEscolaradd constraint chk_IdNumA check(NumAño like '[2][0-9][0-9][0-9]')

alter table Programacionadd constraint chk_PNivel check(Nivel like '[PS]'),constraint chk_PSecc check(Seccion like '[A-Z]'),constraint chk_PTurn check(Turno like '[MT]'),constraint chk_PGrado check(Grado like '[1-6]'),constraint chk_PCantM check(CantMax>0 and CantMax<=40)

alter table Cursoadd constraint chk_IdC check(IdCurso like '[C][0-9][0-9][0-9][0-9]'), constraint chk_Cht check(HorasTeoricas>=0),constraint chk_Chp check(HorasPracticas>=0),constraint chk_CGrado check(Grado like '[1-6]'),constraint chk_CNivel check(Nivel like '[PS]') alter table Notasadd constraint chk_NB1 check(B1>=0 and B1<=20),constraint chk_NB2 check(B2>=0 and B2<=20),constraint chk_NB3 check(B3>=0 and B3<=20),constraint chk_NB4 check(B4>=0 and B4<=20),constraint chk_NProm check(Promedio>=0 and Promedio<=20)

alter table Notasadd constraint df_NotasB1 default 0for B1

alter table Notasadd constraint df_NotasB2 default 0for B2

Pag. 13

Page 14: Proyecto Matricula Final

Administración de Base de Datos

alter table Notasadd constraint df_NotasB3 default 0for B3

alter table Notasadd constraint df_NotasB4 default 0for B4

alter table Promedioadd constraint df_NotasPProm default 0for Promedio

alter table Cursoadd constraint df_Ht default 0for HorasTeoricas

alter table Cursoadd constraint df_Hp default 0for HorasPracticas

6. Seguridad y Consultas de Base de Datos:

Consultas :1. Listado de alumnos matriculados

select m.idalumno,nombre,apellidos from matricula m,alumno a where a.idalumno=m.idalumno

2. Listado de horario por el alumnos de apellido 'perez espejo'select cu.nombrecurso, h.horaini,h.horafin,idaula,dia,d.Apellidos+','+d.nombre as Docentefrom matricula m, alumno al, añoescolar ae,asignacion asi,curso cu, horario h,docente dwhere al.idalumno=m.idalumno and m.numaño=ae.numaño and asi.numaño=ae.numaño andasi.idcurso=cu.idcurso and asi.iddocente=d.iddocente and m.seccion=asi.seccion and

Pag. 14

Page 15: Proyecto Matricula Final

Administración de Base de Datosh.iddocente=d.iddocente and asi.numaño=h.numaño and asi.idcurso=asi.idcurso andm.grado=cu.grado and m.nivel=cu.niveland al.apellidos='perez espejo'

3. Listar los alumnos que provienen de otro colegio

select apellidos+','+a.nombre as 'Alumno',c.Nombre as Colegiofrom colegio c,matricula m,alumno awhere estado='T' and m.idcolegio=c.idcolegio and a.idalumno=m.idalumno

4. Listar numrode alumnos matriculados por grado, seccion, turno y nivel del presente año

select p.grado,p.seccion,p.turno,p.nivel, count(idalumno) as NumMatriculados,Cantmaxfrom matricula m,añoescolar ae,programacion pwhere m.numaño=ae.numaño and p.grado=m.grado and p.seccion=m.seccion and p.turno=m.turno and p.nivel=m.nivelgroup by p.grado,p.seccion,p.turno,p.nivel,Cantmax

5. Listar a los alumnos y sus apoderados y su parentesco que provengan de la provicia 'Chiclayo'

select a.Apellidos+','+a.nombre as Alumno, ap.apellidos+','+ap.nombre as Apoderado, parentescofrom alumno a, parentesco p,ubigeo u,apoderado apwhere a.idubigeo=u.idubigeo and a.idalumno=p.idalumno and p.dni=ap.dni and provincia='chiclayo'

Pag. 15

Page 16: Proyecto Matricula Final

Administración de Base de Datos

6. Listar la notas del alumno Sanchez Callao,Elber

select n.idcurso,nombrecurso,b1,b2,b3,b4,promediofrom notas n, alumno a, curso cwhere n.idcurso=c.idcurso and n.idalumno=a.idalumno

Procedimientos Almacenado :

1. Procedimiento almacenado que liste a los profesores de acuerdo al nombre de un curso xcreate procedure up_NCursoAsig@ncurso varchar(20)as select c.nombrecurso,a.iddocente,d.apellidos+','+d.nombre as docente, NumAño,c.Grado,a.seccion from asignacion a, curso c,docente d where a.iddocente=d.iddocente and a.idcurso=c.idcurso and Nombrecurso=@ncurso

up_NCursoAsig 'Historia'

2. Procedimiento almacenado que liste a los alumnos matriculado deacuerdo un nivel,grado,seccion.create procedure up_ListAlumMat@nivel char(1),@grado char(1),@turno char(1)asselect NroMatricula,fechamat,nivel,grado,turno,m.idalumno,a.apellidos+','+a.nombre as Alumnos from matricula m, alumno a where m.idalumno=a.idalumno and nivel=@nivel and grado=@grado and turno=@turno

up_ListAlumMat 'P','1','M'

3. Procedimiento almacenado que liste a los alumnos por sexo ingresadocreate procedure up_Alumnosexo@sexo char(1)

Pag. 16

Page 17: Proyecto Matricula Final

Administración de Base de Datosas select * from alumno where sexo=@sexo

up_Alumnosexo 'M'

4. Procedimiento almacenado que liste a los docentes por especialidad ingresada

create procedure up_DocenteEspe@Especialidad varchar(50)as select * from Docente where especialidad=@Especialidad

up_DocenteEspe 'Computacion'

5. Procedimiento almacenado que liste las asignaciones del acuerdo al año ingresado

create procedure up_AsigNAño@numaño char(4)as select Nombrecurso,nombre+','+apellidos as Docente, grado,seccion from Docente d,curso c,asignacion a where a.iddocente=d.iddocente and a.idcurso=c.idcurso and NumAño=@numaño

up_AsigNAño '2005'

Vistas :1.create view v_listaMatriculadosasselect nroMatricula,fechamat,a.apellidos+','+a.nombre as Alumno,estado from matricula m,alumno awhere m.idalumno=a.idalumno

select * from v_listaMatriculados where estado='T'

2.create view v_listaDocentesasselect iddocente,apellidos,nombre,especialidadfrom docente

select * from v_listaDocentes where especialidad='Computacion'

3.create view v_listaCursosas

Pag. 17

Page 18: Proyecto Matricula Final

Administración de Base de Datosselect idcurso,nombrecurso,horasteoricas,horaspracticas,nivel,gradofrom curso

select * from v_listaCursoswhere nivel='P' and grado='1'

Pag. 18