DIVISION DE CIENCIAS BASICAS E INGENIERIA SISTEMA DE …148.206.53.84/tesiuami/UAM8060.pdf · -...

53
UNIVERSIDAD AUTONOMA METROPOLITANA UNIDAD IZTAPALAPA / DIVISION DE CIENCIAS BASICAS E INGENIERIA - /- SISTEMA DE CONTROL ESCOLAR 144180 PROYECTO TE- 11. SEMINARIO DE INVESTIGACION I. /- LICENCIATURAS : INGENIEU ELECTRONIC' (COMPUTACIOIV. LICENCU TURA EN COMPUTACION. DEPARTAMENTO : MGENiERiA ELECTRICA. ASESOR: 1

Transcript of DIVISION DE CIENCIAS BASICAS E INGENIERIA SISTEMA DE …148.206.53.84/tesiuami/UAM8060.pdf · -...

UNIVERSIDAD AUTONOMA METROPOLITANA

UNIDAD IZTAPALAPA

/ DIVISION DE CIENCIAS BASICAS E INGENIERIA

- /- SISTEMA DE CONTROL ESCOLAR 144180

PROYECTO TE- 11.

SEMINARIO DE INVESTIGACION I.

/- LICENCIATURAS : INGENIEU ELECTRONIC' (COMPUTACIOIV. LICENCU TURA EN COMPUTACION.

DEPARTAMENTO : MGENiERiA ELECTRICA.

ASESOR:

1

J U 1

1 4 4 1 8 0 Objetivo: Optimizar el sistema de control escolar de la Universidad

Autónoma Metropolitana, Unidad Iztapalapa. Teniendose las siguientes herramientas fundamentales.

- Sistema Operativo UNIX (UNJX SYSTEM V). - Lenguaje de programación C ( ANSI C). - Lenguaje de programación SQL. - Manejadores de Bases de Datos Sybase y Udace (4GL).

Equipo a utilizar: -

- Computador Hewlett Packard HP-9000 modelo 827.

INDICE:

I. Ambiente Operativo U N E .

I. I .- Introducción al sistema operativo UNE.

1.2.- Procesamiento de datos en UNIX. 1.3- Introducción a la programación en el ambiente UNE. (programación

SHELL).

1.4- Aplicación de herramientas avanzadas en UNIX.

11. Introducción al Lenguaje de Estnicturas de Consultas (Structure Query

Languaje,SQL).

11.1 .- Análisis del modelo relacional.

II.2.- Herramientas de aplicación.

2

ILI. Manejadores de Bases de Datos.

111.1 .- Introducción al manejador de bases de datos SYBASE.

III.2. Desarrollo de aplicaciones utilizando UNIFACE:

- Digitalización de imagenes.

- Manipulación de Audio y Video.

- Aplicación en - el ambiente UNIX.

IV. Análisis de cumplimiento de objetivos.

IV. 1 .- Estimación de aprendizaje del sistema Unix, Sybase y Uniface.

IV.2.- Estimación del grado de optimización del Sistema de Control

Escolar.

3

I. Ambiente Operativo UNIX.

1.1.- Introducción al sistema operativo UNIX.

Unix, en la actualidad, es la mayor herramienta disponible de software,

es portable, multiusUano y multitarea.

Actualmente el sistema Unix opera en cientos de computadores, desde

las IBM PCRT (y compatibles) hasta sistemas minifiame y mainí?ame.

Las caractensticas mas importantes de sistema Unix son:

- SHELL.

- Cauces (Pipes) y filtros.

¿Por que utilizar Unix?

Tradicionalmente, un programa para manejar una gran base de datos,

ha sido escrito para ser ejecutado en ambientes de viejos sistemas operativos,

tanto de computadores mainframe ylo miaifi.ame's, los cuales proporcionan un mínimo de asistencia, dando como consecuencia que todas las funciones

necesarias por el programa sean co&ficadas. Otra desventaja en estos

sistemas operativos, es que cada uno de ellos tiene su propio lenguaje y

formato de datos, provocandose con ello la rara,o incluso nula, comunicación

entre diferentes sistemas.

4

,

De igual manera cuando se requiere cambiar a otro sistema, se debe

aprender un nuevo lenguaje y además analizar la forma de como se realizará

la conversión y transferencia de los datos, y aun mas complicado y costoso,

reescribir los programas.

Unix resuelve muchos de estos problemas, proporcionando un amplio

conjunto de herramientas de software, cauces, filtros y programación Shell.

Estas herramientas proporcionan una amplia asistencia y además minimizan

considerablemente la carga de trabajo sobre el DBMS utilizado.

-

Otra ventaja que debe mencionarse, es que el sistema Unix permite

mezclar, en un mismo programa de Shell, comandos Unix, comandos del

DBMS y cauces, dando con esto un mayor potencial al desarrollo de

sohare, sin perder con elio la potencia de Unix al trabajar con el DBMS.

Ademas Unix permite la intercomunicación entre computadores

distintos, debido a que los DBMS soportados por Unix guardan sus datos en

un formato estandar de archivos planos (flat ASCII UNIX files).

El desarrollo de los Sistemas Abiertos es también una parte definitiva e

importante que implica la necesidad de utilizar al Sistema Unix, esto debido a

que la tendencia de los Sistemas Computacionales esta actualmente orientada

hacia los Sistemas Abiertos y por que desde sus ongenes el sistema Unix fue

diseñado para ello.

5

En un ambiente de sistemas abiertos, los sistemas de cómputo y el

software de diferentes proveedores es intercambiable y puede combinarse en

un ambiente operativo integrado. Algunos de los conceptos fiecuentemente

asociados a los sistemas abiertos son: Portabilidad, Interoperabilidad e

Interconectividad.

Porta bilidad : Se refiere a la capacidad de utilizar el sistema

operativo o las aplicaciones de software en una variedad

de sistemas de cómputo fabricados por diferentes

proveedores.

Interopera bilidad: Se refiere a la capacidad de intercambiar

información entre los computadores de diferentes

