miércoles, 14 de mayo de 2014

Breve Historia de CCITT CCITT (Comité Consultivo Internacional Telegráfico y Telefónico) fue creada a mediados de los 50’s en 1956, en donde la CCIT y el CCIF se fusionaron para formar la International Telephone and Telegraph Comité Consultivo (CCITT), con el fin de responder más eficazmente a las necesidades generadas por el desarrollo de estos dos tipos de comunicación, se dice que se llevaban reuniones en periodos de 4 años, esto para la planeación de la regulación y acreditación de nuevos estándares a implementar. Hasta mediados de los 90’s en 1995 ITU fue reorganizada por lo que la CCITT renovó el nombre por ITU-TSS con el propósito de orientar el mercado de la telefonía y telecomunicaciones. CCITT No.1 Se refiere a un sistema 500/20Hz utilizados en las rutas de manual. Durante mi tiempo en el CCITT Grupo de Estudio XI, me las arreglé para 2280Hz y 2600Hz a ser reconocido como alternativas en más modernos circuitos privados internacionales. CCITT No.2 Es un sistema propuesto de 2 cables internacionales de la frontera circuitos cruz. Se habría utilizado 600Hz y 750Hz, con 10pps pulsante, muy similar a AC1. Fue diseñado a finales de 1930, pero en el momento en que las comunicaciones internacionales comenzó de nuevo después de la guerra, se hizo evidente que los sistemas de cuatro hilos más rápido sería preferible y mejor voz de la inmunidad era innecesario. CCITT No.3 2280Hz era un sistema FV con binarios 'start-stop "un sistema, como un sistema telegráfico. La línea de señalización también se utiliza 2280Hz. Nunca se ha desplegado ampliamente y en el Reino Unido se utilizó sólo en Faraday ISC sobre todo en la ruta de entrada desde Francia. En otras partes del CCITT N º 4 se utilizó. CCITT No.4 Era un sistema 2VF, utilizando 2040Hz y 2400Hz, conocidos como X e Y. voz inmunidad se limita al uso de un compuesto del prefijo 2040 2400 Hz antes de que cualquier señal de línea podría ser reconocido, aunque los receptores de PO tenía un receptor de banda de seguridad también. Las dos frecuencias permitidas las señales de línea de la forma PX, PY, PXX y PYY. A registrar señales de Inter utilizó la X e Y las señales de forma binaria 0 y 1. Debido a que ambos 0 y 1 pueden ser fácilmente reconocidos, no hubo necesidad de iniciar o bit de parada, como se utiliza en CCITT N º 3. CCITT N º 4 fue utilizado ampliamente en Europa y Norte de África, hasta que sea reemplazado por R2 progresivamente a partir de mediados de 1970. Utilización de de CCITT No.4 Se utiliza principalmente en Europa. Desde finales de 1950, se hizo evidente que un sistema de MF sería mejor y permitir una gama más amplia de hacia atrás, así como las señales hacia adelante. Ericsson de Suecia hizo algunas pruebas en Dinamarca y los Países Bajos con el MFC (MF Obligado) concepto y más tarde, el CEPT Europeo adoptó MFC como una norma europea. CEPT presionó el CCITT para reconocerla como una norma internacional completo para reemplazar CCITT N º 4, pero intervino la política. Los estadounidenses señalaron que ya tenían un buen sistema regional de lunes a viernes (Bell lunes a viernes), así que al final, en lugar de asignar un número del CCITT, que llegó a ser conocido como R2 (Regional N º 2) con Bell MF / SF convertirse en R1. R1 utiliza el tono de 2600Hz SF Bell en la señalización de inactividad. Muchos países europeos más pequeños adoptado con entusiasmo MFC en sus redes nacionales y R2 fue diseñado para permitir un extremo a otro de trabajo no sólo en la red internacional, pero en la red nacional del país es demasiado distante. Alemania se casó también con su sistema electromecánico rotativo adoptar MFC. El Reino Unido decidió que era demasiado poco fiable MFC para trabajar sobre las trayectorias Strowger MF2 y diseñado en su lugar. Del mismo modo, los franceses desplegado el sistema de SOCOTEL MF, aunque tanto en el presente y MF2 utilizó la misma hacia adelante y hacia atrás como señales R2/MFC. Ericsson fue siempre el gran innovador con R2. En su sistema travesaño IRA, que utiliza MFC para la señal del registro a los marcadores individuales del interruptor y esto también podría trabajar de extremo a extremo, por lo que estos marcadores todos parecían actuar como registros de tránsito pequeños. Un grupo de 12 canales y se dejó entonces una señal se envió a los 12 circuitos afectados para detener cualquier ataque línea de ser reconocido. Para el uso digital, un sistema de canales asociados para el canal PCM 30 se definió, con 2 bits en cada sentido utilizado. El segundo bit realiza una función similar a la del grupo piloto en el sistema analógico, ya que cuando un sistema PCM falla, todos los bits de señalización se establece en 1, por lo que el 'bit b' va a un indicaron un fallo en la línea. Un tercer sistema se definió para los sistemas analógicos pocas cable submarino sigue utilizando los canales de 3 kHz, en los que el sistema de Envío y recibo no se podía utilizar. En estas circunstancias, se sugirió que la antigua línea de señalización CCITT N º 4 debe ser utilizado, pero tal sistema no se implementó nunca. Existen tres modos de codificación: Pasar el modo (P), el modo vertical y horizontal de modo (H) . Dependiendo de la posición de un elemento de cambio a lo largo de la línea de código, uno de los tres modos de codificación pueden ser identificados. Codificación de modos El modo de codificación Condición Pase modo Cuando la posición de b2 se encuentra a la izquierda de a2 El modo Vertical Cuando la distancia relativa entre A1 y B1 es menor o igual a 3 Modo horizontal Cuando ni el modo de pasar, ni modo vertical se producen Tabla 1.- Codificación de modos. En el modo vertical, dependiendo de la distancia relativa entre A1 y B1, 7 posibles casos puede reconocer: -V (0): a1 poco menos de b1 -Vr (1): a1 un pixel a la derecha de b1 -Vr (2): a1 dos píxeles a la derecha de b1 -VR (3): a1 tres píxeles a la derecha de b1 -VI (1): a1 un pixel a la izquierda b1 -VI (2): a1 dos píxeles a la izquierda b1 -VI (3): a1 tres píxeles a la izquierda b1. Las palabras de código de tres modos de codificación (pasa, horizontal y vertical de los modos de codificación) se muestran en la Tabla 4. con la extensión opcional. En la tabla 4. M (ai, aj) representa las palabras de código de la norma de compresión de 1-D para el Funcionario de ejecutar. Código de 2 dimensiones Modo Elementos que se cifrará Código de la palabra Pase P b1, b2 0001 Horizontal H a0a1, a1a2 001 + M (a0 a1) + M (a1 a2) Vertical: V (0) a1 poco menos de b1 a1b1 = 0 1 Vr (1) a1b1 = 1 011 Vr (2) a1b1 = 2 000011 Vr (3) a1b1 = 3 0000011 VI (1) a1b1 = 1 010 VI (2) a1b1 = 2 000010 VI (3) a1b1 = 3 0000010 Extensión 2-D (extensiones) 0000001xxx 1-D (extensiones) 000000001xxx Tabla 2.- Tabla de códigos de dos dimensiones Sistema de Señalización CCITT N°.5 Q.500 –Q.599 Hacia 1964 el CCITT determina el SSNº5 para conexiones internacionales por cable y por satélite. El sistema de señalización CCITT N º 5 se desarrollo para permitir enviar señalización telefónica a través de enlaces vía satélite internacional (international satellite) de igual forma, se permitía mantener el enlace entre las compañías locales en el interior de un país. Por lo que las señales tendrían que ser transmitidas dentro de banda, es decir, que fueran enviadas como tonos de la banda de frecuencias en el rango de voz. La ventaja era que no había un canal de señalización común, por lo que todos los canales podían ser utilizados para las llamadas telefónicas. Para la señalización de línea se recurre a las frecuencias de 2400 y 2600 Hz y para señalización de registro se recurre a 700, 900, 1100, 1300, 1500 y 1700 Hz con transmisión en "código 2 entre 6". Se lo usa en servicios semiautomáticos y automáticos en líneas bidireccionales. SSR1/SSR2. Cuando se inició la señalización en multifrecuencia se distinguió entre los procedimientos de código de impulsos como el SSNº5 y los de señales obligadas como el SSR2. En el primer caso la señal tiene un período de duración fijo y determinado, mientras que en el segundo a cada paso de mensaje se espera la respuesta de confirmación por el canal de retorno para cortar la señal de ida. Esto implica que la señalización por secuencia obligada requiere de mayor tiempo y una duración no determinada. Se fijó primero el SSR1 para códigos de impulsos y luego el SSR2 para secuencias obligadas. SSR1 (Es apropiado para tráfico semiautomático y automático) Para los servicios de "onda portadora", como se conoce a los multiplexores analógicos (FDM), no es apropiada la señalización dentro de la banda del canal telefónico. Por lo tanto, se concibió la señalización fuera de banda con la frecuencia de 3825 Hz para Europa y 3700 Hz para USA. SSR2 En SSR2 la señal vocal y la señalización viajan por la misma vía pero en distinta banda, por ello no se interfieren y se puede efectuar el proceso de cómputo o tarifa del tiempo de comunicación mediante señales "hacia atrás". Se hace distinción entre el código de impulsos (ITU-T No.5 y R1), los de secuencia obligada (R2) y los de secuencia semiobligada: El código de impulsos consiste en emitir las señales con un tiempo de duración determinado y sin esperar confirmación. En la secuencia obligada el código se emite en forma permanente hasta recibir la respuesta hacia atrás. Para emitir una nueva señal se espera la finalización de la señal hacia atrás. En secuencia semiobligada no es necesario esperar el final de la respuesta para emitir una nueva señal hacia adelante. Sistema de Señalización CCITT N°.6 La interoperabilidad de los sistemas de señalización Q.600 - Q.699 Se dice que SS6 tuvo sus inicios en la década de los 70’s y fue implementado en los primeros canales de comunicaciones en señalización este método se utilizo para telephone trunks, y para Switching Centres, la cual se le podría denominar telefonía analógica. Lógica de los procedimientos Se transmitían datos a una velocidad de 2.4 datos de kbit/s , la conmutación del teléfono en el ISCs eran cruces controlados electrónicos tales como; relais de lámina, los medios de la transmisión eran canales submarinos terrestres, basados en los satélites o muy largos cableados. En algunos casos éstos estaban en tiempo asignado la interpolación (TASI) o equipo de la multiplicación del canal de Digital (DCME) La señalización se llevaba a cabo en acoplamientos en la transmisión de datos en las que se llevaba a cabo para 48 ó 96 canales del tráfico, se diseño para hasta soportar 2.048 en el máximo. Sistema de Señalización N.° 7 DEL CCITT – Q.700-Q.799 Una de sus grandes aportaciones de CCITT, fue la implementación de esquemas de señalización de acceso estandarizado, esto con el fin de establecer comunicaciones transfronterizas. Con ayuda del estándar CCITT N°.7 se ofrece un sistema de señalización por canal común, esté estándar es utilizado en: Red telefónica conmutada (PSTN) Red digital de servicios integrados (RDSI) Redes móviles públicas. Interacción con bases de datos y con los puntos de control del servicio. Gestión y mantenimiento de redes. La señalización por canal común, es un método de señalización en el cual un solo canal transfiere, por medio de mensajes etiquetados información de señalización relativa a varios circuitos y otras informaciones tales como la gestión de la red. El SS N°.7 está constituido por diversos componentes o funciones definidos en la serie de Recomendaciones Q.7xx. Función de SS N°.7 Recomendaciones. MTP à Parte transferencia de mensajes. Q.701-Q.704, Q.706, Q.707 TUP à Parte usuario de Telefonía Q.721-Q.725 SS à Servicios suplementarios Serie Q.73x PU-RDSI à Parte usuario de RDSI Q.761-Q.764, Q.766 SCCP à Parte control de conexión de señalización Q.711-Q.714, Q.716 TC à Capacidad de transacción Q.771-Q.775 OMAP àParte operaciones, mantenimiento y administración Q.750-Q.755 Tabla 3.- Componentes del Sistema de Señalización No.7 Figura 1.- Arquitectura de Sistema de señalización No.7 MTP Parte transferencia de mensajes (Capa 1-3) Es utilizado para la comunicación adentro Redes de teléfono cambiadas público por lo que MTP es responsable del transporte confiable de la de secuencias de mensajes entre los socios de la comunicación. Direccionamiento en la MTP El direccionamiento de MTP tiene 2 tipos de mecanismos. El primero utiliza el código de punto que se incorpora en la etiqueta de encaminamiento de cada unidad de señalización del mensaje. El segundo hace uso de los indicadores de servicio y de red dentro del octeto de información del servicio. Firgura 2.- Direccionamiento MTP TUP Parte usuario de Telefonía (Capa 4) El nivel 4 consta de las diferentes partes de usuario TUP, cada una de estas partes define las funciones y procedimientos del sistema de señalización que son particulares a un cierto tipo de usuario del sistema. Los requisitos de calidad de funcionamiento de la TUP se encuentran en la Recomendación Q.725. Los parámetros contenidos en esta Recomendación son operaciones a través de la central, para la aplicación de central de conexión del circuito aceptado por la TUP, con cargas de tráfico, normales y anormales. Figura 3.- división de nivel 4. SS Servicios suplementarios La serie Q.730 se describen los servicios suplementarios utilizados por la aplicación en la RDSI del SS N.º 7, estos servicios suplementarios incorporan los procedimientos y mensajes de señalización de la PU-RDSI. En algunos casos, estos servicios pueden incluir un protocolo de aplicación que utiliza la TC y la SCCP. PU-RDSI Parte usuario de RDSI (Capa 4) La PU-RDSI comprende las funciones de señalización requeridas para proporcionar servicios y facilidades de usuario con conmutación para aplicaciones vocales y no vocales en la RDSI, por lo que es también apropiada para ser utilizada en redes telefónicas especializadas y redes de datos con conmutación de circuitos, así como en redes analógicas y mixtas analógicas/digitales. SCCP Parte control de conexión de señalización La parte de control de conexión de señalización “SCCP” proporciona una función de encaminamiento que permite encaminar mensajes de señalización hacia un punto de señalización basado en, por ejemplo, los dígitos marcados. Esta capacidad implica una función de traslación que transforma el título global (por ejemplo, dígitos marcados) en un código de puntos de señalización y un número de subsistema. TC Capacidad de transacción (Capa 7) La TC proporciona los medios para establecer comunicaciones no relacionadas con el circuito entre dos nodos de la red de señalización, Las capacidades de transacción (TC) se definen como un protocolo que accede directamente a los servicios SCCP sin conexión. OMAP Parte operaciones, mantenimiento y administración Las funciones OMAP comprenden la realización y compilación de mediciones y la realización de pruebas, como la MRVT, en la red del SS N.º 7.

