METODOS DE OPTIMIZACION DE CONSULTAS PARA EL LENGUAJE SQL.

Tamaño: px
Comenzar la demostración a partir de la página:

Download "METODOS DE OPTIMIZACION DE CONSULTAS PARA EL LENGUAJE SQL."

Transcripción

1 UNIVERSIDAD DE SANTIAGO DE CHILE FACULTAD DE CIENCIAS DEPARTAMENTO DE MATEMATICA Y CIENCIA DE LA COMPUTACION METODOS DE OPTIMIZACION DE CONSULTAS PARA EL LENGUAJE SQL. MARIO CISTERNA NEIRA SANTIAGO - CHILE 2002

2 1 TABLA DE CONTENIDOS DEFINICIÓN DEL PROBLEMA...4 ESTRUCTURA DEL LIBRO...6 CAPÍTULO 1. MODELO DE DATOS RELACIONAL INTRODUCCIÓN IMPLEMENTACIONES RELACIONALES CONCEPTOS GENERALES CAPÍTULO 2. LENGUAJES DE CONSULTA PARA EL MODELO RELACIONAL INTRODUCCIÓN ALGEBRA RELACIONAL CÁLCULO RELACIONAL DE TUPLAS SQL COMO LENGUAJE DE CONSULTAS RELACIONALES CAPÍTULO 3. SISTEMAS DE GESTIÓN DE BASES DE DATOS RELACIONALES INTRODUCCIÓN TRANSACCIONES, CONCURRENCIA Y RECUPERACIÓN TIPOS DE SGBD...40 CAPÍTULO 4. INTRODUCCIÓN AL PROCESAMIENTO DE CONSULTAS, EL ENFOQUE DE SYSTEM R INTRODUCCIÓN EL OPTIMIZADOR DE SYSTEM R CAPÍTULO 5. OPTIMIZACIÓN DE CONSULTAS, FUNDAMENTO TEÓRICO INTRODUCCIÓN INFORMACIÓN DEL CATÁLOGO MEDIDAS DE COSTO EVALUACIÓN DE EXPRESIONES ORDENES DE JOIN ELECCIÓN DE LOS PLANES DE EVALUACIÓN CAPÍTULO 6. EL OPTIMIZADOR DE CONSULTAS DE SYBASE ADAPTIVE SERVER ENTERPRISE, UN EJEMPLO PRÁCTICO INTRODUCCIÓN ANÁLISIS DE LA CONSULTA

3 SELECCIÓN DE ÍNDICES SELECCIÓN DE LOS ORDENES DE JOIN USO DE TABLAS TEMPORALES SELECCIÓN DEL PLAN RESUMEN RESUMEN Y CONCLUSIONES RESUMEN CONCLUSIONES BIBLIOGRAFÍA APÉNDICES. 162 A. SINTAXIS DE SQL A.1. DEFINICIONES DE DATOS EN SQL A.2. MANIPULACIÓN DE DATOS EN SQL B. INDICES B C. MÉTODOS DE ALMACENAMIENTO DE DATOS C.1. DISCOS MAGNÉTICOS...182

4 3 TABLA DE TABLAS TABLA OPERADORES DEL ALGEBRA RELACIONAL...17 TABLA FACTORES DE SELECCIÓN PARA CAMINOS DE ACCESO A RELACIONES SIMPLES.58 TABLA FÓRMULAS DE COSTO PARA CAMINOS DE ACCESO A RELACIONES SIMPLES...61 TABLA INFORMACIÓN DEL CATÁLOGO PARA RELACIONES SIMPLES TABLA INFORMACIÓN DEL CATÁLOGO PARA ÍNDICES DE RELACIONES...72 TABLA REGLAS DE EQUIVALENCIA PARA EXPRESIONES RELACIONALES TABLA A-1 - TIPOS DE DATOS DE SQL TABLA DE ALGORITMOS ALGORITMO JOIN EN BUCLES ANIDADOS...83 ALGORITMO JOIN EN BUCLES ANIDADOS POR BLOQUES...84 ALGORITMO JOIN POR MEZCLA ALGORITMO JOIN POR ASOCIACIÓN...89 ALGORITMO JOIN ENCAUZADO...99 TABLA DE FIGURAS FIGURA ESQUEMA DE RELACIONES DE EJEMPLO...18 FIGURA PASOS EN EL PROCESAMIENTO DE UNA CONSULTA SQL...50 FIGURA COMPORTAMIENTO DEL ALGORITMO DE SIMULACIÓN DE COCCIÓN FIGURA EJEMPLO DEL PRINCIPIO DE SELECCIÓN PARA EL ALGORITMO GENÉTICO PARA LA OPTIMIZACIÓN DE ORDENES DE JOIN FIGURA EJEMPLO DEL PRINCIPIO DE COMBINACIÓN PARA EL ALGORITMO GENÉTICO PARA LA OPTIMIZACIÓN DE ORDENES DE JOIN FIGURA UN PLAN DE EVALUACIÓN DE EJEMPLO...123

5 4 Definición del problema. En Bases de datos relacionales el lenguaje de consultas SQL es lo más utilizado por el común de los programadores y desarrolladores para obtener información desde la Base de datos. La complejidad que pueden alcanzar algunas consultas puede ser tal, que el diseño de una consulta puede tomar un tiempo considerable, obteniendo no siempre una respuesta optima. Dada una consulta, generalmente existen varias maneras de calcular la respuesta. En SQL una consulta puede expresarse de distintas maneras, todas ellas diferentes, como lo expresa C. Date en [Date98], cada una de las formas sugiere una estrategia para encontrar la respuesta y por lo tanto algunas pueden ser más optimas que otras. El problema que se plantea entonces es, el encontrar la manera más apropiada de resolver la consulta, sin que, el proceso de determinar este resultado exceda un tiempo razonable y un gasto de recursos adicional. Como respuesta a este problema, nace el concepto de optimización de consultas. El objetivo principal de este proceso es, encontrar o bien la mejor alternativa para solucionar la consulta, o de lo contrario, la alternativa que mejor cumpla las características de eficiencia, entre las estudiadas, cuando no sea posible estudiarlas todas. Este proceso tiene que ser lo bastante rápido como para que sea conveniente para el motor efectuar este cálculo sin afectar el rendimiento en la construcción del resultado de la consulta.

6 5 Uno de los primeros estudios relativo a optimización de consultas para SQL se hizo sobre el prototipo de un motor de base de datos relacional desarrollado por IBM llamado system R, en los laboratorios de San José (California) a mediados de la década de Este estudio proporcionaría las bases para la construcción de la mayoría de los optimizadores para motores de base de datos relacionales de orden comercial en la actualidad. Entre otras cosas, este estudio propone la descomposición del procesamiento de una consulta SQL en 4 fases: el análisis sintáctico (parsing), la optimización, la generación de código y la ejecución de la consulta. Se entiende entonces como proceso de optimización de consultas al conjunto de técnicas, algoritmos y reglas que le permiten, al motor de base de datos, elegir una alternativa entre varias con la cual pueda rescatar los datos de la manera más optima. El objetivo principal de este trabajo es Investigar este proceso y develarlo, con la finalidad de que deje de ser algo desconocido para quienes interactúan con Sistemas de Gestión de bases de datos relacionales. La idea de este trabajo es que le sirva de apoyo tanto al diseñador de base de datos relacionales, como a los desarrolladores que ejecutan consultas, quienes, al entender mas de cerca el proceso de optimización de consultas puedan evitar los errores más comunes, que a la larga llevan muchas veces al fracaso en la construcción e implementación de sistemas de Información sobre bases de datos relacionales.

7 6 Estructura del libro. El Capítulo 1 introduce el modelo relacional de datos, el cual es la base para el desarrollo de este trabajo, se presentará un marco de trabajo teórico sobre el cual desarrollar el problema. El Capítulo 2 trata sobre los distintos lenguajes para recuperación de datos que existen para el modelo relacional, otorgando un énfasis especial sobre el álgebra relacional y el cálculo relacional de tuplas, fundamentales para la presentación de SQL como lenguaje de consultas. El procesamiento de una consulta SQL dependerá en gran medida de la implemetación relacional en la cual se ejecute, por lo tanto, el Capítulo 3 presenta la conceptualización sobre Sistemas de Gestión de base de datos relacionales (SGBD), a modo de explicación de cómo se logran implementaciones relacionales del modelo, en este capítulo se explicarán brevemente conceptos tales como transacciones, concurrencia y repcuperación de datos. El Capítulo 4 Introduce al tema del procesamiento de consultas, para tales efectos se presenta el estudio del optimizador de consultas de System R. Este SGBD se considera una de las primeras implementaciones relacionales y motivo de investigación tanto como fundamento y guia para la construcción de la mayoría de los optimizadores relacionales comerciales actuales. El estudio de este caso introduce conceptos como medidas de costo, caminos de acceso y utilización de heurísticas dentro de un optimizador. El Capítulo 5 desarrolla el fundamento teórico del libro, estudia en profundidad el proceso de optimización de consultas SQL. Este capítulo explica como los optimizadores determinan sus medidas de costo y en que información se basan

8 7 para estos cálculos; como se produce la evaluación de expresiones y como determinar los ordenes de Join. Dado que este trabajo no tiene asociado un desarrollo práctico del tema, el Capítulo 6 presenta un ejemplo de cómo trabaja en la práctica un optimizador de consultas para un SGBD comercial, para tales efectos se presenta el caso de Sybase Adaptive Server Enterprise (ASE). Este capítulo llevará al lector a entender que existe una correspondencia entre lo presentado en el Capítulo 4, lo explicado en el Capítulo 5, y como se logra esto en la práctica.

9 8 Capítulo 1. Modelo de Datos Relacional 1.1. Introducción. El objetivo de todo modelo de datos es proveer conceptos y estructuras de datos capaces de interpretar los aspectos relevantes que existen en una determinada parcela del mundo real. Esto se logra mediante un conjunto bien definido de estructuras, operadores y restricciones que actúan sobre dichas estructuras. El Modelo Relacional corresponde a un enfoque científico y tecnológico que surgió entre la década de 1960 y la década de Su estrategia de abstracción se basa en hacer una representación tabular de los objetos y sus asociaciones entre ellos. Sin embargo, este enfoque tabular que se sustenta en la teoría de las relaciones matemáticas no permite diferenciar entre los tipos de entidad y los tipos de relación, lo que constituye una pérdida semántica significativa con respecto a su antecesor, el modelo de Entidad-Relación. Por otra parte, la representación tabular de la información y los mecanismos utilizados para establecer vínculos entre las tablas que se representan de objetos relacionados han contribuido enormemente a su masificación, a tal punto que en la actualidad, el Modelo Relacional es un estándar de hecho en los que se construyen los SGBD 1 comerciales. Es importante notar que el modelo relacional es un modelo basado en el papel y que no todas sus características son implementadas en los SGBD, como a 1 SGBD : Sistemas de Gestión de Bases de datos.