proveedores. Este término es utilizado de manera análoga

con el de Interconectividad.

,

6

1.2.- Procesamiento de datos en UNIX.

Conceptos Básicos:

SHELL: El shell es el mecanismo del sistema Unix para la comunicación

entre los usuarios y el sistema. Lee las lineas de comandos

tecleadas por el usuario y causa la ejecución de las acciones

- correspondientes.

METACARACTERES: *:

?: Indica cualquier caracter simple.

Indica cualquier secuencia de caracteres.

CAUCE (PIPE). Archivo abierto que conecta dos procesos. La información

escrita en un extremo del cauce puede ser leida en eí otro

extremo. 4

I-> ESCRIBE EN EL CONDUCTO.

LEE DE EL CONDUCTO.

. > . . .. . . . _-..I_.I ~ ...... .

FILTRO:

Se puede crear una línea de cauces, ai conectar

varios procesos mediante cauces, de manera líneal.

La manera de especificar una línea de cauces al

shell es mediante una sene de nombres de archivos

separados por barras vérticales. La salida del

archivo citado a la izquierda de una barra, es la

entrada del archivo citado a la derecha de la barra. -

Programa que procesa un solo flujo de entrada para

producir un solo flujo de salida. Estas herramientas

son bastante potentes para el procesamiento de

datos de pequeñas bases de datos y archivos.

EXPRESIONES REGULARES:

Son descripciones formales de cadenas de texto que

penniten realizar operaciones de comparación muy potentes.

Una expresión regular se compone de operadores que

describen caracteres simples a buscar.

A continuación se presenta un conjunto de caracteres que

tienen un significado especial ai ser utilizados en

expresiones regulares, estos caracteres son también

llamados operadores de expresión regular.

8

CARACTER UTILIDAD

Representa a cualquier caracter simple.

Representa conjuntos de caracteres.

Dentro del operador de corchete es utilizado

para denotar un rango de caracteres.

Se utiliza para indicar que una cadena

concordará con la expresión regula solo si esta ocurre al principio de la linea.

Se utiliza al íinal de una expresión para

indicar que una cadena encajará con la

expresión regular que proceda a este

operador, solo si ocurre al final de la

cadena.

Es utilizada para sustituir una cadena que

contenga operadores de expresión regular,

con el fin de eliminar el significado especial

de estos caracteres.

Se utiliza para inhibir el significado especial

del caracter operador de expresión regular

que le sigue.

Sustituye cero o mas ocurrencias del

elemento que precede a la expresión.

TAB- DE CARACTERES O-RW DE EXPRESION REGULAR.

9

Pueden construirse expresiones regulares complejas, combinando los

operadores indicados anteriormente.

Ejemplos de expresiones regulares:

1. Representar una secuencia de dígitos:

Expresión: [O-91 [0-9]*

2. Representar una cadena de caracteres:

Expresión: ". *$

PROCESAMIENTO DE DATOS:

El procesamiento de datos implica la gestión de información

almacenada en archivos. Durante el desarrollo de este proyecto, en Ias sesiones de asesona, se expusieron varios ejemplos del procesamiento de

datos en Unix, en los cuales intervienen diversos comandos que no serán

explicados explícitamente, ya que no es la finalidad de este reporte,

unicamente se dará la información necesaria para la comprensión de los

ejemplos aquí citados. Para una mayor información de estos comandos

referirse al apéndice de este reporte, o bien al manual en línea "MAN".

144180

CLAVE UEA

CLAVE ACTA

MATRICULA

CALIFICACION

Ejemplo de procesamiento de datos en Unix:

1 - 6 6

7 - 14 8

15 -22 8

23 - 24 2

- Se tiene un archivo que almacena la información de los alumnos que

presentaron alguna evaluación de recuperación, el nombre de tal archivo es "ES37S1" y su estructura interna es la siguiente:

1.- Determinar el total de alumnos de la UEA física 1, CLAVE-LEA:

211001.

Forma de obtener esta información:

$ grep 21 1001 es37sl I wc -1

Respuesta: 145 Descripción:

,

El comando "grep" indica ai Shell que busque todas las

ocurrencias de la cadena "21 1001" dentro del archivo "ES37S1", una

vez encontradas son pasadas corno entrada, atravéz del cauce "I" al

comando "wc -1" , el comando "wc -1" es quien realiza el conteo de estas ocurrencias y es el resultado final proporcionado.

J

2.- Encontrar el total de MB,B,S Y NA que corresponda a esta UEA.

forma de obtener esta información:

$ grep 21 1001 ES37S1 I grep < calificación> I wc -1

Descripción: -

El comando "grep" índica al shell que busque todas las

ocurrencias de la cadena "21 1001" dentro del archivo "ES37S1", una

vez encontradas son pasadas como entrada, atravéz del cauce "1" , al

comando "grep", el cual realiza la busqueda de la calificación indicada

por el parámetro "<calificación>" y este a su vez proporciona como

entrada, atravéz del cauce, al comando "WC -1" los registros que

cumplan con esta condición, el comando "wc -1" realiza el conteo de

ellas y es el resultado final que proporciona el sistema.

Respuesta:

MB 4

B 10

S 35

NA 1 O0

Realizando la sumatoria de estos resultados, 149, se observa que

no concuerda con el resultado obtenido con la primer consulta, 145. La

razón de la existencia de esta diferencia es que existe una duplicidad

de información al buscar el total de MB y B. La forma de eliminar esta

duplicidad es utilizar expresiones reguiares, el comando necesario para

obtener los resultados correctos es el siguiente:

$ grep 21 1001 ES37Sl I grep "[0-9][B]" I wc--1

Resp. 6.

3.- Entregar un reporte de todos los alumnos de la UEA 211001,

proporcionando la siguiente inf'ormación:

- ClaveUEA

- Matrícula

- Calificación,

Foma de obtener esta información:

$ grep 21 1001 ES37S1 I cut i: 1-6J5-22,23-24

Descripción:

El comando "cut - c" corta por columnas o campos el registro leido.

En este caso el comando "grep" proporciona los registros

correspondientes a la UEA física I al comando "cut - c", el cual

provoca que unicamente se muestren en pantalla las columnas

indicadas.

13

I

Estos ejemplos muestran el potencial de Unix, en cuanto al

procesamiento de datos, ya que utilizando comandos propios del

sistema pueden realizarse consultas complejas a los archivos, lo cual

no es posible con otros sistemas operativos tales como MS-DOS y

VMS, que son otros sistemas con los cuales hemos trabajado.

Es necesario indicar en este momento que, aun cuando Unix

permite realizar un potente procesamiento de datos, su amplia utilidad -

en sistemas computacionales es debida, básicamente, al grado de

asistencia que aporta en ambientes de desarrollo de software.

1.3.- Introducción a la programación en el ambiente UNIX. (Programación SHELL).

El sistema Unix tiene ufl lenguaje de programación llamado el

"SHELL PROGMMMING LANGUAJE", el cual posee un amplio

lenguaje con sentencias de control de flujo iguales a if, for y while. En la

programación shell pueden mezclarse sentencias procedentales (procedural) y

no procedentales (nonprocedural).

Sentencias Procedentales: Son instrucciones que indican a la

computadora, paso a paso, como realizar

algo.

Sentencias no procedentales: Son instrucciones que simplemente le indican

a la computadora sue hacer.

A continuación se presentan algunas de las sentencias de control y

algunos de los operadores utilizados en la elaboración de los programas shell,

comunmente llamados "guiones shell".

.. Operador if: Este operador, al igual que en otros lenguajes de

programación, introduce una operación condicional dentro

del programa shell.

Formato:

if <condición>; sentencias; fi

i f <condición>; then sentencias;fi

if <condición>; then sentencias; else sentencias; fi

Orden test: Esta orden es utiiizada conjuntamente con los operadores

condicionales if,while y until. Esta orden proporciona

valores de verdad (codigos de retorno) que son

reconocidos por los operadores condicionales y son estos

quienes determinan la acción a realizar según el valor

regresado por "test".

Formato:

if test <expresión>; then <sentencias>;

else <sentencias>; fi

if [ expresión 1; then <sentencias>; else <sentencias>; fi

En el segundo formato de observa que la palabra "test"

puede ser reemplazada por corchetes cuadrados, los

cuales encierran la expresión a evaluar.

Entre los diferentes usos de esta orden dentro de

programas shell se pueden mencionar los siguientes:

revisión de permisos de archivos, examinar valores de

variables shell (ver siguiente punto, aplicación de

herramientas avanzadas.), control de flujo de operadores

condicionales.

- Operador for: Este operador proporciona una construcción de iteración,

es decir, ejecuta repetidamente un conjunto de sentencias

del programa shell.

Formato:

for <variable> in mi m2...mn; do <ordenes>; done

donde: mi es el i-ésimo valor a asignar a la variable.

El shell asigna a <variable> el valor de mi y ejecuta las

ordenes (sentencias) comprendidas entre el do y el done,

una vez que se ejecuta la Última orden asigna a <variable>

el siguiente valor de "mi" y vuelve a ejecutar la sentencias

u ordenes comprendidas entre do y done. Esto se repite

hasta asignar ' h n " a <variable>.

Operador while: Este operador. condicional, ejecuta las ordenes

comprendidas entre "do" y "done" hasta que se cumple la

condición dada.

formato:

while <condición> do <ordenes> done

Operador case: Este operador implementa una construcción semejante a if

anidados. Ejecutando una sene de ordenes según el patrón

correspondiente al valor de la variable comparada.

formato:

case <variable> in

patrón 1) <ordenes> .. ¶ ¶ I

patrón2) <ordenes> -

.. ,Y

patrón 3) <ordenes>

esac

En este operador puede utilizarse el caracer cauce "I" como un operador lógico OR.

Orden echo: Es la principal herramienta del sistema Unix para producir salida de un programa shell.

formato:

echo [argumentos]

19

1.4.- Aplicación de herramientas avanzadas en UNIX.

Variables shell:

$? . $HOME.

Contiene el valor de entorno de la última orden ejecutada.

Contiene el valor del directorio default de usuario.

La aplicación de herramientas - avanzadas implica la utilización en

conjunto de variables shell, cauces, expresiones regulares y programación

shell. Esto permite realizar sentencias muy complejas a partir de comandos

simples del sistema Unix.

Ejemplos:

1. Sentencia: $Is * Descripción: El shell identifica al metacarater y es él quien

expande tal caracter, para darle el siguiente significado a la expresión:

"listar todos los archivos del directorio"

2. Sentencia: $ grep \* /etc/passwd

Descripción: La diagonal invertida Yff que precede al

metacarater "*" le inhibe este valor, con lo cual se le indica al shell que

lo interprete como caracter simple.

20

144180 3. Este ejemplo muestra la manera diferente en como el shell interpreta de

diferente manera el uso de los apóstrofos y las comillas.

!§ echo '$abc' Salida: $abc

$ echo "$ab&' Salida: <nulo>

La diferencia existente es debida a que cuando se utilmm

apóstrofos, el shell interpreta la orden echo como una orden de

impresión en la salida estandar de la cadena acotada, mi&tras que con

el uso de comillas se trata de encontrar el valor de una variable de

entorno que no ha sido declarada, por lo que su valor es nulo.

21

~ . ._-

11. Introducción al Lenguaje Estructurado de Consultas (SQL).

SQL es una herramienta utilizada para organizar, gestionar y recuperar

datos almacenados en una Base de Datos Relacional.

SQL se utiliza para controlar todas las bciones que un manejador de

Bases de Datos (DBMS) proporciona a los usuarios, incluyendo:

U Defiiricibn de d-s: Permite deñnir la estructura y organización de los

datos almacenados en la Base de Datos.

U Recuperación de datos: Permite recuperar y utilizar eficientemente

los datos almacenados en la Base de Datos.

