Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Parte V
Introducción al modelado conceptual
1. Introducción
El modelado conceptual es una técnica de análisis de requisitos y de diseños de bases de datos
que ayuda a identificar problemas en los requisitos antes del desarrollo, evitando gastos inne-
cesarios. Además, permite representar de forma abstracta los conceptos y hechos relevantes del
dominio del problema y transformarlos posteriormente en un esquema de una base de datos con-
creta.
El dominio del problema es el área de experiencia o aplicación que necesita conocerse para
resolver un problema. En el ámbito de los sistemas de información, el dominio del problema es el
conjunto de conceptos interrelacionados que es necesario conocer para entender el negocio del
cliente.
Independientemente del ciclo de vida, el modelado conceptual se utiliza durante la fase de
análisis.
Todo elemento de un modelado conceptual debe estar trazado hacia aquellos que los justifican,
normalmente requisitos de información y reglas de negocio.
1
2. Notación UML
Clase entidad
Representa un concepto relevante del dominio del problema sobre el que el sistema debe alma-
cenar información porque así se ha especificado (o se deduce) en uno o más requisitos.
Se nombran mediante un sustantivo en singular.
Atributo
Son propiedades asociadas a un concepto relevante del dominio del problema que el sistema
debe almacenar porque así se ha especificado (o se deduce) en uno o más requisitos.
Se nombran mediante un sustantivo en singular.
Los valores de los atributos deben ser atómicos.
Con el estereotipo «Entidad» se indica que la clase que representa una entidad y no una clase de
un lenguaje de POO.
En modelado conceptual se asumirá estereotipo por defecto.
Se nombra mediante un verbo en tercera persona del singular y las preposiciones que hagan
falta.
Debe formar una frase con sentido al leerla con los roles.
2
Rol de un extremo de una asociación
Papel que juega cada una de las clases que participaran en una asociación.
Por defecto es su propio nombre en minúscula.
Es necesario indicarlo en asociaciones de una clase consigo misma o cuando existe más de una
asociación entre dos clases.
Multiplicidad
Dado un objeto de una clase, indica los números mínimo y máximo número de objetos de la otra
clase con los que puede estar asociado.
Valores habituales:
Generalización/especialización
A veces, algunos de los conceptos del dominio del problema presentan entre ellos relaciones tipo
es-un, por ejemplo:
3
Estos conceptos suelen tener propiedades comunes, que al modelarlos conceptualmente apare-
cen como atributos o asociaciones comunes.
La clase más general (la superclase), contiene todas las propiedades (atributo y asociaciones)
comunes, que son heredados por las clases más específicas (las subclases).
Clasificación completa/incompleta:
{completa}: las instancias de la superclase deben ser instancias de al menos una subclase,
la superclase es abstracta.
{incompleta}: puede haber instancias de la superclase que no lo sean de ninguna subclase.
Clasificación disjunta/solapada
{disjunta}: las instancias de la superclase pueden ser instancias de una sola subclase.
{incompleta}: las instancias de la superclase pueden ser instancias de una o más subclases.
Composición
Asociación especial que representa el concepto de ser-parte-de o de estar-compuesto-por:
4
Agregación
Es similar a la composición, pero más débil:
Una parte puede pertenecer a uno, varios o ningún todo.
Una parte sí puede existir sin pertenecer a un todo.
La eliminación del todo no implica la eliminación de todas sus partes.
Sigue siendo transitiva, antisimétrica y recursiva.
Restricciones
Permite añadir información al modelo que no puede expresarse de otra forma.
Tipos enumerados
Definen un tipo que puede ser usado en los atributos de clases entidades.
Se utiliza el estereotipo «Enumerado» o «Enum».
Los atributos son los posibles valores.
5
Objetos y enlaces
Objeto: cada ocurrencia o instancia de una clase.
Enlaces: cada ocurrencia o instancia de una asociación.
6
Parte VI
Introducción a las Bases de Datos y Modelo
Relacional
1. Introducción
Un sistema de gestión de base de datos SGBD es un sistema informático que:
7
de atributos definidos en la intensión se denomina grado de relación. El número de tuplas de la
extensión se denomina cardinalidad de la relación.
El concepto de relación se implementa mediante una tabla, cuyas columnas representan los
atributos y las filas las tuplas.
Las diferencias con una relación son:
Las filas están ordenadas, las tuplas no.
Las filas pueden estar repetidas, las tuplas no.
Las columnas tienen un orden, los atributos no.
Un dominio es el conjunto de valores admisibles que puede tomar un atributo de una relación.
Todos los dominios deben tener definido el operador de igualdad =. Algunos dominios tienen
su propia álgebra con sus operadores. Pueden ser un tipo básico, enumerado o compuesto.
Si un atributo tiene un valor nulo (null) significa que no se conoce su valor, que es desconocido.
Puede asignarse a los atributos definidos sobre cualquier dominio, pero no pueden compararse
valores nulos de atributos definidos sobre dominios diferentes.
2. Claves
Una superclave es un subconjunto de atributos (descriptor) de una relación que identifica de
manera única a las tuplas de dicha relación.
Criterio de unicidad: un descriptor es único si no tiene sentido que existan dos tuplas distintas
en una relación con los mismos valores de dicho descriptor. Toda superclave cumple este criterio.
En cualquier relación, siempre existe una superclave formada por todos los atributos, ya que no
puede haber tuplas repetidas.
Una relación puede tener varias superclaves.
Criterio de minimalidad: una superclave es mínima si al eliminar cualquier atributo de su des-
criptor deja de cumplir el criterio de unicidad. Se denominan claves candidatas.
Claves candidatas: una relación siempre
tiene al menos una clave candidata.
Clave primaria: clave candidata seleccio-
nada arbitrariamente como mecanismo de
identificación de la relación.
Clave alternativa: cualquier clave candi-
data no seleccionada como primaria.
Claves ajenas:
- Son conjuntos de atributos de una re-
lación cuyos valores deben coincidir
con los de la clave primaria de otra
relación.
- Es la forma de representar las asocia-
ciones del modelo conceptual en el
modelo relacional.
- Se debe evitar ponerle nombres dis-
tintos a la clave primaria.
3. Integridad
Ningún atributo que forme parte de la clave primaria de una relación puede tomar el valor nulo.
Todos los atributos de una clave ajena deben tomar valores que coincidan con valores de la clave
primaria correspondiente o bien tomar valores nulos.
8
Parte VII
Normalización de Modelos Relacionales
1. Anomalías de manipulación
La calidad de un modelo relacional depende, entre otros factores de las anomalías de manipu-
lación que presente.
La forma de asegurar la calidad de un modelo relacional frente a las anomalías de manipulación
es comprobar que está al menos en tercera forma normal (3FN).
Supongamos una relación que contiene los datos de los inmuebles de una agencia de alquiler.
Cada inmueble tiene un código, una dirección, un precio de alquiler, una lista de propietarios
con el porcentaje de propiedad del inmueble, y el código, nombre y cargo del empleado que lo
gestiona. Entonces:
Datos redundantes: el nombre y el cargo de cada empleado se repite tantas veces como
inmuebles gestione, malgastando espacio.
Riesgos de incoherencia: la redundancia de datos implica el riesgo de que se vuelan in-
coherentes si no se actualizan todas las ocurrencias a la vez.
Anomalías de inserción: hasta que un empleado no gestione un inmueble no se puede
registrar en el sistema de información.
Anomalías de actualización: si un empleado cambia de cargo hay que actualizarlo múlti-
ples veces en lugar de hacerlo solo una.
Anomalías de eliminación: si un empleado deja de gestionar inmuebles, sus datos desapa-
recen del sistema de información.
Problemas de consulta: ¿cómo se podrían conocer todos los inmuebles de un determinado
propietario?
Podemos pasar de tener una relación a tener dos relaciones:
9
2. Dependencias funcionales
Si R es una relación y X e Y son dos subconjuntos de los atributos de R, se dice que:
X determina funcionalmente a Y.
Y depende funcionalmente de X.
si y sólo si siempre que dos tuplas tienen los mismos valores de X, también se tienen los mismos
valores de Y. Se denota como X → Y .
En otras palabras, nunca dos tuplas con los mismos valores de X pueden tener distintos valores
de Y.
3. Formas normales
Las formas normales son condiciones, basadas en las dependencias funcionales, que deben cum-
plir un modelo relacional para estar extento de anomalías de manipulación.
Originalmente, Edgar F. Codd propuso tres formas normales. Posteriormente se han propuesto
otras tres. Cada FN incluye a la anterior, por lo que en un modelo relacional en 3FN está también
en 2FN y en 1FN.
10
Primera forma normal 1FN
Una relación está en 1FN si en cada tupla se le asigna a cada atributo un solo valor del dominio
sobre el que está definido.
Esto implica la ausencia de grupos repetidos.
11
Segunda forma normal 2FN
Una relación está en 2FN si está en 1FN y todos los atributos no primos son completamente
dependientes de las claves candidatas de la relación.
Los atributos no primos son los que no formal parte de ninguna clave candidata.
Normalmente una relación no está en 2FN porque está representando varias entidades y asocia-
ciones a la vez.
Siempre se puede transformar un modelo relacional que no esté en 2FN en otro que sí lo esté sin
pérdidas de información ni dependencias.
12
Tercera forma normal
Una relación estáen 3FN si está en 2FN y ningún atributo no primo depende transitivamente de
ninguna clave candidata.
Justificación:
todos los atributos no primos deben representar un hecho sobre la clave, toda la clave y
nada más que la clave.
normalmente una relación no está en 3FN porque está representando varias entidades a la
vez.
13
Parte VIII
Introducción al álgebra relacional
1. ¿Qué es el álgebra relacional?
Es un conjunto de operadores sobre relaciones propuesto por Codd que permiten expresar con-
sultas sobre un modelo relacional. Los operadores del AR devuelven como resultado una relación
derivada, por lo que pueden anidarse formando expresiones complejas.
2. Conceptos previos
Nombres de atributos:
- Se prefijan con el nombre de la relación a la que pertenecen cuando pueda haber
ambigüedad.
- R.a = atributo a de la relación R.
Relaciones compatibles
- Son relaciones cuyas intensiones comparten los mismos dominios, de modo que
cada atributo tiene su correspondiente en la otra relación y ambos están definidos
sobre el mismo dominio.
- Sobre ellas se pueden aplicar los operadores conjuntistas de unión, diferencia e inter-
sección.
- Si se quiere aplicar dichos operadores sobre relaciones no compatibles por tener nom-
bres de atributos diferentes, es necesario usar el operador de renombreado para hacer
las compatibles.
T = ρa/b (R): el atributo R.b pasa a nombrarse como T.a
3. Operadores conjuntistas
14
4. Operadores relacionales
Selección. T ← σf (R)
I(T ) = I(R)
E(T ) = {r∃E(R) : f (r)}
I(T ) = B
E(T ) = {t : ∀b ∈ B ∧ ∃r ∈ E(R) ∧ t.b = r.b}
15
NatJoin (combinación natural). T ← R ./ S, I(R) ∩ I(S) = C = ∅
Combina la proyección, selección y producto cartesiano a una sola operación. Crea una relación
que no está normalizada. El resultado es el producto cartesiano RxS seleccionando las tuplas en
las que las claves primarias de R son iguales a las clases ajenas de S. Por ejemplo, para obtener
Resultado ← ΠUsuarios.nombre,Productos.descripción,Pedidos.cantidad (U P P )
División. T ← R ÷ S, I(S) ⊂ I(R)
La división R/S devuelde los valores de r tales que para todo valor de s en S existe una tupla (r,
s) en R.
Por ejemplo, para obtener el nombre de los usuarios que han comprado todos los productos
hacemos:
P rodsId ← ΠproductoId (P roductos)
U P P ← U suarios ./ P edidos ./ P roductos
N DCΠUsuarios.nombre, Productos.productoId (U P P )
Resultado ← N DC ÷ P rodsId
16
Agregación γG F (R) Coge como entrada un subconjunto de los atributos de R y una función de
agregación F definida sobre R. Las funciones de agregación (count, sum, min, max, avg, ...) tienen
un sólo parámetro.
Por ejemplo, para obtener el nombre de usuario junto con el importe total de productos pedidos
hacemos:
U P P ← U suarios ./ P edidos ./ P roductos
nombre.sum(cantidad + precio)
Resultado ← γnombre (U P P )
17
Parte IX
Transformación de MC en MR
1. El desarrollo dirigido por modelos
Se trata de un enfoque de desarrollo en el que se van generando productos mediante transfor-
mación de modelos hasta llegar al código fuente.
2. Transformación de entidades
Regla general
Cada entidad se transforma en una relación con su mismo nombre (en plural).
Cada atributo de la entidad se transforma en un atributo de la relación con su mismo
nombre.
A tener en cuenta
Definir dominios para los atributos en función de la semántica de los atributos correspon-
dientes.
Añadir un sufijo id como clave primaria (PK).
Identificadores de objetos id
Son atributos artificiales que se añaden para poder identificar un objeto de otro sin depen-
der de las claves semánticas.
Normalmente se delega la generación de sus valores al SGBD (Sistema de gestión de bases
de datos).
Se suelen nombrar con el sufijo id.
Claves semánticas
Son atributos o conjuntos de atributos que son claves en el dominio del problema.
A veces, pueden usarse como id porque realmente lo son en el dominio del problema: NIF,
NSS, código de producto, etc.
18
3. Transformación de asociaciones
Regla general
Las asociaciones 1:N se representan con una clave ajena en la relación de la entidad del
ron N.
Las asociaciones 1:1 se representan con una clave ajena en cualquiera de las relaciones.
Las asociaciones M:N se representan con una relación auxiliar con claves ajenas a las dos
relaciones.
A tener en cuenta
Si un rol está {ordenado}, hay que añadir un atributo, si no existe ya, que especifique el
orden en la misma relación en la que se coloca la clave ajena.
19
20
4. Transformación de clasificaciones
Tres estrategias de transformación para una jerarquía de clasificación:
21
22