postgresql patricio denzer [email protected]. introducción

25
PostgreSQL PostgreSQL Patricio Denzer Patricio Denzer [email protected]

Upload: margaretta-salvo

Post on 28-Jan-2016

225 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: PostgreSQL Patricio Denzer pdenzer@elo.utfsm.cl. Introducción

PostgreSQLPostgreSQL

Patricio DenzerPatricio [email protected]

Page 2: PostgreSQL Patricio Denzer pdenzer@elo.utfsm.cl. Introducción

IntroducciónIntroducción

Page 3: PostgreSQL Patricio Denzer pdenzer@elo.utfsm.cl. Introducción

¿Qué es PostgreSQL?¿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-ServidorModelo Cliente-Servidor– PostmasterPostmaster– BackendBackend– ClientesClientes

Page 4: PostgreSQL Patricio Denzer pdenzer@elo.utfsm.cl. Introducción

PostgreSQL v/s sus paresPostgreSQL v/s sus pares

MySQLMySQL PostgreSPostgreSQLQL SAP DBSAP DB

Cumple con estándar Cumple con estándar SQLSQL MediaMedia AltaAlta --

VelocidadVelocidad Media/AltaMedia/Alta MediaMedia --

Integridad de DatosIntegridad de Datos NoNo SiSi SiSi

SeguridadSeguridad AltaAlta MediaMedia --

Soporte disparadoresSoporte disparadores NoNo SiSi SiSi

ReplicaciónReplicación SiSi SiSi --

Integridad Integridad ReferencialReferencial NoNo SiSi SiSi

TransaccionesTransacciones SiSi SiSi --

Backups Backups funcionandofuncionando SiSi SiSi --

Soporte UnicodeSoporte Unicode NoNo SiSi --

Page 5: PostgreSQL Patricio Denzer pdenzer@elo.utfsm.cl. Introducción

Ventajas de PostgreSQLVentajas de PostgreSQL

• EstableEstable• Alto RendimientoAlto Rendimiento• FlexibilidadFlexibilidad• Se puede extender su funcionalidadSe puede extender su funcionalidad• Gran CompatibilidadGran Compatibilidad

Permite crear o migrar aplicaciones Permite crear o migrar aplicaciones desde Access, Visual Basic, Visual Fox desde Access, Visual Basic, Visual Fox Pro, Visual C/C++, Delphi para usar Pro, Visual C/C++, Delphi para usar PostgreSQL como servidor de DB’s.PostgreSQL como servidor de DB’s.

Page 6: PostgreSQL Patricio Denzer pdenzer@elo.utfsm.cl. Introducción

• Varias Interfaces de Programación:Varias Interfaces de Programación:ODBC, JDBC, C/C++, SQL ODBC, JDBC, C/C++, SQL Embebido, Tcl/Tk, Perl, Python, Embebido, Tcl/Tk, Perl, Python, PHP.PHP.

Page 7: PostgreSQL Patricio Denzer pdenzer@elo.utfsm.cl. Introducción

Instalación de Instalación de PostgreSQLPostgreSQL

• Requerimientos de HWRequerimientos de HW– 8 MB RAM8 MB RAM– 30 MB HDD - src30 MB HDD - src– 5 MB HDD - bin5 MB HDD - bin– 1 MB HDD – DB’s básicas.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 PostreSQL y las distribuciones de

LinuxLinux

Page 8: PostgreSQL Patricio Denzer pdenzer@elo.utfsm.cl. Introducción

Introducción a SQLIntroducción a SQL

Page 9: PostgreSQL Patricio Denzer pdenzer@elo.utfsm.cl. Introducción

El Modelo de Datos El Modelo de Datos RelacionalRelacional

Punto de vista del usuarioPunto de vista del usuario• Base de Datos Relacional=Conjunto de Base de Datos Relacional=Conjunto de

TablasTablas

Tabla 1: MotherboardsTabla 1: Motherboards

SNSN MarcaMarca ModeloModelo PrecioPrecio