miércoles, 13 de noviembre de 2013

SQL Interactivo

Introducción

Los orígenes del SQL están ligados a los de las bases de datos relacionales. En 1970 E. F. Codd propone el modelo relacional y asociado a este un sublenguaje de acceso a los datos basado en el cálculo de predicados. Basándose en estas ideas, los laboratorios deIBM definen el lenguaje SEQUEL (Structured English QUEry Language) que más tarde sería ampliamente implementado por elSGBD experimental System R, desarrollado en 1977 también por IBM. Sin embargo, fue Oracle quien lo introdujo por primera vez en1979 en un programa comercial.
El SEQUEL terminaría siendo el predecesor de SQL, siendo éste una versión evolucionada del primero. El SQL pasa a ser el lenguaje por excelencia de los diversos SGBD relacionales surgidos en los años siguientes y es por fin estandarizado en 1986 por el ANSI, dando lugar a la primera versión estándar de este lenguaje, el SQL-86 o SQL1. Al año siguiente este estándar es también adoptado por la ISO.
Sin embargo este primer estándar no cubre todas las necesidades de los desarrolladores e incluye funcionalidades de definición de almacenamiento que se consideraron suprimir. Así que en 1992 se lanza un nuevo estándar ampliado y revisado del SQL llamado SQL-92 o SQL2.
En la actualidad el SQL es el estándar de facto de la inmensa mayoría de los SGBD comerciales. Y, aunque la diversidad de añadidos particulares que incluyen las distintas implementaciones comerciales del lenguaje es amplia, el soporte al estándar SQL-92 es general y muy amplio.
El SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad y potencia de los sistemas relacionales permitiendo gran variedad de operaciones sobre los mismos.
Es un lenguaje declarativo de alto nivel o de no procedimiento, que gracias a su fuerte base teórica y su orientación al manejo de conjuntos de registros, y no a registros individuales, permite una alta productividad en codificación y la orientación a objetos. De esta forma una sola sentencia puede equivaler a uno o más programas que utilizas en un lenguaje de bajo nivel orientado a registro.

