UNIDAD4 Concepto de Clasificación de Lenguajes Concepto: Un lenguaje de consulta es un lenguaje en el que un usuario solicita información de la base de datos. Estos lenguajes son normalmente de más alto nivel que los lenguajes comunes de programación. Los lenguajes de consulta se pueden clasificar de la siguiente manera: 1. Procedimentales 2. No Procedimentales Lenguajes Procedimentales: En este tipo de lenguaje el usuario da instrucciones la sistema para que realice una serie de procedimientos u operaciones en la base de datos para calcular un resultado final. Lenguajes No Procedimentales: El usuario describe la información deseada sin un procedimiento especifico para obtener esa información. Lenguajes Formales de Bases de Datos La teoría de lenguajes formales es en esencia un área interdisciplinaria de la ciencia, que va desde la lingüística hasta la biología.Los lenguajes formales constituyen una herramienta muy útil para modelos de computación, así como para otras ramas, tales como criptografía y la ingeniería.Por ejemplo, las entradas y salidas de un artefacto computacional, pueden ser vistos como lenguajes. Entre los lenguajes formales de bases de datos encontramos: 1. Algebra Relacional 2. Cálculo Relacional 3. Optimización de Consulta Algebra Relacional El álgebra relacional es un lenguaje de consulta procedimental. Consta de un conjunto de operaciones que toman como entrada una o dos relaciones y producen como resultado una nueva relación.Las operaciones fundamentales del álgebra relacional son: Selección Proyección Unión Diferencia de Conjuntos Producto Cartesiano Renombramiento. Además de las operaciones fundamentales, hay otras operaciones, por ejemplo: Intersección de Conjuntos Reunión Natural División Asignación. Cálculo Relacional El cálculo relacional fue propuesto por Codd como alternativa al álgebra. La diferencia fundamental entre un lenguaje algebraico y un lenguaje predicativo (denominado así porque utiliza el cálculo de predicados para la formulación de consultas), es que en el primero hay que especificar que operadores se tienen que aplicar a las relaciones para obtener un resultado, mientras que en el segundo sólo es preciso indicar el resultado que se quiere obtener.Los lenguajes del cálculo relacional pueden ser de dos tipos: Orientados a la Tupla Orientados al Dominio. Cálculo Relacional Orientado a la Tupla Tiene las siguientes consideraciones: Las variables se asocian a Tuplas. Las constantes se asocian a variables de dominio. Los operadores son los de comparación, los lógicos NOT, AND, OR, así como el existencial ( $ ) y el universal ( " ). Cálculo Relacional Orientado al Dominio En el cálculo relacional orientado a dominios existen variables de dominios en lugar de variables de tupla, las variables de dominio se definen sobre un dominio, tomando en cada momento un valor de éste. El ejemplo más característico del cálculo relacional orientado a dominios es el lenguaje QBE (Query by Example). Optimización de Consultas Para expresar una consulta en un lenguaje de alto nivel, como SQL, normalmente se siguen los siguientes pasos: Primero debe pasar por un análisis léxico que identifica los componentes del lenguaje Después un análisis sintáctico que revisa la sintaxis La consulta debe ser valida para lo que ha de comprobarse que los nombres de las relaciones, los atributos son válidos. A continuación se crea una representación interna de la consulta, por lo regular en forma de árbol o grafo de consultas. Lo siguiente que debe hacer el SGBD es crear una estrategia de ejecución para obtener el resultado de la consulta a partir de los archivos internos. El proceso de elegir la alternativa más adecuada para procesar una consulta se denomina: Optimización de Consultas. SQL SQL usa una construcción del álgebra relacional y de cálculo relacional.Existen numerosas versiones de SQL. La versión original fue desarrollada en el San José Research Laboratory de IBM (ahora el Almaden Research Center). Este lenguaje, originalmente llamado Sequel, fue implementado como parte del proyecto del Sistema R en los primeros años de la década de los setenta. El lenguaje Sequel ha evolucionado desde entonces, y su nombre a cambiado al SQL (Structured Query Lenguaje (Lenguaje de Consulta Estructurado)).En 1986, el American Nacional Standard Institute (ANSI) publicó un SQL estándar. SQL se ha establecido como el lenguaje de base de datos relacional estándar. El lenguaje SQL tiene varias partes: Lenguaje de definición de datos (DDL): Proporciona órdenes para definir esquemas de relación, eliminar relaciones, crear índices y modificar esquemas de relación. Lenguaje de manipulación de datos interactivo: El SQL DML incluye un lenguaje de consultas basado en el álgebra relacional y el cálculo relacional de tuplas. También incluye órdenes para insertar, suprimir y modificar tuplas de la base de datos. Lenguaje de manipulación de datos inmerso (DML): La forma inmersa de SQL esta diseñada para usar dentro de los lenguajes de programación de propósito general, tales como PL/I, Cobol, Pascal, Fortran y C. Definición de vistas: El SQL DDL incluye órdenes para definir vistas. Autorización: El SQL DDL incluye órdenes para especificar derechos de acceso a relaciones y vistas. Integridad: SQL proporciona una forma limitada de comprobación de integridad Control de transacciones: SQL incluye órdenes para especificar el comienzo y final de las transacciones. Lenguaje de Definición de Datos (DDL) Un esquema de base de datos se especifica por medio de un conjunto de definiciones que se expresan mediante un lenguaje especial llamado lenguaje de definición de datos (DDL).El conjunto de relaciones en una base de datos debe ser especificado al sistema por medio de un lenguaje de definición de datos (DDL).El SQL DDL permite la especificación no solo de un conjunto de relaciones, sino también información sobre cada relación incluyendo: El esquema para cada relación El dominio de valores asociados con cada atributo El conjunto de índices que se van a mantener para cada relación La información de seguridad y autorización para cada relación Limites de integridad La estructura física de almacenamiento de cada relación del disco Lenguaje de Manipulación de Datos (DML) Este lenguaje permite el manejo de las tablas y las vistas mediante sus cuatro verbos, correspondientes a las cuatro operaciones fundamentales sobre los datos. Por manipulación de datos queremos decir: La recuperación de información almacenada en la base de datos. La inserción de información nueva en la base de datos. La supresión de información de la base de datos. La modificación de datos almacenados en la base de datos. Un lenguaje de manipulación de datos (Data Manipulation Language (DML)) es un lenguaje que capacita a los usuarios a acceder o manipular datos según estén organizados por el modelo de datos adecuado. Lenguaje de Control de Datos (DCL)Contiene los operadores para la gestión de transacciones (COMMIT y ROLLBACK) y prioridades de acceso a los datos (GRANT y REVOKE).Una transacción es un conjunto de operaciones que van a ser tratadas como una única unidad. Estas transacciones deben cumplir 4 propiedades fundamentales comúnmente conocidas como ACID (atomicidad, coherencia, asilamiento y durabilidad).Para más información puedes revisar este documento sobre SQL, que contiene información sobre SQL y sus tres tipos de lenguajes de datos, Otros Lenguajes de Bases de Datos Existe un gran número de lenguajes que nos permiten el manejo de las bases de datos, en esta ocasión listaremos los más populares, con sus respectivos links para saber más. Microsoft Access Visual Fox Pro Oracle MySQL PostgreSQL Firebird Sybase