CONTENCIÓN DE CONSULTAS CON VALORES NULOS USANDO EL MÉTODO CQC

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

Download "CONTENCIÓN DE CONSULTAS CON VALORES NULOS USANDO EL MÉTODO CQC"

Transcripción

1 CONTENCIÓN DE CONSULTAS CON VALORES NULOS USANDO EL MÉTODO CQC Guillem Rull 1, Carles Farré 1 y Toni Urpí 1 1: Departamento de Lenguajes y Sistemas Informáticos Universitat Politècnica de Catalunya Barcelona, España {grull, farre, urpi}@lsi.upc.edu Palabras clave: Validación de esquemas de bases de datos, Contención de consultas, Tratamiento de restricciones, Valores nulos Resumen. Este artículo presenta una extensión de nuestro método CQC destinada a comprobar la contención de dos consultas en el contexto de una BD relacional que puede contener valores nulos en los atributos de sus tuplas. Teniendo en cuenta que todos los SGBDs admiten el uso de valores nulos y que las bases de datos reales contienen valores nulos, comprobar la contención de consultas en este contexto es una cuestión muy importante de cara a la aplicación practica. Al igual que el método original, esta extensión permite tratar con restricciones de integridad, negaciones en predicados EDB e IDB, y predicados built-in. Además de para comprobar la contención de consultas, se puede aplicar el método y esta extensión a la validación de esquemas de BD relacionales con valores nulos. 1. INTRODUCCIÓN La contención de consultas es uno de los problemas más importantes en el campo de las bases de datos. Se utiliza como técnica de base en muchos contextos: optimización de consultas [2, 11], reescritura de consultas usando vistas [6], detectar la independencia de consultas respecto a actualizaciones en la base de datos [9], comprobación de restricciones [5], etc. A grandes rasgos, se dice que una consulta está contenida en otra cuando el conjunto de tuplas que se obtiene como respuesta de la primera es un subconjunto del conjunto de tuplas que se obtiene como respuesta de la segunda, para todos los estados de la base de datos. El problema se ha estudiado para la clase de las consultas conjuntivas [2], conjuntivas con comparaciones de orden [9], unión de consultas conjuntivas [11], consultas con átomos extensionales negados safe [9], y también considerando restricciones de integridad [8]. Para trasladar estos resultados a la practica, sobre BD reales, es imprescindible tratar dos cuestiones: la semántica de bolsas y los valores nulos. La semántica de bolsas es necesaria dado que SQL permite que aparezcan duplicados en las respuestas de las consultas (a menos que se utilice DISTINCT). La contención de consultas para consultas conjuntivas con semántica de bolsas se ha tratado en [7, 1].

2 El caso de la contención de consultas con posible presencia de valores nulos en los atributos de las tuplas, según nuestro conocimiento, no ha sido tratado por nadie hasta el momento. Éste será el objetivo de este artículo. Teniendo en cuenta que todos los SGBDs admiten el uso de valores nulos y que las bases de datos reales contienen valores nulos, es obvio que ser capaces de comprobar la contención de consultas en este contexto es una cuestión muy importante de cara a la aplicación practica. Además, hay que tener también en cuenta que una misma relación de contención entre dos consultas puede tener lugar o no dependiendo de si se consideran o no valores nulos. Como ejemplo motivador, considérense las dos consultas siguientes: Q1: SELECT nombre FROM Empleados Q2: SELECT e.nombre FROM Empleados e, Categorias c WHERE e.nombrecat = c.nombre AND c.salario > Estas consultas están definidas sobre el siguiente esquema de base de datos: CREATE TABLE Categorias ( nombre char(10) PRIMARY KEY, salario real NOT NULL CHECK (salario > 50000) ) CREATE TABLE Empleados( nss int PRIMARY KEY, nombre char(30) NOT NULL, nombrecat char(10) references Categorias(nombre) ) En este ejemplo, si no se consideran valores nulos, ambas consultas son equivalentes. La consulta Q2 devuelve todos los empleados con un salario superior a que, debido a la restricción CHECK de la tabla Categorias, son todos los empleados. Así pues, ambas consultas devuelven todas las tuplas de la tabla Empleados. En cambio, si se permite que nombrecat pueda tener valores nulos, entonces Q1 no está contenida en Q2. Esto es debido a que para aquellas tuplas donde nombrecat es nulo, la comparación e.nombrecat = c.nombre se evalúa a desconocido. La cláusula WHERE, por tanto, seguro que no se evaluará a cierto. Debido a que una sentencia SELECT sólo devuelve aquellas tuplas para las cuales el WHERE se evalúa a cierto, la consulta Q2 no devolverá aquellas tuplas donde nombrecat tenga valor nulo. Así pues, dado que Q1 sí devuelve todas las tuplas de la tabla Empleados, el resultado es, ciertamente, que Q1 no está contenido en Q2. Para comprobar la contención de consultas con valores nulos, se ha extendido nuestro Constructive Query Containment (CQC) Method [4], un método que intenta demostrar que la contención no tiene lugar mediante la construcción de un contraejemplo. El método garantiza que si no es capaz de construir dicho contraejemplo, es que éste no existe, y por lo tanto, la contención de consultas sí tiene lugar. El método CQC es correcto y completo, permite comprobar la contención de consultas en presencia/ausencia de restricciones de integridad, tratar con negaciones tanto en predicados extensionales como intensionales, tratar con comparaciones de igualdad/desigualdad, así

3 como con otras comparaciones (<,,, >) interpretadas ya sea en un dominio de orden discreto como en uno denso. Originalmente, el método no contempla la posibilidad de valores nulos. En el apartado 3 se explican las modificaciones necesarias para extender el método y que éste pueda trabajar con valores nulos. Además de para comprobar si una consulta está o no contenida en otra, el método CQC, así como su versión extendida con valores nulos, también puede aplicarse a la validación de esquemas de bases de datos [3, 12], es decir, que se puede utilizar para comprobar si un esquema satisface o no ciertas propiedades deseables. Ser capaces de realizar esta validación de esquemas con valores nulos es si cabe todavía más importante de cara a una utilización comercial, puesto que las empresas querrán poder validar los esquemas de sus bases de datos los cuales contendrán sin duda valores nulos. La validación de esquemas con valores nulos se comenta en el apartado PRELIMINARES El método CQC trabaja sobre una representación de la base de datos en lógica de primer orden. A lo largo del artículo usaremos la notación presentada en [13]. A continuación se repasan tan solo algunos conceptos básicos. Una regla de deducción es de la forma: p(x ) r 1 (X 1) r n (X n) r n+1 (Ȳ 1 ) r m (Ȳ s ) C 1 C t Una restricción (o condición) es de la forma: r 1 (X 1) r n (X n) r n+1 (Ȳ 1 ) r m (Ȳ s ) C 1 C t En ambos casos, p y r 1,, r m son predicados (también llamados relaciones). Cada C i es un literal built-in A 1 θ A 2, donde A 1 y A 2 son términos y θ puede ser <,, >,, = o. La evaluación de las reglas y de las restricciones se ve afectada por la presencia de valores nulos. Esto implica la necesidad de considerar una lógica trivalor, que define tres valores de verdad: cierto, falso y desconocido. Esta lógica se aplica fundamentalmente en la evaluación de los predicados built-in, así como en la evaluación de los cuerpos de reglas y restricciones. Cuando se tiene una comparación en donde alguno de los términos es la constante null, el predicado built-in en cuestión se evalúa a desconocido. Cuando en una regla o en una restricción uno de los literales se evalúa a desconocido, su cuerpo (una conjunción de literales) ya es seguro que no será cierto; se evaluará a desconocido si todos los demás literales son ciertos, o a falso si alguno de los otros literales es falso. Cómo actúa exactamente el método CQC en esta situación, se ve en el siguiente apartado. 3. EL MÉTODO CQC Recordemos que el método CQC comprueba la contención de dos consultas mediante la construcción de un contraejemplo, una EDB, que de existir demuestra que la contención no se produce, y de no existir que sí se produce.