10 9 su vez muchas implementaciones tienen más características que las que contempla el modelo Implementaciones Relacionales. Una implementación del modelo relacional debe soportar todas las facilidades prescritas por el modelo, sin embargo existen algunas características a las cuales no hace referencia el modelo de datos relacional, dentro de estas se incluyen operaciones aritméticas, funciones agregadas, actualizaciones explícitas, modificaciones, eliminaciones, etc. Para esto el Modelo relacional incluye un núcleo de funciones que deben ser incorporadas en un SGBD. Sin embargo existe una distinción entre las implementaciones consideradas relacionales y los que no lo son en su totalidad (Pseudo-Relacionales). Estas últimas se pueden clasificar como sigue: Tabular : Un SGBD Tabular es una implementación de una Base de datos relacional que soporta las estructuras de datos tabulares (tablas), pero no los operadores de nivel de conjuntos. Relacional Mínimo: Un SGBD Mínimamente relacional es una implementación de bases de datos relacionales que soporta sólo tablas, los operadores de selección, proyección y el operador JOIN (pero no los otros operadores relacionales). Relacional Completo: Un SGBD Completamente relacional es una implementación de bases de datos relacionales que soporta sólo tablas y todos los operadores del álgebra relacional.

11 10 Relacional : Un SGBD Relacional es una implementación de Bases de datos relacionales que soporta todos los aspectos del modelo relacional incluidos los dominios y las dos reglas generales de Integridad (que se explicarán más adelante, en el punto ) Conceptos generales Datos Atómicos Todos los valores de datos en el modelo relacional son atómicos. Esto implica que cada posición de fila-columna en cada tabla siempre tiene sólo un dato, y nunca un conjunto de valores Tuplas Una tupla de una relación o de una tabla corresponde a una fila de aquella tabla. Las tuplas están comúnmente desordenadas puesto que matemáticamente una relación se define como un conjunto y no como una lista. No Existen tuplas duplicadas en una relación o tabla dado el hecho de que una relación es un conjunto y los conjuntos por definición no permiten elementos duplicados. Un corolario importante en este punto es que la llave primaria siempre existe dada la condición de unicidad de las tuplas, por lo tanto, como mínimo la combinación de todos los atributos de una tabla puede servir para la conformación de la llave primaria, sin embargo usualmente no es necesario incluir todos los atributos, comúnmente algunas combinaciones mínimas son suficientes Dominios. Un dominio se define como un conjunto de valores del mismo tipo. Por ejemplo el dominio que corresponde a la edad de una persona (en años) se puede

12 11 definir como el conjunto de todos los valores de números posibles de edades, por ejemplo desde 0 hasta 120. Siempre y cuando dos atributos tomen sus valores del mismo dominio estos pueden ser comparados aunque pertenezcan a distintas tablas. Los dominios son especificados como parte de la definición de los datos, estos pueden ser simples o compuestos. Un dominio compuesto se define como el producto de alguna colección de dominios simples. Por ejemplo la fecha es producto de el día, el mes y el año, donde el mes es el dominio simple de 1 a 12 y así sucesivamente) Atributos. Un atributo de una relación o de una tabla corresponde a una columna de la tabla. Los atributos están desordenados y se referencian por nombres y no por la posición que ocupan. Esto significa que no se puede, por ejemplo, hacer referencia al tercer atributo de una relación. Todos los valores de los atributos son atómicos y una relación que satisfaga esta condición se llama relación normalizada. Un atributo extrae sus valores desde un dominio simple. Formalmente, un atributo es una función que se define entre un Dominio y un determinado tipo de Entidad de la base de datos. Dicha función asocia una ocurrencia de Tipo de Entidad con un determinado elemento del dominio Esquema de Relación. Un esquema de relación es el conjunto que identifica todas las propiedades (Atributos) de un objeto. Se representa por el conjunto : { A A, A } E =,... 1, 2 3 A n donde A i, i = 1,... n corresponde a un atributo y n el número de atributos de interés del objeto.

13 Relación Formalmente, una relación R es un conjunto de n-tuplas tal que una n-tupla cualquiera x es: {( A, a) / A E, a Dom( A ), i, i = 1 n} i i i,... donde E es el esquema de la relación. Las propiedades fundamentales de una relación son : No hay tuplas repetidas. Las tuplas no están ordenadas. Los atributos no están ordenados. Todos los valores que toman las propiedades son atómicos Grado de una relación El grado de una relación es el numero de atributos en la relación. Una relación de grado 1 (uno) es llamada unaria, una relación de grado 2 es llamada binaria, una relación de grado n es llamada de grado n. Los Grados de una relación no cambian todo el tiempo, pero es posible que se agreguen nuevas columnas y se creen nuevas relaciones.

14 Cardinalidades de una relación. La cardinalidad de una relación en un determinado momento está definida como el número de tuplas en la relación. Esta puede cambiar en cualquier momento Compatibilidad de dos relaciones. Sean A y B dos relaciones con esquemas { A, A } { A, A } E ,... A2 n si : E ,... A1 n = y = respectivamente. Se dice que A y B son compatibles si y sólo 1. P, P E 1! P', P' E2 tal que Dom ( P) = Dom( P' ) 2. P, P E 2! P', P' E1 tal que Dom ( P) = Dom( P' ) En la práctica, esto significa que ambas relaciones deben ser del mismo grado n y que el i-esimo atributo de cada relación se debe basar en el mismo dominio Llave Primaria / Llave Candidata La llave primaria de una relación o tabla es de hecho un caso especial de una construcción más general llamada la llave candidata. Una llave candidata es un atributo que sirve como identificador único para una determinada tabla. Una de las llaves candidatas es elegida para ser la llave primaria, las restantes pasarán a llamarse claves alternativas. De todos modos, comúnmente sólo hay una sola llave candidata. Las llaves primarias proporcionan un mecanismo de direccionamiento único a nivel de tuplas para el modelo relacional. Garantizan un único camino para llegar a una tupla individual y por lo tanto son fundamentales para las operaciones sobre el modelo relacional.

15 14 Formalmente, una llave se define como: Sea ε una relación con esquema E { A A, A,... } =. Una Llave de la 1, 2 3 relación ε es un atributo o un conjunto de atributos K { C, C,... C } i A n = que cumple : j l Unicidad: No existen dos tuplas de ε tales que para ellas, el conjunto de atributos que componen K tienen los mismos valores. Minimalidad: Ninguno de los atributos que componen K puede ser eliminado sin afectar la unicidad Llaves externas Una Llave externa se define como un atributo (o combinación de atributos) en una relación cuyos valores se requieren para emparejar a los valores de la llave primaria de otra relación. La llave externa y su correspondiente llave primaria deben ser definidas en el mismo dominio. Una llave externa no tiene que ser componente de la llave primaria de la relación que la contiene. El emparejamiento entre una llave externa y una llave primaria representa una referencia entre dos relaciones, ellas son el pegamento que mantiene la base de datos unida Reglas de Integridad. Existen básicamente 2 reglas de integridad asociadas con el modelo relacional, la Integridad de Entidad y la Integridad Referencial. Estas dos reglas son generales, se aplican a toda base de datos relacional y tienen que ver con las llaves primarias y externas respectivamente. Estas reglas se refieren a los estados

16 15 de la base de datos. Dado que no existe un acuerdo de como se deben evitar los cambios de estado en la base de datos es que muchos SGBD detienen la ejecución de la tarea en curso cada vez que se incurre en una violación a una de estas reglas. La regla de Integridad de Entidad norma sobre la imposibilidad de que un atributo que componga la llave primaria de una relación base acepte valores nulos (NULL) 2. La regla de integridad referencial para el modelo relacional formula que si una relación R2 incluye una llave externa FK que empareja a una llave primaria PK de alguna relación R1, entonces cada valor de FK en R2 debe: a) Ser igual al valor de PK en alguna tupla de R1 o b) Ser totalmente Nula, esto es, cada atributo en FK debe ser nulo. 2 Un Valor nulo en el modelo relacional es un valor especial distinto de cero o blanco (dependiendo del tipo de dato) que significa No aplicable o Desconocido. Para mayor detalle, ver la discusión sobre valores nulos en [McJones97].

17 16 Capítulo 2. Lenguajes de consulta para el Modelo Relacional Introducción. Un lenguaje de consulta es un lenguaje en el que el usuario solicita información de la base de datos, Los lenguajes de consulta se pueden clasificar en procedurales y no procedurales. Los lenguajes procedurales son aquellos en los cuales el usuario instruye al sistema para que lleve a cabo una serie de operaciones en la base de datos con el fin de calcular el resultado deseado. En los lenguajes no procedurales, en cambio, el usuario describe la información deseada sin dar un procedimiento concreto para obtener esta información. Los lenguajes puros para la consulta de datos son 3. El álgebra relacional, el cual es procedural y los cálculos relacionales tanto de tuplas como de dominios, los cuales son lenguajes no procedurales. Estos 3 lenguajes son rígidos y formales, por lo tanto la mayor parte de los sistemas comerciales de bases de datos relacionales ofrecen lenguajes de consulta mixtos, que además de ser ricos en sintaxis ofrecen adicionalmente sublenguajes de definición de datos, administración de seguridad y otras características. Se estudiarán brevemente dos de los tres lenguajes puros de consultas de base de datos, con el fin de presentar una base teórica para introducir SQL. Se excluirá el cálculo relacional de dominios dado que es una generalización del cálculo relacional de tuplas y queda fuera del alcance de este trabajo. Para un estudio más acabado del cálculo relacional de dominios se recomienda leer [Silbercshatz93].

18 Algebra relacional. El Algebra relacional es un lenguaje de consulta procedural. Consta de un conjunto de operaciones que toman como entrada una o dos relaciones y producen como resultado una nueva relación, por lo tanto, es posible anidar y combinar operadores. Hay ocho operadores en el álgebra relacional que construyen relaciones y manipulan datos, estos son: 1. Selección 2. Proyección 3. Producto 4. Unión 5. Intersección 6. Diferencia 7. JOIN 8. División Tabla Operadores del Algebra relacional Las operaciones de proyección, producto, unión, diferencia, y selección son llamadas primitivas, puesto que las otras tres se pueden definir en términos de estas. Se hace necesario en este punto incluir un modelo de datos de ejemplo en el cual trabajar para generar ejemplos de comandos y operadores. Para este efecto se incluye un modelo básico de administración de RadioTaxis. El Gráfico que se presenta a continuación representa el Modelo conceptual (Modelo Lógico) o Diagrama de Entidad-Relación:

19 18 Dueño Rut Nombre Teléfono Dirección Vigencia posee es de un Movil Patente Marca Modelo Año lo maneja maneja Chofer Rut Nombre Teléfono Dirección Fecha_licencia_desde Fecha_licencia_hasta Vigencia realiza los hace un Conceptual Data Model Vale Correlativo Hora desde Hora Hasta Metraje total Tarifa Total por genera un Viaje Hora Desde Hora Hasta Origen Destino Tarifa Metraje Project : Control de RadioTaxis Model : RadioTax Author : Mario Cisterna Version 28/12/98 Figura Esquema de Relaciones de Ejemplo Los Esquemas de relaciones que se pueden construir a partir de este modelo son los siguientes: Dueño = {rut, nombre, teléfono, dirección, vigencia} Chofer = {rut, nombre, teléfono, dirección, fecha_licencia_desde, fecha_licencia_hasta, vigencia} Vale = {correlativo, hora_desde, hora_hasta, metraje_total, tarifa_total} Móvil = {patente, rut_dueño, rut_chofer, marca, modelo, año} Viaje = {correlativo_vale, patente_movil, Hora_Desde, hora_hasta, origen, destino, tarifa, metraje} Selección. El operador de selección opta por tuplas que satisfagan cierto predicado, se utiliza la letra griega sigma minúscula (σ) para señalar la selección. El predicado

20 19 aparece como subíndice de σ. La Relación que constituye el argumento se da entre paréntesis después de la σ. Ejemplos : σ vigencia = ' S ' ( Dueño) σ patente = ' HL 8483' ( Movil ) Proyección. La operación de proyección permite quitar ciertos atributos de la relación, esta operación es unaria, copiando su relación base dada como argumento y quitando ciertas columnas, La proyección se señala con la letra griega pi mayúscula (Π). Como subíndice de Π se coloca una lista de todos los atributos que se desea aparezcan en el resultado. La relación argumento se escribe después de Π entre paréntesis. Ejemplos : Π nombre, direccion ( Dueño) Π rut, vigencia ( Chofer ) Producto. En álgebra relacional el producto de dos relaciones A y B es: A Veces B o A X B

21 20 Produce el conjunto de todas las tuplas t tales que t es el encadenamiento de una tupla a perteneciente a A y de una b que pertenece a B. se utiliza el símbolo X para representar el producto. Ejemplos: Dueño Movil Movil Chofer Unión. En álgebra relacional la unión de dos relaciones compatibles 3 A y B es: A UNION B o A B Produce el conjunto de todas las tuplas que pertenecen ya sea a A o a B o a Ambas. Al igual que en teoría de conjuntos el símbolo representa aquí la unión de dos relaciones. Ejemplo : σ σ rut, vigencia( Dueño) rut, vigencia( Chofer) Devuelve todos los Dueños y los Choferes Intersección. En álgebra relacional la intersección de dos relaciones compatibles A y B 3 Relaciones Compatibles : En el álgebra relacional la compatibilidad se aplica a las operaciones de Unión, Intersección y Diferencia. Cada operación requiere dos relaciones que deben ser compatibles, esto significa que deben ser del mismo grado, n, y el i-ésimo atributo de cada una (i= 1, 2 n) se debe basar en el mismo dominio.

