El Chip de Silicio Aplicado a un Microprocesador

Resumen de Instrucciones del Lenguaje SQL Cursos Tutorial SQL

Resumen de Instrucciones del Lenguaje SQL

Sentencias SQL en Visual Basic

logo sql

 I n d i c e de los temas tratados:
1. Introducción

2. ¿Qué es SQL?
3. La sentencia select y la cláusula from
4. Programación SQL desde el control data
5. Eliminación Dinámica De Registros
6. Contar Registros
7. Grupos De Registros
8. Combinación De Datos

  1. Introducción
    Visual Basic es un lenguaje de programación de propósito general, con una gran potencia en toda su estructura. Su implementación en el sistema operativo Windows y sus herramientas visuales, han hecho de este lenguaje un líder indiscutible en lo que a desarrollo de aplicaciones se refiere. Con la versión 3.0. se implementó la gestión de bases de datos a muy alto nivel, pudiendo gestionar bases de datos de tipo Access, Paradox, dBASE, FoxPro, etc.

Este paso de gigante ha hecho de Visual Basic uno de los lenguajes favoritos por los desarrolladores de aplicaciones de bases de datos, en especial el hecho de que Visual Basic implemente el lenguaje SQL, uno de los más potentes y sencillos lenguajes de bases de datos.

  1. ¿Qué es sql?

SQL (Structured Query Language ó Lenguaje Estructurado de Consulta), es un lenguaje bastante sencillo, principalmente orientado a bases de datos y, sobre todo, al manejo de consultas. Visual Basic incorpora esta extensión junto a nuestras bases de datos, obteniendo potentes resultados. De hecho, las consultas que se realizan en Access, están desarrolladas o basadas en este lenguaje, por lo que su implementación en Visual Basic no es complicada.

El objetivo principal de SQL es la realización de consultas y cálculos con los datos de una o varias tablas.