SQL Interactivo

Conceptos base del lenguaje

Características
El lenguaje SQL esta formado por tres tipos de caracteres: letras, dígitos y caracteres especiales. Las letras que corresponden con el alfabeto latino tanto en mayúsculas como minúsculas A, B. C, D, E, F. G. H. I, J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y, como también a b, c, d e, f g, h, i, j, k, etc.. Los dígitos son: 1,2, 3, 4, 5, 6, 7, 8, 9. Los caracteres especiales de SQL son: espacio en blanco y los comprendidos en el cuadro siguiente:
Módulos de utilización
Dependiendo de la forma de ejecutar el lenguaje SQL, existen diferentes modos de utilización: ejecución directa o SQL interactivo, SQL incrustado o embebido, módulos SQL-cliente, SQL dinámico, procedimientos invocados externamente, rutinas invocadas por SQL y sus funciones.
Ejecución directa o SQL interactivo
Las ordenes SQL se escriben en una línea de comandos, o se crean mediante un diseño, visual que las traduce a una sentencia SQL son inmediatamente ejecutadas por el sistema. En el caso de SQL Server, este modo viene implementado con la aplicación iSQL.
Modo Incrustado
Las ordenes SQL se escriben como parte del código de otro lenguaje anfitrión, ya sea ADA, C, C++, Fortran, Pascal o PL/I, delimitando las sentencias SQL mediante separadores especiales, de modo que cada unidad de compilación este formada por un código anfitrión y SQL. Una unidad de compilación es un segmento de código ejecutable, formado por uno o más subprogramas. Ada como lenguaje anfitrión contiene los pre compiladores SQL propios de la base de datos en la que se almacenan los datos.
Un modulo SQL-cliente es un objeto, de modo que las ordenes SQL se compilan aparte del código anfitrión y se enlazan (linkan) todos los programas objeto tanto SQL y anfitrión, creándose un ejecutable. Los módulos SQL-cliente se asocian a una unidad de compilación en tiempo de ejecución de modo que un único modulo puede estar asociado a varias unidades de compilación. El mecanismo de asociación entre módulos y los lenguajes a los que puede asociarse un módulo y la transferencia del control de unos a otros son definidos por el fabricante.
Dinámico
En muchos casos las instrucciones SQL a ejecutar incluyen en un modulo de SQL-cliente o en una unida de compilación usando SQL incrustado. En otros casos no se conoce cuando se escriben y ejecutan las órdenes SQL durante la ejecución de un programa. Los tipos de órdenes empleados en SQL dinámico comprenden instrucciones de los siguientes tipos:
Ü Prepare: Preparan el código SQL generado para su ejecución.
Ü Deallocate: Quitan la marca de preparación de las ordenes SQL preparadas.
Ü Describe. Contiene una descripción de los parámetros de entrada/salida dinámica.
Ü Select. Devuelve un conjunto de columnas coma resultado de una consulta dinámica.
Ü Execute: Asocia los parámetros de entrada a una orden prepare de modo que pueda ejecutarse.
Ü Declare cursor. Declara un cursor o tabla en memoria.
Allocate cursor, fetch, delete, update, openclose, son ordenes que pueden ejecutarse sobre cursores.
Las ordenes pueden ser preparadas para su ejecución y mas tarde ejecutadas una o mas veces, pudiéndose eliminar, mediante deallocate o reléase, la orden preparada cuando no se necesite ejecutar mas.
El segundo modo consiste en ejecutar las órdenes directamente, sin prepararlas.
Procedimientos invocado externamente
Los procedimientos invocados externamente son rutinas, funciones o procedimientos de SQL, que contienen órdenes de tipo CALL y una clausula de nombre de lenguaje que define un lenguaje distinto de SQL.
Palabras predefinidas
Son las palabras propias del lenguaje SQL: DELETE., FROM, WHERE, LIKE, CREATE y otros, que se desarrollan a lo largo de los siguientes capítulos.
Nombres de objetos, tablas, columnas.
Son los identificadores asignados por los programadores o usuarios a tablas, campos, variables, procedimientos, etc. La mayor parte de los nombres de objetos se definen mediante una orden CREATE. Ejemplo de nombres de objetos son: nom_cli, imp_iva, etc.
Rutinas invocadas por SQL y funciones construidas
Las rutinas invocadas por SQL pueden ser dependientes de un tipo de datos definido por el usuario (UDT), si se crea durante la ejecución. En determinadas circunstancias los prediseñados, las especificaciones de tipo SET u otros elementos SQL pueden ser dependientes de rutinas invocadas por SQL.
Para definir una rutina invocada por SQL se necesitan, entre otros elementos, el nombre de la rutina y el nombre del lenguaje en que se implementa, siendo relativamente variable su implementación de unas bases de datos comerciales a otras.
Las ordenes SQL no poseen un formato especifico. Siempre empiezan por una palabra predefinida. Para separar ordenes se emplea el punto y coma ~;). Las órdenes SQL están formadas por los siguientes elementos: palabras predefinidas, nombres de objetos creados, constantes, delimitadores, operadores y datos.
Delimitadores
Son un subconjunto de caracteres que separan elementos de una sentencia SQL: espacio, coma, punto y coma, dos puntos, igual, paréntesis, apostrofes, comillas, etc. Su empleo depende de cada sentencia y de los objetos que contiene.
Operadores
Sirven para obtener nuevos datos a partir de uno ya existente. Se pueden localizar operaciones con números aritméticas, cadenas de caracteres, fechas, campos booleanos, binarios, etc.
La procedencia de los tipos de datos permite conocer el tipo de datos obtenido cuando se efectúan operaciones entre distintos tipos. Su orden, de mayor a menor, para SQL Server es: datetime, smalltime, float, real, decimal, money, smallmoney, int, smallint, tinyint, bit, ntext~ text, image, timestamp, nvarchar, varehar, ehar~ varbinary, binary, uniqueidentificator.
Los operadores de comparación devuelven un resultado booleano como resultado. Se han definido los siguientes operadores ANSI de comparación: igual (-), distinto (~>), mayor que (>), menor que (<), mayor 0 igual que (>=, menor o igual que (=).
Datos y Nulos
Un dato es una unidad de información con sentido en si misma que se almacena en un campo, una constante o una variable. Dependiendo del contenido de la información almacenada, los daros pertenecen a diferentes tipos: cadenas de caracteres, fechas o números entre otros.
Un valor nulo (NULL) es un valor no asignable en especial a un determinado tipo de datos, cuyo significado es: no se ah definido un valor previo para este dato; el valor de este dato es desconocido. Los valores nulos se diferencian de ceros y espacios en blanco, ya que en estos últimos casos se ah asignado información a un campo o dato correspondiente por lo que ese campo no ha sido utilizado.
Expresiones y Predicados
Una expresión es una combinación de operadores y operandos. Los operandos son contenedores de información, datos, constantes y variables y se ligan unos con otros mediante operadores.
Los predicados, expresiones contenidas en órdenes de SQL, permiten expresar condiciones en diferentes órdenes, obteniéndose un valor booleano. El resultado de la evaluación varía de las condiciones para cada registro.
Los predicados se clasifican en los siguientes tipos de comparación:
BETWEEN, IN, LIKE, NULL y los cuantificados que son EXIST, UNIQUE, MATCH, OVERLAPS, SIMILAR, DISTINCT y TYPE.

SQL Interactivo

Conceptos base del lenguaje

Características
El lenguaje SQL esta formado por tres tipos de caracteres: letras, dígitos y caracteres especiales. Las letras que corresponden con el alfabeto latino tanto en mayúsculas como minúsculas A, B. C, D, E, F. G. H. I, J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y, como también a b, c, d e, f g, h, i, j, k, etc.. Los dígitos son: 1,2, 3, 4, 5, 6, 7, 8, 9. Los caracteres especiales de SQL son: espacio en blanco y los comprendidos en el cuadro siguiente:
Módulos de utilización
Dependiendo de la forma de ejecutar el lenguaje SQL, existen diferentes modos de utilización: ejecución directa o SQL interactivo, SQL incrustado o embebido, módulos SQL-cliente, SQL dinámico, procedimientos invocados externamente, rutinas invocadas por SQL y sus funciones.
Ejecución directa o SQL interactivo
Las ordenes SQL se escriben en una línea de comandos, o se crean mediante un diseño, visual que las traduce a una sentencia SQL son inmediatamente ejecutadas por el sistema. En el caso de SQL Server, este modo viene implementado con la aplicación iSQL.
Modo Incrustado
Las ordenes SQL se escriben como parte del código de otro lenguaje anfitrión, ya sea ADA, C, C++, Fortran, Pascal o PL/I, delimitando las sentencias SQL mediante separadores especiales, de modo que cada unidad de compilación este formada por un código anfitrión y SQL. Una unidad de compilación es un segmento de código ejecutable, formado por uno o más subprogramas. Ada como lenguaje anfitrión contiene los pre compiladores SQL propios de la base de datos en la que se almacenan los datos.
Un modulo SQL-cliente es un objeto, de modo que las ordenes SQL se compilan aparte del código anfitrión y se enlazan (linkan) todos los programas objeto tanto SQL y anfitrión, creándose un ejecutable. Los módulos SQL-cliente se asocian a una unidad de compilación en tiempo de ejecución de modo que un único modulo puede estar asociado a varias unidades de compilación. El mecanismo de asociación entre módulos y los lenguajes a los que puede asociarse un módulo y la transferencia del control de unos a otros son definidos por el fabricante.
Dinámico
En muchos casos las instrucciones SQL a ejecutar incluyen en un modulo de SQL-cliente o en una unida de compilación usando SQL incrustado. En otros casos no se conoce cuando se escriben y ejecutan las órdenes SQL durante la ejecución de un programa. Los tipos de órdenes empleados en SQL dinámico comprenden instrucciones de los siguientes tipos:
Ü Prepare: Preparan el código SQL generado para su ejecución.
Ü Deallocate: Quitan la marca de preparación de las ordenes SQL preparadas.
Ü Describe. Contiene una descripción de los parámetros de entrada/salida dinámica.
Ü Select. Devuelve un conjunto de columnas coma resultado de una consulta dinámica.
Ü Execute: Asocia los parámetros de entrada a una orden prepare de modo que pueda ejecutarse.
Ü Declare cursor. Declara un cursor o tabla en memoria.
Allocate cursor, fetch, delete, update, openclose, son ordenes que pueden ejecutarse sobre cursores.
Las ordenes pueden ser preparadas para su ejecución y mas tarde ejecutadas una o mas veces, pudiéndose eliminar, mediante deallocate o reléase, la orden preparada cuando no se necesite ejecutar mas.
El segundo modo consiste en ejecutar las órdenes directamente, sin prepararlas.
Procedimientos invocado externamente
Los procedimientos invocados externamente son rutinas, funciones o procedimientos de SQL, que contienen órdenes de tipo CALL y una clausula de nombre de lenguaje que define un lenguaje distinto de SQL.
Palabras predefinidas
Son las palabras propias del lenguaje SQL: DELETE., FROM, WHERE, LIKE, CREATE y otros, que se desarrollan a lo largo de los siguientes capítulos.
Nombres de objetos, tablas, columnas.
Son los identificadores asignados por los programadores o usuarios a tablas, campos, variables, procedimientos, etc. La mayor parte de los nombres de objetos se definen mediante una orden CREATE. Ejemplo de nombres de objetos son: nom_cli, imp_iva, etc.
Rutinas invocadas por SQL y funciones construidas
Las rutinas invocadas por SQL pueden ser dependientes de un tipo de datos definido por el usuario (UDT), si se crea durante la ejecución. En determinadas circunstancias los prediseñados, las especificaciones de tipo SET u otros elementos SQL pueden ser dependientes de rutinas invocadas por SQL.
Para definir una rutina invocada por SQL se necesitan, entre otros elementos, el nombre de la rutina y el nombre del lenguaje en que se implementa, siendo relativamente variable su implementación de unas bases de datos comerciales a otras.
Las ordenes SQL no poseen un formato especifico. Siempre empiezan por una palabra predefinida. Para separar ordenes se emplea el punto y coma ~;). Las órdenes SQL están formadas por los siguientes elementos: palabras predefinidas, nombres de objetos creados, constantes, delimitadores, operadores y datos.
Delimitadores
Son un subconjunto de caracteres que separan elementos de una sentencia SQL: espacio, coma, punto y coma, dos puntos, igual, paréntesis, apostrofes, comillas, etc. Su empleo depende de cada sentencia y de los objetos que contiene.
Operadores
Sirven para obtener nuevos datos a partir de uno ya existente. Se pueden localizar operaciones con números aritméticas, cadenas de caracteres, fechas, campos booleanos, binarios, etc.
La procedencia de los tipos de datos permite conocer el tipo de datos obtenido cuando se efectúan operaciones entre distintos tipos. Su orden, de mayor a menor, para SQL Server es: datetime, smalltime, float, real, decimal, money, smallmoney, int, smallint, tinyint, bit, ntext~ text, image, timestamp, nvarchar, varehar, ehar~ varbinary, binary, uniqueidentificator.
Los operadores de comparación devuelven un resultado booleano como resultado. Se han definido los siguientes operadores ANSI de comparación: igual (-), distinto (~>), mayor que (>), menor que (<), mayor 0 igual que (>=, menor o igual que (=).
Datos y Nulos
Un dato es una unidad de información con sentido en si misma que se almacena en un campo, una constante o una variable. Dependiendo del contenido de la información almacenada, los daros pertenecen a diferentes tipos: cadenas de caracteres, fechas o números entre otros.
Un valor nulo (NULL) es un valor no asignable en especial a un determinado tipo de datos, cuyo significado es: no se ah definido un valor previo para este dato; el valor de este dato es desconocido. Los valores nulos se diferencian de ceros y espacios en blanco, ya que en estos últimos casos se ah asignado información a un campo o dato correspondiente por lo que ese campo no ha sido utilizado.
Expresiones y Predicados
Una expresión es una combinación de operadores y operandos. Los operandos son contenedores de información, datos, constantes y variables y se ligan unos con otros mediante operadores.
Los predicados, expresiones contenidas en órdenes de SQL, permiten expresar condiciones en diferentes órdenes, obteniéndose un valor booleano. El resultado de la evaluación varía de las condiciones para cada registro.
Los predicados se clasifican en los siguientes tipos de comparación:
BETWEEN, IN, LIKE, NULL y los cuantificados que son EXIST, UNIQUE, MATCH, OVERLAPS, SIMILAR, DISTINCT y TYPE.