Está en la página 1de 7

Modelado de Base de datos para el Desarrollo de un sistema

de transaccin comercial con reconocimiento biomtrico para


supermercados
Este proyecto fue desarrollado bajo la base de datos Mysql 5.
Los motivos de elegir MySql como gestor de base de datos para el proyecto, son:
En primer lugar, el econmico. Porque permitir realizar un proyecto utilizando
productos OpenSource o productos licenciados libremente por los fabricantes
(como Microstrategy Reporting Suite). Seguramente si estuvisemos en un gran
proyecto, elegiramos una opcin de base de datos propietaria, como Oracle (que
es para muchos la mejor opcin por estudios, prcticas o consenso). Se puede
ver el estudio comparativo de bases de datos realizado por Forrester.

En segundo lugar, MySql es de reconocido prestigio, fiabilidad, velocidad,


rendimiento, facilidad de administracin y conexin con otros productos, bien
documentados, con una buena evolucin y soporte. Productos de los que sea
fcil obtener informacin, con buenas herramientas, y para los que incluso

podamos recibir cursos de formacin si fuese necesario. Productos que estn


siendo utilizados en muchos entornos productivos y que nos den la suficiente
confianza.
Adems, los gestores de bases de datos OpenSource hace tiempo que dejaron
de ser un experimento y ya son una alternativa real para las empresas (incluso
aparecen en los cuadrantes Gartner). Son productos cada vez ms
evolucionados, con ms funcionalidades y las empresas que los desarrollan
tienen tambin cada vez ms volumen de negocio (cuestin importante para
continuar la evolucin de los productos).
En nuestro caso, hemos decidido trabajar con MySql o PostgreSql, y vamos a
centrarnos en analizar cul de los dos productos nos quedamos.
Tenemos mucha informacin de comparaciones entre MySql y PostgreSql, pero
es el momento de las conclusiones y de elegir el producto que utilizaremos en
nuestro proyecto, teniendo en cuenta las siguientes consideraciones:
1) Es la primera vez que trabajamos con ambas bases de datos, y en ambos
casos buscaremos la facilidad de trabajo, la existencia de herramientas grficas
y de administracin, la documentacin, etc.
Teniendo en cuenta estas consideraciones y los estudios y comparativas que
hemos descrito anteriormente, decidimos trabajar con MySql por los siguientes
motivos:
1) Velocidad: aunque en algunos estudios PostgreSql es mejor para entornos
donde la integridad de datos es fundamental (como en el desarrollo de
aplicaciones), a nivel de rendimiento MySql es mejor. En concreto, cuando
utilizamos el tipo de motor MyIsam, el rendimiento de MySql es mucho mejor.
Este ser el tipo de Engine con el que definiremos todas nuestras tablas. El motor
InnoDb es ms lento y est orientado a aplicaciones donde la actualizacin e
integridad es ms importante.
2) Herramientas grficas, documentacin, plataformas: Mysql proporciona una
amplia documentacin (muy completa) y multitud de herramientas grficas de
gestin y de conectividad. PostgreSql tambin cumplira los requisitos en el tema
de documentacin y plataformas soportadas. Tambin es importante para

nosotros disponer de Mysql, que es una herramienta de Diseo de Bases de


datos, como es MySql Workbench, que nos permite definir nuestros modelos
relacionales, generar las sentencias SQL y construir la base de datos, as como
realizar ingeniera inversa (construir el modelo de datos a partir de una base de
datos existente) o comparar el modelo definido en la herramienta con el existente
en la base de datos.
Algunos de los usuarios ms destacados de Mysql son los siguientes:
Amazon.com
Cox Communications La cuarta televisin por cable ms importante de
EEUU, tienen ms de 3.600 tablas y aproximadamente dos millones de
inserciones cada hora.
Craigslist
CNET Networks
Digg Sitio de noticias.
flickr, usa MySQL para gestionar millones de fotos y usuarios.
Google Para el motor de bsqueda de la aplicacin AdWords.
Joomla!, con millones de usuarios.
phpBB, Uno de los ms famosos sitios de foros, con miles de instalaciones y
con millones de usuarios.
LiveJournal Cerca de 300 millones de pginas servidas cada da.[2]
NASA
NetQOS, usa MySQL para la gestin de algunas de las redes ms grandes del
mundo como las de Chevron, American Express y Boeing.
Nokia, usa un cluster MySQL para mantener informacin en tiempo real sobre
usuarios de redes de mviles.
Omniture
Sabre, y su sistema de reserva de viajes Travelocity
Slashdot con cerca de 50 millones de pginas servidas cada da.
Wikipedia, sirve ms de 200 millones de consultas y 1,2 millones de
actualizaciones cada da, con picos de 11.000 consultas por segundo.
WordPress, con cientos de blogs alojados en l.
Yahoo! para muchas aplicaciones crticas.

