DIVISION DE CIENCIAS BASICAS E INGENIERIA SISTEMA DE …148.206.53.84/tesiuami/UAM8060.pdf · -...
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