Modelo Relacional.

Slides:



Advertisements
Presentaciones similares
IBD Clase 14.
Advertisements

Taller de Lógica Facultad de Filosofía y Letras, UBA. 2do cuatrimestre de 2006 Facultad de Filosofía y Letras, UBA.
Seminario: Expresividad semántica y lógica de segundo orden
Seminario: Teorías Formales de la Verdad
Introducción al Teorema de Gödel Eduardo Alejandro Barrio UBA - CONICET 2do Cuatrimestre de 2009 Eduardo Alejandro Barrio UBA.
Seminario: Expresividad semántica y lógica de segundo orden
Seminario: Todo Prof. Eduardo Alejandro Barrio 1er cuatrimestre de 2006 Facultad de Filosofía y Letras, UBA.
Seminario: Interpretaciones y Modelos Conjuntistas
Seminario: Interpretaciones y Modelos Conjuntistas Profesores Dr Alberto Moretti Dr Eduardo Alejandro Barrio 2do cuatrimestre de 2005 Facultad de Filosofía.
Introducción al Teorema de Gödel Eduardo Alejandro Barrio UBA - CONICET 2do Cuatrimestre de 2009 Eduardo Alejandro Barrio UBA.
Introducción al Teorema de Gödel Eduardo Alejandro Barrio UBA - CONICET 2do Cuatrimestre de 2009 Eduardo Alejandro Barrio UBA.
integridad referencial
Rocío Contreras Águila Primer Semestre 2010
Tema: Decibilidad Integrantes: Ileana Rdguez Soto
Teórico: Modelo Relacional
ALGEBRA RELACIONAL Y CALCULO RELACIONAL CON REFERENCIA A BASE DE DATOS
Unidad II: Teoría de Conjuntos.
INTELIGENCIA ARTIFICIAL
COLEGIO NACIONAL DE EDUCACIÓN PROFESIONAL TÉCNICA
Estadística Computacional I
Sistemas de Razonamiento Lógico
Maestría en Bioinformática Bases de Datos y Sistemas de Información Fundamentos de Matemática Ing. Alfonso Vicente, PMP
Teórico: Algebra Relacional
José Alfredo Cervantes Guzmán UMSNH Coautor: Jesús Rivera
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Introducción y sintaxis
MODELO RELACIONAL.
UNIDAD 2 CONJUNTOS.
Teoría de conjuntos Un conjunto es una colección o clase de objetos bien definidos y diferenciables entre sí. Los conjuntos pueden ser finitos o infinitos.
FUNDAMENTOS DE LA TEORÍA DE CONJUNTOS
NORMALIZACIÓN DE DATOS
Integración de Información usando Vistas Lógicas Jeffrey D. Ullman Presentación: Juan Quinteros.
PROGRAMACIÓN LÓGICA.
Answering Queries Using Views (Levy, Mendelzon, Sagiv, Srivastava) Javier López C.
UNIDAD I Conceptos Básicos.
UNIVERSIDAD DE MANAGUA I CUATRIMESTRE INTRODUCCION A LA PROGRAMACION
BASE DE DATOS I Clase # 1.
Lenguajes Formales de Consulta
1 CALCULO DE PREDICADOS Introducción y sintaxis äPermite acceder a los componentes de una aserción individual äLas expresiones pueden contener variables,
Hasta ahora: Lógica Proposicional. q. p:-q. r:-p ?-r. Si tienes un jaguar, conduces rápido. Tienes un jaguar. Es cierto que conduces rápido? p:-q.
CARACTERÍSTICAS DE LOS PROGRAMAS
"Y todo lo que hagáis, hacedlo de corazón, como para el Señor y no para los hombres" (Colosenses 3:23) Prof. Leonid Tineo Departamento de Computación Universidad.
SQL: Lenguaje de Interrogación Estructurado
CONTENIDO CONJUNTOS RELACIONES FUNCIONES CONJUNTOS.
Algebra Relacional.
El Modelo Relacional Francisco Moreno 12/04/2017 Curso Bases de Datos.
John Freddy Duitama Muñoz. Facultad de Ingeniería. U. de. A.
LOGICA DE ENUNCIADO LOGICA DE PREDICADO
Funciones y sus Gráficas.
Campus Estado de México—Raúl Monroy Resolución, la regla de inferencia y el cálculo Raúl Monroy.
Algebra Relacional.
Lógica de proposiciones, deducción natural
Curso de Teoría del Autómata
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
Expresiones algebraicas equivalentes
Dr. Eduardo Morales/Dr. Enrique Súcar Sesión 4 Dr. Eduardo Morales/Dr. Enrique Súcar Sesión 4 Lógica como Representación.
FUNCIONES PARA OPERAR CON EXPRESIONES ALGEBRAICAS
Para pasar a tablas todos los datos sin dejar nada y que las tablas tengan sentido por si solas se tiene que seguir unos pasos: 1.Toda entidad se transforma.
Capítulo 3: Conjuntos Autor: José Alfredo Jiménez Murillo.
Tipos de Datos.
LIC. JOSEPH RUITON RICRA
Bases de Datos Modelo Relacional.
JOIN EN MYSQL Bueno en esta presentación mostrare cosas acerca de los usos de la sentencia JOIN en mysql , mediante esta presentación planeo mostrar los.
Dr. Eduardo Morales/Dr. Enrique Súcar Sesión 4 Dr. Eduardo Morales/Dr. Enrique Súcar Sesión 4 Lógica como Representación.
Base de Datos I – Ing. Mary Carlota Bernal J.
Administración de Base de Datos Procesamiento y Optimización de Consultas Prof Mercy Ospina Torres Prof Renny A. Hernandez
BASES DE DATOS II Yahaira Mora Luis Fernando Peláez Maria Fernanda Pineda Monserrat Rodríguez Fernando Solano.
Administración de Base de Datos Procesamiento y Optimización de Consultas Prof Mercy Ospina Torres Prof Renny A. Hernandez
Bases de datos II Universidad del Cauca Ing. Wilson Ortega.
Fundamentos de Bases de Datos
Transcripción de la presentación:

