DISEÑO DE UNA BASE DE DATOS
1.
CONTENIDO
1.1.
Normalización ejemplos
Uno
de los factores más importantes es el diseño de las Bases de Datos. Si las
tablas no están correctamente diseñadas, pueden causar un montón de dolores de
cabeza para realizar complicadísimas llamadas SQL.
Básicamente, las reglas de Normalización
están encaminadas a eliminar redundancias e inconsistencias de dependencia en
el diseño de las tablas.
a. Tres pasos para
normalizar. Para esto debemos tener en cuenta lo
siguiente:
Crear una BD funcional y eficiente.
Ejemplo: crear una tabla con la información de usuarios de una empresa.
Los datos a guardar son el nombre, la empresa, la dirección, un e-mail, tel1, tel2.
De la cual quedaría de la siguiente manera:
Diríamos que en esta tabla
está en un nivel de Formalización cero
porque ninguna de las reglas de normalización ha sido aplicada. Se observa los
campos Telefono1 y Telefono2.
¿Qué haremos cuando en
nuestra aplicación necesitemos un tercer teléfono? ¿Si se tiene que añadir otro campo/columna a tu tabla se
tendría que reprogramar el código fuente donde concorde con dicha tabla.
Obviamente el sistema debe ser
funcional que pueda crecer y adaptarse fácilmente a los nuevos requisitos.
b. Reglas del primer nivel
de normalización.
·
Eliminar los grupos
repetitivos de las tablas individuales.
·
Crear una tabla
separada por cada grupo de datos relacionados.
·
Identificar cada grupo
de datos relacionados con una clave primaria.
c. Segunda regla de
normalización.
·
Crear tablas separadas
para aquellos grupos de datos que se aplican a varios registros.
·
Relacionar estas tablas
mediante una clave externa.
Hemos separado el campo Teléfono en otra tabla, de forma que podemos añadir
más sin tener inconvenientes con los datos. También vamos a usar una clave
primaria para relacionar estos campos
d.
Tercera regla
de normalización.
Eliminar aquellos
campos que no dependan de la clave.
Nuestro nombre de empresa y su
dirección no tienen nada que ver con el campo IdUser, así que tienen que tener su propio
IdEmpresa.
1.2.
Integridad seguridad y rendimiento de la base de datos
La
seguridad de los datos implica protegerlos de operaciones indebidas que pongan
en peligro su definición, existencia, consistencia e integridad
independientemente de la persona que los accede. Esto se logra mediante
mecanismos que permiten estructurar y controlar el acceso y actualización de
los mismos sin necesidad de modificar o alterar el diseño del modelo de datos;
definido de acuerdo a los requisitos del sistema o aplicación software.
Seguridad
en las Bases de Datos El objetivo es proteger la Base de Datos contra accesos
no autorizados. Se llama también privacidad. INCLUYE ASPECTOS DE:
·
Aspectos legales,
sociales y éticos.
·
Políticas de la
empresa, niveles de información pública y privada. Controles de tipo físico, acceso a las
instalaciones.
·
Identificación de
usuarios: voz, retina del ojo, etc.
·
Controles de sistema
operativo.
Los SGBD tienen
opciones que permiten manejar la seguridad, tal como GRANT, REVOKE, etc.
También tienen un archivo de auditoria en donde se registran las operaciones
que realizan los usuarios.
1.2.1.
Medidas de Seguridad.
·
Físicas:
Controlar el acceso al equipo. Tarjetas de acceso, etc.
·
Personal:
Acceso sólo del personal autorizado. Evitar sobornos, etc.
·
SO: Seguridad a nivel de
SO.
Herramientas de seguridad, perfiles de usuario, vistas,
restricciones
1.3.
Mantenimiento
Una
tarea muy importante en el mantenimiento y administración de un Sistema, es
realizar un mantenimiento constante a la base de datos, de manera que se pueda
velar por el correcto funcionamiento y óptimo desempeño del sistema.
Tenga en cuenta que cada motor
de base de datos (SQL Server u Oracle) ofrece las herramientas necesarias para
realizar monitoreo pro-activo, diagnósticos (herramientas de perfilamiento), o
acciones de afinamiento sobre la base de datos.
Lineamientos para el monitoreo
y afinamiento
Recomendamos al DBA lo siguiente:
1.3.1.
Ejecute un monitoreo continuo sobre el rendimiento de la
base de datos.
Nótese
que los motores de bases de datos en sí, proveen las herramientas
especializadas que permiten un monitoreo, ejecutar diagnósticos e interpretar
resultados para el posterior afinamiento (además de archivos de log
correspondientes).
A través del monitoreo
proactivo, usted puede anticiparse a una situación no deseable (table scans,
bloqueos o demoras, etc.), y evidenciar aspectos que requieren de afinamiento.
Por ejemplo, la detección de
un table scan sugerirá que las consultas/estadísticas no están al día de manera
óptima, o que se necesita mantener los índices (crear nuevos o redefinir los
existentes).
Si el DBA detecta que el motor de base de datos no cuenta
con un óptimo desempeño (no ejecuta las consultas bajo buenos tiempos de
respuesta), recuerde que podrá escalar verticalmente la base de datos en
cualquier momento (o escalar horizontalmente si se utiliza un esquema de
clúster activo-activo como Oracle RAC).
Lleve a cabo un afinamiento de manera periódica, siguiendo
mejores prácticas.
Para procesos en los que se
espera la producción de una gran cantidad de casos, o gran cantidad de
actividades por día, el afinamiento de la base de datos se recomienda como
mínimo de manera semanal.
Las mejores prácticas incluyen
que el afinamiento se realice en horarios no laborales, y de manera planeada
(considerando que estas tareas pueden tomar un tiempo significativo), al igual
que otras recomendaciones que sean instruidas por el fabricante del motor de la
base de datos.
Los principales aspectos sujetos al
afinamiento son:
·
Verificar la integridad
de la base de datos.
·
Actualizar las
estadísticas
·
Reorganizar y mantener
los índices actualizados (recrear los que estén altamente fragmentados o
reorganizarlos de acuerdo al orden las columnas consultadas -especialmente para
índices compuestos).
·
Reducir la base de
datos (shrinks).
·
Monitorear los
filegroups, de manera que su configuración (tamaño, incremento, tamaño máximo,
volumen de disco usado, etc.) sea la adecuada de acuerdo a su comportamiento de
crecimiento.
1.4.
Estimar el tamaño de una base de datos
Cuando
se diseña una base de datos, puede que necesite realizar una estimación del
tamaño que tendrá la base de datos cuando esté llena. Esta estimación puede
ayudarle a determinar la configuración de hardware que necesitará para realizar
lo siguiente:
·
Conseguir el
rendimiento que necesitan las aplicaciones.
·
Asegurar la cantidad
física adecuada de espacio en disco necesario para almacenar los datos y los
índices.
Asimismo, la estimación del
tamaño de la base de datos puede ayudarle a determinar si el diseño de su base
de datos necesita reajustes. Por ejemplo,
puede determinar que el tamaño estimado de la base de datos es demasiado grande
para una implementación en su organización, y que se necesita un mayor grado de
normalización. Por el contrario, el tamaño estimado puede inferior al esperado,
con lo que podrá reducir la normalización de la base de datos para mejorar el
rendimiento de las consultas.
Para realizar una estimación
del tamaño de una base de datos, efectúe una estimación del tamaño de cada
tabla por separado y sume los valores obtenidos. El tamaño de una tabla depende
de si tiene índices y, si los tiene, del tipo de índices.
El tamaño de la base de datos
depende de su aplicación, así como del número de usuarios y elementos. Una base
de datos que contiene los datos de inicialización suministrados con la
aplicación Movie Site puede utilizar
sólo 250 MB, mientras que las tablas de LikeMinds
para un sitio grande con millones de usuarios pueden alcanzar los 10 GB. Esta
sección presenta algunas directrices generales para estimar el tamaño de su base
de datos, pero sus resultados pueden variar.
Las tablas que participan en
la mayor parte del tamaño de la base de datos son las siguientes:
Lps_User_Rating:
Esta tabla domina normalmente sus consideraciones de espacio. Los usuarios
normalmente hacen un promedio de 50 a 100 evaluaciones. Los usuarios
suministrados con Movie Site hacen un promedio de 500 evaluaciones.
Lps_User_Trx:
Esta tabla puede volverse muy grande, dependiendo del número de actividades de
afinidad de elementos, cadena de clics o compra registrada en sus aplicaciones.
Lps_MBA_Scored:
Esta tabla puede volverse muy grande, dependiendo del número de productos que
venda su sitio y del número de relaciones que desee configurar para cada
producto. Por ejemplo, si tiene 1000 productos listados en la tabla Lps_Item_Data y desea almacenar 10
relaciones para cada producto, una tabla Lps_MBA_Scored
podrá aumentar hasta llegar a las 10.000 filas.
Lps_User_Mentor: El
tamaño de esta tabla depende del número de usuarios y del número de mentores
asociados con cada usuario (50 por omisión).
Lps_User_Data:
Esta tabla puede suponer una gran porción del tamaño de la base de datos si
tiene un gran número de usuarios con pocas valoraciones. Esta tabla está muy
indexada, lo que puede afectar al rendimiento.
Lps_Item_Data:
Esta tabla es normalmente bastante pequeña, pero puede ser importante si
almacena grandes cantidades de datos sobre cada elemento.
Las tablas restantes son
normalmente inferiores a 100 KB cada una.
La siguiente tabla ofrece
números normales de filas, tamaños de fila y tamaños de índice para una base de
datos "normal" de Microsoft SQL Server con 5000 elementos y 100.000
usuarios. Los tamaños de fila sólo incluyen los campos necesarios para
LikeMinds, e incluyen campos nulos normales y carga adicional de índice en
clúster. Los tamaños variarán para otros sistemas de bases de datos,
especialmente para índices.
2.
RESUMEN
En lo que es las normalizaciones de base
de datos es simplemente diseñar bien una base datos para reducir la información
y que el sistema sea más frágil cuando funcione
En lo que es dar seguridad a una BD es la forma correcta
que debemos tener en cuenta con una base de datos que debe estar bien protegida
o de la manipulación de datos.
En lo que es mantenimiento es muy importante esto para un
sistema ya que de esta forma el sistema va a estar en un perfecto estado y
realizar las operaciones que tiene que hacer de forma óptima.
El tamaño de una base de datos también es otro punto
importante ya que hoy en día se realizan sistemas muy complejos de los cuales
se guarda información a diario y esto pues tiende a llevar alta capacidad de
información y para ello es necesario tener que realizar un cálculo.
3.
RECOMENDACIONES
·
Evitar la redundancia
de la información.
·
Tener en persistencia
la integridad de la información.
·
Mantener en buenas
condiciones a los sistemas.
·
Proveerse de la
cantidad de información que puede haber a futuro en una base de datos.
4.
CONCLUSIONES
Algunos
de los aspectos que hemos podido percibir en este trabajo es todo lo que
tenemos que tener en cuenta ciertos tramites a partir de realizar un sistema
con base datos, y que por ejemplo los puntos importantes de este tema es los
diversos factores a tener en cuenta para realizar una buena base de datos y
mantenerla de una forma adecuada como diseñar una base de datos de una manera
que la información que se maneje sea precisa, dar mantenimiento, darle una
seguridad a la información de que el peso de la información no perjudique al
sistema o pueda generar problemas.
5.
APRECIACIÓN DEL EQUIPO
Este tema es de gran
importancia en la cual hemos podido aprender muchos factores principales que
debemos hacer cuando tengamos en frente a realizar una base de datos.
Diapositiva>> http://es.slideshare.net/JorgeParedesToledo/diseo-de-una-base-de-datos-61275390
Diapositiva>> http://es.slideshare.net/JorgeParedesToledo/diseo-de-una-base-de-datos-61275390
6.
LINKOGRAFÍA
·
Normalización de BD. Viernes, 22 de
Abril del 2016, concepto Slideshare. Recuperado. http://es.slideshare.net/Drakonis11/integridad-y-seguridad-en-las-bases-de-datos-presentation
·
Seguridad base de datos. Viernes, 22
de Abril del 2016, concepto Instituto nacional de CiberSeguridad de España. Recuperado de,https://www.incibe.es/blogs/post/Seguridad
·
Estimar el tamaño de una base de
datos. Viernes, 22 de Abril del 2016, concepto MSDN. Microsoft. Recuperado
de, https://msdn.microsoft.com/es-es/library/ms187445(v=sql.120).aspx
·
Calculo del tamaño de
una base de datos, Viernes 22 de Abril del 2016, IBM. Recuperado de, http://publib.boulder.ibm.com/wcmid/mp/v42/helpsystem/es/ra000132.html
·
Mantenimiento a una
base de datos, Viernes 22 de Abril del 2016, Bizagi. Recuperado de, http://help.bizagi.com/bpmsuite/es/index.html?sysadmin_tuning.htm
Muy bien detallado y claro . Gracias por su aporte de investigación. Agregar IMAGENES y VIDEOS sobre el TEMA. Saludos
ResponderEliminar