Está en la página 1de 11

Fundamentos de base de datos

ALGEBRA RELACIONAL

unidad 3

El lgebra relacional es un conjunto de operaciones que describen paso a paso como computar una respuesta sobre las relaciones, tal y como stas son definidas en el modelo relacional. Denominada de tipo procedimental, a diferencia del Clculo relacional que es de tipo declarativo. Describe el aspecto de la manipulacin de datos. Estas operaciones se usan como una representacin intermedia de una consulta a una base de datos y, debido a sus propiedades algebraicas, sirven para obtener una versin ms optimizada y eficiente de dicha consulta. CALCULO RELACIONAL DE DOMINIOS Es un lenguaje de consulta formal que permite expresar las consultas a partir de frmulas bien formadas, donde cada variable se interpreta como variante sobre el dominio del atributo de una relacin. Al igual que el anterior, ste se deduce del clculo de predicados, pero en este caso: 1. las variables estn asociadas a los dominios de los atributos y se denota como relacin(atributo1: variable1, atributo2: variable2, ... ). Ejm: ModeloCarro(modelo: m, marca: c). 2. los predicados utilizados se construyen igual que para el clculo relacional de tuplas. CALCULO RELACIONAL DE TUPLAS Es un lenguaje de consulta formal que permite expresar las consultas a partir de frmulas bien formadas, donde las variables son interpretadas como variantes sobre las tuplas de las tablas. Fue presentado por Codd en 1972 y se deduce del Clculo de Predicados. tomos: 1. las variables estn asociadas a las tuplas de las tablas y se denota como relacin(variable). Ejm: Modelo(M). 2. los valores constantes estn asociados a los valores de los dominios de los atributos y Jos Miguel Gerardo Flores

Fundamentos de base de datos

unidad 3

las funciones generadoras de los mismos se denotan como variable.atributo. Ejm: M.marca 3. los predicados utilizados se construyen con los operadores de comparacin {<, , >, , =, } y constantes. Ejm: M.marca fiat. Una frmula bien formada (fbf) se define como: 1. Todo tomo es una frmula bien formada F 2. Si F1 y F2 son fbf, entonces F1 and F2, F1 or F2, not F1 o not F2 son fbf 3. F1 es una fbf 4. F1 es una fbf CLAVE EXTERNA Una clave externa es un campo (o campos) que seala la clave primariade otra tabla. El propsito de la clave externa es asegurar la integridad referencial de los datos. En otras palabras, slo sepermiten los valores que se esperan que aparezcan en la base de datos. RELACION REFERENCIADA Una relacin de dimensin de referencia se define en la pestaa Uso de dimensiones del Diseador de cubos. La relacin de dimensin de referencia se define al especificar lo siguiente:

La dimensin intermedia con la que se va a combinar. Puede ser una dimensin normal u otra dimensin de referencia. Un atributo de dimensin de referencia que defina el nivel mnimo en el que la dimensin est disponible para la agregacin con respecto al grupo de medida. El atributo (clave externa) de la dimensin intermedia que corresponde al atributo de dimensin de referencia.

Tenga en cuenta que la columna que vincula la dimensin de referencia con la tabla de hechos, que suele ser el atributo clave de la dimensin de referencia, tambin debe ser definida como un atributo en la dimensin intermedia. Cuando cree una cadena de dimensiones de referencia, comience por crear la relacin normal entre la primera dimensin de la cadena y el grupo de medida. A continuacin, cree cada relacin referenciada adicional en orden. Una relacin referenciada solo se puede realizar para una dimensin que tenga una relacin existente con el grupo de medida. Cuando se crea una relacin de dimensin de referencia, el vnculo del atributo de dimensin se materializa de forma predeterminada. El materializar un vnculo del atributo de dimensin hace que, durante el procesamiento, el valor del vnculo entre la tabla de hechos y la dimensin de referencia de cada fila se materialice, o almacene, en la estructura MOLAP de la dimensin. Esto tendr un efecto poco importante en el Jos Miguel Gerardo Flores

Fundamentos de base de datos

unidad 3

