Una partición es una división de una base de datos lógica o de sus elementos constituyentes en partes independientes distintas. La partición de una base de datos se realiza normalmente por razones de capacidad de gestión, rendimiento o disponibilidad [1] , o para equilibrar la carga . Es popular en los sistemas de gestión de bases de datos distribuidas , donde cada partición puede distribuirse en varios nodos, y los usuarios del nodo realizan transacciones locales en la partición. Esto aumenta el rendimiento de los sitios que tienen transacciones regulares que involucran ciertas vistas de datos, al tiempo que se mantiene la disponibilidad y la seguridad.
Los sistemas de gestión de bases de datos relacionales de alta gama actuales ofrecen distintos criterios para dividir la base de datos. Toman una clave de partición y asignan una partición en función de determinados criterios. Algunos criterios comunes son:
Country
o Iceland
podrían Norway
generar una partición para los países nórdicos .Sweden
Finland
Denmark
n
particiones, la i
tupla n.° en orden de inserción se asigna a la partición (i mod n)
. Esta estrategia permite que el acceso secuencial a una relación se realice en paralelo. Sin embargo, el acceso directo a tuplas individuales, basado en un predicado, requiere acceder a toda la relación.La partición se puede realizar creando bases de datos independientes más pequeñas (cada una con sus propias tablas , índices y registros de transacciones ) o dividiendo elementos seleccionados, por ejemplo, sólo una tabla.
La partición horizontal implica colocar distintas filas en distintas tablas. Por ejemplo, los clientes con códigos postales menores a 50000 se almacenan en CustomersEast, mientras que los clientes con códigos postales mayores o iguales a 50000 se almacenan en CustomersWest. Las dos tablas de partición son entonces CustomersEast y CustomersWest, mientras que se puede crear una vista con una unión sobre ambas para proporcionar una vista completa de todos los clientes.
El particionamiento vertical implica la creación de tablas con menos columnas y el uso de tablas adicionales para almacenar las columnas restantes. [1] Generalmente, esta práctica se conoce como normalización . Sin embargo, el particionamiento vertical se extiende más allá y particiona las columnas incluso cuando ya están normalizadas. Este tipo de particionamiento también se denomina "división de filas", ya que las filas se dividen por sus columnas y puede realizarse de forma explícita o implícita. Se pueden utilizar distintas máquinas físicas para realizar el particionamiento vertical: almacenar columnas poco utilizadas o muy anchas, que ocupan una cantidad significativa de memoria, en una máquina diferente, por ejemplo, es un método de particionamiento vertical. Una forma común de particionamiento vertical es dividir los datos estáticos de los datos dinámicos, ya que se accede a los primeros más rápido que a los segundos, en particular para una tabla en la que los datos dinámicos no se utilizan con tanta frecuencia como los estáticos. La creación de una vista a través de las dos tablas recién creadas restaura la tabla original con una penalización de rendimiento, pero el acceso solo a los datos estáticos mostrará un mayor rendimiento. Una base de datos columnar puede considerarse como una base de datos que se ha particionado verticalmente hasta que cada columna se almacena en su propia tabla.