Post on 28-Jan-2016
PostgreSQLPostgreSQL
Patricio DenzerPatricio Denzerpdenzer@elo.utfsm.cl
IntroducciónIntroducció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
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 --
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.
• 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.
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
Introducción a SQLIntroducción a SQL
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
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
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.
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 ))
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.
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
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.
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.
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
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.
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.
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
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
Características Características AvanzadasAvanzadas
• HerenciaHerencia• Valores no AtómicosValores no Atómicos• VectoresVectores
FINFIN
¿ Preguntas?¿ Preguntas?
¿¿¿ ??¿¿¿ ????