Revision Doc

80
INTRODUCCIÓN Hoy en día llevar el control de la información que es generada en es necesaria ya que se automatiza todos los procesos realizados e ello surge la idea de crear una base de datos de Control de Calif automatizar los procesos en el área de servicios escolare del Instituto Tecnológico Pinotepa ubicado en la Av. Tecnológico s/n. Prolongación 10ª Nort Para la realización de esta base de datos se realizaron algunos métodos tales como entrevistas, encuesta, cuestionario a los profesores, alumnos y p recopilar la información necesaria y así ser más precisos en la indagación d problemática, evitando la pérdida de tiempo y obteniendo resultad En el transcurso del proceso de la base de datos se utilizó la he 2010, esta nos permite realizar modificaciones a la base de datos diseños, de esta manera logramos que la base de datos se visualiz lógica, realizando los modelos entidad-relación y el modelo relac Después del diseño de los diferentes modelos, elegimos un gestor realizar inserciones y consultas, el cual por su facilidad de man optar por Mysql ya que trabaja en diferentes plataformas. Esta base de datos se normalizo para evitar la redundancia de los actualización en las tablas y proteger la integridad de esos dato A la base de datos se le realizaron varias pruebas y correcciones momento de realizar las inserciones y consultas. Al mismo tiempo se realizaron consultas a la base de da manipulación de datos DML, se utilizaron disparadores (triggers), procedimientos almacenados, vistas con la finalidad de automatizar la administra Página 1

Transcript of Revision Doc

INTRODUCCINHoy en da llevar el control de la informacin que es generada en una empresa o institucin es necesaria ya que se automatiza todos los procesos realizados en una determinada rea por ello surge la idea de crear una base de datos de Control de Calificaciones, con la finalidad de automatizar los procesos en el rea de servicios escolares del Instituto Tecnolgico de Pinotepa ubicado en la Av. Tecnolgico s/n. Prolongacin 10 Norte, Col. El Dispensario. Para la realizacin de esta base de datos se realizaron algunos mtodos tales como entrevistas, encuesta, cuestionario a los profesores, alumnos y personal administrativo para recopilar la informacin necesaria y as ser ms precisos en la indagacin de dicha problemtica, evitando la prdida de tiempo y obteniendo resultados lgicos. En el transcurso del proceso de la base de datos se utiliz la herramienta case Microsoft Visio 2010, esta nos permite realizar modificaciones a la base de datos mejorando la calidad de los diseos, de esta manera logramos que la base de datos se visualizara de manera fsica y lgica, realizando los modelos entidad-relacin y el modelo relacional. Despus del diseo de los diferentes modelos, elegimos un gestor de base de datos para poder realizar inserciones y consultas, el cual por su facilidad de manejo y licencia GPL decimos optar por Mysql ya que trabaja en diferentes plataformas. Esta base de datos se normalizo para evitar la redundancia de los datos, evitar problemas de actualizacin en las tablas y proteger la integridad de esos datos. A la base de datos se le realizaron varias pruebas y correcciones para que funcionara al momento de realizar las inserciones y consultas. Al mismo tiempo se realizaron consultas a la base de datos a travs del lenguaje de manipulacin de datos DML, se utilizaron disparadores (triggers), procedimientos almacenados, vistas con la finalidad de automatizar la administracin de la base de datos.

Pgina 1

Con este proyecto se logro ahorrar tiempo en las tareas realizadas en el rea de servicios escolares, dar un buen servicio a la comunidad estudiantil y estar a la vanguardia de la tecnologa informtica.

Pgina 2

JUSTIFICACINEl proyecto se origina por necesidad del Departamento de Servicios Escolares, por el motivo de tener una Base de Datos normalizada que lleve la administracin de los alumnos y sus calificaciones, de una forma distribuida y segura para el buen control de lascalificaciones. La base de datos beneficiara a los alumnos, profesores y sobre todo al administrador o usuarios que la manipulan en el Departamento de Servicios Escolares.

PLANTEAMIENTO DEL PROBLEMA

Pgina 3

En el Instituto Tecnolgico de Pinotepa, en el rea de Servicios Escolares, se carece de una Base de datos que permita llevar el control de calificaciones einformacin de los alumnos. Por lo cual se requiere de una base de datos totalmente normalizada y que se encuentre de una forma distribuida para que los usuarios puedan accesar y realizar las operaciones como son inserciones, actualizaciones, seleccin y eliminacin de informacin que requiera y a la que pueda tener acceso.

OBJETIVO

Pgina 4

Crear una base de datos para el Departamento de Servicios Escolares del Instituto Tecnolgico de Pinotepa, la cual nos permita administrar y controlar lainformacin de los alumnos de forma distribuida con la seguridad necesaria. Que los usuarios puedan realizar todas sus operaciones que requieran de acuerdo a sus permisos que se le otorgue dentro de la base de datos.

1.- MARCO TEORICOPgina 5

1.1.- MARCO REFERENCIALEl Instituto Tecnolgico de Pinotepa antes Instituto Tecnolgico Agropecuario No. 13, nace en septiembre de 1992, estando ubicado en la poblacin de San Jos Estancia Grande, Oax., en el Km. 26.5 de la carretera Pinotepa Nacional, Oaxaca Acapulco Guerrero, ofreciendo dos licenciaturas: Ingeniera en agronoma y Licenciatura en informtica. Para 1997 ( Agosto Diciembre ) el Instituto Tecnolgico de Pinotepa cuenta con 4 carreras: Ingeniera en agronoma, Licenciatura en informtica, Ingeniera industrial y Licenciatura en administracin, alcanzando una matrculas de 314 alumnos. En 1998 (Agosto Diciembre), ofreciendo las mismas carreras la matrcula fue de 415 alumnos; es decir, la matrcula se increment 32.16%. En 1999 (Agosto Diciembre) la matrcula fue de 406 alumnos, es decir disminuy 2.22% con respecto al ao anterior. En el ao 2000, se autoriza oficialmente la construccin de una Unidad Acadmica Departamental con ubicacin en la ciudad de Pinotepa Nacional, Oax. Se inician actividades acadmicas en las instalaciones de la Escuela Secundaria Federal No. 2 Jos A. Baos Aguirre en la ciudad de Pinotepa Nacional, complementando este ao tan importante en la vida institucional del tecnolgico. Se ofertan dos carreras ms: Ingeniera en sistemas computacionales y Licenciatura en contadura, haciendo un total de seis carreras y propiciando con ello un incremento notable en la poblacin estudiantil, alcanzando los 462 alumnos inscritos, es decir, 13.79% con respecto a 1999. Hoy en el ao 2011 el Instituto Tecnolgico de Pinotepa Nacional, cuenta con las seis carreras de Ingeniera en sistemas computacionales, Ingeniera en informtica, ingeniera industrial, ingeniera en agronoma, ingeniera en gestin empresarial y contador publico.

Pgina 6

Debido al gran crecimiento estudiantil que ha tenido el Instituto Tecnolgico de Pinotepa Nacional, es por ello que nace la necesidad en el departamento de control escolar realizar una base de datos normalizada y distribuida, para que los usuarios tanto como administradores, alumnos y profesores puedan tener acceso a dicha base de datos y as realizar sus transacciones requeridas.

1.2.- UBICACIN GEOGRAFICA

FIG. 1.1- Mapa ubicacin del Instituto tecnolgico de Pinotepa

1.3.- PRINCIPALES FUNCIONES QUE REALIZAN EN EL DEPARTAMENTO DE SERVICIOS ESCOLARES

Proporciona los Requisitos para la Inscripcin. Otorga fichas de nuevo ingreso.Pgina 7

Recepciona documentos para las inscripciones. Impresin de cargas acadmicas, constancias y boletas de calificaciones de exmenes

globales, especiales, curso de verano y curso normal.

Emisin de credenciales oficiales. Trmite para afiliacin al seguro facultativo ante el IMSS. Da seguimiento a las correcciones de calificacin. Correccin de datos personales en el Sistema. Trmite de certificados, titulo y cdula profesional.

Nuestro proyecto va consistir en el control de calificaciones de los alumnos inscritos en Instituto Tecnolgico de Pinotepa.

1.4.- ANTECEDENTES HISTORICOS

El Instituto Tecnolgico de Pinotepa antes Instituto Tecnolgico Agropecuario No. 13, nace en septiembre de 1992, estando ubicado en la poblacin de San Jos Estancia Grande, Oax;

Pgina 8

en el Km. 26.5 de la carretera Pinotepa Nacional, Oaxaca Acapulco Guerrero, ofreciendo dos licenciaturas: Ingeniera en agronoma y Licenciatura en informtica.