22 21 A INTERSECCION B o A B Produce el conjunto de todas las tuplas pertenecientes a A y B. Al igual que en teoría de conjuntos el símbolo representa aquí la intersección entre dos relaciones. Ejemplo: σ σ rut, vigencia( Dueño) rut, vigencia( Chofer) Devuelve todos los dueños que también son choferes Diferencia En álgebra relacional la diferencia entre dos relaciones compatibles A y B A MENOS B o A B Produce el conjunto de todas las tuplas t que pertenecen a A y no pertenecen a B. Ejemplo: σ σ rut, vigencia( Dueño) rut, vigencia( Chofer) Devuelve todos los dueños que NO son choferes Join o Reunión. En álgebra relacional el JOIN entre el atributo X de la relación A con el atributo Y de la relación B produce el conjunto de todas las tuplas t tal que t es el encadenamiento de una tupla a perteneciente a A y una tupla b perteneciente a B que cumplen con el predicado A.X comp B.Y es verdadero (siendo comp un

23 22 operador relacional y los atributos A.X y B.Y pertenecientes al mismo dominio). Si el operador relacional comp es = entonces el conjunto resultante es un EQUI- JOIN. Si se quita uno de éstos (usando una proyección) entonces el resultado es un JOIN-NATURAL. Ejemplo : σ Dueño. rut = Movil. rut _ dueño ( Dueño Movil ) División En álgebra relacional el operador de división divide la relación A con grado m + n por la relación B entregando como resultado una relación con grado m. El atributo m + i de A y el atributo i de B deben estar definidos dentro del mismo dominio. Así el resultado de A DIVIDIDO POR B o A / B produce la relación C con un sólo atributo X, tal que cada valor de x de C.X aparece como un valor de A.X, y el par de valores (x, y) aparece en A para todos los valores y que aparecen en B. Ejemplo: Π Movil ) / Π ( σ ( )) patente, rut _ chofer ( rut fecha _ licencia _ hasta< 01/ 01/ 1999 Chofer Selecciona todos los autos a cuyos choferes les caduca la licencia el 01/01/1999

24 Cálculo relacional de tuplas. El cálculo relacional de tuplas describe la información deseada sin dar un procedimiento específico para obtenerla. Las consultas en el cálculo relacional de tuplas se expresan como { t P(t)}, es decir, son el conjunto de tuplas t tales que se cumple el predicado P para cada t. Siguiendo la misma notación, se utiliza t[a] para el valor de la tupla t en el atributo A. { t t Dueño t[ vigencia] = ' S '} { t t Movil t[ patente] = ' HL 8483' } Si sólo se desea obtener un atributo de la tupla, se utiliza el constructor Existe de la lógica matemática. Así, si lo que se desea es el Nombre de los dueños de taxis que estén vigentes: { t s Dueño( t[ Nombre] = s[ Nombre] s[ vigencia] = ' S ' )} "Conjunto de todas las tuplas t tales que existe una tupla s en la relación Dueño para la que los valores de t y de s son iguales en el atributo Nombre y el valor de s para el atributo vigencia = S ". La variable de tupla t se define sólo en el atributo Nombre, puesto que éste es el único atributo para el que se especifica una condición para t. Así, el resultado es una relación sobre (Nombre).

25 24 Si lo que se desea es obtener las tarifas de todos los viajes que ha efectuado todos los móviles de marca chevrolet, la consulta requiere de dos cláusulas Existe conectadas por el operador de conjunción lógica y. { t s Viaje( t[ tarifa ] = s[ tarifa ] u Movil ( s[ patente] = u[ patente] u[ marca] = " chevrolet" ))} Que se lee como el conjunto de todas las tuplas(tarifa) correspondientes a los viajes que han hecho todos los móviles de marca chevrolet. Considérese ahora la consulta obtener todos los RUT de los dueños de móviles, cuyos móviles no hayan efectuado nunca un viaje : { t s Movil ( t[ rut ] = s[ Rut ] u Viaje( s[ patente] = u[ patente]))} que ocupa la cláusula Existe para exigir que el dueño posea un móvil y la cláusula no existe para eliminar a aquellos móviles que tengan viajes realizados. La consulta que se presenta a continuación utiliza la implicación, la fórmula P implica Q significa que si P es verdad entonces Q debe ser verdad, se introduce el constructor para todo. Se desea Selecciona todos los autos a cuyos choferes les caduca la licencia el 01/01/1999. { t u Chofer ( u[ fecha _ licencia _ hasta ] < "01 / 01 / 1999" s Movil ( t[ patente] = s[ patente] s[ rut _ chofer ] = u[ rut ]))} Que es equivalente al ejemplo dado en el punto (Diferencia).

26 Definición Formal. Una expresión del cálculo relacional de tuplas es de la forma: {t P(t)} donde P es una fórmula. En una fórmula pueden aparecer varias variables de tuplas. Se dice que una variable de tupla es una variable libre a menos que este cuantificada por un o por un que entonces se dice variable ligada. Una fórmula en el cálculo relacional de tuplas se compone de átomos. Un átomo tiene una de las siguientes formas: 1. s r, donde s es una variable de tupla y r es una relación. No se permite la operación. 2. s[x] Θ u[y], donde s y u son variables de tuplas, x e y son atributos sobre los que están definidos s y u respectivamente, y Θ es un operador de comparación (<, <=, =, <>, >, >=). Se requiere que los atributos x e y tengan dominios cuyos miembros puedan compararse por medio de Θ. 3. s[x] Θ c, donde s es una variable de tupla, x es una atributo sobre el que s esta definida, Θ es un operador de comparación, y c es una constante en el dominio del atributo x. Ahora bien, Las fórmulas se construyen a partir de átomos usando las siguientes reglas: 1. Un átomo es una fórmula. 2. Si P1 es una fórmula, entonces también lo son P1 y (P1).

27 26 3. Si P1 y P2 son fórmulas, entonces también lo son P1 P2, P1 P2 y P1 P2. 4. Si P1(s) es una fórmula que contiene una variable de tupla libre s y r es una relación, entonces: s r (P1(s)) y s r (P1(s)) también son fórmulas Seguridad de expresiones. Una expresión del cálculo relacional de tuplas puede generar relaciones infinitas. Si por ejemplo se utiliza la construcción {t (t Dueño)} hay infinitas tuplas de personas que no son dueños de algún móvil, de hecho la mayoría de estas tuplas ni siquiera pertenecen a la base de datos. Para ayudar a definir las ligaduras del cálculo relacional de tuplas se introduce el concepto de dominio de fórmulas. De forma intuitiva, el dominio de la fórmula P (dom(p)) es el conjunto de todos los valores a los que P hace referencia. Esto incluye a todos los valores mencionados en P como todos los valores que aparezcan en las relaciones referenciadas por P. Se dice que una expresión {t P(t)} es segura si todos los valores que aparecen en el resultado son valores del dominio de P Potencia expresiva de los lenguajes. El cálculo relacional de tuplas restringido a expresiones seguras es equivalente en potencia expresiva al álgebra relacional. Por lo tanto, para cada expresión del álgebra relacional hay una expresión equivalente en el cálculo relacional de tuplas y viceversa. La demostración de este hecho queda fuera de los alcances de este trabajo, una prueba formal de la equivalencia entre el cálculo

28 27 relacional de tuplas y el álgebra relacional propuesta por E.F. Codd se puede encontrar en [Codd71] SQL como lenguaje de consultas relacionales Introducción. Los lenguajes formales presentados en las secciones 2.2 y 2.3 proporcionan una notación concisa para la representación de consultas. Sin embargo, los sistemas de base de datos necesitan un lenguaje de consultas más cómodo para el usuario. Aunque SQL se considere un lenguaje de consultas, contiene muchas otras capacidades que incluyen características para definir estructuras de datos, modificación de datos y la especificación de restricciones de integridad. SQL se ha establecido como el lenguaje estándar de base de datos relacionales. Hay numerosas versiones de SQL. La versión original se desarrollo en el laboratorio de investigación de San Jose, California (San Jose Research Center) de IBM, este lenguaje originalmente denominado Sequel, se implementó como parte del proyecto System R, a principios de 1970 [McJones97]. Desde entonces ha evolucionado a lo que ahora se conoce como SQL (Structured Query Language, o lenguaje estructurado de consultas). En 1986, ANSI (American National Standards Institute, Instituto Nacional Americano de Normalización) e ISO (International Standards Organization, Organización Internacional de Normalización) Publicaron una norma de SQL denominada SQL-86. En 1987 IBM publicó su propia norma de SQL denominada SAA-SQL(System Application Architecture Database Interfaz, Interfaz de base de datos para arquitecturas de aplicación de sistemas). En 1989 se publicó una

29 28 norma extendida para SQL (SQL-89) y actualmente los SGBD son compatibles al menos con esta norma. La norma actual de SQL de ANSI/ISO es la SQL-92. Se debe tener en cuenta que algunas implementaciones de SQL pueden ser compatibles sólo con SQL-89, no siéndolo con SQL-92. SQL proporciona dos tipos de lenguajes diferentes: uno para especificar el esquema relacional y el otro para expresar las consultas y actualizaciones de la base de datos Lenguaje de definición de datos (DDL Data Definition Language) Un esquema de bases de datos se representa mediante un sublenguaje especial llamado lenguaje de definición de datos. El resultado de la compilación de estas instrucciones es un conjunto de tablas, relaciones y reglas cuyas definiciones quedan almacenadas en un archivo (tabla u otro medio de almacenamiento) que contiene metadatos, esto es, datos acerca de datos. Este archivo comúnmente llamado diccionario de datos (o catalogo del sistema) es el que se consulta toda vez que se quiere leer, modificar o eliminar los datos de la base de datos.

30 Lenguaje de manipulación de datos (DML Data Manipulation Language) Un D.M.L. es un sublenguaje de consulta y manipulación de datos. Se entenderá por manipulación de datos la : Recuperación de Información. Inserción de nueva Información. Eliminación (Borrado) de información existente. Modificación de Información Almacenada Otras características de SQL. Además de los dos tipos de sublenguajes mencionados anteriormente, SQL puede ser utilizado para otras características propias que no poseen los lenguajes formales de consultas, estas son: Definición de vistas. El DDL de SQL incluye instrucciones para la definición de vistas. Autorización. El DDL de SQL incluye instrucciones para la especificación de los derechos de acceso a los objetos de la base de datos. Integridad. El DDL de SQL también incluye un conjunto de sentencias para la especificación de restricciones de integridad. Control de transacciones. SQL incluye ordenes para la especificación de los estados de una transacción, algunas implementaciones permiten

31 30 además el bloqueo explicito de objetos de datos con el fin de manejar control de concurrencia. Para los efectos de este trabajo se anexa en el apéndice A una breve descripción de los sublenguajes de Definición y manipulación de datos.

32 31 Capítulo 3. Sistemas de Gestión de Bases de datos Relacionales Introducción. Un Sistema de Gestión de Bases de datos (SGBD) consiste en una colección de datos interrelacionados y una colección de programas para acceder a esos datos. El objetivo principal de un SGBD es proporcionar un entorno que sea tanto conveniente como eficiente para las personas que lo ocupan en el almacenamiento y recuperación de la información. Los sistemas de bases de datos se diseñan para almacenar grandes volúmenes de información, la gestión de los datos implica entonces la definición de estructuras para el almacenamiento de la información y la provisión de mecanismos para la manipulación de estos. Además deben proporcionar mecanismos de seguridad de los datos que protejan al sistema frente a caídas o a intentos de acceso de personas no autorizadas. Si los datos están compartidos por varios usuarios, el sistema debe asegurar la consistencia de los datos evitando posibles resultados anómalos. Un propósito principal de un sistema de bases de datos es proporcionar a los usuarios una visión abstracta de los datos. Esto se logra mediante la definición de 3 niveles de abstracción que pueden ser observados: el nivel físico, el nivel lógico y el nivel de vistas. El nivel físico es el nivel más bajo de abstracción, es el que describe como se almacenan los datos, a su vez, el nivel lógico describe que datos se almacenan realmente en la base de datos y que relaciones existen entre estos

33 32 datos. El nivel más alto de abstracción de datos es el nivel de vistas, el cual sólo presenta una determinada porción de la base de datos, dependiendo del tipo de usuario que la consulta, así, el sistema puede proporcionar muchas vistas para la base de datos. Una base de datos sufre constantes cambios en el contenido de la información que contiene en el transcurso del tiempo. La colección de datos almacenada en un momento particular se denomina ejemplar de la base de datos. El diseño completo de la base de datos se llama esquema de la base de datos. La capacidad de modificar la definición del esquema en un nivel sin que afecte a una definición de esquema en el nivel inmediatamente superior se denomina independencia de datos. Existen 2 niveles de independencia de datos: La independencia física de datos y la independencia lógica. La Independencia física de los datos se describe como la capacidad de modificar el nivel físico de la base de datos sin tener que rescribir los programas de aplicación. En tanto la independencia lógica se define como la capacidad de modificar el esquema lógico sin causar que los programas de aplicación tengan que rescribirse. Un esquema de base de datos se especifica mediante un conjunto de definiciones expresadas en un DDL (Lenguaje de definición de datos). El resultado de esta definición es un conjunto de tablas y relaciones que se almacenan en una tabla (o un conjunto de tablas) especial que se identifica como el diccionario de datos o el catálogo de la base de datos. Una transacción de base de datos se define como colección de operaciones que se lleva a cabo como una función lógica simple en una aplicación de base de datos. Cada transacción es una unidad de atomicidad y consistencia. La

34 33 atomicidad aquí se entiende como la capacidad de que muchas instrucciones se entiendan en ciertos casos como una sola, la consistencia se refiere a la capacidad de respetar las restricciones de consistencia de datos que posee la base de datos antes y después de ejecutar una transacción. El gestor de transacciones es el responsable de asegurar que la base de datos permanezca en un estado consistente a pesar de los fallos del sistema. El gestor de transacciones también asegura que la ejecución de transacciones concurrentes ocurran sin conflictos. El gestor de almacenamiento de la base de datos es un programa (o modulo) que proporciona la interfaz entre los datos de bajo nivel almacenados en la base de datos y los programas de aplicación y las consultas enviadas al sistema. El gestor de almacenamiento es el responsable de la interacción con los datos almacenados en disco Transacciones, concurrencia y recuperación Transacciones. Una transacción es una unidad de la ejecución de un programa que accede y posiblemente actualiza varios elementos de datos. Se delimita dependiendo del lenguaje por las sentencias inicio transacción y fin transacción y se compone de todas las instrucciones que se encuentran entre estos dos delimitadores. Para asegurar la consistencia de los datos se necesita que el sistema de base de datos tengan las propiedades llamadas ACID: (Atomicity, Consistency, Isolation, Durability - Atomicidad, Consistencia, Aislamiento, Durabilidad [Silberschatz97]. La atomicidad asegura que o bien todos los efectos de la transacción se reflejan en la base de datos, o bien ninguno de ellos; un fallo no puede dejar a la base de datos en un estado en el cual una transacción se haya ejecutado

35 34 parcialmente. La consistencia asegura que si la base de datos es consistente inicialmente, la ejecución de la transacción deja la base de datos en un estado consistente. El aislamiento asegura que en la ejecución concurrente de transacciones, estas están aisladas unas de otras, de tal manera que cada una tiene la impresión de que ninguna otra transacción se ejecuta concurrentemente con ella. La durabilidad asegura que una vez que la transacción se ha comprometido, las actualizaciones hechas por la transacción no se pierden, incluso si hay un fallo en el sistema. Una transacción que termina con éxito se dice que está comprometida (commited), una transacción que haya sido comprometida llevará a la base de datos a un nuevo estado consistente que debe permanecer incluso si hay un fallo en el sistema. En cualquier momento una transacción sólo puede estar en uno de los siguientes estados. Activa (Active): el estado inicial; la transacción permanece en este estado durante su ejecución. Parcialmente comprometida (Uncommited): Después de ejecutarse la ultima transacción. Fallida (Failed): tras descubrir que no se puede continuar la ejecución normal. Abortada (Rolled Back): después de haber retrocedido la transacción y restablecido la base de datos a su estado anterior al comienzo de la transacción. Comprometida (Commited): tras completarse con éxito. Cuando varias transacciones se ejecutan concurrentemente, existe la posibilidad de que se pierda la consistencia de datos. Se hace necesario por lo tanto un sistema que controle la interacción entre las transacciones concurrentes. Puesto que una transacción por definición conserva la consistencia, una ejecución

36 35 lineal de transacciones la garantiza también. Un sistema que asegure esta propiedad se dice que asegura la secuencialidad Concurrencia. Existen varios esquemas de control de concurrencia que aseguran la secuencialidad, todos estos esquemas o bien retrasan una operación o bien abortan la transacción que ha realizado la operación. Los más conocidos son los protocolos de bloqueo, el esquema de ordenación por marcas temporales, las técnicas de validación, el esquema de granularidad múltiple y los esquemas multiversión. Un protocolo de bloqueo es un conjunto de reglas que indican el momento en que una transacción puede bloquear o desbloquear un objeto de la base de datos. El protocolo de bloqueo de dos fases permite que una transacción bloquee un objeto sólo después de que haya desbloqueado otro objeto distinto, este método asegura la secuencialidad. El esquema de ordenación por marcas temporales asegura la secuencialidad seleccionando previamente un orden en todo par de transacciones. Existen 2 formas de implementar este esquema, uno es por medio de valores timestamp (dependientes del reloj del sistema) y por medio de un contador lógico que se incrementa cada vez que asigna una nueva marca temporal. Este protocolo asegura la secuencialidad en cuanto a conflictos y la ausencia de interbloqueos, si una de las transacciones viola la norma la transacción se retrasa y se le asigna una nueva marca temporal. Por ejemplo, una operación leer se puede retrasar porque todavía no se ha escrito el valor apropiado o incluso rechazar si ha sobrescrito el valor que supuestamente se iba a leer.

37 36 Un esquema de validación es un método de control de concurrencia adecuado para transacciones de sólo lectura y en las cuales la tasa de conflictos es baja. Se basa en dividir una transacción en 3 etapas (lectura, validación y escritura) y trabajar con el esquema de marcas temporales sobre la etapa de validación. De esta manera se quita una sobrecarga en la etapa de lectura, en la cual no se necesita un esquema de control de concurrencia dado que toda lectura lleva a la base de datos al mismo estado de consistencia. Una manera distinta manejar la concurrencia es por medio de la granularidad, este concepto permite agrupar varios elementos de datos y definirlos como un todo para efectos de sincronización. Se define como una jerarquía de distintos niveles, donde el nivel superior puede representar toda la base de datos, se esquematiza como estructura de árbol donde los nodos hijos de un nodo interno representan las dependencias de datos asociadas. Se utilizan los tipos de bloqueos Compartidos y Exclusivos más un nuevo tipo de bloqueo llamado el bloqueo intencional, el cual indica que existen nodos descendientes que tienen bloqueos compartidos o exclusivos. El esquema multiversión se basa en la creación de nuevas versiones de los elementos de datos cada vez que una transacción vaya a escribir dicho elemento. Cuando se va a realizar una escritura el sistema elige una de las versiones para que se lea. El esquema de control de versiones garantiza que la versión que se va a leer se elige de forma que asegure la secuencialidad por medio de marcas temporales. En este esquema una operación de lectura tiene éxito siempre, sin embargo, una operación de escritura puede provocar el retroceso de una transacción. Un sistema está en estado de interbloqueo si existe un conjunto de transacciones tal que toda transacción del conjunto está esperando a otra transacción del conjunto. En tal situación, ninguna de las transacciones puede

38 37 progresar. Existen 2 métodos para tratar los interbloqueos y ambos provocan un retroceso de las transacciones, la diferencia radica en que uno es preventivo y otro curativo. El protocolo de prevención de interbloqueos asegura que el sistema nunca llegará a un estado de interbloqueos mientras que el método de detección y recuperación de interbloqueos permite que el sistema llegue a un estado de interbloqueos para luego tratar de recuperarse. La prevención se usa normalmente cuando la probabilidad de que el sistema llegue a un estado de interbloqueo es relativamente alta, de lo contrario lo más conveniente es usar la detección y recuperación Recuperación. Los fallos que ocurren en un computador pueden darse por diferentes motivos (fallos de disco, cortes de energía o fallos en el software). En cada uno de estos casos puede perderse información concerniente a la base de datos. Existen varios tipos de fallas, a considerar: Fallo en la transacción, que a su vez se dividen en errores lógicos y errores del sistema. Un error lógico ocurre cuando una transacción no puede continuar con su ejecución normal a causa de una condición interna como lo es un desbordamiento o un exceso de recursos. Un error del sistema ocurre cuando el sistema se encuentra en un estado no deseado como en el caso de los interbloqueos. Caída del sistema, provocado ya sea por el hardware, el sistema operativo o por el software de base de datos. Comúnmente causa la pérdida del contenido de la memoria primaria y aborta el procesamiento de una transacción.

39 38 Fallo de disco, para el cual sólo sirve la recuperación por medio de copias existentes en medios de almacenamiento secundario como cintas magnéticas. La forma más aceptada de lograr un tipo de almacenamiento lo más estable posible es replicando la información en varios medios de almacenamiento no volátil, con modos de fallos independientes. Los sistemas RAID (disposición redundante de discos independientes) garantizan que el fallo de un sólo disco no conduzca a la perdida de datos. Sin embargo los sistemas RAID, no pueden proteger al sistema de una pérdida de datos en el caso de una catástrofe geográfica, para tales efectos muchos sistemas de almacenamiento guardan copias de seguridad en cintas en otros lugares, no obstante, como las cintas no pueden ser trasladadas continuamente, los últimos cambios realizados luego del traslado de cintas no se pueden volver a recuperar en el caso de tales desastres. Los sistemas más seguros guardan copias de cada bloque de almacenamiento en otra disposición geográfica, datos que se transmiten por medios de redes de computadores al sistema de respaldo remoto. El estado de un sistema de base de datos puede no volver a ser consistente en caso de que ocurran fallos, para preservar la consistencia es necesario que cada transacción sea atómica. Garantizar la propiedad de atomicidad es responsabilidad del esquema de recuperación. Existen básicamente 2 esquemas que garantizan la atomicidad. Basados en el registro histórico 4. Todas las modificaciones se graban en el registro histórico, el cual debe estar guardado en almacenamiento estable. En el esquema de modificación diferida, durante la ejecución de una transacción, se difieren todas las operaciones de escritura hasta que la transacción se 4 Comúnmente llamado log de transacciones.

40 39 compromete parcialmente, momento en el cual se utiliza la información del registro histórico asociado con la transacción para ejecutar las escrituras diferidas. Con la técnica de modificación inmediata todas las modificaciones se aplican directamente en la base de datos. Si ocurre una caída se utiliza la información del registro histórico para llevar a la base de datos a un estado estable previo. Paginación en la sombra. Durante la vida de una transacción se mantienen 2 tablas de páginas: la tabla actual de páginas y la tabla de páginas sombra. Ambas tablas son idénticas al principio de la transacción, sin embargo, la tabla actual de páginas puede ir cambiando luego de cada operación escribir. Todas las operaciones de lectura y escritura utilizan la tabla de páginas actual, cuando una transacción se compromete parcialmente se desecha la tabla de páginas sombra y la tabla actual se convierte en la nueva tabla de páginas. Si la transacción fracasa, simplemente se desecha la tabla actual de páginas. El procesamiento de transacciones se basa en un modelo de almacenamiento en el cual la memoria principal contiene una memoria intermedia para el registro histórico, una memoria intermedia para la base de datos y una memoria intermedia para el sistema. Una implementación eficiente de un esquema de recuperación de datos requiere que sea mínimo el número de escrituras de la base de datos y que sea realizado en almacenamiento estable. Los registros del registro histórico pueden guardarse inicialmente en la memoria intermedia del registro histórico pero deben ser llevados a almacenamiento estable bajo dos situaciones: a) deben escribirse en almacenamiento estable todos los registros del registro histórico que referencien a la transacción T i antes de grabar el registro que indique que la transacción T i ha sido comprometida

Base de datos relacional

Base de datos relacional Base de datos relacional Una base de datos relacional es una base de datos que cumple con el modelo relacional, el cual es el modelo más utilizado en la actualidad para modelar problemas reales y administrar

Más detalles

BASE DE DATOS RELACIONALES

BASE DE DATOS RELACIONALES BASE DE DATOS RELACIONALES Una base de datos relacional es una base de datos que cumple con el modelo relacional, el cual es el modelo más utilizado en la actualidad para implementar bases de datos ya

Más detalles

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS AUTORÍA JOSEFA PÉREZ DOMÍNGUEZ TEMÁTICA NUEVAS TECNOLOGIAS ETAPA CICLOS FORMATIVOS DE GRADO SUPERIOR DE INFORMÁTICA Resumen En esta publicación se

Más detalles

ADMINISTRACIÓN DE BASES DE DATOS DISTRIBUIDAS

ADMINISTRACIÓN DE BASES DE DATOS DISTRIBUIDAS 5 ADMINISTRACIÓN DE BASES DE DATOS DISTRIBUIDAS Contenido: 5.1 Conceptos Generales Administración de Bases de Datos Distribuidas 5.1.1 Administración la Estructura de la Base de Datos 5.1.2 Administración

Más detalles

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual Introducción Algunas de las personas que trabajan con SGBD relacionales parecen preguntarse porqué deberían preocuparse del diseño de las bases de datos que utilizan. Después de todo, la mayoría de los

Más detalles

QUÉ ES UNA BASE DE DATOS Y CUÁLES SON LOS PRINCIPALES TIPOS? EJEMPLOS: MYSQL, SQLSERVER, ORACLE, POSTGRESQL, INFORMIX (DV00204A)

QUÉ ES UNA BASE DE DATOS Y CUÁLES SON LOS PRINCIPALES TIPOS? EJEMPLOS: MYSQL, SQLSERVER, ORACLE, POSTGRESQL, INFORMIX (DV00204A) APRENDERAPROGRAMAR.COM QUÉ ES UNA BASE DE DATOS Y CUÁLES SON LOS PRINCIPALES TIPOS? EJEMPLOS: MYSQL, SQLSERVER, ORACLE, POSTGRESQL, INFORMIX (DV00204A) Sección: Divulgación Categoría: Lenguajes y entornos

Más detalles

Figura 4.1 Clasificación de los lenguajes de bases de datos

Figura 4.1 Clasificación de los lenguajes de bases de datos 1 Colección de Tesis Digitales Universidad de las Américas Puebla Romero Martínez, Modesto Este capítulo describen los distintos lenguajes para bases de datos, la forma en que se puede escribir un lenguaje

Más detalles

Bases de Datos 3º Informática de Sistemas

Bases de Datos 3º Informática de Sistemas TEMA 2.- EL SISTEMA GESTOR DE BASES DE DATOS. Concepto y Funciones del SGBD. Lenguajes de los SGBD. Niveles de Abstracción. Arquitectura ANSI/SPARC. Componentes del SGBD. 1. Concepto y Funciones del SGBD.

Más detalles

Unidad II: Diseño de Bases de Datos y el modelo E-R. 2.1 El Proceso de Diseño

Unidad II: Diseño de Bases de Datos y el modelo E-R. 2.1 El Proceso de Diseño Unidad II: Diseño de Bases de Datos y el modelo E-R. 2.1 El Proceso de Diseño El proceso de diseño para una base de datos consta básicamente de 7 pasos, los cuáles se describen en la siguiente imagen.

Más detalles

Introducción a los sistemas de bases de datos

Introducción a los sistemas de bases de datos Introducción a los sistemas de bases de datos Bases de datos II: Tema 1 Bases de Datos II: Esther de Ves / Vicente Cerverón - Tema 1 1 Estructura del tema Qué es un sistema SGBD? Por qué utilizar un SGBD?

Más detalles

TEMA 2.- EL SISTEMA GESTOR DE BASES DE DATOS.

TEMA 2.- EL SISTEMA GESTOR DE BASES DE DATOS. TEMA 2.- EL SISTEMA GESTOR DE BASES DE DATOS. Concepto y Funciones del SGBD. Lenguajes de los SGBD. Niveles de Abstracción. Arquitectura ANSI/SPARC. Componentes del SGBD. 1. Concepto y Funciones del SGBD.

Más detalles

UNIVERSIDAD NACIONAL DE ASUNCION FACULTAD POLITÉCNICA CARRERA: LCIK MATERIA: Bases de Datos I Prof: Lic. Lilian Riveros Unidad 2: Modelo Relacional

UNIVERSIDAD NACIONAL DE ASUNCION FACULTAD POLITÉCNICA CARRERA: LCIK MATERIA: Bases de Datos I Prof: Lic. Lilian Riveros Unidad 2: Modelo Relacional El Modelo Relacional es un modelo de datos que nos permite describir la estructura de una base de datos a nivel lógico. En 1969, Edgar Frank Ted Codd (1923-2003) introduce el modelo relacional con una

Más detalles

BANCOS. Manejo de Bancos. Como crear una ficha de Banco? Como modificar los datos de una ficha de Banco? Como borrar una ficha de Banco?

BANCOS. Manejo de Bancos. Como crear una ficha de Banco? Como modificar los datos de una ficha de Banco? Como borrar una ficha de Banco? BANCOS El Sistema de Gestión Administrativa permite el manejo de los movimientos bancarios. Seleccionada la opción de Bancos, el sistema presentara las siguientes opciones. Manejo de Bancos Manejo de movimientos

Más detalles

3. Modelo relacional: Estructura e integridad.

3. Modelo relacional: Estructura e integridad. Modelo relacional: Estructura e integridad 47 3. Modelo relacional: Estructura e integridad. 3.1. Introducción. El modelo de datos relacional es posterior a los modelos jerárquicos y de red. Nació como

Más detalles

TEORIA DE BASES DE DATOS. M. Sc. Cristina Bender Lic. Diana Gázquez

TEORIA DE BASES DE DATOS. M. Sc. Cristina Bender Lic. Diana Gázquez TEORIA DE BASES DE DATOS Docentes: Dra. Claudia Deco M. Sc. Cristina Bender Lic. Diana Gázquez OBJETIVO DE LA MATERIA Capacitar al alumno en los conocimientos fundamentales, teóricos y prácticos, necesarios

Más detalles

Operaciones en el Modelo Relacional. Relacional. Relacional. Índice. Lenguajes de Consulta

Operaciones en el Modelo Relacional. Relacional. Relacional. Índice. Lenguajes de Consulta Operaciones en el Modelo Relacional Bases de Datos Ingeniería a Técnica T en Informática de Sistemas El interés de los usuarios de las bases de datos se suele centrar en realizar consultas (contestar a

Más detalles

Estrategias Didácticas B-Learning: ÁLGEBRA RELACIONAL

Estrategias Didácticas B-Learning: ÁLGEBRA RELACIONAL Estrategias Didácticas B-Learning: ÁLGEBRA RELACIONAL Mg. Guillermo Bernardo Durán González Guillermo.duran.g@gmail.com Modelo de diseño instruccional, basado en la modalidad semi-presencial b-learning,

Más detalles

BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN

BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN 3.3 Aplicaciones Definición de Aplicación (Application). Programa informático que permite a un usuario utilizar una computadora con un fin específico. Las

Más detalles

IAP 1003 - ENTORNOS INFORMATIZADOS CON SISTEMAS DE BASES DE DATOS

IAP 1003 - ENTORNOS INFORMATIZADOS CON SISTEMAS DE BASES DE DATOS IAP 1003 - ENTORNOS INFORMATIZADOS CON SISTEMAS DE BASES DE DATOS Introducción 1. El propósito de esta Declaración es prestar apoyo al auditor a la implantación de la NIA 400, "Evaluación del Riesgo y

Más detalles

TALLER No. 1 Capitulo 1: Conceptos Básicos de Bases de datos

TALLER No. 1 Capitulo 1: Conceptos Básicos de Bases de datos TALLER No. 1 Capitulo 1: Conceptos Básicos de Bases de datos 1. La base de datos se puede considerar como una unificación de varios archivos de datos independientes, cuyo propósito básico es evitar la

Más detalles

SISTEMA DE GESTIÓN DE BASE DE DATOS (Database Management System (DBMS))

SISTEMA DE GESTIÓN DE BASE DE DATOS (Database Management System (DBMS)) SISTEMA DE GESTIÓN DE BASE DE DATOS (Database Management System (DBMS)) Los sistemas de gestión de bases de datos son un tipo de software muy específico, dedicado a servir de interfaz entre la base de

Más detalles

GESTIÓN DE LA DOCUMENTACIÓN

GESTIÓN DE LA DOCUMENTACIÓN Página: 1 de 8 Elaborado por: Revidado por: Aprobado por: Comité de calidad Responsable de calidad Director Misión: Controlar los documentos y registros del Sistema de Gestión de Calidad para garantizar

Más detalles

Capítulo IV. INTERBLOQUEO E INANICIÓN

Capítulo IV. INTERBLOQUEO E INANICIÓN Capítulo IV. INTERBLOQUEO E INANICIÓN Interbloqueo: [MAEKAMA] Se define como el bloqueo permanente de un conjunto de procesos que compiten por los recursos del sistema o bien se comunican unos con otros.

Más detalles

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS GUIA PROGRAMACIÓN ORIENTADA A OBJETOS 1. Por qué la P.O.O? R= A medida que se van desarrollando los lenguajes, se va desarrollando también la posibilidad de resolver problemas más complejos. En la evolución

Más detalles

Control de Concurrencia

Control de Concurrencia Esquema de la clase Conceptos Preliminares Aspectos positivos y negativos de la ejecución concurrente Planificaciones y Secuencialidad Recuperabilidad Esquemas de Conceptos Preliminares Transacción Propiedades

Más detalles

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas. El primer paso en el diseño de una base de datos es la producción del esquema conceptual. Normalmente, se construyen varios esquemas conceptuales, cada uno para representar las distintas visiones que los

Más detalles

Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa.

Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa. Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa. La creación de una base de datos debe ser realizada cuidadosamente procurando cumplir

Más detalles

1.1.- Objetivos de los sistemas de bases de datos 1.2.- Administración de los datos y administración de bases de datos 1.3.- Niveles de Arquitectura

1.1.- Objetivos de los sistemas de bases de datos 1.2.- Administración de los datos y administración de bases de datos 1.3.- Niveles de Arquitectura 1. Conceptos Generales 2. Modelo Entidad / Relación 3. Modelo Relacional 4. Integridad de datos relacional 5. Diseño de bases de datos relacionales 6. Lenguaje de consulta estructurado (SQL) 1.1.- Objetivos

Más detalles

Resumen. El rol del lenguaje SQL en los SGBDR y en la Relacional. cjimenez@inf.udec.cl, tamrstro@inf.udec.cl

Resumen. El rol del lenguaje SQL en los SGBDR y en la Relacional. cjimenez@inf.udec.cl, tamrstro@inf.udec.cl El rol del lenguaje SQL en los SGBDR y en la Relacional. cjimenez@inf.udec.cl, tamrstro@inf.udec.cl Resumen demandas de almacenamiento y procesamiento de datos. Es el conjunto de estas dos capacidades

Más detalles

UNIDAD DIDACTICA 1: SISTEMAS GESTORES DE BASES DE DATOS

UNIDAD DIDACTICA 1: SISTEMAS GESTORES DE BASES DE DATOS UNIDAD DIDACTICA 1: SISTEMAS GESTORES DE BASES DE DATOS Índice de contenido: 1. Concepto de base de datos (BD)... 3 2. Los sistemas gestores de bases de datos (SGBD)... 3 3. Arquitectura de los sistemas

Más detalles

Guía de Laboratorio Base de Datos I.

Guía de Laboratorio Base de Datos I. Guía de Laboratorio Base de Datos I. UNIVERSIDAD DON BOSCO FACULTAD DE INGENIERIA 1- Gestión del SQL Server Management Studio y creación de bases de datos. Objetivos: Identificar el entorno de trabajo

Más detalles

MODELOS DE RECUPERACION

MODELOS DE RECUPERACION RECUPERACIÓN Y ORGANIZACIÓN DE LA INFORMACIÓN INGENIERÍA INFORMÁTICA RECUPERACIÓN Y ACCESO A LA INFORMACIÓN MODELOS DE RECUPERACION AUTOR: Rubén García Broncano NIA 100065530 grupo 81 1 INDICE 1- INTRODUCCIÓN

Más detalles

La ventana de Microsoft Excel

La ventana de Microsoft Excel Actividad N 1 Conceptos básicos de Planilla de Cálculo La ventana del Microsoft Excel y sus partes. Movimiento del cursor. Tipos de datos. Metodología de trabajo con planillas. La ventana de Microsoft

Más detalles

MANUAL DE USUARIO SECTOR PRIVADO (RESUMEN)

MANUAL DE USUARIO SECTOR PRIVADO (RESUMEN) MANUAL USUARIO - SIDREP DESARROLLO DE UN SISTEMA DE DECLARACIÓN Y SEGUIMIENTO DE RESIDUOS PELIGROSOS MANUAL DE USUARIO SECTOR PRIVADO (RESUMEN) PREPARADO PARA COMISIÓN NACIONAL DEL MEDIO AMBIENTE, CONAMA

Más detalles

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 5. Sistemas de Bases de Datos. frente a Sistemas de Ficheros

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 5. Sistemas de Bases de Datos. frente a Sistemas de Ficheros FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA Tema 5. Sistemas de Bases de Datos frente a Sistemas de Ficheros 1.- Sistemas de Ficheros. 2.- Problemas de los Sistemas de Ficheros. 3.- Sistemas

Más detalles

Modelos y Bases de Datos

Modelos y Bases de Datos Modelos y Bases de Datos MODELOS Y BASES DE DATOS 1 Sesión No. 10 Nombre: Álgebra Relacional Contextualización En qué consiste el álgebra relacional? Se ha planteado hasta el momento cada uno de los procesos

Más detalles

Introducción a las bases de datos

Introducción a las bases de datos Introducción a las bases de datos Juan Ignacio Rodríguez de León Abstract Aplicaciones de los sistemas de bases de datos. Sistemas de bases de datos frente a sistemas de archivos. Visión de los datos.

Más detalles

4. Modelo Relacional: Manipulación de los datos.

4. Modelo Relacional: Manipulación de los datos. Modelo Relacional: Manipulación de los datos. 54 4. Modelo Relacional: Manipulación de los datos. 4.1. Lenguaje de procedimiento: álgebra relacional Los lenguajes de procedimientos para consultar bases

Más detalles

Algebra Relacional Jos e Ram on Param a Gab ıa

Algebra Relacional Jos e Ram on Param a Gab ıa Álgebra Relacional Ramón Paramá Gabía Capítulo 4 Algebra relacional Ya hemos visto la estructura y las restricciones del modelo relacional, ahora pasamos a abordar la parte del modelo relacional que nos

Más detalles

Funciones del Administrador de Base de Datos. Ing. Anaylen López, MSc Base de Datos II

Funciones del Administrador de Base de Datos. Ing. Anaylen López, MSc Base de Datos II Funciones del Administrador de Base de Datos Ing. Anaylen López, MSc Base de Datos II VENTAJAS EN EL USO DE BASE DE DATOS Entre las principales ventajas o beneficios que ofrece el uso de la base de datos

Más detalles

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 9. Reglas de Integridad

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 9. Reglas de Integridad FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA Tema 9. Reglas de Integridad 1.- Introducción. 2.- Claves Primarias. 3.- Regla de Integridad de Entidades. 4.- Claves Ajenas. 5.- Regla de Integridad

Más detalles

Región de Murcia Consejería de Educación, Ciencia e Investigación. Manual Usuario FCT

Región de Murcia Consejería de Educación, Ciencia e Investigación. Manual Usuario FCT . Manual Usuario FCT Murcia, 9 de Julio de 2007 Manual de Usuario FCT v1.0 pág. 2 de 73 ÍNDICE Manual Usuario FCT...1 1. Tipos de usuarios... 4 2. Modelo de navegación... 5 3. Servicios... 6 3.1. Convenios...

Más detalles

OPTIMIZACIÓN DE CONSULTAS EN SQL. Análisis de Consultas y Transacciones Ajuste de Indices Ajuste de Consultas

OPTIMIZACIÓN DE CONSULTAS EN SQL. Análisis de Consultas y Transacciones Ajuste de Indices Ajuste de Consultas OPTIMIZACIÓN DE CONSULTAS EN SQL Análisis de Consultas y Transacciones Ajuste de Indices Ajuste de Consultas Análisis de Consultas y Transacciones Para elaborar el diseño físico de la base de datos debemos

Más detalles

Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa.

Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa. BASES DE DATOS Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa. La creación de una base de datos debe ser realizada cuidadosamente procurando

Más detalles

SISTEMAS OPERATIVOS AVANZADOS

SISTEMAS OPERATIVOS AVANZADOS SISTEMAS OPERATIVOS AVANZADOS TEMA 3 CLAVE: MIS 204 PROFESOR: M.C. ALEJA DRO GUTIÉRREZ DÍAZ 3. PROCESOS CONCURRENTES 3.1 Conceptos de programación concurrente 3.2 El problema de la sección crítica 3.3

Más detalles

Software para Seguimiento de Clientes. Descripción del Producto

Software para Seguimiento de Clientes. Descripción del Producto Software para Seguimiento de Clientes Descripción del Producto Descripción del Sistema Es un completo sistema que permite tener un mejor control y manejo sobre clientes antiguos y nuevos, ya que permite

Más detalles

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 8. Elementos Básicos

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 8. Elementos Básicos FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA Tema 8. Elementos Básicos 1.- Ejemplo Introductorio. 2.- Dominios. 3.- Relaciones. 4.- Bases de Datos Relacionales. (Capítulo 11 del Date) EJEMPLO

Más detalles

ESPAÑOL BLACK-VS. Guía de uso e instalación

ESPAÑOL BLACK-VS. Guía de uso e instalación ESPAÑOL BLACK-VS Guía de uso e instalación ÍNDICE 1 INTRODUCCIÓN... 2 2 INSTALACIÓN Y PUESTA EN MARCHA... 2 3 REGISTRO DE LA APLICACIÓN... 4 4 CONFIGURACIÓN DE LAS CONEXIONES... 6 5 CONEXIÓN... 9 5.1

Más detalles

Centro de Capacitación en Informática

Centro de Capacitación en Informática Fórmulas y Funciones Las fórmulas constituyen el núcleo de cualquier hoja de cálculo, y por tanto de Excel. Mediante fórmulas, se llevan a cabo todos los cálculos que se necesitan en una hoja de cálculo.

Más detalles

Diagramas del UML. A continuación se describirán los diagramas más comunes del UML y los conceptos que representan: Diagrama de Clases

Diagramas del UML. A continuación se describirán los diagramas más comunes del UML y los conceptos que representan: Diagrama de Clases El UML está compuesto por diversos elementos gráficos que se combinan para conformar diagramas. Debido a que el UML es un lenguaje, cuenta con reglas para combinar tales elementos. La finalidad de los

Más detalles

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos.

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos. Apéndice C. Glosario A Actividades de coordinación entre grupos. Son dinámicas y canales de comunicación cuyo objetivo es facilitar el trabajo entre los distintos equipos del proyecto. Actividades integradas

Más detalles

Conceptos básicos Oracle 10g Introducción - Administración de Oracle - Orasite.com

Conceptos básicos Oracle 10g Introducción - Administración de Oracle - Orasite.com 1. Objetivos El objetivo de este artículo es describir brevemente los siguientes conceptos básicos a modo de familiarización con las bases de datos ORACLE. - Describir brevemente en qué consiste el modelo

Más detalles

Capitulo V Administración de memoria

Capitulo V Administración de memoria Capitulo V Administración de memoria Introducción. Una de las tareas más importantes y complejas de un sistema operativo es la gestión de memoria. La gestión de memoria implica tratar la memoria principal

Más detalles

Servicio de estadísticas de Alojamiento Fecha de revisión: 19/09/2005

Servicio de estadísticas de Alojamiento Fecha de revisión: 19/09/2005 Servicio de estadísticas de Alojamiento Fecha de revisión: 19/09/2005 1. Acerca de este documento Este documento describe el servicio de estadísticas del que actualmente disfrutan algunas de las páginas

Más detalles

Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL

Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL Índice 1 Introducción... 5 1.1 Perfil de la aplicación... 5 1.2 Requisitos técnicos... 5 2 Manual de usuario... 7 2.1 Instalación del certificado...

Más detalles

TEMA 3 PROFESOR: M.C. ALEJANDRO GUTIÉRREZ DÍAZ 2 3. PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS

TEMA 3 PROFESOR: M.C. ALEJANDRO GUTIÉRREZ DÍAZ 2 3. PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS 1 1 BASES DE DATOS DISTRIBUIDAS TEMA 3 PROFESOR: M.C. ALEJANDRO GUTIÉRREZ DÍAZ 2 3. PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS 3.1 Metodología del procesamiento de consultas distribuidas 3.2 Estrategias de

Más detalles

Tema 1. Conceptos básicos

Tema 1. Conceptos básicos Conceptos básicos Sistema de Gestión de Bases de Datos, SGBD (DBMS, Database Management System): software diseñado específicamente para el mantenimiento y la explotación de grandes conjuntos de datos 1

Más detalles

LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F)

LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F) APRENDERAPROGRAMAR.COM LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F) Sección: Cursos Categoría: Curso básico de programación en lenguaje C desde