Consejos Para Escribir Mandatos En SQL
He aquí una serie de consejos (a veces normas), que hay que tener en cuenta a la hora de escribir mandatos SQL en nuestras aplicaciones en Visual Basic:
1. Un mandato en SQL se expresa en una cadena de caracteres o String.
2. Dicho mandato se puede escribir en la propiedad RecordSource de un control Data (más adelante, podremos prescindir del control Data para realizar nuestras consultas), con el fin de crear una consulta en la interfaz.
3. Los nombres de los campos especificados (y de las tablas), que contengan más de una palabra, han de encerrarse entre corchetes ([nombre]). Como norma general, se suelen escribir siempre entre corchetes.
4. Para especificar un determinado campo de una determinada tabla, se ha de escribir primero el nombre de la tabla, un punto y, a continuación, el nombre del campo
(nombre_tabla.nombre_campo).
5. Al especificar una expresión de búsqueda, si ésta se refiere a una expresión de caracteres, éstos han de encerrarse entre comillas simples (‘expresión_a_buscar’).
6. Para especificar una fecha en una búsqueda, ésta debe encerrarse entre signos numeral
(#fecha#) en Access, Dbase X, etc., y entre comillas simples (‘fecha’) para bases Sql Server, Informix, etc.
7. Si se utiliza la propiedad RecordSource del control Data, para crear nuestras consultas en SQL, tras introducir el mandato SQL (siempre como una expresión de cadena) es necesario refrescar el control Data (control_data.Refresh).

Mandato Sql Estándar

El lenguaje SQL está compuesto por una serie de sentencias y de cláusulas muy reducidas en número, pero muy potentes en efectividad. De entre todas las palabras, existen cuatro que son las más utilizadas, estando compuestas por una sentencia y por tres cláusulas:

SELECT lista_campos FROM lista_tablas [WHERE criterios [ORDER BY lista_campos]]

  1. La sentencia select y la cláusula from

La sentencia SELECT «selecciona» los campos que conformarán la consulta, es decir, que establece los campos que se visualizarán o compondrán la consulta. El parámetro ‘lista_campo’ está compuesto por uno o más nombres de campos, separados por comas, pudiéndose especificar también el nombre de la tabla a la cual pertenecen, seguido de un punto y del nombre del campo correspondiente. Si el nombre del campo o de la tabla está compuesto de más de una palabra, este nombre ha de escribirse entre corchetes ([nombre]). Si se desea seleccionar todos los campos de una tabla, se puede utilizar el asterisco (*) para indicarlo.

Una sentencia SELECT no puede escribirse sin la cláusula FROM. Una cláusula es una extensión de un mandato que complementa a una sentencia o instrucción, pudiendo complementar también a otras sentencias. Es, por decirlo así, un accesorio imprescindible en una determinada máquina, que puede también acoplarse a otras máquinas. En este caso, la cláusula FROM permite indicar en qué tablas o en qué consultas (queries) se encuentran los campos especificados en la sentencias SELECT. Estas tablas o consultas se separan por medio de comas (,), y, si sus nombres están compuestos por más de una palabra, éstos se escriben entre corchetes ([nombre]).

He aquí algunos ejemplos de mandatos SQL en la estructura SELECT…FROM…:

SELECT nombre,apellidos FROM clientes;

Selecciona los campos ‘nombre’ y ‘apellidos’ de la tabla ‘clientes’.

SELECT clientes.nombre, producto FROM clientes, productos;

elecciona el campo ‘nombre’ de la tabla ‘clientes’, y el campo ‘producto’ de la tabla productos.

Hay que tener en cuenta que si dos tablas poseen el mismo nombre de campo (un ‘nombre’ de cliente y un ‘nombre’ de producto, hay que especificar también la tabla a la cual pertenece dicho campo, ya, que de lo contrario, seleccionaría ambos nombres).

SELECT pedidos.* FROM pedidos;

Selecciona todos los campos de la tabla ‘pedidos’.

SELECT * FROM pedidos;

Selecciona todos los campos de la tabla ‘pedidos’.

SELECT nombre, apellidos, telefono FROM clientes;

Selecciona los campos ‘nombre’, ‘apellidos’ y ‘telefono’ de la tabla ‘clientes’. De esta manera obtenemos una agenda telefónica de nuestros clientes.

SELECT [codigo postal] FROM [tabla morosos];

Selecciona el campo ‘codigo postal’ de la tabla ‘tabla morosos’.

Claúsula Where

La claúsula WHERE es opcional, y permite seleccionar qué registros aparecerán en la consulta (si no se especifica aparecerán todos los registros). Para indicar este conjunto de registros se hace uso de criterios o condiciones, que no es más que una comparación del contenido de un campo con un determinado valor (este valor puede ser constante (valor predeterminado), el contenido de un campo, una variable, un control, etc.).

He aquí algunos ejemplos que ilustran el uso de esta cláusula:

SELECT * FROM clientes WHERE nombre=’ALFREDO’;

Selecciona todos los campos de la tabla ‘clientes’, pero los registros de todos aquellos clientes que se llamen ‘ALFREDO’.

SELECT * FROM abonados WHERE provincia=’MADRID’ OR provincia=’VALENCIA OR provincia=’BARCELONA’;

Selecciona todos los campos de la tabla ‘abonados’, pero los registros de todos los abonados de las provincias de ‘MADRID’, ‘VALENCIA’ o ‘BARCELONA’.

SELECT nombre, apellidos FROM abonados WHERE edad>=18;

Selecciona los campos ‘nombre’ y ‘apellidos’ de la tabla abonados, escogiendo a aquellos abonados que sean mayor de edad (a partir de 18 años).

SELECT * FROM abonados WHERE edad>=18 AND edad<=45;

Selecciona todos los abonados con edades comprendidas entre los 18 y los 45 años.

SELECT * FROM abonados WHERE edad BETWEEN 18 AND 45;

Selecciona todos los abonados con edades comprendidas entre los 18 y los 45 años.

SELECT * FROM diario WHERE fecha=#7/1/97#;

Selecciona los apuntes de ‘diario’ realizados el 1 de Julio de 1.997 (la fecha ha de indicarse en inglés (mes/día/año)).

SELECT * FROM diario WHERE fecha<=#12/31/96#;

Selecciona los apuntes de ‘diario’ realizados antes del 1 de Enero de 1.997.

SELECT * FROM diario WHERE fecha BETWEEN #7/1/97# AND #7/31/97#;

Selecciona los apuntes de ‘diario’ realizados en Julio de 1.997.

SELECT * FROM clientes WHERE nombre LIKE ‘AL*’;

Selecciona los clientes cuyo nombre comience con los caracteres ‘AL’.

SELECT * FROM clientes WHERE apellidos LIKE ‘*EZ’;

Selecciona los clientes cuyos apellidos terminen con los caracteres ‘EZ’.

SELECT * FROM clientes WHERE apellidos LIKE ‘*ZAMO*’

Selecciona los clientes cuyos apellidos contengan, en cualquier posición, los caracteres ‘ZAMO’.

SELECT * FROM clientes WHERE provincia IN (‘MADRID’, ‘BARCELONA’,

‘VALENCIA’,’TOLEDO’, ‘AVILA’);

Selecciona todos los clientes de las provincias de MADRID, BARCELONA, VALENCIA,

TOLEDO o AVILA.

Cláusula Order By

La cláusula ORDER BY suele escribirse al final de un mandato en SQL. Dicha cláusula establece un criterio de ordenación de los datos de la consulta, por los campos que se especifican en dicha cláusula. La potencia de ordenación de dicha cláusula radica en la especificación de los campos por los que se ordena, ya que el programador puede indicar cuál será el primer criterio de ordenación, el segundo, etc., así como el tipo de ordenación por ese criterio: ascendiente o descendiente.
(…) ORDER BY campo1 [ASC/DESC][,campo2 [ASC/DESC]…]
La palabra reservada ASC es opcional e indica que el orden del campo será de tipo ascendiente (0-9 A-Z), mientras que, si se especifica la palabra reservada DESC, se indica que el orden del campo es descendiente (9-0 Z-A). Si no se especifica ninguna de estas palabras reservadas, la cláusula ORDER BY toma, por defecto, el tipo ascendiente [ASC].

He aquí algunos ejemplos:

SELECT nombre, apellidos, telefono FROM clientes ORDER BY apellidos, nombre;

Crea una agenda telefónica de ‘clientes’ ordenada por ‘apellidos’ y ‘nombre’.

SELECT * FROM pedidos ORDER BY fecha DESC;

Relación de ‘pedidos’ ordenados desde el más antiguo hasta el más moderno.

SELECT * FROM abonados ORDER BY apellidos, nombre, fecha_nacimiento DESC;

Relación de ‘abonados’ por ‘apellidos’ y ‘nombre’ ascendiente, y por ‘fecha_nacimiento’ en orden descendiente (del más viejo al más joven).

  1. Programación SQL desde el control data

Gracias al control ‘Data’ podremos hacer nuestros primeros pinitos en SQL. Lo primero que hay que tener en cuenta es que la consulta realizada en SQL posea los mismos campos que la interfaz diseñada, y que los controles encargados de mostrar o modificar la base de datos, estén perfectamente vinculados al control Data. Por ejemplo: realizamos una ficha de ‘clientes’, por lo que diseñamos una interfaz con diversas Text Box vinculadas a un control Data que contendrá los datos. Estas Text Box se vinculan gracias a las propiedades ‘DataSource’ y ‘DataField’. La propiedad ‘DataSource’ corresponde a la fuente de los datos, en este caso, el nombre del control ‘Data’. En la propiedad ‘DataField’ se especifica el nombre del campo a tratar por cada Text Box (‘nombre’, ‘direccion’, ‘nif’, ‘telefono’, etc.). Por otro lado, en la propiedad ‘DatabaseName’ del control ‘Data’, se ha de especificar la ruta completa de la base de datos (fichero .MDB), y la propiedad ‘RecordSource’ se reservará para indicar, en una cadena o String, el mandato en SQL correspondiente cuando sea necesario.

Siguiendo con este ejemplo, esta ficha se reservará para consultas determinadas, y la Form será mostrada desde una Form anterior, desde la que se establece las condiciones de la consulta (‘que sean de Madrid’, ‘que hayan nacido antes de 1960’, ‘que habiten en Peñaranda de Bracamonte’, etc.). Se podría crear una variable de tipo String en un módulo, e insertar el mandato en SQL correspondiente antes de llamar a la ficha. Al llamar a la ficha, la Form correspondiente tendrá un evento Load, donde se insertará un código parecido a éste:

control_data.RecordSource = variable_SQL
control_data.Refresh

Obviamente, dependiendo del caso, la programación se hará diferente. Pero la norma común es crear una interfaz en concreto, con unos campos concretos y, cuando sea necesario, establecer como valor de la propiedad ‘RecordSource’ el mandato en SQL, y refrescar el control Data correspondiente. De esta manera, el control Data contendrá el resultado de la consulta.

  1. Eliminación Dinámica De Registros

¿Quién no ha sentido la necesidad de eliminar de un golpe un grupo de registros en común, en lugar de hacerlo uno por uno?. Esta operación puede ser mucho más habitual de lo que parece en un principio y, por ello, el lenguaje SQL nos permitirá eliminar registros que cumplan las condiciones o criterios que nosotros le indiquemos a través de la sentencia DELETE, cuya sintaxis es la siguiente:

DELETE FROM tablas WHERE criterios
Donde el parámetro ‘tablas’ indica el nombre de las tablas de las cuales se desea eliminar los registros, y, el parámetro ‘criterios’, representa las comparaciones o criterios que deben cumplir los registros a eliminar, respetando a aquellos registros que no los cumplan. Si – por ejemplo – quisiéramos eliminar todos los pedidos realizados por el cliente cuyo código sea 4 en el día de hoy, utilizaríamos la siguiente sentencia:
DELETE FROM pedidos WHERE [codigo cliente]=4 AND fecha=Now();

Aritmética Con Sql
¿Quién no ha echado en falta el saber el total de ingresos o de gastos de esta fecha a esta otra?.
¿Quién no ha deseado saber la media de ventas de los comerciales en este mes?. ¡Tranquilos!: el lenguaje SQL nos permitirá resolver estas y otras cuestiones de forma muy sencilla, ya que posee una serie de funciones de carácter aritmético:

Sumas O Totales
Para sumar las cantidades numéticas contenidas en un determinado campo, hemos de utilizar la función SUM, cuya sintaxis es la siguiente:
SUM(expresión)
Donde ‘expresión’ puede representar un campo o una operación con algún campo.
La función SUM retorna el resultado de la suma de la expresión indicada en todos los registros que son afectados por la consulta. Veamos algunos ejemplos:
SELECT SUM(unidades) FROM pedidos;
Retorna el total de unidades pedidas (la suma de todos los valores almacenados en el campo ‘unidades’ de la tabla ‘pedidos’). Este resultado se toma como un nuevo campo en el RecordSet.
SELECT SUM(ingresos-gastos) AS saldo FROM diario;
Retorna el saldo final de una tabla llamada ‘diario’. Este resultado se toma como un nuevo campo en el RecordSet y se le llama ‘saldo’.
SELECT SUM(unidades) AS total FROM pedidos WHERE fecha=Now();
Retorna el total de unidades pedidas hoy. Este resultado se toma como un nuevo campo en el RecordSet y se le llama ‘total’.

Promedios O Medias Aritméticas
Para averiguar el promedio de unas cantidades utilizaremos la función AVG, cuya sintaxis es la siguiente:
AVG(expresión)
La función AVG retorna el promedio o media aritmética de la expresión especificada, en todos los registros afectados por la consulta. Esto es lo mismo que realizar una suma (SUM) y, después, dividir el resultado entre el número de registros implicados.

He aquí algunos ejemplos:
SELECT AVG(unidades) FROM PEDIDOS;
Retorna el promedio de unidades pedidas (la media de todos los valores almacenados en el campo ‘unidades’ de la tabla ‘pedidos’). Este resultado se toma como un nuevo campo en el RecordSet.
SELECT AVG(ingresos-gastos) AS saldo_medio FROM diario;
Retorna el saldo medio de una tabla llamada ‘diario’. Este resultado se toma como un nuevo campo en el RecordSet y se le llama ‘saldo_medio’.
SELECT AVG(unidades) AS media FROM pedidos WHERE fecha=Now();
Retorna el promedio de unidades pedidas hoy. Este resultado se toma como un nuevo campo en el RecordSet y se le llama
‘media’.

Valores Mínimos Y Máximos

También es posible conocer el valor mínimo o máximo de un campo, mediante las funciones MIN y MAX, cuyas sintaxis son las siguientes:

MIN(expresión)

MAX(expresión)

He aquí algunos ejemplos:

SELECT MIN(unidades) AS minimo FROM pedidos;

Retorna el pedido más pequeño y lo refleja en el campo ‘minimo’.

SELECT MAX(unidades) AS maximo FROM pedidos WHERE fecha=Now();

Retorna el pedido más grande de hoy y lo refleja en el campo ‘maximo’.

SELECT MAX(gastos) AS maximo FROM diario;

Retorna el gasto más costoso reflejado en el diario contable, y lo representa en el campo ‘maximo’.

  1. Contar Registros

Otra operación muy común es realizar un recuento de registros. Aunque a primera vista pueda parecer poco práctico, la realidad es bien distinta. ¿Q quién no le gustaría conocer cuántos pedidos se han realizado hoy?. ¿O comprobar cuántos pagos se han realizado por una determinada cantidad?. ¿O saber cuántos clientes cumplen hoy años, se jubilan, son menores o mayores de edad, tienen alguna deuda, viven en esta ciudad o en tal otra, tienen teléfono móvil, están casados o solteros, etc.?. Para conocer cuántos registros hay utilizaremos la función COUNT, cuya sintaxis es la siguiente:
COUNT(expresión)
La función COUNT retorna el número de registros indicados en la expresión.

He aquí algunos ejemplos:

SELECT COUNT(*) AS num_pedidos FROM pedidos WHERE fecha=Now();

Retorna el número de pedidos realizados hoy. Este resultado se toma como un nuevo campo en el RecordSet y se le llama ‘num_pedidos’.

SELECT COUNT(*) AS casados FROM clientes WHERE casado=True;

Retorna el número de clientes casados. Este resultado se toma como un nuevo campo y se le llama ‘casados’.

SELECT COUNT(*) AS num_pagos FROM diario WHERE gastos=25594;

Retorna el número de pagos por un importe equivalente a 25594. Este resultado se toma como un nuevo campo en el RecordSet, y se le llama ‘num_pagos’.

SELECT SUM(unidades) AS total, AVG(unidades) AS media, COUNT(*) AS registros, MAX(unidades) AS maximo, MIN(unidades) AS minimo FROM pedidos WHERE fecha BETWEEN #1/1/97# AND #6/30/97#;

Retorna el total, la media, el máximo y el mínimo de unidades pedidas, y el número de pedidos realizados, durante el primer semestre de 1.997.

Omisión De Registros Duplicados

En una consulta podría ser útil omitir registros que estén duplicados. Por ejemplo, en nuestros pedidos hay duplicación, puesto que un cliente realiza varios pedidos en el mismo día. Quizá necesitemos una historia para conocer los días y los clientes que realizaron algún pedido, pero no necesitaremos toda la lista, si no que nos diga, únicamente, mediante una línea, qué cliente realizó algún pedido y en qué día. Para ello, utilizaremos el predicado DISTINCT, cuya sintaxis es la siguiente:

SELECT DISTINCT lista_campos …
El predicado DISTINCT omite aquellos registros duplicados en los campos especificados. En el problema expuesto, utilizaremos la siguiente sentencia:
SELECT DISTINCT [codigo cliente],fecha FROM pedidos;
Si deseamos que la consulta sea más completa y nos visualice también el nombre y los apellidos correspondientes del cliente en cuestión (estos datos están en la tabla ‘clientes’ y no en ‘pedidos’), escribiríamos este mandato:
SELECT DISTINCT pedidos.fecha, pedidos.[codigo cliente], clientes.nombre, clientes.apellidos
FROM pedidos, clientes WHERE clientes.[codigo cliente] = pedidos.[codigo cliente];

Reemplazar Datos
Imaginemos por un momento que el precio de los productos ha subido un 10%, y que tenemos que actualizar nuestra tabla de productos con el nuevo importe. La solución más primitiva sería acceder a la tabla y, el precio de cada producto multiplicarlo por 1.1 y reemplazarlo a mano. Con diez productos, la inversión de tiempo podría llegar al cuarto de hora, y no estaremos exentos de fallos al tipear el importe o al realizar el cálculo en la calculadora. Si la tabla de productos superase la cantidad de 100 productos (algo muy probable y fácil de cumplir), la cosa ya no es una pequeña molestia y un poco de tiempo perdido.

El lenguaje SQL nos permite solucionar este problema en cuestión de pocos segundos, ya que posee una sentencia llamada Update, que se ocupa de los cálculos y reemplazos. Su sintaxis es la siguiente:
UPDATE lista_tablas SET campo=nuevo_valor [,campo=nuevo_valor] [WHERE…]
Donde lista_tablas representa el nombre de las tablas donde se realizarán las sustituciones o reemplazos. El parámetro campo indica el campo que se va a modificar, y el parámetro nuevo_valor representa una expresión (constante, valor directo, un cálculo, etc.) cuyo resultado o valor será el nuevo valor del campo.

En el problema expuesto anteriormente escribiríamos la siguiente sentencia:
UPDATE productos SET pvc=pvc*1.1;
Si este incremento de precio de costo debe afectar al precio de venta al público un 30% de beneficio, podríamos escribir la siguiente línea para ahorrar trabajo y tiempo:
UPDATE productos SET pvc=pvc*1.1, pvp=pvp*1.3;
La sentencia UPDATE es muy versátil y potente, por lo que podemos realizar reemplazos condicionantes, ya que permite la cláusula WHERE. De ello se deduce que – por ejemplo -, si se desea bajar un 10% el importe del seguro a aquellos asegurados que cumplan más de dos años de carnet de conducir, y que tengan más de 22 años de edad, tendríamos que escribir la siguiente sentencia:
UPDATE asegurados SET importe=importe/1.1 WHERE edad>22 AND YEAR(Now)-YEAR(expedicion)>2;
Pero ahí no queda la cosa, porque es posible utilizar varias tablas y sustituir el valor de un campo de una de las tablas con el valor del campo de otra tabla, o bien reemplazar el valor de unos campos de alguna tabla si el valor de los campos de otras tablas cumple una serie de requisitos. Estos casos no son tan frecuentes, pero en el caso de haberlos se agradecerá un buen planteamiento en el diseño inicial de la base de datos.

 

  1. Grupos De Registros

A veces, puede ser necesario mostrar un resumen de los datos que tenemos, especificando el total – por ejemplo -, de los ingresos y de los gastos de cada día, en lugar de visualizar todos los ingresos y gastos realizados al detalle. Para llevar a cabo esta tarea hemos de tener en cuenta, en primer lugar, bajo qué campo se van a agrupar los datos (en lo expuesto, sería el campo fecha), y, a continuación, realizar la consulta mediante la cláusula GROUP BY, cuya sintaxis es la siguiente:
SELECT … FROM … [WHERE …] GROUP BY lista_campos
Básicamente, la cláusula GROUP BY agrupa o combina registros con idéntico valor en los campos especificados, en un único registro. Esto significa que en un sólo registro se mostrará la información común a muchos registros, como si dijésemos, al terminar las cuentas: «hoy se ha ingresado tanto y se ha gastado tanto, con lo que hay un beneficio de tanto», sin necesidad de especificar cada movimiento (cada ingreso, cada cobro, cada pago, cada factura, cada transferencia bancaria, etc.).

Imaginemos que queremos hacer un resumen de nuestros pedidos, y queremos saber cuántos pedidos y unidades han realizado cada uno de nuestros clientes. Para ello, se escribiría una sentencia como ésta:
SELECT codigo_cliente, count(codigo_cliente) AS num_pedidos, SUM(unidades) AS cantidad FROM pedidos GROUP BY codigo_cliente;

Para saber cuántos pedidos se realizaron cada día, escribiríamos esta línea:

SELECT fecha, count(fecha) AS num_pedidos FROM pedidos GROUP BY fecha;

Para conocer cuántas unidades se pidieron cada día, tipearíamos esta sentencia:

SELECT fecha, SUM(unidades) AS cantidad FROM pedidos GROUP BY fecha;

En la siguiente sentencia se muestra para cada cliente aquellos días en que se realizó un pedido, resumiéndose el número de pedidos realizados así como el total de unidades pedidas:

SELECT fecha, codigo_cliente, COUNT(codigo_cliente) AS num_pedidos, SUM(unidades) AS cantidad FROM pedidos GROUP BY fecha, codigo_cliente HAVING fecha<#1/6/97#;

Como se puede apreciar, se ha especificado una condición a través de la cláusula HAVING, que indica los criterios o condiciones a cumplir por los registros a visualizar en un agrupamiento. En esta ocasión, la condición era de aquellos pedidos realizados antes del seis de Enero de 1.997.

Para conocer una estadítica de pedidos diaria, utilizaremos la siguiente sentencia:

SELECT fecha, COUNT(fecha) AS pedidos, SUM(unidades) AS subtotal, MIN(unidades) AS minimo, MAX(unidades) AS maximo, AVG(unidades) AS promedio FROM pedidos GROUP BY fecha;

Un resultado de ejemplo sería el siguiente:
FECHA PEDIDOS UNIDADES MINIMO MAXIMO PROMEDIO
—– ——- ——– —— —— ——–
2/01/97 9 1599 2 1500 177,6
3/01/97 5 113 1 100 22,6
4/01/97 3 33 3 25 11,0
6/01/97 6 90 5 50 15,0
7/01/97 1 1 1 1 1,0

  1. Combinación De Datos

Las consultas realizadas hasta ahora requerían de una dosis de habilidad para conseguir crear un conjunto de datos que tuviese información combinada de dos tablas. Pero, podemos combinar datos de una manera mucho más sencilla y eficaz: mediante las operaciones JOIN, las cuales permiten combinar datos de dos tablas. La operación JOIN más común es INNER JOIN, cuya sintaxis es:
tabla1 INNER JOIN tabla2 ON tabla1.campo_común=tabla2.campo_común
Donde tabla1 y tabla2 representan el nombre de las tablas a combinar. Ambas tablas han de tener un campo común o igual para poder realizar correctamente la combinación de los datos. Pero veamos un ejemplo para entenderlo mejor:
SELECT * FROM pedidos INNER JOIN clientes ON pedidos.codigo_cliente =clientes.codigo_cliente;
El resultado será un conjunto de registros con los datos de las dos tablas. Este conjunto poseerá el nombre de todos los campos de la tabla pedidos y de todos los campos de la tabla clientes. En cada registro aparecerán los datos relacionados, es decir, que en un pedido aparecerán los datos del mismo y los datos personales del cliente que realizó el pedido.
La operación INNER JOIN combina los datos de las dos tablas siempre que haya valores coincidentes en los campos comunes o enlazados.

Existen también otras dos formas de combinar: LEFT JOIN y RIGHT JOIN. Ambas tienen la misma sintaxis que INNER JOIN, pero estas operaciones incluyen todos los registros de una tabla y aquellos registros de la otra en que los campos comunes sean iguales. En la operación LEFT JOIN, incluye todos los registros de la primera tabla (parámetro tabla1) y aquellos registros de la segunda tabla (parámetro tabla2) en que los campos comunes sean iguales. En la operación RIGHT JOIN ocurre lo contrario: incluye todos los registros de la segunda tabla y aquellos registros de la primera tabla en que los campos comunes sean iguales.

Aunque la diferencia entre las tres operaciones parezca inexistente, en realidad sí existe. La operación INNER JOIN realiza una combinación con todos aquellos registros de las dos tablas en que el campo común de ambas tenga el mismo valor, mientras que las operaciones LEFT JOIN y RIGHT JOIN realizan la combinación de todos los registros de la tabla que combinan (ya sea la primera para LEFT JOIN o la segunda para RIGHT JOIN), aunque en la otra tabla, en el campo común no haya coincidencia. La prueba se ve rápidamente si se introduce un código de cliente en el campo campo_cliente de la tabla pedidos que no exista:
SELECT * FROM pedidos INNER JOIN clientes ON pedidos.codigo_cliente =clientes.codigo_cliente;
El registro que contiene el pedido del cliente que no existe no aparece, puesto que no hay coincidencia. Si escribimos:
SELECT * FROM pedidos LEFT JOIN clientes ON pedidos.codigo_cliente =clientes.codigo_cliente;
Observaremos que aparecen todos los registros de la tabla pedidos, incluido aquel donde indicamos que el pedido fue solicitado por el cliente inexistente, pero en los campos relacionados (campos de la tabla clientes) no habrá ningún dato relacionado o combinado. Si ahora escribimos lo siguiente:
SELECT * FROM pedidos LEFT JOIN clientes ON pedidos.codigo_cliente =clientes.codigo_cliente; obtendremos el mismo resultado que con la operación INNER JOIN, puesto que se visualizan todos aquellos registros que existen en clientes y aquellos que coincidan con el campo clave en la tabla pedidos. Como el código inexistente no existe en la tabla clientes, este registro no aparece. Para comprobar el efecto aún mejor, modificar el código inexistente en el registro de la tabla pedidos por uno que sí exista. Tras ello, volver a introducir las sentencias SQL para comprobar la diferencia.

Lo más normal es utilizar la operación INNER JOIN para omitir aquellos registros no coincidentes, aunque las operaciones LEFT JOIN y RIGHT JOIN nos pueden servir para descubrir entradas erróneas en códigos.

Veamos algunos ejemplos más:
SELECT fecha, codigo_producto, unidades, apellidos, nombre FROM pedidos INNER JOIN clientes ON pedidos.codigo_cliente = clientes.codigo_cliente WHERE fecha<#1/6/97#;
Combina pedidos y clientes, visualizando aquellos pedidos realizados antes del 6 de Enero de 1997 por los campos fecha, codigo_producto, unidades, apellidos y nombre.
SELECT fecha, unidades, productos.* FROM pedidos INNER JOIN productos ON pedidos.codigo_producto = productos.codigo_producto;
Combina pedidos y productos, visualizando los pedidos por los campos fecha y unidades, y por todos los campos de la tabla productos.
SELECT fecha, unidades, productos.* FROM pedidos INNER JOIN productos ON pedidos.codigo_producto = productos.codigo_producto ORDER BY fecha, producto;

El resultado será el mismo que con el anterior ejemplo, salvo que la presentación de los registros se realizará ordenada por la fecha y el nombre del producto

 

Primeros Ordenadores Electrónicos Evolución Histórica

Primeros Ordenadores
Historia de la Computación

Después de la guerra, Brattain prosiguió la investigación en colaboración con J. Bardeen y descubrió que con dos contactos sobre un trozo de germanio era posible controlar la corriente que pasaba a través del semiconductor. El 23 de diciembre de 1947, Brattain y Bardeen demostraron que su dispositivo podía funcionar como amplificador de la corriente.

Primeros Ordenadores a Válvulas

Primeros Ordenadores a Válvulas

Su comportamiento dependía de la formación de regiones libres de electrones en la capa superficial del semiconductor, bajo los contactos. Como el dispositivo funcionaba transfiriendo corriente a través de un resistor, lo llamaron transistor. La versión original tenía limitaciones: era eléctricamente «ruidosa» y sólo podía controlar comentes de baja potencia. Pero poco después se desarrolló un transistor mejorado.

La versatilidad y el grado de miniaturización posibilitados por el transistor fueron sensacionales y generaron una industria de miles de millones de dólares para la fabricación de chips de silicio. El transistor puede considerarse uno de los inventos más importantes de todos los tiempos. Sin embargo, el programa de investigación que lo originó exigió un equipo sencillo: al parecer, el aparato más costoso era un osciloscopio.

Los primeros ordenadores electrónicos
Una buena forma de determinar la importancia de un adelanto técnico es considerar las consecuencias de su repentina desaparición. Un colapso general y prolongado de los servicios básicos, como el suministro de agua y electricidad, las telecomunicaciones, el transporte público o el sistema de alcantarillado, produciría en poco tiempo el caos y resultaría imposible mantener las condiciones de vida normales.

A fines del siglo XX, otra innovación tecnológica llegó a considerarse entre los elementos esenciales para mantener la normalidad de la vida cotidiana: el ordenador. Originalmente, no era más que un instrumento de cálculo, pero llegó a convertirse en un instrumento sumamente complejo de archivo y recuperación de la información.

Primeros Ordenadores

Primeros Ordenadores Para Uso Militar y Científico

Actualmente forma parte de la vida cotidiana hasta tales extremos que resulta difícil advertir que no existía, en su forma electrónica moderna, en los años de la preguerra y que los económicos ordenadores personales de fines del siglo XX tienen una capacidad mucho mayor que los gigantescos prototipos de los años 40. A fines de los años 80, se calculaba que el mercado mundial de los ordenadores había alcanzado una cifra anual de 100.000 millones de dólares: una hazaña notable para una industria tan joven.

El ASCC (Automatic Sequence Controlled Calculator), construido en Estados Unidos por IBM en 1944, puede considerarse el prototipo original de los ordenadores modernos. Aunque era básicamente un aparato electrónico, contenía muchos dispositivos mecánicos emparentados con los presentes en un extenso linaje de máquinas anteriores, cuya historia se remonta a la máquina de sumar del matemático francés Blaise Pascal, de 1642, y al aparato bastante más complejo del alemán Gottfried Leibniz, construido 30 años más tarde.

El ASCC era un auténtico dinosaurio: pesaba cinco toneladas, tenía 16 m de longitud y contenía 800 Km. de cables eléctricos. Para los criterios actuales, su capacidad de multiplicar dos números de 11 dígitos en 3 segundos resulta poco impresionante, ya que los tiempos de operación de los ordenadores de hoy en día se miden en millonésimas de segundo.

El sucesor del ASCC fue el ENIAC (Electronic Numerícal Integrator and Calculator) que, aparte de algunos conmutadores utilizados para controlar los circuitos, era completamente electrónico. Fue construido en la Universidad de Pennsylvania por J.P. Eckert y J.W. Mauchly, con el propósito original de utilizarlo en tiempo de guerra para calcular tablas balísticas. Sin embargo, no estuvo liste hasta 1946. El ENIAC era también una máquina gigantesca, dos veces más voluminosa que el ASCC. Contenía por lo menos 18.000 válvulas termoiónicas y, al rendimiento máximo, consumía 100 kilovatios de electricidad.

ENIAC

ENIAC

Dispersar el calor resultante era un problema en sí mismo. Para programar el ENIAC, era precise mover conmutadores y hacer conexiones manualmente, mientras que el ASCC se programaba con cintas perforadas. Los dos métodos tenían sus ventajas, pero ambos eran básicamente lentos y tediosos.

Para el siguiente paso, los técnicos volvieron a inspirarse en el siglo XIX, concretamente en la máquina analítica construida por el inventor inglés Charles Babbage en torno a 1830. Sorprendentemente, una de su; más fervientes publicistas fue lady Lovelace, hija de lord Byron, que señaló que muchos cálculos exigían la repetición de una secuencia determinada de operaciones y que sería posible ahorrar tiempo y trabajo si se conseguía que la máquina se ocupara de esos cálculos automáticamente. En efecto, el ordenador debía disponer de una memoria.

Incluso antes, en el siglo XVII, Leibniz había sugerido que para el cálculo mecánico era más sencillo utilizar la notación binaria, en lugar de la decimal tradicional. En esa notación, todos los números se expresar, con dos dígitos, O y 1, y no con los diez utilizados (de-O al 9) en la notación decimal. Para una calculadora electrónica, esta idea resulta particularmente adecuada, ya que corresponde a las dos modalidades eléctricas: «off» y «on».

Estos dos conceptos fueron incorporados por Johr. von Neumann, también de la Universidad de Pennsylvania, en una máquina mucho más avanzada, e. EDVAC (Electronic Discrete Variable Automatic Computer). En este aparato, la «memoria» consistía en pulsaciones sónicas conservadas en una columna de mercurio. A principios de los años 50 apareció ur. dispositivo de memoria más complejo, basado en el hecho de que la dirección de la magnetización en ciertos materiales denominados ferritas se puede invertir cas: instantáneamente, siguiendo la dirección de la corriente eléctrica en un circuito conectado.

Por entonces, el ordenador se estaba adelantando a sus posibilidades: realizaba las operaciones con más rapidez que el ritmo con que la cinta perforada podía suministrarle las instrucciones. El siguiente paso consistió en grabar el programa de operaciones en una cinta magnética, semejante a las utilizadas para la grabador del sonido.

Este adelanto fue incorporado en 1956 a UNIVAC de Remington-Rand, el primer ordenador electrónico disponible en el mercado, ya que los pocos modelos anteriores habían sido construidos para fines especiales a un enorme coste. Por este motivo, el público en general ignoraba casi por completo los adelantos en el mundo de los ordenadores.

La situación cambió considerablemente en 1951 cuando el UNIVAC original, diseñado para procesar la información del censo en Estados Unidos, previo acertadamente la elección de Dwight Eisenhower como presidente.

Conceptos de Redes Bases de Datos Lenguajes de Programación

Redes, Bases de Datos, Lenguajes de Programación

Bases de Datos

La DBMS (Data Base Management System) es la herramienta que las computadoras utilizan para realizar el procesamiento y almacenamiento ordenado de los datos. Una base de datos es un recipiente para colecciones relacionadas de datos.

Cualquier conjunto de datos organizados para su almacenamiento en la memoria de un ordenador o computadora, diseñado para facilitar su mantenimiento y acceso de una forma estándar. Los datos suelen aparecer en forma de texto, números o gráficos.

bases de datos

Desde su aparición en la década de 1950, se han hecho imprescindibles para las sociedades industriales. Hay cuatro modelos principales de bases de datos: el modelo jerárquico, el modelo en red, el modelo relacional (el más extendido hoy en día; los datos se almacenan en tablas a los que se accede mediante consultas escritas en SQL) y el modelo de bases de datos deductivas. Otra línea de investigación en este campo son las bases de datos orientadas a objeto, o de objetos persistentes.

Por ejemplo, un a agenda puede ser una base de datos donde se almacenan los nombres, direcciones y números telefónicos de amigos y contactos de negocios. La Base de Datos de una Compañía puede contener información acerca de los consumidores, vendedores, empleados, venta s en inventario.

Ejemplos de Bases de Datos: Access, FoxPro, Approach.

  1. Base de datos relacional, en informática, tipo de base de datos o sistema de administración de bases de datos, que almacena información en tablas (filas y columnas de datos) y realiza búsquedas utilizando los datos de columnas especificadas de una tabla para encontrar datos adicionales en otra tabla.En una base de datos relacional, las filas representan registros (conjuntos de datos acerca de elementos separados) y las columnas representan campos (atributos particulares de un registro). Al realizar las búsquedas, una base de datos relacional hace coincidir la información de un campo de una tabla con información en el campo correspondiente de otra tabla y con ello produce una tercera tabla que combina los datos solicitados de ambas tablas.

    Por ejemplo, si una tabla contiene los campos NÚM-EMPLEADO, APELLIDO, NOMBRE y ANTIGÜEDAD y otra tabla contiene los campos DEPARTAMENTO, NÚM-EMPLEADO y SALARIO, una base de datos relacional hace coincidir el campo NÚM-EMPLEADO de las dos tablas para encontrar información, como por ejemplo los nombres de los empleados que ganan un cierto salario o los departamentos de todos los empleados contratados a partir de un día determinado.

    En otras palabras, una base de datos relacional utiliza los valores coincidentes de dos tablas para relacionar información de ambas. Por lo general, los productos de bases de datos para microcomputadoras o microordenadores son bases de datos relacionales.

  2. Cliente/servidor: En vez de construir sistemas informáticos como elementos monolíticos, existe el acuerdo general de construirlos como sistemas cliente/servidor. El cliente (un usuario de PC) solicita un servicio (como imprimir) que un servidor le proporciona (un procesador conectado a la LAN).Este enfoque común de la estructura de los sistemas informáticos se traduce en una separación de las funciones que anteriormente forman un todo. Los detalles de la realización van desde los planteamientos sencillos hasta la posibilidad real de manejar todos los ordenadores de modo uniforme.

Redes

Una Red es una manera de conectar varias computadoras entre sí, compartiendo sus recursos e información y estando conscientes una de otra. Cuando las PC´s comenzaron a entrar en el área de los negocios, el conectar dos PC´s no traía ventajas, pero esto desapareció cuando se empezó a crear los sistemas operativos y el Software multiusuario.

  1. Topología de redes: La topología de una red , es el patrón de interconexión entre nodos y servidor, existe tanto la topología lógica (la forma en que es regulado el flujo de los datos) ,como la topología física ( la distribución física del cableado de la red).

Las topologías físicas de red más comunes son:

  • Estrella.
  • Bus lineal
  • Anillo.

A.1) Topología de estrella: Red de comunicaciones en que la que todas las terminales están conectadas a un núcleo central, si una de las computadoras no funciona, ésto no afecta a las demás, siempre y cuando el «servidor» no esté caído.

