You are on page 1of 12

TEMA 36.LA MANIPULACION DE DATOS.OPERACIONES.LENGUAJES.

OPTIMIZACION DE CONSULTA

1.-La manipulacion de datos


2.-Operaciones
1. Operaciones fundamentales
Seleccion.
Proyeccion
Producto cartesiano
Union
Diferencia
2.-Renombrar
3.-Operaciones adicionales
Inserccion
Combinacion
Division
4.-Operadores adicionales y de manipulacion
Asignacion
Eliminacion
Inserccion
Actualizacion
Modificacion de vistas.
3.-Lenguajes de manipulacion de datos (DML)
3.1.-Concepto
3.2.-El DML en los modelos de Red y Jerarquico
Modelo de Red
*
Clases de ordenes y area de trabajo del usuario
*
Ordenes de navegacion y recuperacion
*
Ordenes de actualizacion de registros.
*
Ordenes de actualizacion de conjuntos.
Modelo jerarquico
3.3.-El DML en los SGGDR
SQL interactivo
*
Estructuras basicas
*
Tuplas duplicadas en las relaciones devueltas
*
Operaciones de conjuntos.
*
Ordenacion en la presentacion de tuplas.
*
Productos.
*
Subproductos
*
Subconsultas.
*
Variables de tuplas
*
Pruebas logicas y conectores
*
Funciones de agregacion y consultas sumarias
*
Modificacion de la base de datos.

*
Valores nulos
SQL no interactivo
*
Completitud del SQL
*
SQL Inmerso
*
Procedimientos en la BD
*
SQL Dinamico
4.-Opimizacion de consultas
4.1.-Optimizacion en SGBDR
Optimizacion dependiente del usuario
Optimizacion a cargo del sistema
*
Necesidad de la optimizacion
*
Proceso de optimizacion
Representacion interna
Conversiones
Eleccion de procedimientos de bajo nivel
Seleccion del plan de consulta.
*
Optimizacion semantica
5.-Bibliografia
-

1.-LA MANIPULACION DE DATOS


Dentro de este contexto entendemos por manipulacion de datos al conjunto de tareas en
las cuales ni se define la estructura de la BD, ni los detalles sobre permisos de acceso a
los datos(operaciones de control)
Dentro de las operaciones de manipulacion de datos incluimos.
La consulta de informacion
La inserccion de informacion
La modificacion de datos
La eliminacion de informacion.
Para permitir a los usuaris llevar a cabo tareas de consulta o modificacion de datos se
utilizan los lenguajes de manipulacion de datos (DML)
Podemos diferenciar dos tipos ,segun el modo en que opere el usuario

Procedimentales : obligan a que los usuarios especifiquen que datos necesita y


como obtenerlos.
No procedimentales:solo obliga a que el usuario especifique que datos necesita
pero sin detalar como obtenerlos.

El aprendizaje del SQL no procedimental suele ser mas rapido y sencillo.


2.-OPERACIONES
El unico modelo de bases de datos en el que las operaciones de manipulacion de datos
tienen a su disposicion toda una estructura matematica de soporte es el modelo
relacional de Codd.
La diferencia fundamental entre un lenguaje algebraico y un lenguaje predicativo es que
el el algebraico hay qie especificar que operadores se tienen que aplicar a las relaciones
para obtener el resultado, mientras que en los predicativos solo es preciso indicar el
resultado
Codd demostro que el algebra y el calculo relacional son logicamente equivalentes.Esto
significa que cualquier consulta que pueda ser formulada en el calculo relacional
tambien se puede especificar en el algegra relacional y viceversa