Más detalles

PROPUESTAS COMERCIALES

PROPUESTAS COMERCIALES PROPUESTAS COMERCIALES 1. Alcance... 2 2. Entidades básicas... 2 3. Circuito... 2 3.1. Mantenimiento de rutas... 2 3.2. Añadir ofertas... 5 3.2.1. Alta desde CRM... 5 3.2.2. Alta desde el módulo de Propuestas

Más detalles

Maestría en Bioinformática. Bases de Datos y Sistemas de Información. Diseño Lógico. Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.

Maestría en Bioinformática. Bases de Datos y Sistemas de Información. Diseño Lógico. Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com. Maestría en Bioinformática Bases de Datos y Sistemas de Información Diseño Lógico Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.uy Agenda Conceptos Herramientas Diseño lógico Modelo Relacional Las

Más detalles

Unidad I: Sistemas Gestores de Bases de Datos. 1.1 Objetivo de las Bases de Datos

Unidad I: Sistemas Gestores de Bases de Datos. 1.1 Objetivo de las Bases de Datos Unidad I: Sistemas Gestores de Bases de Datos. 1.1 Objetivo de las Bases de Datos Redundancia e inconsistencia de datos: Puesto que los archivos que mantienen almacenada la información son creados por

Más detalles

Base de Datos. Profesor: José Miguel Rubio L. P. UNIVERSIDAD CATÓLICA DE VALPARAÍSO FACULTAD DE INGENIERÍA ESCUELA DE INFORMÁTICA