4 La EDB que se construye como contraejemplo tiene que satisfacer las restricciones de integridad y además satisfacer la propiedad de que no tenga lugar la contención de las consultas. Éstas son precisamente las dos entradas básicas del método CQC: las conditions to enforce y el goal to attain, respectivamente. Las conditions to enforce son el conjunto de condiciones correspondientes a la traducción a lógica de las restricciones de integridad. El goal to attain es una condición que la EDB contraejemplo tiene que satisfacer y que, para comprobar la contención de consultas, suele ser de la forma q 1 (X ) q 2 (X ). Para entender cómo la presencia de valores nulos afecta tanto al goal como a las conditions to enforce, hay que ver cuál es la semántica que el SQL estándar define para los valores nulos. En el caso de una restricción de integridad tipo CHECK, una tupla viola la restricción solamente si la condición del CHECK se evalúa a falso ; por tanto, si al haber valores nulos ésta se evalúa a desconocido, la restricción no se viola. En el caso de una sentencia SELECT, sólo devuelve como resultado aquellas tuplas para las cuales la cláusula WHERE se evalúa a cierto ; por tanto, si debido a la presencia de valores nulos en una tupla, el WHERE se evalúa a desconocido, esta tupla no forma parte del resultado del SELECT. Este mismo razonamiento se puede aplicar al goal y a las conditions to enforce. En el caso del goal, la EDB construida tiene que evaluarlo a cierto ; por tanto, si se evalúa a desconocido es lo mismo que si se evaluara a falso. En el caso de la conditions to enforce, en cambio, si alguna de ellas se evalúa a cierto, la restricción se viola; por tanto, si se evalúa a desconocido, la restricción no se violará, siendo equivalente a si se evaluara a falso. La conclusión que se extrae es que en caso de que un literal built-in, ya sea del goal o de una restricción, se evalúe a desconocido, el método CQC tiene que actuar tal y como lo haría en caso de que se hubiera evaluado a falso. A continuación se hace un breve resumen del método CQC original, y luego, una explicación más detallada de los cambios exactos que hay que hacer al método para que pueda tratar con valores nulos Resumen del método El funcionamiento del método CQC consta, básicamente, de dos tareas que se van alternando. Por un lado, se van añadiendo hechos a la EDB en construcción (inicialmente vacía) con el objetivo de llegar a satisfacer el goal to attain, y por otro, se va comprobando que dicha EDB no viola las restricciones de integridad. Las restricciones pendientes de ser comprobadas son las conditions to enforce. Las restricciones que ya se han comprobado y que deben mantenerse en el futuro, volviéndolas a comprobar cuando se añade un nuevo hecho a la EDB, se denominan conditions to maintain. Para cada una de estas dos tareas, el método selecciona un literal, del goal o de una de las conditions to enforce, según el caso; y luego, si es posible, aplica una regla de expansión. Las reglas de expansión provocan como un cambio de estado del método. El método CQC puede verse, pues, como la exploración de un árbol de estados. Cada estado, o nodo CQC, es una tupla de la forma (G i, F i, T i, C i, K i ) donde G i es el goal to attain, F i las conditions to enforce, T i la EDB en construcción, C i las conditions to maintain, y K i el conjunto de constantes

5 utilizadas en R = DR Q1 Q2 IC y en T i. Cada una de las ramas del árbol CQC es lo que se denomina una derivación CQC. Cuando el método falla, garantiza que no existe ningún contraejemplo. Esto es posible gracias al uso de los VIPs (Variable Instantiation Patterns), que garantizan que para cada variable se prueban todas las constantes significativas. El método CQC define cuatro VIPs: Simple VIP, Negation VIP, Dense Order VIP y Discrete Order VIP. La explicación detallada del método CQC original, así como su formalización, se puede consultar en [4]. En el apartado 3.3 se muestra un ejemplo de aplicación del método Modificaciones para tratar con valores nulos Como se ha visto, originariamente el método CQC no contempla la posibilidad de que puedan haber tuplas donde alguno de sus atributos tenga valor nulo. A continuación se detallan los cambios concretos que son necesarios aplicar para que pueda tratar con estos valores nulos. Teniendo en cuenta que los VIPs controlan la asignación de constantes a las variables, es lógico que sean el punto de partida de los cambios a realizar. Para los cuatro VIPs el cambio a realizar es básicamente el mismo; hay que añadir una nueva regla al conjunto de reglas de cada VIP, que asigne la constante null a la variable que se esté considerando. Más formalmente, a cada VIP hay que añadir la siguiente regla: X i+1 = X i \ X i+1, θ i+1 = θ i {X i+1 / null} y K i+1 = K i. donde X i+1 es la variable a la que se asigna la constante y θ i+1 la sustitución que se construye. Además de los VIPs, hay que modificar también las reglas de expansión. De estas reglas, se ven afectadas las que tratan con las comparaciones, es decir, los literales built-in. Como ya se ha explicado, en caso de encontrar-se con un literal built-in que se evalúe a desconocido debido a que uno de sus términos es la constante null, el método tiene que actuar tal y como lo haría en caso de que el literal se evaluara a falso. Este hecho se refleja en las reglas A4, B4 y B5, que quedan de la forma siguiente: (A4) (B4) P(G i ) = L es un literal built-in de términos constantes: (G i F i T i C i K i ) (G i \ L F i T i C i K i ) sólo si L se evalúa a cierto según la lógica trivalor. P(F i,j ) = L es un literal built-in de términos constantes que se evalúa a cierto según la lógica trivalor: sólo si F i,j \ L []. (G i {F i,j } F i T i C i K i ) (G i {F i,j \ L} F i T i C i K i )

