Está en la página 1de 22

IISSI I:

Bloque II: Modelado Conceptual y Modelos Relacionales

Adrián Romero Flores

Ingeniería del Software - Universidad de Sevilla

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.

Estándar para modelado conceptual:

UML: Unified Modeling Language.


Resultado de la fusión de varias propuestas previas.
Se utiliza para diagramas de clases y objetos.

Conceptos básicos del modelado conceptual:

Clase entidad: atributo.


Asociación: rol y multiplicidad.
Objeto (instancia de una clase).
Enlace (instancia de una asociación).
Generalización/especialización.
Composición.

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.

En modelado conceptual no se suele especificar el tipo de los atributos (salvo enumera-


dos).
Mediante [0..1] podemos indicar que un atributo es opcional, es decir, que habrá momentos
en los que no se conocerá su valor y se representará mediante un valor nulo.

Asociación entre clases entidades


Representa algún tipo de relación entre dos o más conceptos relevantes del dominio del problema
que el sistema debe almacenar.

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:

0..1: opcional. 1..1: obligatoria.

0..*: opcional múltiple. 1..*: obligatoria múltiple.

*: equivalente a 0..*. 1: equivalente a 1..1.

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:

Una parte solo puede pertenecer a un todo.


Una parte no puede existir sin pertenecer a un todo.
La eliminación del todo implica la eliminación de todas sus partes.
Es una relación transitiva y antisimétrica.
Puede ser recursiva.

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.

3. Creación de modelos conceptuales


Pasos recomendados:

1. Analizar la información sobre el dominio del problema (glosario) y los requisitos.


2. Identificar posibles entidades y atributos.
3. Identificar posibles asociaciones.
4. Construir incrementalmente el modelo conceptual e identificar las multiplicidades de las
asociaciones.
5. Identificar clasificaciones entre entidades con propiedades (atributos y/o asociaciones) co-
munes.
6. Identificar composiciones entre entidades.
7. Añadir las restricciones que no puedan expresarse gráficamente.
8. Validad con los posibles escenarios mediante diagramas de objetos.
9. Registrar todos aquellos problemas semánticos que deban ser aclarados por clientes y usua-
rios.

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:

Implementa principalmente las funciones de memoria e informativa de un sistema de


información.
Almacena grandes volúmenes de datos.
Gestiona el acceso concurrente de datos.
Mantiene la integridad semántica de los datos.
Controla en acceso a los datos.

El producto previo al diseño de una base de datos es el modelo conceptual.

Sistemas pre-relacionales (antes de 1970):


- Basados en archivos secuenciales e indexados.
- Bases de datos jerárquicas: IMSS.
- Bases de datos en red: CODASYL.
Sistemas relacionales (desde 1970):
- Experimentales: RDMS, Ingres, . . .
- Comerciales: Oracle, DB2, MS SQL Server.
- Open source: PostgreSQL, MySQL, MariaDB, SQLite.
Sistemas post-relacionales (desde 1990):
- Orientados a objetos: Gemstone, db40.
- Objeto-relacionales: SQL3.
- NoSQL: Cassandra, MongoDB, Redis.

El modelo relacional es un modelo sencillo, flexible basado en fundamentos matemáticos de


teoría de conjuntos y lógica de predicados.
Una relación está compuesta por una intensión y una extensión. La intensión define un conjunto
de atributos, cada uno de los cuales toma valores sobre un dominio. La extensión es un conjunto
de tuplas cada una formada por un conjunto de pares (atributo, valor), de forma que a cada
atributo de la intensión se le asocia un valor del dominio sobre el que está definido. El número

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:

Este modelo se puede seguir mejorando.

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.

Las dependencias funcionales no pueden deducirse de los datos de la extensión de una


relación.
Solo podría descartarse su existencia si los datos de la expresión lo contradijeran.
Las dependencias funcionales dependen de la semántica de los atributos de las relaciones
en el modelo conceptual y, por extensión, en el dominio del problema.

Dependencias en el ejemplo de Inmuebles


inmuebleId → dirección
inmuebleId → {dirección, precio, propietarios}
inmuebleId → {empleadoId, nombre, cargo}
{inmuebleId, precio} → empleadoId
empleadoId → {nombre, cargo}
{empleadoId, nombre} → cargo

Grafo de dependencias funcionales


El grafo de dependencias funcionales es una forma gráfica de representar las dependencias fun-
cionales de un modelo relacional.
Los nodos son atributos o conjuntos de atributos.
Los arcos son las dependencias funcionales.
Normalmente sólo se representan dependencias funcionales que determinan a un solo atributo.

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.

Regla general para la 2FN


Si la relación R(K1 , K2 , X, Y ) se tienen:
los conjuntos de atributos primos K1 y K2 .
los conjuntos de atributos no primos X e Y .
las dependencias funcionales: K1 → X, {K1 , K2 } → Y .
Entonces R no está en 2FN porque X no depende completamente de las claves candidatas.
La siguiente descomposición si estaría en 2FN:
R1 (K1 , X), con K1 → X
R2 (K1 , K2 , X), con {K1 , K2 } → Y .

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)}

Selecciona las tuplas de R que satisfacen f .


Por ejemplo:

(1) Usuarios de Sevilla: Sevillanos ← σprovincia = “Sevilla” (Usuarios)


(2) Usuarios que no son de Sevilla: Resultado ← σprovincia6=“Sevilla” (Usuarios)
(3) Malagueños y sevillanos:
a. Malagueños ← σprovincia = “Málaga” (Usuarios). Resultado ← Malagueños ∪ Sevillanos
b. Resultado’ ← σprovincia = “Málaga” OR provincia = “Sevilla” (Usuarios)

Proyección. T ← ΠB (R), B ⊆ I(R)

I(T ) = B
E(T ) = {t : ∀b ∈ B ∧ ∃r ∈ E(R) ∧ t.b = r.b}

Extrae las columnas de B de R.


Por ejemplo para saber el nombre de los usuarios de Málaga y Sevilla haríamos

Resultado ← Πnombre (Malagueños) ∪ Sevillanos

15
NatJoin (combinación natural). T ← R ./ S, I(R) ∩ I(S) = C = ∅

I(T ) = I(R) ∪ I(S)


E(T ) = {r ∪ s : r∃E(r) ∧ s ∈ E(S) ∧ ∀c ∈ C ∧ r.c = 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

nombre de los usuarios, descripción del producto y cantidad solicitada escribimos:

U P P ← U suarios ./ P edidos ./ P roductos

Resultado ← ΠUsuarios.nombre,Productos.descripción,Pedidos.cantidad (U P P )
División. T ← R ÷ S, I(S) ⊂ I(R)

I(T ) = I(R) − I(S)


E(T ) = {t : ∀s ∈ E(S) ∧ sts ∈ E(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:

Una relación para cada clase de la jerarquía.


Una relación para casa subclase concreta.
Una única relación para toda la jerarquía.

21
22

También podría gustarte