Manipulación de datos: Permite actualizar la Base de Datos,

ailadiendo, eliminando ylo modificando datos sobre ella.

U Control de acceso: Permite establecer criterios para restringuir el

acceso a los datos almacenados, protegiendolos de esta

manera contra accesos no autorizados.

integridad de datos: Establece restricciones de integridad en la Base de

Datos, protegiendola contra posibles corrupciones.

22

SQL es un lenguaje completo de control e interactüación con un

manejador de base de datos, esta conformado por unas 30 sentencias

especializadas en la gestión de Bases de Datos, las cuales pueden

incorporarse a otros lenguajes dormáticos completos, por ejemplo C, para

extender dicho lenguaje y permitirle el acceso a la Base de Datos. Dentro de

un Manejador de Bases de Datos, SQL realiza un amplio número de

funciones entre'las que podemos citar las siguientes:

SQL es un lenguaje de consultas interacíivas: Aqui los usuarios

escriben ordenes SQL en un programa interactivo, para recuperar y

manipular datos almacenados en la Base de Datos.

w SQL es un lenguaje de programación: Los programadores insertan

ordenes SQL en sus programas de aplicación para acceder a los datos de la

Base de Datos.

SQL es un lenguaje de administración de Basa de Datos: El

administrador de la Base de Datos utiliza SQL para definir la estructura de la

Base de Datos y para controlar el acceso a los datos almacenados.

SQL es un iénguaje clkntdservidor: SQL es utilizado para hacer posible

la comunicación entre un Computador Personal (PC) y una red de área local

(LAN) con servidores de bases de datos que almacenan los datos

compartidos.

SQL es un lenguaje de Bases de Datos distribuidos: Se utiliza SQL para

ayudar a distribuir datos a través de muchos sistemas informáticos

23

conectados. El software DBMS de cada sistema utiliza SQL para

comunicarse con los otros sistemas, realizando peticiones para acceso a los

datos.

Por todo lo anterior, SQL ha emergido como una herramienta potente

para enlazar personas y sistemas infomáticos a los datos almacenados en una Base de Datos Relacional.

Amicuando uno de los principales objetivos en la creación de SQL fue

la elaboración de un estándar que pudiera funcionar indistintamente con

cualquier Manejador de Bases de Datos basado en él, existen diferencias

entre los dialectos SQL existentes, diferencias suficientemente significativas

como para que una aplicación deba ser siempre modificada cuando se pasa de

una Base de Datos SQL a otra. Estas diferencias incluyen:

= Códigos de error: El estándar no específica los códigos de error a

devolver y todas las implementaciones comerciales

utilizan su propio conjunto de códigos de error.

/

8 Tipos de datos: El estánciar define un conjunto mínimo de tipos de

datos, omitiendo tipos tales como cadenas de caracteres

de longitud variable y datos monetarios.

rn Tabla del sistema: El estándar no cubre las tablas del sistema, las

cuales proporcionan información referente a la estructura

de la propia Base de Datos, provocando tenga su propia

tabla.

24

B Interfa de programa: El estándar especifica una técnica abstracta para

utilizar SQL desde dentro de un lenguaje de

programación de alto nível, por ejemplo C, pero ningún

producto comercial Mplementa esta técnica y existen

diferencias importantes en cuanto a las interfaces reales

utilizadas.

rn Estructura de Base de Datos: El estándar específica el lenguaje SQL a utilizar una vez que la Base de Datos ha sido abierta y

esta lista para procesar. Los detalles de la denominación

de la Base de Datos y de como se establece la conexión

inicial con la Base de Datos varían ampliamente y no son

portables.

Estas son algunas de las diferencias existentes entre los productos SQL comerciales y el estándar propuesto (SQL ANSI/ISO).

SQL EN SISTEMAS UNIX.

SQL se ha establecido firmemente como solución de gestión de Base

de Datos a elegir para sistemas informáticos basados en Unix. El sistema

Unix corre bajo un amplio rango de sistemas informáticos, desde estaciones

de trabajo o maxicornputadores y se ha convertido en el Sistema Operativo

estándar para aplicaciones científicasy técnicas.

25

+ Algunos de los productos SQL utilizados en ambientes Unix son los

siguientes:

Ingres, Oracle, Idormix, UniQ y Sybase.

11.1. Análisis del Modelo Relacional.

SQL es un lenguaje de Bases de Datos para Bases de Datos

Relacionales y utiliza el modelo de datos relacional. El desarrollo de modelo

relacional fue una consecuencia de la necesidad de eliminar las desventajas

proporcionadas por los modelos de datos jerárquico y de red, este modelo

-

permite simplicar la estructura de las Bases de Datos y elimina las complejas

estructuras padrehijo de los modelos jerárquico y de red, sustituyendolas por

tablas fildcolumna de valores de datos.

Una Base de Datos Relacional es una Base de Datos en donde todos

los datos visibles al usuario están organizados estrictamente como tablas de

valores, y en donde todas las operaciones de la Base de Datos operan sobre

estas tablas.

TABLAS:

Es una disposicion rectangular fildcolumna de valores de datos. Cada

tabla tiene un nombre único que identifica sus contenidos. Dentro de una

tabla, cada fila representa una entidad fisica mientras que cada columna

representa un elemento de datos que esta almacenado en la Base de Datos

para cada fila.

26

Todos los valores almacenados en una misma columna de la Base de

Datos son del mismo tipo de datos, es decir, cada columua tiene un solo

dominio de valores. Cada columna debe tener un nombre de columna, este

nombre de columna debe ser único dentro de una Base de Datos, pero puede

ser utilizado en otra(s) Base de Datos diferente.

CLAVES PRIMARIAS:

)i

En una tabla de una Base de Datos Relacional las filas no estan

ordenas, por ello no puede seleccionarse una fila específica por su posición

dentro de la tabla. Para seleccionar una fila específica debe existir una

columna o combinación de columnas que identifiquen de forma unívoca cada

fila dentro de la tabla. Esta columna (o combinación de columnas) es