6 (B5) P(F i,j ) = L es un literal built-in de términos constantes que se evalúa a falso o desconocido aplicando la lógica trivalor: (G i {F i,j } F i T i C i K i ) (G i F i T i C i K i ) donde P(G i ) y P(F i,j ) representan la función de selección de un literal, aplicada sobre el goal G i y sobre una condition to enforce F i,j, respectivamente; y L es por tanto el literal seleccionado. En cuanto a la formalización de las reglas, se muestran, separados por una línea, arriba el nodo CQC sobre el que se aplica la regla, y abajo el nodo CQC resultante de aplicar la regla. Finalmente, una última modificación consiste en definir dos nuevos predicados built-in que se añaden a los ya definidos por el método original. Estos predicados son: is null e is not null; dos predicados unarios que se pueden definir de la forma siguiente: X is null la constante asignada a la variable X es la constante null X is not null X is null Estos predicados son necesarios para la correcta traducción a lógica de las expresiones SQL IS NULL e IS NOT NULL. Una primera traducción en que se podría pensar seria: X = null y X null, respectivamente. Esta traducción es, pero, incorrecta; puesto que, tal y como se ha explicado, una comparación donde uno de los términos sea la constante null será tratada por el método de la misma forma que si se evaluara a falso. Así pues, se requiere de dos nuevos predicados built-in para poder expresarlo correctamente Ejemplo de derivación con valores nulos Para ilustrar el aspecto de una derivación CQC con valores nulos, recuperaremos el ejemplo motivador de la introducción, donde teníamos dos consultas Q1 y Q2 tales que, considerando valores nulos, Q1 Q2. Para poder aplicar el método CQC es necesario traducir primero las dos consultas, Q1 y Q2, así como las restricciones de integridad del esquema, a lógica de primer orden. Esta traducción da como resultado las siguientes reglas de deducción y condiciones: q 1 (X) empleados(y, X, Z) q 2 (X) empleados(y, X, Z) categorias(u, V) Z = U V > categorias(x, null) empleados(x, null, Y) categorias(x, Y) Y empleados(x, Y, Z) Z is not null aux(z) aux(x) categorias(x, Y) Recordemos que la restricción de integridad referencial establece que una clave foránea puede tener o bien valor nulo, o bien un valor que aparezca en alguna fila de la columna o columnas referenciadas. Esto es lo que expresa la última condición (con su regla auxiliar), en

7 forma negativa: no puede pasar que haya un empleado para el cual nombrecat tenga un valor no nulo y que no haya ninguna categoría con ese nombre. Por razones de espacio, se han obviado las restricciones de clave primaria ya que no tienen un efecto significativo (simplemente se comprobarían y se vería que no se violan) en esta derivación en concreto. Goal to attain Conditions to enforce EDB Conditions to maintain Constantes utilizadas 1:A1 5:B2 q 1(X) q 2 (X) empleados(y, X, Z) q 2 (X) 2:A2 q 2 ( A ) { categorias(x, null), categorias(x, Y) Y empleados(x, null, Y), empleados(x, Y, Z) Z is not null aux(z)} { categorias(x, null), categorias(x, Y) Y empleados(x, null, Y), empleados(x, Y, Z) Z is not null aux(z)} { categorias(x, null), q 2 ( A ) categorias(x, Y) Y empleados(x, null, Y), empleados(x, Y, Z) Z is not null aux(z)} 3:B2 q 2 ( A ) { categorias(x, Y) Y empleados(x, null, Y), empleados(x, Y, Z) Z is not null aux(z)} 4:B2 q 2 ( A ) { empleados(x, null, Y), empleados(x, Y, Z) Z is not null aux(z)} { empleados(x, Y, Z) Z is not null aux(z)} { categorias(x, null)} { categorias(x, null), categorias(x, Y) Y 50000} { categorias(x, null), categorias(x, Y) Y empleados(x, null, Y)} 50000} 50000} Figura 1. Primeros pasos de una derivación CQC que demuestra Q1 Q2. En las figuras 1 y 2 se puede ver un ejemplo de derivación CQC con valores nulos, extraída del árbol CQC que el método explora para comprobar si Q1 Q2. Esta derivación tiene éxito y construye un contraejemplo que demuestra la no contención de Q1 en Q2, cuando se permiten valores nulos. La figura muestra la secuencia de nodos CQC, uno por fila,

8 y entre cada par de nodos indica la regla de expansión que se ha aplicado. Para cada nodo, el literal seleccionado se muestra subrayado. El nodo inicial tiene como conditions to enforce las condiciones resultantes de traducir las restricciones de integridad del esquema a lógica de primer orden. Puesto que se quiere comprobar si Q1 está contenida en Q2, el objetivo del método será construir una EDB en lo que suceda justo lo contrario, y de ahí el porqué del goal to attain inicial. En el primer paso, el método CQC selecciona el literal q 1 (X) y, al ser q 1 un predicado derivado, aplica la regla A1 para desplegar este literal y sustituirlo por el cuerpo de su regla de deducción. Goal to attain Conditions to enforce EDB Conditions to maintain Constantes utilizadas 6:B2 7:B5 8:A3 9:B1 10:B2 q 2 ( A ) q 2( A ) [] { null is not null aux(null)} [] { empleados(y, A, Z) categorias(u, V) Z = U V > 40000} [] { q 2 ( A )} C 6 * C 6 C 6 C 6 C 6 { empleados(y, A, Z) categorias(u, V) Z = U V > 40000} * C 6 = { categorias(x,null), categorias(x, Y) Y empleados(x, null, Y), empleados(x, Y, Z) Z is not null aux(z)} Figura 2. Últimos pasos de la derivación CQC que demuestra Q1 Q2. En el paso 2, al seleccionar un literal positivo cuyo predicado se corresponde a una de las tablas de la BD, el método aplica la regla A2 para instanciar las variables de este literal y luego añadir la instancia a la EDB en construcción. En esta rama concreta del árbol CQC, se ha optado por asignar, aplicando el Negation VIP para las tres variables, a la variable Y la constante nueva 0, a la variable X la constante nueva A, y a la variable Z la constante null. En los pasos 3, 4 y 5 se aplica una regla B# puesto que el literal seleccionado pertenece a una condition to enforce. Concretamente, se aplica la regla B2 que comprueba si el literal seleccionado, que es positivo y se corresponde a una tabla de la BD, se puede unificar con alguno de la EDB. Al no ser esto posible ya es seguro que la restricción no se viola y por

