Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Modelamiento y Diseno de BD
Modelamiento y Diseno de BD
TECNOLÓGICO
NORBERT WIENER
ASIGNATURA:
MODELAMIENTO Y DISEÑO
DE BD
PROGRAMA: S3C
2
LIMA-PERU
3
INDICE GENERAL
Es aparente que una interpretación del mundo es necesaria, la que debe ser
suficientemente abstracta para que no sea afectada por la dinámica del mundo (los
pequeños cambios), y debe ser suficientemente robusta para poder representar
como los datos y el mundo se relacionan. Una herramienta como esta es llamada
modelo de datos, el cual permite representar en forma más o menos razonable
alguna realidad. El modelo de datos permite realizar abstracciones del mundo,
permitiendo centrarse en los aspectos macros, sin preocuparse de las
particularidades; así nuestra preocupación se centra en generar un esquema de
representación, y no en los valores de los datos.
DATO: la siguiente tupla: <nombre del objeto, propiedad del objeto, valor, tiempo>
Esta definición es correcta, ya que cada vez que se describe un fenómeno, éste se
refiere a un objeto (nombre del objeto) y ciertas características (propiedades del
objeto) el cual tiene un valor en un momento determinado (tiempo).
Un modelo de datos define las reglas por las cuales los datos son estructurados.
Esta estructuración, sin embargo, no da una interpretación completa acerca del
significado de los datos y la forma en que serán usados. Las operaciones que se
permiten efectuar a los datos deben ser definidos.
Ejemplo. Una lista puede ser tratada como pila o fila, dependiendo de las
operaciones que se permitan sobre ella.
BASE DE DATOS
Una colección de datos estructurados en una forma particular, según un esquema
particular, se denomina base de datos.
Todo modelo de datos debe poder capturar las propiedades estáticas y dinámicas
de una realidad. Las propiedades estáticas corresponden a lo que es relativamente
invariante en el tiempo, son siempre verdadero y no cambia en el tiempo.
Ejemplo. Que los precios se midan en $ es relativamente invariante.
MODELO DE DATOS
Se define el modelo de datos M consistente de dos partes:
G: un conjunto de reglas que lo generan.
O: un conjunto de operaciones.
Un modelo de datos también puede tener restricciones que son inherentes a él, las
que generalmente se incorporan en Ss (la estructura).
Ejemplo, sólo se permite relaciones entre objetos mediante una estructura de árbol.
8
En resumen:
Gs: Su Estructura
G: Reglas Generadoras
O: Operaciones Asociadas
Ss: Estructuras y categorías generadas por Gs
REALIDAD
REQUISITOS
análisis
MODELO
DISEÑO CONCEPTUAL
CONCEPTUAL
ESQUEMA CONCEPTUAL
MODELO
DISEÑO LOGICO
LOGICO
ESQUEMA LOGICO
MODELO
DISEÑO FISICO
FISICO
ESQUEMA FISICO
diseño
2.1 Entidades:
Tipo de
Entidad
2.2 ATRIBUTOS
Elemento de un Dominio. Aporta mediante su rótulo, la semántica de los valores del
Dominio al que está asociado.
Dominio
Atributo
2.3.Registros
Es un grupo o conjunto de información básica (campos), los cuales se encuentran
relacionados con respecto a un elemento, por ejemplo; los datos de un determinado
12
Registro: Son las filas en este caso hay 4, por ejemplo uno de ellos es:
345875 RADIOHEAD THE BENDS 21
Los registros son en muchos aspectos parecidos a las entidades del modelo
entidad-relación (E-R). Cada registro es un conjunto de campos (atributos), cada
uno de los cuales sólo contiene un valor de datos. Los enlaces son asociaciones
entre exactamente dos registros. Por tanto, los enlaces pueden considerarse una
forma restringida (binaria) de relación en el sentido del modelo E-R. Una base de
datos en red consiste en un conjunto de registros conectados entre sí mediante
enlaces.
2.4.CAMPOS
Es una unidad básica de información, respecto a un determinado elemento, es decir
es una característica (dato) de una persona u objeto, como por ejemplo: un nombre,
una fecha de nacimiento, un sueldo diario. Como existen diferentes tipos de datos
se usa para diferentes tipos de Campo como son: Carácter, Date, Memo, Logical, y
Numeric. Cada campo se define con un nombre o identificador, un tipo de dato
asociado y una longitud o tamaño.
Esto significa que no tiene sentido modelar una entidad que no podemos identificar
ni distinguir unas de otras.
2.6.CLAVE FORÁNEA
Clave foránea: En el modelo relacional se denominan claves ajenas o claves
foráneas a una referencia de una relación a otra, mediante su clave. Este concepto
lo conocemos en el formalismo individual como una relación implícita.
Una Relación (R1) puede poseer como uno de sus atributos (A) una clave primaria
de otra relación (R2). Este atributo (A) constituye una clave foránea en R1 y
referencia a R2.
En este caso las claves foráneas responden al mismo patrón de las relaciones
implícitas del formalismo individual, es decir, existen cuando la cardinalidad de la
relación es uno es a muchos.
La regla de integridad referencial nos indica que ningún atributo A que constituye
una clave foránea en una relación R1 y referencia a la clave primaria de una
relación R2 (no necesariamente distinta) puede tomar un valor que no esté presente
en la relación referenciada R2. Esto significa, que la base de datos no debe
contener valores de clave ajena sin concordancia.
Este modelo fue propuesto pro Codd en 1970 y se divide en tres partes, las cuales
separan la estructura, la integridad y la manipulación de los datos.
a1 p1
a2
a3 p2
a4
a5 p3
Automóviles Personas
Representación para la agregación "POSEE".
14
Al observar la figura, se puede decir que la persona p1 posee los autos a1 y a2, la
persona p2 posee los autos a2,a4 y a5, mientras que la persona p3 no posee autos.
De esto último se puede observar que no es obligatorio que todas las personas
posean autos, pero al parecer todos los autos deben tener un dueño. Esta última
característica es propia de cada agregación, y se refieren a la cardinalidad de
correspondencia entre las clases.
3.1.1 Cardinalidad.
Caracteriza a los atributos de un tipo de entidad y a los tipos de interrelación.
(Las definición aquí utilizada corresponde a la realizada por Tardieu).
Cardinalidad de atributo con respecto a un tipo de entidad.
Para los atributos, la cardinalidad mínima indica el número mínimo de valores
de un atributo asociado con cada caso (ocurrencia) de una entidad o
interrelación. La cardinalidad máxima indica el número máximo de valores
para un atributo asociado a cada caso de una entidad o interrelación.
Se define la Cardinalidad del Atributo A con respecto al tipo de entidad TE
como:
Card(A,TE)=( mínimo, máximo), con mínimo, máximo Î {0,...,n} y
mínimo máximo.
donde un elemento de A debe participar al menos mínimo veces, y a lo más
máximo veces en cada ocurrencia de TE.
Tipo de
Atributo (mínimo, máximo)
Entidad
3.3 RELACIONES:
c2 c2
d2 d2
c3 c3
c4 d3 c4 d3
c) d)
c1 d1 c1 d1
c2 c2
d2 d2
c3 c3
c4 d3 c4 d3
16
4.3 Condiciones.
5 CAPITULO 5: NORMALIZACION I
5.1 CONCEPTO
El diseño de esquemas para generar bases de datos relacionales debe considerar
el objetivo de almacenar información sin redundancia innecesaria, pero que a la
vez nos permitan recuperar información fácilmente. Una técnica consiste en
diseñar esquemas que tengan una forma normal adecuada.
5.2. IMPORTANCIA
Las formas normales, definidas en la teoría relacional, nos permiten evitar que
estas propiedades indeseables aparezcan en una base de datos basada en un
esquema mal diseñado. Un esquema debe estar a lo menos en tercera forma
normal, para que sea aceptable.
Otra forma de expresar la primera forma normal es decir que todas las
ocurrencias de un tipo de registro deben contener el mismo número de campos.
Ejemplo.
Consideremos el caso de agentes que representan compañías que fabrican
productos. Una relación sin normalizar que indique los productos que venden los
representantes es:
Ejemplo.
Consideremos el siguiente esquema propuesto para un registro de inventario.
Padre DIRECCIÓN-Padre
Estas son las tres formas normales básicas, existen además la forma normal de
Boyce/Codd, la cuarta forma normal, quinta forma normal.
Ejercicio.
Las drogas recibidas traen adjunto un recibo el cual es chequeado con los
detalles de la droga. El registro de la droga es actualizado y la droga es
ubicada en el estante correspondiente.
Desarrollo.
Supuestos de Diseño.
Los principales supuestos que soportan la normalización del sistema son los que
se indican a continuación.
6. CAPITULO 6: NORMALIZACION I
Objetivo: contener la información de las distintas versiones que existen para cada
droga que se utiliza en el hospital.
a) Restricciones de Integridad.
Si una droga tiene una ubicación, entonces el estado de esa ubicación debe ser
"ocupado".
Esquema
Droga
Key Data Version
Ubicación droga [PK1] Key Data
Key Data Non-Key Data droga [PK1] [FK]
ubicacion [PK1] nombredroga version [PK2]
Non-Key Data stock Non-Key Data
estado stockmin nombreversion
ubicacion [FK] laboratorio [FK]
proveedor [FK]
Proveedor Laboratorio
Key Data
Key Data
proveedor [PK1] laboratorio [PK1]
Non-Key Data
Non-Key Data
nombreproveedor nombrelaboratorio
fono
direccion
ProvLab
Key Data
proveedor [PK1]
[FK]
laboratorio [PK2]
[FK]
Observación.
El formalismo gráfico utilizado explícita la implementación de interrelaciones (del
MER) entre relaciones(del modelo Relacional) a través de claves foráneas. Las
cardinalidades se representan por la notación pie de gallo, donde se utiliza para
la cardinalidad (1,1) o uno es a uno , para la cardinalidad (0,1) o cero o uno,
6.2. Determinante
Uno o más atributos que, de manera funcional, determinan otro atributo o
atributos. En la dependencia funcional (A,B)-->C, (A,B) son los determinantes.
6.3. SIMPLIFICACIONES DE RELACIONES
Las simplificación de las relaciones entre clases va ha permitir tener la una base
sin redundancias así como es importante indicar que el tipo de correspondencia
mucos a muchos conceptualmente es valido pero lógica y relacionalmente no.
6.4. DESCOMPOSICIÓN
Consiste en descomponer un esquema de relación que tenga muchos atributos
en varios esquemas con menos atributos.Una descomposición descuidada puede
conducir a otro tipo de diseño incorrecto. Ejm:
25
6.5. UNIÓN
Consiste en la unión de tuplas de relaciones, las operaciones de unión toman
como entrada dos relaciones y devuelven como resultado otra relación. Cada
variante de las operaciones de unión están formadas por un tipo de unión y una
condición de unión. Las condiciones de unión indican las tuplas pertenecientes a
las dos relaciones que encajan y los atributos que se incluyen en el resultado de
la unión. El tipo de unión definen como se tratan las tuplas de cada relación que
no encajan con ninguna tupla de la otra relación (basado en la condición de
unión).
6.6. TRANSITIVIDAD.
Se define como la relaciones establecidas entre entidades que nos permiten
establecer cardinalidad con otra entidad :
Si A ByB C entonces A C
Definición formal:
Una relación R esta en FNBC si y solo si cada determinante es una llave
candidato.
Denominada por sus siglas en ingles como BCNF; Una tabla se considera en esta
forma si y sólo sí cada determinante o atributo es una llave candidato.
Definición formal:
Un esquema de relaciones R está en 4FN con respecto a un conjunto D de
dependencias funcionales y de valores múltiples sí, para todas las dependencias
de valores múltiples en D de la forma X->->Y, donde X<=R y Y<=R, se cumple por
lo menos una de estas condiciones:
Existe una dependencia de valores múltiples cuando una afinidad tiene por lo
menos tres atributos, dos de los cuales poseen valores múltiples y sus valores
dependen solo del tercer atributo, en otras palabras en la afinidad R (A,B,C) existe
una dependencia de valores múltiples si A determina valores múltiples de B, A
determina valores múltiples de C, y B y C son independientes entre sí.
Tabla EEspecialidad
Clave Especialidad
S01 Sistemas
B01 Bioquímica
C03 Civil
Tabla ECurso
Clave Curso
S01 Natación
S01 Danza
B01 Guitarra
C03 Natación
Definición formal:
Un esquema de relaciones R está en 5FN con respecto a un conjunto D de
dependencias funcionales, de valores múltiples y de producto, si para todas
las dependencias de productos en D se cumple por lo menos una de estas
condiciones:
28
Otra diferencia entre tipo de entidad y atributo es que, por ejemplo, se puede tener
el tipo de entidad Empleado, que tiene como atributo el departamento al que
pertenece. En forma alternativa se pueden tener los tipos de entidades Empleado
y Departamento, y el tipo de interrelación Trabaja_en, que relaciona un empleado
con el departamento donde trabaja.
8.2.2 Cardinalidad.
Caracteriza a los atributos de un tipo de entidad y a los tipos de
interrelación.
(Las definición aquí utilizada corresponde a la realizada por Tardieu).
8.2.3 Cardinalidad de atributo con respecto a un tipo de entidad.
Para los atributos, la cardinalidad mínima indica el número mínimo de
valores de un atributo asociado con cada caso (ocurrencia) de una entidad
o interrelación. La cardinalidad máxima indica el número máximo de valores
para un atributo asociado a cada caso de una entidad o interrelación.
Se define la Cardinalidad del Atributo A con respecto al tipo de entidad TE
como:
Card(A,TE)=( mínimo, máximo), con mínimo, máximo Î {0,...,n} y
mínimo máximo.
donde un elemento de A debe participar al menos mínimo veces, y a lo más
máximo veces en cada ocurrencia de TE.
Tipo de
Atributo (mínimo, máximo)
Entidad
Tipo de
Entidad
Genérica
8.2.7 Cobertura.
Las jerarquías de generalización presentan la propiedad de cobertura. La
cobertura puede ser parcial o total y exclusiva o superpuesta. La cobertura
parcial o total permite especificar una restricción entre el tipo de entidad
genérica y sus tipos de entidad subconjunto, donde todos los elementos del
tipo de entidad genérico deben pertenecer a alguno de sus tipos de entidad
subconjunto (si es total), o no (si es parcial). La cobertura exclusiva o
superpuesta permite especificar una restricción entre los tipos de entidad
subconjunto, donde los elementos que pertenecen a un tipo de entidad
subconjunto pueden pertenecer también a otro tipo de entidad subconjunto
(si es superpuesto) o no (si es exclusiva).
31
Tipo de
Entidad
Genérica
(x,y)
Agregación de Tipos
de Entidad
(a,b) (c,d)
TE1 TE2
R1
(e,f) (g,h)
R2
Tipos de Entidad.
Tipo de Entidad
Descripción
Atributo Dominio Cardinalidad
Atributos Compuestos.
Atributo
Descripción
Presente en
Notación para Descripción:
Atributo Componente 1+ Atributo Componente 2+ … + Atributo Componente n : El
atributo se compone de Atributo Componente 1, Atributo Componente 2, … ,
Atributo Componente n. Cada uno de los atributos Atributo Componente i debe
documentarse separadamente.
Atributos.
Atributo
Descripción
Dominio
Presente en
Notación para presente en:
Nombre1(TE) : El objeto donde se usa el atributo se denomina Nombre1 y es un
Tipo de Entidad.
Nombre2(TI): El objeto donde se usa el atributo se denomina Nombre2 y es un
Tipo de Interrelación.
Nombre3(@TE): El objeto donde se usa el atributo se denomina Nombre3 y es un
Tipo de Entidad, siendo este atributo (parte de) el identificador.
Nombre4(A): El objeto donde se usa el atributo se denomina Nombre4 y es un
atributo compuesto.
Dominios.
Dominio
Definición
Atributos
Estructuras de Generalización.
Generalización Tipo de Entidad Genérica
Cobertura
Tipos de Entidad
Subconjunto
Agregación de Tipos de Entidad
Restricciones Estáticas
34
Restricciones Dinámicas.
Restricciones Dinámicas
Id Objetos Involucrados Restricción
Res
tricc
ión
Pulse Open
C-222 140,000
10.4.3 Relacional
44
Este modelo fue propuesto pro Codd en 1970 y se divide en tres partes, las
cuales separan la estructura, la integridad y la manipulación de los datos.
Una relación constituye lo que podríamos llamar una tabla. Una Tupla
corresponde a una fila de esta tabla y un atributo a una columna. El número
de tuplas de una relación se denomina cardinalidad y el número de atributos
se denomina grado.
Por último, pero no por eso menos importante, un dominio es una colección
de valores, de los cuales uno o más atributos (columnas) obtienen sus
valores reales.
i) Claves primarias.
Esto significa que no tiene sentido modelar una entidad que no podemos
identificar ni distinguir unas de otras.
45
Una Relación (R1) puede poseer como uno de sus atributos (A) una clave
primaria de otra relación (R2). Este atributo (A) constituye una clave foránea en
R1 y referencia a R2.
En este caso las claves foráneas responden al mismo patrón de las relaciones
implícitas del formalismo individual, es decir, existen cuando la cardinalidad de la
relación es uno es a muchos.
La regla de integridad referencial nos indica que ningún atributo A que constituye
una clave foránea en una relación R1 y referencia a la clave primaria de una
relación R2 (no necesariamente distinta) puede tomar un valor que no esté
presente en la relación referenciada R2. Esto significa, que la base de datos no
debe contener valores de clave ajena sin concordancia.
b.Álgebra Relacional.
4. Unión. Construye una relación formada por todas las tuplas que aparecen
en cualquiera de las dos relaciones especificadas.
5. Intersección. Construye una relación formada por todas aquellas tuplas que
aparecen en las dos relaciones especificadas.
8. División. Toma dos relaciones, una binaria y otra unaria, y construye una
relación formada por todos los valores de un atributo de la relación binaria
que concuerdan (en el otro atributo) con todos los valores en la relación
unaria.
46
Restricción Proyección
Producto División
a z a x
a z z a
= a y a y div =
b x y y c
b z a z
c
b y b x
c z c z
c y c y
Reunión
a1 b1 b1 c1 a1 b1 c1
a2 b2 JOIN b2 c2 = a2 b2 c2
a3 b2 b3 c3 a3 b2 c2
Persona
Hombre Mujer
a) total, exclusiva. Todas las personas son Hombres o Mujeres, pero no ambos.
Empleado
Administrativo Docente
Estudiante
Egresado Títulado
Estudiante
Ingeniería Postgrado
En el modelo relacional se usa una colección de tablas para representar tanto los
datos como las relaciones entre esos datos. Cada tabla tiene varias columnas y
cada columna tiene un nombre único. Ejemplo:
Nombre- dni Calle-cliente Ciudad-cliente Número-
cliente cuenta
Gonzalez 19283746 Arenal La Granja C-101
Gómez 19283746 Carretas Cerceda C-215
Lopez 67789901 Mayor Peguerinos C-102
Abril 96396396 Preciados Valsaín C-305
Gonzalez 19283746 Arenal La Granja C-201
Santos 32112312 Mayor Peguerinos C-217
Ruperéz 24466880 Ramblas León C-222
Gómez 19283746 Carretas Cerceda C-201
Número-cuenta saldo
C-101 100,000
C-215 140,000
C-102 80,000
48
C-305 70,000
C-201 180,000
C-217 150,000
C-222 140,000
Por ejemplo, un modelo de datos simple es una archivo (tabla). Aplicando este
modelo a una situación particular se puede tener el siguiente esquema:
En un diseño típico hay diez veces menos entidades que atributos, así que el
diseño de entidades es mucho más tratable.
49
a) Diseño de la aplicación
b) Creación de una arquitectura específica para acoplar la aplicación con la
base de datos.
c) Selección de un DBMS específico que sirva como plataforma.
d) Diseño de la base de datos. Escritura del código del DBMS para establecer
las estructuras de base de datos adecuadas.
e) Escritura de código en un lenguaje de programación para compensar las
deficiencias del DBMS, para proporcionar una interfase de usuario, para
validar los datos y efectuar cálculos. Hay muchos DBMS que ofrecen
herramientas de productividad para simplificar las aplicaciones rutinarias.
f) Inserción de información en la base de datos.
g) Ejecución de la aplicación. La base de datos recibe consultas y es
actualizada según sea necesaria.
Formato: &<varmen>[.<expC>]
Alltrim: Esta función devuelve una expresión tipo carácter eliminado los
espacios en blanco tanto a la derecha como a la izquierda.
Formato: ALLTRIM(<exp<C>]
Acs: Esta función devuelve el código ASCII del primer carácter de izquierda
de una expresión de tipo carácter.
Formato: AT(<ExpC1>,<ExpC2>[,ExpN])
Formato: ATC(<ExpC1>,<ExpC2<[,ExpN>1])
Formato: CHR(ExpN>
Formato: CHRTRAN(<ExpC1>,<ExpC2>,<ExpC3>
Formato: LEN(<ExpC>)
Formato: LTRIM(ExpC>)
Formato: LIKE(ExpC1>,<ExpC2>)
Formato: DATE()
Formato: CMONTH(ExpF>)
a)SUM: comando que totaliza todos los campos numéricos de una base
de datos en uso
Todos los campos numéricos serán sumados a menos que se
especifique una condición lo mismo sucederá para los registros
11.3.2 MATEMATICAS
a) FLOOR: devuelve el entero mas próximo que sea menor o igual de que
expresión aritmética
formato: floor(<expr>)
ejemplo:
a=20.10
?floor(a)
devuelve 20
b=-20.10
?floor(b)
devuelve
-21
b) int : devuelve el valor entero de la expresion indicada
formato : int(<expr>)
ejemplo:
a=20.10 devuelve 20
Formato: CTOD(<ExpC>)
Formato: DTOC(<ExpF>)
11.5 OTRAS FUNCIONES
donde:
donde:
Ejemplo:
Ejemplos:
CLEAR
STORE SPACE (10) TO XX
5,5 SAY’ nombre:’GET XX FUNCTION ‘!’
READ
[DOUBLE I PANEL]
Determina el tipo de línea, por defecto nos muestra la línea simple, Double,
linea de dobles; panel, líne gruesas.
Ejemplo: CLEAR
5,5 To 10,50
5,5 To 10,50 DOUBLE
5,5 To 10,50 PANEL
5,5 To 10,50 PANEL COLOR R+/B
5,5 To 10,50 COLOR R+/ W
5,5 To 10,50 *
5,5 To 10,50 COLOR SCHEME 5
12.2.1 Picture
Si en lugar de FUNCTION se utiliza PICTURE, se deberá incluir el símbolo
(@) antes del sombrero para lograr los famosos popups que, como ya
sabemos, contienen varias opciones en el interior de un rectángulo
Con el fin de aclara las ideas vamos a ver algunos ejemplos:
PICTURE [@^ASIA;EURO;AFRICA;SALIR]
PICTURE ’@^ASIA;EURO;AFRICA;SALIR’
PICTURE ’@^’+’ASIA;EURO;AFRICA;SALIR’
PICTURE ‘^ASIA;EURO;AFRICA;SALIR’
12.2.2 Function
Los POPUP se pueden crear mediante la instrucción FUNCTION o la
palabra clave PICTURE
En el primero, la expc1 debe empezar por un acento circunflejo ‘^ y a
continuación, dejando un espacio vacío, los nombres de las opciones
separadas por un punto y coma (;).
56
Ejemplo A:
Op=3
@ 4,2 GET op;
FUNCTION [^ASIA;EURO;AFRICA;SALIR]
READ
Ejemplo B:
Op=3
@ 4,2 GET op;
PICTURE [@^ASIA;EURO;AFRICA;SALIR]
READ
12.2.3 When:
Permite condicionar la edición del GET. Si la condición es verdadera
permite el ingreso de un valor, en caso contrario ignorará el mandato GET.
12.2.4 Valid:
Condiciona el ingreso de un valor aceptándolo sólo si la condición
especificada es verdadera caso contrario nos muestra el mensaje de
ERROR.
12.2.5 Error:
devuelve el número de error cometido y activado por la instrucción por la
instrucción on error <mandato>
57
FORMATO: If <expL.
[ELSE
<instr2>]
ENDIF
READ
IF PF>10
MSJ-‘DESAPROBADO
ENDIF
14,20 SAY_MSJCOLOR 1*/W
WAIT’PRESIONE UNA TECLA PARA TERMINAR… ‘WIND
SET TALK
SET STAT ON
SETSCOR ON
FORMATO: DO CASE
CASE <expL1>
<instr1>
CASE <expL2>
.
.
CASE <EXPLN>
<instrN>
OTHERWISE
<instrM>
Donde:
DO CASE
CASE PF<6
59
MSJ=’PESIMO’
CASE PF<9
MSJ=’MUY MALO’
CASE PF<11
MSJ=’MALO’
CASE PF<14
MSJ=’REGULAR’
CASE PF<16
MSJ=’BUENO’
CASE PF<19
MSJ=’MUY BUENO’
CASE PF<20
MSJ=’EXCELENTE’
ENDCASE
Ejemplo: FOR
SET TALK OFF
SET ECHO OFF
CLEAR
nFila=6
FOR I= 1 TO 12
@ 02,32 SAY "Programa 10" FONT "Arial" ,14
@ 01,03 TO 20,80
@ 04,07 SAY "Tabla de Multiplicar Nº" + STR(I)
@ 05,07 SAY "--------------------------------"
FOR J=1 TO 12
@ nFila+J, 18 SAY STR(I) + " * " + STR(J) + " =" + STR(I*J)
NEXT J
WAIT WINDOW "Pulse una tecla ...."
CLEAR
nFila=6
NEXT I
13.4.2 DO WHILE…ENDDO
ejecuta un grupo de instrucciones un determinado numero de veces,
mientras que la <expresión > sea verdadera de lo contrario do while
termina
Ejemplo DO WHILE
SET TALK OFF
SET ECHO OFF
CLEAR
@ 01,03 TO 14,80
60
Sintaxis
Sintaxis:
Definición de menú
SET SYSMENU TO
SET SYSMENU AUTOMATIC
62
--------------------------------------------------------
SELECT orders
BROWSE NOWAIT
SELECT customer
BROWSE NOWAIT
Permite establecer una relación entre dos Archivos de Datos dando lugar a que se
genere una BASE DE DATOS con información de ambos archivos. Antes de
relacionar dos archivos, el archivo Padre debe estar abierto en el área actual de
trabajo y el archivo hijo en otra área de trabajo. Para utilizar el SET RELATION TO
deberá existir un campo en común entre ambos archivos, además dicho campo
deberá ser la clave de indexación. Luego de relacionar cuando se mueva el puntero
al registro correspondiente del archivo Hijo, de no encontrarse un registro
coincidente en el archivo Hijo el punto se situará en el EOF ().
FORMATO:
SET RELATION TO
[<exp1> INTO <expN1>
|<expC1>
[<exp2> INTO <expN2>
|<expC2>…]
[ADDITIVE]]
Haga clic
aquí
al aceptar observará:
65
Luego ingresamos:
CREATE REPORT INFOGRUP
primero deberá definir el titulo ,agrupar datos ( por mes, año, categorías,
etc)
bien como requerimos obtener resúmenes o cálculos utilizaremos variables
tal como se puede observar en la figura anterior
CLEAR GETS
@20,5 SAY "Pulse Una tecla Para Continuar..."
WAIT WINDOW "Código Ya Registrado"
@20,5
@02,01,24,78 BOX
ELSE
DO ventana
DO datos
READ
@18,20 SAY "Desea Grabar los Datos (S/N) " COLOR GB*/W
@18,50 GET rpta PICT "@!"VALID rpta $ "SN" ERROR "Respuesta
Incorrecta"
READ
IF rpta="S"
APPEND BLANK
REPLACE idartic WITH xcod
REPLACE idcateg WITH xcat
REPLACE nombre WITH xdescri
REPLACE pcosto WITH xpcos
REPLACE stock WITH xsto
ENDIF
@ 18,20 CLEAR TO 18,79
ENDIF
@18,15 SAY "Desea Continuar Con el Ingreso (S/N) " COLOR GB*/W
@18,55 GET sw PICT "!" VALID sw $"SN" ERROR "Respuesta Incorrecta"
READ
CLEAR
ENDDO
*******************************
PROCEDURE ventana
*******************************
@07,8 SAY "Categoría"
@07,23 SAY "»"
@08,8 SAY "Descripción"
@08,23 SAY "»"
@10,8 SAY "Precio unitario"
@10,23 SAY "»"
@11,8 SAY "Precio costo"
@11,23 SAY "»"
@12,8 SAY "Stock"
@12,23 SAY "»"
******************************
PROCEDURE datos
******************************
@07,25 GET idcateg FONT "Arial, 8"
@08,25 GET descri
@10,25 GET punitario
@11,25 GET pcosto
@12,25 GET stock
68
FORMATO:
INDEX ON <expr> TO <archivo.idx>
[FOR <expL>]
[COMPACT]
[UNIQUE]
[ADDITIVE]
Ejemplo: Indexar el Archivo de Datos PLANILLA.DBF, por ApelPat y Apelmat sin
repeticiones.
USE PLANILLA
INDEX ON APELPAT+APELPAT UNIQUE TO INDAPE
LIST CODIGO APELPAT, APELMAT, NOMBRE.
69
INDEX –ON-TAG
FORMATO:
Ejemplo:
USE PLANILLAS
INDEX ON SUELDO_NET TAG ETISUE DESCENDING
LISTCODIGFO,SUELDO_NET.
MODIFY STRUCTURE
Estructura: C:\FPPD26\PLANILLA.DBF
FORMATO:
APPEND FROM, <archivop> |?FIELDS<lista de campos>][FOR<expL>]
[TYPE]
[DELIMITED [UIT TAB|UIT <Delimiter> |WITH BLANK]| DIF | FW2|MOD|
PDOX| RPD| SDF|SYLK|WK1| WK3| WKS | WR1|XLS]]
PROCEDIMIENTO
Seleccione la secuencia de DATABASE, APPEND FROM (Alt,D,s) o bien
escriba el comando APPEND FROM en la ventana Command.
Aparecerá una ventana de diálogo que le permitirá definir todos los
parámetros necesarios para ejecutar el comando.
Haga clic con el mouse en el botón OK después de ejecutar los cambios
necesarios.
17.9 Update:
Actualiza el fichero en activo mediante otro fichero ordenando también por un
campo índice común
Formato:
Update ON campoindx FROM nomarchi replace WITH valor1 campo2 WITH valor2
Ejemplo:
SELECT 2 && ARTICULO.DBF
USE ARTICULOS INDEX CODIGO1 ALIAS ART
SELECT 1
USE INGRESO INDEX CODIGO2 ALIAS ING && INGRESO.DBF
UPDATE ON CODIGO FROM ARTICULO REPLACE CANTIDAD WITH CANTIDAD
+ ART->CANTIDAD
17.10 Join
Crea un nuevo Archivo de Datos uniendo otros dos existentes, el archivo actual y
un segundo archivo identificado por su área de trabajo o su alias.
JOIN coloca el puntero de registro del archivo actual y busca a través de los
registros del segundo archivo.
FORMATO:
JOIN UIT <expN> | WITH <expcC>
TO <archivo>
FOR <expL>
[FIELD <lista de campos>
Ejemplo:
Se tiene los siguientes Archivos de Base de Datos: TRABAJ.DBF
Permite añadir uno o más registros al final de un archivo de datos activo. APPEND
abre una ventana de edición para que se introduzca datos en los nuevos registros.
Al ejecutar APPEND BLANK se adiciona un registro blanco en forma automática,
este registro podrá se editado posteriormente utilizando el mandato BROWSE.
FORMATO: INSERT[BEFORE][BLANK]
17.13 Delete for
Este mandato permite eliminar en forma lógica uno o mas registros de archivos de
datos , colocando una marca “*” en estos registros
72