Você está na página 1de 17

TECNOLGICO DE ESTUDIOS SUPERIORES DE TIANGUISTENCO

DIVISIN DE INGENIERA EN SISTEMAS COMPUTACIONALES

Fundamentos de Base de Datos.

Docente: Arturo Daz Martnez.

Alumno: Marcos Guadalupe Hoyo Mata Trabajo: Investigacin bibliogrfica de las unidades 5.- y 6.- Algebra relacional y Lenguaje SQL. Semestre: 4

Grupo: 402

Contenido
Introduccin. ...................................................................................................................................................................................... 3 5.0 Algebra relacional........................................................................................................................................................................ 3 5.1 Operaciones fundamentales del algebra relacional ...................................................................................................................... 3 Conjunto de operaciones en relaciones ........................................................................................................................................ 3 Combinacin de operaciones ....................................................................................................................................................... 3 Renombramiento ........................................................................................................................................................................ 3 5.2 Otras operaciones del algebra relacional ................................................................................................................................... 4 5.3 Algebra relacional extendida ..................................................................................................................................................... 4 Proyeccin generalizada .............................................................................................................................................................. 4 Operadores o Funciones de agregacin ....................................................................................................................................... 4 5.4 Valores nulos ......................................................................................................................................................................... 5 Operaciones Aritmticas . ......................................................................................................................................................... 5 Comparaciones . ...................................................................................................................................................................... 6 Seleccin .................................................................................................................................................................................. 6 Proyeccin................................................................................................................................................................................. 6 Unin, Interseccin y Diferencia .................................................................................................................................................. 6 5.5 Operaciones de modificacin a la base de datos ...................................................................................................................... 6

Eliminacin ................................................................................................................................................................................ 6 Insercin ................................................................................................................................................................................... 6 Actualizacin .............................................................................................................................................................................. 7


6.- Lenguaje SQL............................................................................................................................................................................. 7 Introduccin ................................................................................................................................................................................... 8 Comandos ................................................................................................................................................................................. 8 Comandos DLL............................................................................................................................ Error! Bookmark not defined. Definicin de datos ........................................................................................................................................................................ 8 Estructura bsica de las consultas .................................................................................................................................................. 8 Predicados y conectores ............................................................................................................................................................. 9 Comparacin de conjuntos ........................................................................................................................................................ 10 Operaciones sobre conjuntos......................................................................................................................................................... 10 UNION.................................................................................................................................................................................... 10 EXCEPT ................................................................................................................................................................................. 10 INTERSECT ............................................................................................................................................................................ 10 Funciones de agregacin .............................................................................................................................................................. 11 Valores nulos .............................................................................................................................................................................. 12 Consultas anidadas ...................................................................................................................................................................... 12 Consultas complejas ..................................................................................................................................................................... 13 El producto cartesiano .............................................................................................................................................................. 13 El INNER JOIN ....................................................................................................................................................................... 13

Vistas ......................................................................................................................................................................................... 13 Creacin de vistas. .................................................................................................................................................................. 13 Modificacin de las bases de datos .............................................................................................................................................. 14

Introduccin.
En esta investigacin se presentan los temas de las unidades 5 y 6 donde explicamos cada uno con el fin de al realizar trabajos o en el momento de la clase ya conozcamos un poco mas sobre cada tema para llevar a cabo una clase mas interactiva, en esta investigacin se presentan todos los temas con una pequea descripcin de lo mas importante en cada uno de ellos para comprenderlos de mejor manera son concretos y fciles de entender sin olvidar que muchos conceptos bsicos de esta informacin (la gran mayora) ya los conocemos y por lo tanto nos hace mas fcil su comprensin.

5.0 Algebra relacional 5.1 Operaciones fundamentales del algebra relacional En las unidades anteriores se han estudiado las maneras de modelar informacin de manera "relacional" empleando el concepto de entidades que se relacionan entre s.El lgebra relacional consiste de algunas simples pero poderosas maneras de construir nuevas relaciones a partir de otras. Si pensamos que las relaciones iniciales son los datos almacenados entonces las nuevas relaciones se pueden ver como respuestas a algunas consultas deseadas. Conjunto de operaciones en relaciones

R S, la unin de R y S es el conjunto de elementos que estn en R o S o ambos. Un elemento solo aparece una sola vez. R S, el conjunto de elementos que aparecen en ambos R y S R - S, la diferencia de R y S, el conjunto de elementos que estan en R pero no en S. Es importante resaltar que R - S es diferente a S - R. R / S, la divisin de una relacin entre otra, debe cumplirse que para toda tupla en R exista su correspondiente en S.