9 tanto ya se puede eliminar de las conditions to enforce, no sin antes añadirla a las conditions to maintain para poder volver a comprobarla en el futuro si fuera necesario. En el paso 6, la regla B2 sí puede unificar el literal seleccionado con el hecho presente en la EDB, lo cual supone la asignación de las constantes 0, A y null a las variables X, Y y Z de esta condición. En el paso 7, el literal seleccionado tiene como predicado el predicado built-in is not null. Como ya se ha visto, este predicado unario se evalúa a falso cuando su término es la constante null, como es el caso. Así pues, toda la condición se evalúa a falso y no se viola. En el paso 8, el literal seleccionado es negativo así que se aplica la regla A3 y se añade una nueva contion to enforce que tendrá como cuerpo el literal sin la negación, puesto que el significado de la presencia de este literal en el goal es que la EDB que se construya no puede hacerlo cierto. En el paso 9, la regla B1 despliega el literal derivado. En el paso 10 y último, la regla B2 no puede unificar el literal seleccionado con ningún hecho de la EDB por lo que ya se puede decir que la condición no se viola. En este caso se ha seleccionado el literal correspondiente al predicado categorías en lugar del literal correspondiente al predicado empleados que también era susceptible de ser seleccionado. El método CQC no define ningún orden para la selección de literales; la única restricción es que los literales negados o built-in no se pueden seleccionar hasta que todos sus términos sean constantes. Dado que el nodo CQC resultante tras aplicar esta última regla de expansión tiene tanto el goal to attain como las conditions to enforce vacíos, se puede decir que se trata de un nodo solución, y la EDB que contiene es, por tanto, el contraejemplo que demuestra Q1 Q2. 4. VALIDACIÓN DE ESQUEMAS DE BASES DE DATOS Como ya se ha comentado, una de las aplicaciones del método CQC es la validación de esquemas de BD. La herramienta SVT (Schema Validation Tool) [12] implementa el método CQC con el objetivo de realizar una serie de tests sobre un esquema de BD para comprobar si cumple ciertas propiedades deseables: satisfactibilidad del esquema, redundancia de restricciones de integridad, viveza de tablas y vistas, contención de vistas, así como comprobar si un cierto estado parcial de la BD, ya sea definido directamente a través de sus tuplas o mediante una consulta, es o no alcanzable sin violar ninguna restricción de integridad. Estas mismas propiedades se pueden comprobar teniendo en cuenta la posible presencia de valores nulos, utilizando la versión del método CQC extendida con valores nulos que aquí se ha explicado. Un prototipo de implementación de está versión extendida, que permite realizar los mismos tests que la herramienta SVT original, está disponible en forma de servicio web [10]. Una aplicación cliente, con interfaz web, para este servicio, se puede encontrar en

10 5. CONCLUSIONES Y TRABAJO FUTURO En este artículo hemos abordado el problema de comprobar la contención de consultas teniendo en cuenta la posible presencia de valores nulos en los atributos de las tuplas. Según nuestro conocimiento, ninguno de los trabajos hechos hasta ahora en relación con la contención de consultas consideraba la presencia de valores nulos. Para realizar esta comprobación hemos extendido nuestro método CQC para que pueda tratar con valores nulos. El método CQC es correcto y completo, y permite tratar con restricciones de integridad, negación safe tanto en predicados EDB como IDB, y predicados built-in. La demostración formal de la corrección y completitud de la versión del método CQC extendida con valores nulos queda pendiente como trabajo a realizar a continuación. Además, las ideas expuestas en este artículo se han implementado en forma de un servicio web dedicado a la validación de esquemas de bases de datos relacionales, aplicando la versión extendida del método CQC en la realización de una serie de tests sobre los esquemas y permitiendo así comprobar ciertas propiedades deseables teniendo en cuenta que la BD puede contener valores nulos. REFERENCIAS [1] Nieves R. Brisaboa, Héctor J. Hernández: Testing Bag-Containment of Conjunctive Queries. Acta Inf. 34(7): (1997). [2] A.K. Chandra, P.M. Merlin. Optimal Implementation of Conjunctive Queries in Relational Data Bases. In Proceedings of the 9th ACM SIGACT Symposium on Theory of Computing: 77-90, [3] Carles Farré, Ernest Teniente, Toni Urpí: A New Approach for Checking Schema Validation Properties. DEXA 2004: [4] Carles Farré, Ernest Teniente, Toni Urpí: Checking query containment with the CQC method. Data Knowl. Eng. 53(2): (2005). [5] A. Gupta, Y. Sagiv, J.D. Ullman, J. Widom. Constraint Checking with Partial Information. In Proceedings of the 13th ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems (PoDS 94): 45-55, [6] A.Y. Halevy. Answering queries using views: A survey. VLDB Journal, 10(4): , [7] Yannis E. Ioannidis, Raghu Ramakrishnan: Containment of Conjunctive Queries: Beyond Relations as Sets ACM Trans. Database Syst. 20(3): (1995). [8] D.S. Johnson, A. Klug. Testing Containment of Conjunctive Queries under Functional and Inclusion Dependencies. Journal of Computer and System Sciences, 28(1): , [9] A. Levy, Y. Sagiv. Queries Independent of Updates. In Proceedings of the 19th International Conference on Very Large Data Bases (VLDB 93): , [10] Guillem Rull. Servei Web de Validació d Esquemes de BD. Proyecto Final de Carrera, Universitat Politècnica de Catalunya, URL: memoriapfc.pdf.

11 [11] Y. Sagiv, M. Yannakakis. Equivalences Among Relational Expressions with the Union and Difference Operators. Journal of the ACM, 27(4): , [12] Ernest Teniente, Carles Farré, Toni Urpí, Carlos Beltrán, David Gañán: SVT: Schema Validation Tool for Microsoft SQL-Server. VLDB 2004: [13] J.D. Ullman. Principles of Database and Knowledge-Base Systems, Volume 2: The New Technologies. Computer Science Press, 1989.

LAS SUBCONSULTAS SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

LAS SUBCONSULTAS SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE LAS SUBCONSULTAS SQL SERVER 2005 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE LAS SUBCONSULTAS Una subconsulta es una consulta que aparece dentro de otra consulta o subconsultas, en

Más detalles

1. DML. Las subconsultas

1. DML. Las subconsultas 1.1 Introducción 1. DML. Las subconsultas Una subconsulta es una consulta que aparece dentro de otra consulta o subconsulta en la lista de selección, en la cláusula WHERE o HAVING, originalmente no se

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

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

- Bases de Datos - - Diseño Físico - Luis D. García

- Bases de Datos - - Diseño Físico - Luis D. García - Diseño Físico - Luis D. García Abril de 2006 Introducción El diseño de una base de datos está compuesto por tres etapas, el Diseño Conceptual, en el cual se descubren la semántica de los datos, definiendo

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

El modelo relacional

El modelo relacional El modelo relacional El modelo relacional constituye una alternativa para la organización y representación de la información que se pretende almacenar en una base de datos. Se trata de un modelo teórico

Más detalles

Consultas con combinaciones

Consultas con combinaciones UNIDAD 1.- PARTE 2 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES Xochitl Clemente Parra Armando Méndez Morales Consultas con combinaciones Usando combinaciones (joins), se pueden

Más detalles

select nombre from profesores where categoria='aso6';

select nombre from profesores where categoria='aso6'; 1 de 10 17/05/2013 14:00 Lecciones SQL > T11 Conjuntos Operaciones de conjuntos y MySQL Un operador sobre conjuntos combina el resultado de dos sentencias select en un único resultado. Dependiendo del

Más detalles

Trabajos de Ampliación. Bases de datos NoSQL.

Trabajos de Ampliación. Bases de datos NoSQL. BASES DE DATOS NoSql Son bases de datos pensadas para aplicaciones que hagan un uso intensivo de la misma. Estas bases de datos permiten una mayor flexibilidad y facilidad a la hora de introducir los datos

Más detalles

Apuntes de Matemática Discreta 9. Funciones