24002400 AsusAsus P3V133P3V133 70.00070.000

24012401 AsusAsus A7M266A7M266DD

183.717183.717

24022402 MSIMSI MS6533MS6533 78.96778.967

24032403 PcChipsPcChips M841M841 45.64145.641

Page 10: PostgreSQL Patricio Denzer pdenzer@elo.utfsm.cl. Introducción

El Modelo de Datos El Modelo de Datos RelacionalRelacional

Definición FormalDefinición Formal• Teoría de Conjuntos RelaciónTeoría de Conjuntos Relación• Relación: subconjunto del producto Relación: subconjunto del producto

cartesiano de una cartesiano de una lista de dominios.lista de dominios.• Dominio: conjunto de valores.Dominio: conjunto de valores.

donde:donde:

}...|...,,{... 221132121 kkkk DvDvDvvvvvDDD

Tuplas- ...,, 321 kvvvv k

Page 11: PostgreSQL Patricio Denzer pdenzer@elo.utfsm.cl. Introducción

El Modelo de Datos El Modelo de Datos RelacionalRelacional

• Ejemplo:Ejemplo:

• Regresando a la idea de la tabla, cada fila Regresando a la idea de la tabla, cada fila representa una tupla y cada columna un representa una tupla y cada columna un elemento de esta.elemento de esta.

Page 12: PostgreSQL Patricio Denzer pdenzer@elo.utfsm.cl. Introducción

El Modelo de Datos El Modelo de Datos RelacionalRelacional

• Un Un Esquema Relacional R R es un conjunto finito de es un conjunto finito de atributos atributos AA11,A,A22,…,A,…,Akk..

• Hay un dominio Hay un dominio DDii para cada atributo para cada atributo AAi i , , 0 < i < k , ,de donde se toman los valores de los de donde se toman los valores de los atributos.atributos.

• Entonces escribimos el Esquema Entonces escribimos el Esquema Relacional como: Relacional como: R(AR(A11, A, A22,…, A,…, Ak k ))

Page 13: PostgreSQL Patricio Denzer pdenzer@elo.utfsm.cl. Introducción

El Modelo de Datos El Modelo de Datos RelacionalRelacional

• Operaciones en el Modelo de Datos Operaciones en el Modelo de Datos RelacionalRelacional– Álgebra Relacional.Álgebra Relacional.

• Es una notación Algebraica que permite Es una notación Algebraica que permite realizar consultas aplicando operadores realizar consultas aplicando operadores especializados a las relaciones.especializados a las relaciones.

– Cálculo Relacional.Cálculo Relacional.• Es una notación Lógica, donde las consultas Es una notación Lógica, donde las consultas

se realizan mediante restricciones que las se realizan mediante restricciones que las tuplas deben satisfacer.tuplas deben satisfacer.

Page 14: PostgreSQL Patricio Denzer pdenzer@elo.utfsm.cl. Introducción

El Modelo de Datos El Modelo de Datos RelacionalRelacional

• Álgebra RelacionalÁlgebra Relacional– Consiste en una serie de operaciones Consiste en una serie de operaciones

con las relaciones.con las relaciones.– Algunas Operaciones:Algunas Operaciones:

• SELECTSELECT• PROJECTPROJECT• PRODUCTPRODUCT• UNIONUNION• INTERSECINTERSEC• DIFFERENCEDIFFERENCE• JOINJOIN

Page 15: PostgreSQL Patricio Denzer pdenzer@elo.utfsm.cl. Introducción

El Modelo de Datos El Modelo de Datos RelacionalRelacional

• Cálculo RelacionalCálculo Relacional

– Cálculo Relacional de Tuplas.Cálculo Relacional de Tuplas.

– Cálculo Relacional de Dominios.Cálculo Relacional de Dominios.

Page 16: PostgreSQL Patricio Denzer pdenzer@elo.utfsm.cl. Introducción

El Modelo de Datos El Modelo de Datos RelacionalRelacional

• Cálculo Relacional de Tuplas TRC.Cálculo Relacional de Tuplas TRC.Es el que utilizan la mayor parte de los Es el que utilizan la mayor parte de los lenguajes relacionales. Las consultas se lenguajes relacionales. Las consultas se realizan con el siguiente formato:realizan con el siguiente formato:

{ { x(A) x(A) | | F(x) F(x) }}

donde donde xx es del tipo Tupla y es del tipo Tupla y AA es el es el conjunto de atributos y conjunto de atributos y FF es una fórmula. es una fórmula.

El resultado son todas las tuplas El resultado son todas las tuplas t(A) que que satisfacen la relación.satisfacen la relación.

Page 17: PostgreSQL Patricio Denzer pdenzer@elo.utfsm.cl. Introducción

El Modelo de Datos El Modelo de Datos RelacionalRelacional

• Álgebra Relacional v/s Cálculo Álgebra Relacional v/s Cálculo RelacionalRelacional– Álgebra Relacional Álgebra Relacional Cálculo Cálculo

RelacionalRelacional– El Cálculo Relacional es de más alto El Cálculo Relacional es de más alto

nivel que el Álgebra Relacionalnivel que el Álgebra Relacional

Page 18: PostgreSQL Patricio Denzer pdenzer@elo.utfsm.cl. Introducción

El Lenguaje SQLEl Lenguaje SQL

• Está basado en el Cálculo Relacional de Está basado en el Cálculo Relacional de Tuplas.Tuplas.

• Además tiene otras capacidades que no Además tiene otras capacidades que no pertenecen al Modelo de Datos pertenecen al Modelo de Datos Relacional.Relacional.– Comandos para insertar, modificar y borrar Comandos para insertar, modificar y borrar

datosdatos– Operaciones Aritméticas y comparacionesOperaciones Aritméticas y comparaciones– Asignación y comandos de ImpresiónAsignación y comandos de Impresión– Funciones agregadas: promedio, suma, etc.Funciones agregadas: promedio, suma, etc.

Page 19: PostgreSQL Patricio Denzer pdenzer@elo.utfsm.cl. Introducción

Empezando con Empezando con PostgreSQLPostgreSQL

• Administrador de bases de datos Administrador de bases de datos SuperuserSuperuser

• 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 Mediante psqlpsql– Mediante un programa en C usando LIBPQ.Mediante un programa en C usando LIBPQ.

Page 20: PostgreSQL Patricio Denzer pdenzer@elo.utfsm.cl. Introducción

Empezando con Empezando con PostgreSQLPostgreSQL

• Interactuando con DB’s mediante Interactuando con DB’s mediante psqlpsql

• \q\q ¿Ayuda?¿Ayuda?• \g\g termina la ejecución de una termina la ejecución de una

consultaconsulta• \q\q sale del programasale del programa

Page 21: PostgreSQL Patricio Denzer pdenzer@elo.utfsm.cl. Introducción

El Lenguaje de Consultas de El Lenguaje de Consultas de PostgresPostgres

• ClasesClases– CreaciónCreación– Crear instanciasCrear instancias– Consultar una ClaseConsultar una Clase– Redireccionamiento de consultas Redireccionamiento de consultas

SELECTSELECT– Joins entre clasesJoins entre clases– ActualizacionesActualizaciones– BorrarBorrar– Funciones de ConjuntosFunciones de Conjuntos

Page 22: PostgreSQL Patricio Denzer pdenzer@elo.utfsm.cl. Introducción

Características Características AvanzadasAvanzadas

• HerenciaHerencia• Valores no AtómicosValores no Atómicos• VectoresVectores

Page 23: PostgreSQL Patricio Denzer pdenzer@elo.utfsm.cl. Introducción

FINFIN

Page 24: PostgreSQL Patricio Denzer pdenzer@elo.utfsm.cl. Introducción

¿ Preguntas?¿ Preguntas?

¿¿¿ ??¿¿¿ ????

Page 25: PostgreSQL Patricio Denzer pdenzer@elo.utfsm.cl. Introducción