denominada "clave primaria" de la tabla.

/

Es necesario aclarar en este momento que una Base de Datos

Relacional bien diseñada debe tener siempre una clave primaria.

RELACIONES:

A diferencia de los modelos jerárquico y de red, en los cuales se

utilizaban punteros explicitos almacenados en la Base de Datos para

representar las relaciones padrefijo, en el modelo relacionaí estas relaciones

son representadas por valores de datos comunes almacenados en dos tablas,

una para el "padre" y otra para el "hijo".

CLAVES FORANEAS:

Una columna de una tabla cuyo valor coincide con la clave primaria

de otra tabla es denominada clave foránea. Al igual que una combinación de

columnas puede utilizarse como clave primaria, también una clave foránea

puede ser representada por una combinación de columnas. De echo, una

clave foránea será compuesta siempre que haga referencia a una tabla con

clave primaria compuesta. El número de columnas y el tipo de datos de

estas columnas en la clave foránea y la clave primaria deben ser idénticos.

Una tabla puede contener más de una clave foránea si esta relacionada

con más de una tabla adicional. Esta claves foráneas son parte escencial en

el modelo relacional ya que'crean relaciones entre tablas.

REGLAS DE COOD:

Las reglas que una base de datos debe cumplir para ser considerada

puramente relacional son denominadas "las doce reglas de Cood",

establecidas por el Dr. Cood (IBM) creador del modelo relacional. A

continuación se listan las doce reglas, pero no se da una explicación explicita,

para información mas detallada refierase a la bibliografía especializada de

bases de datos.

1 .- Regla de información.

2.- Regla de acceso garantizado.

3 .- Tratamiento sistemático de valores nulos.

28

4. Catálogo en línea áinámico basado en el modelo relacional.

5.-

6.-

7.-

8.-

Regla de sublenguajecompleto de datos.

Regla de actualización de vista.

Inserción, actualización y supresión de alto nivel.

Independencia fisica de los datos.

9.-

10.- Independencia de integridad.

1 1 .- Independencia de distibución.

1 2 .- Regla de no-subversión.

Independencia lógica de los datos.

11.2. HERRAMIENTAS DE APLICACION:

La estructura básica de una expresión en SQL se compone de tres

cláusulas: select, form y where.

SELECT: Corresponde a la operaciónde proyección del algebra relacional.

Sirve para listar todos los atributos que se desean en el resultado de

una consulta.

FROM: Representa una lista de relaciones que se van a examinar durante

la ejecución de la expresión.

WHERE: Corresponde al predicado de selección del álgedra relacional. Se

compone de un predicado que incluye atributos de las relaciones que

aparecen en la cláusula from.

29

Utilización de SQL para manipulación de datos:

Recuperacion de datos:

SELECT campo1,campo2, ..., cam^

FROM <Base-de-datos>

[WHERE <condition> ] -

La cláusula SELECT solicita los datos CapOi que se encuentran

almacendos en la Base de datos indicada por la cláusula FORM. La cláusula

WHERE, opcional, implementa una operación condicional para la optención

de los datos indicados.

Adición de datos a la Base de Datos:

SQL también es utilizado para añadir nuevos datos a la base de datos,

esto se logra con la cláusula INSERT.

INSERT into <base-de-datos> (campol ,cam~~, ..., campon)

VALUES (Vall,val2, ... valn)

En este case SQL indica que va a incertar un nuevo registro a la base

de datos indicada y los valores para los campos son indicados mediante la

cláusula VALUES.

SUPRESION DE DATOS: 1 4 4 1 8 8

Para eliminar datos de una Base de Datos se utiliza la cláusula

DELETE.

DELETE FROM <base-de-datos>

WHERE <campo> = <patrón de comparación>

La cláusula DELETE indica la Base de Datos a la que se le eliminara¡-

registros bajo la condición indicada por la cláusula WHERE.

ACTUALIZACION DE LOS DATOS:

El lenguaje SQL también es utilizado para modificar datos que ya estan

almacenados en la base de datos, esto se realiza mediante la cláusula

UPDATE.

UPDATE <base-de-datos>

SET <campop = <nuevo-valor>

WHERE <camp02> <operador> <valor>

En este caso el cláusula UPDATE indica la base de datos a modificar,

así como el campo exacto a modificar y el nuevo valor deseado mediante la

cláusula SET. La cláusula WHERE hplanb una condición a cumplir antes

de realizar actualización alguna.

PROTECCION DE DATOS;

Una de las características más importantes en una base de datos es la

protección de los datos almacenados contra accesos no autorizados, esto se

logra utilizando la cláusula REVOKE.

REVOKE ALL ON <base-de-datos>

FROM <usuario>

Esta orden SQL elimina todos los privilegios de acceso a el usuario sobre la

base de datos indicada.

Estas son unas pocas utilidades que puede tener el lenguaje SQL en la

manipulación de infomiación almacenada en bases de datos, pero su potencial

en el manejo de dicha inf'ormación es mucho mas gragde de lo que aqui se ha

ejemplificado y es por elio que la tendencia actual de los Manejadores de

Bases de Datos (DBMS) esta orientado hacia él.

En este proyecto se utiliza el DBMS relacional Sybase, el cual soporta

el lenguaje SQL y corre bajo ambiente Unix.

32

"L . .

SYBASE:

UN SISTEMA RELACIONAL

SYBASE es el nombre de un grupo de productos de Sybase,

incorporado. Los productos principales son SQL servidor y herramientas de

SQL. SQL servidor es un sistema manejador de Base de Datos (DBMS) que

corre bajo una variedad de Sistemas Operativos. -

incluyen VMS (para DEC VU), UNIX, OS/2, y otros. Mas

especificamente, es un DBMS para este medio ambiente; en otras palabras,

este es un sistema que permite cualquier numero de usuarios (usuarios hales

o programadores o ambos) en este medio ambiente accesamos cualquier

número de Bases de Datos relacional por medio del lenguaje relacional