2-1.-Operaciones fundamentales
Son las siguientes:union,diferencia y produto cartesiano.Les aadio la seleccion y
proyeccion
1.-Seleccion
Operacion unaria que devuelve una nueva relacion s con las tuplas de la relacion r que
cumple la condicion especificada en el predicado.
Se admiten los operadores relacionales y los conectores logicos
2.-Proyeccion
Operacion unaria que devuelve la relacion s construida a partir de r pero limitando los
atributos a los que aparecen como subindices
3.Producto cartesiano
Operacion binaria donde a relacon que se obtiene contiene todas las tuplas t para las
que se cumple que existe una tupla t1 de R1 con una tupla t2 de R2 tales que
t1[R1]=t2[R2].
4.Union
Resultado de unor el conjunto de tuplas s y el conjutno de tuplas u.Deben cumplirse
dos restricciones
a)s y u deben tener el mismo numero de atributos
b)Los dominios del atributo i-esismo de s y del atributo i-esimo de u deben ser iguales
5.Diferencia
Operador binario tras cuya aplicacion r contendra las tuplas que estan en s pero no en
a.Deben cumplirse las mismas condiciones que para la union.
5.Renombrar
Devuelve la relacion r pero con nombre s
2.2.Operaciones adicionales
Se pueden sustituir por una combiancion de operaciones fundamentales.
1.-Interseccion
Devuelve las tuplas presentes simultaneamente en ambas relaciones.

2.-Combinacion o composicion o yuncion


Operacion binaria en la que r es una relacion con esquema
consigue obteniedo a partir de sxu una seleccion de predicado
define poniendo en relacion pare del esquema de s con el de u.

que se
,predicado que se

Un caso importante es la combinacion o producto natural donde le predicado requiere


que para todo atributo A ,sA=uA y ademas se produce una proyeccion del resultado de
la seleccion sobre S U V
3.Division

2.3 Operadores adicionames de manipulacion


1.Asignacion
Permite expresar convenientemente una consulta compleja
2.Eliminacion
Consiste en eliminar las tuplas incluidas en s de la relacion r .s debe ser una relacion con
compatibilidad en numero de atributos y dominios subyacentes de estos con r.
3.Inserccion
Aade a r el conjunto de tuplas de s .Requerela misma compatibilidad que en el caso
anterior.
4.Actualizacion
Asigna a los atributos A1,A2,... pertenecientes a la relacion r los valores de las
expresiones E1,E2,... definidas en los correspondientes dominios.
5.Modificacion de vistas.
Una vista es una relacion definida fuera del modelo conceptual y que se hace visible a
un posible usuario como una relacion virtual
Se define con la sentencia .
CREATE VIEW <NombreVista> AS < expresion_algebra_relacional>

3.-LENGUAJES DE MANIPULACION DE DATOS (DML)


3.1.-Concepto
Los lenguajes de manipulacion de datos permiten a los usuarios efectuar consultas ,
insercciones , borrados y modificaciones.
Distinguimos las diferentes partes en el lenguaje SQL.

Lenguaje de manipulacion de datos interactivo:El SQL DML incluye un


lenguaje de consultas basados en el algebra relacional y el calculo relacional de
tuplas.Tambien incluye ordenes para insertar , suprimir y modificar tuplas de la
base de datos.
Lenguaje de manipulacion de datos inmerso(DML) Esta diseadoa para ser
usado dentro de los lenguajes de programacion de proposito general.

2.-El DML en los modelos de Red y Jerarquico.


Modelo de Red
El modelo de red adopta la arquitectura de tres niveles ANSI/SPARC
estableciendo la siguiente equivalencia.
El nivel conceptual es denominado esquema.
El nivel externo es denominado subesquema.
El nivel interno corresponde a la implementacion que afecta al modelo
Los noveles conceptual e interno son practicamente inexistentes.

Los elementos basicos del modelo son:


Tipo registro:Es una coleccion de campos
Tipo de conjunto:Expresa una interrelacion 1:1 o 1:N entre dos tipos de
registros
Tipo de registro dueo (o padre):aquel tipo de registro en el que a las
ocurrencias de los registros l pueden corresponder varias del otro tipo de
registro.
Tipo de registro miembro (o hijo):aquel tipo de registro de un conjunto en el que
a las ocurrencias de los registros les correspinde siempre una unica ocurrencia
del otro tipo de registro.
Dueo

Miembro

Clases de ordenes y area de trabajo del usuario