Modelo Relacional

Lógica-Cálculo de Predicados Cálculo Predicadosl-Definición Informal: Unidad mínima de formalización: predicados que describen el sujeto de una oración o afirmación. Cada predicado se modela como relación sobre un conjunto de dominios en el universo de discurso. Variables en los predicados representan a cualquier elemento en el universo de disucrso. Variables pueden estar cuantificadas. Afirmaciones compuestas se modelan como conexiones de afirmaciones atómicas. Las conexiones se realizan a través de conectores que modelan preposiciones del lenguaje natural.

Lógica-Cálculo de Predicados Sea P un símbolo de predicado de aridad n, y sean t1,..,tn términos, entonces, P(t1,..,tn) es una fórmula del cálculo de predicados. Las constantes true y false son fórmulas del cálculo de predicados. Sean 1 y 2 fórmulas del cálculo de predicados, entonces: ¬ 1 es una fórmula del cálculo de predicados. 1 * 2 es una fórmula del cálculo de predicados, donde *  {v,,,,}. (1) es una fórmula del cálculo de predicados. (i| 1: 2) es una fórmula del cálculo de predicados. ( i| 1: 2) es una fórmula del cálculo de predicados. Axiomas básicos: (i| 1: 2)  (i|: 1-> 2) ( i| 1: 2)  ( i|: 1 & 2)

Lógica-Cálculo de Predicados-Términos Si c es una constante, entonces c es un término. Si x es una variable, entonces x es un término. Si F es un símbolo funcional de aridad n y t1,..,tn son términos, entonces, F(t1,…,tn) es un término.

Lógica-Cálculo de Predicados-Variables Libres Variable libre: Si P es un predicado entonces la variable i ocurre libre en P. La variable i ocurre libre en true y false. Sea i una variable que ocurre libre en E. Entonces, i es libre en: (E) ¬E E * E1 (x| 1: 2) o ( x| 1: 2) ssi i no pertenece a las variables en x

Lógica-Cálculo de Predicados-Variables Limitadas Variable limitada: Sea i una variable que ocurre libre en E. Entonces, i está limitada en las expresiones: (x| E: F) o (x| F: E) o ( x| E: F) o ( x| F: E) ssi i pertenece a las variables en x. Si i está limitada en E1, entonces, i está limitada en: (E1) (y| E1: F) o (y| F: E1) o ( y| E1: F) o ( y| F: E1) Una fórmula es cerrada si no tiene ocurrencias de variables libres.

