En algunas especializaciones podremos determinar exactamente que ocurrencias de entidad se convertirán en ocurrencias de cada subclase, mediante la utilización de una condición en algún atributo de la superclase. Tales subclases se llaman subclases definidas por predicado (o definidas por condición). Por ejemplo, si la entidad EMPLEADO tiene el atributo tipotrabajo, como se ve en la figura 3, podremos especificar una condición de pertenencia a la subclase SECRETARIA mediante el predicado tipotrabajo = "Secretaria"), al cual llamaremos predicado de definición de la subclase. Esta condición es una restricción especificando que los miembros de la subclase SECRETARIA deben satisfacer el predicado y que todas las ocurrencias de la entidad EMPLEADO en las que el valor del atributo tipotrabajo sea "Secretaria" deben pertenecer a la esta subclase.
Si todas las subclases en una especialización tienen la condición de pertenencia en el mismo atributo de la superclase, la especialización será una especialización definida por atributo y el atributo será llamado atributo de definición de la especialización. Definiremos una especialización definida por atributo en el diagrama colocando el atributo de definición cerca del arco que va desde el círculo a la superclase, como puede verse en la figura 1.
Cuando no exista tal condición para determinar la pertenencia a una superclase, la subclase se llamará subclase definida por el usuario. En tales subclases, la pertenencia vendrá determinada por los usuarios de la Base de Datos cuando realicen una operación de inserción de una ocurrencia en la subclase; por tanto, el usuario especifica la pertenencia de cada ocurrencia individualmente y no mediante una condición que pueda ser evaluada automaticamente.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCvngYqgPzQH89kys-Nr_nheoeD-0uoT2h4-bB0-O29RZ7S9oXR0Bk4aEu_RYlvUqxXzjBKfuybDFDmBh5eIayUwpvkEjVLJSPVl__19_2-qBYSQ1Cf8hCWDc-6Cc-XgAhT04vwCBQrtQ/s400/3.bmp)
FIGURA 1
Se pueden aplicar dos restricciones mas a la especialización. La primera es la restricción de desunión, la cual especifica que las subclases de la especialización deben estar separadas. Esto significa que una ocurrencia de la entidad puede ser miembro de como máximo una de las subclases de la especialización. Una especialización definida por atributo implica la restricción dedesunión, si el atributo para definir el predicado de pertenencia es simple. La figura 1 muestra este caso, donde la d del círculo denota la desunión.
FIGURA 2
Si las subclases no son desunidas, sus conjuntos de ocurrencias pueden solaparse, esto es, la misma ocurrencia de entidad puede ser miembro de más de una subclase de la especialización. Este caso, que es el caso por defecto, se representa mediante una O en el circulo, como se muestra en el ejemplo de la figura 2.
La segunda restricción a la especialización se llama la restricción de totalidad, la cual puede ser parcial o total. Una restricción de especialización total especifica que cada ocurrencia de entidad de la superclase debe ser miembro de alguna subclase de la especialización. Por ejemplo, si cada EMPLEADO debe se ASALARIADO o SUBCONTRATADO, entonces la especialización {ASALARIADO, SUBCONTRATADO} de la figura 1 es una especialización total de EMPLEADO; esto se representa en el diagrama ERE usando una línea doble entre el círculo y la superclase. Una línea sencilla se utiliza para representar una especialización parcial, la cual permite que una ocurrencia de entidad no pertenezca a ninguna de las subclases. Por ejemplo, si alguna ocurrencia de entidad EMPLEADO no pertenece a ninguna de las subclases {SECRETARIA, INGENIERO, TÉCNICO} de las figuras 1 y 2, entonces la especialización es parcial.
Hay que tener en cuenta que las restricciones de desunión y totalidad son independientes, por tanto habrá cuatro tipos de especialización:
-Desunión, total
-Desunión, parcial
-Solapamiento, total
-Solapamiento, parcial
Como es lógico, las restricciones correctas vienen dadas por la naturaleza del problema real aplicado a cada especialización, si embargo, la generalización en una superclase suele ser total, ya que la superclase se deriva de las subclases y, por tanto, contiene sólo ocurrencias de entidad que están en las subclases.