Los operandos de manipulacion procesan los registros de uno en uno.Las ordenes suelen
clasificarse en:
Ordenes de navegacion FIND
Ordenes de recuperacion GET
Ordenes de registros ERASE , MODIDY, STORE.
Ordenes de actualizacion de conjuntos :CONNECT,
DISCONNECT,RECONNECT.
En DBTG cada programa en ejecucion tiene un area de trabajo de usuario, que contiene
las siguientes variables.
Plantillas de registros:Similar a las structs de C.
Punteros actuales:punteros a los registros de la BD accedidos mas
recientemente.
- Ultimo registro accedido:Un puntero por cada tipo de registro conteniedo la
direccion del ultimo registrado accedido.
- Ultimp registros acedido dentro de un conjunto :un puntero por cada tipo de
conjunto conteniedo la direccion del ultimo registro accedido
- Ultimo registro accedido por el programa,Un puntero por programa conteniedo
la direccion del ultimo registro accedido, sea del tipo conjunto que sea.
Indicadores de estado.Son variables mediante las que el sistema puede
comunicar a programa el estado actual dek SGBD y los resultados de la
ultuma operacion.
- Algunos indicadores son
1.-DB-status:tendra un valor 0 s la ultima operacion ocurrio con
exito. y un codigo de error en caso contrario.
2.-DB-set-name,DB-record-name y DB-data-name
Ordenes de navegacion y recuperacion.
-La orden FIND permite localizar un registro o una instancia de un conjunto.
-Su ejecucion actualiza los punteros e indicadores.La orden GET recupera los datos
localizados copiandoles sore el area de plantatilla del UWA
-la orden FIND tambien puede estar seguida de una orden de actualizacion como
MODIFI
-Hay dos formas de FIND
FIND ANY <Tipo de registro> [USING <lista de campos>]
FIND DUPLICATE <tipo de registro >[USING <lista de campos>].
Ordenes de actualizacion de registros.
Para aadir un registro primero se han de insertar los valores apropiados en la plantailla
del registro situado en el UWA . tras ello usamos la orden.

STORE <tipo de registro>

Para usar las ordenes de borrado y modificado de registros es preciso aadir la particula
FOR UPDATE a la orden FIND.
Ordenes de actualizacion de conjuntos.
La orden CONNECT permite asociar un registro a un conjunto.
CONNECT <tipo de registro > TO <tipo de conjunto>
El proceso completo de inserccion de un registro asociado a un conjunto
conlleva los siguientes pasos.
1) Crear el registro nuevo con la orden STORE
2) Buscar el padre adecuado para el nuevo registro.
3) Conectar el registro hijo al padre hallado.
Modelo jerarquico.
Los conceptos basicos del modelo jerarquico son
Descripcion de la base de datos.Hace las funciones de nivel conceptual y niel
interno.
Bloque de especificacion de programa.Equivale al subesquema vista de
usuario
Tipo de segmento :equivale al concepto de tipo de registro del modelo de red
Tipo de interrelacion padee-hijo:
Otra peculiaridad es la existencia de un tipo de segmento raizz que siempre
existe y que solo participa como padre de nivel superior
Los operadores de manipulacion de DL/I procesa los registros de uno en un y tambien
han de estar inmerso en un lenguaje anfitrion.Las ordenes asicas del DML de DL/I son:
Ordenes de recuperacion :GET
Ordenes de actualizacion de registros :INSERT,REPLACE,DELETE.
La sintaxis usual para DL/I es :
Orden <tipo de segmento> [WHERE <condicion>]

Plantilla de segmentos :ES una definicion del segmento/registro,similar a los


Records de Pascal o a las Structs de C)
Punteros actuales :Punteros a los segmentos de la BD accedidos mas
recientemente .Existe un punteo por cada arbol de la BD.

Indicadores de estado:Son variables mediante las que el sistema puede


comunicar al programa el estado acutal del SGBD y los resultados de la ultima
operacion .

3.-El DML en los SGGDR.


- SQL interactivo.
* Estructuras basicas.
La estructura basica de una expresion en SQL consta de tres clausulas :select,from y
where.
La clausual select corresponde a la operacion de proyeccion del algebra
relacional.Se usa para listar los atributos que se deseen.
La clausula from corresponde a la operacion de productos cartesiano del algebra
relacional.Consta de un predicado que implica atributos de las relaciones que
aparecen en la clausula from.
La clausula where corresponde al predicado de seleccion del algebra relacional.
Una consulta tipica tiene la forma
select A1,...An
from r1 , .... r2
where P
Cada Ai represnetan un atributo y cada rj es una relacion .P es un predicado ,es
equivalente a la expresion del algebra relacional

-la lista de n atributos puede sustituirse por un *


*

Tuplas duplicadas en las relaciones devueltas.

Los lenguajes de consulta formales se basan en la nocio matematica de relacion como


