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

Chiclayo, Julio del 2005 Pag. 1

Administración de Base de Datos

Pag. 2

Administración de Base de Datos

1. Modelo Entidad - Relacion

Pag. 3

Administración de Base de Datos

2. Modelo Lógico

Pag. 4

Administración de Base de Datos

3. Modelo Físico de BD

Pag. 5

Administración de Base de Datos

4. Modelo Físico de BD en SQL Server

Pag. 6

Administración de Base de Datos 5. Implementación de la Base de Datos:

Creación de la Base de datos
Use Master GO Create Database COLEGIO On 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. 7

Administración de Base de Datos
create 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ñoEscolar create 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. 8

Administración de Base de Datos
Nombre 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. 9

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 null Constraint 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','PPerez@hotmail.com','M') insert into Curso values('C0001','Historia',2,1,'P','3')

Pag. 10

Administración de Base de Datos
insert 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 320','S','124578') values('24578856','Irineo','Uriarte','M','los Andes

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 Apoderado add constraint chk_sexoApo check(sexo like'[FM]') alter table Alumno add constraint chk_sexo check(sexo like'[FM]') alter table Docente add constraint chk_sexoDoc check(sexo like'[FM]') alter table Apoderado add constraint chk_dniApo check(Dni like '[1-9][0-9][0-9][0-9][0-9][0-9][09][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][.][az]'), alter table Docente add constraint chk_dniDoc check(Dni like '[1-9][0-9][0-9][0-9][0-9][0-9][09][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. 11

Administración de Base de Datos
add 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 Alumno add constraint chk_IdA check(IdAlumno like '[A][0-9][0-9][0-9][0-9]') alter table Aula add constraint chk_IdAU check(IdAula like '[A][U][0-9][0-9][0-9]') alter table Docente add constraint chk_IdD check(IdDocente like '[D][0-9][0-9][0-9][0-9]') alter table Apoderado add constraint chk_EstadoAP check(EstadoCiv like '[SCV]') alter table AñoEscolar add constraint chk_IdNumA check(NumAño like '[2][0-9][0-9][0-9]') alter table Programacion add 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 Curso add 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 Notas add 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 Notas add constraint df_NotasB1 default 0 for B1 alter table Notas add constraint df_NotasB2 default 0 for B2

Pag. 12

Administración de Base de Datos
alter table Notas add constraint df_NotasB3 default 0 for B3 alter table Notas add constraint df_NotasB4 default 0 for B4 alter table Promedio add constraint df_NotasPProm default 0 for Promedio alter table Curso add constraint df_Ht default 0 for HorasTeoricas alter table Curso add constraint df_Hp default 0 for 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 Docente from matricula m, alumno al, añoescolar ae,asignacion asi,curso cu, horario h,docente d where al.idalumno=m.idalumno and m.numaño=ae.numaño and asi.numaño=ae.numaño and asi.idcurso=cu.idcurso and asi.iddocente=d.iddocente and m.seccion=asi.seccion and

Pag. 13

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

3. Listar los alumnos que provienen de otro colegio select apellidos+','+a.nombre as 'Alumno',c.Nombre as Colegio from colegio c,matricula m,alumno a where 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,Cantmax from matricula m,añoescolar ae,programacion p where 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.nivel group 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, parentesco from alumno a, parentesco p,ubigeo u,apoderado ap where a.idubigeo=u.idubigeo and a.idalumno=p.idalumno and p.dni=ap.dni and provincia='chiclayo'

Pag. 14

Administración de Base de Datos

6. Listar la notas del alumno Sanchez Callao,Elber select n.idcurso,nombrecurso,b1,b2,b3,b4,promedio from notas n, alumno a, curso c where 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 x create 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) as select NroMatricula,fechamat,nivel,grado,turno,m.idalumno,a.apellidos+','+a.n ombre 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 ingresado create procedure up_Alumnosexo @sexo char(1)

Pag. 15

Administración de Base de Datos
as 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_listaMatriculados as select nroMatricula,fechamat,a.apellidos+','+a.nombre as Alumno,estado from matricula m,alumno a where m.idalumno=a.idalumno select * from v_listaMatriculados where estado='T' 2. create view v_listaDocentes as select iddocente,apellidos,nombre,especialidad from docente select * from v_listaDocentes where especialidad='Computacion' 3. create view v_listaCursos as

Pag. 16

Administración de Base de Datos
select idcurso,nombrecurso,horasteoricas,horaspracticas,nivel,grado from curso select * from v_listaCursos where nivel='P' and grado='1'

Pag. 17

Sign up to vote on this title
UsefulNot useful