A.2) Topología Bus lineal: Todas las computadoras están conectadas a un cable central, llamado el «bus» o «backbone». Las redes de bus lineal son de las más fáciles de instalar y son relativamente baratas.

A.3) Topología de anillo: Todas las computadoras o nodos están conectados el uno con el otro, formando una cadena o círculo cerrado.

  1. Protocolos de intercambio, en informática, como en las relaciones humanas, señal mediante la cual se reconoce que puede tener lugar la comunicación o la transferencia de información. Los protocolos de intercambio se pueden controlar tanto con hardware como con software.Un protocolo de intercambio de hardware, como el existente entre un ordenador o computadora con una impresora o con un módem, es un intercambio de señales, a través de cables específicos, en el que cada dispositivo señala su disposición para enviar o recibir datos.

    Un protocolo de software, normalmente el que se intercambia durante las comunicaciones del tipo módem a módem, consiste en una determinada información transmitida entre los dispositivos de envío y de recepción. Un protocolo de intercambio de software establece un acuerdo entre los dispositivos sobre los protocolos que ambos utilizarán al comunicarse.

    Un protocolo de intercambio de hardware es por tanto similar a dos personas que físicamente estrechan sus manos, mientras que un protocolo de intercambio de software es más parecido a dos grupos que deciden conversar en un lenguaje particular.

  2. TCP/IP: (Transmission Control Protocol/Internet Protocol) Protocolo de control de transmisiones/protocolo Internet. Conjunto de protocolos de comunicaciones desarrollado por la Defense Advanced Research Projects Agency (DARPA – Agencia de proyectos de investigación avanzada de defensa) para intercomunicar sistemas diferentes.Se ejecuta en un gran número de computadoras VAX y basadas en UNIX, y es utilizado por muchos fabricantes de hardware, desde los de computadoras personales hasta los de macrocomputadoras. Es empleado por numerosas corporaciones y por casi todas las universidades y organizaciones federales de los Estados Unidos.

    El File Transfer Protocol (FTP – Protocolo detransferencia de archivos) y el Simple Mail Transfer Protocol (SMTP -Protocolo simple de transferencia de correspondencia) brindan capacidades de transferencia de archivos y de correo electrónico.

    El protocolo TELNET proporciona una capacidad de emulación de terminal que permite al usuario interactuar con cualquier otro tipo de computadora de la red. El protocolo TCP controla la transferencia de los datos, y el IP brinda el mecanismo para encaminarla.

