base de datos para aplicaciones_1

29
Base de datos para aplicaciones PostgreSQL

Upload: machuca-albiazul

Post on 03-Sep-2015

32 views

Category:

Documents


2 download

DESCRIPTION

Base de Datos Para Aplicaciones, en postgreSQL. contiene :Modelo de datos relacionalformalidades del modelo relacionalde datosoperaciones en el modelo de datosAlgebra relacional

TRANSCRIPT

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_A11122431

PROVEEDORES

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

NUMNOMBRECIUDADedad1SMITHLONDRES352JONESPARIS273ADAMSROMA384BLAKEGRECIA40

Ejemplo 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 TRABAJ1SMITHLONDRES35202JONESPARIS27153ADAMSROMA3854BLAKEGRECIA4016NUMNOMBRE1SMITH3ADAMS4BLAKE

Sean las siguientes relaciones obtener:

CalleNumeroValorMoreno83635000Pereira54842000Pedraza36858800Moreno98745000Azurduy45751000Pedraza32185000Pereira50145000CalleNumerotelefonoMoreno8364913456Pereira5484898998Pedraza3685646997Moreno9874656225Azurduy4575987745Pedraza3214656588Pereira5015986451Moreno9874656225Pedraza3214656588

casas

Telefono_casas

CalleNumeroValorMartinez45935000Vergara3125900Azurduy8839000

Otras_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#ventaNOMBRECIUDAD131NorteSMITHLONDRES223SurJONESPARIS411EsteBLAKEGRECIA

Modelo de datos relacional

NUMNOMBRECIUDAD1SMITHLONDRES2JONESPARIS3ADAMSROMA4BLAKEGRECIANUMNOMBREPRECIO1TORNILLOS102TUERCAS83CERROJOS154LEVAS25NUM_PNUM_A11122431

PROVEEDORES

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.