Base de Datos. Profesor: José Miguel Rubio L. P. UNIVERSIDAD CATÓLICA DE VALPARAÍSO FACULTAD DE INGENIERÍA ESCUELA DE INFORMÁTICA P. UNIVERSIDAD CATÓLICA DE VALPARAÍSO FACULTAD DE INGENIERÍA ESCUELA DE INFORMÁTICA Base de Datos Usuario A Programa de Aplicación Bodega Usuario B Usuario N Insumo Proveedor Profesor: José Miguel Rubio

Más detalles

Base de datos en la Enseñanza. Open Office

Base de datos en la Enseñanza. Open Office 1 Ministerio de Educación Base de datos en la Enseñanza. Open Office Módulo 1: Introducción Instituto de Tecnologías Educativas 2011 Introducción Pero qué es una base de datos? Simplificando mucho, podemos

Más detalles

Introducción a Visual Studio.Net

Introducción a Visual Studio.Net Introducción a Visual Studio.Net Visual Studio es un conjunto completo de herramientas de desarrollo para la generación de aplicaciones Web ASP.NET, Servicios Web XML, aplicaciones de escritorio y aplicaciones

Más detalles

Instrucción IrA (GoTo). Saltos no naturales en el flujo normal de un programa. Pseudocódigo y diagramas de flujo. (CU00182A)