En el siguiente diagrama se muestran TCP/IP, junto con los modelos DOD y OSI.

  1. IPX: (Internet Packet EXchange) intercambio de paquetes entre redes Un protocolo de comunicaciones del NetWare de Novell que se utiliza para encaminar mensajes de un nodo a otro.Los programas de aplicación que manipulan sus propias comunicaciones cliente/servidor o de igual a igual en una red Novell pueden acceder directamente al IPX o al protocolo SPX de NetWare. El IPX no garantiza la entrega del mensaje como lo hace el SPX.
  2. NETBEUI: NetBEUI (NETBIOS Extended User Interface) Interfaz de usuario extendido de NetBIOS La realización del protocolo de transporte NetBIOS en LAN Manager y LAN Server. Se comunica con las tarjetas de interfaz de red (NICs) vía NDIS (Network Driver Interface Specification).El término fue originalmente usado para definir el protocolo NetBIOS después que éste fue mejorado para soportar la Token Ring Network.
  3. Tipos de Redes: Según el lugar y el espacio que ocupen, las redes, se pueden clasificar en dos tipos:

1.Redes LAN (Local Area Network) o Redes de área local

2.Redes WAN (Wide Area Network) o Redes de área amplia

1.- LAN – Redes de Área Local:

Es una red que se expande en un área relativamente pequeña. Éstas se encuentran comúnmente dentro de una edificación o un conjunto de edificaciones que estén contiguos. Así mismo, una LAN puede estar conectada con otras LANs a cualquier distancia por medio de línea telefónica y ondas de radio.