Para 1997 (Agosto Diciembre) el Instituto Tecnolgico de Pinotepa cuenta con 4 carreras: Ingeniera en agronoma, Licenciatura en informtica, Ingeniera industrial y Licenciatura en administracin, alcanzando una matrcula de 314 alumnos. En 1998 (Agosto Diciembre), ofreciendo las mismas carreras la matrcula fue de 415 alumnos; es decir, la matrcula se increment 32.16%. En 1999 (Agosto Diciembre) la matrcula fue de 406 alumnos, es decir disminuy 2.22% con respecto al ao anterior.

En el ao 2000, se autoriza oficialmente la construccin de una Unidad Acadmica Departamental con ubicacin en la ciudad de Pinotepa Nacional, Oax. Se inician actividades acadmicas en las instalaciones de la Escuela Secundaria Federal No. 2 Jos A. Baos Aguirre en la ciudad de Pinotepa Nacional, complementando este ao tan importante en la vida institucional del tecnolgico. Se ofertan dos carreras ms: Ingeniera en sistemas computacionales y Licenciatura en contadura, haciendo un total de seis carreras y propiciando con ello un incremento notable en la poblacin estudiantil, alcanzando los 462 alumnos inscritos, es decir, 13.79% con respecto a 1999. En el 2001 la matrcula se incrementa a 582 alumnos distribuidos en las seis carreras, el aumento de la matricula con respecto al ao 2000 fue del 26%. Siendo la Licenciatura en informtica la de mayor demanda representando el 40.5% de la poblacin estudiantil, la Licenciatura en administracin representa el 22.5%, Ingeniera en sistemas computacionales el 13.79%, Licenciatura en contadura el 8.77%, Ingeniera industrial el 7.22% y Ingeniera en Sistemas computacionales. Actualmente se ofertan las siguientes carreras: Ingeniera en sistemas computacionales Ingeniera en informticaPgina 9

Ingeniera en gestin empresarial Ingeniera en industrial Ingeniera en agronoma Contador pblico

1.5.- VISINSer una institucin de educacin superior tecnolgica de vanguardia que ofrezca y garantice servicios educativos de calidad, equidad y pertinencia en licenciatura y posgrado, utilizandoPgina 10

sistemas y procesos acadmicos - administrativos innovadores y dinmicos que coadyuven al logro de un crecimiento regional, paralelo al desarrollo estatal y nacional, sustentando en una cultura de mejora continua.

1.6.- MISIN

Ofrecer educacin superior tecnolgica de calidad en la formacin de profesionistas eficientes y capaces de satisfacer la demanda de desarrollo cientfico-tecnolgico, social, econmico y humano del sector productivo y de servicios que requiere la regin de la Costa Chica, el estado y el pas. Para lograr lo anterior, el Instituto Tecnolgico de Pinotepa asume los siguientes valores que guiarn el desarrollo de las actividades cotidianas de los catedrticos, funcionarios y dems personal.

1.7.- VALORES

-La calidadPgina 11

-El trabajo en equipo -El espritu de servicio -El alto desempeo -El ser humano -El liderazgo

2.- PROBLEMTICA A RESOLVER

Pgina 12

El Instituto Tecnolgico de Pinotepa cuenta con un espacio dedicado al rea administrativa, en donde se llevan a cabo las actividades de dicha ndole, especialmente en el rea de servicios escolares, se presento un problema ya que no contaban con una base de datos para poder automatizar las actividades realizadas, por lo cual se requiere una base de datos segura y que puedan ahorrar tiempo y ofrecer un buen servicio a la comunidad estudiantil. Esta base de datos deber estar distribuida para que los alumnos, docentes, y personal administrativo, puedan accesar a la base de datos y realizar sus respectivas operaciones de acuerdo a los privilegios que se les otorgar.

2.1.- ALCANCES Y LIMITACIONES

Pgina 13

La base de datos se desarrollo mediante el transcurso de 3 meses, los alcances que tuvo el sistema son los siguientes: 1.- Creacin de una base de datos automatizando los procesos en el instituto tecnolgico de Pinotepa especialmente en el rea de servicios escolares. 1.- Registrar las Licenciaturas que oferta la institucin. 2.- Llevar el registro de los Docentes que laboran en la institucin. 3.- Controlar las calificaciones de cada alumno inscrito. 4.- Generas vistas de alumnos, docentes. 5.- Registrar las materias de cada Licenciatura e ingenieras. 6.- Registrar los semestres. 7.- Dar privilegios a los usuarios: Alumnos, docentes y administrativo de acuerdo a sus privilegios. 8.- Controlar, Administrar y distribuir la base de datos. 9.- Elaboracin del Modelo entidad-relacin 10.- Construccin del Modelo Relacional 11.- Normalizar la base datos para un buen funcionamiento.

2.2.-LIMITACIONES:Pgina 14

Algunas de las limitaciones que presenta la base de datos son las siguientes: 1.- Este proyecto se realizo en el instituto tecnolgico de Pinotepa especficamente en el rea de servicios escolares. 2.- La base de datos solo podr realizar las siguientes operaciones: agregar, borrar y actualizar los datos. 3.- Los usuarios de acuerdo asus privilegios podrn tener acceso a la base de datos. 4.- Solo el administrador podr tener acceso para realizar respaldos y recuperacin de la base de datos.

2.2.1.- OBJETIVOS GENERAL Y ESPECIFICOSPgina 15

Objetivo general: Optimizar y administrar una base de datos de control escolar en el rea de servicios escolares del instituto tecnolgico de Pinotepa.

Objetivo Especifico: 1.-Se registraron las materias, docentes, alumnos, semestre, carrera, calificaciones. 2.-Se realizaron los triggers y procedimientos almacenados para un mayor rendimiento de la base de datos. 3-Se otorgaron privilegios a los usuarios de acuerdo al tipo.

2.2.2.- MARCO TEORICO Y METODOLOGAA continuacin se presenta la metodologa que se utilizo en la elaboracin de esta base de datos.Pgina 16

2.2.3.- DICCIONARIO DE DATOSUn diccionario de datos Contiene la informacin referente a la estructura de la base de datos. Objetivo: Dar precisin sobre los datos que se manejan en un sistema, evitando as malas interpretaciones o ambigedades.

2.2.4.- HERRAMIENTAS CASESIGLAS CASE: Compute, Aided Assisted Automated, Software Systems, Engineering CASE es tambin definido como el Conjunto de mtodos, utilidades y tcnicas que facilitan el mejoramiento del ciclo de vida del desarrollo de sistemas de informacin, completamente o en alguna de sus fases. Estas herramientas provee muchos beneficios en todas las etapas del proceso de desarrollo de software, alguna de ellas son: Verificar el uso de todos los elementos en el sistema diseado. Automatizar el dibujo de diagramas. Ayudar en la documentacin del sistema. Ayudar en la creacin de las relaciones en la base de datos Generar estructura de cdigo.

2.3.- MODELO ENTIDAD RELACIN2.3.1.- MODELO ENTIDAD-RELACIN

Pgina 17

El modelo entidad-relacin es el modelo conceptual ms utilizado para el diseo conceptual de bases de datos. Fue introducido por Peter Chen en 1976. El modelo entidad-relacin est formado por un conjunto de conceptos que permiten describir la realidad mediante un conjunto de representaciones grficas y lingsticas. . Estos modelos expresan entidades relevantes para un sistema de informacin as como sus interrelaciones y propiedades. Los diagramas entidad relacin estn compuestos por los siguientes objetos.

2.3.2.- MODELO RELACIONAL

En este modelo se representan los datos y las relaciones entre estos, a travs de una coleccin de tablas, en las cuales los renglones (tuplas) equivalen a los cada uno de los registros que contendr la base de datos y las columnas corresponden a las caractersticas (atributos) de cada registro localizado en la tupla.

2.4.- LOS GESTORES DE BASE DE DATOS

Pgina 18

Los sistemas de gestin de bases de datos (en inglsDataBase Management System, abreviado DBMS) son un tipo de software muy especfico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan, lo cual aseguran la integridad y seguridad de la informacin almacenada. Se compone de un lenguaje de definicin de datos, de un lenguaje de manipulacin de datos y de un lenguaje de consulta. DDL (Data Definition Languaje - Lenguaje De Definicin de Datos). Las sentencias DDL son aquellas utilizadas para la creacin de una base de datos y todos sus componentes: tablas, ndices, relaciones, disparadores(triggers), procedimientos