Instrucción IrA (GoTo). Saltos no naturales en el flujo normal de un programa. Pseudocódigo y diagramas de flujo. (CU00182A) aprenderaprogramar.com Instrucción IrA (GoTo). Saltos no naturales en el flujo normal de un programa. Pseudocódigo y diagramas de flujo. (CU00182A) Sección: Cursos Categoría: Curso Bases de la programación

Más detalles

Unidad II: Administración de Procesos y del procesador

Unidad II: Administración de Procesos y del procesador Unidad II: Administración de Procesos y del procesador 2.1 Concepto de proceso Un proceso no es más que un programa en ejecución, e incluye los valores actuales del contador de programa, los registros

Más detalles

Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech

Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech Resumen Todo documento XBRL contiene cierta información semántica que se representa

Más detalles

Modelo Relacional: Conceptos

Modelo Relacional: Conceptos Relacional: Conceptos M. -Tastets Universidad de Concepción,Chile www.inf.udec.cl\ andrea andrea@udec.cl II Semestre - 2007 de la Unidad Introducir los conceptos básicos asociados con los elementos estructurales

Más detalles

Las bases de datos pueden dividirse en dos grupos, considerando su función primordial, a saber:

Las bases de datos pueden dividirse en dos grupos, considerando su función primordial, a saber: Base de datos De Wikipedia, la enciclopedia libre. Una base de datos es un conjunto de datos que pertenecen al mismo contexto almacenados sistemáticamente para su uso posterior. En este sentido, una biblioteca

Más detalles

Construcción de Escenarios

Construcción de Escenarios Construcción de Escenarios Consiste en observar los diferentes resultados de un modelo, cuando se introducen diferentes valores en las variables de entrada. Por ejemplo: Ventas, crecimiento de ventas,

Más detalles

Introducción al álgebra relacional. Con ejemplos en SQL

Introducción al álgebra relacional. Con ejemplos en SQL OpenStax-CNX module: m18351 1 Introducción al álgebra relacional. Con ejemplos en SQL Miguel-Angel Sicilia This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution License

Más detalles

Acceso a la aplicación de solicitud de subvenciones (Planes de Formación 2014)

Acceso a la aplicación de solicitud de subvenciones (Planes de Formación 2014) Acceso a la aplicación de solicitud de subvenciones (Planes de Formación 2014) Pantalla general de acceso Desde ella se accede a las diferentes convocatorias para poder completar y enviar las solicitudes.

Más detalles

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse. TABLA DE DECISION La tabla de decisión es una herramienta que sintetiza procesos en los cuales se dan un conjunto de condiciones y un conjunto de acciones a tomar según el valor que toman las condiciones.

Más detalles

INSTALACIÓN DE ORACLE 8i (8.1.7) SOBRE NT

INSTALACIÓN DE ORACLE 8i (8.1.7) SOBRE NT INSTALACIÓN DE ORACLE 8i (8.1.7) SOBRE NT Versión 1. Mayo de 2001 Luis Vinuesa Martínez. Departamento de Informática Universidad de Oviedo vinuesa@correo.uniovi.es www.di.uniovi.es/~vinuesa ÍNDICE. Introducción...