Lógica-Cálculo de Predicados Una interpretación de un lenguaje del cálculo de Predicados es un 4-tupla: I=(U,C,P,F), donde: U: es un conjunto no vacío de elementos llamado universo de discurso. C: es una función de las constantes a elementos en U. P: hace corresponder cada símbolo de predicado p de aridad n a un subconjunto Un. F: hace corresponder cada símbolo de funcional p de aridad n de subconjunto Un a un conjunto U.

Lógica-Cálculo de Predicados Dado un lenguaje L,  una fórmula sobre L, e I una interpretación de L sobre el universo U Una asignación de  es una función parcial de las variables de L a U. l Una interpretación I es modelo de un conjunto de fórmulas , ssi I satisface cada fórmula en .

Implicación Semántica Sea  un conjunto de fórmulas de la Lógica de Primer Orden y  una fórmula de la Lógica de Primer Orden, el problema de decidir si  |=  es un problema no decidible.

Cálculo de Predicados y Bases de Datos-Limitaciones Interpretaciones Finitas. Closed World Assumption. Lenguajes basados en Lógica de Predicados pero con restricciones: Consultas Conjuntivas No cíclicas: Cálculo y Algebra Relacional sin diferencia o negación. Datalog sin recursión y negación. Consultas Conjuntivas con Negación. Consultas Conjuntivas con clausura transitiva.

Modelo Relacional Estructura básica: Relación: Propiedades: Se define sobre un conjunto de dominios D1,..,Dn. Corresponde a un subconjunto sobre el producto cartesiano de D1,..,Dn Propiedades: No existen tuplas repetidas. El orden de los elementos es irrelevante. Si las columnas se nombran, en orden de las columnas es irrelevante. Restricciones: Integridad Referencial Clave Primaria

Modelo Relacional-Terminología Sea R una relación con los atributos A1,…,An sobre los dominios D1,…, Dn, respectivamente, entonces R  D1x…xDn No hay tuplas repetidas. El orden de las tuplas es irrelevante. El orden de las columnas es irrelevante.

Terminología Producto(Nombre Relación) Nombres de Attributos Nombre Precio Categoria Fabricante Carton 1000 chocolate Savoy Toronto 6000 chocolate Savoy CafeMocha 3000 alimento Fama de America tuplas (Aridad=4) Producto(Nombre: string, Precio: real, Categoria: enum, Fabricante: string)

Interrogando a una Base de Datos SELECT P.Fabricante FROM Producto P WHERE P.Precio>1000 SQL (Structured Query Language) Basado en Álgebra y Cálculo Relacional. Datalog.

Modelo Relacional-Lenguajes de Interrogación Consultas Conyuntivas Acíclicas: Algebra Relacional: Basado en teoría de conjuntos. Cerrada. Cálculo Relacional Basado en Lógica de Primer Orden. Reglas Recursivas: Datalog

Álgebra Relacional Álgebra cerrada: El resultado de la aplicación de cualquier operador del álgebra relacional a una o más relaciones es también una relación. Operadores Básicos: Selección Proyección Producto Cartesiano Unión Intersección Operadores No Básicos: Join: Theta, Natural.

Álgebra Relacional Selección: selecciona las tuplas de una relación R que satisface la condición F: (R,F)={t/ t  R y t satisface F} Proyección: permite identificar los valores de los campos identificados, descartando el resto de los campos de la relación. (R,A1,…,Am)={<t.A1,..,t.Am>/ t  R}

Álgebra Relacional Producto Cartesiano: R1 X R2={<t.A1,…,t.An,k.B1,..,k.Bm>/ t  R1 y k  R2} Theta Join: R1 Join Cond R2= (R1 X R2, Cond). Join Natural: R1 Join R2= (R1 Join Cond R2,A1..An,B1,..,Bm-n)

Álgebra Relacional Dar todas la compañías que producen productos de la categoría “chocolate”. T1: (Categoria=“chocolate”)(Producto) T2: Fabricante(T1)

Álgebra Relacional T1: (Categoria=“chocolate”)(Producto)) Nombre Precio Categoria Fabricante Carton 1000 chocolate Savoy Toronto 6000 chocolate Savoy

Álgebra Relacional T2: Fabricante(T1) Fabricante Savoy