almacenados, etc. DDL (DataManipulacinLenguaje - Lenguaje DeManipulacin De Datos). Se refiere a los comandos que permiten a un usuario manipular los datos en un repositorio, es decir, aadir, consultar, borrar o actualizar.

2.4.1.- SENTENCIAS DML

Las sentencias DML son aquellas utilizadas para insertar, borrar, modificar y consultar los datos en una base de datos. Las sentencias DML son las siguientes: SELECT: Recupera informacin de la base de datos y permite la seleccin de una o ms filas y columnas de una o muchas tablas. INSERT: La sentencias INSERT para agregar registros a una tabla. UPDATE: Esta sentencia nos permite modificar la informacin de las tablas. DELETE: Las instrucciones DELETE permiten eliminar una o ms filas de una tabla.

2.4.2.- SQLPgina 19

El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por el motor de base de datos de Microsoft Jet. Se utiliza para crear objetos, manipulacin de bases de datos y para crear consultas adems de actualizar las BD. SQL esta compuesto por comandos. Clausulas, operadores y funciones de agregado. Es un lenguaje de definicin de datos (LDD), un lenguaje de definicin de vistas (LDV) y lenguaje de manipulacin de datos (LMD). El propsito general de los gestores de base de datos es el de manejar de maneraclara,sencilla y ordenada un conjunto de datos proporcionado por el usuario. Los sistemas gestores de bases de datos es una aplicacin que permite a losusuarios definir, crear y mantener la base de datos y proporciona un accesocontrolado. Los gestores de bases de datos deben proporcionar los siguientes servicios a losusuarios: Creacin y definicin de la base de datos Manipulacin de los datos almacenados Acceso controlado a los datos mediante un mecanismo de seguridad Mantener Integridad y consistencia de los datos Acceso compartido a la base de datos Mecanismos de copias de respaldo y recuperacin

Pgina 20

2.4.3.- MySQL

Es un sistema de gestin de bases de datosrelacional, multihilo y multiusuario con ms de seis millones de instalaciones. Mysql es un servidor multiprocesos. Multiproceso significa que cada vez que unusuario establece una conexin con el servidor, el programa servidor crea un subproceso para manejar la solicitud del cliente. Esto hace al servidor extremadamente rpido. En efecto, el servidor proporciona su propio subproceso a cada cliente que se conecta a Mysql.

2.4.4.- PRINCIPALES CARACTERISTICAS DE MYSQL

Escrito en C y en C++ Probado con un amplio rango de compiladores diferentes Funciona en diferentes plataformas. Usa GNU Automake, Autoconf, y Libtool para portabilidad. APIs disponibles para C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, y Tcl. Uso completo de multi-threaded mediante threads del kernel. Pueden usarse fcilmente multiple CPUs si estn disponibles. Proporciona sistemas de almacenamiento transaccionales y no transaccionales. Usa tablas en disco B-tree (MyISAM) muy rpidas con compresin de ndice. Relativamente sencillo de aadir otro sistema de almacenamiento. Esto es til si desea aadir una interfaz SQL para una base de datos propia. Un sistema de reserva de memoria muy rpido basado en threads.Pgina 21

Joins muy rpidos usando un multi-join de un paso optimizado. Tablas hash en memoria, que son usadas como tablas temporales. Las funciones SQL estn implementadas usando una librera altamente optimizada y deben ser tan rpidas como sea posible. Normalmente no hay reserva de memoria tras toda la inicializacin para consultas. El cdigo MySQL se prueba con Purify (un detector de memoria perdida comercial) as como con Valgrind, una herramienta GPL El servidor est disponible como un programa separado para usar en un entorno de red cliente/servidor. Tambin est disponible como biblioteca y puede ser incrustado (linkado) en aplicaciones autnomas. Dichas aplicaciones pueden usarse por s mismas o en entornos donde no hay red disponible.. El costo, este es un punto muy importante para los usuarios de Mysql ya que la Versin completa no tiene costo alguno, puede ser descargado de la pgina oficial, Mysql es un gestor de cdigo abierto (open source) y licencia pblica con un almacenamiento de informacin de hasta 4 GB, ya que si se requiere de una licencia de la copia que hemos obtenido tiene un cierto costo pero accesible es licencia GPL y Comercial a diferencia de otros gestores, que son muy costosos.

Pgina 22

2.4.5.- PRIVILEGIOSPara otorgar privilegios a los diferentes tipos de usuarios se utiliza la siguiente lnea de cdigo. La funcin GRANT es la que se utilizar para conceder los privilegios. GRANT privilegios ON base/tabla TO usuario[IDENTIFIED BY contrasea] [WITH GRANT OPTION]; GRANT privilegios: A continuacin de GRANT, se incluye todos los privilegios que queramos conceder a este usuario, separados por comas. ON base/tabla: a continuacin de ON escribiremos la base de datos o tabla sobre la que tendr vigor el privilegio. Si queremos extender este privilegio a todas las bases de datos presentes en el servidor lo indicaremos con *.*. TO usuario [IDENTIFIED BY contrasea]: usuario indica el nombre que deber introducir para poder acceder al servidor y la contrasea, evidentemente la contrasea que necesitara para acceder al servidor MYSQL.

Pgina 23

2.5.- HERRAMIENTAS CASELas herramientas CASE (Computer Aided Software Engineering, Ingeniera de Software Asistida por Computadora) son diversas aplicaciones informticas destinadas a aumentar la productividad en el desarrollo de software reduciendo el coste de las mismas en trminos de tiempo y de dinero. Estas herramientas nos pueden ayudar en todos los aspectos del ciclo de vida de desarrollo del software en tareas como el proceso de realizar un diseo del proyecto, clculo de costes, implementacin de parte del cdigo automticamente con el diseo dado, compilacin automtica, documentacin o deteccin de errores entre otras.

Objetivos 1. Mejorar la productividad en el desarrollo y mantenimiento del software. 2. Aumentar la calidad del software. 3. Reducir el tiempo y coste de desarrollo y mantenimiento de los sistemas informticos. 4. Mejorar la planificacin de un proyecto 5. Aumentar la biblioteca de conocimiento informtico de una empresa ayudando a la bsqueda de soluciones para los requisitos.

6. Automatizar el desarrollo del software, la documentacin, la generacin de cdigo, las pruebas de errores y la gestin del proyecto.

Pgina 24

7. Ayuda a la reutilizacin del software, portabilidad y estandarizacin de la documentacin 8. Gestin global en todas las fases de desarrollo de software con una misma herramienta. 9. Facilitar el uso de las distintas metodologas propias de la ingeniera del software. 10. Facilita la realizacin de prototipos y desarrollo conjuntos de aplicaciones.

2.5.1.- NORMALIZACIN DE BASE DE DATOS

Pgina 25

La normalizacin es el proceso mediante el cual se transforman datos complejos a un conjunto de estructuras de datos ms pequeas, que adems de ser ms simples y ms estables, son ms fciles de mantener. Tambin se puede entender la normalizacin como una serie de reglas que sirven para ayudar a los diseadores de bases de datos a desarrollar un esquema que minimice los problemas de lgica. Cada regla est basada en la que le antecede. La normalizacin se adopt porque el viejo estilo de poner todos los datos en un solo lugar, como un archivo o una tabla de la base de datos, era ineficiente y conduca a errores de lgica cuando se trataban de manipular los datos. Otra ventaja de la normalizacin de base de datos es el consumo de espacio. Una base de datos normalizada ocupa menos espacio en disco que una no normalizada. Hay menos repeticin de datos, lo que tiene como consecuencia un mucho menor uso de espacio en disco. El proceso de normalizacin tiene un nombre y una serie de reglas para cada fase. Esto puede parecer un poco confuso al principio, pero poco a poco se va entendiendo el proceso, as como las razones para hacerlo de esta manera. Las bases de datos relacionales se normalizan para:

Evitar la redundancia de los datos. Evitar problemas de actualizacin de los datos en las tablas. Proteger la integridad de los datos.

2.6.- FORMAS NORMALES PARA LA NORMALIZACIN DE UNA BASE DE DATOSPgina 26

