Departamento de Informática Cátedra de Base de Datos I Facultad

Anuncio
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
Descargar