Apuntes de Matemática Discreta 9. Funciones Apuntes de Matemática Discreta 9. Funciones Francisco José González Gutiérrez Cádiz, Octubre de 004 Universidad de Cádiz Departamento de Matemáticas ii Lección 9 Funciones Contenido 9.1 Definiciones y

Más detalles

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN Tipos de datos SQL admite una variada gama de tipos de datos para el tratamiento de la información contenida en las tablas, los tipos

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

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

CONSULTAS DE RESUMEN SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

CONSULTAS DE RESUMEN SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE CONSULTAS DE RESUMEN SQL SERVER 2005 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE CONSULTAS DE RESUMEN Una de las funcionalidades de la sentencia SELECT es el permitir obtener resúmenes

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

Este es un ejemplo muy sencillo, un esquema de empleados que trabajan en proyectos, en una relación muchos a muchos.

Este es un ejemplo muy sencillo, un esquema de empleados que trabajan en proyectos, en una relación muchos a muchos. 28/04/2012 La teoría de la normalización va perdiendo peso con el paso de los años como herramienta de diseño de bases de datos relacionales en favor de modelos de datos más ricos en su representación,

Más detalles

Un ejemplo simple de normalización de bases de datos relacionales (hasta 3FN)

Un ejemplo simple de normalización de bases de datos relacionales (hasta 3FN) OpenStax-CNX module: m18350 1 Un ejemplo simple de normalización de bases de datos relacionales (hasta 3FN) Miguel-Angel Sicilia This work is produced by OpenStax-CNX and licensed under the Creative Commons

Más detalles

4.Diseño de Bases de Datos (I)

4.Diseño de Bases de Datos (I) 4.Diseño de Bases de Datos (I) 4.1 Anomalías. Se denominan así en teoría de Bases de Datos a ciertos problemas que aparecen con frecuencia en el manejo de las mismas cuando el diseño no ha sido realizado

Más detalles

El lenguaje SQL es un lenguaje estándar para el acceso y

El lenguaje SQL es un lenguaje estándar para el acceso y 1. INTRODUCCIÓN El lenguaje SQL es un lenguaje estándar para el acceso y manipulación de bases de datos relacionales como SQL Server. Esto quiere decir que aprender SQL es algo indispensable para cualquier

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

La Revelación de la Unidad y la Benevolencia: Fundamento de la Creación Entradas 1-4

La Revelación de la Unidad y la Benevolencia: Fundamento de la Creación Entradas 1-4 La Revelación de la Unidad y la Benevolencia: Fundamento de la Creación Entradas 1-4 Entrada 1 Unicidad: Existencia de Dios, Su voluntad y control La unicidad del Ein Sof Aquel que es "Sin Fin", bendito

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

Diseño de bases de datos Diapositiva 1

Diseño de bases de datos Diapositiva 1 Diseño o de bases de datos Objetivos del Diseño Principios del Diseño de BD Proceso de Diseño Normalización Diseño de Tablas: Claves Relaciones Integridad referencial Convenciones de nomenclatura Diseño

Más detalles

Base de datos en Excel

Base de datos en Excel Base de datos en Excel Una base datos es un conjunto de información que ha sido organizado bajo un mismo contexto y se encuentra almacenada y lista para ser utilizada en cualquier momento. Las bases de

Más detalles

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo. CONSULTAS CON SQL 1. Qué es SQL? Debido a la diversidad de lenguajes y de bases de datos existentes, la manera de comunicar entre unos y otras sería realmente complicada a gestionar de no ser por la existencia

Más detalles

Temario. Índices simples Árboles B Hashing

Temario. Índices simples Árboles B Hashing Temario Introducción y fundamentos Introducción a SQL Modelo Entidad / Relación Modelo relacional Diseño relacional: formas normales Consultas Cálculo relacional Álgebra relacional Implementación de bases

Más detalles

Sub consultas avanzadas

Sub consultas avanzadas Sub consultas avanzadas Objetivo Después de completar este capítulo conocerá lo siguiente: Escribir una consulta de múltiples columnas Describir y explicar el comportamiento de las sub consultas cuando

Más detalles

A.1. Definiciones de datos en SQL

A.1. Definiciones de datos en SQL A.1. Definiciones de datos en SQL Las Sentencias del lenguaje de definición de datos (DDL) que posee SQL operan en base a tablas. Las Principales sentencias DDL son las siguientes: CREATE TABLE DROP TABLE

Más detalles

Maestría en Bioinformática. Bases de Datos y Sistemas de Información. Del MER al MR. Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.

Maestría en Bioinformática. Bases de Datos y Sistemas de Información. Del MER al MR. Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com. Maestría en Bioinformática Bases de Datos y Sistemas de Información Del MER al MR Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.uy Agenda Conceptos MER a MR Introducción Agenda Conceptos MER a MR

Más detalles

- MANUAL DE USUARIO -

- MANUAL DE USUARIO - - MANUAL DE USUARIO - Aplicación: Kz Precio Hora Instagi Instagi Teléfono: 943424465-943466874 Email: instagi@instagi.com GUIA PROGRAMA CALCULO PRECIO HORA 1. Introducción 2. Datos de la empresa 2.1.Gastos

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

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO Fecha última revisión: Junio 2011 INDICE DE CONTENIDOS HERRAMIENTA DE APROVISIONAMIENTO... 3 1. QUÉ ES LA HERRAMIENTA DE APROVISIONAMIENTO... 3 HERRAMIENTA

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. 12 Nombre: Lenguaje SQL: Valores Nulos Contextualización Qué más ofrece el lenguaje SQL? Así como te has introducido en el desarrollo de la

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

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

Bases de datos relacionales y el modelo entidad-relación