Las formas normales (NF) proporcionan los criterios para determinar el grado de vulnerabilidad de una tabla a inconsistencias y anomalas lgicas, mientras sean ms alta la forma normal aplicable a una tabla, es menos vulnerable a inconsistencias y anomalas. 2.6.1.- Primera Forma Normal (1FN) La regla de la Primera Forma Normal establece que las columnas repetidas deben eliminarse y colocarse en tablas separadas. 2.6.2.- Segunda Forma Normal (2FN) La regla de la Segunda Forma Normal establece que todas las dependencias parciales se deben eliminar y separar dentro de sus propias tablas. Una dependencia parcial es un trmino que describe a aquellos datos que no dependen de la llave primaria de la tabla para identificarlos. Una vez alcanzado el nivel de la Segunda Forma Normal, se controlan la mayora de los problemas de lgica. Podemos insertar un registro sin un exceso de datos en la mayora de las tablas. 2.6.3.- Tercera forma normal (3FN) Una tabla esta en tercera forma normal o 3FN si esta en 2FN y no existen atributos que no pertenezcan a la clave primaria que puedan ser conocidos mediante otro atributo que no forma parte de la clave primaria, es decir, no hay dependencias funcionales transitivas. Se dice que hay dependencia funcional transitiva entre dos atributos cuando un atributo que no pertenece a la clave primaria permite conocer el valor de otro atributo.

2.6.4.- Cuarta forma normal (4FN)

Pgina 27

Existe dependencia funcional multivalorada o de mltiples valores si, dado tresatributos de una tabla, si para cada valor del primer atributo existen mltiples valores en el segundo atributo y no hay ninguna relacin entre el tercer atributo yel primero, a no ser a travs del segundo atributo. En si las reglas formales nos ayuda a prevenir errores lgicos en la manipulacin de datos. La normalizacin facilita tambin agregar nuevas columnas sin romper el esquema actual ni las relaciones. Normalizar demasiado puede conducir a tener una base de datos ineficiente y hacer a su esquema demasiado complejo para trabajar. Un balance apropiado de sentido comn y prctico puede ayudarnos a decidir cundo normalizar.

2.7.- CONSULTASPgina 28

En bases de datos una consulta es el mtodo para acceder a los datos almacenados en las tablas. Con las consultas se pueden modificar, borrar, mostrar y agregar datos en una base de datos. Para esto se utiliza un lenguaje de consultas. Tcnicamente hablando, las consultas a las bases de datos se realizan a travs de un lenguaje de manipulacin de datos (DML-Data Manipulation Lenguage). Sql es un lenguaje DML, pero adems posee otras caractersticas de otros lenguajes. Como por ejemplo permite estructurar bases de datos. Las consultas son una herramienta que consiste en poder solicitar los datos memorizados, las ms utilizadas son las de seleccin que consiste en ver los datos de las tablas, analizarlos y, eventualmente modificarlos. Los datos solicitados se visualizan en una Dynaset, que muestra un conjunto dinmico de datos procedentes de una o ms tablas. Existe la posibilidad de agregar y modificar los datos en el campo del Dynaset, as como en una tabla. Las modificaciones tendrn efectos sobre las tablas de origen de la misma base de datos. Con las consultas se puede: Elegir determinados campos de una tabla Elegir los registros. Ordenar los registros Ejecutar clculos

2.8.- DISPARADOR (TRIGGER)Pgina 29

Un disparador (o trigger) en una base de datos, es un procedimiento que se ejecuta cuando se cumple una condicin establecida al realizar una operacin de insercin (INSERT), actualizacin (UPDATE) o borrado (DELETE). Son utilizados para mejorar la administracin de las bases de datos, sin necesidad de contar con que el usuario ejecute la sentencia de mysql. Adems, puede generar valores de columnas, previene errores de datos, sincroniza tablas, modifica valores de una vista, etc. La estructura bsica de un trigger es: *Llamada de activacin: Es la sentencia que permite disparar el cdigo a ejecutar. *Restriccin: Es la condicin necesaria para realizar el cdigo. Esta restriccin puede ser de tipo condicional o de tipo nulidad. *Accin a ejecutar: Es la secuencia de instrucciones a ejecutar una vez que se han cumplido las condiciones inciales. Los disparadores son soportados en MYSQL a partir de la versin 5.0.2. Algunos de los soportes existentes son los disparadores para las sentencias INSERT,UPDATE Y DELETE.

2.9.- PROCEDIMIENTO ALMACENADOPgina 30

Un procedimiento almacenado es un programa o procedimiento el cual esalmacenado fsicamente en una base de datos. Su implementacin vara de unmanejador de bases de datos a otro. La ventaja de un procedimiento almacenado es que al ser ejecutado, en respuestaa una peticin de usuario, es ejecutado directamente en el motor de bases dedatos, el cual usualmente corre en un servidor separado. Como tal, posee accesodirecto a los datos que necesita manipular y solo necesita enviar sus resultados deregreso al usuario, deshacindose de la sobrecarga resultante de comunicargrandes cantidades de datos salientes y entrantes. Estos procedimientos, se usan a menudo, pero no siempre, para realizar consultasSQL sobre los objetos del banco de datos de una manera abstracta, desde elpunto de vista del cliente de la aplicacin. Un procedimiento almacenado permiteagrupar en forma exclusiva parte de algo especifico que se desee realizar o, mejordicho, SQL apropiado para dicha accin. Los procedimientos almacenados y funciones son nuevas funcionalidades de laversin de MYSQL 5.0. Un procedimiento almacenado es un conjunto decomandos SQL que pueden almacenarse en el servidor. Una vez que se hace, losusuarios no necesitan relanzar los comandos individuales pero pueden en su lugarreferirse al procedimiento almacenado. Los procedimientos almacenados pueden mejorar el rendimiento ya que senecesita enviar menos informacin entre el servidor y el cliente. El intercambio quehay es que aumenta la carga del servidor de la base de datos ya que la mayoradel trabajo se realiza en la parte del servidor y no en la parte del cliente.

3.-AMBIENTES DISTRIBUIDOSPgina 31

En un sistema de base de datos distribuida, los datos se almacenan en varios computadores. Los computadores de un sistema distribuido se comunican entre s a travs de diversos medios de comunicacin, tales como cables de alta velocidad o lneas telefnicas. No comparten la memoria principal ni el reloj. Los procesadores de un sistema distribuido pueden variar en cuanto su tamao y funcin. Pueden incluir microcomputadores pequeos, estaciones de trabajo y sistemas de computadores grandes de aplicacin general. Estos procesadores reciben diferentes nombres, tales como localidades, nodos o computadores. Un sistema distribuido de bases de datos consiste en un conjunto de localidades, cada uno de las cuales puede participar en la ejecucin de transacciones que accedan a datos de una o varias localidades. La diferencia principal entre los sistemas de base de datos centralizados y distribuidos es que, en los primeros, los datos residen en una sola localidad, mientras que, en los ltimos, se encuentran en varias localidades. Ventajas de la distribucin de datos La principal ventaja de los sistemas distribuidos es la capacidad de compartir y acceder a la informacin de una forma fiable y eficaz. Utilizacin compartida de los datos y distribucin del control La ventaja principal de compartir los datos por medio de la distribucin es que cada localidad pueda controlar hasta cierto punto los datos almacenados localmente. En un sistema centralizado, el administrador de base de datos de la localidad central controla la base de datos. En un sistema distribuido existe un administrador global de la base de datos que se encarga de todo el sistema. Parte de esta responsabilidad se delega al administrador de base de datos de cada localidad. Dependiendo del diseo del sistema distribuido, cada administrador local podr tener un grado de autonoma diferente, que se conoce como autonoma local. La posibilidad de contar con autonoma local es en muchos casos una ventaja importante de las bases de datos distribuidas. Fiabilidad y disponibilidad Si se produce un fallo en una localidad de un sistema distribuido, es posible que las dems localidades puedan seguir trabajando. En particular, si los datos se repiten en varias localidades, una transaccin que requiere un dato especfico puede encontrarlo en ms de una localidad. As, el fallo de una localidad no implica necesariamente la desactivacin del sistema. El sistema debe detectar cuando falla una localidad y tomar las medidas necesarias para recuperarse del fallo. El sistema no debe seguir utilizando la localidad que fall. Por ltimo, cuando se recupere o repare esta localidad, debe contarse con mecanismos para reintegrarla al sistema con el mnimo de complicaciones.

Pgina 32

La disponibilidad es fundamental para los sistemas de bases de datos que se utilizan en aplicaciones de tiempo real. Por ejemplo, si una lnea area no puede tener acceso a la informacin, es posible que pierda clientes a favor de la competencia. Agilizacin del procesamiento de consultas Si una consulta comprende datos de varias localidades, puede ser posible dividir la consulta en varias subconsultas que se ejecuten en paralelo en distintas localidades. Sin embargo, en un sistema distribuido no se comparte la memoria principal, as que no todas las estrategias de interseccin se pueden aplicar en estos sistemas. En los casos en que hay repeticin de los datos, el sistema puede pasar la consulta a las localidades ms ligeras de carga. Desventajas de la distribucin de los datos La desventaja principal de los sistemas distribuidos es la mayor complejidad que se requiere para garantizar una coordinacin adecuada entre localidades. El aumento de la complejidad se refleja en:

Coste del desarrollo de software: es ms difcil estructura un sistema de bases de datos distribuidos y por tanto su coste es menor Mayor posibilidad de errores: puesto que las localidades del sistema distribuido operan en paralelo, es ms difcil garantizar que los algoritmos sean correctos. Mayor tiempo extra de procesamiento: el intercambio de mensajes y los clculos adicionales son una forma de tiempo extra que no existe en los sistemas centralizados

http://html.rincondelvago.com/bases-de-datos-distribuidas_1.html

3.1.- DESCRIPCION DE ACTIVIDADES DESARROLLADAS Y RESULTADOS OBTENIDOS

Pgina 33

Se ordenaron las actividades de acuerdo a los requerimientos previos, tomando en cuenta la prioridad de cada una de ellas y las actividades se desarrollaron de la siguiente manera:

3.2.- GESTOR DE BASE DE DATOSPara crear la base de datos de control de calificaciones utilizaremos el sistema de Gestin de base de datos MSQL, esto con la finalidad de la creacin y manipulacin de la base de datos lo cual aseguran la integridad y seguridad de la informacin almacenada. Mysql es un sistema de administracin de bases de datos relacionales. Es muy estable y ha sido probado a lo largo del tiempo. Mysql se ha estado utilizando por ms de 10 aos. Es un servidor multiprocesos. Multiproceso significa que cada vez que un usuario establece una conexin con el servidor, el programa servidor crea un subproceso para manejar la solicitud del cliente. Esto hace al servidor extremadamente rpido. En efecto, el servidor proporciona su propio subproceso a cada cliente que se conecta a Mysql. Otra de las caractersticas muy importante de Mysql es su portabilidad, Mysql ha sido probado y utilizado en casi todas las plataformas. Esto significa que no es necesario cambiar la plataforma solo para utilizar Mysql y aprovechar todas las ventajas que le brinda Mysql, tambin existen versiones para cada tipo de Mysql en casos especiales. El costo, este es un punto muy importante para los usuarios de Mysql ya que la versin completa no tiene costo alguno, puede ser descargado de la pgina oficial, Mysql es un gestor de cdigo abierto (open source) y licencia pblica con un almacenamiento de informacin de hasta 4 GB, ya que si se requiere de una licencia de la copia que hemos obtenido tiene un cierto costo pero accesible es licencia GPL y Comercial a diferencia de otros gestores, que son muy costosos. Mysql es un servidor de bases de datos muy robustos. Puede funcionar totalmente en una empresa o institucin, cuenta con las medidas de seguridad avanzadas que necesita al nivel de la empresa o institucin. Mysql es una base de datos relacional. Usa tablas y columnas para contener datos, los cuales pueden relacionarse por medio de claves.

3.2.1.- HERRAMIENTA CASE MICROSOFT VISIO 2010

Pgina 34

Por lo antes mencionado acerca de las herramientas case hemos llegado a una decisin de manejar la herramienta case Microsoft Visio 2010 para el modelado de la base de datos a nivel fsico y lgico, esta decisin ha sido por las siguientes caractersticas del programa.

3.2.2.- CARACTERISTICAS Permite simplificar las tareas complejas con elementos visuales dinmicos basados en datos y nuevas maneras de compartir en la web en tiempo real. La simplicidad, las formas basadas en datos y el uso compartido en la web convierte a VISIO 2010 en una de las formas ms eficaces de ver y comprender informacin importante. Facilidad a cada paso. Con un clic, puede validar un diagrama para asegurarse de que sea lgico y este construido correctamente

Pgina 35

3.4.- CASO DE USO

Fig. 1.2.- caso de uso de la base de datos

Pgina 36

3.5.- MODELO ENTIDAD RELACIN

Fig.1.3.-MODELO ENTIDAD RELACIN.

Pgina 37

3.6.- MODELO RELACIONAL

Fig.1.4 MODELO RELACIONAL.

Pgina 38

4.- DICCIONARIO DE DATOS

4.1.-

TABLA USUARIO

En la tabla usuario se almacena la informacin de usuarios que te tendrn acceso a la base de datos ya sea administrador, docente, alumno. Llave primaria: usua

ENTIDAD

ATRIBUTO

TIPO DE DATO Int Char varchar

TAMAO

DESCRIPCION

Usua Nombre Passw Usuario Tipo_usua F_ingreso

Llave primaria, auto incrementable. 30 10 Almacena nombre del usuario. Almacena contrasea del usuario, letras o nmeros. Almacena el tipo de usuario: Administrador, docente, alumno. Almacena la fecha de ingreso del usuario.

Char Datatime

20 NOW()

Fig.1.5 TABLA USUARIO

Pgina 39

4.2.- TABLA MATERIA

Esta tabla almacena la informacin de cada una de las materias que se imparten en la institucin. Llave primaria: Carrera_mate Llave fornea: Id_doc ENTIDAD ATRIBUTO Clave_mate Nombre TIPO DE DATO Char Char TAMAO 20 40 DESCRIPCION Llave primaria Almacena el nombre de la materia Almacena las unidades que tiene la materia Almacena los crditos de la materia Llave fornea, hace referencia a la tabla docente. Hace referencia a la tabla usuario.

Unidades

Char

2

Materia

Creditos

Char

2

Id_doc

Int

Usua

Int

Fig.1.6 TABLA MATERIA.

Pgina 40

4.3.- TABLA SEMESTRE

Esta tabla almacena la informacin de los semestres que existen en la institucin. Llave primaria: id_semestre Llave fornea: id_usua ENTIDAD ATRIBUTO Id_semestre Clave TIPO DE DATO Int Char 20 TAMAO DESCRIPCION Llave primaria Almacena la clave del semestre Almacena el nombre del semestre Almacena el periodo en el cual se cursa el semestre. Hace referencia a la tabla usuario.

Nombre

Char

20

Semestre

Periodo

varchar

30

Usua

Int

Fig.1.7 TABLA SEMESTRE.

Pgina 41

4.4.- TABLA GRUPO

Esta tabla almacena la informacin de los grupos que existen en la institucin. Llave primaria: Id_grupo Llave fornea: Id_Semestre Llave fornea: Clave_carrera Llave fornea: id_usua Fig. 1.8 TABLA GRUPO. TIPO DE TAMAO DATO Int char 50

ENTIDAD

ATRIBUTO

DESCRIPCION

Id_grupo Nombre

Llave primaria Almacena el nombre del grupo Llave fornea, hace referencia a la tabla semestre Hace referencia a la tabla usuario. 20 Llave fornea, hace referencia a la tabla carrera.

Id_semetre Grupo

Int

Usua

Int

Clave_carrera

char

4.5.- TABLA ALUMNO

Pgina 42

Esta tabla almacena la informacin de los alumnos inscritos en el instituto. Llave primaria: num_control Llave fornea: id_semestre, Llave fornea: id_Grupo, Llave fornea: clave_carrera.

Fig. 1.9 TABLA ALUMNO. ENTIDAD ATRIBUTO TIPO DE DATO Char char Char Char Varchar Char Char Int TAMAO DESCRIPCION

Num_control Nombre Apellido_p Apellido_m Direccion Alumno Telefono Sexo Usua

8 30 30 30 80 14 2

Almacena el numero de control del alumno Almacena el nombre del alumno Almacena el apellido paterno Almacena el apellido materno Almacena la direccin del alumno Almacena el telfono del alumno Sexo del alumno Hace referencia a la tabla usuario.

Clave_carrera Id_semestre Id_grupo

Char Int Int

20

Llave fornea, hace referencia a la tabla carrera Llave fornea, hace referencia a la tabla semestre Llave fornea, hace referencia a la tabla grupo

4.6.- TABLA CARRERAPgina 43

Esta tabla almacena la informacin de cada una de las carreras que existen en la institucin. Llave primaria: clave_carrera Llave fornea: usua

Fig. 1.10 TABLA CARRERA.

ENTIDAD

ATRIBUTO

TIPO DE DATO Char

TAMAO

DESCRIPCION

Clave_carrera

20

Almacena la clave de la carrera Almacena el nombre de la carrera. Almacena la especialidad de la carrera. Hace referencia a la tabla usuario.

Nombre

Varchar

25

Carrera

Especialidad

Char

40

Usua

Int

4.7 TABLA DOCENTEEsta tabla almacena la informacin de todos los docentes que laboran en la Institucin. Llave primaria: Id_doc,Pgina 44