Restricciones: 1. R y S deben tener esquemas idnticos. 2. El orden de las columnas debe ser el mismo Combinacin de operaciones Cules son los ttulos y aos de las pelculas hechas por Fox y que tengan al menos 100 minutos de duracin.1. Seleccionar aquellas pelculas que tienen length >=100 length>=100 (Movie) 2. Seleccionar aquellas pelculas que tienen studioName='Fox' studioName='Fox' (Movie) 3. Calcular la interseccin de (1) y (2) length>=100 studioName='Fox' (Movie) 4. Proyectar nicamente title y year title,studioName ( length>=100 studioName='Fox' (Movie) ) Problema:Dadas las 2 relaciones siguientes, indique un query en algebra relacional para encontrar los nombres de las estrellas que trabajan en pelculas cuya duracin sera mayor o igual que 100. Renombramiento

A diferencia de las relaciones de la base de datos, los resultados de las expresiones de lgebra relacional no tienen un nombre que se pueda utilizar para referirse a ellas. Resulta til poder ponerles nombre; el operador renombramiento, denotado por la letra griega rho minscula (), permite realizar esta tarea. Dada una expresin E del lgebra relacional, la expresin 5.2 Otras operaciones del algebra relacional

Asignacin Reunin Natural (Producto Natural) Interseccin Divisin

5.3 Algebra relacional extendida Proyeccin generalizada La operacin proyeccin generalizada ampla la operacin proyeccin permitiendo que se utilicen funciones aritmticas en la lista de proyeccin. La operacin proyeccin generalizada tiene la forma: F1, F2, , Fn (E) donde E es cualquier expresin del lgebra relacional y F1, F2, , Fn son expresiones aritmticas que incluyen constantes y atributos en el esquema de E. Como caso especial la expresin aritmtica puede ser simplemente un atributo o una constante. Por ejemplo, supngase que se dispone de una relacin informacin-crdito, como se muestra en la figura, que da el lmite de crdito y el importe dispuesto nombre-cliente LEON GARCIA HERNANDEZ OLIVARES 5000 2500 4000 1800 limite saldo-crdito 1500 800 700 800

hasta el momento presente (el saldo-crdito de la cuenta). Si se desea averiguar el importe disponible por cada persona, se puede escribir la expresin siguiente: nombre-cliente, lmite - saldo-crdito (informacin-crdito) El atributo resultante de la expresin lmite saldo-crdito no tiene un nombre. Se puede aplicar la operacin renombramiento al resultado de la proyeccin generalizada para darle un nombre. Como conveniencia notacional, el renombramiento de atributos se puede combinar con la proyeccin generalizada como se ilustra a continuacin: nombre-cliente, (lmite saldo-crdito) as crdito-disponible (informacin-crdito) Al segundo atributo de esta proyeccin generalizada se le ha dado el nombre crdito-disponible. nombre-cliente LEON GARCIA HERNANDEZ OLIVARES Operadores o Funciones de agregacin 3500 1700 3300 1000 credito-disponible

A 1 3 1 1

B 2 4 2 2

SUM(B)= 10 AVG(A)= 1.5 MIN(A)=1 MAX(B)=4 COUNT(A)=4

Es importante resaltar que estos operadores nunca devuelven un "valor" sino una relacin conteniendo el valor. SUM(B) 10

GSUM(B) (R)
Para ilustrar el concepto de agregacin se utilizar la relacin trabajo-por-horas, que muestra los empleados a tiempo parcial. Supngase que se desea averiguar la suma total de los sueldos de los empleados del banco a tiempo parcial. La expresin del lgebra relacional para esta consulta es:

Gsum(sueldo) (trabajo-por-horas) G es la letra G en el tipo de letra caligrfico; se lee G caligrfica. La operacin del lgebra relacional G significa que se debe aplicar agregacin, y el subndice indica la operacin de agregacin a aplicar.
El smbolo El resultado de la expresin anterior es una relacin con un nico atributo, que contiene una sola fila con un valor correspondiente a la suma de los sueldos de todos los trabajadores que trabajan en el banco a tiempo parcial. Un ejemplo se da en la consulta Averiguar el nmero de sucursales que aparecen en la relacin trabajo- por-horas. En este caso, el nombre de cada sucursal slo se cuenta una vez, independientemente del nmero de empleados que trabajen en la misma. Esta consulta se escribe de la manera siguiente:

Gcount-distinct(nombre-sucursal) (trabajo-por-horas)
El resultado de esta consulta es el valor 3. 5.4 Valores nulos Es necesario analizar la forma en la que las operaciones del lgebra relacional manejan los valores nulos (y las complicaciones que surgen) Las operaciones y comparaciones con valores nulos se deberan evitar siempre que sea posible. Valor nulo: Valor desconocido o no existente Operaciones Aritmticas Dado que el valor especial nulo indica valor desconocido o no existente, cualquier operacin aritmtica (como +, -, * y /) que incluya valores nulos debe devolver un valor nulo.

Comparaciones Cualquier comparacin (como <, <=, >, >=, = y ) que incluya un valor nulo se evala al valor especial desconocido Como no se puede decir si el resultado de la comparacin es cierto o falso, se dice que el resultado es un nuevo valor lgico denominado desconocido. Seleccin La operacin seleccin evala el predicado P en P(E) sobre cada tupla de E Si el predicado devuelve el valor cierto, se aade la tupla al resultado Si el predicado devuelve desconocido o falso, la tupla no se aade al resultado. Proyeccin La operacin proyeccin trata los nulos como cualquier otro valor al eliminar duplicados La decisin es un tanto arbitraria porque sin saber cul es el valor real no se sabe si los dos valores nulos son duplicados o no. Unin, Interseccin y Diferencia La unin, interseccin y diferencia tratan los valores nulos de la misma forma que la operacin proyeccin El comportamiento es un tanto arbitrario, especialmente en el caso de la interseccin y la diferencia, dado que no se sabe si los valores reales (si existen) representados por los nulos son los mismos 5.5 Operaciones de modificacin a la base de datos Las operaciones anteriores que se han revisado nos han permitido consultar informacin de la base de datos. Ahora veremos la forma en como se puede modificar la informacin de la base de datos, realizando operaciones tales como:
o o o

Eliminacin Insercin Actualizacin

Eliminacin
Al realizar este de tipo de operacin el resultado que se obtiene es la eliminacin de la(s) tuplas en la relacin. La seleccin de las tuplas a eliminar o borrar deben coincidir con algn criterio. El borrado se realiza sobre toda la tupla y no sobre los valores de algunos atributos que conforman a la tupla. La forma de expresar el borrado o eliminacin es la siguiente:

r r E
donde r es una relacin y E es una consulta del algebra relacional. Ejemplo: Eliminar las cuentas de Eric. impositor impositor nombre-cliente = 'Gmez' (impositor) Borrar todos los prstamos con importes entre 0 y 50. prstamo prstamo importe 0 and importe 50 (prstamo) depositor <-- depositor customer-name='Smith'(depositor)

Insercin

Para insertar datos en una relacin hay que especificar la tupla que se va a insertar o escribir una consulta cuyo resultado sea un conjunto de tuplas que vayan a insertarse. Evidentemente, el valor de los atributos de las tuplas insertadas deben ser miembros del dominio de cada atributo. De manera parecida, las tuplas insertadas deben ser de la aridad correcta. En el lgebra relacional las inserciones se expresan mediante

r r E
donde r es una relacin y E es una expresin del lgebra relacional. La insercin de una sola tupla se expresa haciendo que E sea una relacin constante que contiene una tupla. cuentas <-- cuentas {(A-973, "Perryridge", 1200)}

Insertar el hecho de que Gmez abre una cuenta (C- 973) en la sucursal de la Plaza Roja de Santiago con 1200 cuenta <-- cuenta U {(C-973, Plaza Roja, 1200)} impositor <-- impositor U {(Gmez, C-973)}

Actualizacin
La funcin de actualizacin nos ser de utlidad para modificar un valor de alguna tupla sin afectar el resto de los valores de los atributos. Para esta tarea se utiliza el operador de proyeccn generalizada:

F1, F2, , Fn (r)

donde cada Fi es el i-simo atributo de r, si el i-simo atributo no est actualizado, o, si hay que actualizar el atributo, una expresin, que slo implica constantes y los atributos de r, que da el nuevo valor del atributo. Si se desea seleccionar varias tuplas de r y slo actualizar esas mismas tuplas, se puede utilizar la expresin siguiente, donde P denota la condicin de seleccin que escoge las tuplas que hay que actualizar:

F1, F2, , Fn (P (r)) (r P (r))

Para ilustrar el uso de la operacin actualizacin supngase que se realiza el pago de los intereses y que hay que aumentar todos los saldos en un 5 por ciento. Hay que escribir

cuenta

nombre-sucursal, nmero-cuenta, saldo * 1.05 (cuenta)

6.- Lenguaje SQL