Bases de datos relacionales y el modelo entidad-relación Bases de datos relacionales y el modelo entidad-relación Qué es una base de datos relacional? El sistema gestor de bases de datos El modelo entidad-relación entidad, atributos y elementos (tablas, columnas

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

SE PIDE: 1. Suponiendo que partimos del siguiente grafo relacional que recoge parte de los supuestos anteriores,

SE PIDE: 1. Suponiendo que partimos del siguiente grafo relacional que recoge parte de los supuestos anteriores, EJERCICIO SOBRE EMPRESA DE FABRICACIÓN DE COCHES HIPERAUTO es una empresa que fabrica y distribuye coches y piezas de repuesto. Necesita diseñar una nueva Base de Datos para mejorar el control de pedidos

Más detalles

Cómo?: Resolviendo el sistema lineal homógeneo que satisfacen las componentes de cualquier vector de S. x4 = x 1 x 3 = x 2 x 1

Cómo?: Resolviendo el sistema lineal homógeneo que satisfacen las componentes de cualquier vector de S. x4 = x 1 x 3 = x 2 x 1 . ESPACIOS VECTORIALES Consideremos el siguiente subconjunto de R 4 : S = {(x, x 2, x 3, x 4 )/x x 4 = 0 x 2 x 4 = x 3 a. Comprobar que S es subespacio vectorial de R 4. Para demostrar que S es un subespacio

Más detalles

Práctica 3. Consultas SQL

Práctica 3. Consultas SQL Práctica 3. Consultas SQL 1. Enunciado En este ejercicio se realizarán consultas SQL que respondan a las preguntas que se plantearán sin utilizar QBE. Dada una base de datos denominada Empresa y definida

Más detalles

Teoría formal de la normalización de esquemas relacionales. Definición formal de las tres primeras Formas Normales

Teoría formal de la normalización de esquemas relacionales. Definición formal de las tres primeras Formas Normales Teoría formal de la normalización de esquemas relacionales. Definición formal de las tres primeras Formas Normales Normalización de esquemas relacionales Motivación Sea la BD de proveedores y partes, con

Más detalles

Tema 5: Teoría de diseño de Bases de Datos Relacionales.

Tema 5: Teoría de diseño de Bases de Datos Relacionales. Tema 5: Teoría de diseño de Bases de Datos Relacionales. I. Introducción. Fases de diseño de una base de datos. 1. Mod. Conceptual (MERE) -> Mod. Lógico (Relacional). 2. Mod. Lógico (Relacional). En el

Más detalles

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007 Enunciado Se desea efectuar el testing funcional de un programa que ejecuta transferencias entre cuentas bancarias. El programa recibe como parámetros la cuenta de origen, la de cuenta de destino y el

Más detalles

Patrones para persistencia (I) Ingeniería del Software II

Patrones para persistencia (I) Ingeniería del Software II Patrones para persistencia (I) Ingeniería del Software II 1 Patrones para la construcción del esquema relacional En todos los ejemplos realizaremos transformaciones del siguiente diagrama de clases: Figura

Más detalles

MEJORAR EL RENDIMIENTO DEL EXPLORADOR DE INTERNET

MEJORAR EL RENDIMIENTO DEL EXPLORADOR DE INTERNET MEJORAR EL RENDIMIENTO DEL EXPLORADOR DE INTERNET Internet Explorer almacena en archivos temporales las páginas Web y sus archivos relacionados que carga de Internet, lo que significa que la primera vez

Más detalles

Universidad de Zaragoza Manual de Usuario EXPEDIENTES-Sigm@

Universidad de Zaragoza Manual de Usuario EXPEDIENTES-Sigm@ Universidad de Zaragoza Manual de Usuario EXPEDIENTES-Sigm@ Unidad Sigma/Vicegerencia Académica MANUAL DE USUARIO EXPEDIENTES SIGM@... 1 1. ÍNDICE... 2 2. ENTRADA EN LA APLICACIÓN... 3 3. CONSULTA DE EXPEDIENTES...4

Más detalles

Ecuaciones de primer grado con dos incógnitas

Ecuaciones de primer grado con dos incógnitas Ecuaciones de primer grado con dos incógnitas Si decimos: "las edades de mis padres suman 120 años", podemos expresar esta frase algebraicamente de la siguiente forma: Entonces, Denominamos x a la edad

Más detalles

Árboles AVL. Laboratorio de Programación II

Árboles AVL. Laboratorio de Programación II Árboles AVL Laboratorio de Programación II Definición Un árbol AVL es un árbol binario de búsqueda que cumple con la condición de que la diferencia entre las alturas de los subárboles de cada uno de sus

Más detalles

Capítulo 12: Indexación y asociación

Capítulo 12: Indexación y asociación Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación

Más detalles

Guía paso a paso para la cumplimentación del formulario de candidatura

Guía paso a paso para la cumplimentación del formulario de candidatura Guía paso a paso para la cumplimentación del formulario de candidatura INDICE 1. INSTRUCCIONES GENERALES... 2 2. PARTENARIADO... 4 3. GRUPOS DE TAREAS... 8 4. INDICADORES... 14 5. CUMPLIMENTACIÓN DEL RESTO

Más detalles

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros La sentencia INSERT permite agregar nuevas filas de datos a las tablas existentes. Está sentencia

Más detalles

Restricciones de Integridad

Restricciones de Integridad Restricciones de Integridad Amparo López Gaona México, D.F. Semestre 2000-I Restricciones de Integridad Las principales restricciones de integridad que pueden indicarse son: La clave primaria. Claves candidatas.

Más detalles

QUÉ ES LA RENTABILIDAD Y CÓMO MEDIRLA. La rentabilidad mide la eficiencia con la cual una empresa utiliza sus recursos financieros.

QUÉ ES LA RENTABILIDAD Y CÓMO MEDIRLA. La rentabilidad mide la eficiencia con la cual una empresa utiliza sus recursos financieros. QUÉ ES LA RENTABILIDAD Y CÓMO MEDIRLA La rentabilidad mide la eficiencia con la cual una empresa utiliza sus recursos financieros. Qué significa esto? Decir que una empresa es eficiente es decir que no

Más detalles

MLM 1000 - Matemática Discreta

MLM 1000 - Matemática Discreta MLM 1000 - Matemática Discreta L. Dissett Clase 04 Resolución. Lógica de predicados c Luis Dissett V. P.U.C. Chile, 2003 Aspectos administrativos Sobre el tema vacantes: 26 personas solicitaron ingreso

Más detalles

Bases de Datos Modelo Relacional

Bases de Datos Modelo Relacional Bases de Datos Modelo Relacional Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Presentar los conceptos del método relacional

Más detalles

Teórico 9 Del MER al MR

Teórico 9 Del MER al MR Teórico 9 Del MER al MR Introducción Veremos cómo traducir un modelo conceptual, en forma de Modelo Entidad-Relación, en un modelo lógico de base de datos, en forma de Modelo Relacional. Para esto, estudiaremos

Más detalles

CASO PRÁCTICO. ANÁLISIS DE DATOS EN TABLAS DINÁMICAS

CASO PRÁCTICO. ANÁLISIS DE DATOS EN TABLAS DINÁMICAS CASO PRÁCTICO. ANÁLISIS DE DATOS EN TABLAS DINÁMICAS Nuestra empresa es una pequeña editorial que maneja habitualmente su lista de ventas en una hoja de cálculo y desea poder realizar un análisis de sus

Más detalles

E 1 E 2 E 2 E 3 E 4 E 5 2E 4

E 1 E 2 E 2 E 3 E 4 E 5 2E 4 Problemas resueltos de Espacios Vectoriales: 1- Para cada uno de los conjuntos de vectores que se dan a continuación estudia si son linealmente independientes, sistema generador o base: a) (2, 1, 1, 1),

Más detalles

Departamento CERES Área de Tarjetas Inteligentes Manual de Usuario

Departamento CERES Área de Tarjetas Inteligentes Manual de Usuario 14 CORREO SEGURO. Hay aplicaciones de correo que permiten enviar y recibir correos cifrados y firmados digitalmente utilizando criptografía. Estas operaciones garantizan el intercambio seguro de información,

Más detalles

Capítulo 9. Archivos de sintaxis

Capítulo 9. Archivos de sintaxis Capítulo 9 Archivos de sintaxis El SPSS permite generar y editar archivos de texto con sintaxis SPSS, es decir, archivos de texto con instrucciones de programación en un lenguaje propio del SPSS. Esta

Más detalles

Repaso de Conceptos Básicos de Bases de Datos

Repaso de Conceptos Básicos de Bases de Datos escuela técnica superior de ingeniería informática Repaso de Conceptos Básicos de Bases de Datos Departamento de Lenguajes Grupo de Ingeniería del Software Septiembre 2004 Definición Una base de datos

Más detalles

Bases de Datos. Sistemas de Gestión de Bases de Datos

Bases de Datos. Sistemas de Gestión de Bases de Datos Bases de Datos Sistemas de Gestión de Bases de Datos Banco de datos Conjunto de datos relacionados Ejemplo: archivos de las oficinas de una empresa, con fichas, carpetas, archivadores, armarios... La gestión

Más detalles

Toda base de datos relacional se basa en dos objetos

Toda base de datos relacional se basa en dos objetos 1. INTRODUCCIÓN Toda base de datos relacional se basa en dos objetos fundamentales: las tablas y las relaciones. Sin embargo, en SQL Server, una base de datos puede contener otros objetos también importantes.

Más detalles

Tema 1: Fundamentos de lógica, teoría de conjuntos y estructuras algebraicas: Apéndice

Tema 1: Fundamentos de lógica, teoría de conjuntos y estructuras algebraicas: Apéndice Tema 1: Fundamentos de lógica, teoría de conjuntos y estructuras algebraicas: Apéndice 1 Polinomios Dedicaremos este apartado al repaso de los polinomios. Se define R[x] ={a 0 + a 1 x + a 2 x 2 +... +

Más detalles

MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA. Perfil Entidad Proveedora

MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA. Perfil Entidad Proveedora MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA Perfil Entidad Proveedora El objetivo del módulo de Gestión de Solicitudes vía Internet es facilitar el trabajo

Más detalles

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: 93.410.92.92 Fax.: 93.419.86.49 e-mail:atcliente@websie.

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: 93.410.92.92 Fax.: 93.419.86.49 e-mail:atcliente@websie. Adaptación al NPGC Introducción Nexus 620, ya recoge el Nuevo Plan General Contable, que entrará en vigor el 1 de Enero de 2008. Este documento mostrará que debemos hacer a partir de esa fecha, según nuestra

Más detalles

Plataforma Helvia. Manual de Administración Administración General. Versión 6.08.05

Plataforma Helvia. Manual de Administración Administración General. Versión 6.08.05 Plataforma Helvia Manual de Administración Administración General Versión 6.08.05 Índice de contenidos INTRODUCCIÓN... 3 ENFOQUE...3 LA ADMINISTRACIÓN GENERAL...3 ACCESO A LA ADMINISTRACIÓN GENERAL...

Más detalles

MANUAL BÁSICO DEL LENGUAJE SQL

MANUAL BÁSICO DEL LENGUAJE SQL MANUAL BÁSICO DEL LENGUAJE SQL ESCUELA COLOMBIANA DE INGENIERÍA JULIO GARAVITO LABORATORIO DE INFORMÁTICA BOGOTÁ D. C. 2007-2 TABLA DE CONTENIDO INTRODUCCIÓN... 3 1. COMANDOS... 4 1.1 Comandos DLL... 4

Más detalles

ANÁLISIS DE DATOS NO NUMERICOS

ANÁLISIS DE DATOS NO NUMERICOS ANÁLISIS DE DATOS NO NUMERICOS ESCALAS DE MEDIDA CATEGORICAS Jorge Galbiati Riesco Los datos categóricos son datos que provienen de resultados de experimentos en que sus resultados se miden en escalas

Más detalles

Apuntes Recuperación ante Fallas - Logging

Apuntes Recuperación ante Fallas - Logging Lic. Fernando Asteasuain -Bases de Datos 2008 - Dpto. Computación -FCEyN-UBA 1 Apuntes Recuperación ante Fallas - Logging Nota: El siguiente apunte constituye sólo un apoyo para las clases prácticas del

Más detalles

Aproximación local. Plano tangente. Derivadas parciales.

Aproximación local. Plano tangente. Derivadas parciales. Univ. de Alcalá de Henares Ingeniería de Telecomunicación Cálculo. Segundo parcial. Curso 004-005 Aproximación local. Plano tangente. Derivadas parciales. 1. Plano tangente 1.1. El problema de la aproximación

Más detalles

Sistema de Facturación de Ventas WhitePaper Enero de 2007

Sistema de Facturación de Ventas WhitePaper Enero de 2007 Sistema de Facturación de Ventas WhitePaper Enero de 2007 Ronda Guglielmo Marconi, 9 Parque Tecnológico 46980 Paterna Valencia Spain T +34 96 338 99 66 ventas@preference.es Please Recycle PrefSuite Document

Más detalles

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

En cualquier caso, tampoco es demasiado importante el significado de la B, si es que lo tiene, lo interesante realmente es el algoritmo. Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa

Más detalles

BASE DE DATOS QUÉ ES UNA BASE DE DATOS?

BASE DE DATOS QUÉ ES UNA BASE DE DATOS? BASE DE DATOS BASE DE DATOS QUÉ ES UNA BASE DE DATOS? Una base de datos se puede definir como un conjunto de información relacionada que se encuentra agrupada ó estructurada. Actualmente la mayoría de

Más detalles

Mantenimiento Limpieza

Mantenimiento Limpieza Mantenimiento Limpieza El programa nos permite decidir qué tipo de limpieza queremos hacer. Si queremos una limpieza diaria, tipo Hotel, en el que se realizan todos los servicios en la habitación cada

Más detalles

OPERACIONES FUNDAMENTALES DEL ÁLGEBRA RELACIONAL. Bases de Datos Ingeniería de Sistemas y Computación Universidad Nacional de Colombia 2007

OPERACIONES FUNDAMENTALES DEL ÁLGEBRA RELACIONAL. Bases de Datos Ingeniería de Sistemas y Computación Universidad Nacional de Colombia 2007 OPERACIONES FUNDAMENTALES DEL ÁLGEBRA RELACIONAL Bases de Datos Ingeniería de Sistemas y Computación Universidad Nacional de Colombia 2007 Álgebra Relacional Álgebra Relacional El álgebra relacional es

Más detalles

Ampliación de Estructuras de Datos

Ampliación de Estructuras de Datos Ampliación de Estructuras de Datos Amalia Duch Barcelona, marzo de 2007 Índice 1. Diccionarios implementados con árboles binarios de búsqueda 1 2. TAD Cola de Prioridad 4 3. Heapsort 8 1. Diccionarios

Más detalles

Bases de datos en Excel

Bases de datos en Excel Universidad Complutense de Madrid CURSOS DE FORMACIÓN EN INFORMÁTICA Bases de datos en Excel Hojas de cálculo Tema 5 Bases de datos en Excel Hasta ahora hemos usado Excel básicamente para realizar cálculos

Más detalles

Recuperación de información Bases de Datos Documentales Licenciatura en Documentación Curso 2011/2012

Recuperación de información Bases de Datos Documentales Licenciatura en Documentación Curso 2011/2012 Bases de Datos Documentales Curso 2011/2012 Miguel Ángel Rodríguez Luaces Laboratorio de Bases de Datos Universidade da Coruña Introducción Hemos dedicado la primera mitad del curso a diseñar e implementar

Más detalles

Análisis de los datos

Análisis de los datos Universidad Complutense de Madrid CURSOS DE FORMACIÓN EN INFORMÁTICA Análisis de los datos Hojas de cálculo Tema 6 Análisis de los datos Una de las capacidades más interesantes de Excel es la actualización

Más detalles

Base de Datos Práctica 1.

Base de Datos Práctica 1. Base de Datos Práctica 1. Objetivo: Introducción al Mysql, aprender a identificar los errores más comunes en la creación de las bases de datos para su solución, conocer los diferentes tipos de datos y

Más detalles

Guía para el tratamiento en Allegro de recibos para centros no pertenecientes a la Generalitat Valenciana.

Guía para el tratamiento en Allegro de recibos para centros no pertenecientes a la Generalitat Valenciana. Guía para el tratamiento en Allegro de recibos para centros no pertenecientes a la Generalitat Valenciana. Esta guía muestra como proceder en la configuración y posterior uso de la aplicación Allegro en

Más detalles

Tema 2. Espacios Vectoriales. 2.1. Introducción

Tema 2. Espacios Vectoriales. 2.1. Introducción Tema 2 Espacios Vectoriales 2.1. Introducción Estamos habituados en diferentes cursos a trabajar con el concepto de vector. Concretamente sabemos que un vector es un segmento orientado caracterizado por

Más detalles

Nota 2. Luis Sierra. Marzo del 2010

Nota 2. Luis Sierra. Marzo del 2010 Nota 2 Luis Sierra Marzo del 2010 Cada mecanismo de definición de conjuntos que hemos comentado sugiere mecanismos para definir funciones y probar propiedades. Recordemos brevemente qué son las funciones

Más detalles

Aviso Legal El presente libro electrónico se distribuye bajo Attribution-NonCommercial- NoDerivs 3.0 Unported

Aviso Legal El presente libro electrónico se distribuye bajo Attribution-NonCommercial- NoDerivs 3.0 Unported PROGRAMACIÓN ORIENTADA A OBJETOS APLICADA A BASES DE DATOS Por LAURA NOUSSAN LETTRY BrowserSQL MySQL Workbench en Linux (Abril 2015, Mendoza) Aviso Legal El presente libro electrónico se distribuye bajo

Más detalles

01 Índice. GESTOR DE CONTENIDOS Manual de uso 01 ÍNDICE... 1 02 OBJETO DEL DOCUMENTO... 2 03 ESTRUCTURA GRÁFICA DEL SISTEMA... 3

01 Índice. GESTOR DE CONTENIDOS Manual de uso 01 ÍNDICE... 1 02 OBJETO DEL DOCUMENTO... 2 03 ESTRUCTURA GRÁFICA DEL SISTEMA... 3 01 Índice 01 ÍNDICE..... 1 02 OBJETO DEL DOCUMENTO..... 2 03 ESTRUCTURA GRÁFICA DEL SISTEMA..... 3 04 GESTIÓN DE TABLAS..... 5 05 USO DE TABLAS EN ENVIDUR..... 15 06 GESTIÓN DE FUNCIONALIDAD ADICIONAL.

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

Resumen del trabajo sobre DNSSEC

Resumen del trabajo sobre DNSSEC Resumen del trabajo sobre Contenido 1. -...2 1.1. - Definición...2 1.2. - Seguridad basada en cifrado...2 1.3. - Cadenas de confianza...3 1.4. - Confianzas...4 1.5. - Islas de confianza...4 2. - Conclusiones...5

Más detalles

Datos del autor. Nombres y apellido: Germán Andrés Paz. Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina

Datos del autor. Nombres y apellido: Germán Andrés Paz. Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina Datos del autor Nombres y apellido: Germán Andrés Paz Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina Correo electrónico: germanpaz_ar@hotmail.com =========0========= Introducción

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

EJERCICIOS DE MATEMÁTICAS I HOJA 4. Ejercicio 1. Se consideran los vectores

EJERCICIOS DE MATEMÁTICAS I HOJA 4. Ejercicio 1. Se consideran los vectores EJERCICIOS DE MATEMÁTICAS I HOJA 4 Ejercicio 1. Se consideran los vectores u 1 = (1, 1, 0, 1), u 2 = (0, 2, 1, 0), u 3 = ( 1, 1, 1, 1), u 4 = (2, 2, 1, 0) de R 4. Expresa, si es posible, los vectores u

Más detalles

PROGRAMA PARA LA RECEPCIÓN VALIDACIÓN Y RESGUARDO DE DOCUMENTOS FISCALES VERSIÓN 1.00 MANUAL DE OPERACIÓN

PROGRAMA PARA LA RECEPCIÓN VALIDACIÓN Y RESGUARDO DE DOCUMENTOS FISCALES VERSIÓN 1.00 MANUAL DE OPERACIÓN PROGRAMA PARA LA RECEPCIÓN VALIDACIÓN Y RESGUARDO DE DOCUMENTOS FISCALES VERSIÓN 1.00 MANUAL DE OPERACIÓN ENERO 2014 Versión 1.00 Página 1 de 12 CONTENIDO 1.- Introducción 2.- Entrar y Salir del Programa

Más detalles

Sistema Ventanilla Manual Solicitud Compra DIMERC

Sistema Ventanilla Manual Solicitud Compra DIMERC Sistema Ventanilla Manual Solicitud Compra DIMERC Unidad de Sistemas Valparaíso, 2015 Manual Solicitud de Compra DIMERC En este manual explicaremos de manera simple, los pasos a seguir para realizar un

Más detalles

1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1

1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1 5.1.3 Multiplicación de números enteros. El algoritmo de la multiplicación tal y como se realizaría manualmente con operandos positivos de cuatro bits es el siguiente: 1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0

Más detalles

Procesos Críticos en el Desarrollo de Software

Procesos Críticos en el Desarrollo de Software Metodología Procesos Críticos en el Desarrollo de Software Pablo Straub AgileShift Imagine una organización de desarrollo de software que consistentemente cumple los compromisos con sus clientes. Imagine

Más detalles

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Documento de trabajo elaborado para la Red Temática DocenWeb: Red Temática de Docencia en Control mediante Web (DPI2002-11505-E)

Más detalles

Ajustes del Curso en egela (Moodle 2.5)

Ajustes del Curso en egela (Moodle 2.5) Ajustes del Curso en egela (Moodle 2.5) Manual para el profesorado Versión 2 (12/05/2015) El presente manual ha sido desarrollado por el Campus Virtual de la Universidad del País Vasco / Euskal Herriko

Más detalles

FUENTES SECUNDARIAS INTERNAS

FUENTES SECUNDARIAS INTERNAS FUENTES SECUNDARIAS INTERNAS Las fuentes secundarias son informaciones que se encuentran ya recogidas en la empresa, aunque no necesariamente con la forma y finalidad que necesita un departamento de marketing.

Más detalles