Álgebra Relacional T1: (Producto Join Fabricante) Producto(Nombre,Precio,Categoria,Fabricante) Fabricante(Fabricante,RazonSocial,NumeroEmpleados) “El número de empleados de las empresas que fabrican productos de la categoría chocolate” T1: (Producto Join Fabricante) T2: (Categoria=“chocolate”)(T1) T3: NumeroEmpleados(T2) Join= Join Natural

Datalog Un programa Datalog es un conjunto de clausulas Horn, donde los predicados no reciben como argumetos funtores. Variables: un string finito de caracteres alfanuméricos que comienzan con una letra mayúsculas. Constantes: un string finito de caracteres alfanuméricos Predicados: representa a una correspondencia entre elementos de un dominio D donde el predicado es definido y un conjunto de valores {true,false}. Los argumentos de un predicados son variables o constantes.

Datalog Literal es un predicado o la negación de un predicado. Clausula es una colección de literales. Existen tres clases de clausulas: Reglas: en una clausula que consiste de una cabeza y un cuerpo. Cabeza: literal positivo. Cuerpo: colección de literales. Hechos: único literal. Corresponde a un axioma. Objetivos: regla si cabeza, que corresponde a una consulta.

Datalog-Máquina de Inferencia Regla General de Inferencia-Elementary Production: Produce nuevos hechos Datalog a partir de reglas y hechos Datalog. R: L0:-L1,….,Ln; F1,…,Fn Lista de átomos ground: F1,…,Fn, donde: Existe un subsitución = 1 U..U n de las variables de Li tal que Fi= iLi, entonces  L0 es un nuevo hecho o átomo ground.

Ejemplo Programa Datalog con recursión BDE: arc(a,b). arc(f,h). arc(h,j). arc(j,k). arc(k,l) arc(b,c). arc(c,t). arc(f,p). arc(p,j). arc(b,d). arc(f,l). arc(l,q). arc(q,z). BDI: path(X,Y):-arc(X,Y). path(X,Y):-arc(X,Z),path(Z,Y).

Equivalencia Lenguajes Lógicos Teorema: Sea P un programa Datalog sin recursión o sin símbolos funcionales, entonces, por cada predicado p en P, existe una expresión equivalente en el álgebra relacional.

Complejidad de Lenguajes Lógicos Poder expresivo de un lenguaje L: es el conjunto de funciones que pueden ser escritas en L. Requerimiento lenguaje de consultas para ser relacionalmente completo: Ser capaz de expresar todas las consultas expresables en álgebra relacional. Cálculo Relacional, SQL sin agregación y Datalog sin recursión ni negación son relacionalmente completos. Se conocen también como lenguajes FO.

Complejidad de Lenguajes Lógicos-Complejidad de los Datos Sea q una consulta, DB una instancia de un esquema relacional R y A el conjunto de las respuestas de q en DB, q: set(DB) -> set(A), Es decir, q es una correspondencia desde el conjunto de instancias de R al conjunto de posibles respuestas. La medida de complejidad determina la cantidad de veces que instancias de R deben ser consultas para producir A.

Complejidad de Lenguajes Lógicos-Complejidad de los Datos Formalmente, el modelo de computación puede ser una máquina de Turing y una instancia BD de un equema R de tamaño n, se codifica en una cinta O(n). Todas las consultas en la BD pueden ser vistas como máquinas de Turing. En caso que q sea evaluado en tiempo polinomial, se requerirán un número polinomial de pasos en la cinta (BD) para encontrar la respuesta, es decir, O(nk) , donde k es un número positivo. El conjunto de máquinas que pueden encontrar la respuesta en un número polinomial de pasos se denominan funciones DB-PTIME.

Complejidad de Lenguajes Lógicos-Complejidad de los Datos Se dice que un lenguaje L es DB-PTIME si cada función puede expresar se computa en tiempo polinomial en función de n. Se dice que un lenguaje L es DB-PTIME complete, si L es DB-PTIME y L puede expresar todas las funciones que que son DB-PTIME computables. Los Lenguajes FO son DB-PTIME computables. Técnicas sofisticadas de optimización y evaluación sn usadas por los DBMS para mantener los exponentes y coeficientes de O(nk) bajos. Los Lenguajes FO no son DB-TIME complete porque existen funciones, por ejemplo, la clausura transitiva, que son DB-PTIME, que no pueden ser expresadas en lenguajes FO.