Llave fornea: usua

Fig. 1.11 TABLA DOCENTE.

ENTIDAD ATRIBUTO

TIPO DE DATO Int Char Char Char Char Varchar Int

TAMAO DESCRIPCION

Id_doc Nombre Docente Apellido_p Apellido_m Rfc Direccion Usua

Llave primaria, auto incrementable. 30 30 30 14 80 Almacena el nombre del docente Almacena el apellido paterno del docente Almacena el apellido materno del docente Almacena el rfc del docente. Almacena la direccin del docente Hace referencia a la tabla usuario.

4.8.- TABLA CALIFICACINEsta tabla almacena la informacin de las calificaciones de los alumnos de la institucin. Llave fornea: clave_mate Llave fornea:num_control

Pgina 45

Fig.1.12 TABLA CALIFICACION.

ENTIDAD

ATRIBUTO

TIPO DE DATO Float Char char Char

TAMAO DESCRIPCION

Calif Clave_mate Calificacion Num_control Tipo_evalua

4 20 8 30

Llave primaria. Almacena la clave de la materia Almacena el nmero de control del alumno. Almacena el tipo de evaluacin que realiza el alumno.

5.- CREACIN DEL SCRIPT DE LA BASE DE DATOS

Pgina 46

Despus de haber seleccionado la herramientas Case para realizar la base de datos, se un diccionario de datos, el cual les va permitir saber los tipos de datos con los que va esta estructurada la base de datos. Ya hecho todos estos pasos la Herramienta Case Sybase les permitir crear automticamente el script de la base de datos que es la siguiente.

5.1.- SCRIPT DE LA BASE DE DATOSdrop database if exists ctn_escolar; create database ctn_escolar;

Pgina 47

use ctn_escolar;

/*==============================================================*/ /* Table: ALUMNO */

/*==============================================================*/ create table ALUMNO ( NUM_CONTROL NOMBRE APELLIDO_P APELLIDO_M DIRECCION TELEFONO SEXO USUA char(8) char(30) char(30) char(30) varchar(80) char(14) char(2) int char(20) int int not null, null, null, null, null, null, null, null, null, null, null,

CLAVE_CARRE ID_SEMESTRE ID_GRUPO

constraint PK_ALUMNO primary key clustered (NUM_CONTROL) );

/*==============================================================*/ /* Table: CALIFICACION */

/*==============================================================*/Pgina 48

create table CALIFICACION ( CALIF CLAVE_MATE NUM_CONTROL TIPO_EVALUA float(4) char(20) char(8) char(30) not null, null, null, null

);

/*==============================================================*/ /* Table: CARRERA */

/*==============================================================*/ create table CARRERA ( CLAVE_CARRE NOMBRE ESPECIALIDAD USUA int char(20) char(50) char(40) null, not null, null, null,

constraint PK_CARRERA primary key clustered (CLAVE_CARRE) );

/*==============================================================*/ /* Table: CARRE_MATE */

/*==============================================================*/Pgina 49

create table CARRE_MATE ( CLAVE_MATE CLAVE_CARRE ); char(20) char(20) null, null

/*==============================================================*/ /* Table: DOCENTE */

/*==============================================================*/ create table DOCENTE ( ID_DOC NOMBRE APELLIDO_P APELLIDO_M RFC DIRECCION USUA int int char(30) char(30) char(30) char(14) varchar(80) null, null, null, auto_increment not null, null, null, null,

constraint PK_DOCENTE primary key clustered (ID_DOC) );

/*==============================================================*/ /* Table: DOC_MATE */

/*==============================================================*/Pgina 50

create table DOC_MATE ( CLAVE_MATE ID_DOC ); int char(20) null null,

/*==============================================================*/ /* Table: GRUPO */

/*==============================================================*/ create table GRUPO ( ID_GRUPO NOMBRE USUA int char(10) int char(20) int null, null, null, auto_increment not null, null,

CLAVE_CARRE ID_SEMESTRE

constraint PK_GRUPO primary key clustered (ID_GRUPO) );

/*==============================================================*/ /* Table: MATERIA */

/*==============================================================*/Pgina 51

create table MATERIA ( CLAVE_MATE NOMBRE UNIDADES CREDITOS USUA ID_DOC CLAVE_CARRE int int char(20) char(20) char(40) char(2) char(2) null, null, null, not null, null, null, null,

constraint PK_MATERIA primary key clustered (CLAVE_MATE) );

/*==============================================================*/ /* Table: PARCIALES */

/*==============================================================*/Pgina 52

create table PARCIALES ( ID_PARCIAL UNIDAD CALIF TIPO_EVALUA CLAVE_MATE NUM_CONTROL ID_DOC USUA int int int char(2) float(4) char(30) char(20) char(8) null, null, auto_increment not null, null, null, null, null, null,

constraint PK_PARCIALES primary key clustered (ID_PARCIAL) );

/*==============================================================*/ /* Table: SEMESTRE */

/*==============================================================*/Pgina 53

create table SEMESTRE ( ID_SEMESTRE CLAVE NOMBRE PERIODO USUA int char(20) char(20) varchar(30) int null, auto_increment not null, null, null, null,

constraint PK_SEMESTRE primary key clustered (ID_SEMESTRE) ); /*==============================================================*/ /* Table: USUARIO */

/*==============================================================*/ create table USUARIO ( USUA NOMBRE PASSW TIPO_USUA F_INGRESO int char(30) varchar(10) char(20) datetime auto_increment not null, null, null, null, null,

constraint PK_USUARIO primary key clustered (USUA) ); alter table ALUMNO add constraint FK_ALUMNO_REFERENCE_USUARIO foreign key (USUA) references USUARIO (USUA)Pgina 54

on update cascade on delete restrict;

alter table ALUMNO add constraint FK_ALUMNO_REFERENCE_CARRERA foreign key (CLAVE_CARRE) references CARRERA (CLAVE_CARRE) on update cascade on delete restrict;

alter table ALUMNO add constraint FK_ALUMNO_REFERENCE_SEMESTRE foreign key (ID_SEMESTRE) references SEMESTRE (ID_SEMESTRE) on update cascade on delete restrict; alter table ALUMNO add constraint FK_ALUMNO_REFERENCE_GRUPO foreign key (ID_GRUPO) references GRUPO (ID_GRUPO) on update cascade on delete restrict;

alter table CALIFICACION add constraint FK_CALIFICA_REFERENCE_MATERIA foreign key (CLAVE_MATE) references MATERIA (CLAVE_MATE) on update cascadePgina 55

on delete restrict;

alter table CALIFICACION add constraint FK_CALIFICA_REFERENCE_ALUMNO foreign key (NUM_CONTROL) references ALUMNO (NUM_CONTROL) on update cascade on delete cascade;

alter table CARRERA add constraint FK_CARRERA_REFERENCE_USUARIO foreign key (USUA) references USUARIO (USUA) on update cascade on delete restrict;

alter table CARRE_MATE add constraint FK_CARRE_MA_REFERENCE_CARRERA foreign key

(CLAVE_CARRE) references CARRERA (CLAVE_CARRE) on update cascade on delete restrict;Pgina 56

alter table CARRE_MATE add constraint FK_CARRE_MA_REFERENCE_MATERIA foreign key (CLAVE_MATE) references MATERIA (CLAVE_MATE) on update cascade on delete restrict;

alter table DOCENTE add constraint FK_DOCENTE_REFERENCE_USUARIO foreign key (USUA) references USUARIO (USUA) on update cascade on delete restrict;

alter table DOC_MATE add constraint FK_DOC_MATE_REFERENCE_MATERIA foreign key (CLAVE_MATE) references MATERIA (CLAVE_MATE) on update cascade on delete restrict;

alter table DOC_MATEPgina 57

add constraint FK_DOC_MATE_REFERENCE_DOCENTE foreign key (ID_DOC) references DOCENTE (ID_DOC) on update cascade on delete restrict;

alter table GRUPO add constraint FK_GRUPO_REFERENCE_USUARIO foreign key (USUA) references USUARIO (USUA) on update cascade on delete restrict;

alter table GRUPO add constraint FK_GRUPO_REFERENCE_CARRERA foreign key (CLAVE_CARRE) references CARRERA (CLAVE_CARRE) on update cascade on delete restrict;

alter table GRUPO add constraint FK_GRUPO_REFERENCE_SEMESTRE foreign key (ID_SEMESTRE) references SEMESTRE (ID_SEMESTRE) on update cascade on delete restrict;

alter table MATERIAPgina 58

