Académique Documents
Professionnel Documents
Culture Documents
16/08/2015
Desarrollo de Aplicaciones en
Manejadores de Bases de Datos
Relacionales
Quinto Semestre
16/08/2015
Desarrollo de Aplicaciones en
Manejadores de Bases de Datos
Relacionales
Unidad 1.
1. PLANEACIN DE LA BASE DE DATOS
ndice.
_Toc436144336
1. PLANEACIN DE LA BASE DE DATOS ............................................................................................................ 2
1.1.
DISEO CONCEPTUAL (MODELO ENTIDAD-RELACION) ...................................................................... 3
1.2.
DISEO LGICO................................................................................................................................... 9
1.2.1 DISEAR RELACIONES (LLAVES PRIMARIAS Y FORANEAS) .................................................................... 10
1.2.2 DISEAR REGLAS DE NEGOCIOS ............................................................................................................ 15
1.2.3 DISEAR VISTAS PARA LOS USUARIOS .................................................................................................. 20
1.2.4 NORMALIZAR LA BASE DE DATOS (1FN, 2FN, 3FN) ............................................................................... 22
1.3 ELECCION DEL MANEJADOR DE BASES DE DATOS (4 EJEMPLOS) ............................................................ 22
1.4 ELECCIN DEL MOTOR DE ALMACENAMIENTO (2 EJEMPLOS) ................................................................ 23
1.5 ESTIMACIN DEL TAMAO DE LA BASE DE DATOS ................................................................................. 26
Bibliografa ....................................................................................................................................................... 28
Pgina 2 de 28
16/08/2015
tipos de entidades
Regulares. Son las entidades normales que tienen existencia por s mismas sin depender de otras. Su
representacin grfica es la indicada arriba
Dbiles. Su existencia depende de otras. Por ejemplo la entidad tarea laboral slo podr tener existencia si
existe la entidad trabajo. Las entidades dbiles se presentan de esta forma:
TAREAS LABORALES
Entidad dbil
Pgina 3 de 28
relaciones
qu es una relacin
Representan asociaciones entre entidades. Es el elemento del modelo que permite relacionar en s los datos
del modelo. Por ejemplo, en el caso de que tengamos una entidad personas y otra entidad trabajos. Ambas se
realizan ya que las personas trabajan y los trabajos son realizados por personas:
Ejemplo de relacin
representacin grfica
La representacin grfica de las entidades se realiza con un rombo al que se le unen lneas que se dirigen a las
entidades, las relaciones tienen nombre (se suele usar un verbo). En el ejemplo anterior podra usarse como
nombre de relacin, trabajar:
ejemplos de relaciones
Pgina 4 de 28
cardinalidad
Indica el nmero de relaciones en las que una entidad puede aparecer. Se anota en trminos de:
cardinalidad mnima. Indica el nmero mnimo de asociaciones en las que aparecer cada ejemplar de la
entidad (el valor que se anota es de cero o uno)
cardinalidad mxima. Indica el nmero mximo de relaciones en las que puede aparecer cada ejemplar de la
entidad (puede ser uno o muchos)
En los esquemas entidad / relacin la cardinalidad se puede indicar de muchas formas. Actualmente una de las
ms populares es esta:
Ejemplo:
En el ejemplo, cada equipo cuanta con varios jugadores. un jugador juega como mucho en un equipo y podra
no jugar en ninguno. Cada entrenador entrena a un equipo (podra no entrenar a ninguno), el cual tiene un
solo entrenador
Pgina 5 de 28
roles
A veces en las lneas de la relacin se indican roles. Los roles representan el papel que juega una entidad en
una determinada relacin. Ejemplo:
atributos
Describen propiedades de las entidades y las relaciones. En este modelo se representan con un crculo, dentro
del cual se coloca el nombre del atributo. Ejemplo:
tipos de atributos
compuesto
mltiples
Pueden tomar varios valores:
Pgina 6 de 28
opcionales
Lo son si pueden tener valor nulo:
identificador
Se trata de uno o ms campos cuyos valores son nicos en cada ejemplar de una entidad. Se indican
subrayando el nombre del identificador.
Para que un atributo sea considerado un buen identificador tiene que cumplir:
1> Deben distinguir a cada ejemplar teniendo en cuenta las entidades que utiliza el modelo. No tiene
que ser un identificador absoluto.
2> Todos los ejemplares de una entidad deben tener el mismo identificador.
3> Cuando un atributo es importante aun cuando no tenga una entidad concreta asociada, entonces se
trata de una entidad y no de un atributo
entidades is a
Son relaciones de tipo is a (es un) aquellas en las que una entidad se descompone en entidades especializadas.
Hay dos tipos de entidades is a: especializaciones y generalizaciones.
Las especializaciones consisten en que una entidad se divide en entidades ms concretas. La entidad general
comparte con las especializadas sus atributos. Se observa una especializacin cuando hay ejemplares para los
que no tienen sentido algunos de los atributos, mientras que para otros s.
Se denomina generalizacin si se agrupan varias entidades en una o ms entidades generales. Se observa una
generalizacin si en varias entidades se observan atributos iguales, lo que significa que hay una entidad
superior que posee esos atributos.
En cualquier caso la representacin en el modelo es la misma, se representan con un tringulo que tiene el
texto ISA. Ejemplo:
En estas relaciones se habla tambin de herencia, ya que tanto los profesores como los bedeles como los
otros, heredan atributos de la entidad personal (se habla de la superentidad personal y de la subentidad
profesores)
Se puede colocar un crculo (como el del nmero cero) en lado de la superentidad para indicar que es opcional
la especializacin, de otro modo se tomar como obligatoria (el personal tiene que ser alguna de esas tres
cosas)
Pgina 7 de 28
Pgina 9 de 28
En la tabla Alumnos tenemos toda la informacin que necesitamos sobre nuestros alumnos como:
Su nmero de expediente.
Su nombre y apellidos.
Su fecha de nacimiento.
El grupo al que pertenece el alumno.
La ubicacin del grupo, es decir, el aula donde estn los alumnos de ese grupo (Primera planta, edificio
anexo, etctera).
Cualquier tipo de comentario de inters: grupo de compensatoria, apoyo, etctera.
Para la tabla Grupos nos podamos conformar con la denominacin del grupo (1A, 1B, 3A...) pero le hemos
aadido algunos datos que nos pueden resultar de inters:
Nmero total de alumnos que tiene el grupo.
El lugar donde se encuentra ubicado: Aula de msica, Aula 205 Edificio principal, etctera.
Cualquier otro dato de inters: Compensatoria, grupo de apoyo, etctera.
Si saber nada de bases de datos y de relaciones podemos, darnos cuenta que al comprobar los datos incluidos
en las tablas de Alumnos y Grupos existe informacin que se repite en ambas:
Esta situacin no es demasiado favorable cuando trabajamos con bases de datos donde habitualmente la
cantidad de informacin que se maneja es importante. La solucin pasa por RELACIONAR las tablas con
informacin coincidente de modo que no exista duplicidad de informacin. Todo esto, traducido a un lenguaje
ms natural sera: "Para qu escribir dos veces lo mismo, si puedo hacerlo una sola y trabajar del mismo
modo".
Pgina 10 de 28
Volviendo a nuestro ejemplo, si relacionamos las tablas Alumnos y Grupos mediante el nombre del grupo sera
suficiente con indicar en la tabla Alumnos este valor para obtener el nmero de alumnos del grupo, su
ubicacin y las posibles observaciones:
Tipos de relaciones
No siempre las condiciones para establecer vnculos entre dos tablas son iguales, la manera en que se
relacionan las tablas entre s da lugar a comportamientos diferentes. En la estructutura de cualquier base de
datos encontramos principalmente tres tipos de relaciones que se describen del siguiente modo:
Uno a muchos.
Muchos a muchos.
Uno a uno.
Uno a muchos
Veamos el primer modelo de relacin tomando como referencia las tablas Alumnos y Grupos. Cualquier
alumno (MUCHOS) pertenece slo a un grupo (UNO), un alumno no puede estar en ms de una clase. Pues
bien, ni ms ni menos que este sera el argumento de una relacin MUCHOS A UNO.
Pgina 11 de 28
Otro ejemplo, sabemos que cada profesor pertenece nicamente a un departamento, pero en cada
departamento existe ms de un profesor. De aqu podemos extraer una relacin UNO a MUCHOS entre las
tablas Departamentos y Profesores.
En las relaciones de uno a muchos cada registro de una tabla A, a la que llamaremos tabla primaria, puede
estar enlazado con ms de un registro de otra tabla B, a la que llamaremos tabla secundaria. En cambio, cada
registro de la tabla B slo puede estar enlazado a un registro de la tabla A.
Uno a uno
Las relaciones uno a uno no son demasiado frecuentes pero existen as que debemos conocerlas. Buscando
alguna coincidencia en nuestro entorno que nos pueda servir como ejemplo encontramos el vnculo entre un
tutor y su grupo. Como sabemos, un profesor puede ser tutor de un slo grupo (UNO) y del mismo modo, cada
grupo slo puede tener un tutor. Esta sera una relacin UNO a UNO.
Cada registro de la tabla A se relaciona con un nico registro de la tabla B y cada registro de la tabla B slo se
relaciona con un elemento de la tabla A. Como hemos comentado, este tipo de relaciones son poco comunes.
Muchos a muchos
Resumiendo lo visto hasta ahora podemos decir que el tipo de relacin ideal es uno a muchos o muchos a uno.
Las relaciones uno a uno no aportan demasiado a la base de datos, simplemente nos ayudan a tener mejor
organizada la informacin pero poco ms. Veamos qu ocurre con las relaciones muchos a muchos.
Por ejemplo, si queremos conocer los profesores que dan clase a un grupo o los grupos a los que da clase un
profesor determinado, necesitamos en principio dos tablas: Profesores y Grupos. Y cul sera la relacin entre
estas dos tablas? Pues bien, para establecerla podramos leer que un profesor da clases a varios grupos (1A,
1B, 2C, etctera) y un grupo recibe clases de varios profesores (Carlos Prez, Antonio Garca, etctera). Por lo
tanto, nos encontramos entre una relacin MUCHOS A MUCHOS.
Desde un punto de vista terico diramos que en las relaciones Muchos a muchos a cada registro de la tabla A
se le pueden asociar varios registros de la tabla B y cada registro de la tabla B puede estar relacionado con ms
de un registro de la tabla A.
Jos Mauricio Estrella Vzquez
Pgina 12 de 28
Muy importante, los campos que se utilicen para establecer la relacin entre las dos tablas deben ser del
mismo tipo (INTEGER, TEXTO, SMALL INTEGER, etctera). Habitualmente se suelen utilizar tipos enteros
(INTEGER) para este propsito, aunque nos valdra igualmente cualquier otro tipo siempre y cuando sea el
mismo en las dos tablas. Adems, debes tener en cuenta lo siguiente:
La propiedad Tamao del campo debe ser igual en ambas tablas.
Si el campo en la tabla primaria est definido como de Valor automtico en la tabla secundaria debe
estar definido como INTEGER.
El campo comn debe ser Clave principal en la tabla primaria.
Pgina 13 de 28
Clave Primaria
La clave primaria es un dato que identifica de forma nica a una entidad o registro. Cuando la clave primaria se
compone de ms de un dato, se trata de una clave concatenada.
Clave Secundaria
La clave secundaria es la agregacin del valor de una clave primaria de una tabla en otra tabla diferente donde
se quiere establecer una relacin con la tabla original mediante la duplicacion del valor para establecer una
referencia. El nombre de clave secundaria se deriva del hecho de que la segunda tabla en la relacin ya tiene
una clave primaria propia, por lo que la clave primaria que se introduce desde la primer tabla es secundaria
a la segunda tabla.
Pgina 14 de 28
Pgina 15 de 28
16/08/2015
Descripcin de la regla
Nombre de la regla
Descripcin de la Regla
ID
Objetos
negocio
de
Atributo
Reclamacion numSiniestro
Operador
Valor
VACO
Accin (THEN z)
Objetos de Atribut
Operador
negocio
os
Operador
Lgico
Reclamacion tipo
Objetos
de
negocio
Atributo Operador
Valor
Excepciones
Observaciones
1. Todas las reclamaciones nacern
como Iniciales (tipo = 0) a menos que en
esta
regla
se
asignen
como
complementarias
Ntese que se est modelando un IF/THEN/ELSE de manera que un usuario de negocio pueda
entenderlo y modelarlo.
Una regla un poco ms compleja
Pero qu ocurre cuando una regla posee varias validaciones? Y si al validar una condicin debe ejecutar
caminos alternos? Este mismo formato de documentacin de reglas de negocio permite acomodar mayor
complejidad:
Para reembolsos, verificar que la factura est cubierta por la vigencia de la pliza. En caso de ser correctos,
verificar el periodo de prescripcin de gastos; en caso contrario, registrar una incidencia.
En este caso, falta detalle cmo generar una nueva incidencia, qu es la "verificacin de periodo de
prescripcin de gastos" pero podemos dejarlo igualmente como un IF/THEN/ELSE que podemos modelar as:
Entidades involucradas: Pliza, Factura.
Parmetros involucrados: echa de emisin de la factura, fechas de inicio y fin de la pliza.
Validaciones a realizar: si fecha de emisin > fecha inicio pliza Y fecha de emisin < fecha fin pliza
Accin a tomar: ejecutar la regla "verificar periodo de prescripcin de gastos".
Caso alterno: generar una nueva incidencia.
Que en pseudocdigo se expresa como IF Factura.fechaEmision > Poliza.fechaInicioVigencia &&
Factura.fechaEmision < Poliza.fechaFinVigencia THEN ejecuta "verificar periodo de prescripcin de gastos" ELSE
new Incidencia.
Jos Mauricio Estrella Vzquez
Pgina 16 de 28
16/08/2015
Ntese que la ejecucin de otras reglas de negocio a partir de una validacin ya conforma procesos de negocio.
Descripcin de la regla
Nombre de la regla
Descripcin de la Regla
ID
S_1165_RN0156
Objetos
negocio
Factura
de
Atributo
FechaEmision
<>
Poliza
fechaInicio
Vigencia
Operador
Valor
And
ELSE
Objetos de
Atributos
negocio
S_1717_PN02
18
Incidencia
Incidencia
Incidencia
Incidencia
Incidencia
Operador
Nivel
idNivel
cdigo
descripcion
severidad
Operador
Operador
Lgico
Objetos
de
negocio
Atributo
=
=
=
=
=
Factura
idFactura
Valor
Excepciones
1
FAC
S_1165_RN0156{ID}
S_1165_RN0156{DESC}
FATAL
Observaciones
Pgina 17 de 28
Pgina 18 de 28
Que utilizaremos como objeto de valor al extraer informacin de la base de datos y durante el proceso de
ejecucin. Por otro lado, con el modelado de las reglas podemos usar de manera ms eficiente un BRMS, pues
se tiene la "receta" para construir las sentencias de las reglas de negocio:
Finalmente dentro de nuestro modelo, aquellas reglas que poseen como accin la ejecucin de otras reglas,
son los bloques constitutivos de procesos de negocio:
Hasta ahora hemos trabajado bajo el supuesto que las entidades de negocio existen y toda la informacin que
las compone es accesible desde nuestro sistema. Un punto crtico para el xito consiste en determinar
justamente, a qu bases de datos conectarnos o qu servicios consumir para obtener esta informacin. En
caso de sistemas como ERPs, CRMs o "legados", tendremos que sentarnos con el rea IT correspondiente para
cerrar temas de acceso, seguridad y desempeo; mientras ms pronto, mucho mejor.
Por otro lado, no todos los sistemas son iguales: algunas fuentes de datos de nuestros procesos de negocio
trabajan por lotes mientras otras permiten ser llamadas en tiempo real. Saber de dnde vienen los datos de
nuestro sistema puede hacer toda la diferencia. Por ejemplo, en nuestro caso particular nos dimos cuenta que
no todos los sistemas que usbamos podan ser llamados en tiempo real, sobre todo por el pequeo detalle de
que son sistemas endebles que no soportan mucha carga. Y si consideramos que nuestro sistema ejecuta un
mximo de 1,166 reglas de negocio por segundo, tenamos un stopper en nuestras manos. Para resolverlo,
existen varias opciones, pero propusimos dos: hacer todos los procesos mediante llamadas asncronas a los
sistemas que utilizan, o hacer una precarga de la informacin en bases de datos locales para despus correr
todo como un proceso por lotes. Como el cliente es ms bien del tipo "legado", se decidi que la precarga era
la mejor opcin.
Otro tema es la seguridad. Existen algunas reglas de negocio que no todos deberan poder ver, como el clculo
de primas o descuentos por antigedad. Esto implica coordinarse con todos los involucrados desde un inicio
para saber quin ve qu, y no llegar a malos entendidos con diferentes reas usuarias.
Finalmente, el BRMS. Los hay algunos muy buenos, pero si vamos por la opcin de uno comercial, es
indispensable que el cliente haya adquirido todas las licencias necesarias; si es posible, incluso antes de que
empiece la etapa de construccin. En este proyecto, a alguien se le ocurri decir que "somos partners de IBM",
por lo que el cliente asume que ya tenemos las licencias para usar el producto. Sin embargo, "la realidad es un
poco diferente" y aunque tenemos derecho a bajar algunas cosas, no podemos descargar la versin comercial
del BRMS con estadsticas y funcionalidad completa, por lo que a la hora de sentarse a implementar nos dimos
un par de topes contra la pared antes de llegar al punto de decir "si no consigues las licencias, no podemos
continuar".
Pgina 19 de 28
Pgina 20 de 28
Los nombres de los campos y expresiones de la consulta que define una vista DEBEN ser nicos (no puede
haber dos campos o encabezados con igual nombre). Note que en la vista definida en el ejemplo, al campo
"s.nombre" le colocamos un alias porque ya haba un encabezado (el alias de la concatenacin) llamado
"nombre" y no pueden repetirse, si sucediera, aparecera un mensaje de error.
Otra sintaxis es la siguiente:
Pgina 21 de 28
dBase
Microsoft SQL Server
Ntese como este ltimo (SQL Server) se filtra en ambos, y es que proporciona versiones para
ambas situaciones o modelos.
Jos Mauricio Estrella Vzquez
Pgina 22 de 28
Ahora bien, los SGBD Cliente/Servidor son aquellos que como tal permiten realizar una conexin remota o
local mediante la ejecucin de un servicio o aplicacin que opera mediante un puerto lgico de datos. Esto es
entonces que para poder emplear un SGBD de este tipo se requiere siempre tener instalado dicho software en
un equipo como mnimo, de otra manera la administracin o acceso a la base de datos es imposible.
Por otro lado los SGBD embebidos permiten tener acceso a la base de datos sin necesidad de tener algn
software instalado. Aunque si bien es cierto debe haber un punto de partida, por lo que el desarrollador de la
base de datos si deber instalarse ciertas herramientas para la creacin de la BD. Esto claro depender del
SGBD embebido que desee utilizar.
El tipo embebido entonces puede generar uno o ms archivos por base de datos, permitiendo tener una
portabilidad ms cmoda. Pues como ya se menciono, los equipos a donde se distribuya no requerirn ningn
software extra como SGBD, pues ese trabajo ya estar hecho previamente por el desarrollador en su equipo.
Pero Qu tiene uno que no tenga el otro? Esta pregunta nos lleva visualizar aspectos resaltantes entre uno u
otro. Y es que por ejemplo debemos resaltar que en aspectos de seguridad, los SGBD Cliente/Servidor se llevan
el premio. Pues estos son ms ptimos que los embebidos en cuestiones de seguridad. Y es que si
Cliente/Servidor significa acceso remoto, entonces debemos de prevenir cualquier acceso mal intencionado.
Esto lleva a concluir que dichos SGBD por tanto deben proveerse de capacidades que contribuyan
enormemente a la proteccin de informacin.
Cantidad de datos y tipo de datos (texto, binarios, espacial u otros tipos especficos)
Nmero simultaneo de usuarios (concurrencia a la base de datos)
Disponibilidad: cuanto tiempo puede permitir tener de baja su base de datos.
Escalabilidad: qu har cuando la cantidad de datos y el nmero de usuarios aumente.
Seguridad: cuanto necesitar de caractersiticas como seguridad de encripcin de datos,
administracin de usuarios, privilegios.
Manejo y administracin: cuan amigable quiere que sea la administracin de su base de datos.
Que otras caractersticas cool quiere obtener de su base de datos.
Es razonable elaborar los requerimientos en funcin de sus recursos y necesidades reales. Por su puesto que
es recomendable ver un poco hacia el futuro y modificar los requerimientos acorde al mismo, pero eso debe
hacer con cuidad.
Pgina 23 de 28
Pgina 24 de 28
Pgina 25 de 28
Pgina 26 de 28
16/08/2015
NULL
NULL
NULL
Para este ejemplo estimaremos que el nro de filas de la tabla ser de 1000.
Como primer paso se debe calcular el tamao que ocupara 1 fila.
El valor 4 de la frmula representa la sobrecarga del encabezado de la fila de datos.
Luego calculamos el tamao de las columnas de tamao variable:
2
2
Para nuestro ejemplo:
2 1 2
50
Suponemos que siempre se ocupar el mximo, si se conoce el valor promedio es conveniente ajustar el valor
de Max_Var_Size. Los bytes agregados a Max_Var_Size son para el seguimiento de cada columna de longitud
variable.
Entonces:
54
NuN_Btmap: el mapa de bits NULL, se reserva para administrar la nulabilidad en las columnas
2
Para nuestro ejemplo:
Entonces:
Finalmente una fila ocupara:
8
54
Entonces el tamao de la tabla ser:
69
1000 69000
3
3
67.4
69
Pgina 27 de 28
Bibliografa
Aulaclic.com. (s.f.). Curso de SQL Server. Recuperado el 08 de Septiembre de 2015, de
http://www.aulaclic.es/sqlserver/index.htm
Garca, A. F. (Enero de 2000). Conceptos bsicos de la Programacin Orientada a Objetos. Recuperado el 18
de Septiembre de 2015, de http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/clases1/clases.htm
Gutirrez, P. (2015 de 10 de 10). Genbeta:dev. Obtenido de http://www.genbetadev.com/bases-dedatos/fundamento-de-las-bases-de-datos-modelo-entidad-relacion
May, F. G. (4 de Junio de 2012). PROGRAMACION ORIENTADA A OBJETOS (POO) . Recuperado el 18 de
Septiembre de 2015, de http://itzoisc.blogspot.mx/2012/06/43-definicion-implementacion-y-herencia.html
Microsoft. (s.f.). Microsoft Developer Network. Recuperado el 08 de Septiembre de 2015, de
https://msdn.microsoft.com/es-es/library/ms187445%28v=sql.120%29.aspx
Roque, E. G. (2007). Principios Basicos de Informtica. Madrid: Dykinson.
Pgina 28 de 28