SQL (Standar Query Lenguaje) es un lenguaje estandarizado de base de datos, el cual nos permite realizar tablas y obtener datos de ella de manera muy sencilla. Para exponer ms claramente los conceptos se realizaran ejemplo sobre relaciones que se crearan aqu para entender mejor como funciona SQL. El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por los diferentes motores de bases de datos para realizar determinadas operaciones sobre los datos o sobre la estructura de los mismos. Pero como sucede con cualquier sistema de normalizacin hay excepciones para casi todo; de hecho, cada motor de bases de datos tiene sus peculiaridades y lo hace diferente de otro motor, por lo tanto, el lenguaje SQL normalizado (ANSI) no nos servir para resolver todos los problemas, aunque si se puede asegurar que cualquier sentencia escrita en ANSI ser interpretable por cualquier motor de datos.

Introduccin
La historia de SQL (que se pronuncia deletreando en ingls las letras que lo componen, es decir "ese-cu-ele" y no "siquel" como se oye a menudo) empieza en 1974 con la definicin, por parte de Donald Chamberlin y de otras personas que trabajaban en los laboratorios de investigacin de IBM, de un lenguaje para la especificacin de las caractersticas de las bases de datos que adoptaban el modelo relacional. Este lenguaje se llamaba SEQUEL (Structured English Query Language) y se implement en un prototipo llamado SEQUEL-XRM entre 1974 y 1975. Las experimentaciones con ese prototipo condujeron, entre 1976 y 1977, a una revisin del lenguaje (SEQUEL/2), que a partir de ese momento cambi de nombre por motivos legales, convirtindose en SQL. El prototipo (System R), basado en este lenguaje, se adopt y utiliz internamente en IBM y lo adoptaron algunos de sus clientes elegidos. Gracias al xito de este sistema, que no estaba todava comercializado, tambin otras compaas empezaron a desarrollar sus productos relacionales basados en SQL. A partir de 1981, IBM comenz a entregar sus productos relacionales y en 1983 empez a vender DB2. En el curso de los aos ochenta, numerosas compaas (por ejemplo Oracle y Sybase, slo por citar algunos) comercializaron productos basados en SQL, que se convierte en el estndar industrial de hecho por lo que respecta a las bases de datos relacionales. Comandos Existen dos tipos de comandos SQL: DLL que permiten crear y definir nuevas bases de datos, campos e ndices. DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos. Definicin de datos El DDL, lenguaje de definicin de datos. Es la parte del SQL que ms vara de un sistema a otro ya que esa rea tiene que ver con cmo se organizan internamente los datos y eso, cada sistema lo hace de una manera u otra. Un lenguaje de definicin de datos (Data Definition Language, DDL por sus siglas en ingls) es un lenguaje proporcionado por el sistema de gestin de base de datos que permite a los usuarios de la misma llevar a cabo las tareas de definicin de las estructuras que almacenarn los datos as como de los procedimientos o funciones que permitan consultarlos. A diferencia de muchos lenguajes de descripcin de datos, SQL utiliza una coleccin de verbos imperativo cuyo efecto es modificar el esquema de la base de datos, aadiendo, cambiando o eliminando las definiciones de tablas y otros objetos. Estas declaraciones se pueden mezclar libremente con otras sentencias SQL, por lo que el DDL no es realmente una lengua independiente. La declaracin ms comn es CREATE TABLE, que se utiliza para Crear una tabla nueva. El lenguaje de programacin SQL, el ms difundido entre los gestores de bases de datos, admite las siguientes sentencias de definicin: CREATE (crear), DROP (borrar) y ALTER (actualizar, modificar), cada una de las cuales se puede aplicar a las tablas, vistas, procedimientos almacenados y triggers de la base de datos. Estructura bsica de las consultas La estructura bsica de una expresin para consulta SQL consta de tres clusulas: SELECT FROM WHERE La clusula SELECT se usa para listar los atributos que se desean en el resultado de una consulta, es un modo literal de decir seleccionar La clusula FROM lista las relaciones que se van a examinar en la evaluacin de la expresin es un modo literal de decir de La clusula WHERE costa de un predicado que implica atributos de las relaciones que aparecen en la clusula FROM. Es un modo literal de decir donde Una consulta bsica en SQL tiene la forma: (seleccionar, de, donde) SELECT A1, A2, A3 FROM r1,r2, r3 WHERE A1=Federico ; Donde A1 = atributo o campo de la tabla, si se pone * o la palabra ALL se seleccionar todo. r1 = relacin ( Tabla ) A1=Federico = predicado o condicin Ejemplo 2.1 : Seleccionar todos los nombres de las personas que tengan el apellido MARQUESI de la tabla persona SELECT nombre FROM persona WHERE apellido = " MARQUESI";

