Teoría de Conjuntos
Jóse Manuel Gómez Soto
Universidad La Salle
Conjunto
La teoría de conjuntos: desarrollada por
Georg Cantor (1845-1918)
Conjunto: Colección de objetos de cualquier
naturaleza.
A dichos objetos se les llama elementos.
Conjuntos
Ejemplos:
Los muebles de el salon
El alfabeto de algun idioma
El conjunto de los números binarios
Notación
Usualmente, A, B, . . . , X, Y denotarán conjuntos
y a, b, . . . , z elementos de algún conjunto.
Si a es un elemento de A, entonces esto se denotará como a ∈ A,
mientras que si a no es un elemento de A entonces esto se expresará como a ∈
/A
Formas de denotar conjuntos
Enlistando sus miembros
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, {a, e, i, o, u} o ∅ = {}.
Haciendo uso de un patrón
A = {0, 1, 2, . . . , 100}
N = {1, 2, 3, . . .}
Z + = {0, 1, 2, 3, . . .}
Z = {. . . , −2, −1, 0, 1, 2, . . .}
Formas de denotar conjuntos
En forma de predicado
[a, b] = {x : a ≤ x ≤ b}
Z + = {x : x ≥ 0, x ∈ Z}
p
Q = {x : q donde p, q ∈ Z, q "= 0}
Formas de denotar conjuntos
De manera inductiva
Conjunto base
Sea A tal que 4, 6 ∈ A,
Proceso iterativo
y sean los elementos de A tales que si x, y ∈ A,
entonces x + y, x − y son elementos de A.
Conjuntos prohibidos
Conjuntos que tengan elementos
repetidos.
Un conjunto no puede contenerse a sí
mismo. Paradoja de Rusell
Igualdad entre conjuntos
Sean A, B dos conjuntos, entonces diremos que:
A y B son iguales, A = B, si sus elementos son los ,mismos.
A es un subconjunto de B (o que B contiene a A),
A ⊆ B, si todos los elementos de A son elementos de B.
A es un subconjunto propio de B , A ⊂ B, si A ⊆ B,
y existe b un elemento de B
el cual no es un elemento de A (b ∈ A, b ∈
/ A)
Recomendación ejercicios
Cardinalidad
La cardinalidad de un conjunto A, representado por |A|,
se refiere al número de elementos que componen al conjunto.
|∅| = 0
|{1, 2, 3}| = 3
|N | = |Z + | = |Z| = |Q| = ∞
Operaciones sobre conjuntos
Unión
La unión de dos conjuntos A, B, denotado por A ∪ B, se define como:
A ∪ B = {x : x ∈ A ó x ∈ B}
Operaciones sobre conjuntos
Intersección
La intersección de dos conjuntos A, B, denotado por A ∩ B, se define como:
A ∩ B = {x : x ∈ A, x ∈ B}
Operaciones sobre conjuntos
Conjuntos disjuntos
A∩B =∅
Operaciones sobre conjuntos
Partición de un Conjunto A
Es un conjunto de subconjuntos disjuntos
Ai∈I tales que ∪i∈I Ai = A
Operaciones sobre conjuntos
c
A
Complemento de un conjunto A
Ac = {x ∈ U : x ∈
/ A}
Operaciones sobre conjuntos
A−B
La diferencia de dos conjuntos A,B
se define como el conjunto
c
A−B =A∩B
A − B = {x ∈ A : x ∈
/ B}
Operaciones sobre conjuntos
A!B
La diferencia simétrica de dos conjuntos A,B
se define como el conjunto
A ! B = (A − B) ∪ (B − A)
A ! B = (A ∪ B) ∩ (B ∩ A)c
Diagramas de Venn
U
A B
Ejercicio
Representar las operaciones anteriores con
diagramas de Venn
Propiedades sobre las
operaciones
Propiedad Conmutativa
A∪B =B∪A
A∩B =B∩A
A!B =B!A
Unión Intersección Dif. Simétrica
Propiedades sobre las
operaciones
Propiedad Asociativa
A ∪ (B ∪ C) = (A ∪ B) ∪ C
A ∩ (B ∩ C) = (A ∩ B) ∩ C
A ! (B ! C) = (A ! B) ! C
Unión Intersección Dif. Simétrica
Propiedades sobre las
operaciones
Propiedad Distributiva
Con respecto a la Unión e Intersección
A ∩ (B ∪ C) = (A ∩ B) ∪ (A ∩ C)
A ∪ (B ∩ C) = (A ∪ B) ∩ (A ∪ C)
A ∩ (B " C) = (A " B) ∪ (A " C)
Unión Intersección Dif. Simétrica
Propiedades sobre las
operaciones
Operaciones que dan la Identidad
A∪∅=A
A∩U =A
A−∅=A
A!∅=A
Propiedades sobre las
operaciones
Propiedad Idempotencia
A∪A=A
A∩A=A
Unión Intersección
Propiedades sobre las
operaciones
Operaciones con el Complemento
A ∪ Ac = U
A ∩ Ac = ∅
A ! Ac = U
c
A−A =A
Propiedades sobre las
operaciones
Doble Complemento
(A ) = A
c c
Propiedades sobre las
operaciones
Leyes de De Morgan
(A ∪ B) = A ∩ B
c c c
(A ∩ B) = A ∪ B
c c c
Propiedades sobre las
operaciones
Operaciones con la Cardinalidad
|A ∪ B| = |A| + |B| − |A ∩ B|
|A ∪ B ∪ C| = |A| + |B| + |C| − |A ∩ B| − |A ∩ C| − |B ∩ C| + |A ∩ B ∩ C|
Tarea
Propiedades sobre las
operaciones
Par Ordenado
(a, b) = {{a}, {a, b}}
(a, b) != (b, a)
(a, b) = (a! , b) únicamente si a = a! y b = b!
Propiedades sobre las
operaciones
Producto cartesiano
A × B = {(a, b) : a ∈ A, b ∈ B}
Ejemplo:
A = {1, 2, 3} B = {−1, 0, 1}
A × B =?
Relación
Una relación R de A en B es cualquier subconjunto de A × B.
Si (x, y) ∈ R entonces se dice que
‘x esta relacionado con y’ y se escribe xRy o R(x, y)
Ejemplo 1
Sea F={Ana, Berta, Carlos, Diana, Ernesto} una
familia en la cual Ana es la madre de Berta, Berta es
la madre de Carlos y Diana y Diana es la madre de
Ernesto.
Relación ¨es Madre de¨
Ejemplo 2
Sean A={a,b,c,d,e} y B={u,v,w,x}. Dar una
representación gráfica de la relación:
R={(a,u),(b,u),(b,w),(d,x)}
Representación matricial
La intersección de la fila i y la columna j
tiene un 1 si (aj , bj ) ∈ R y
un 0 en caso contrario.
Ejemplo 3
Represente la siguiente relación mediante
una matriz.
Sean A = {a1 , a2 , a3 , a4 , a5 }, B = {b1 , b2 , b3 , b4 }
y R = {(a1 , b1 ), (a2 , b1 ), (a2 , b3 ), (a4 , b4 ), (a5 , b3 )}
Propiedades de
reflexiva: si xRx para todo x ∈ A
irreflexiva: si para ningún x ∈ A se cumple xRx
simétrica: si cada vez que xRy entonces también yRx.
asimétrica: si xRy y yRx nunca se cumplen simultáneamente.
antisimétrica: si xRy y yRx implican que x = y.
transitiva: si cada vez que xRy y yRz entonces también que xRz.
Ilustrar con ejemplos estas
propiedades
SQL
Jóse Manuel Gómez Soto
Universidad La Salle
PostgreSQL
Systema Manejador de Bases de Datos
objeto-relacional (ORDBMS)
Desarrolado en Berkeley.
Es derivado del paquete POSTGRES
Soporta casi todas las construcciones de
SQL y los lenguajes C, C++, Java, Perl,
Tcl y Phyton
POSTGRES
El proyecto de POSTGRES comenzó a
implementarse en 1986
versión 1: 1989.
versión 2: 1990. Rediseño del sistema de
reglas.
version 3: 1991. Múltiples sistemas de
almacenamiento, mejoras en el ejecutor
de queries.
Postgress95
Enfocado en portabilidad y confiabilidad.
En 1994 Andrew Yu y Jolly Chen
agregaron el interprete de SQL.
Postgres se ha utilizado en aplicaciones
de investigación y producción: Sistemas
de bases de datos financieras, bases de
datos de información médica, sistemas de
información geográfica
Postgres95
Illlustra Information Technologies tomó el
código de Postgres y lo comercializó bajo
el nombre de INFORMIX.
Postgres95 PostgreSQL
PostgreSQL
Sistema
pgsql
archivos de datos
pgsql/data
Introducción
Levantar Manejador de Base de Datos
Salir
Ayuda en línea
Crear una Base de Datos
Accesar una Base de Datos
Levantar Manejador de Base de Datos
Desde el directorio bin
postmaster -D /Users/jmgomez/pgsql/data -i -S > /
Users/jmgomez/pgsql/[Link] &
psql template1
Accesar un Manejador de Base de Datos
psql template1
La primera vez el sistema ofrece a
template1 como una base de datos para
entrar a la consola. Una vez ahi se crea
una BD y la próxima vez se accesa la BD
propia.
Salir
\q
Ayuda en línea
\h
\h CREATE USER
\h CREATE DATABASE
CREAR una BD
CREATE DATABASE mimusica;
BORRAR una BD
DROP DATABASE mimusica;
Accesar BD propia
./psql mimusica
Versión, fecha, caluladora
SELECT version();
SELECT current_date;
SELECT 2+2;
Conceptos
PostgreSQL es un manejador de bases de
datos relacional:Maneja los datos
almacenados en relaciones
Relaciones=Tablas
Tabla:colección de renglones.
Renglones: conjunto de columas.
Columna: un tipo de dato.
Conceptos
Base de datos: un conjunto de tablas.
“Clusters” de Base de datos: Bases de
datos de un usuario
Creación de tablas
CREATE TABLE clima (
ciudad varchar(80), --nombre
tempbaja int, --baja temp
tempalta int, --alta temp
preci real, --precipitacion
fecha date);
Creación de tablas
CREATE TABLE ciudades (
nombre varchar(80),
lugar point);
Borrar tablas
DROP TABLE ciudades;
Introducir datos a las tablas
Orden preestablecido
INSERT INTO clima VALUES ('Aguascalientes', 43,
70, 0.15, '1994-11-29');
Introducir datos a las tablas
Orden explícito
INSERT INTO clima (ciudad, tempbaja, tempalta,
preci, fecha) VALUES ('San Pancho', 46, 50, 0.25,
'1994-11-27');
Introducir datos a las tablas
Orden particular
INSERT INTO clima (fecha, ciudad, tempbaja,
tempalta) VALUES ('1994-11-27', 'Mexico DF', 46,
50);
Introducir datos a las tablas
Tipo de dato POINT
INSERT INTO ciudades VALUES ('San Pancho',
'(-200.0,100.1)');
Consultando tablas
SELECT * FROM clima;
Consultando tablas
Expresiones arbitrarias
SELECT ciudad, (tempbaja+tempalta)/2 AS
tempprom, fecha FROM clima;
Consultando tablas
Con condiciones
SELECT * FROM clima WHERE ciudad = 'San
Pancho' AND preci > 0.0;
Consultando tablas
Ordenados
SELECT DISTINCT ciudad FROM clima
ORDER BY ciudad;
Consultando múltiples tablas
Join Queries
SELECT * FROM clima, ciudades
WHERE ciudad=nombre;
Consultando múltiples tablas
Join Queries
SELECT ciudad,tempbaja,tempalta,fecha,lugar FROM
clima,ciudades
WHERE ciudad=nombre;
Consultando múltiples tablas
Campos explícitos
SELECT
[Link],[Link],[Link],cli
[Link],[Link] FROM clima,ciudades
WHERE ciudad=nombre;
Consultando múltiples tablas
Ejercicio
SELECT * FROM clima, ciudades;
SELECT * FROM ciudades, clima;
Consultando múltiples tablas
INNER JOIN
SELECT * FROM clima INNER JOIN ciudades ON
([Link]=[Link]);
SELECT * FROM clima,ciudades
WHERE ciudad=nombre;
Consultando múltiples tablas
RIGHT OUTER JOIN
SELECT * FROM clima RIGHT OUTER JOIN
ciudades ON ([Link]=[Link]);
LEFT OUTER JOIN
SELECT * FROM clima LEFT OUTER JOIN
ciudades ON ([Link]=[Link]);
Consultando múltiples tablas
SELF JOIN
SELECT [Link], [Link] AS bajo,
[Link] AS alta, [Link], [Link] AS
baja, [Link] AS alta FROM clima W1, clima
W2 WHERE [Link] < [Link] AND
[Link] > [Link];
¿Qué hace esta
consulta?
Consultando múltiples tablas
Alias
SELECT * FROM clima w, ciudades c WHERE
[Link]=[Link];
Almacenar en archivo Ascii
Respaldo Dump
vaciado
COPY clima TO '/Users/jmgomez/Documents/
postgreSQL/[Link]' DELIMITER AS ',';
Llenado de tabla desde archivo
Ascii
Recuperación de información
COPY clima FROM '/Users/jmgomez/Documents/
postgreSQL/[Link]' DELIMITER AS ',';
Funciones agregadas
count, sum, avg, max y min.
SELECT max(temp_baja) FROM clima;
Ejercicio
Qué ciudad tiene la temperatura más alta?
SELECT ciudad FROM clima WHERE
temp_baja=max(temp_baja);
Ejercicio
Qué ciudad tiene la temperatura más alta?
SELECT ciudad FROM clima WHERE
temp_baja=max(temp_baja);
¿Porqué esta
restricción no se
cumple?
Ejercicio
Qué ciudad tiene la temperatura más alta?
SELECT ciudad FROM clima WHERE
temp_baja=max(temp_baja);
¿Porqué esta
restricción no se
cumple?
Ejercicio
Qué ciudad tiene la temperatura más alta?
SELECT ciudad FROM clima WHERE temp_baja=
(SELECT max(temp_baja) FROM clima);
Ejercicio
Qué ciudad tiene la temperatura más alta?
SELECT ciudad, max(temp_baja) FROM clima
GROUP BY ciudad;
Ejercicio
Qué ciudad tiene la temperatura más alta?
SELECT ciudad, max(temp_baja) FROM clima
GROUP BY ciudad HAVING max(temp_baja) < 40;
Ejercicio
Qué ciudad tiene la temperatura más alta?
SELECT ciudad, max(temp_baja)
FROM clima
WHERE ciudad LIKE 'S%'
GROUP BY ciudad
HAVING max(temp_baja)<40;
Actualizaciones
UPDATE clima
SET temp_alta=temp_alta-2,
temp_baja=temp_baja-2
WHERE fecha >'1994-11-28';
Borrado
DELETE FROM clima
WHERE ciudad ='San Pancho' and preci=0.0;
Borrado
Cuidado con la siguiente Instrucción!
DELETE FROM clima ;
Ventanas
CREATE VIEW miventana AS
SELECT ciudad, temp_baja, temp_alta,
preci, fecha, lugar
FROM clima,ciudades
WHERE ciudad=nombre;
SELECT * FROM miventana;
Llaves
CREATE TABLE ciudades1 (
ciudad varchar(80) primary key,
lugar point);
CREATE TABLE clima1 (
ciudad varchar(80) references ciudades1,
temp_baja int,
temp_alta int,
preci real,
fecha date);
INSERT INTO clima1 VALUES ('Berkeley',45,53,0.0,'1994-11-28');