rendimiento del proceso y en los requisitos de almacenamiento, pero mejorar el rendimiento de la consulta. En una dimensin de referencia, la granularidad se especifica mediante la identificacin del atributo que define la relacin entre una dimensin de referencia y el grupo de medida correspondiente a la tabla principal de la dimensin. Cuando se encadenan varias dimensiones de referencia, las referencias definen la relacin de la dimensin ms externa al grupo de medida.

CLAVES Hay varios tipos Clave nica Cada tabla puede tener uno o ms campos cuyos valores identifican de forma nica cada registro de dicha tabla, es decir, no pueden existir dos o ms registros diferentes cuyos valores en dichos campos sean idnticos. Este conjunto de campos se llama clave nica. Pueden existir varias claves nicas en una determinada tabla, y a cada una de stas suele llamrsele candidata a clave primaria. Clave primaria Una clave primaria es una clave nica elegida entre todas las candidatas que define unvocamente a todos los dems atributos de la tabla, para especificar los datos que sern relacionados con las dems tablas. La forma de hacer esto es por medio de claves forneas. Slo puede existir una clave primaria por tabla y ningn campo de dicha clave puede contener valores NULL. Clave fornea Una clave fornea es una referencia a una clave en otra tabla, determina la relacin existente en dos tablas. Las claves forneas no necesitan ser claves nicas en la tabla donde estn y s a donde estn referenciadas. Por ejemplo, el cdigo de departamento puede ser una clave fornea en la tabla de empleados. Se permite que haya varios empleados en un mismo departamento, pero habr uno y slo un departamento por cada clave distinta de departamento en la tabla de empleados. Clave ndice Las claves ndice surgen con la necesidad de tener un acceso ms rpido a los datos. Los ndices pueden ser creados con cualquier combinacin de campos de una tabla. Las consultas que filtran registros por medio de estos campos, pueden encontrar los registros de forma no secuencial usando la clave ndice. Las bases de datos relacionales incluyen mltiples tcnicas de ordenamiento, cada una de ellas es ptima para cierta distribucin de datos y tamao de la relacin.

Jos Miguel Gerardo Flores

Fundamentos de base de datos

unidad 3

Los ndices generalmente no se consideran parte de la base de datos, pues son un detalle agregado. Sin embargo, las claves ndices son desarrolladas por el mismo grupo de programadores que las otras partes de la base de datos. VISTAS Una vista de base de datos es un resultado de una consulta SQL de una o varias tablas; tambin se le puede considerar una tabla virtual. Las vistas tienen la misma estructura que una tabla: filas y columnas. La nica diferencia es que slo se almacena de ellas la definicin, no los datos. Los datos que se recuperan mediante una consulta a una vista se presentarn igual que los de una tabla. De hecho, si no se sabe que se est trabajando con una vista, nada hace suponer que es as. Al igual que sucede con una tabla, se pueden insertar, actualizar, borrar y seleccionar datos en una vista. Aunque siempre es posible seleccionar datos de una vista, en algunas condiciones existen restricciones para realizar el resto de las operaciones sobre vistas. Una vista se especifica a travs de una expresin de consulta (una sentencia SELECT) que la calcula y que puede realizarse sobre una o ms tablas. Sobre un conjunto de tablas relacionales se puede trabajar con un nmero cualquiera de vistas.

DOMINIO ATOMICO Los dominios suponen una gran mejora en este modelo ya que permiten especifcar los posibles valores vlidos para un atributo. Cada dominio incorpora su nombre y una definicin del mismo. Ejemplos de dominio: - Direccin: 50 caracteres Nacionalidad: Espaol, Francs, Italiano,... Los dominios pueden ser tambin compuestos a partir de otros (ao, mes y da = fecha)

DIAGRAMA DE ESQUEMA El esquema de una base de datos (en ingls, Database Schema) describe la estructura de una Base de datos, en un lenguaje formal soportado por un Sistema administrador de Base de datos (DBMS). En una Base de datos Relacional, el Esquema define sus tablas, sus campos en cada tabla y las relaciones entre cada campo y cada tabla. El esquema es generalmente almacenado en un Diccionario de Datos. Aunque generalmente el esquema es definido en un lenguaje de Base de datos, el trmino se usa a menudo para referirse a una representacin grfica de la estructura de base de datos.

Ejemplar de la base de datos: Coleccin de informacin almacenada en la BD. Jos Miguel Gerardo Flores