Pueden ser desde 2 computadoras, hasta cientos de ellas. Todas se conectan entre sí por varios medios y topología, a la computadora(s) que se encarga de llevar el control de la red es llamada «servidor» y a las computadoras que dependen del servidor, se les llama «nodos» o «estaciones de trabajo».

Los nodos de una red pueden ser PC´s que cuentan con su propio CPU, disco duro y software y tienen la capacidad de conectarse a la red en un momento dado; o pueden ser PC´s sin CPU o disco duro y son llamadas «terminales tontas», las cuales tienen que estar conectadas a la red para su funcionamiento.

Las LANs son capaces de transmitir datos a velocidades muy rápidas, algunas inclusive más rápido que por línea telefónica; pero las distancias son limitadas.

  1. – WAN – Redes de Área Amplia:

Es una red comúnmente compuesta por varias LANs interconectadas y se encuentran en una amplia área geográfica. Estas LANs que componen la WAN se encuentran interconectadas por medio de líneas de teléfono, fibra óptica o por enlaces aéreos como satélites.

Entre las WANs mas grandes se encuentran: la ARPANET, que fue creada por la Secretaría de Defensa de los Estados Unidos y se convirtió en lo que es actualmente la WAN mundial: INTERNET, a la cual se conectan actualmente miles de redes universitarias, de gobierno, corporativas y de investigación.