NSWER NOMBRE 1 2 MARTIN PABLO

El resultado de una consulta es por supuesto otra relacin. Si se omite la clusula WHERE, el predicado P es verdadero. La lista A1, A2,..., An puede sustituirse por un asterisco (*) para seleccionar todos los atributos de todas las relaciones que aparecen en la clusula FROM, aunque no es conveniente elegir esta ultima opcin salvo que sea necesario pues desperdiciamos mucho tiempo en obtenerlo Alias: Es posible renombrar los atributos y las relaciones, a veces por conveniencia y otras veces por ser necesario, para esto usamos la clusula AS como en el siguiente ejemplo. Ejemplo 2.2 SELECT P.nombre AS [PRIMER NOMBRE] FROM persona P WHERE apellido = "MARQUESI" ANSWER PRIMER NOMBRE 1 2 MARTIN PABLO

Predicados y conectores Los conectores lgicos en SQL son: AND OR NOT La lgica de estos conectores es igual que en cualquier lenguaje de programacin y sirven para unir predicados. Tambin incluye el operador de comparacin BETWEEN, que se utiliza para valores comprendidos entre Ejemplo: Encontrar todos los nombres y dni de las personas cuyos dni sea mayor que 26 millones y menor a 28 millones SELECT nombre, dni FROM persona WHERE dni BETWEEN 26000000 and 28000000 Anlogamente podemos usar el operador de comparacin NOT BETWEEN. SQL tambin incluye un operador de seleccin para comparaciones de cadena de caracteres. Los modelos se describen usando los caracteres especiales: El carcter ( % ) es igual a cualquier subcadena El operador ( _ ) es igual a cualquier carcter Estos modelos se expresan usando el operador de comparacin LIKE. Un error muy frecuente es tratar de utilizar los modelos mediante el operador de igualdad ( = ) lo cual es un error de sintaxis. Ejemplo: encontrar los nombres que comiencen con la letra p o el nombre tenga exactamente 6 caracteres de la relacin persona SELECT nombre FROM persona WHERE (nombre LIKE "P%") OR (nombre LIKE "_ _ _ _ _ _") El conector IN prueba si se es miembro de un conjunto, donde el conjunto es una coleccin de valores producidos en lo general por una clusula SELECT. Anlogamente el conector NOT IN prueba la no pertenencia al conjunto

Comparacin de conjuntos En conjuntos la frase << mayor que algn >> se representa en SQL por ( >SOME ), tambin podra entenderse esto como << mayor que el menor de >>, su sintaxis es igual que la del conector IN. SQL tambin permite las comparaciones ( >SOME ),( =SOME ) ( >=SOME ), ( <=SOME ) y ( <>SOME ). Tambin existe la construccin ( >ALL ), que corresponde a la frase << mayor que todos >>. Al igual que el operador SOME, puede escribirse ( >ALL ),( =ALL ) ( >=ALL ), ( <=ALL ) y ( <>ALL ). En ocasiones podramos querer comparar conjuntos para determinar si un conjunto contiene los miembros de algn otro conjunto. Tales comparaciones se hacen usando las construcciones CONTAINS y NOT CONTAINS Operaciones sobre conjuntos UNION UNION devuelve la suma de dos o ms conjuntos de resultados. El conjunto obtenido como resultado de UNION tiene la misma estructura que los conjuntos originales. El siguiente ejemplo muestra el uso de UNION SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento FROM EMPLEADOS UNION SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento FROM CLIENTES Cuando realizamos una consulta con UNION internamente se realiza una operacin DISTINCT sobre el conjunto de resultados final. Si queremos obtener todos los valores debemos utiliza UNION ALL. SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento FROM EMPLEADOS UNION ALL SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento FROM CLIENTES EXCEPT EXCEPT devuelve la diferencia (resta) de dos o ms conjuntos de resultados. El conjunto obtenido como resultado de EXCEPT tiene la misma estructura que los conjuntos originales. El siguiente ejemplo muestra el uso de EXCEPT SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento FROM EMPLEADOS EXCEPT SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento FROM CLIENTES El uso de EXCEPT, como norma general, es mucho ms rpido que utilizar condiciones NOT IN o EXISTS en la clausula WHERE. INTERSECT Devuelve la interseccin entre dos o ms conjuntos de resultados en uno. El conjunto obtenido como resultado de INTERSECT tiene la misma estructura que los conjuntos originales. El siguiente ejemplo muestra el uso de INTERSECT SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento FROM EMPLEADOS INTERSECT

SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento FROM CLIENTES

Funciones de agregacin El SQL nos ofrece las siguientes funciones de agregacin para efectuar varias operaciones sobre los datos de una base de datos: Funcin Descripcin COUNT Nos da el nmero total de filas seleccionadas SUM Suma los valores de una columna MIN Nos da el valor mnimo de una columna MAX Nos da el valor mximo de una columna AVG Calcula el valor medio de una columna En general, las funciones de agregacin se aplican a una columna, excepto la funcin de agregacin COUNT, que normalmente se aplica a todas las columnas de la tabla o tablas seleccionadas. Por lo tanto,COUNT (*) contar todas las filas de la tabla o las tablas que cumplan las condiciones. Si se utilizase COUNT(distinct columna), slo contara los valores que no fuesen nulos ni repetidos, y si se utilizase COUNT(columna), slo contara los valores que no fuesen nulos. Ejemplo de utilizacin de la funcin COUNT (*) Veamos un ejemplo de uso de la funcin COUNT, que aparece en la clusula SELECT, para hacer la consulta Cuntos departamentos estn ubicados en la ciudad de Lleida?: SELECT COUNT(*) AS numero_dep FROM departamentos WHERE ciudad_dep = Lleida; numero_dep 1 La respuesta a esta consulta sera la que aparece reflejada en la tabla que encontraris en el margen. COUNT MIN Regresa la cuneta de todos los valores del SELECT. Regresa el valor mnimo de todos los valores del Tambin se puede usar la opcin DISTINCT para SELECT. solamente contar los valores distintos. MAX COUNTBIG Regresa el Valor mximo de todos los valores del Igual que COUNT, pero regresa un BIGINT. SELECT. AVG SUM Regresa el promedio de todos los valores del SELECT. Regresa la suma de todos los valores del SELECT. Tambin se puede usar la opcin DISTINCT para calcular STDEV el promedio de los valores distintos.

Regresa la desviacin estndar de una muestra de todos los valores del SELECT. STDEVP Regresa la desviacin estndar de todos los valores del SELECT. VAR Regresa la variacin de una muestra de todos los valores del SELECT VARP

Regresa la variacin de todos los valores del SELECT. GROUPING Usado con el GROUP BY y ROLLUP, se puede ver el nivel de los resultados CHECKSUM AGG Regresa la suma de verificacin de todos los valores del SELECT.

Valores nulos
Null (nulo) es un marcador especial usado en el lenguaje de consulta estructurado (SQL) para indicar que no existe un valor dentro de una base de datos. Introducido por el creador del modelo relacional de bases de datos E. F. Codd, su funcin es la de solventar el requisito de que los sistemas de gestin relacionales de base de datos (en ingls: Database management system, abreviado DBMS) verdaderos puedan representar informacin desconocida o no aplicable. Null ha sido un foco de controversia y una fuente de debate debido a su asociacin a la lgica ternaria (en ingls: Three-Valued Logic, abreviado 3VL), a sus restricciones de uso en SQL y a la dificultad de su manejo en SQL. Aunque las funciones especiales y predicados sirven para manejar eficazmente el Nulls, la competencia opina que resolver este tipo de cuestiones aade complejidades y contradicciones innecesarias dentro del modelo relacional de bases de datos. "null" significa "dato desconocido" o "valor inexistente". No es lo mismo que un valor "0", una cadena vaca o una cadena literal "null". Veamos un ejemplo. Tenemos nuestra tabla "libros". El campo "titulo" no debera estar vaco nunca, igualmente el campo "autor". Para ello, al crear la tabla, debemos especificar que dichos campos no admitan valores nulos: create table libros( titulo varchar(30) not null, autor varchar(20) not null, editorial varchar(15) null, precio float); Para especificar que un campo no admita valores nulos, debemos colocar "not null" luego de la definicin del campo. Para recuperar los registros que contengan el valor "null" en algn campo, no podemos utilizar los operadores relacionales vistos anteriormente: = (igual) y <> (distinto); debemos utilizar los operadores "is null" (es igual a null) y "is not null" (no es null): select * from libros where precio is null; Consultas anidadas Una consulta anidada, como su nombre indica, es aquella que est contenida dentro de otra. Los resultados de una la consulta anidada se utilizan como valores de comparacin de la clusula WHERE de la consulta que la anida. Se evaluar antes la sentencia SELECT anidada y una vez obtenido el valor o conjunto de valores se evaluar la otra. El formato es el siguiente: SELECT col1, col1, ... , coln FROM tabla1 WHERE col <operador lgico> (SELECT col FROM tabla2 WHERE condiciones); Se deben tener en cuenta los siguientes aspectos para ejecutar este tipo de sentencias: -La tabla de la sentencia SELECT anidada no tiene por qu ser la misma que la de la sentencia SELECT que la anida. - El tipo de datos de la 'col' de la sentencia SELECT superior y de la 'col' de la anidada debe ser el mismo. - Siempre se seleccionarn el mismo nmero de columnas de la sentencia SELECT anidada que el de columnas que forman parte de la clusula WHERE en la superior.

