novena sesión diseño físico
Post on 08-Jul-2015
192 Views
Preview:
TRANSCRIPT
Diseño FísicoBase de Datos
Lic. César Alcántara Loayza
CAL/Modelo Relacional
Tópicos� Diseño Físico� Indice� Clustering� Particionamiento� Creación de Base de datos� Errores de Diseño
CAL/Modelo Relacional
Diseño Físico - Rendimiento ¿Donde almacena la data de una base
de datos? El medio es el disco duro; existen diversos fabricantes y características de los discos duros.
Para manejar los datos sobre el disco duro el sistema operativo divide el disco en bloques, cada bloque puede guardar cierta cantidad de información.
CAL/Modelo Relacional
Diseño Físico La información se puede grabar en
bloques contiguos de haber espacio.
Si no existe espacio en bloques contiguos, la información puede usar otros bloques libres.
CAL/Modelo Relacional
Diseño Físico La mayoría de RDBMS son capacez de
manejar el almacenamiento de datos sobre un disco duro. Revisamo las técnicas para mejorar el rendimiento de la base de datos: Indices Clustering Particionamiento
CAL/Modelo Relacional
RDBMS No existe una formula mágica para
maximizar el rendimiento de la base de datos: Cada base de datos es diferente. La
decisión de que tablas combinar dependen frecuentemente de las tablas y las necesidades de la organización.
Las necesidades de la organización pueden cambiar cambio en el diseño físico.
CAL/Modelo Relacional
RBDMS Cada RDBMS maneja los joins y
búsquedas de forma distinta. Hay que revisar los internals de cada RDBMS para aprovechar al maximo sus capacidades.
CAL/Modelo Relacional
Indices Cada vez que se agregan filas a una tabla, el
RDBMS escribe el registro en una pagina donde encuentre espacio, muy probablemente al final de la tabla, sin fijarse en el valor de los datos; si leemos la tabla esta se mostrará en el orden cronológico de grabación. Si deseamos recuperar los datos en ordenado por otro campo el RDBMS deberá leer toda la tabla y luego clasificarla.
CAL/Modelo Relacional
Las busquedas de este tipo consumen recursos valiosos (memoria, I/O hacia el disco duro), lo que resulta en pobre rendimiento, es decir lentitud.
En vez de forzar a que el RDBMS lea toda la tabla y la clasifique podemos crear índices por los campos que deseemos sea la consulta.
Indices
CAL/Modelo Relacional
Los indices son estructuras que permiten un acceso mas rápido a los datos en un orden determinado. Es semejante a los indices de los libros, son estructuras que sirven para ubicar mas rápidamente la información que buscamos.
Indices
CAL/Modelo Relacional
En vez de buscar la tabla, el RDBMS buscará el indice.
Indices
INDICENumArt NumOrd101 104105 101108 103127 102, 302
ORDENNumOr
dFeOr
dNumArt Cos Rec
101 01/01 105 8.5 Si102 01/01 127 12.90 Si103 01/11 108 13.9 No104 01/11 101 12.5 Si... ... ... ... ...302 127 12.90 No
CAL/Modelo Relacional
Si la recuperación por los índices es mas rápida entonces ¿por qué no se crea un índice por cada campo? La razón está en la operación de escritura, cada vez que se actualiza información tendrá que actualizarse cada indice también, en consecuencia habrá mas lentitud. Establecer un balance.
Indices
CAL/Modelo Relacional
Indexar un campo resulta en búsquedas y reuniones mas rápidos pero: Incrementa el espacio en disco (auqnue
ahora la tecnología permite mayores capacidades).
Hace mas lentas las inserciones, borrados y modificaciones.
Indices
CAL/Modelo Relacional
Cada RDBMS crea automáticamente un indice por cada llave primaria.
Se pueden obtener mejores resultados creando indices por cada llave foránea, y por aquellos campos que no son llaves pero por los cuales se hacen muchas consultas.
Indices
CAL/Modelo Relacional
Clustering El computador almacena la data en
bloques, si la información está guardada en pocos bloques contiguos podemos recuperar la información sin examinar mucho el disco, ahorrando tiempo.
Clustering es almacenar los datos relacionados en bloques contiguos de disco.
CAL/Modelo Relacional
Debido a que las operaciones de reunión son muy frecuentes, usar clustering para registros relacionados en la reunión puede mejorar el rendimiento de la base de datos.
Por ejemplo almacenar el cliente con todos sus pedidos, de modo que cuando se lea el cliente también se obtenga sus pedidos.
Clustering
CAL/Modelo Relacional
Si bien es cierto que se gana rendimiento usando el clustering de datos también puede ocurrir: Hacer lentas la operaciones que requieren una
exploración completa de la tabla. Puede ocasionar que la inserción de datos sea mas
lenta pues el RDBMS debe buscar el disco por el último registro de la tabla.
Puede incrementar el tiempo necesario para actualizar datos en los campos usados para definir el cluster pues el RDBMS debe determinar cuales registros incluir en el cluster.
Clustering
CAL/Modelo Relacional
Particionamiento El Clustering dispone registros desde
dos o mas tablas juntos en el disco duro para mejorar las reuniones de tablas. Particionar una tabla, de otro lado, parte una única tabla en dos o mas tablas para limitar la cantidad de datos que el RDBMS deba recuperar de una vez.
CAL/Modelo Relacional
Existen dos tipos de particionamiento: Particionamiento horizontal – Parte los
registros de una tabla en dos o mas tablas. Particionamiento vertical – Parte las
columnas de la tabla en dos o mas tablas.
Particionamiento
CAL/Modelo Relacional
Particionamiento HorizontalARTICULO
ArtID Titulo DistID Precio
GrEdad
101 Cuentos 102 14.90 13102 Novelas 101 13.90 9103 Poemas 102 9.90 13
ARTICULOArtID Titulo DistID Preci
oGrEdad
104 Deportes 102 12.90 11105 Cocina 102 13.90 13106 Historia 101 14.90 11
Bloque 1
Bloque 2
CAL/Modelo Relacional
Se podría considerar el particionamiento horizontal cuando una tabla crece mucho de modo que las busquedas y reuniones tengan un tiempode respuesta inaceptable. Ejem. Almacer en una tabla las ordenes de hasta tres meses, que son las mas usadas; el resto dejarlas en otra tabla de ordenes.
Particionamiento Horizontal
CAL/Modelo Relacional
Partir los registros de la tabla en dos o mas tablas reduce la cantidad de datos que el RDBMS debe trabajar en búsquedas y reuniones. De otro lado cuando se tenga que buscar cada fila en las tablas para hallar por ejemplo todas las ordenes de un distribuidor.
La única manera de saber si el particionamiento mejora el rendimiento es analizar los patrones de uso de los datos.
Particionamiento Horizontal
CAL/Modelo Relacional
Particionamiento Vertical Para reducir el tamaño de la tabla
manteniendo las columnas mas comunmente usadas en una tabla en un número pequeño de bloques en el disco duro del computador.
CAL/Modelo Relacional
Ejemplo
Particionamiento VerticalARTICULO
ArtId titulo DistID101 Cuentos 102102 Novelas 101103 Poemas 102
ARTICULOArtId Precio GrEdad101 12.90 11102 13.90 13103 14.90 11
CAL/Modelo Relacional
Particionamiento Tanto el particionamiento horizontal y
vertical ofrecen ventajas y desventajas. Si alguna operación requiere manipular
toda la tabla original podría necesitarse una reunión que haga lenta la operación.
CAL/Modelo Relacional
SQL Para Crear Base Datos La cuarta etapa del Ciclo de Vida de la
Base de Datos es la Implementación, donde se usa el SQL para crear la base de datos y sus tablas.
CAL/Modelo Relacional
Cuando se crea una base de datos se crea el contenedor de la tablas y vistas. El nombre tecnico es Esquema.
Create Schema nombre_del_esquema
SQL Para Crear Base Datos
CAL/Modelo Relacional
Las tablas se crean con:
Create Table Nombre_Tabla (Nombre_Col1 Tipo_Dato Nombre_Col2 tipo_Dato .... Primary Key (Nombre_Colx) Foreign Key (Nombre_ColX))
SQL Para Crear Base Datos
CAL/Modelo Relacional
Catálogo Diccionario El RDBMS almacena la definición de la
base de datos en el Catálogo o diccionario de datos. El diccionario de datos es el corazón del RDBMS, ahí se encuentran todas las definiciones de columnas, tablas, vistas, indices, llaves etc.
El catálogo también almacena tablas para el control del RDBMS.
CAL/Modelo Relacional
Errores De Diseño Los errores comunes de diseño ocurren
en cuatro áreas: Objetos y reglas del negocio Restricciones, columnas y llaves. Vínculos e integridad referencial Problemas internacionales.
CAL/Modelo Relacional
Los errores de Objetos y reglas del negocio caen en dos categorias; Representar mas de una objeto del
negocio en una sola tabla. Incluir muchos objetos o muchos atributos
de un objeto en la base de datos.
Errores De Diseño
CAL/Modelo Relacional
Implementar reglas del negocio como restricciones es adecuado solo cuando las restricciones: Ayudan a preservar la integridad de los
datos. No minan el potencial de crecimiento de la
compañía (que requiera una revisión de la base de datos).
Errores De Diseño
CAL/Modelo Relacional
Los errores comunes asociados con columnas incluyen: Representar mas de un atributo en una
columna. Duplicar el nombre de la columna en
diferentes tablas. Dar nombre cripticos a las columnas.
Errores De Diseño
CAL/Modelo Relacional
Si tiene problemas con una restricción, verifique la restricción cuidadosamente para asegurarse que regleja la regla del negocio y que fue ingresada correctamente.
Errores De Diseño
CAL/Modelo Relacional
Errores comunes asociados a las llaves primaria y foránea: Descuido al identificar llaves primarias. Almacenar información significativa en una
llave primaria. Descuido al identificar llaves foráneas.
Errores De Diseño
CAL/Modelo Relacional
Errores asociados con los vinculos y la integridad referencial: Crear muchas relaciones Agregar llaves foráneas innecesarias. Reforzar integridad referencial no
necesaria.
Errores De Diseño
CAL/Modelo Relacional
Aspectos Internacionalizacion Los paises tienen sus propias formas
de escribir fechas, simbolos monetarios y direcciones, si su base de datos va ha servir corporaciones multinacionales deberá considerar todos estos aspectos en el diseño de su base de datos.
CAL/Modelo Relacional
“Si los usuarios no pueden usar la data de la base de datos para responder sus preguntas, las base de datos no es útil”.
Errores De Diseño
CAL/Modelo Relacional
Resumen Cada tabla debería representar un objeto del
negocio que combinada con otras tablas produzca información.
Cada restricción debería ayudar a los usuarios ingresar información correcta.
Se debería reforzar la integridad referencial para asegurar que la tabla permanece consistente.
Las vistas deben combinar los datos en información que los usuarios puedan usar como base para decisiones de negocio.
top related