Fundamentos de base de datos

unidad 3

Esquema de la base de datos: Es el diseo completo de la BD (tablas, campos de cada tabla y relaciones entre cada campo y cada tabla). EJEMPLAR DE RELACION Matemticamente, una relacin se puede definir como un subconjunto del producto cartesiano de una lista de dominios, donde cada elemento de la relacin, tupla, es una serie de n valores ordenados. ESQUEMA DE LA BASE DE DATOS De acuerdo a [ Korth/Silberschatz ] Cuando se habla de bases de datos se debe diferenciar entre el esquema de la base de datos, o diseo lgico de la misma, y el ejemplar de la base de datos, que es una instancia de los datos de la misma en un momento dado. ESQUEMA DE LA RELACION doctrina de la participacin, para explicar la relacin entre Dios y las criaturas influencia en la Cuarta Va (por los grados de perfeccin).

EXPANSION DE VISTAS La expasion de vistas es una manera de definir el significado de las vistas definidas en trminos de otras vistas. LENGUAJE DE CONSULTA Un lenguaje de consulta es un lenguaje informtico usado para hacer consultas en bases de datos y sistemas de informacin.

LENGUAJE PROCEDIMENTAL es un lenguaje procedimental para el sistema de base de datos PostgreSQL. Los objetivos propuestos para PL/pgSQL consisten en crear un lenguaje que pueda ser usado para crear funciones y procedimientos disparadores, adicione estructuras de control al lenguaje SQL, sea capaz de realizar clculos complejos, herede todos los tipos, las funciones y los operadores definidos por el usuario,

Jos Miguel Gerardo Flores

Fundamentos de base de datos


pueda ser definido como confiable (trusted) por el servidor, sea fcil de usar. LENGUAJE NO PROCEDIMENTAL

unidad 3

Un lenguaje de computadora que nos requiere plantear la lgica tradicional de programacin. Por ejemplo, un comando tal como LIST puede mostrar todos los registros de un archivo en la pantalla, separando los campos con un espacio en blanco. En un leguaje procedimental tal como COBOL, toda la lgica para el ingreso de cada registro en el archivo, verificacin de fin archivo y separacin de datos en la pantalla debe estar explcitamente programada.

Actualizacin de bases de datos

1. ACTUALIZACIN DE BASES DE DATOS EN MYSQL Operaciones con bases de datos ofimticas y corporativas 2. Insercin de datos Para insertar filas en una tabla se utiliza la orden INSERT INSERT INTO NombreTabla [(columna1, columna2, .....)] VALUES (valor1, valor2, .....); 3. Insercin de datos INSERT INTO emple(emp_no, apellido, oficio, dir, fecha_alt, salario, comision, dept_no) VALUES (1000,QUEVEDO,ANALISTA,7782,CURDATE(),3000,0,4 0); 4. Insercin de datos Cuando se dan valores a todas las columnas de la tabla, no es preciso especificar su nombre en la orden INSERt Los valores de las columnas han de ir en el mismo orden en que estn definidas en la tabla. INSERT INTO emple VALUES (1000,QUEVEDO,ANALISTA,7782,CURDATE(),3000,0,4 0); 5. Insercin de datos INSERT INTO emple(emp_no, apellido, oficio, salario, dept_no) VALUES(1001,RODRIGUEZ,ANALISTA,3000,40); INSERT INTO emple(emp_no,apellido) VALUES(1002,PEREZ); 6. Insercin de datos Si las columnas no se especifican en la clusula INSERT, se consideran, por defecto, todas las columnas de la tabla. Los valores se deben corresponder con cada una de las columnas que aparecen Adems, deben coincidir con el tipo de datos definido para cada columna. Cualquier columna que no se encuentre en la lista de columnas tomar el valor NULL

Jos Miguel Gerardo Flores

Fundamentos de base de datos

unidad 3