Sybase. El SQL servidor tiene varias opciones (por ejemplo un servidor de

seguridad). Herramientas SQL es un conjunto de programas de interface al

SQL servidor. Los usuarios puede comunicarse con cualquier numero de

servidores de SQL y puede manipularse datos via el lenguaje relacional

Sybase.

El lenguaje relacional Sybase es llamado transact-SQL, ejecutar-SQL (con

pronunciación "transact sequel") esta es una versión mejor conocida del

lenguaje relacional SQL ("Structure Query Languaje") con numerosas

extensiones proyectadas como soporte de ejecución de soportes.

33

SQL (igualmente pronunciada "sequel" aunque la pronunciación oficial es

"ess-cue-ell") es el lenguaje de soporte de la Base de Datos para un Sistema

Manejador de Base de Datos relacionales productos actuales.

QUE MEDIO HACE PARA UN SISTEMA SEA RELACIONAL?

- Brevemente un sistema relacional es un sistema el cual:

a) Los Datos son mostrados al usuario como tablas.

b) Los operadores de los usuarios son disponibles son operadores que

generan nuevas tablas de anteriores. Por ejemplo un operador

extraerá varias tuplas (renglones) de una tabla y otro extraerá varias

atributos (columnas) y de una tabla pueden considerarse como tablas.

Sybase corre bajo vario sistemas operativos (y en muchas plataformas

de Hardware). Generalmente ignoramos diferentes características (y

versiones de los productos) estos varían con estos productos.

34

BASES DE DATOS RELACIONAL

La Base de Datos Sybase es esencialmente relacional es una Base de

Datos que esta a disposición de los usuarios como una colección de tablas.

EL LENGUAJE RELACIONAL SQL -

Como ya explicamos, el Sybase es un grupo de productos en común,

con numerosos productos, el lenguaje propio del lenguaje relacional SQL

("Structure Query Languaje). Este lenguaje es usado para formular

operaciones relacionales (es decir estas operaciones definen y manipulan

datos en forma relacional).

PRIMERO LA DEFINICION DE OPERACIONES

Los valores de la Base de Datos son definidos o descritos, usando

declaraciones SQL "definición de Datos", se define el nombre de las tablas,

los nombres y tipos de atributos, de esa tabla, y posiblemente alguna

información adicional también.

Un punto que es necesario que se recalque es que es una tabla creada,

una declaración es una declaración ejecutable.

35

Cada declaración en el lenguaje SQL es ejecutable, excepto, por

algunas que son usadas como ayudas.

Aunque esto no tiene que ver con el sujeto de esta sección (llamado, el

lenguaje SQL), esto es digno de mencionar.

El Sybase es especificamente designado para facilitar la instalación de

un Sistema.

El programa interactivo ISQL puede ser usado para veriñcar ese

sistema de instalación tiene que ser usado correctamente.

El procedimiento en conjunto típicamente toma un día de trabajo.

36

Que es UNIFACE y que hace:

El mejor camino para la introducción que es UNIFACE y que hace es una explicación que Sotftvare se desarrolla con UNIFACE, veremos como y que puede hacer este Software.

Cualquier Software hecho con UNIFACE se manipulará y se controlará con pasos muy bien estructurados. Este Software se preocupa de como los datos son almacenados, manipulados y presentados a el usuario.

El Software desarrollado con UNPACE, puede hacer muchas cosas, desde un simple programa el cual ejecuta una tarea específica, o un sistema completo de información de toda una organización.

Un sistema de información contiene diferentes programas que ejecutan diferentes tareas y es poco probable que comprenda uno solo, puede darse el caso que sea un programa muy grande el cual haga muchas cosas.

QUE ES SOFTWARE DE 'APLICACION'?

Cualquiera de estos programas con la información del sistema (Si es desarrollado con UNIFACE) es pequeño independientemente la parte es ejecutable, el Software desarrollado con UNIFACE, a esto llamaremos una "aplicación".

37

UNIFACE es también un Sistema en Ejecución. Cualquier aplicación desarrollada con UNIFACE corre bajo el control del tiempo de ejecución de UNIFACE. Este tiene algunas característica muy importantes una de las cuales es proteger su Hardware y Software independientemente de la inversión que usted haya pagado. El sistema en tiempo de ejecución:

o

O

o

o

o

O

Corre con diferente Sistemas Operativos.

Maneja diferente Bases de Datos y Manejadores de Archivos @BMS y FMSs), Sise requiere simultáneamente.

Corre de una manera transparente en el medio ambiente de diferentes Redes.

Tiene ventanas funcionales en todo su sistema de soporte.

Hace uso de gráficas que el usuario tiene a su elección.

Conforme al modelo relacional, y muchos otros estandares.

Su UNIFACE de aplicación puede por lo tanto hacer lo mismo. Se puede ver esto de otra manera, Las partes de su 'Sistema de infonnación' el cual es hecho con UNIFACE también puede hacer lo mismo.

Como con cualquier herramienta poderosa, Las desventajas de UNTFACE es que inexperto revelador tiene acceso inmediato a la funcionaria y flexibilidad eso es muy fácil de desarrollar en una mala aplicación.

38

PORQUE UNIFACE ES DE ‘CUARTA GENERACION’

UNIFACE es:

0 Un sistema en tiempo de ejecución es una aplicación de generación.

La IDF es:

O Es I na herramienta qi UNIFACE.

e ud.

C u a r f a

Sara al construir una aplicación con

ü Es una aplicación con UNIFACE.

Juntos UNIFACE y la IDF comprenden una aplicación desarrollada de cuarta generación y en tiempo de ejecución. Por este medio cualquier aplicación desarrollada con la IDF come automáticamente bajo el control de el tiempo de ejecución de UNIFACE. Una licencia desarrollada con UNIFACE por lo tanto le da el buen uso del IDF.

QUE SIGNIFICA SER DE CUARTA GENERACION:

Los siguientes característica de cuarta generación son algunas de las mas importantes con UNIFACE.

í i El desarrollo de una aplicación es mas rápida que con 3GLs, porque UNIFACE y la IDF hacen la ‘base’ para ti.