G.) Componentes de una red:

De lo que se compone una red en forma básica es lo siguiente:

1.-Servidor (server):

El servidor es la máquina principal de la red, la que se encarga de administrar los recursos de la red y el flujo de la información. Muchos de los servidores son «dedicados» , es decir, están realizando tareas específicas.

Por ejemplo , un servidor de impresión solo para imprimir; un servidor de comunicaciones, sólo para controlar el flujo de los datos…etc. Para que una máquina sea un servidor, es necesario que sea una computadora de alto rendimiento en cuanto a velocidad y procesamiento, y gran capacidad en disco duro u otros medios de almacenamiento.

2.- Estación de trabajo (Workstation):

Es una computadora que se encuentra conectada físicamente al servidor por medio de algún tipo de cable. Muchas de las veces esta computadora ejecuta su propio sistema operativo y ya dentro, se añade al ambiente de la red.

  1. – Sistema Operativo de Red:

Es el sistema (Software) que se encarga de administrar y controlar en forma general la red. Para ésto tiene que ser un Sistema Operativo Multiusuario, como por ejemplo: Unix, Netware de Novell, Windows NT, etc.

  1. – Recursos a compartir:

Al hablar de los recursos a compartir, estamos hablando de todos aquellos dispositivos de Hardware que tienen un alto costo y que son de alta tecnología. En éstos casos los más comunes son las impresoras, en sus diferentes tipos: Láser, de color, plotters, etc.

  1. – Hardware de Red

Son aquellos dispositivos que se utilizan para interconectar a los componentes de la red, serían básicamente las tarjetas de red (NIC-> Network Interface Cards) y el cableado entre servidores y estaciones de trabajo, así como los cables para conectar los periféricos.

  1. Routers y bridges: Los servicios en la mayoría de las LAN son muy potentes. La mayoría de las organizaciones no desean encontrarse con núcleos aislados de utilidades informáticas. Por lo general prefieren difundir dichos servicios por una zona más amplia, de manera que los grupos puedan trabajar independientemente de su ubicación.Los routers y los bridges son equipos especiales que permiten conectar dos o más LAN. El bridge es el equipo más elemental y sólo permite conectar varias LAN de un mismo tipo. El router es un elemento más inteligente y posibilita la interconexión de diferentes tipos de redes de ordenadores.

    Las grandes empresas disponen de redes corporativas de datos basadas en una serie de redes LAN y routers. Desde el punto de vista del usuario, este enfoque proporciona una red físicamente heterogénea con aspecto de un recurso homogéneo.

  2. Brouters: Un disco dispositivo de comunicaciones que realiza funciones de puente (bridge) y de encaminador (router). Como puente, las funciones del «brouter» son al nivel de enlace de datos (estrato 2), independientemente de protocolos más altos, pero como encaminador, administra líneas múltiples y encamina los mensajes como corresponde.
  3. Gateway: pasarela, puerta de acceso Una computadora que conecta dos tipos diferentes de redes de comunicaciones. Realiza la conversión de protocolos de una red a otra. Por ejemplo, una puerta de acceso podría conectar una red LAN de computadoras. Nótese la diferencia con bridge, el cual conecta redes similares.

H.) Transmisión de datos en las redes:

La transmisión de datos en las redes, puede ser por dos medios:

  1. – Terrestres: Son limitados y transmiten la señal por un conductor físico.
  2. – Aéreos: Son «ilimitados» en cierta forma y transmiten y reciben las señales electromagnéticas por microondas o rayo láser.

1.- Terrestres:

  1. Cable par trenzado: Es el que comúnmente se utiliza para los cables de teléfonos, consta de 2 filamentos de cobre, cubiertos cada uno por plástico aislante y entrelazados el uno con el otro, existen dos tipos de cable par trenzado: el «blindado», que se utiliza en conexiones de redes y estaciones de trabajo y el «no blindado», que se utiliza en las líneas telefónicas y protege muy poco o casi nada de las interferencias.
  2. Cable coaxial: Este tipo de cable es muy popular en las redes, debido a su poca susceptibilidad de interferencia y por su gran ancho de banda, los datos son transmitidos por dentro del cable en un ambiente completamente cerrado, una pantalla sólida, bajo una cubierta exterior. Existen varios tipos de cables coaxiales, cada uno para un propósito diferente.
  3. Fibra óptica: Es un filamento de vidrio sumamente delgado diseñado para la transmisión de la luz. Las fibras ópticas poseen enormes capacidades de transmisión, del orden de miles de millones de bits por segundo. Además de que los impulsos luminosos no son afectados por interferencias causadas por la radiación aleatoria del ambiente. Actualmente la fibra óptica está remplazando en grandes cantidades a los cables comunes de cobre.

Herramientas de Software para la

Automatización de Oficinas

Definición de Software:

El software es el conjunto de instrucciones que las computadoras emplean para manipular datos. Sin el software, la computadora sería un conjunto de medios sin utilizar. Al cargar los programas en una computadora, la máquina actuará como si recibiera una educación instantánea; de pronto «sabe» cómo pensar y cómo operar.

El Software es un conjunto de programas, documentos, procedimientos, y rutinas asociados con la operación de un sistema de computo. Distinguiéndose de los componentes físicos llamados hardware. Comúnmente a los programas de computación se les llama software; el software

 asegura que el programa o sistema cumpla por completo con sus objetivos, opera con eficiencia, esta adecuadamente documentado, y suficientemente sencillo de operar.

Es simplemente el conjunto de instrucciones individuales que se le proporciona al microprocesador para que pueda procesar los datos y generar los resultados esperados.

El hardware por si solo no puede hacer nada, pues es necesario que exista el software, que es el conjunto de instrucciones que hacen funcionar al hardware.

Clasificaciones del Software

El software se clasifica en 4 diferentes Categorías: Sistemas Operativos, Lenguajes de Programación, Software de uso general, Software de Aplicación. (Algunos autores consideran la 3era y 4 ta clasificación como una sola).

Lenguajes de Programación

Mediante los programas se indica a la computadora que tarea debe realizar y cómo efectuarla, pero para ello es preciso introducir estas órdenes en un lenguaje que el sistema pueda entender. En principio, el ordenador sólo entiende las instrucciones en código máquina, es decir, el específico de la computadora. Sin embargo, a partir de éstos se elaboran los llamados lenguajes de alto y bajo nivel.

Software de Uso General

El software para uso general ofrece la estructura para un gran número de aplicaciones empresariales, científicas y personales. El software de hoja de cálculo, de diseño asistido por computadoras (CAD), de procesamiento de texto, de manejo de Bases de Datos, pertenece a esta categoría. La mayoría de software para uso general se vende como paquete; es decir, con software y documentación orientada al usuario (manuales de referencia, plantillas de teclado y demás).

Software de aplicaciones

