0% encontró este documento útil (0 votos)
51 vistas87 páginas

Teo Con SQL

Este documento proporciona una introducción a la teoría de conjuntos. Define lo que es un conjunto y sus elementos. Explica formas comunes de denotar conjuntos como listas, patrones y predicados. Describe operaciones básicas entre conjuntos como la unión, intersección y diferencia. Finalmente, presenta propiedades clave de estas operaciones como conmutatividad, asociatividad y distribución.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
51 vistas87 páginas

Teo Con SQL

Este documento proporciona una introducción a la teoría de conjuntos. Define lo que es un conjunto y sus elementos. Explica formas comunes de denotar conjuntos como listas, patrones y predicados. Describe operaciones básicas entre conjuntos como la unión, intersección y diferencia. Finalmente, presenta propiedades clave de estas operaciones como conmutatividad, asociatividad y distribución.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 87

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/pgserver.log &

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
ciudades.nombre,clima.tempebaja,clima.tempealta,cli
ma.fecha,ciudades.lugar 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


(clima.ciudad=ciudades.nombre);

SELECT * FROM clima,ciudades


WHERE ciudad=nombre;
Consultando múltiples tablas
RIGHT OUTER JOIN

SELECT * FROM clima RIGHT OUTER JOIN


ciudades ON (clima.ciudad=ciudades.nombre);

LEFT OUTER JOIN


SELECT * FROM clima LEFT OUTER JOIN
ciudades ON (clima.ciudad=ciudades.nombre);
Consultando múltiples tablas
SELF JOIN
SELECT W1.ciudad, W1.tempebaja AS bajo,
W1.tempealta AS alta, W2.ciudad, W2.tempebaja AS
baja, W2.tempealta AS alta FROM clima W1, clima
W2 WHERE W1.tempebaja < W2.tempebaja AND
W1.tempealta > W2.tempealta;
¿Qué hace esta
consulta?
Consultando múltiples tablas
Alias

SELECT * FROM clima w, ciudades c WHERE


w.ciudad=c.nombre;
Almacenar en archivo Ascii

Respaldo Dump
vaciado
COPY clima TO '/Users/jmgomez/Documents/
postgreSQL/clima.txt' DELIMITER AS ',';
Llenado de tabla desde archivo
Ascii
Recuperación de información

COPY clima FROM '/Users/jmgomez/Documents/


postgreSQL/clima.txt' 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');

También podría gustarte