Está en la página 1de 17

Administracin de Base de Datos

UNIVERSIDAD CATLICA

Santo Toribio de
Mogrovejo
Trabajo :

Base de datos de Matricula


Integrantes :

Gonzales Gonzales Juan Alberto Jos N. Delgado Gonzales Walter Tarrillo Mondragn
Carrera :

Ingeniera de Sistema y Computacin


Ciclo :

VII
Asignatura :

Administracin de Base Datos


Docente :

Ing. Jos Castillo Zumaran

Chiclayo, Julio del 2005 Pag. 1

Administracin de Base de Datos

Pag. 2

Administracin de Base de Datos

1. Modelo Entidad - Relacion

Pag. 3

Administracin de Base de Datos

2. Modelo Lgico

Pag. 4

Administracin de Base de Datos

3. Modelo Fsico de BD

Pag. 5

Administracin de Base de Datos

4. Modelo Fsico de BD en SQL Server

Pag. 6

Administracin de Base de Datos 5. Implementacin de la Base de Datos:

Creacin 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)

Creacin 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

Administracin 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 AoEscolar ( NumAo char(4) not null constraint pk_NumAo Primary key, FechaIni datetime not null, FechaFin datetime not null, Estado char(1) not null ) drop table AoEscolar 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

Administracin 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, NumAo char(4) not null Constraint fk_NumAo references AoEscolar ) Create Table Asignacion ( IdDocente char(5) not null Constraint fk_IdDocente2 References Docente, IdCurso char(5) not null Constraint fk_IdCurso3 references Curso, NumAo char(4) not null Constraint fk_NumAo2 references AoEscolar, Seccion Char(1) Not Null, Constraint fk_Asigancion Primary Key (IdDocente,IdCurso,NumAo), ) Create Table Programacion

Pag. 9

Administracin 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, NumAo char(4) not null Constraint fk_NumAo3 references AoEscolar, 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, NumAo char(4) not null Constraint fk_NumAo4 references AoEscolar, Estado char(1) not null, Observacin 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 Geografa','PPerez@hotmail.com','M') insert into Curso values('C0001','Historia',2,1,'P','3')

Pag. 10

Administracin de Base de Datos


insert into AoEscolar 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

Administracin 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 AoEscolar add constraint chk_IdNumA check(NumAo 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

Administracin 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, aoescolar ae,asignacion asi,curso cu, horario h,docente d where al.idalumno=m.idalumno and m.numao=ae.numao and asi.numao=ae.numao and asi.idcurso=cu.idcurso and asi.iddocente=d.iddocente and m.seccion=asi.seccion and

Pag. 13

Administracin de Base de Datos


h.iddocente=d.iddocente and asi.numao=h.numao 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 ao select p.grado,p.seccion,p.turno,p.nivel, count(idalumno) as NumMatriculados,Cantmax from matricula m,aoescolar ae,programacion p where m.numao=ae.numao 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

Administracin 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, NumAo,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

Administracin 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 ao ingresado create procedure up_AsigNAo @numao 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 NumAo=@numao up_AsigNAo '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

Administracin 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

También podría gustarte