Departamento de Informática Cátedra de Base de Datos I Facultad Politécnica Sección NA Universidad Nacional de Asunción Docente: José Rojas Dávalos Unidad 2: Modelos de datos 2.1 Definición Partamos de un hecho de la vida real donde existen alumnos que presencian clases de varias asignaturas y que existe un requerimiento de control automatizado de alumnos que presencian clases de una determinada asignatura. Es decir, un hecho de parte de la vida real se quiera modelar para llevar finalmente a una estructura de datos. Entonces, ¿qué es modelar? Y según Flory (1982) “modelar consiste en definir un mundo abstracto y teórico tal que las conclusiones que se puedan sacar de él coinciden con las manifestaciones aparentes del mundo real”. Llamaremos modelo al instrumento que se aplica a una parcela del mundo real (universo del discurso) para obtener una estructura de datos a la que denominaremos esquema. En este punto es importante resaltar la distinción entre modelo (instrumento) y esquema (resultado de aplicar el instrumento), pues es común la confusión que da el nombre del modelo tanto al instrumento como al esquema resultante. Es importante distinguir entre el mundo real y el universo del discurso. Este último es la percepción de la vida real que tiene el diseñador. Entonces podemos decir que el primer paso para la concepción de una base de datos es definir el universo del discurso, fijando para ello una serie de objetivos a analizar tomados del mundo real. En nuestro ejemplo: • El mundo real es la de alumnos que presencian clases de varias asignaturas • El universo del discurso es la de alumnos que presencian clases de una determinada asignatura. • Nuestro objetivo es crear un esquema de base de datos para automatizar el universo del discurso donde: • La entrada es una parcela de la vida real que es el universo del discurso, en este caso alumnos que presencian clases de una determinada asignatura • El proceso es aplicar un modelo que es el instrumento que nos ayude a visualizar conceptualmente el hecho de alumnos que presencian clases de una determinada asignatura • La salida es una estructura de datos o el esquema resultante para registrar alumnos que presencian clases de una determinada asignatura. Otro ejemplo podría ser: • La mundo real de una compañía de desarrollo de software • Podríamos tener dos universos de discurso diferentes: • Lo relacionado a la investigación con sus investigadores, proyectos, productos, etc. • El concerniente a la gestión de talentos, salarios, contabilidad, etc. • Nuestros objetivos serían, a través de un modelo, que es el instrumento, convertir: • El universo del discurso referente a investigación en una estructura de datos o esquema • El universo del discurso referente a gestión en otra estructura de datos o esquema. Ahora bien, ¿siempre se llega al esquema a través de la aplicación de un instrumento o modelo? Las respuesta es, no siempre. Muchos diseñadores a través de su percepción del mundo real, que se 1/8 20/03/12 19:36:48 /media/JROJASD/fpuna/2012-1/bd1na/unidad2/documentosdeconsulta/textos/02-01definicion.odt Departamento de Informática Cátedra de Base de Datos I Facultad Politécnica Sección NA Universidad Nacional de Asunción Docente: José Rojas Dávalos Unidad 2: Modelos de datos 2.1 Definición constituye en el universo del discurso, pueden definir directamente, recurriendo a su intuición y experiencia, la estructuras de datos o esquemas necesarios. Por ejemplo, en el caso de la presencia de alumnos en clases en una determinada asignatura y sabiendo que los datos que interesan son los siguientes: • alumnos: cédula, apellido, nombre,tiene firma(si/no), fecha de incorporación • clases: fecha de clase, horas de clase • presencia: se registra solo la presencia asociando el alumno(cédula) con la clase(fecha de clase) . Una ausencia no es cargada, el diseñador experimentado puede concluir directamente en un esquema o estructura de dato, sin pasar por el uso de un instrumento o modelo. A continuación resumimos los conceptos y ejemplos presentados en el siguiente gráfico: --Con todo lo enunciado anteriormente, se puede definir un modelo de datos como “un conjunto de conceptos, reglas y convenciones nos permiten describir los datos del universo del discurso(UD)”. En otras palabras es una herramienta o instrumento que facilita la interpretación del UD y su representación en forma de datos en nuestro Sistema de Información(SI). Relación entre modelo y lenguaje de datos 2/8 20/03/12 19:36:48 /media/JROJASD/fpuna/2012-1/bd1na/unidad2/documentosdeconsulta/textos/02-01definicion.odt Departamento de Informática Cátedra de Base de Datos I Facultad Politécnica Sección NA Universidad Nacional de Asunción Docente: José Rojas Dávalos Unidad 2: Modelos de datos 2.1 Definición Los modelos son la base para los lenguajes, aunque estos tienen un menor nivel de abstracción, habida cuenta que un lenguaje es un modelo más una sintaxis, como por ejemplo: • El DL/I , es el modelo de datos jerárquico más su sintaxis • El SQL es el modelo de datos relacional más su sintaxis • El QBE es el modelo de datos relacional más su sintaxis Objetivos de los modelos de datos I) Formalización, pues permite: • Definir las estructuras permitidas y las restricciones, inherentes a la representación de los datos de SI • Establecer la base para la definición de un lenguaje de datos • Apreciar más objetivamente del grado de flexibilidad de las estructuras de datos • Comparar formalmente los diferentes modelo de datos • Evaluar los Sistemas Gerenciadores de Bases de Datos(SGBD) II) Diseño, porque ayuda a : • Desarrollar una metodología de diseño de Bases de Datos (BD) • Prever el impacto de los cambios en un SI. Definición formal de Modelo de Datos Las propiedades del UD, son de dos tipos: • Estáticas o de relativa variación en el tiempo, que responden a las estructuras • Dinámicas , que varían en el tiempo y son los datos o valores que se almacenan en las estructuras El modelo de datos, pues entonces, se puede definir como el par: MD = <S,O> donde: • S es el conjunto de reglas de generación que permiten representar la componente estática, es decir describir la estructura del UD y se corresponde con el Lenguaje de Descripción de Datos(LDD). Un ejemplo es la definición de la tabla alumnos mediante el lenguaje SQL: CREATE TABLE alumnos ( acedula int NOT NULL, aapellido varchar(30), anombre varchar(30), aconfirma int, afechaincorporacion date ); ALTER TABLE alumnos ADD PRIMARY KEY (acedula); • O es el conjunto de operaciones autorizadas sobre la estructura que permiten representar la componente dinámica y se corresponde con el Lenguaje de Manipulación de Datos(LMD). 3/8 20/03/12 19:36:48 /media/JROJASD/fpuna/2012-1/bd1na/unidad2/documentosdeconsulta/textos/02-01definicion.odt Departamento de Informática Cátedra de Base de Datos I Facultad Politécnica Sección NA Universidad Nacional de Asunción Docente: José Rojas Dávalos Unidad 2: Modelos de datos 2.1 Definición El siguiente ejemplo muestra como se agregan los datos de un nuevo alumno en la tabla correspondiente: insert into alumnos values(709446,'Fonseca', 'Gricelda',0,'2011/03/03'); A continuación un análisis detallado de cada una de las componentes. I) Estática: compuesta por dos tipos de objetos: • Objetos permitidos, que pueden variar de un modelo a otro, pero en general son: • Entidades como por ejemplo: • alumnos • clases • Atributos o propiedades de las entidades • En alumnos: • cédula • apellido • nombre • tiene firma o no • fecha de incorporación • En clases: • fecha • duración en horas • Dominios sobre los que se definen los atributos: • cedula como int • fecha como date • apellido como varchar de longitud 30 • Interrelaciones o asociaciones entre objetos: • Como la que existe entre alumnos y clases a través de la interrelación presencian. La representación de estos objetos depende de cada modelo de datos. El modelo E/R lo hace a través de grafos, mientras el relacional utiliza tablas. El siguiente gráfico resume lo que acabamos de exponer sobre los objetos permitidos: 4/8 20/03/12 19:36:48 /media/JROJASD/fpuna/2012-1/bd1na/unidad2/documentosdeconsulta/textos/02-01definicion.odt Departamento de Informática Cátedra de Base de Datos I Facultad Politécnica Sección NA Universidad Nacional de Asunción Docente: José Rojas Dávalos Unidad 2: Modelos de datos 2.1 Definición Entidades Atributos Dominios Dominios Interrelación • Objetos no permitidos o restricciones: Tomamos el modelo relacional y usamos un SGBD para tal modelo: • Inherentes: • No puede haber dos tuplas(filas,registros) iguales: acedula aapellido anombre aconfirma afechaincorporacion Tengo estos datos: 709446 Fonseca Gricelda 0 2011-03-03 Intento introducir estos: insert into alumnos values(709446,'Rojas','Margarita',0,'2011-03-04'); El sistema responde: #1062 - Duplicate entry '709446' for key 'PRIMARY' En este caso se activo la restricción de clave primaria que se definió en: ALTER TABLE alumnos ADD PRIMARY KEY (acedula); • En este modelo se consideran que dos tuplas son iguales cuando tienen valores iguales en su clave primaria. El orden de las tuplas no importa: Suponiendo que grabe las filas con los datos: acedula aapellido anombre aconfirma afechaincorporacion 709446 Fonseca Gricelda 0 2011-03-03 809765 Baez Ruben 1 2011-03-16 Mirando desde el punto de vista alfabético ascendente por apellido y nombre, la tabla no está ordenada. Pues eso se soluciona con: select * from alumnos order by aapellido,anombre que genera el resultado: acedula aapellido anombre aconfirma afechaincorporacion 809765 Baez Ruben 1 2011-03-16 709446 Fonseca Gricelda 0 2011-03-03 5/8 20/03/12 19:36:48 /media/JROJASD/fpuna/2012-1/bd1na/unidad2/documentosdeconsulta/textos/02-01definicion.odt Departamento de Informática Cátedra de Base de Datos I Facultad Politécnica Sección NA Universidad Nacional de Asunción Docente: José Rojas Dávalos Unidad 2: Modelos de datos 2.1 Definición • • El orden de los atributos no importa: Es lo mismo que haga: select aapellido,anombre from alumnos con el resultado: aapellido anombre Fonseca Gricelda Baez Ruben o también: select anombre , aapellido from alumnos con el resultado: anombre aapellido Gricelda Fonseca Ruben Baez Cada atributo solo puede tomar valor en el dominio en el que se encuentra: Intentemos lo siguiente: insert into alumnos values(987323,'Rojas Fonseca','Clara Margarita',0,'2011-02-29'); Vemos que el sistema responde: QL Message : -413 Overflow occurred during data type conversion. Engine Code : 335544334 Engine Message : conversion error from string "2011-02-29" • En otras palabras la fecha 2 de febrero de 2011 no se encuentra en el dominio de las fechas válidas. De usuario • Las que el SGBD reconoce: • La de clave primaria, que no permite cargar valores duplicados: Si intento: insert into alumnos values(709446,'Rojas Fonseca','Clara Margarita',0,'2011-02-28') El sistema responde: SQL Message : -803 Invalid insert or update value(s): object columns are constrained - no 2 table rows can have duplicate column values • Como se ve se se activó la restricción de clave primaria, impidiendo la grabación de clave duplicada. Obligatoriedad: • En ANOMBRE Varchar(30) NOT NULL, la restricción NOT NULL , me obliga a cargar el campo nombre • Así si intento: insert into alumnos values(765223,NULL,'Dora',0,'2011-03-15') El sistema responderá: Engine Code : 335544347 Engine Message : validation error for column AAPELLIDO, value "*** null ***" 6/8 20/03/12 19:36:48 /media/JROJASD/fpuna/2012-1/bd1na/unidad2/documentosdeconsulta/textos/02-01definicion.odt Departamento de Informática Cátedra de Base de Datos I Facultad Politécnica Sección NA Universidad Nacional de Asunción Docente: José Rojas Dávalos Unidad 2: Modelos de datos 2.1 Definición • Las que son exclusivamente responsabilidad del usuario: ▪ Integridad referencial • Por ejemplo entre clases y presencian definida en: ◦ ALTER TABLE PRESENCIAN ADD FOREIGN KEY (CFECHA) REFERENCES CLASES (CFECHA); Esta regla no permitirá cargar la presencia de un alumno en una fecha que no está registrada en clases, y si se intenta: insert into presencian values('2011-03-31',709446,2); el sistema emitirá el siguiente mensaje: ◦ • Engine Code : 335544466 Engine Message : violation of FOREIGN KEY constraint "INTEG_8" on table "PRESENCIAN" Foreign key reference target does not exist Reglas de validación: • También conocida como reglas de negocio o validaciones. Por ejemplo la siguiente definición para la tabla clases: check (cfecha>='2011-02-22' and cfecha<='2011—06-02') ▪ Permitirá como fechas válidas solamente las que estén en el intervalo cerrado ['2011-02-22','2011-06-02'] y un intento de violar la regla: insert into clases values('2011-02-21',2) generará el siguiente mensaje: Engine Code : 335544558 Engine Message Operation violates CHECK constraint CHK_CLASES_1 on view or table CLASES At trigger 'CHECK_3' Finalmente, se puede representar la componente estática del modelo de datos como el par: S = <Se,Sr> donde: • Se, es el conjunto de de reglas de definición de estructuras, incluyendo los objetos del modelos y restricciones inherentes, y • Sr es el conjunto de restricciones de usuario. II) Dinámica: Los valores que toman los distintos objetos de un esquema en un momento determinado ti el nombre de ocurrencia del esquema o base de datos en el tiempo t i (Bdi). En otro momento tj la ocurrencia del esquema será, en general, distinta, debido a un cambio en algún valor de la base de datos. Un conjunto de operaciones se definen sobre la estructura de del correspondiente modelo de datos constituyendo la componente dinámica del modelo. Al realizarse una operación en una ocurrencia de un esquema la transforma en otra otra ocurrencia distinta: O (BDj ) = BDj Las operaciones son de dos tipos: • -Selección, que consiste en localizar una ocurrencia o ocurrencias de una entidad mediante 7/8 20/03/12 19:36:48 /media/JROJASD/fpuna/2012-1/bd1na/unidad2/documentosdeconsulta/textos/02-01definicion.odt Departamento de Informática Cátedra de Base de Datos I Facultad Politécnica Sección NA Universidad Nacional de Asunción Docente: José Rojas Dávalos Unidad 2: Modelos de datos 2.1 Definición • dos formas: • Indicando un camino o sistema navegacional • Especificando una condición o sistema de especificación. Acción, que se realiza sobre una ocurrencia o ocurrencias de la entidad previamente localizada mediante una operación de selección y puede consistir, en una recuperación o en una actualización mediante inserción o alta, borrado o baja y modificació. Mediante el modelo relacional y el lenguaje SQL veamos los siguientes ejemplos: • Acción de recuperación con selección mediante sistema navegacional: Camino indicado mediante clave • Código SQL: select * from alumnos where acedula=709446; primaria • Resultado: 709446 Fonseca Gricelda 0 03.03.2011 • La clave primaria constituye un camino a los datos de una fila. Especificación • Acción de actualización con selección mediante sistema de especificación: indicada mediante una condición • Código SQL: delete from alumnos where aconfirma=1; • Resultado: Borrado de fila o filas de todos los alumnos con columna aconfirma=1 • La condición constituye una especificación para los datos de una o varias filas. • La distinción entre selección y acción es de tipo formal. Algunos lenguajes tienen dos verbos distintos para expresar ambas operaciones, vemos que el lenguaje SQL las reúne en una sola sentencia. La siguiente imagen resume lo expuesto: Fin del documento 8/8 20/03/12 19:36:48 /media/JROJASD/fpuna/2012-1/bd1na/unidad2/documentosdeconsulta/textos/02-01definicion.odt