un conjunto.Por ello nunca aparecen tuplas duplicadas.
SQL permite duplicar en las relaciones lo que equivale a decir que en ciertos casos no
retornan relaciones.
Forzar la eliminacion de duplicados ,distinct
*

Operaciones de conjuntos

SQL incluye las operaciones unio ,intersect y minus que operan sobre relaciones y
corresponde a las operaciones del algebra relacional.

Ordenacion n de la presentacion de tuplas.

Se emplea la orden order by para la ordenacion de registros.Por omision SQL lista los
elementos en orden ascendente,podemos indicar desc para ordenar descendete o asc
para orden ascendente.
*
Producto.
Para realizar un producto cartesiano en SQL se ha de utlizar la clausula from indicando
a continuacion las tablas que se usaran en el producto indicando o no la clausula cross
join.
*

Subconsulta.

Una subconsulta es una sentencia select que aparece dentro de un predicado y donde
el dominio del resultado tiene que coincidr con el que se espera en funcion de los
atributos que se incluyen en el predicado y del tipo de predicado.
Uno de los usos de las subconsultas es simplificar expresiones complejas de acceso a
datos o permitir una codificacion alternativa de sentencias.
*

Variales de tupla.

Las variales de tuplas se definen en la clausula from


select distinct C.nif,nomcli from cliente C
*

Pruebas logicas y conectores


i) Conectores y operadores aritmeticos
ii) Prueba de comparacion
iii)Prueba de pertenencia a un conjunto.
iv)Prueba de comparacion de conjuntos.
v) Pruebas de relacionses vacias.
vi) Prueas de agregacion y consultas sumarias.
vii) Modificacion de bases de datos.
i) Conectores y operadores aritmeticos.

SQL usa los conectores logicos AND y OR y NOT.,permite el uso de expresiones


atitmeticas como operandos de los operadores de comparacion.
Los operadores artimeticos se pueden utilizar para la creacion de columnas calculadas.
ii)Pruebas de comparacion.

SQL incluye un operador de compaacion between para simplifcar clausulas where que
especifiquen que un valor que sea menor o igual que un valor dado y mayor o igual que
otro valor dado.

SQL tambien incluye un operador de seleccion para comparaciones de cadenas de


caracteres.Los patrones de comparacion se describen usando dos caracteres especiales
- Tanto por ciento (%).ES igual a cualquier subcadena
- Subrayado (_) es igual a cualquier caracter.
Los patrones se expresan en SQL usando el operador de comparacion 'like'
iii) Prueba de pertenencia a un conjunto.
El conector 'in' prueba si se es miembro de un conjunto ,donde el conjunto es una
coleccion de valores producidos por la clausula select.
Es posible probar la pertenencia a una relacion con mas de un atributo .SQL usa la
notacion <v1,...vn>
iv) prueba de comparacion de conjuntos
SQL permite la comparacion < some, <=some , = some , <> some.
SQL permite als comparaciones < all , <=all , <==all , =all . <> all.Las construcciones
in ,> some ,> all y asi sucesivamente nos permiten probar un unico valor con los
miembros de un conjunto completo.
v) Funciones de agregacion y consultas sumarias.
SQL ofrece la posibilidad de calcular funciones en grupos de tuplas usando la clausula
group by. SQL incluye las siguientes funciones para calcular.

Promedio avg
Minimo min
Maximo max
Total sum.
Contar count.

vi) Modificacion de bases de datos.


1.- Borrado
- La instruccion es :delete from r where P
- Una orden delete opera sobre una sola relacion.Si queremos eliminar tuplas de
varias relaciones deemos usar una orden para cada relacion.El predicado de la clausula
where puede ser tan complejo como una clausula where de una orden select..
2.-Inserccion

Se emplea la sentencia 'insert' .


insert into tabla (<lista de campos>)
values (<lista de valores>)

3.-Actualizaciones
Deseamos cambiar un valor en una tupla si cambiar todos los valores en la
tupla.Usamos la sentencia update
La clausula where de la sentencia update puede contener cualquier constriccion
legal en la clausula where de la sentencia slect.
4.-Valores nulos
Es posible que para las tuplas insertadas se den valores unicamente en algunos atributos
del esquema.El resto de los atributos son asignados a valores nulos representados por
null.

You might also like