En ningún SGBD (al menos los más conocidos) existe el concepto de PACK de tablas que se existe en los DBF.
En los DBF, el pack toma la tabla (lo hace por tabla) y la copia a otro archivo, omitiendo aquellos registros que fueron "marcados" como borrados por el comando DELETE de xBase, marca que se puede quitar con el comando RECALL.
Luego de la copia, borra la tabla original y renombra la copia nueva con el nombre de la original. En estos casos conviene efectuar un reindex de todos los indices (es simple si se usa un indice estructural <nombre_tabla.cdx>, pero si no, hay que abrir cada uno y reindexar).
En los SGBD, un DELETE "borra" el registro definitivamente (lo hace inaccesible, no se puede recuperar, salvo restaurar por backup "caliente"), los indices se reindexan automáticamente.
Hay que tener en cuenta que en SGBD como postgresql, los registros son de longitud variable y el sistema, para mejor desempeño, al borrar o modificar un registro, el área del borrado queda marcada como disponible, lo mismo pasa con el caso de modificaciones donde en el espacio original no entra el registro modificado (lo agrega en un área libre y marca la original como disponible).
Luego, en postgresql, se ejecuta un VACUUM que recupera el espacio marcado al área libre (hace como un defrag del espacio de disco asignado a la BD).
Por supuesto, por más SGBD sofisticado que tengas, las copias de seguridad deben seguir haciéndose.
Saludos: Miguel, La Pampa (RA)
Larga Vida y Prosperidad
Que la Fuerza los acompañe, no caigan en el lado oscuro por no hacer un backup