El software de aplicación esta diseñado y escrito para realizar tareas específicas personales, empresariales o científicas como el procesamiento de nóminas, la administración de los recursos humanos o el control de inventarios. Todas éstas aplicaciones procesan datos (recepción de materiales) y generan información (registros de nómina) para el usuario.

  1. Procesadores de Palabras: Son utilizados para escribir cartas, memorándums y otros documentos, El usuario teclea una serie de letras o párrafos, y son mostradas en la pantalla. El usuario puede fácilmente adherir, borrar y cambiar el texto hasta que el documento quede exactamente como se desea.Algunas características avanzadas que encontramos en la actualidad en los procesadores de texto son: corrector de ortografía, diccionario de sinónimos, presentación preliminar del texto antes de imprimir. Ejemplos de procesadores de texto: Word, AmiPro, Wordperfect.
  2. Hojas de Cálculo: Una Hoja de Cálculo es una herramienta para calcular y evaluar números. También ofrece capacidades para crear informes y presentaciones para comunicar lo que revelan los análisis; el usuario teclea los datos y las fórmulas que serán usadas para obtener los resultados; después el programa aplica las fórmulas a los datos y así obtiene los resultados; una de sus características mas importantes es la habilidad de preguntar (Condicionales)»what IF» «QUE PASARÍA SI?», cambiando los datos y rápidamente re- calculando los nuevos resultados.La mayoría de las Hojas de Cálculo cuentan también con la posibilidad de graficar estos resultados en diferentes estilos de gráficas (Barras, Líneas, Pastel, etc.). Ejemplos de Hojas de Cálculo: Excel, Lotus 123, Quatro.
  3. Paquetes de Presentación: Software que permite al usuario diseñar presentaciones para desplegarlas a través de la misma computadora o imprimir diapositivas y acetatos. Contienen opciones avanzadas para integrar efectos en cada cambio de diapositiva. Ejemplos: Presentation, Power Point.
  4. Shareware y Freeware:
  5. Shareware: Software distribuido de forma gratuita para ser probado. Si el usuario decide quedarse con el programa y seguir usándolo, debe pagar al desarrollador. Normalmente, el shareware es desarrollado por compañías relativamente pequeñas o inclusive por programadores individuales, y generalmente es barato.
  6. Freeware: Programas gratuitos que los desarrolladores ponen a disposición de otros usuarios sin ningún costo. En algunos casos el desarrollador no reclama derechos de autor y el programa se convierte en software del dominio público. En otros casos, el software tiene derechos de autor pero el desarrollador ha permitido a otra gente usarlos y copiarlo gratuitamente.
  7. Aplicación Vertical: Las aplicaciones verticales son programas que realizan todas las fases de una función crítica del negocio. Estos programas, que muchas veces corren en una combinación de Mainframes, minis y computadoras personales, se denominan algunas veces aplicaciones de misión crítica.Generalmente son desarrollados a la medida por cada compañía que los tiene y son usados por muchos individuos dentro de una Organización.

Sistemas de Información

Una aplicación comercial de la computadora. Está constituido por las bases de datos, los programas de aplicación, los procedimientos manuales y automatizados, y abarca los sistemas informáticos que llevan a cabo el procesamiento.

Las bases de datos almacenan los asuntos de los negocios (archivos maestros) y sus actividades (archivos de transacciones). Los programas de aplicación proveen la entrada de datos, la actualización, consulta y procesamiento de informes.

Los procedimientos manuales documentan la forma en que se obtienen los datos para su introducción, y la forma en que se distribuyen las salidas del sistema. Los procedimientos automáticos instruyen a la computadora acerca de cómo ejecutar las actividades de procesamiento por lotes, en las cuales la salida de un programa es automáticamente transferida a la entrada de otro programa.

El procesamiento diario es el procesamiento interactivo y en tiempo real de las transacciones. Al final del día o de algún otro período, los programas de procesamiento por lotes actualizan los archivos maestros que no fueron actualizados desde el período anterior.

Se imprimen los informes de las actividades de ciclo. El procedimiento periódico de un sistema de información es la actualización de los archivos maestros, en la cual se agrega, borra y modifica la información sobre clientes, empleados, proveedores y productos.

Cada sistema abarca a los que lo suceden: 

Equipo de Computación

  1. Historia de las Computadoras Personales: Las microcomputadoras o Computadoras Personales (PC´s) tuvieron su origen con la creación de los microprocesadores. Un microprocesador es «una computadora en un chip», o sea un circuito integrado independiente. Las PC´s son computadoras para uso personal y relativamente son baratas y actualmente se encuentran en las oficinas, escuelas y hogares.

El término PC se deriva de que para el año de 1981, IBM®, sacó a la venta su modelo «IBM PC», la cual se convirtió en un tipo de computadora ideal para uso «personal», de ahí que el término «PC» se estandarizó y los clones que sacaron posteriormente otras empresas fueron llamados «PC y compatibles», usando procesadores del mismo tipo que las IBM, pero a un costo menor y pudiendo ejecutar el mismo tipo de programas.

Existen otros tipos de microcomputadoras, como la Macintosh®, que no son compatibles con la IBM, pero que en muchos de los casos se les llaman también «PC´s», por ser de uso personal.

En la actualidad existen variados tipos en el diseño de PC´s:

  • Computadoras personales, con el gabinete tipo minitorre, separado del monitor.
  • Computadoras personales portátiles «Laptop» o «Notebook».
  • Computadoras personales más comunes, con el gabinete horizontal, separado del monitor.
  • Computadoras personales que están en una sola unidad compacta el monitor y el CPU.

Las computadoras «laptops» son aquellas computadoras que están diseñadas para poder ser transportadas de un lugar a otro. Se alimentan por medio de baterías recargables, pesan entre 2 y 5 kilos y la mayoría trae integrado una pantalla de LCD (Liquid Crys tal Display).

A.1) Supercomputadoras: Una supercomputadora es el tipo de computadora más potente y más rápido que existe en un momento dado. Estas máquinas están diseñadas para procesar enormes cantidades de información en poco tiempo y son dedicadas a una tarea específica.

Así mismas son las más caras, sus precios alcanzan los 30 MILLONES de dólares y más; y cuentan con un control de temperatura especial, ésto para disipar el calor que algunos componentes alcanzan a tener.

Unos ejemplos de tareas a las que son expuestas las supercomputadoras son los siguientes:

  • Búsqueda y estudio de la energía y armas nucleares.
  • Búsqueda de yacimientos petrolíferos con grandes bases de datos sísmicos.
  • El estudio y predicción de tornados.
  • El estudio y predicción del clima de cualquier parte del mundo.
  • La elaboración de maquetas y proyectos de la creación de aviones, simuladores de vuelo.
  • Etc.

Debido a su precio, son muy pocas las supercomputadoras que se construyen en un año.

A.2) Minicomputadoras: En 1960 surgió la minicomputadora, una versión más pequeña de la Macrocomputadora. Al ser orientada a tareas específicas, no necesitaba de todos los periféricos que necesita un Mainframe, y ésto ayudo a reducir el precio y costos de mantenimiento.

Las minicomputadoras, en tamaño y poder de procesamiento, se encuentran entre los mainframes y las estaciones de trabajo.

En general, una minicomputadora, es un sistema multiproceso (varios procesos en paralelo) capaz de soportar de 10 hasta 200 usuarios simultáneamente. Actualmente se usan para almacenar grandes bases de datos, automatización industrial y aplicaciones multiusuario.  

A.3) Estaciones de trabajo o Workstations: Las estaciones de trabajo se encuentran entre las minicomputadoras y las macrocomputadoras (por el procesamiento). Las estaciones de trabajo son un tipo de computadoras que se utilizan para aplicaciones que requieran de poder de procesamiento moderado y relativamente capacidades de gráficos de alta calidad. Son usadas para:

  • Aplicaciones de ingeniería
  • CAD (Diseño asistido por computadora)
  • CAM (manufactura asistida por computadora)
  • Publicidad
  • Creación de Software

En redes, la palabra «workstation» o «estación de trabajo» se utiliza para referirse a cualquier computadora que está conectada a una red de área local.

  1. Historia de los Servidores y Mainframes:

B.1) Macrocomputadoras o Mainframes:

Las macrocomputadoras son también conocidas como Mainframes. Los mainframes son grandes, rápidos y caros sistemas que son capaces de controlar cientos de usuarios simultáneamente, así como cientos de dispositivos de entrada y salida.

Los mainframes tienen un costo que va desde 350,000 dólares hasta varios millones de dólares. De alguna forma los mainframes son más poderosos que las supercomputadoras porque soportan más programas simultáneamente. PERO las supercomputadoras pueden ejecutar un sólo programa más rápido que un mainframe.

En el pasado, los Mainframes ocupaban cuartos completos o hasta pisos enteros de algún edificio, hoy en día, un Mainframe es parecido a una hilera de archiveros en algún cuarto con piso falso, ésto para ocultar los cientos de cables d e los periféricos, y su temperatura tiene que estar controlada.

B.2) Servidor de archivos:

Dispositivo de almacenamiento de archivos en una red de área local al que todos los usuarios de la red pueden acceder. A diferencia de un servidor de disco, que aparece ante el usuario como una unidad de disco remota, un servidor de archivos es un dispositivo más complejo que no sólo almacena archivos sino que también los administra y los mantiene en orden a medida que los usuarios de la red los solicitan y los modifican.

Para gestionar las tareas de manejo de varias solicitudes (a veces simultáneas), un servidor de archivos cuenta con un procesador y software de control, así como una unidad de disco para el almacenamiento. En redes de área local, un servidor de archivos suele ser una computadora con un disco duro grande que está dedicado exclusivamente a las funciones de administración de archivos compartidos.

  1. Terminales Tontas: en informática, terminal sin capacidad de proceso. Por lo general, los terminales tontos sólo son capaces de presentar caracteres alfanuméricos y de responder a un protocolo de comunicaciones sencillo, como el VT-52, VT-100 o ANSI.

Es dispositivo formado por un monitor y un teclado. Un terminal no hace prácticamente ningún procesamiento por sí solo, sino que está conectado a una computadora con un enlace de comunicaciones a través de un cable. La entrada a través del teclado se envía desde el terminal a la computadora, y la salida de vídeo se envía desde la computadora al terminal.

Los terminales se usan sobre todo en sistemas multiusuario y no se utilizan hoy día en computadoras personales de un solo usuario. En electrónica, un punto que puede ser conectado físicamente a algún otro, normalmente a través de un cable, para formar una conexión eléctrica.

  1. Tecnologías RISC y CISC:

RISC: (Reduced Instruction Set Computer) computadora de conjunto de instrucciones reducido

Arquitectura de computadoras que ejecuta un número limitado de instrucciones. El concepto es que la mayoría de los programas usan generalmente unas pocas instrucciones, y si se acelera la ejecución de esas instrucciones básicas, se mejora el rendimiento.

La arquitectura RISC elimina una capa de carga operativa llamada «microcódigo», que se emplea normalmente para facilitar la agregación de nuevas y complejas instrucciones a una computadora. Las computadoras RISC poseen un pequeño número de instrucciones montadas en los circuitos de nivel inferior, que trabajan a máxima velocidad.

Aunque las máquinas RISC son sólo de un 15% a un 50% más veloces que sus contrapartidas CISC

CISC: (Complex Instruction Set Computer) Computadora de conjunto de instrucciones complejo Computadoras que poseen un conjunto de instrucciones muy extenso. Las máquinas CISC tienen de doscientas a trescientas instrucciones, que están grabadas en microcódigo.

  1. Tecnologías MMX y Pentium Pro:

MMX: (Multimedia Extensions) son 57 instrucciones MMX que se usan para acelerar los procesos de programas multimedia tales como vídeo y sonido, ocho registros MMX de 64 bits

Pentium Pro: incorpora en el mismo encapsulado del procesador un total de 256 ó 512 KB de memoria caché de segundo nivel(caché L2). La comunicación entre dicha memoria caché y el núcleo del procesador se realiza a la velocidad a la que funcione el Pentium Pro.

  1. Microprocesadores:

F.1) Historia de los Microprocesadores:

Muchas grandes invenciones simplemente son el resultado de que alguien se ha encontrado con un problema técnico y propone una solución diferente y audaz. Y típicamente, ese problema tiene que ver con dinero.

Ese era el caso ciertamente a finales de 1969 para una joven y agresiva compañía japonesa llamada

Busicom. Busicom había tenido realmente varios nombres en su breve carrera, incluso ETI y Máquinas Calculadoras de Japón.

Esa era una característica de naturaleza imprevisible de esa empresa. Y Busicom no estaba solo. Era uno de los centenares de compañías que estaban decididos a entrar en un negocio que estaba surgiendo como un gran mercado de consumidores, hecho posible por los circuitos integrados: las calculadoras.

Se había comprobado que existía un marcado interés por las nuevas calculadoras versiones digitales que las antiguas calculadoras electromecánicas, especialmente cuando estas versiones digitales podían realizar cálculos complejos como raíces cuadradas.

Busicom no era ni un jugador mayor, ni uno menor en este negocio. Justo uno de las multitudes. Pero era un jugador que tenía unas buenas ganas para tomar riesgos tecnológicos más que sus competidores, y contaba con un visionario tecnológico en su laboratorio llamado Masatoshi Shima.

A través de 1969, se reconoció generalmente en la industria de la electrónica que era teóricamente posible usar el nuevo semiconductor metal-on-silicon (MOS) para poner toda la función de una calculadora en una sola pastilla. ¿Pero quién estaba deseoso de hacerlo?.

Busicom escogio a Intel Corporation. Una compañía diminuta de Santa Clara, California para fabricarlo.

Luego de las correcciones realizadas en el diseño y construcción por parte de Federico Faggin de Intel del primer microprocesador, en Febrero de 1971 el 4004 estaba listo para la producción.

Así a mediados de Marzo de 1971, Intel envió el conjunto de chips de la familia 4000 a BUSICOM. Esta familia consistiría en:

  • Una ROM de 2048 bits como el 4001
  • Una memoria RAM de 320 bits como el 4002
  • Un Shift regiter de 10 bits como el 4003
  • El procesador central de 4 bits como el 4004

La revolución del Microprocesador había empezado.

El 8008 siguió al 4004 y fue formalmente introducido en Abril de 1972. Este proyecto empezó con el nombre de 1201 y se trataba de una arquitectura de 8 bits. Y fue así que el 8008 se convirtió en el primer microprocesador de 8 bits.

Para el siguiente microprocesador de 8 bits el 8080 sus primeras pruebas tuvieron lugar en Diciembre de 1973. Después que Faggin y su equipo corrigieron algunos errores, el producto fue formalmente introducido al público en Marzo de 1974.

Como Faggin diría: «El 8080 realmente creó el mercado del microprocesador. El 4004 y el 8008 lo sugirieron, pero el 8080 lo hizo realidad.»

Con la introducción del 8080 puede decirse de verdad que la humanidad cambió. La naturaleza extraordinaria del 8080 fue reconocida casi instantáneamente por miles de ingenieros en todo el mundo quienes habían estado esperando su llegada. Dentro de un año, había sido introducido en cientos de productos diferentes. Nada volvería a ser igual otra vez.

Los que se llevan el crédito de este invento(uno de las más grandes invenciones de este siglo) son: Ted Hoff como el inventor, Federico Faggin como el creador, Mazor y Shima como contribuyentes críticos.

EL PENTIUM II

Es el último Microprocesador de Intel y alcanza velocidades de hasta 400Mhz. Ya llegaron al PERU pero todavía no se ve la última versión, sin embargo ya hay muchas marcas de computadoras en Estados Unidos que los usan. La forma de este procesador y su forma de instalación es diferente, en vez usa un cartucho(de un sólo borde) el cual se coloca en la placa madre dentro de un conector tipo slot. No usa el socket7 como las anteriores PENTIUM. Más información sobre el PENTIUM II.

EL K6 DE AMD

Este procesador es el último de AMD y alcanza velocidades de hasta 266Mhz y se está trabajando en una versión de 300Mhz. Dicen que es tan rápido que el PENTIUM II. Ya llegó al PERU, pero sólo los de 200Mhz y 233Mhz. Usa el mismo socket7 de las placas madres comunes y esto hace fácil instalarlo y usarlo en las placas madres más antiguas. Más información sobre AMD K6.

EL 6×86 DE

Es el último de CYRIX y es la respuesta de este fabricante a la competencia de Intel y Amd. Este procesador puede usar una velocidad de bus de 75Mhz lo que lo hace distinto a los demás. Es posible que ya se comercialize en el PERU. Más información sobre EL 6×86 MX.

EL POWERPC DE

Este procesador de arquitectura RISC es usado en las computadoras Mac de APPLE y se dice que alcanza hasta 300 Mhz de velocidad.

F.2) Listado de los Microprocesadores:

VERSIONES DE INTEL

MICROPROCESADORES ANTERIORES AL PENTIUM

  • MICROPROCESADOR 8088
  • MICROPROCESADOR 8086
  • MICROPROCESADOR 80286
  • MICROPROCESADOR 80386
  • MICROPROCESADOR 80486
  • MODELO DX1
  • MODELO DX2
  • MODELO DX4

PENTIUM SIMPLE(COMUNES)

  • PENTIUM 60 MHZ
  • PENTIUM 66 MHZ
  • PENTIUM 75 MHZ
  • PENTIUM 100 MHZ
  • PENTIUM 133 MHZ
  • PENTIUM 166 MHZ
  • PENTIUM 200 MHZ

PENTIUM MMX (FAMILIA P55C)

  • PENTIUM MMX 166 MHZ
  • PENTIUM MMX 200 MHZ
  • PENTIUM MMX 233 MHZ

PENTIUM II Y PENTIUM PRO (FAMILIA P6)

PENTIUMS PRO

  • PENTIUM PRO DE 2OO MHZ Y CACHE L2(NIVEL2) DE 256KB, 512KB Y 1MB
  • PENTIUM PRO DE 180MHZ Y 256KB DE CACHE L2
  • PENTIUM PRO DE 166MHZ Y 512KB DE CACHE L2
  • PENTIUM PRO DE 150MHZ Y 256KB DE CACHE L2

PENTIUMS II

  • PENTIUM II DE 233 MHZ
  • PENTIUM II CELEROM DE 266 MHZ Y SIN CACHE L2
  • PENTIUM II DE 266 MHZ Y 512KB DE CACHE L2
  • PENTIUM II DE 300 MHZ Y 512KB DE CACHE L2
  • PENTIUM II DE 333 MHZ Y 512KB DE CACHE L2
  • PENTIUM II DE 350 MHZ Y 512KB DE CACHE L2
  • PENTIUM II DE 400 MHZ Y 512KB DE CACHE L2
  • MUY PRONTO EL PENTIUM II DE 450 MHZ Y 512KB DE CACHE L2

VERSIONES DE AMD

AMD K5

  • AMD K5 DE 100 MHZ
  • AMD K5 DE 133 MHZ
  • AMD K5 DE 166 MHZ

AMD K6

  • AMD K6 DE 166 MHZ
  • AMD K6 DE 200 MHZ
  • AMD K6 DE 233 MHZ
  • AMD K6 DE 266 MHZ
  • AMD K6 DE 300 MHZ

VERSIONES DE CYRIX

CYRIX M1

CYRIX 6×86 MMX(LLAMADO ANTERIORMENTE M2)

  • 6x86PR166 MMX
  • 6x86PR200 MMX
  • 6x86PR233 MMX
  • 6x86PR266 MMX
  • 6x86PR300 MMX