7. Insercin con select Si aadimos a la orden INSERT una sentencia SELECT, se aaden tantas filas como devuelva la consulta. INSERT INTO Nombretabla [(columna1, columna2, ....)] SELECT columna1, columna2, .... FROM NombreTabla2 ....... 8. Insercin con select Disponemos de la tabla EMPLE30, cuya descripcin es la misma que la de la tabla EMPLE. INSERT INTO emple30(emp_no, apellido, oficio, dir, fecha_alt, salario, comision, dept_no) SELECT emp_no, oficio, dir, fecha_alt, salario, comision, dept_no FROM emple WHERE dept_no=30; 9. Insercin con select La consulta anterior es equivalente a esta: INSERT INTO emple30 SELECT * FROM emple WHERE dept_no=30; Insertamos el empleado con nmero 1505 y apellido GARCA en el departamento que tiene 3 empleados. INSERT INTO emple(emp_no,apellido,dept_no) SELECT 1505,GARCA,dept_no FROM emple GROUP BY dept_no HAVING COUNT(*)=3; 10. Modificacin. UPDATE Para actualizar los valores de una tabla se utiliza la orden UPDATE UPDATE NombreTabla SET columna1=valor1, columna2=valor2..... WHERE condicion 11. Modificacin. UPDATE Sumamos 100 euros al salario de GIL UPDATE emple SET salario=salario+1000 WHERE apellido=GIL; Duplicamos el salario de todos los empleados UPDATE emple SET salario=salario*2; 12. UPDATE CON SELECT Se puede incluir una sentencia SELECT en una sentencia UPDATE Duplicar el salario a todos los empleados del departamento VENTAS UPDATE emple SET salario=salario*2 WHERE dept_no=(SELECT dept_no FROM depart WHERE dnombre=VENTAS); 13. UPDATE CON SELECT Igualar el oficio y salario de GIL al salario y oficio de ARROYO UPDATE emple SET salario=(SELECT salario FROM emple WHERE apellido=ARROYO), oficio=(SELECT oficio FROM emple WHERE apellido=ARROYO); 14. Borrado de filas. DELETE Para eliminar una o varias filas se utiliza la orden DELTE DELETE FROM NombreTabla WHERE condicin; Si no se especifica condicin, se eliminan todas las filas de la tabla 15. Borrado de filas. DELETE Borrar todos los empleados del departamento 10 DELETE FROM emple WHERE dept_no=10; Borrar el departamento de la tabla DEPART Jos Miguel Gerardo Flores

Fundamentos de base de datos


que no tenga empleados DELETE FROM depart WHERE dept_no NOT IN (select dept_no FROM emple);

unidad 3

16. Transacciones. commit y rollback Una transaccin es una secuencia de una o ms sentencias SQL que juntas forman una unidad de trabajo. Imagina que quieres borrar uno o varios registros de una tabla, pero te equivocas y eliminas todos los registros de la tabla. Existe alguna forma de subsanar el error y dar marcha atrs para recuperar registros eliminados? S, utilizando transacciones. 17. Transacciones. commit y rollback Por defecto MySQL funciona en modo autocommit Se confirma cada sentencia ejecutada 18. Transacciones. commit y rollback Pasos para iniciar una transaccin Se comienza una transaccin con la sentencia START TRANSACTION Si se realizan modificaciones en la base de datos y queremos volver atrs y cancelar los cambios realizados, utilizamos ROLLBACK Para confirmar los cambios realizados utilizamos COMMIT Para comenzar una nueva transaccin utilizamos START TRANSACTION MULTICONJUNTOS Un multiconjunto en estructura de dato seria la utilizacin de bases de datos en donde la misma esta integrada por varias tablas y estas a su ves por varios registros relacionadas entre si. Ejemplo en una compaa elctrica existes muchos usuarios en este sistema de informacin, obligatoriamente tendra que existir un multiconjunto de bases de datos ya que en esta estara sus datos personales, direccin, consumo de energa, entre otros. OPERACIONES ADICIONALES En realidad las estructuras de datos que se han implementado hasta ahora no son ms que elementos diferentes entre s (en general) en los que se ha definido una relacin. Por ejemplo, en las listas ordenadas o los rboles binarios de bsqueda se tiene una serie de elementos que estn ordenados entre s. Obviando las propiedades de las estructuras, se ve que forman un conjunto, y su cardinal es el nmero de elementos que contenga la estructura. En los conjuntos no existen elementos repetidos, y esto se respeta en las implementaciones que se ofrecen a continuacin. Ahora bien, en esta seccin se van definir unas implementaciones que permitan aplicar el lgebra de conjuntos, ya sea unin, interseccin, pertenencia, etc. Se realizan tres implementaciones: array de bits, arrays y listas enlazadas. OPERACIONES DE ALGEBRA RELACIONAL

