Download Cálculo Relacional Orientado a la Tupla Tiene las siguientes

Document related concepts

SQL wikipedia , lookup

Lenguaje de definición de datos wikipedia , lookup

Base de datos relacional wikipedia , lookup

Cálculo relacional basado en tuplas wikipedia , lookup

Modelo de base de datos wikipedia , lookup

Transcript
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