ü La experiencia con la programación 3GLs no es necesaria.

39

G Mas definiciones son declaradas.

G Los valores por default aseguran consistencia y un rápido desarrollo.

G El UNIFACE su tiempo de ejecución es automático incluye sus aplicaciones, así que tu no necesitas crear nada lo cual ya esta incluido en el sistema.

0 Un poderoso lenguaje de procedimientos es disponible para desarrollar procedimientos definidos.

DEFINICIONES:

La parte mas importante de una aplicación desarrollada es definir en forma global o 'conceptual' igualmente todas las cosas que tu quieras usar en tu aplicación.

Las ventajas de la generación de software son:

O Ud. siempre definirá algunos de los pasos.

O Ud. no, estará escribiendo código de inplementación en tus definiciones.

O El IDF almacena conceptualmente definiciones centrales en una Base de Datos así que solo necesitas hacerlo una vez.

0 Los valores por default son disponibles para muchas definiciones.

Cuando tengas que hacer la definición, La IDF almacena una Base de Datos (llamada el 'Diccionario de Aplicación') y tu no necesitas hacerlo otra vez.

En cualquier momento esto es necesario posteriormente en el desarrollo de una aplicación.

UNA APLICACION CON UNlFACE

Como se explico anterionnente, La IDF es una herramienta que se utiliza para desarrollar aplicaciones de UNIFACE, y está puede ser parte de un Sistema de Información independiente y ejecutable.

Que esta pasando cuando corres una parte como la siguiente:

G Al comenzar una rutina UNIFACE, que hace primero.

ü La información desplegada la cual dirige como aparecera toda en la tennuial durante la seción aplicada.

O La interface entre el software y tu DBMS, la red y la presentación de tu manejador.

O Cualquier 3GL la cual tiene que ligar con la aplicación.

ü Salida de la rutina.

41

IV. Análisis de cumplimiento de objetivos.

IV. 1.- Estimación de aprendizaje del sistema Unix, Sybase y Uniface.

En esta primer fase del proyecto se dio mayor atención al aprendizaje,

teórico y práctico, del Sistema Operativo Unix (Unix, System V Release 4).

En esta fase se explicaron claramente los conceptos cubiertos en este reporte,

los cuales fueron complementados con nuestras investigaciones y el seminario

impartido por personal de Hewlett Packard donde se hizo referencia a las

ventajas y desventajas de utilizar tanto el equipo HP, como también el

Sistema Operativo Unix.

-

Una de las desventajas mas sigmíicativas de este sistema operativo es

su poca "amabilidad" a nivel usuario, pero dicha desventaja es bastante bien

compensada con la atención que se recibe de este sistema operativo a nivel

desarrollo de software (programación).

Respecto a la aplicación práctica de los conocimientos adquiridos,

debe mencionarse que fue realizada con sumo cuidado y dedicandole a ello

todo el tiempo necesario.

Podemos afirmar que los conocunientos obtenidos del Sistema

Operativo Unix son aceptables y que serán de gran utilidad, y también

ampliados, en la siguiente fase de este proyecto.

42

' , . I . . - . . < . . .~ "._.. i .

Con respecto al Manejador de Bases de Datos Sybase y al Generador

de Aplicaciones Uniface debe aclararse qur esta parte fue puramente de

investigación y también debe mencionarse que esta es la parte a desarrollar

ampliamente en la siguiente fase de este proyecto. Se pretende que esta sea la

parte a desarrollar ya que es con lo que esta planeado realizar el SISTEMA DE CONTROL ESCOLAR, que es el objetivo de este proyecto.

- Se debe destacar el apoyo recibido por la Universidad y el Asesor al

proporcionarnos material bibliográfico para realizar esta etapa de

investigación.

Estimamos que los conocimientos obtenidos de Sybase y Uniface son

bastantes y solo hace falta llevarlos a la práctica, ya que en esta fase no fue

posible aplicarlos.

IV.2.-Estimación del grado de optimizacion del Sistema de Control

Escolar.

Se logró la normalización de la base de datos que será utilizada

en la elaboración de este proyecto. La normalización de la base de

datos se hizo necesaria ya que el sistema que se esta desarrollando

debe ser puramente relacional.

43

Estimamos que el grado de optimización aicanzado es muy

elevado, ya que teniendo esto como plataforma fundamental,

conjuntamente con los conocimientos obtenidos de Unix, Sybase y

Uniface, se tiene planeado para la siguiente fase dedicarse de lleno ai

desarrollo del sistema infomatico, es decir, realizar la programación de

los módulos necesarios para el sistema.

ABRIL 1993.

44

.

GREP:

PROPOSITO: Se utiliza para buscar lineas de un archivo que contengan un patrón de busqueda especificado.

I

FORMATO: grep [opciones] patrón-de-busqueda [archivo(s)]

DESCRIPCION: Este comando muestra las lineas de un archivo que concuerden con el patrón de busqueda. El patrón de busqueda puede ser una palabra o, de manera general, una secuencia de caracteres. El patrón de busqueda puede contener caracteres especiales.

OPCIONES: Este comando proporciona seis opciones para el manejo de la información que se desea manejar.

OPCION ACCION

-V

-C

-1

-n

-b

-S

Desplega las líneas que no concuerdan con el patrón de búsqueda. Muestra solamente el número de líneas que concuerdan con el patrón de búsqueda. Muestra el nombre del archivo que contiene líneas con el patrón de búsqueda. Precede cada linea que concuerda con el patrón de busqueda, con su número de linea dentro del archivo. Precede cada línea mostrada con el número de bloque en que se encuentra. Suprime los mensajes de emor cuando no se encuentra algun archivo o cuando no tiene permisos de lectura.

i

PROPOSITO: Utilizado para contar palabras, caracteres y líneas de un archivo.

FORMATO: wc [-lwc] [archivo(s)]

DESCRIPCION: Cuenta palabras, caracteres y líneas del archivo ínáicado. Si se indican varios archivos, wc proporciona el conteo individual y el gran total, el conteo para cada archivo individual es etiquetado con el nombre del archivo.

