base de datos para aplicaciones_1
DESCRIPTION
Base de Datos Para Aplicaciones, en postgreSQL. contiene :Modelo de datos relacionalformalidades del modelo relacionalde datosoperaciones en el modelo de datosAlgebra relacionalTRANSCRIPT
Base de datos para aplicaciones
Base de datos para aplicaciones
PostgreSQL
Contenido
Que es PostgreSQL?
Como funciona?
Modelo de datos relacional
Formalidades del modelo relacional de datos
Operaciones en el modelo de datos
Algebra relacional
Seleccin
Proyeccin
Contenido
Producto cartesiano
Natural join
Instrucciones SQL
SELECT
JOINS
OPERADORES AGREGADOS
AGREGACION POR GRUPOS
HAVING
Que es PostgreSQL
PostgreSQL es un potente sistema de base de datos objeto-relacional de cdigo abierto. Se ejecuta en los principales sistemas operativos que existen en la actualidad como:
Linux
UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64)
Windows
Que es PostgreSQL
Una base de datos de clase empresarial, PostgreSQL cuenta con caractersticas avanzadas tales como Multi-Version Control de concurrencia (MVCC), puntos en tiempo de recuperacin, tablespaces, replicacin asincrnica, transacciones anidadas (savepoints), respaldos online/hot, un sofisticado query planner/optimizer.
Que es PostgreSQL
Algunos lmites y caracteristicas generales que se incluyen en PostgreSQL son:
Como funciona PostgreSQL?
PostgreSQL tiene una arquitectura que involucra muchos estilos, en su nivel mas alto es un esquema clsico cliente-servidor, mientras que el acceso al motor es un esquema en capas
Como funciona PostgreSQL?
El Libpq es el responsable de manipular las comunicaciones entre la aplicacin cliente y el postmaster (servicio del PostgreSQL en el servidor).
El server esta compuesto por 2 grandes subsistemas, el Postmaster que es el responsable de aceptar las comunicaciones con el cliente, autentificar y dar acceso. El Postgres se encarga de la administracin de los querys y comandos enviados por el cliente.
El Storage Manager es responsable de la administracin general de almacenamiento de los datos, controla todos los trabajos del back-end incluido la administracin del buffer, archivos, bloqueos y control de la consistencia de la informacin.
Modelo de datos relacional
Una base de datos relacional
Coleccin de tablas
Filas (registros)
Columnas (atributos)
Base de datos proveedores y artculos
Proveedor (numero, nombre, ciudad)
Articulo (numero, nombre, precio)
Ventas (numero de proveedor, numero de articulo)
Modelo de datos relacional
NUMNOMBRECIUDAD1SMITHLONDRES2JONESPARIS3ADAMSROMA4BLAKEGRECIANUMNOMBREPRECIO1TORNILLOS102TUERCAS83CERROJOS154LEVAS25NUM_PNUM_A11122431PROVEEDORES
ARTICULOS
VENTAS
FORMALIDADES DEL MODELO RELACIONAL DE DATOS
Modelo relacional
Relacin --- teora de conjuntos
Dominio es simplemente un conjunto de valores
Conjuntos de enteros
Cadenas de caracteres de longitud 20
Nmeros reales
FORMALIDADES DEL MODELO RELACIONAL DE DATOS
Producto cartesiano de los dominios d1,d2,dk escritos d1Xd2xX dK es el conjunto de las K-tuplas V1,V2,VK.
Como resultado los miembros de una relacin se llaman tuplas.
Ejercicios
P=2, d1={1,1} y d2={a,b,c,d}
D1={123} y d2={a,b,c}
D1={0,1,2} y d2={6,8,7}
Operaciones del modelo de datos
Hay 2 formas diferentes de notaciones para expresar las operaciones entre relaciones:
Algebra relacional: notacin algebraica
Consultas con operadores
Calculo relacional: notacin lgica
Consultas con restricciones lgicas.
Seleccin (select)
Se utiliza en relaciones produciendo una nueva con un subconjunto de tuplas de R. Las tuplas de la relacin resultante son las que satisfacen una condicin, sobre algn atributo de la relacin.
Select se representa por sigma si utilizamos la notacin c R.
Ejemplo 1
Seleccionar las tuplas de la tabla proveedores que cumplan con tener edad mayor a 30 aos
edad >30 proveedores
NUMNOMBRECIUDADedad1SMITHLONDRES352JONESPARIS273ADAMSROMA384BLAKEGRECIA40Ejemplo 2
Seleccionar de la tabla proveedores las personas que tienen mas de 30 aos y que lleven menos de 16 aos trabajando
(edad >30aostrabaj30 proveedores)
NUMNOMBRECIUDADEDADAOS TRABAJ1SMITHLONDRES35202JONESPARIS27153ADAMSROMA3854BLAKEGRECIA4016NUMNOMBRE1SMITH3ADAMS4BLAKESean las siguientes relaciones obtener:
CalleNumeroValorMoreno83635000Pereira54842000Pedraza36858800Moreno98745000Azurduy45751000Pedraza32185000Pereira50145000CalleNumerotelefonoMoreno8364913456Pereira5484898998Pedraza3685646997Moreno9874656225Azurduy4575987745Pedraza3214656588Pereira5015986451Moreno9874656225Pedraza3214656588casas
Telefono_casas
CalleNumeroValorMartinez45935000Vergara3125900Azurduy8839000Otras_casas
Listar la calle y el nmero de las casas
Listar todas las casas de la calle moreno
Listar los nmeros de las casas de la calle Moreno
Listar la calle y el numero de las casas que tienen un valor mayor a 47500
Ejercicios propuestos
Natural join
Este operador se utiliza cuando se tiene la necesidad de unir relaciones vinculando solo las tuplas que coinciden de alguna manera, une solo los pares de tuplas de R y S que sean comunes.
Natural join se utiliza R S
Natural Join
Mtodo
Se realiza el producto cartesiano
Se seleccionan aquellas filas del producto cartesiano en donde los atributos comunes tengan el mismo valor
Se elimina del resultado una ocurrencia (columna) de cada uno de los atributos comunes.
Ejemplo 1
Realizar el join de las tablas:
Resultado
Tabla1 tabla2
NUMD#NOMBRECIUDAD131SMITHLONDRES223JONESPARIS324ADAMSROMA411BLAKEGRECIAD#venta31Norte23Sur11EsteNUMD#ventaNOMBRECIUDAD131NorteSMITHLONDRES223SurJONESPARIS411EsteBLAKEGRECIAModelo de datos relacional
NUMNOMBRECIUDAD1SMITHLONDRES2JONESPARIS3ADAMSROMA4BLAKEGRECIANUMNOMBREPRECIO1TORNILLOS102TUERCAS83CERROJOS154LEVAS25NUM_PNUM_A11122431PROVEEDORES
ARTICULOS
VENTAS
Instrucciones SQL
SELECT: El comando ms usado en SQL es la instruccin SELECT, que se utiliza para recuperar datos. La sintaxis es:
SELECT [ALL|DISTINCT]
{ * | expr_1 [AS c_alias_1] [, ...
[, expr_k [AS c_alias_k]]]}
FROM table_name_1 [t_alias_1]
[, ... [, table_name_n [t_alias_n]]]
[WHERE condition]
[GROUP BY name_of_attr_i
[,... [, name_of_attr_j]] [HAVING condition]]
[{UNION [ALL] | INTERSECT | EXCEPT} SELECT ...]
[ORDER BY name_of_attr_i [ASC|DESC]
[, ... [, name_of_attr_j [ASC|DESC]]]];
SELECT
Para recuperar todas las tuplas de la tabla casa donde el atributo numero es mayor que 420la siguiente consulta:
Select * from casa
Where numero > 420;
select
Observa que el select hace referencia a la proyeccin.
Las condiciones en la clausula where pueden tambien conectarse lgicamente utilizando las palabras clave or, and, y not.