Jos Miguel Gerardo Flores

Fundamentos de base de datos

unidad 3

El lgebra relacional es un conjunto de operaciones que describen paso a paso como computar una respuesta sobre las relaciones, tal y como stas son definidas en el modelo relacional. Denominada de tipo procedimental, a diferencia del Clculo relacional que es de tipo declarativo. Describe el aspecto de la manipulacin de datos. Estas operaciones se usan como una representacin intermedia de una consulta a una base de datos y, debido a sus propiedades algebraicas, sirven para obtener una versin ms optimizada y eficiente de dicha consulta.

OPERACIONES DE ALGEBRA RELACIONAL EXTENDIDA La operacin proyeccin generalizada ampla la operacin proyeccin permitiendo que se utilicen funciones aritmticas en la lista de argumentos.

OPERACIN ASIGNACION Este es el modo de darle valores a una variable. La operacin de asignacin se representa con el smbolo u operador instruccin o . La operacin de asignacin se conoce como

sentencia de asignacin cuando se refiere a un lenguaje de programacin.

POTENCIA EXPRESIVA DE LOS LENGUAJES En ciencias de la computacin, la programacin funcional es un paradigma de programacin declarativa basado en la utilizacin de funciones aritmticas que no maneja datos mutables o de estado. Enfatiza la aplicacin de funciones, en contraste con el estilo de programacin imperativa, que enfatiza los cambios de estado. La programacin funcional tiene sus races en el clculo lambda, un sistema formal desarrollado en los 1930s para investigar la definicin de funcin, la aplicacin de las funciones y la recursin. Muchos lenguajes de programacin funcionales pueden ser vistos como elaboraciones del clculo lambda. RELACION En bases de datos, una relacin o vnculo entre dos o ms entidades describe algna interaccin entre las mismas. Por ejemplo, una relacin entre una entidad "Empleado" y una entidad "Sector" podra ser "trabaja_en", porque el empleado trabaja en un sector determinado.

SEGURIDAD DE LAS EXPRESIONES Una relacinen el lgebra relacional de tuplas puede generar una relacin infinita. Supngase: prstamo)}Existe un nmero infinito de tuplas que no estn en prstamo. La mayora contienen valores que ni siquieraestn en la BD, por lo que no queremos permitir estas expresiones. Jos Miguel Gerardo Flores

Fundamentos de base de datos

unidad 3

TABLA Tabla en las bases de datos, se refiere al tipo de modelado de datos, donde se guardan los datos recogidos por un programa. Su estructura general se asemeja a la vista general de un programa de Hoja de clculo. Las tablas se componen de dos estructuras:

Registro: es cada una de las filas en que se divide la tabla. Cada registro contiene datos de los mismos tipos que los dems registros. Ejemplo: en una tabla de nombres y direcciones, cada fila contendr un nombre y una direccin. Campo: es cada una de las columnas que forman la tabla. Contienen datos de tipo diferente a los de otros campos. En el ejemplo anterior, un campo contendr un tipo de datos nico, como una direccin, o un nmero de telfono, un nombre, etc.

VALOR NULO 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. Asimismo, Codd tambin introdujo el uso de la letra griega omega () en minscula para representar el Null en la teora de la teora de las bases de datos. NULL es tambin una palabra reservada en el lenguaje SQL para identificar el marcador especial Null. 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.

VARIABLE TUPLA Hasta ahora, has visto dos tipos compuestos: las cadenas, que estn hechas con caracteres, y las listas, que estn constituidas por elementos de cualquier tipo. Una de las diferencias que comentamos es que los elementos de una lista se pueden modificar, mientras que los caracteres de una cadena no. Dicho de otro modo, las cadenas son inmutables y las listas son mutables.

VISTAS Una vista es un objecto de la base de datos que se define mediante una SELECTque agrupa o selecciona un conjunto de datos. Vamos a ver como usarlas.

Jos Miguel Gerardo Flores

Fundamentos de base de datos


VISTAS RECURSIVAS

unidad 3

Jos Miguel Gerardo Flores

También podría gustarte