1 PostgreSQL Patricio Denzer [email protected]
2 Introducción
3 ¿Qué es PostgreSQL? Sistema de Bases de Datos RelacionalesSistema de Bases de Datos Relacionales Open SourceOpen Source Orientado al ObjetoOrientado al Objeto Ideas básicas acerca del funcionamientoIdeas básicas acerca del funcionamiento –Modelo Cliente-Servidor –Postmaster –Backend –Clientes
4 PostgreSQL v/s sus pares MySQLPostgreSQL SAP DB Cumple con estándar SQL MediaAlta- VelocidadMedia/AltaMedia- Integridad de Datos NoSiSi SeguridadAltaMedia- Soporte disparadores NoSiSi ReplicaciónSiSi- Integridad Referencial NoSiSi TransaccionesSiSi- Backups funcionando SiSi- Soporte Unicode NoSi-
5 Ventajas de PostgreSQL EstableEstable Alto RendimientoAlto Rendimiento FlexibilidadFlexibilidad Se puede extender su funcionalidadSe puede extender su funcionalidad Gran Compatibilidad Permite crear o migrar aplicaciones desde Access, Visual Basic, Visual Fox Pro, Visual C/C++, Delphi para usar PostgreSQL como servidor de DB’s.Gran Compatibilidad Permite crear o migrar aplicaciones desde Access, Visual Basic, Visual Fox Pro, Visual C/C++, Delphi para usar PostgreSQL como servidor de DB’s.
6 Varias Interfaces de Programación: ODBC, JDBC, C/C++, SQL Embebido, Tcl/Tk, Perl, Python, PHP.Varias Interfaces de Programación: ODBC, JDBC, C/C++, SQL Embebido, Tcl/Tk, Perl, Python, PHP.
7 Instalación de PostgreSQL Requerimientos de HWRequerimientos de HW –8 MB RAM –30 MB HDD - src –5 MB HDD - bin –1 MB HDD – DB’s básicas. Instalación a Partir de los fuentesInstalación a Partir de los fuentes PostreSQL y las distribuciones de LinuxPostreSQL y las distribuciones de Linux
8 Introducción a SQL
9 El Modelo de Datos Relacional Punto de vista del usuario Base de Datos Relacional=Conjunto de TablasBase de Datos Relacional=Conjunto de Tablas Tabla 1: Motherboards SNMarcaModeloPrecio 2400AsusP3V13370.000 2401AsusA7M266D183.717 2402MSIMS653378.967 2403PcChipsM84145.641
10 El Modelo de Datos Relacional Definición Formal Teoría de Conjuntos RelaciónTeoría de Conjuntos Relación Relación: subconjunto del producto cartesiano de una lista de dominios.Relación: subconjunto del producto cartesiano de una lista de dominios. Dominio: conjunto de valores.Dominio: conjunto de valores.donde:
11 El Modelo de Datos Relacional Ejemplo:Ejemplo: Regresando a la idea de la tabla, cada fila representa una tupla y cada columna un elemento de esta.Regresando a la idea de la tabla, cada fila representa una tupla y cada columna un elemento de esta.
12 El Modelo de Datos Relacional Un R es un conjunto finito de atributos A 1,A 2,…,A k.Un Esquema Relacional R es un conjunto finito de atributos A 1,A 2,…,A k. Hay un dominio D i para cada atributo A i,, de donde se toman los valores de los atributos.Hay un dominio D i para cada atributo A i, 0 < i < k, de donde se toman los valores de los atributos. Entonces escribimos el Esquema Relacional como: R(A 1, A 2,…, A k )Entonces escribimos el Esquema Relacional como: R(A 1, A 2,…, A k )
13 El Modelo de Datos Relacional Operaciones en el Modelo de Datos RelacionalOperaciones en el Modelo de Datos Relacional –Álgebra Relacional. Es una notación Algebraica que permite realizar consultas aplicando operadores especializados a las relaciones.Es una notación Algebraica que permite realizar consultas aplicando operadores especializados a las relaciones. –Cálculo Relacional. Es una notación Lógica, donde las consultas se realizan mediante restricciones que las tuplas deben satisfacer.Es una notación Lógica, donde las consultas se realizan mediante restricciones que las tuplas deben satisfacer.
14 El Modelo de Datos Relacional Álgebra RelacionalÁlgebra Relacional –Consiste en una serie de operaciones con las relaciones. –Algunas Operaciones: SELECTSELECT PROJECTPROJECT PRODUCTPRODUCT UNIONUNION INTERSECINTERSEC DIFFERENCEDIFFERENCE JOINJOIN
15 El Modelo de Datos Relacional Cálculo RelacionalCálculo Relacional –Cálculo Relacional de Tuplas. –Cálculo Relacional de Dominios.
16 El Modelo de Datos Relacional Cálculo Relacional de Tuplas TRC. Es el que utilizan la mayor parte de los lenguajes relacionales. Las consultas se realizan con el siguiente formato:Cálculo Relacional de Tuplas TRC. Es el que utilizan la mayor parte de los lenguajes relacionales. Las consultas se realizan con el siguiente formato: { x(A) | F(x) } donde x es del tipo Tupla y A es el conjunto de atributos y F es una fórmula. El resultado son todas las tuplas que satisfacen la relación. El resultado son todas las tuplas t(A) que satisfacen la relación.
17 El Modelo de Datos Relacional Álgebra Relacional v/s Cálculo RelacionalÁlgebra Relacional v/s Cálculo Relacional –Álgebra Relacional Cálculo Relacional –El Cálculo Relacional es de más alto nivel que el Álgebra Relacional
18 El Lenguaje SQL Está basado en el Cálculo Relacional de Tuplas.Está basado en el Cálculo Relacional de Tuplas. Además tiene otras capacidades que no pertenecen al Modelo de Datos Relacional.Además tiene otras capacidades que no pertenecen al Modelo de Datos Relacional. –Comandos para insertar, modificar y borrar datos –Operaciones Aritméticas y comparaciones –Asignación y comandos de Impresión –Funciones agregadas: promedio, suma, etc.
19 Empezando con PostgreSQL Administrador de bases de datos SuperuserAdministrador de bases de datos Superuser Configuración del entorno $PATHConfiguración del entorno $PATH Usuario postgresUsuario postgres Creación de bases de datosCreación de bases de datos Eliminación de una base de datosEliminación de una base de datos Acceso a bases de datosAcceso a bases de datos –Mediante psql –Mediante un programa en C usando LIBPQ.
20 Empezando con PostgreSQL Interactuando con DB’s mediante psqlInteractuando con DB’s mediante psql \q¿Ayuda?\q¿Ayuda? \gtermina la ejecución de una consulta\gtermina la ejecución de una consulta \qsale del programa\qsale del programa
21 El Lenguaje de Consultas de Postgres ClasesClases –Creación –Crear instancias –Consultar una Clase –Redireccionamiento de consultas SELECT –Joins entre clases –Actualizaciones –Borrar –Funciones de Conjuntos
22 Características Avanzadas HerenciaHerencia Valores no AtómicosValores no Atómicos VectoresVectores
23 FIN
24 ¿ Preguntas? ¿¿¿ ???
25