Más detalles

Guías _SGO. Gestione administradores, usuarios y grupos de su empresa. Sistema de Gestión Online

Guías _SGO. Gestione administradores, usuarios y grupos de su empresa. Sistema de Gestión Online Guías _SGO Gestione administradores, usuarios y grupos de su empresa Sistema de Gestión Online Índice General 1. Parámetros Generales... 4 1.1 Qué es?... 4 1.2 Consumo por Cuentas... 6 1.3 Días Feriados...

Más detalles

TEMA 5 PROFESOR: M.C. ALEJANDRO GUTIÉRREZ DÍAZ 2 5. CONFIABILIDAD

TEMA 5 PROFESOR: M.C. ALEJANDRO GUTIÉRREZ DÍAZ 2 5. CONFIABILIDAD 1 1 BASES DE DATOS DISTRIBUIDAS TEMA 5 PROFESOR: M.C. ALEJANDRO GUTIÉRREZ DÍAZ 2 5. CONFIABILIDAD 5.1 Conceptos básicos de confiabilidad 5.2 Protocolos Redo - Undo 5.3 Puntos de verificación - checkpoints

Más detalles

Diagramas de Clases ~ 1 ~ Ing. Fabián Silva Alvarado

Diagramas de Clases ~ 1 ~ Ing. Fabián Silva Alvarado Diagramas de Clases ~ 1 ~ Ing. Fabián Silva Alvarado DIAGRAMAS DE CLASES RELACIONES ENTRE CLASES Una vez que tengamos todas nuestras clases, será necesario que estas se asocien, con el fin de mostrar la

Más detalles

BASES DE DATOS TEMA 1

BASES DE DATOS TEMA 1 BASES DE DATOS TEMA 1 Contenido 1. Qué es una base de datos? 2. Un ejemplo 3. Personas que interactúan con la base de datos 4. Inconvenientes de los sistemas de ficheros 5. Modelos de datos 6. Lenguajes

Más detalles

Tema 8: Gestión de la Configuración

Tema 8: Gestión de la Configuración Proyectos Informáticos Tema 8: Gestión de la Configuración Contenidos Gestión de la configuración: identificación, versionado, control de los elementos de configuración y líneas base de un proyecto. Gestión

Más detalles

Apuntes de la Unidad 1 de Base de Datos

Apuntes de la Unidad 1 de Base de Datos DEFINICIÓN DE BASE DE DATOS.- Base de Datos es un conjunto de datos relacionados entre sðy que tienen un significado implðcito. En un sistema de información se cuenta con dos enfoques principales para

Más detalles

Para obtener información más detallada, conviene dirigirse a www.facturae.es.

Para obtener información más detallada, conviene dirigirse a www.facturae.es. 1. Introducción Con el fin de facilitar la tarea a los proveedores y mejorar la gestión interna de las facturas que recibe la Diputación, se ha habilitado un nuevo módulo de Registro de facturas, compatible

Más detalles

Asignatura: Administración de Bases de Datos. Pedro P. Alarcón Cavero

Asignatura: Administración de Bases de Datos. Pedro P. Alarcón Cavero Ingeniería Técnica en Informática Escuela Universitaria de Informática Universidad Politécnica de Madrid Asignatura: Administración de Bases de Datos Tema 5: Proceso de Transacciones Pedro P. Alarcón Cavero

Más detalles

ELEMENTO I INTRODUCCION A LOS SISTEMAS DE BASES DE DATOS

ELEMENTO I INTRODUCCION A LOS SISTEMAS DE BASES DE DATOS Base de Datos ELEMENTO I INTRODUCCION A LOS SISTEMAS DE BASES DE DATOS Una base de datos es un conjunto de elementos de datos que se describe a sí mismo, con relaciones entre esos elementos, que presenta

Más detalles

Caso práctico de Cuadro de Mando con Tablas Dinámicas

Caso práctico de Cuadro de Mando con Tablas Dinámicas 1 Caso práctico de Cuadro de Mando con Tablas Dinámicas Luis Muñiz Socio Director de SisConGes & Estrategia Introducción Hay una frase célebre que nos permite decir que: Lo que no se mide no se puede controlar

Más detalles

Manual WEBIECV. Público. Fecha de Aprobación 02-06-2014 Versión 2.0 Código DE-M-03

Manual WEBIECV. Público. Fecha de Aprobación 02-06-2014 Versión 2.0 Código DE-M-03 Manual WEBIECV Público Fecha de Aprobación 02-06-2014 Versión 2.0 Código DE-M-03 HISTORIAL DE REVISIONES Versión Nº Fecha de Aprobación Descripción del Cambio 1.0 26/08/2013 Creación del Documento 2.0

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS

PROGRAMACIÓN ORIENTADA A OBJETOS PROGRAMACIÓN ORIENTADA A OBJETOS Clase 1. Introducción Profesor: Diego Sánchez Gómez Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases

Más detalles

Asignación de Procesadores

Asignación de Procesadores INTEGRANTES: Asignación de Procesadores Un sistema distribuido consta de varios procesadores. Estos se pueden organizar como colección de estaciones de trabajo personales, una pila pública de procesadores

Más detalles

Planificación, Administración n de Bases de Datos. Bases de Datos. Ciclo de Vida de los Sistemas de Información. Crisis del Software.

Planificación, Administración n de Bases de Datos. Bases de Datos. Ciclo de Vida de los Sistemas de Información. Crisis del Software. Planificación, n, Diseño o y Administración n de Crisis del Software Proyectos software de gran envergadura que se retrasaban, consumían todo el presupuesto disponible o generaban productos que eran poco

Más detalles

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL OBJETIVO Mejorar el nivel de comprensión y el manejo de las destrezas del estudiante para utilizar formulas en Microsoft Excel 2010. 1) DEFINICIÓN Una fórmula de Excel es un código especial que introducimos

Más detalles

Acronis License Server. Guía del usuario

Acronis License Server. Guía del usuario Acronis License Server Guía del usuario TABLA DE CONTENIDO 1. INTRODUCCIÓN... 3 1.1 Generalidades... 3 1.2 Política de licencias... 3 2. SISTEMAS OPERATIVOS COMPATIBLES... 4 3. INSTALACIÓN DE ACRONIS LICENSE

Más detalles

GESTION DE REQUISICIONES VIA WEB MANUAL DEL USUARIO

GESTION DE REQUISICIONES VIA WEB MANUAL DEL USUARIO GESTION DE REQUISICIONES VIA WEB MANUAL DEL USUARIO UNIDAD DE SISTEMAS DE INFORMACION Y COMPUTO DEPARTAMENTO DE ADQUISICIONES INDICE Tema Página Objetivo 2 Portal del Departamento de Adquisiciones 3 Sección

Más detalles

EDICIÓN Y FORMATO (II)

EDICIÓN Y FORMATO (II) EDICIÓN Y FORMATO (II) 1. INTRODUCCIÓN Writer dispone de una serie de barras de herramientas predeterminadas, en las que se encuentran botones de acceso directo a comandos específicos que se activan con

Más detalles

L3 ORGANIZACIÓN DE ARCHIVOS ELECTRÓNICOS

L3 ORGANIZACIÓN DE ARCHIVOS ELECTRÓNICOS L3 ORGANIZACIÓN DE ARCHIVOS ELECTRÓNICOS El término Gestión documental o Gestión de documentos integrada puede tener distintos significados en el contexto empresarial. En la mayor parte de los casos, se

Más detalles

Proyectos de Innovación Docente

Proyectos de Innovación Docente Proyectos de Innovación Docente Manual de Usuario Vicerrectorado de Docencia y Profesorado Contenido INTRODUCCIÓN... 3 DATOS PERSONALES... 6 Modificar email... 6 Modificar contraseña... 7 GESTIÓN PROYECTOS...

Más detalles

Tutorial de UML. Introducción: Objetivos: Audiencia: Contenidos:

Tutorial de UML. Introducción: Objetivos: Audiencia: Contenidos: Tutorial de UML Introducción: El Lenguaje de Modelamiento Unificado (UML - Unified Modeling Language) es un lenguaje gráfico para visualizar, especificar y documentar cada una de las partes que comprende

Más detalles

COPPEL MANUAL TÉCNICO MCC DE SISTEMAS PROGRAMACIÓN DESCRIPCIÓN DEL PROCESO DE ARQUITECTURA DE SOFTWARE

COPPEL MANUAL TÉCNICO MCC DE SISTEMAS PROGRAMACIÓN DESCRIPCIÓN DEL PROCESO DE ARQUITECTURA DE SOFTWARE COPPEL MANUAL TÉCNICO MCC DE SISTEMAS PROGRAMACIÓN DESCRIPCIÓN DEL PROCESO DE ARQUITECTURA DE SOFTWARE Creado en May/14 Objetivo: Contar con una guía de las actividades que se deben realizar en esta fase,

Más detalles

Principios de Bases de Datos Relacionales, Normalización. Unidad 4

Principios de Bases de Datos Relacionales, Normalización. Unidad 4 Principios de Bases de Datos Relacionales, Normalización Unidad 4 Introducción Dependencia Funcional La dependencia funcional es una restricción entre dos conjuntos de atributos en una relación de una

Más detalles

Acuerdo de aprobación de la Normativa Básica de Correo Electrónico de la Universidad Miguel Hernández.

Acuerdo de aprobación de la Normativa Básica de Correo Electrónico de la Universidad Miguel Hernández. Acuerdo de aprobación de la Normativa Básica de Correo Electrónico de la Universidad Miguel Hernández. Con el fin de regular el uso de los recursos informáticos y telemáticos del servicio de correo en

Más detalles

Es una colección de datos operativos almacenados y utilizados por los programadores de aplicaciones y por usuarios finales de muy diversa índole!

Es una colección de datos operativos almacenados y utilizados por los programadores de aplicaciones y por usuarios finales de muy diversa índole! Objetivos de los sistemas de bases de datos" Vistas de datos" Modelos de datos " Lenguajes de definición de datos (DDL) " Lenguajes de manipulación de datos (DML)" Gestión de transacciones" Gestión de

Más detalles

REGLAMENTO METROLÓGICO DE SISTEMAS DE ASIGNACIÓN Y REGISTRO DEL CONSUMO DE TELEFONIA FIJA Y MOVIL.

REGLAMENTO METROLÓGICO DE SISTEMAS DE ASIGNACIÓN Y REGISTRO DEL CONSUMO DE TELEFONIA FIJA Y MOVIL. 1 REGLAMENTO METROLÓGICO DE SISTEMAS DE ASIGNACIÓN Y REGISTRO DEL CONSUMO DE TELEFONIA FIJA Y MOVIL. SUMARIO 1.- CAMPO DE APLICACIÓN. 2.- REQUISITOS DE LOS SISTEMAS DE MEDICIÓN Y REGISTRO DEL SERVICIO

Más detalles