add constraint FK_MATERIA_REFERENCE_USUARIO foreign key (USUA) references USUARIO (USUA) on update cascade on delete restrict;

alter table MATERIA add constraint FK_MATERIA_REFERENCE_DOCENTE foreign key (ID_DOC) references DOCENTE (ID_DOC) on update cascade on delete restrict; alter table MATERIA add constraint FK_MATERIA_REFERENCE_CARRERA foreign key (CLAVE_CARRE) references CARRERA (CLAVE_CARRE) on update cascade on delete restrict;

alter table PARCIALES add constraint FK_PARCIALE_REFERENCE_DOCENTE foreign key (ID_DOC) references DOCENTE (ID_DOC) on update cascade on delete restrict;

alter table PARCIALES add constraint FK_PARCIALE_REFERENCE_USUARIO foreign key (USUA)Pgina 59

references USUARIO (USUA) on update cascade on delete restrict;

alter table PARCIALES add constraint FK_PARCIALE_REFERENCE_ALUMNO foreign key

(NUM_CONTROL) references ALUMNO (NUM_CONTROL) on update cascade on delete cascade;

alter table PARCIALES add constraint FK_PARCIALE_REFERENCE_MATERIA foreign key (CLAVE_MATE) references MATERIA (CLAVE_MATE) on update cascade on delete restrict;

alter table SEMESTRE add constraint FK_SEMESTRE_REFERENCE_USUARIO foreign key (USUA) references USUARIO (USUA)Pgina 60

on update cascade on delete restrict;

5.2.- CONSULTAS REALIZADAS A LA BASE DE DATOS

1.- Consulta que muestra el nombre de las carreras y sus materias en orden por clave de la carrera. SELECT CARRERA.NOMBRE AS CARRERA,MATERIA.NOMBRE AS MATERIA FROM (CARRERA JOIN MATERIA ON CARRERA.CLAVE_CARRE=MATERIA.CLAVE_Carre) ORDER BY CARRERA.CLAVE_CARRE;

2.- Consulta que muestra las veces que un alumno se ha evaluado por cada materia.

Pgina 61

SELECT COUNT(*)TOTAL_CALIFICADOS,clave_mate as MATERIA,NUM_CONTROL FROM CALIFICACION group by CLAVE_MATE,NUM_CONTROL;

3.-Consulta para boletas. SELECT parciales.num_control,alum.nombre,alum.apellido_p,apellido_m, (sum(parciales.calif)/count(parciales.unidad))as promedio,materia.nombre FROM parciales as parciales join materia as materia on materia.clave_mate=parciales.clave_mate join alumno as alum on alum.num_control=parciales.num_control group by parciales.clave_mate,num_control;

2.- Consulta que suma todas las calificaciones de todos los alumnos. select (sum(calif) / count(unidad)) as promedio from parciales where clave_mate='mate1' order by num_control;

3.-Consulta que muestra el promedio de todos los alumnos por su nmero de control y por materia select (sum(calif) / count(unidad)) as promedio from parciales group by clave_mate,num_control;

4.- Consulta que muestra el rfc, nombre del docente y las materias que imparte.Pgina 62

SELECT DOCENTE.RFC, CONCAT(DOCENTE.NOMBRE," ",DOCENTE.APELLIDO_P," ",DOCENTE.APELLIDO_M) AS DOCENTE,MATERIA.NOMBRE AS MATERIA FROM (USUARIO JOIN DOCENTE ON USUARIO.USUA=DOCENTE.USUA) JOIN MATERIA ON USUARIO.USUA=MATERIA.USUA ORDER BY DOCENTE.NOMBRE;

5.3.- VISTAS

1.- Vista que muestra los promedios de cada alumno y de sus diferentes materias.

create view boleta_cal as SELECT parciales.num_control,alum.nombre,alum.apellido_p,apellido_m, (sum(parciales.calif)/count(parciales.unidad)) as promedio,materia.nombre as materia,parciales.tipo_evalua FROM parciales as parciales join materia as materia on materia.clave_mate=parciales.clave_mate join alumno as alum

Pgina 63

on alum.num_control=parciales.num_control group by parciales.clave_mate,num_control;

2.- Vista que muestra el promedio final de cada alumno

create view prom_final as SELECT num_control,nombre,apellido_p,apellido_m, (sum(promedio) / count(promedio)) as promedio,boleta_cal.tipo_evalua from boleta_cal group by num_control;

5.4.- PRIVILEGIOS

Administrador: GRANT ALL PRIVILEGES ON ctn_escolar.*TO Administrador@localhost identified by'administa';

Docente: GRANT SELECT,INSERT,UPDATE ON ctn_escolar.*TO reyna flor@'%' identified by'reynaflor';

Pgina 64

GRANT SELECT,INSERT, UPDATE ctn_escolar.*TO fernando@'%' identified by'fer1'; GRANT SELECT,INSERT,UPDATE ctn_escolar.*TO edgar luis@'%' identified by'edgarl'; GRANT SELECT,INSERT,UPDATE ctn_escolar.*TO madai @'%' identified by'';

Alumnos: GRANT SELECT ON ctn_escolar.*TO azul@'%'identified by '12'; GRANT SELECT ON ctn_escolar.*TO maria@'%'identified by '23'; GRANT SELECT ON ctn_escolar.*TO vanesa@'%'identified by '34'; GRANT SELECT ON ctn_escolar.*TO Jorge luis@'%'identified by '45';

5.5.- SCRIP DE TRIGGER

Trigger muestra el promedio de cada alumno despus de haber insertado en la tabla parcial y actualiza su promedio. 1 TRIGGER delimiter // create trigger parcalif after insert on parciales FOR EACH ROW BEGIN insert into calificacion set calif=new.calif, clave_mate=new.clave_mate, num_control=new.num_control,

Pgina 65

tipo_evalua=new.tipo_evalua;

select (sum(calif) / count(unidad)) as @promedio from parciales where clave_mate=new.clave_mate and num_control=new.num_control; update calificacion set promedio=@promedio where num_control=trim(new.num_escolar); end // delimiter ;

2 TRIGGER: Se crea una nueva tabla para poder realizar el procedimiento de almacenamiento cuando el disparador se ejecute a continuacin el cdigo de la tabla y el disparador (trigger). CREATE TABLE ralumno ( num_control char(8) NOT NULL, nombre char(30) NOT NULL default '', apellido_p char(30) NOT NULL default '', apellido_m char(30) NOT NULL default '', direccion varchar(100) NOT NULL default '', telefono char(14) NOT NULL default '',Pgina 66

sexo char(2) NOT NULL)ENGINE=InnoDB;

Creacin del trigger

delimiter // create trigger elim_alum before delete on alumno for each row begin insert into ralumno set num_control = old.num_control, nombre = old.nombre, apellido_p = old.apellido_p, apellido_m=old.apellido_m, direccion=old.direccion, telefono=old.telefono, sexo=old.sexo; end // delimiter ;

5.6.- SCRIP DE PROCEDIMIENTOS ALMACENADOS1 procedimiento almacenado delimiter // create procedure carremate (in clave_mate char(20), clave_carrera char(20)) begin insert into carre_mate (clave_mate,clave_carrera) values (clave_mate,clave_carrera); end// delimiter ;Pgina 67

2 procedimiento almacenado delimiter // create procedure docenmate (in clave_mate char(20), id_doc int) begin insert into doc_mate (clave_mate,id_doc) values (clave_mate,id_doc); end// delimiter ;

3 procedimiento almacenado

delimiter // create procedure docent (in ID_DOC int,NOMBRE char(30),APELLIDO_P char(30),APELLIDO_M char(30),RFC char(14),DIRECCION varchar(80),USUA int) begin insert into docente (ID_DOC,NOMBRE,APELLIDO_P,APELLIDO_M,RFC,DIRECCION,USUA) values (ID_DOC,NOMBRE,APELLIDO_P,APELLIDO_M,RFC,DIRECCION,USUA); end// delimiter ;

Pgina 68

4 procedimiento almacenado

delimiter // create procedure alumn (in NUM_CONTROL char(8),NOMBRE char(30),APELLIDO_P char(30),APELLIDO_M char(30),DIRECCION varchar(80),TELEFONO char(14),SEXO char(2),USUA int,CLAVE_CARRERA char(20),ID_SEMESTRE int,ID_GRUPO int) begin insert into alumno (NUM_CONTROL,NOMBRE,APELLIDO_P,APELLIDO_M,DIRECCION,TELEFONO, SEXO,USUA,CLAVE_CARRERA,ID_SEMESTRE,ID_GRUPO) values (NUM_CONTROL,NOMBRE,APELLIDO_P,APELLIDO_M,DIRECCION,TELEFONO, SEXO,USUA,CLAVE_CARRERA,ID_SEMESTRE,ID_GRUPO); end// delimiter ;

