Bases de Datos - Departamento de Lenguajes y Sistemas Informáticos

Anuncio
Departamento de Lenguajes y Sistemas Informáticos
E.T.S. Ingeniería Informática. Universidad de Sevilla
Avda Reina Mercedes s/n. 41012 Sevilla
Tlf/Fax 954 557 139 E-mail lsi@lsi.us.es Web www.lsi.us.es
Bases de Datos
Tema 3
Modelos de datos
Sevilla, marzo 2005
V 2005.01.1
E.T.S. Ingeniería
Informática
Bases de Datos
Modelos de datos
Sevilla, Marzo/2005, V 2005.01.1
Indice
1
INTRODUCCIÓN ......................................................................................... 3
1.1
NECESIDAD DE ESQUEMAS ........................................................................................... 3
1.2
CONCEPTOS DE MODELACIÓN DE DATOS ..................................................................... 4
1.2.1 Universo de discurso.................................................................................................................... 4
1.2.2 Modelos y esquemas..................................................................................................................... 4
1.3
CLASIFICACIÓN DE MODELOS DE DATOS ...................................................................... 6
2
COMPONENTES DE UN MODELO DE DATOS .................................... 6
2.1
FORMALIZACIÓN DEL CONCEPTO DE MODELO DE DATOS ............................................ 6
2.2
ESTÁTICA DE LOS MODELOS DE DATOS......................................................................... 7
2.2.1 Tipos de estructuras ..................................................................................................................... 7
2.2.2 Mecanismos de abstracción......................................................................................................... 8
2.2.2.1 Clasificación o generalización instanciación o particularización ................................................................................ 8
2.2.2.2
2.2.2.3
2.2.2.4
2.2.3
Agregación ..................................................................................................................................................................... 9
Jerarquías de generalización..........................................................................................................................................10
Asociación....................................................................................................................................................................11
Restricciones................................................................................................................................ 11
2.2.3.1 Clasificación.................................................................................................................................................................11
2.2.3.2 Componentes de una restricción.....................................................................................................................................13
METABASE DE DATOS BASE DE DATOS ....................................................................14
2.3
2.4
DINÁMICA ...................................................................................................................14
2.4.1 Operadores .................................................................................................................................. 14
2.4.2 Transacciones.............................................................................................................................. 15
2.4.2.1
2.4.2.2
3
Concepto ......................................................................................................................................................................15
Regla de atomicidad y puntos de sincronismo.................................................................................................................15
LOS MODELOS DE DATOS EN EL PROCESO DE DISEÑO...............16
Pág. 2 de 16
Bases de Datos
Modelos de datos
Sevilla, Marzo/2005, V 2005.01.1
1 Introducción
1.1
Necesidad de esquemas
El ser humano es eminentemente simbólico; desde que nace se expresa de diversas maneras
(lenguaje hablado, lenguaje corporal) y recibe el cúmulo de sensaciones que representa la vida y,
sobre todo, la relación con nuestros semejantes. El ser humano ha evolucionado constantemente
en estas formas de expresión, creando diversos idiomas y ha inventado otras diversas maneras de
expresarse: la música, la pintura, la escultura, en definitiva: lenguajes de símbolos. En su evolución
ha llegado a crear la escritura, lenguajes matemáticos y lenguajes que permiten esquematizar. En
diversos campos de la ingeniería se representan esquemas: planos (arquitectura), esquemas
eléctricos (electricidad), esquemas de máquinas (ingeniería mecánica), Etc. Etc.
Para transmitir mensajes simples puede bastar con expresiones faciales (alegría, sorpresa, dolor,
Etc.). Para aclarar la razón de estos estados puede ser necesario y, generalmente basta, el lenguaje
hablado; necesitamos movernos en el dominio (emisor y receptor) del mismo lenguaje para poder
entendernos. Para arbitrar y dictaminar sobre conflictos entre personas (laborales, familiares,
civiles) el ser humano ha creado reglas: “el derecho civil”, “derecho administrativo”, “derecho
laboral”, Etc.. Los juristas se sirven del lenguaje escrito (la ley, la jurisprudencia, pruebas
documentales) y del lenguaje hablado (testimonios) para emitir estos dictámenes que permiten
aclarar las situaciones de conflicto. El ser humano sigue creando reglas continuamente.
En construcciones simples (un arreglo del baño de un domicilio), un pequeño arriate en el jardín
son proyectos que pueden ser especificados basándose en el lenguaje hablado o en el lenguaje
natural escrito; se trata de productos simples de obtener. Crear un programa que gestione una lista
de teléfonos puede ser una tarea equivalente en especificación de software; es decir, está muy clara
la estructura y la funcionalidad que debe tener el producto final; del mismo modo, basta con decir
¿qué datos queremos? y ¿cómo queremos que se presente la lista?.
Ahora bien, si se trata de la construcción de un hospital con capacidad para 10.000 camas, o de un
centro académico para alojar tres titulaciones universitarias y al menos 5.000 alumnos ¿qué duda
cabe que no es inmediato pasar de esta necesidad a la acción de construir?. Del mismo modo, tanto
un patinete como un buque o un avión a reacción son vehículos, pero la complejidad de su
construcción los diferencia notablemente.
En diversos campos de la ingeniería, si se ha de crear un producto complejo (edificio, máquina, etc.)
se requiere un experto en la materia. Los expertos en diversas materias han creado lenguajes
(nuevas reglas de expresión y representación) universales para aclarar y desarrollar la especificación
del producto complejo que se ha de crear. La arquitectura e ingeniería civil han creado lenguajes
para la representación de planos (elevados a nivel de estandarización nacional: ANSI, DIN, UNE e
internacional: ISO) de modo que la representación del conocimiento no es ambigua sino clara y
precisa (pues todo el mundo entiende la convención): un arquitecto no tiene que explicar a otro lo
que significa una raya o una cota en un plano, pues los símbolos son cerrados y significan lo que
para ellos se ha acordado en la semántica que encierran. Los planos se hacen a escala, con lo que
los muros, situación de puertas, ventanas, canalizaciones son precisos y obligarán al constructor
(contratista) en la fase de edificación.
El ser humano ha creado en estos campos del saber “un proceso” que va desde la necesidad de un
producto complejo expresada por el usuario hasta la puesta a disposición del mismo. Desde que
decidimos que se necesita un edificio académico hasta que se pueden dar clases lectivas en él pasa
un tiempo que se estructura en fases claramente diferenciadas: concepción o especificación
general del edificio (maquetas o modelos, planos generales (planta, alzado, perfil)), diseños
Pág. 3 de 16
Bases de Datos
Modelos de datos
Sevilla, Marzo/2005, V 2005.01.1
detallados (estudios geológicos del terreno: las condiciones para construir un edificio no son las
mismas en Madrid <bajo nivel sismológico> que en San Francisco <alto nivel de riesgo
sismológico>, diseño de interiores, diseño de canalizaciones, etc.). Es decir, antes de construir es
necesario invertir un esfuerzo mental muy importante en diseñar el producto; para diseñarlo es
necesario centrarse en diferentes aspectos del mismo. Para cada uno de estos aspectos existen
lenguajes (gráficos, matemáticos, etc.) que permiten cerrar la especificación y comportamiento de
lo que pretendemos obtener. Está más que justificada la convención universal de estos lenguajes,
más cerrados que el lenguaje natural (herramienta propicia para la literatura) pero mucho más
precisos y con menos ambigüedades.
Para crear un producto software el ser humano se vale también de lenguajes (lenguajes de
programación en la fase de construcción o programación, lenguajes gráficos o matemáticos en la
fase de concepción: análisis y diseño del sistema).
Una parte estructural muy importante en un producto software complejo pueden ser las estructuras
de datos. Se requerirán lenguajes que permitan especificar la estructura de estos datos en la fase de
concepción: análisis y diseño y en la fase de implementación o construcción del sistema. Para crear
un lenguaje es necesario convenir unas reglas que permitan transmitir el conocimiento. Un modelo
de datos va a ser ese conjunto de conceptos y reglas que, dotado con una sintaxis, formalizan un
lenguaje. Con los lenguajes (p.ej. SQL es un lenguaje basado en el modelo relacional de datos, en
concreto, está basado en el cálculo relacional de tuplas) se podrán expresar diseños o concepciones
de estructuras de datos: esquemas de esos datos.
En este tema se presentan los principales conceptos de modelos de datos: esquemas, objetos,
propiedades, asociaciones, operaciones, restricciones, etc.; se realiza una clasificación de los diversos
tipos de modelos de datos y se estudian los principales mecanismos de abstracción utilizados en
esta área.
1.2 Conceptos de modelación de datos
1.2.1
Universo de discurso
Todo software ha de tener un alcance (limitado)
funcional: está dirigido a una farmacia, a una
universidad, a una petrolera, etc.
El diseñador debe establecer el contorno del
problema; es decir “lo que forma y lo que no
forma parte del problema”. Este contorno se
denomina universo de discurso y es la parte del
mundo que, para el fin del software a construir,
interesa al diseñador. Lo que está dentro del contorno forma parte del problema y lo que está fuera
no forma parte del problema. Es relevante definir claramente este contorno.
1.2.2 Modelos y esquemas
El ser humano crea modelos o simplificaciones de la realidad para poder comprenderla y
expresarla. Crear estos modelos implica tareas de simplificación o abstracción de la realidad, de
modo que representamos sólo los aspectos que interesa resaltar de esa realidad que se pretende
alcanzar; así: “una maqueta no es el edificio sino la apariencia a escala y la situación o
localización de elementos que pretendemos”. El plano de detalle de canalizaciones (agua,
electricidad, gas, telefonía, cableado inteligente) de una habitación no es la habitación sino la parte
que nos interesa resaltar para comunicar con los agentes especializados de la construcción
(electricistas, fontaneros, etc.); Por otro lado, en la maqueta no están los detalles de estos planos ni
en estos planos podemos ver la apariencia exterior y localización de elementos de un edificio (aulas,
Pág. 4 de 16
Bases de Datos
Modelos de datos
Sevilla, Marzo/2005, V 2005.01.1
laboratorios, bar, jardines, etc.). Se requieren diversos esquemas (generales y de detalle) del
mismo universo (el centro académico a construir).
Un modelo/esquema1 puede definirse como “la abstracción mental de la realidad observada en
la que se resaltan los aspectos que se pretenden transmitir”. Es decir, se simplifica la
representación, desechando otras características reales que pueden estar representadas en otros
modelos/esquemas o bien que son irrelevantes para el proceso de construcción.
Tsichritzis y Lochovsky (1982) son autores que se han preocupado de formalizar el concepto
abstracto de modelo de datos: “Dispositivo de abstracción que nos permite ver el bosque (esto
es, la información contenida en los datos) en oposición a los árboles (valores individuales
de los datos)”.
Dittrich (1994) lo define como “conjunto de herramientas conceptuales para describir la
representación de la información en términos de datos. Los modelos de datos comprenden
aspectos relacionados con: estructuras, tipos de datos, operaciones y restricciones”.
De Miguel, Piattini y Marcos (1999) lo definen como “conjunto de conceptos, reglas y
convenciones que permiten describir y manipular los datos de la parcela de un cierto
mundo real que deseamos almacenar en la base de datos”.
Es decir: un modelo es el conjunto de reglas y convenciones que van a permitir cerrar una
especificación, de modo que el emisor y el receptor de la idea comprendan y asuman claramente
estas convenciones y la especificación esté exenta de ambigüedades.
Los modelos de datos son el soporte para la creación de distintos tipos de lenguajes, siendo un
lenguaje la concreción expresiva de estas reglas bajo una sintaxis o gramática concreta:
Lenguaje de datos ≡ {Modelo de datos,Sintáxis}
Es importante distinguir entre modelo de datos y esquema.
Un esquema puede definirse como:
Dittrich (1994): "Descripción específica de un determinado mini-mundo en términos de un
modelo de datos se denomina esquema (o esquema de datos) del mini-mundo. La colección
de datos que representan la información a cerca del mini-mundo constituye la base de
datos”,.
De Miguel, Piattini y Marcos (1999): “Representación de un determinado mundo real (universo
del discurso) en términos de un modelo de datos”.
Nótese la ambigüedad en el dominio de lo coloquial, pues se confunde modelo con esquema o maqueta (en el sentido
de que se trata de una simulación o representación). Se aclarará al distinguir y precisar en el terreno de la modelación de
datos.
1
Pág. 5 de 16
Bases de Datos
Modelos de datos
Sevilla, Marzo/2005, V 2005.01.1
1.3 Clasificación de modelos de datos
Según el nivel de abstracción que se considere en referencia a la arquitectura ANSI/X3/SPARC
puede establecerse una clasificación de los modelos de datos en:
Externos: Orientados a cada usuario en particular.
Globales: Orientados al conjunto de usuarios (contiene el modelo integrado para toda la
organización).
Internos: Consideran la implementación física (entorno tecnológico: sistema operativo,
organización de archivos soportados, etc.).
Se utiliza la expresión “modelos lógicos” para hacer referencia tanto a los modelos globales como a
los externos, ya que ambos describen aspectos lógicos de los datos, frente a los “modelos internos”
que describen aspectos físicos.
Los modelos lógicos se pueden dividir en:
Conceptuales o semánticos: están enfocados a describir el mundo real con independencia
de la tecnología (máquinas, redes, sistemas operativos). Ej: Modelo Entidad/Interrelación de
Chen (ME/R), Orientados a Objetos (Diagramas de clases de UML).
Convencionales: están orientados a la implementación en un SGBD que soporta un
determinado modelo de datos: Relacional de Codd (RM/B Codd), Jerárquico, Red (Codasyl),
Relacional.
Modelo de datos convencional
Implementados en SGBD comerciales
Dependen del SGBD
Más próximos al ordenador
Poca capacidad semántica
Más enfocados a la implementación
Interfaz informático/sistema
Nivel de “mediación” entre nivel externo/interno
Modelo de datos conceptual
No suelen estar implementados en SGBD
Independientes del SGBD
Mayor nivel de abstracción
Mayor capacidad semántica
Más enfocados al diseño de alto nivel
(modelación conceptual)
Interfaz usuario/informático
2 Componentes de un modelo de datos
2.1 Formalización del concepto de modelo de datos
Los componentes de todo modelo de datos se pueden estructurar en estática y dinámica del modelo.
Un modelo de datos (MD) se define formalmente como el par MD = <S, D>.
S es el conjunto de reglas de generación que permiten representar la componente estática
(estructuras del modelo y sus restricciones) y
D es el conjunto de operaciones autorizadas sobre la componente estática E u operaciones que
permiten representar la componente dinámica.
La estática permite formalizar la especificación de estructuras admitidas (serán el soporte de los
lenguajes de definición de datos: LDD o DDL (data definition languages), considerándose:
Pág. 6 de 16
Bases de Datos
Modelos de datos
Sevilla, Marzo/2005, V 2005.01.1
a) Elementos permitidos (Estructuras: Se)
Objetos y vínculos entre objetos (Ejemplo: Juan y María son objetos de una clase
persona, mientras que “casado con” es un predicado o vínculo que puede ligar a
Juan y María en una relación o correspondencia).
Características o propiedades de los objetos (domicilio, email de una persona), tipos
de valores admisibles (string, €, longitud_inch2, ciudades_españolas, etc..).
b) Elementos no permitidos o invalidados por restricciones (Sr)
S=< Se, Sr >, la estática del modelo permite definir determinadas estructuras e invalidar
determinados estados en la base de datos (estados inadmisibles).
La Dinámica es un componente del modelo que facilitará la manipulación de instancias de las
estructuras de la base de datos definidas con los componentes estáticos (serán el soporte de los
lenguajes de manipulación de datos LMD o DML (data manipulation languages) que permitirán
escribir transacciones). La dinámica ofrecerá operadores o expresiones para realizar acciones sobre
los datos.
2.2
Estática de los modelos de datos
2.2.1 Tipos de estructuras
Los elementos permitidos no son los mismos para todos los MD; varían especialmente en
terminología, pero en general son Objetos (entidades, relaciones, registros, etc.), vínculos entre
objetos (interrelaciones, “set”, etc.), propiedades o características de objetos o vínculos (atributos,
campos, elementos de datos, etc.), dominios o conjuntos de valores homogéneos admisibles sobre
los que se definen las propiedades.
A estos elementos permitidos se les podrán aplicar aquellas abstracciones reconocidas por el
modelo.
La representación de estos elementos depende de cada modelo de datos, pudiendo hacerse en forma
de grafos (Red CODASYL, ME/R de Chen, UML), relaciones o conjuntos (Relacional), árboles
(jerárquico), etc.
Es fundamental conocer el tipo de estructuras admisibles y la semántica que soportan. Desde un
punto de vista genérico pueden agruparse características comunes empleadas en diversos modelos
bajo el siguiente epígrafe de “mecanismos de abstracción”.
Pág. 7 de 16
Bases de Datos
Modelos de datos
Sevilla, Marzo/2005, V 2005.01.1
2.2.2 Mecanismos de abstracción
Los procesos de abstracción ayudan a modelar los datos; el modelador debe centrarse en lo esencial,
pasando por alto aspectos que son irrelevantes o que caen fuera del universo de discurso.
Los MD ofrecen distintos mecanismos de abstracción para facilitar la representación de los
esquemas de datos; este esquema es el resultado de aplicar un proceso de abstracción a un
determinado mundo real (universo de discurso). Los principales mecanismos de abstracción son:
Clasificación o generalización 4 instanciación o particularización
Agregación
Jerarquías de generalización
Asociación (según algunos autores es un tipo de agregación)
Pueden combinarse entre sí ofreciendo interesantes mecanismos semánticos para estructurar datos.
La clasificación establece una vinculación entre una categoría (clase) de objetos y cada objeto en
particular (instancia) que pertenece a dicha categoría, mientras que en las otras tres (agregación,
generalización y asociación) la relación se establece entre categorías de objetos y, por tanto,
también entre los correspondientes ejemplares de dichas categorías.
Los mecanismos de abstracción los utilizamos a diario (consciente o inconscientemente). P.ej.:
El vehículo de matrícula CR-0978-Z es (especialización) de la clase ambulancia. La
ambulancia es una generalización del conjunto de vehículos utilizados en el hospital.
Una ambulancia está formada (agregación) por cuatro ruedas, un chasis, un motor.
El propietario (asociación) de la ambulancia matrícula CR-0978-Z es la empresa
CUASER; su conductor (asociación) es José Fernández.
2.2.2.1
Clasificación o generalización 4 instanciación o particularización
La generalización (clasificación) es el mecanismo de abstracción que selecciona características
comunes a un conjunto de ocurrencias o instancias para crear una categoría a la cual pertenecen
dichas ocurrencias o instancias. El mecanismo contrario se denomina instanciación (o
particularización).
Ejemplo: Se clasifican o generalizan como Vehículos al conjunto de máquinas, animales o cosas,
con medios de propulsión propios, que sirven para desplazar seres u objetos desde una posición a
otra:
Ambulancia → SI es un vehículo
Grúa → NO es un vehículo (incumple la propiedad de autopropulsión).
La
clasificación
se
corresponde con el concepto
de pertenencia a un conjunto
(es miembro de): entre el
elemento
clase
y
los
elementos miembros se
establece una correspondencia
que atiende al verbo: “es
miembro de”.
Pág. 8 de 16
Bases de Datos
Modelos de datos
Sevilla, Marzo/2005, V 2005.01.1
Las instancias o ejemplares de una clase tienen características similares, por medio de las cuales se
describe la correspondiente clase; estas características toman valores concretos para cada uno de las
instancias que pertenecen a la clase.
Los mismos objetos admiten clasificaciones distintas. Por ejemplo, pueden clasificarse las
asignaturas:
obligatorias / optativas
anuales / semestrales
de primer curso, de segundo curso.
2.2.2.2 Agregación
La abstracción de agregación consiste en construir un nuevo elemento del modelo como
compuesto de otros elementos (componentes). Atiende al verbo “es parte de” entre los elementos
componentes y el elemento compuesto. El mecanismo contrario se llama desagregación.
Se pueden considerar tres tipos distintos de agregación:
Agregación de propiedades individuales para describir una clase (entidad superior).
Admitida explícita o implícitamente por todos los MD.
Agregación de propiedades para obtener una propiedad compuesta (El agregado de
datos). Admitida por algunos MD: p.ej.:Codasyl Sí; el modelo relacional básico de Codd no
admite agregados de datos.
Agregación de clases para obtener una clase compuesta. Sólo la incluyen los MD semánticos:
ER, UML.
Pág. 9 de 16
Bases de Datos
Modelos de datos
Sevilla, Marzo/2005, V 2005.01.1
2.2.2.3 Jerarquías de generalización
Las jerarquías de generalización permiten abstraer características comunes a varias clases
(subclases) para constituir una clase más general (superclase) que las contiene.
El conjunto de ejemplares de una subclase “es un” subconjunto de los ejemplares de la
correspondiente superclase.
Entre los elementos subclase y el elemento superclase se establece una relación del tipo
es_un (Las jerarquías de generalización suponen un refinamiento de la abstracción de
generalización donde la interrelación o vínculo es entre clases en vez de entre objetos
(miembros. P.ej. Vehículo matrícula SE-2048-CTX) y clases (objeto genérico. P.ej.
Vehículo).
La superclase PERSONA es una generalización de las subclases PROFESOR y ESTUDIANTE.
Cada jerarquía de generalización es un árbol de un solo nivel donde la raíz es la superclase y las hojas
son las subclases.
El mecanismo inverso de la abstracción de jerarquía de generalización es la especialización (las
subclases son casos particulares o específicos de la superclase).
Todo ejemplar de una subclase es también ejemplar de la superclase y, además de poseer las
características específicas de la subclase, hereda todas las correspondientes a la superclase.
Aunque esta abstracción es intuitiva muy útil no se contempla en todos los modelos de datos (P.ej.
ni el modelo relacional básico de Codd ni en el modeló E/R básico de Chen, pero sí en modelos
extendidos de Chen o en el modelo relacional extendido de Codd RM/T o en UML).
Pág. 10 de 16
Bases de Datos
Modelos de datos
Sevilla, Marzo/2005, V 2005.01.1
2.2.2.4 Asociación
La asociación es una abstracción que se utiliza para vincular dos o más clases (por tanto sus
instancias o ejemplares) creándose un elemento de un tipo distinto.
En algunos MD no aparece esta abstracción como tal, no existiendo ningún concepto especial para
representarla (Ej. Ni RM/B de Codd ni ERM de Chen, pero sí en RM/T de Codd y modelos EER).
Matrimonio
Ejemplo: Hombre ↔ Mujer , donde las clases Hombre y Mujer se asocian en una nueva clase
Matrimonio. Matrimonio es una nueva clase con entidad propia a la cual se pueden vincular tanto
propiedades (fecha y lugar de celebración) como establecer vínculos con otras entidades (p.ej., la
compra de una casa). Matrimonio no es un mero vínculo o correspondencia entre instancias de
entidades Hombre y Mujer; tiene sustantividad por si.
2.2.3
Restricciones
2.2.3.1 Clasificación
Se conocen como restricciones las reglas que impiden que determinados objetos o estados se
consoliden en la base de datos. Existen dos tipos:
Restricciones inherentes al propio modelo o estructurales (Ej.:si el modelo es jerárquico, la
única estructura es un árbol y no podrá representarse directamente una correspondencia m:n,
pues los vínculos entre padre e hijo son 1:n).
Restricciones de integridad semánticas (RIS) o explícitas, p.ej.:
restricciones de rango I 1{∀a(a : alumno) → a.edad ∈ [18, 65]}
ecuaciones lógicas


I 2 ∀d (d : debe) ∧ ∀h(h : haber ) ∧ (h.N º asiento = d .N º asiento) → ∑ h.importe =∑ d .importe 
h
d


Pueden ser:
Propias del MD (semántica integrada): su definición corresponde al diseñador, pero su
gestión es responsabilidad del modelo de datos, el cual las reconoce y recoge en el esquema.
La reusabilidad está garantizada al especificarse universalmente las reglas.
Ajenas al MD (semántica dispersa): son, por completo, responsabilidad del diseñador, ya
que el modelo de datos no las reconoce ni proporciona instrumentos para manejarlas. El
diseñador tiene que hacer código ajeno a la BD para incluirlas. Se dificulta la reusabilidad y se
pueden generar colisiones o inconsistencias de reglas.
Pág. 11 de 16
Bases de Datos
Modelos de datos
Sevilla, Marzo/2005, V 2005.01.1
Restricciones propias
Las restricciones PROPIAS (B2) se especifican al definir el esquema mediante las facilidades que
proporciona la función de definición de datos (DDL), almacenándose en la metabase de datos (no
en los programas), por lo que no pueden ser violadas por ninguna aplicación, es decir, cualquier
actualización está obligada a respetarlas.
Dependiendo de que sea o no preciso definir la acción:
Acción general. Es preciso programar un procedimiento (en cualquier lenguaje) que determine la
acción que hay que llevar a cabo. Se subdividen en:
Procedimientos almacenados. Se definen de forma procedimental
Disparadores (triggers). Se formula una condición de forma declarativa y cuando se
cumple una proposición lógica; el cumplimiento de la misma "dispara" la acción que puede
ser declarativa o un método programado..
Acción específica. La acción (en general rechazo, aunque puede ser otra, bien predeterminada bien
elegida mediante opciones) está implícita en la misma restricción.
Dentro de las restricciones de acción específica es preciso distinguir entre:
Condición general. La condición se define mediante una proposición lógica. La operación
será una actualización. No se declara la acción porque este tipo de restricción lleva siempre
asociado el rechazo de la operación cuando no se cumple la condición, es decir, el sistema
evalúa la condición y si el resultado es cierto se actualiza y si no es cierto no se lleva a cabo la
operación. P.ej., en SQL 92 se incluyen dos tipos de restricciones que son de condición
general:
Pág. 12 de 16
Bases de Datos
Modelos de datos
Sevilla, Marzo/2005, V 2005.01.1
Verificación. La expresión lógica mediante la cual se formula la condición está
definida sobre uno o varios atributos de un mismo elemento. Por ejemplo, una
claúsula "CHECK” dentro de un CREATE TABLE.
Aserción. Son análogas a las anteriores pero pueden estar referidas a más de un
elemento del esquema ya que tienen existencia por sí mismas (por tanto tienen un
nombre). Ej.: CREATE ASSERTION ..
Condición específica. También denominadas de "caso especial" ó "implícitas”. Se refiere a las
diversas opciones que facilitan los distintos MD cuando se definen los elementos de su esquema y
que en realidad son restricciones. Por ejemplo, en el modelo Relacional: PRIMARY KEY,
FOREIGN KEY, NOT NULL ...
2.2.3.2 Componentes de una restricción
En una restricción de integridad es posible distinguir los siguientes componentes:
La operación de actualización (inserción, borrado o modificación) cuya ejecución ha de dar
lugar a la comprobación del cumplimiento de la restricción.
La condición que debe cumplirse, la cual es en general una proposición lógica, definida sobre
uno o varios elementos del esquema, que puede tomar uno de los valores de verdad (cierto o
falso).
La acción que debe llevarse a cabo dependiendo del resultado de evaluar la condición.
Las restricciones de integridad se pueden considerar, en cierto modo, como reglas ECA (Evento,
Condición, Acción): “al ocurrir un evento (en este caso una actualización), se comprueba una condición y
dependiendo de su resultado se pone en marcha una acción (rechazar la operación, informar al usuario, corregir el
error, etc.)”.
Además de estos elementos, también pueden tener un nombre, por medio del cual es posible
identificarlas, y también puede indicarse el momento en el que ha de evaluarse la condición.
Pág. 13 de 16
Bases de Datos
Modelos de datos
Sevilla, Marzo/2005, V 2005.01.1
2.3 Metabase de datos base de datos
La aplicación de la componente estática de un MD a un determinado Universo del Discurso (UD)
nos da como resultado un esquema de base de datos o metabase de datos (MBD):
G[UD] = MBD(EMBD,RMBD)
MBD es la estructura de datos que describe, en el correspondiente modelo MD, las categorías que
han resultado de las abstracciones aplicadas al mundo real (UD) así como las restricciones de
integridad que se trata de modelar. La metabase de datos está compuesta por las estructuras del
esquema (EMBD) y las restricciones de integridad definidas (RMBD).
Una base de datos (BD: conjunto de instancias de datos) es la instanciación de una metabase de
datos.
BD
Generalización
Ins tan ciación
MBD . Una instancia de la base de datos configura un estado persistente2 que
representa una situación del universo de discurso. Un estado para hacerse persistente debe satisfacer
todas las restricciones de integridad de la base de datos; a esto se denomina estado consistente.
Sea BDi un estado persistente y consistente; entonces BDi contiene a la MBD y a los valores que
definen la instancia o estado persistente (BDi= RMBD (BDi)3) del universo representado:
BDi(EMBD,RMBD,BDi= RMBD (BDi))
2.4 Dinámica
2.4.1 Operadores
La componente dinámica consta de operadores que se permiten manejar las estructuras del
correspondiente MD.
En un plano abstracto, sin seguir una sintaxis concreta, puede expresarse una sentencia del lenguaje
de manipulación de datos (LMD) con la siguiente gramática:
LOCALIZACIÓN <condición> ACCIÓN <objetivo>
Localización o “enfoque”. Consiste en localizar una instancia de un objeto indicando un camino
(lenguaje navegacional), o un conjunto de instancias definido por intensión a través de una
condición (lenguaje de especificación). <condición> representa una expresión lógica que deben
cumplir los objetos que se desea localizar o señala el camino que permite llegar a esos objetos.
Acción (Operador del LMD). Se realiza sobre la(s) instancia(s) localizada(s). Puede consistir en
una operación de recuperación o en una actualización (inserción, borrado o modificación).
<objetivo> indica los objetos (o las propiedades de éstos) sobre los que se aplica la acción.
La aplicación de un operador (O) a una instancia o estado de la base de datos, si es de actualización,
genera un nuevo estado o instancia:
BDj=O(BDi)
Un estado es persistente si puede almacenarse y ser verificado en cualquier instante. Debe diferenciarse entre estado
persistente y estado transitorio o intermedio (normalmente en memoria).
3 Esta ecuación significa que si se aplican todas las reglas de la MBD al estado de la BD se obtendrá el mismo estado, o
dicho de otro modo, cada estado persistente verifica todas las restricciones de integridad de la metabase de datos.
2
Pág. 14 de 16
Bases de Datos
Modelos de datos
Sevilla, Marzo/2005, V 2005.01.1
Tanto BDi como BDj deben ser estados consistentes. Es decir BDi=RMBD(BDi) y BDj=RMBD(BDj).
Ejemplo:
Actualiza
Notas_de_alumnos
Cambia nota←5
SI nota=4.9
2.4.2
Acción
Objetivo
Enfoque y condición
Transacciones
2.4.2.1 Concepto
En general, la lógica de actualización de los datos de los sistemas de información está agrupada en
tareas ejecutables denominadas transacciones.
Una transacción (T) puede definirse como una sucesión de acciones (ai) u operaciones sobre la base
de datos; es decir T ≡ { a1, a 2, ... ai , .., a n − 1, an} ; expresado funcionalmente y partiendo de un estado
consistente (BDi) de la base de datos, esta transacción necesariamente debe llevar a un nuevo estado
consistente (BDi+1) :


(


BDi + 1 = T ( BDi ) = an  a n−1 ... ai ... a 2  a1 ( BDi ) 





(
))










Los estados intermedios pueden no ser consistentes.
2.4.2.2 Regla de atomicidad y puntos de sincronismo
Del concepto de transacción se deduce que una transacción debe comportarse como una unidad
lógica de trabajo BDi + 1 = T ( BDi ) ; es decir, una transacción si sufre una interrupción (puede suceder
pues todas las operaciones suceden en un tiempo finito y cuantificable y pueden darse causas como
fallos del medio, del sistema operativo, del propio entorno de la base de datos, comunicaciones, etc.)
no debe dejar la base de datos en ese estado intermedio, puesto que puede ser consistente.
Punto de sincronismo. Se identifican:
Comienzo. El instante o punto de inicio de la transacción (primitiva de gestión de transacciones
Begin(T)).
Terminación. La terminación puede ser normal o terminación con confirmación de los resultados
de la transacción (primitiva Commit(T)) o bien terminación anormal en caso de interrupción
(primitiva Abort(T)).
Regla de atomicidad de una transacción. “Una transacción se comporta como una unidad
lógica de trabajo, de modo que se garantiza siempre la consecución de un estado final consistente”.
Cuando la transacción ejecuta la primitiva Commit(T) se habrá alcanzado el estado final objetivo de
la transacción; sin embargo, si la transacción ejecuta (por razones diversas) la primitiva Abort(T),
entonces no se llegará al estado final objetivo BDi+1 , siendo la única opción volver al estado de
partida BDi, siendo necesario deshacer los cambios asociados a los estados intermedios
(inconsistentes por estas acciones que están vinculadas al todo o acción atómica de la transacción).
Para poder deshacer estos cambios se necesitará funcionalidad en los gestores de bases de datos
dentro del seno de los subsistemas de gestión de recuperación de la base de datos; este proceso de ir
hacia atrás deshaciendo cambios se conoce como ROLLBACK de la transacción.
Pág. 15 de 16
Bases de Datos
Modelos de datos
Sevilla, Marzo/2005, V 2005.01.1
3 Los modelos de datos en el proceso de diseño
Se conoce como proceso de diseño de una BD al conjunto de tareas necesarias para representar un
sistema objetivo (Universo de discurso) mediante un esquema. Los MD juegan un importante papel
en el proceso de diseño de una BD al ofrecer el soporte de abstracción adecuado para obtener estos
esquemas.
Los objetivos que persigue todo MD son
de dos tipos:
Formalización. El MD permite definir
formalmente las estructuras y restricciones
a través de lenguajes de datos.
Base del diseño. El MD es un elemento
fundamental en el desarrollo de una
metodología de diseño de BD; entorno al
esquema formalizado se construirán los
otros artefactos o componentes del
sistema.
Pág. 16 de 16
Descargar