-

OPCIONES: El comando wc proporciona tres opciones:

OPCION ACCION

-1

-W

-C

Cuenta líneas.

Cuenta palabras.

Cuenta caracteres.

La opción por default es -wcl.

ii

1 4 4 1 8 0 CUT:

PROPOSITO: Utilizado para selccionar columnas o campos de cada línea de un archivo.

FORMATO: cut -clista [archivo( s)] cut -flista [-dcar] [archivo(s)] "lista" : proporcionados como salida.

Identifica las columnas o campos que serán

"car": campos.

Es el caracter utilizado como delimitador de

- DESCRIPCION: La opción -c indica las columnas de una lista de archivos

que seran desplegadas como salida del comando, mientras que la opcion -f indica campos. El caracter por default es el tabulador, pero la opción -d permite selccionar otro caracter como delimitador.

OPCIONES: Este comando proporciona cuatro opciones:

OPCION ACCION +lista Pasa las columnas indicadas por "lista". En

-flista

-dear

-S

esta opción no se pennite el uso de los espacios en blanco. Pasa los campos indicados por "lista". En esta opción no se permite el uso de los espacios en blanco. El caracter que sigue a -d es utilizado como delimitador. Para utilizar el espacio en blanco o cualquier caracter con significado especial para el Shell, se deb encerrar entre comillas. Suprime las lineas que no contengan el delimitador indicado. Por defaul cada linea es utilizada sin modificarla.

iii

Is:

PROPOSITO: Utilizado para listar los nombres de archivos y directorios, las opciones proporcionadas por el comando penniten obtener mas información sobre los archivos, tales como tamaño y fecha de creación.

FORMATO: 1s [opción(es)] [archivo(s)] [directorio(s)] DESCRIPCION: El comado 1s puede utilizarse para listar los archivos

existentes en el directorio actual o en otro directorio. La utilización de las opciones proporcionadas por el comando permite obtener mas información de los archivos, también mediante el uso de las opciones se pueden elegir diferentes formatos para el desplegado de la información. Las opciones para 1s pueden utilizarse juntas o separadas por un guión, por ejemplo 1s -a-x es lo mismo que 1s-ax.

OPCIONES:

OPCION ACCION -C

-F

-R

-a

-b

-C

Produce multiples columnas de salida, las entradas de cada columna son ordenadas en forma descendkte. Si se encuentra un archivo ejecutable, este se indica con un * despues de su nombre, si se trata de un directorio se indica con una diagonal invertida (0 despues de su nombre. Lista los archivos y subdirectorios existentes dentro de cada subdirectorio encontrado. Provoca que todos los nombres de archivo que comienzan con un punto (.) no sean mostrados como salida del comando. Forza a que los caracteres no gráficos encontrados, sean impresos en notación octal utilizando el formato \ddd. ver manual de referencia.

(continua)

iv

OPCION ACCION -d Si un argumento es un directorio, lista

solamente su nombre y no su contenido. -f Forza a que cada argumento sea interpretado

como un directorio e imprime el nombre de cada archivo encontrado en él. El orden en

-g -i -1

-0

-P

-t

que son mostrados los archivos, es el mismo en que aparecen en el directorio. ver manual de referencia. ver manual de referencia. Muestra mas información de cada archivo individual, tal como dueño, tamaño, fecha de la última modificación. Igual que -1, excepto que el jyupo no se muestra. Pone una diagonal invertida despues del nombre de cada directorio. Ordena los archivos de acuerdo a la fecha de la última modificación (la mas actual primero).

-

La opción -1 incluye una entrada llamada el "modo de archivo", el cual es una cadena de diez caracteres. El primer caracter indica el tipo de archivo y los restantes nueve indican varios permisos de acceso al archivo.

CARACTER TIPO DE ARCHIVO d Directorio. b Es un archivo especial de bloques, es decir, el

archivo describe un dispositivo, tal como un drive, el cual maneja datos en bloque. ES un archivo especial de caracteres, es decir, el archivo describe un dispositivo, tal como una terminal, la cual maneja datos un caracter a la vez.

P Es una cola (FIFO). - Es un archivo ordinario.

C

V

--I. ... <. . . - .. . . .

+h Los nueve caracteres que indican los permisos consisten de tres

conjuntos, tres caracteres por conjunto. Cada conjunto detalla permisos para

lectura (r), escritura (w), y pexmisos para ejecución (x), en este orden. El

primer conjunto indica los permisos para el dueño (owner), el segundo para

los usuarios pertenecientes al grupo y el tercero indica los permisos para los

restantes usuarios. A continuación se muestran los códigos utilizados.

CODIGO PERMISO

r Permiso de Lectura.

W Permiso de Escritura.

X Permiso para hacer ejecutable el

archivo.

- Permisos denegados.

s o s Asigna un identificador de dueño o

grupo al archivo.

1 Bloquea el archivo.

vi

. .". . ,. " . _." "

echo: PROPOSITO: Utilizado para desplegar mensajes.

DESCRIPCION: Este comando desplega sus argumentos en la salida

estándar, por default la terminal. Cada argumento es

separado del siguiente mediante un espacio cuando es

desplegado, la salida.total es terminada con un caracter de

nueva línea. Este comando puede utilizarse para generar

mensajes en programas shell, examinar valores de

variables y parámetros shell. -

NOTACIONES ESPECIALES: Este comando reconoce las siguientes

notaciones.

NOTA CION SZGNIFZCXDO \b Caracter de borrado, backspace.

\C hprime únicamente los argumentos previos ai punto donde aparece esta notación, los restantes argumentos son ignorados.

\f Caracter form-feed . \n Caracter de nueva línea.

\r

\t

Caracter de retorno de carro.

Tabulador.

\V Tabulador vertical.

\\ Diagonal invertida.

\On n es uno de los tres digitos octaies dados en el coáigo ASCII para el caracter deseado.

vii

UNE. .