5 procedimiento almacenado

delimiter // create procedure califica (in CALIF float(4),CLAVE_MATE char(20),NUM_CONTROL char(8),TIPO_EVALUA char(30)) begin insert into calificacion (CALIF,CLAVE_MATE,NUM_CONTROL,TIPO_EVALUA) values (CALIF,CLAVE_MATE,NUM_CONTROL,TIPO_EVALUA); end// delimiter ;

Pgina 69

6 procedimiento almacenado

delimiter // create procedure carre (in CLAVE_CARRERA char(20),NOMBRE char(50),ESPECIALIDAD char(40),USUA int) begin insert into carrera (CLAVE_CARRERA,NOMBRE,ESPECIALIDAD,USUA) values (CLAVE_CARRERA,NOMBRE,ESPECIALIDAD,USUA); end// delimiter ;

7 procedimiento almacenado delimiter // create procedure grup (in ID_GRUPO int,NOMBRE char(50),ID_SEMESTRE int,USUA int,CLAVE_CARRERA char(20)) begin insert into grupo (ID_GRUPO,NOMBRE,ID_SEMESTRE,USUA,CLAVE_CARRERA) values (ID_GRUPO,NOMBRE,ID_SEMESTRE,USUA,CLAVE_CARRERA); end// delimiter ;

Pgina 70

8 procedimiento almacenado

delimiter // create procedure mater (in CLAVE_MATE char(20),NOMBRE char(40),UNIDADES char(2),CREDITOS char(2),ID_DOC int,USUA int) begin insert into materia (CLAVE_MATE,NOMBRE,UNIDADES,CREDITOS,ID_DOC,USUA) values (CLAVE_MATE,NOMBRE,UNIDADES,CREDITOS,ID_DOC,USUA); end// delimiter ;

9 procedimiento almacenado

delimiter // create procedure parcia (in ID_PARCIAL int,UNIDAD char(2),CALIF float(4,1),TIPO_EVALUA char(30),CLAVE_MATE char(20),NUM_CONTROL Char(8),ID_DOC int,USUA int) begin insert into parciales (ID_PARCIAL,UNIDAD,CALIF,TIPO_EVALUA,CLAVE_MATE,NUM_CONTROL,I D_DOC,USUA) values (CLAVE_MATE,NOMBRE,UNIDADES,CREDITOS,ID_DOC,USUA); end// delimiter ;

10 procedimiento almacenado delimiter // create procedure semest (in ID_SEMESTRE int,CLAVE char(20),NOMBRE char(20),PERIODO varchar(30),USUA int) beginPgina 71

insert into semestre (ID_SEMESTRE,CLAVE,NOMBRE,PERIODO,USUA) values (ID_SEMESTRE,CLAVE,NOMBRE,PERIODO,USUA); end// delimiter ;

delimiter // create procedure usuar (in USUA int,NOMBRE char(30),PASSW varchar(10),TIPO_USUA char(20),F_INGRESO datetime) begin insert into usuario (USUA,NOMBRE,PASSW,TIPO_USUA,F_INGRESO) values (USUA,NOMBRE,PASSW,TIPO_USUA,F_INGRESO); end// delimiter ;

5.7.- IMPLEMENTACION DE LA BASE DE DATOS EN AMBIENTE DISTRIBUIDO5.7.1.- CONFIGURACIN DEL SERVIDOR MAESTRO (MASTER) Antes de realizar el primer paso desactivar el antivirus y el firewall 1) Como primer paso, debemos decirle al servidor Master dnde va a loguear toda su actividad; qu va a loguear, en este caso nuestra base de datos es: ctn_escolar y adems le asignaremos un identificador, para esto creamos una carpeta en el disco local C llamada curso. Editamos el my.cnf de mysql agregando las siguientes lneas: Server-id=1 binlog-do-db=ctn_escolar log-bin = c:/curso/mysql-bin.log Tambin debemos decir que permita el acceso remoto, no slo el acceso desde el localhost; por lo que debemos comentar estos parmetros en caso de que existan.Pgina 72

#bind-address #skip-networking 2) Reiniciamos el servidor de mysql desde la consola de windows y nos logueamos por consola al mysql con acceso root # /etc/init.d/mysql restart # mysql -u root -p 3) Como prximo paso, debemos crear un usuario con acceso a la replicacin. Este usuario es el que usar el Slave para identificarse. En la consola MySql y con acceso root, podrn crear el usuario de esta forma. GRANT REPLICATION SLAVE ON *.* TO 'yabin'@'%' IDENTIFIED BY 'derli'; yabin: ser el nombre de usuario derly: ser el password de ese usuario

Fig 1.13.- creando usuario

4) Ahora necesitamos saber la informacin del log para configurar el servidor slave, lo podremos hacer con el siguiente comando tambin en la consola MySql: USE ctn_escolar; SHOW MASTER STATUS; Les aparecer una tabla con la el nombre del log, la posicin, la base, etc.

Pgina 73

Fig. 1.14.- Tabla que muestra el nombre del log, posicin, base

5.7.2.- CONFIGURAR EL SERVIDOR ESCLAVO 1) Suponiendo que ya creamos la base de datos con el mismo nombre que la del Maestro, vamos directamente a editar la configuracin del archivo my.cnf de mysql agregando/editando estas lneas: # Servir como identificador server-id=2 # El ip del servidor Master master-host=192.168.1.101 # El monbre de usuario que configuramos en el master master-user=yabin # El password del usuario que configuramos en el master master-password=derli # Segundos antes de reintentar conectarse master-connect-retry=106 # Base de datos a replicar replicate-do-db=ctn_escolar 2) Reiniciamos entonces el servidor esclavo para que tome la nueva configuracin: # /etc/init.d/mysql restartPgina 74

3) Nos logueamos como root al MySql y le decimos al esclavo que carge la info que exista en la DB del maestro para tener como punto de partida: #mysql -u root -p # Enter password: SHOW SLAVE STATUS; 4) En este paso, le vamos a tener que proveer a nuestro slave, la info que guardamos en el txt acerca del log del mster parando la replicacin: SLAVE STOP; CHANGE MASTER TO MASTER_HOST='192.168.1.117', MASTER_USER='yabin', MASTER_PASSWORD='derli', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=106;

fig.

1.15 informacin que guardamos en el txt.

5) Reiniciamos el servicio esclavo y ya tenemos nuestra replicacin andando: START SLAVE; quit;

Pgina 75

fig.1.16 muestra de la replica

Para saber si la replicacin est andando slo basta con poner el siguiente comando en la consola MySql SHOW SLAVE STATUS; FIG. 1.17 Muestra los usuarios de slave y esclavo

Pgina 76

5.8.- CONCLUSIN

En conclusin a este proyecto denominado control de calificaciones se logro optimizar los procesos en el rea administrativa del Instituto Tecnolgico de Pinotepa, logrando con ello nuestro objetivo principal, de manera que se agregaron procedimientos almacenados y disparadores para que se automatizara completamente la base de datos, restringiendo la informacin a los usuarios de acuerdo a sus privilegios para poder acceder a dicha base de datos se podrn realizar consultas, inserciones, actualizar, modificar, realizar respaldo, de acuerdo al tipo de usuario.

Pgina 77

5.9.- RECOMENDACIONES

Estas recomendaciones se deben tomar en cuenta para un mejor funcionamiento de la base de datos.

Al Instituto Tecnolgico de Pinotepa:

1.- Las personas encargadas que van a interactuar con la base de datos, tienen que hacerlo con responsabilidad, y ser muy cuidadosos en la captura de los datos. 2.- Realizar el mantenimiento preventivo y correctivo por lo menos cada 6 meses. 3.- Verificar el buen funcionamiento de la base de datos de control de calificaciones. 4.- Operar la base de datos de acuerdo al tipo de usuario. 5.- Por cuestiones de seguridad se recomienda hacer constantemente respaldos de la base de datos.

Pgina 78

6.- REFERENCIAS BIBLIOGRAFICAS

http://es.kioskea.net/contents/bdd/bddintro.php3 08/09/2008 http://dev.mysql.com/doc/refman/5.0/es/index.html 20/10/2008 http://www.webtaller.com/manual-mysql/indice_manual_mysql.php 23/11/2008 http://www.itp.edu.mx/ http://html.rincondelvago.com/bases-de-datos-distribuidas_1.html

Pgina 79

Pgina 80