- Las filas devueltas por la consulta anidada deben corresponderse con el tipo de operador lgico indicado. Si el operador lgico es '=' la sentencia SELECT anidada solo podr devolver una nica fila. Consultas complejas El SQL soporta dos grupos de consultas multitabla: - la unin de tablas. - la composicin de tablas. El producto cartesiano El producto cartesiano es un tipo de composicin de tablas, aplicando el producto cartesiano a dos tablas se obtiene una tabla con las columnas de la primera tabla unidas a las columnas de lasegunda tabla, y las filas de la tabla resultante son todas las posibles concatenaciones de filasde la primera tabla con filas de la segunda tabla. La sintaxis es la siguiente:

El INNER JOIN El INNER JOIN es otro tipo de composicin de tablas, permite emparejar filas de distintas tablas de forma ms eficiente que con el producto cartesiano cuando una de las columnas de emparejamiento est indexada. Ya que en vez de hacer el producto cartesiano completo y luego seleccionar la filas que cumplen la condicin de emparejamiento, para cada fila de una de las tablasbusca directamente en la otra tabla las filas que cumplen la condicin, con lo cual se emparejanslo las filas que luego aparecen en el resultado. La sintaxis es la siguiente: Ejemplo: SELECT * FROM pedidos INNER JOIN clientes ON pedidos.clie = clientes.numclie

Vistas
En el modelo de datos relacional la forma de guardar la informacin no es la mejor para ver los datos Una vista es una consulta, que refleja el contenido de una o ms tablas, desde la que se puede acceder a los datos como si fuera una tabla. Creacin de vistas. Para crear una vista debemos utilizar la sentencia CREATE VIEW, debiendo proporcionar un nombre a la vista y una sentencia SQLSELECT vlida. CREATE VIEW <nombre_vista> AS (<sentencia_select>); Ejemplo: Crear una vista sobre nuestra tabla alquileres, en la que se nos muestre el nombre y apellidos del cliente en lugar de su cdigo. CREATE VIEW vAlquileres AS ( SELECT nombre, apellidos, matricula FROM tAlquileres, tClientes WHERE ( tAlquileres.codigo_cliente = tClientes.codigo )

) Si queremos, modificar la definicin de nuestra vista podemos utilizar la sentencia ALTER VIEW, de forma muy parecida a como lo hacamos con las tablas. En este caso queremos aadir los campos fx_alquiler y fx_devolucion a la vista. ALTER VIEW vAlquileres AS ( SELECT nombre, apellidos, matricula, fx_alquiler, fx_devolucion FROM tAlquileres, tClientes WHERE ( tAlquileres.codigo_cliente = tClientes.codigo ) ) Por ltimo podemos eliminar la vista a travs de la sentencia DROP VIEW. Para eliminar la vista que hemos creado anteriormente se utilizara: DROP VIEW vAlquileres; Una vista se consulta como si fuese una tabla. Sinnimos Un sinnimo es un nombre alternativo que identifica una tabla en la base de datos. Con un sinnimo se pretende normalmente simplificar el nombre original de la tabla, aunque tambin se suelen utilizar para evitar tener que escribir el nombre del propietario de la tabla. No todas las bases de datos soportan los sinnimos. Para crear un sinnimo hay que utilizar la sentencia CREATE SYNONYM especificando el nombre que deseamos utilizar como sinnimo y la tabla para la que estamos creando el sinnimo. CREATE SYNONYM <nombre_sinonimo> FOR <nombre_tabla>; Ejemplo: El siguiente ejemplo crea el sinnimo Coches para la tabla tCoches. CREATE SYNONYM Coches FOR tCoches; Para eliminar el sinnimo creado debemos emplear la sentencia DROP SYNONYM. DROP SYNONYM Coches; Modificacin de las bases de datos Las instrucciones para realizar estas operaciones son:

Para ejemplificar las instrucciones anteriores consideremos el ejemplo ALUMNO cursa - MATERIA, que tienen los siguientes atributos: NControl NControl Clave NombreA Clave NombreM Especialidad Calif Creditos Direccin * Estructura de la sentencia CREATE TABLE. CREATE TABLE <Nombre de la tabla> ( Atributo1: tipo de dato longitud , Atributo2: tipo de dato longitud , Atributo3: tipo de dato longitud , : : Atributon: tipo de dato longitud , PRIMARY KEY (Opcional) ) ; Los campos pueden definirse como NOT NULL de manera opcional excepto en la llave primaria para lo cual es obligatorio. Adems al definir la llave primaria se genera automticamente un ndice con respecto al campo llave; para definir la llave la denotamos dentro de los parntesis de PRIMARY KEY. Ejemplo: Crear la tabla alumno con los atributos antes descritos, tomando como llave el nmero de control. CREATE TABLE Alumno ( NControl char(8) NOT NULL, NombreA char(20), Especialidad char(3), Direccin char(30), PRIMARY KEY (NControl) ); Tabla Alumno: NControl NombreA Especialidad Direccin Puede existir ms de una llave primaria, esto es si se requiere, se crearn tantos ndices como llaves primarias se establezcan. Pueden existir tantos campos Not Null (No nulos) como se requieran; En si estructurar la creacin de una tabla es siempre parecida al ejemplo anterior. * Estructura de la sentencia INSERT INSERT INTO Nombre de la tabla a la que se le va a insertar el registro VALUES (Conjunto de valores del registro ) ; Ejemplo: Insertar en la tabla Alumno, antes creada los datos del alumno Daniel coln, con nmero de control 95310518 de la especialidad de Ingeniera civil, con domicilio Abasolo Norte #45. INSERT INTO Alumno VALUES("95310518","Daniel Coln","IC","Abasolo Norte #45") ; Ntese que la insercin de los datos se realiza conforme la estructura que se implanto en la tabla, es decir en el orden en que se cre dicha tabla. En caso de querer omitir un dato que no sean no nulos solamente se ponen las comillas indicando el vaco de la cadena. * Estructura de la Sentencia CREATE INDEX CREATE INDEX Nombre que se le asignara al ndice. ON Nombre de la taba a la cual se le creara el ndice (Campo(s) por el cual se creara el ndice);

Ejemplo: Crear un ndice de la tabla Alumno por el campo Especialidad. CREATE INDEX Indice1 ON Alumno(Especialidad); Este ndice contendr a todos los alumnos ordenados por el campo especialidad. CREATE INDEX UNIQUE INDEX Indice2 ON Alumno (Especialidad); En la creacin de este ndice utilizamos la sentencia UNIQUE, es un indicador para permitir que se cree un ndice nico por especialidad, esta sentencia siempre se coloca antes de CREATE INDEX. En este ejemplo se creara un ndice que contenga un alumno por especialidad existente. * Estructura de la sentencia UPDATE UPDATE Nombre de la tabla en donde se modificaran los datos. SET Valores WHERE (Condicin); * Estructura de la sentencia DROP INDEX DROP INDEX Nombre del ndice a borrar; Ejemplo: Borrar el ndice Indice1 creado anteriormente. DROP INDEX Indice1; * Estructura de la sentencia DELETE DELETE FROM Nombre de la tabla WHERE Condicin; Ejemplos: - Borrar el registro cuyo nmero de control es 95310386. DELETE FROM Alumno WHERE Control=95310386; - Borrar todos los registros de la tabla alumno. DELETE FROM Alumno;

Conclusin.
Estos temas son de gran ayuda para comprender las operaciones que aremos con nuestras bases de datos, de acuerdo a lo investigado las formas de consultas y como se mezclan con las del algebra relacional son de gran influencia para el perfecto manejo de nuestra base de datos. Por ello concluyo que los temas son de gran utilidad y nos servirn de gran apoyo para el desarrollo de nuestras prcticas o ejercicios los cuales tendrn muy seguramente mucho que ver con todo lo que podemos aprender de estos temas.

Bibliografa.
http://www.estructurayprogramacion.com/materias/fundamentos-de-base-de-datos/modificacion-de-las-bases-dedatos/ http://exa.unne.edu.ar/depar/areas/informatica/dad/DAD/Presentaciones/El_Lenguaje_SQL.pdf http://server-itp.servehttp.com/FBD/AE-31%20Fundamentos%20de%20Bases%20de%20Datos.pdf

Você também pode gostar