Modelo de Base de datos

Descripcin de tablas
usuario

Tabla usuario

idUsuario

Cdigo de usuario

login

Identificador de nombre de usuario

password

Contrasea de usuario

admin

Cdigo que indica si el usuario es administrador o simple

usuario.

alumno
idAlumno

Tabla alumno
Cdigo de alumno (este puede almacenar si el piloto es
militar, civil o comercial)

nombres

Nombre(s) de alumno

apellidoPat Apellido Paterno de alumno

apellidoMat Apellido Materno de Alumno


dni

Dni de Alumno

celular

Celular de Alumno

foto

Nombre de Foto de Alumno

fechaIns

Fecha de Inscripcin de Alumno

instructor

Tabla Instructor

idInstructor Cdigo de instructor


nombres

Nombre(s) de instructor

apellidoPat Apellido Paterno de instructor


apellidoMat Apellido Materno de instructor
dni

Dni de instructor

celular

Celular de instructor

foto

Nombre de Foto de instructor

fechaIns

Fecha de Inscripcin de instructor

evaluacion Tabla evaluacin


idEvaluacion

Cdigo de evaluacin

nota

Puntaje de evaluacin

fecha

Fecha de evaluacin

video

Nombre de video de evaluacin

evaluacionHis

Tabla evaluacin Histrico

idEvaluacionHis

Cdigo de evaluacin Histrico

nota

Puntaje de evaluacin Histrico

fecha

Fecha de evaluacin Histrico

video

Nombre de video de evaluacin Histrico

Scritp Generado

/*
Created

03/02/2015

Modified

04/02/2015

Project

Sistema de evaluacin para alumnos pilotos

Model

Company

Author

Nstor Ricardo Mamani Zapana

Version

v0.1

Database

mySQL 5

*/

Create table alumno (


idAlumno Varchar(20) NOT NULL,
nombres Varchar(50),
apellidoPat Varchar(20),
apellidoMat Varchar(20),
dni Varchar(9),
celular Varchar(11),
foto Varchar(20),
fechaIns Date,
idUsuario Int NOT NULL,
Primary Key (idAlumno)) ENGINE = MyISAM;

Create table evaluacion (


idEvaluacion Varchar(20) NOT NULL,
nota Int,
fecha Date,
video Varchar(20),
idAlumno Varchar(20) NOT NULL,
Primary Key (idEvaluacion)) ENGINE = MyISAM;

Create table instructor (


idInstructor Varchar(20) NOT NULL,
nombres Varchar(50),
apellidoPat Varchar(20),
apellidoMat Varchar(20),
dni Varchar(9),

celular Varchar(11),
foto Varchar(20),
fechaIns Date,
idEvaluacion Varchar(20) NOT NULL,
idUsuario Int NOT NULL,
Primary Key (idInstructor)) ENGINE = MyISAM;

Create table usuario (


idUsuario Int NOT NULL,
login Varchar(20),
password Varchar(20),
admin Bool,
Primary Key (idUsuario)) ENGINE = MyISAM;

Create table evaluacionHis (


idEvaluacionHis Int NOT NULL,
nota Int,
fecha Date,
video Varchar(20),
idEvaluacion Varchar(20) NOT NULL,
Primary Key (idEvaluacionHis)) ENGINE = MyISAM;

Alter table evaluacion add Foreign Key (idAlumno) references alumno


(idAlumno) on delete restrict on update restrict;
Alter table instructor add Foreign Key (idEvaluacion) references evaluacion
(idEvaluacion) on delete restrict on update restrict;
Alter table evaluacionHis add Foreign Key (idEvaluacion) references evaluacion
(idEvaluacion) on delete restrict on update restrict;
Alter table alumno add Foreign Key (idUsuario) references usuario (idUsuario)
on delete restrict on update restrict;
Alter table instructor add Foreign Key (idUsuario) references usuario (idUsuario)
on delete restrict on update restrict;