Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Emailorlando_3013 @hotmail.com
Emailservileo_hjc_22 5@hotmail.com
Emailgerson_ex @hotmail.com
Emailcarl_stom@hot mail.com
RESUMEN
En este paper, nosotros daremos a conocer la forma correcta de aprender a utilizar un nuevo gestor de base de datos, como lo es PostgreSQL. Una de las cosas que aprenderemos en este paper ser la manera de como crear una base de datos e interactuar con la misma, usando para ello, dos maneras diferentes, las cuales son: de manera consola y de manera grfica. Haremos tambin uso de un ejemplo prctico para que de esta manera podamos conocer y comprender como funciona este gestor de base de datos.
2. HISTORIA
PostgreSQL ha tenido una larga evolucin, la cual se inicia en 1982 con el proyecto Ingres en la Universidad de Berkeley. Este proyecto, liderado por Michael Stonebraker, fue uno de los primeros intentos en implementar un motor de base de datos relacional. Despus de haber trabajado un largo tiempo en Ingres y de haber tenido una experiencia comercial con l mismo, Michael decidi volver a la Universidad en 1985 para trabajar en un nuevo proyecto sobre la experiencia de Ingres, dicho proyecto fue llamado post-ingres o simplemente POSTGRES. El proyecto post-ingres pretenda resolver los problemas con el modelo de base de datos relacional que haban sido aclarados a comienzos de los aos 1980. El principal de estos problemas era la incapacidad del modelo relacional de comprender "tipos", es decir, combinaciones de datos simples que conforman una nica unidad. Actualmente estos son llamados objetos. Se esforzaron en introducir la menor cantidad posible de funcionalidades para completar el soporte de tipos. Estas funcionalidades incluan la habilidad de definir tipos, pero tambin la habilidad de describir relaciones - las cuales hasta ese momento eran ampliamente utilizadas pero mantenidas completamente por el usuario. En Postgres la base de datos comprenda las relaciones y poda obtener informacin de tablas relacionadas utilizando reglas. Postgres us muchas ideas de Ingres pero no su cdigo. La siguiente lista muestra los hitos ms importantes en la vida del proyecto Postgre: 1986: se publicaron varios papers que describan las bases del sistema. 1988: ya se contaba con una versin utilizable.
Condiciones Generales
Base de datos, Gestor de base de datos, tablas
Palabras Clave
Gestor, Usuario, Superusuario, Servidor, API, ddl dml
1. INTRODUCCIN
El sistema de gestin de bases de datos relacionales orientadas a objetos conocido como PostgreSQL, est derivado del paquete Postgres escrito en Berkeley all por los aos 80. Con cerca de una dcada de desarrollo tras l, PostgreSQL es el gestor de bases de datos de cdigo abierto ms avanzado hoy en da, ofreciendo control de concurrencia multi-versin y soportando casi toda la sintaxis SQL (incluyendo subconsultas, transacciones, y tipos y funciones definidas por el usuario). Adems cuenta tambin con un amplio conjunto de APIs para la mayora de lenguajes de programacin (incluyendo los ms usados, tales como C, C++, Java, PHP, perl, tcl y python).
1989: el grupo publicaba la versin 1 para una pequea comunidad de usuarios. 1990: se publicaba la versin 2 la cual tena prcticamente reescrito el sistema de reglas. 1991: publicacin de la versin 3, esta aada la capacidad de mltiples motores de almacenamiento. 1993: crecimiento importante de la comunidad de usuarios, la cual demandaba ms caractersticas. 1994: despus de la publicacin de la versin 4, el proyecto termin y el grupo se disolvi. Despus de que el proyecto POSTGRES terminara, dos graduados de la universidad, Andrew Yu y JollyChen, comenzaron a trabajar sobre el cdigo de POSTGRES, esto fue posible dado que POSTGRES estaba licenciado bajo la BSD, y lo primero que hicieron fue aadir soporte para el lenguaje SQL a POSTGRES, dado que anteriormente contaba con un intrprete del lenguaje de consultas QUEL (basado en Ingres), creando as el sistema al cual denominaron Postgres95. Para el ao 1996 se unieron al proyecto personas ajenas a la Universidad como Marc Fournier de Hub.Org NetworkingServices, Bruce Momjian y Vadim B. Mikheev quienes proporcionaron el primer servidor de desarrollo no universitario para el esfuerzo de desarrollo de cdigo abierto y comenzaron a trabajar para estabilizar el cdigo de Postgres95. En el ao 1996 decidieron cambiar el nombre de Postgres95 de tal modo que refleje la caracterstica del lenguaje SQL y lo terminaron llamando PostgreSQL, cuya primera versin de cdigo abierto fue lanzada el 1 de agosto de 1996. La primera versin formal de PostgreSQL (6.0) fue liberada en enero de 1997. Desde entonces, muchos desarrolladores entusiastas de los motores de base de datos se unieron al proyecto, coordinaron va Internet y entre todos comenzaron a incorporar muchas caractersticas al motor.Aunque la licencia permita la comercializacin de PostgreSQL, el cdigo no se desarroll en principio con fines comerciales, algo sorprendente considerando las ventajas que PostgreSQL ofreca. La principal derivacin se origin cuando Paula Hawthtorn (un miembro del equipo original de Ingres que se pas a Postgres) y Michael Stonebraker conformaron IllustraInformation Technologies para comercializar Postgres. En 2000, ex inversionistas de Red Hat crearon la empresa Great Bridge para comercializar PostgreSQL y competir contra proveedores comerciales de bases de datos. Great Bridge auspici a varios desarrolladores de PostgreSQL y don recursos de vuelta a la comunidad, pero a fines de 2001 cerr debido a la dura competencia de compaas como Red Hat y pobres condiciones del mercado.
En 2001, CommandPrompt, Inc. lanz Mammonth PostgreSQL, la ms antigua distribucin comercial de PostgreSQL. Contina brindando soporte a la comunidad PostgreSQL a travs del auspicio de desarrolladores y proyectos, incluyendo PL/Perl, PL/php y el alojamiento de proyectos de comunidades como PostgreSQL Build Farm.En enero de 2005, PostgreSQL recibi apoyo del proveedor de base de datos Pervasive Software, conocido por su producto Btrieve que se utilizaba en la plataforma Novell Netware. Pervasive anunci soporte comercial y participacin comunitaria y logr algo de xito. Sin embargo, en julio de 2006 dej el mercado de soporte de PostgreSQL. A mediados de 2005 otras dos compaas anunciaron planes para comercializar PostgreSQL con nfasis en nichos separados de mercados. EnterpriseDB aadi funcionalidades que le permitan a las aplicaciones escritas para trabajar con Oracle ser ms fciles de ejecutar con PostgreSQL. Greenplum contribuy mejoras directamente orientadas a aplicaciones de Data Warehouse e Inteligencia de negocios, incluyendo el proyecto BizGres.En octubre de 2005, John Loiacono, vicepresidente ejecutivo de software en Sun Microsystems coment: "No estamos yendo tras el OEM de Microsoft pero estamos viendo a PostgreSQL ahora", aunque no se dieron especificaciones en ese momento. Para noviembre de 2005, Sun Solaris 10 (lanzamiento 6/06) inclua PostgreSQL. En agosto de 2007 EnterpriseDB anunci el Postgres Resource Center y EnterpriseDB Postgres, diseados para ser una completamente configurada distribucin de PostgreSQL incluyendo muchos mdulos contribuidos y agregados. EnterpriseDB Postgres fue renombrado Postgres Plus en marzo de 2008. El proyecto PostgreSQL contina haciendo lanzamientos principales anualmente y lanzamientos menores de reparacin de bugs, todos disponibles bajo la licencia BSD, y basados en contribuciones de proveedores comerciales, empresas aportantes y programadores de cdigo abierto mayormente.
(frontend)
Es la que pretende ejecutar ciertas acciones sobre la base de datos. Estas aplicaciones pueden ser de naturaleza muy diversa, desde herramientas modo texto o aplicaciones grficas, hasta servidores que acceden para recuperar datos y mostrarlos en una pgina web.
4.2 Consistencia
Es la propiedad que asegura que slo se empieza aquello que se puede acabar. Por lo tanto se ejecutan aquellas operaciones que no van a romper la reglas y directrices de integridad de la base de datos.
4.3 Aislamiento:
Es la propiedad que asegura que una operacin no puede afectar a otras. Esto asegura que dos transacciones sobre la misma informacin nunca generar ningn tipo de error.
Tal como ocurre en las aplicaciones cliente servidor, el cliente puede estar en un equipo diferente al que se encuentra el servidor. En ese caso, ambos se comunican mediante una conexin de red TCP/IP. Es necesario tener esto en cuenta, ya que archivos que son accesibles desde un cliente no tienen por qu serlo desde otro. Se debe prestar especial atencin a estos temas. El servidor de postgres puede manejar diferentes conexiones concurrentes de los clientes. Dispone de un proceso padre (conocido como postmaster) que crea distintos procesos hijos que atienden las conexiones entrantes. Un planteamiento tpico del modelo cliente servidor.
4.4 Durabilidad
Es la propiedad que asegura que una vez realizada la operacin, sta persistir y no se podr deshacer aunque falle el sistema.
4.6 Documentacin
Muy bien organizada, pblica y libre, con comentarios de los propios usuarios.
4.8 Drivers
Odbc, Jdbc, .Net, etc.
4.12 Extensiones
Para alta disponibilidad, nuevos tipos de ndices, datos espaciales, minera de datos, etc. Comunidades muy activas, varias comunidades en castellano. Altamente adaptable a las necesidades del cliente.
e)
NOCREATEUSER
f) IN GROUPnombre_grupo [, ...]
Aade al nuevo usuario al grupo llamado nombre_grupo. Pueden ser especificados mltiples nombres de grupo, separndolos mediante comas. El o los grupos deben existir para que funcione la condicin.
g)
Establece que la contrasea del usuario expirar el abstime, el cual debe ser un formato reconocible de fecha/hora (timestamp). Tras esa fecha, la contrasea se resetea, y la expiracin se hace efectiva.
h)
a)
SYSID uid:
5.1.2
Createuser:
El script createuser es ejecutado directamente desde la lnea de comandos, y puede operar de dos formas. Si se utiliza sin argumentos, l interactivamente le pedir el nombre de usuario y cada uno de los privilegios que se le van a asignar. Alternamente, puede optar por especificar las opciones y el nombre del usuario a ser creado en la misma lnea de comandos. La sintaxis de createuser es: createuser [ opciones ] [ nombre_usuario ] El nombre_usuario en la sintaxis representa el nombre del usuario que va a crear. Reemplace opciones con una o ms de las siguientes:
Especifica que el ID que va a definirse debe establecerse al valor de uid.Si se omite, un razonable y nico valor numrico por defecto es escogido.
b)
PASSWORD 'password':
Establece la nueva contrasea del usuario. Si no se especifica, la contrasea por defecto es NULL. c) CREATEDB | NOCREATEDB: Usando la palabra clave CREATEDB se le garantiza al nuevo usuario el privilegio de crear nuevas bases de datos, as como el de destruir las de su propiedad. Usando NOCREATEDB se deniega este permiso (que es lo que ocurre por defecto).
d)
Createuser | Nocreateuser
a) -d, -createdb
Equivalente a la palabra clave CREATEDB. Permite al nuevo usuario crear bases de datos. b) -D, -no-createdb Equivalente a la palabra clave NOCREATEDB. Explcitamente indica que el nuevo usuario no puede crear bases de datos. -a, -adduser Equivalente a la palabra clave CREATEUSER Perimte al nuevo usuario la creacin de otros usuarios, y
Certifica el privilegio de crear nuevos usuarios. Si un usuario tiene los privilegios de crear a otros usuarios tendr adems todos los privilegios, en todas las bases de datos (incluyendo los permisos para crear una base de datos, aunque se haya especificado NOCREATEDB).
c)
5.2 Operadores
d) -A, -no-adduser Equivalente a la palabra clave NOCREATEUSER. Explcitamente indica que el nuevo usuario no es superusuario. -i SYSID, -sysid=SYSID Establece el nuevo ID de sistema del usuario a SYSID. -P, -pwprompt Resulta en una peticin de introduccin de contrasea, permitindole establecer la contrasea del nuevo usuario.
e)
f)
g) -h NOMBRE_MAQUINA,
-host=NOMBRE_MAQUINA Especifica desde qu NOMBRE_MAQUINA se conectar, adems de la local (localhost), o la mquina definida por la variable de entorno PGHOST. h) -p PUERTO, -port=PUERTO Especifica que la conexin de base de datos se realizar por el puerto PUERTO, en vez de por el puerto por defecto. -U NOMBRE_USUARIO, -username=NOMBRE_USUARIO Especifica que NOMBRE_USUARIO ser el usuario que conecte a PostgreSQL (por defecto se conecta usando el nombre de usuario del sistema). -password Resulta en una peticin de contrasea para el usuario que conecta, lo cual ocurre automticamente si el archivo pg_hba.conf est configurado para no confiar en la maquina solicitante.
ISNULL NOTNULL (todos los dems operadores) IN BETWEEN LIKE <> = NOT AND OR
i)
j)
Operador Descripcin Tabla 2- Operadores generales Operador < <= <> = > >= || !!= ~~ !~~ ~ Descripcin Menor que? Menor o igual que? No igual? Igual? Mayor que? Mayor o igual que? Concatena strings NOT IN Como No como Utilizacin 1<2 1 <= 2 1 <> 2 1=1 2>1 2 >= 1 'Postgre' || 'SQL' 3 !!= i 'scrappy,marc,hermit' ~~ '%scrappy%' 'bruce' !~~ '%al%' ||/ Raz cbica
Escalado/rotacin '((0,0),(1,1))'::box * '(2.0,0)'::punto Escalado/rotacin '((0,0),(2,2))'::box / '(2.0,0)'::punto Interseccin '((1,-1),(-1,1))' # '((1,1), (-1,-1))'
Concordancia 'thomas' ~ '.*thomas.*' (regex), sensible a mayusc/minusc Concordancia 'thomas' ~* '.*Thomas.*' (regex), sensible a mayusc/minusc No concuerda 'thomas' !~ '.*Thomas.*' (regex), sensible a mayusc/minusc No concuerda 'thomas' !~* '.*vadim.*' (regex), sensible a mayusc/minusc
Nmero de puntos # '((1,0),(0,1),(-1,0))' en polgono Punto ms prximo Se superpone a? '(0,0)'::punto ## '((2,0), (0,2))'::lseg '((0,0),(1,1))'::caja && '((0,0),(2,2))'::caja
~*
!~
!~*
Se superpone por '((0,0),(1,1))'::caja &< la izquierda? '((0,0),(2,2))'::caja Se superpone por '((0,0),(3,3))'::caja &> la derecha? '((0,0),(2,2))'::caja Distancia entre '((0,0),1)'::crculo <-> '((5,0),1)'::crculo
A la izquierda de? '((0,0),1)'::crculo << '((5,0),1)'::crculo Est debajo de? A la derecha de? '((0,0),1)'::crculo <^ '((0,5),1)'::crculo '((5,0),1)'::crculo >> '((0,0),1)'::crculo '((0,5),1)'::crculo >^ '((0,0),1)'::crculo '((-1,0),(1,0))'::lseg ?# '((-2,-2),(2,2))'::caja; '(1,0)'::punto ?'(0,0)'::punto
Es perpendicular? '((0,0),(0,1))'::lseg ?-| '((0,0),(1,0))'::lseg Longitud de circunferencia Es vertical? Es paralelo? @-@ '((0,0), (1,0))'::path '(0,1)'::punto ?| '(0,0)'::punto '((-1,0),(1,0))'::lseg ?|| '((-1,2),(1,2))'::lseg
Operador @ @@ ~=
Descripcin
Utilizacin
Mayor o igual que '192.168.1.5'::cidr>= '192.168.1.5'::cidr Mayor que No igual que '192.168.1.5'::cidr> '192.168.1.4'::cidr '192.168.1.5'::cidr<> '192.168.1.4'::cidr
Est contenido en '192.168.1.5'::cidr<< '192.168.1/24'::cidr Est contenido en '192.168.1/24'::cidr<<= o es igual a '192.168.1/24'::cidr Contiene '192.168.1/24'::cidr>> '192.168.1.5'::cidr
Mayor o igual que '192.168.1.5'::inet>= '192.168.1.5'::inet Mayor que No igual '192.168.1.5'::inet> '192.168.1.4'::inet '192.168.1.5'::inet<> '192.168.1.4'::inet
Est contenido en '192.168.1.5'::inet<< '192.168.1/24'::inet Est contenido o es igual a Contiene '192.168.1/24'::inet<<= '192.168.1/24'::inet '192.168.1/24'::inet>> '192.168.1.5'::inet
Podemos utilizar sentencias de control para escribir nuestros programas y permitir que sigan un algoritmo no lineal, para ello, contamos bsicamente con las siguientes estructuras : LOOP, EXIT,IF, ELSE,FOR, WHILE
5.3.4.1
DECLARE registro RECORD; BEGIN FOR registro IN SELECT * FROM productos LOOP stock := registro.sock_actual + 100; ... otras sentencias ... END LOOP; ...resto de la funcion... Note que para utilizar esta sentencia FOR debemos declarar una variable de tipo RECORD o registro. RECORD es una palabra reservada para estos casos, y no posee una estructura definida pues no ha sido asignada a ninguna tabla, este tipo de dato nos permite recorrer la tabla de productos y obtener sus valores por medio de esta variable.
caractersticas especiales de Postgres; mientras esto provee compatibilidad, es menudo ms conveniente sacar provecho a aquellas definiciones adicionales del motor. A continuacin se describen los tipos de datos ms utilizados y la sugerencia de cuando es conveniente utilizarlos:
Tabla 8- Tipos cadenas Tipo char(n) Text varchar(n) Tipos String Descripcin Datos de caracteres no Unicode de longitud fija Cantidad no predefinida Datos de caracteres no Unicode de longitud variable
El tipo char(n) almacena n caracteres en formato ASCII, un byte por cada letra. Cuando almacenamos datos en el tipo char, siempre se utilizan los n caracteres indicados, incluso si la entrada de datos es inferior. Por ejemplo, si en un char(5), guardamos el valor 'A', se almacena 'A', ocupando los cinco bytes. Por su parte varchar(n) almacena n caracteres en formato ASCII, un byte por cada letra. Cuando almacenamos datos en el tipo varchar, nicamente se utilizan los caracteres necesarios, Por ejemplo, si en un varchar(255), guardamos el valor 'A', se almacena 'A', ocupando solo un byte. El tipo de dato text permite el almacenamiento de un string en cualquier formato de largo no predefinido. Este es el tipo ms verstil de string. Considerando que hoy en da los espacios de almacenamiento son enormes, este tipo se recomienda en todo caso por sobre varchar. Cabe sealar que dado que text no tiene lmite predefinido, entonces al momento de llevar los datos a otros sistemas con largos predefinidos no hay aviso previo de que estamos sobrepasando algn largo establecido, siendo este un punto a considerar al momento de seleccionar el tipo de dato.
6. TIPOS DE DATOS
Postgres pone a disposicin del usuario una gran variedad de tipos de datos pensados en cubrir necesidades especficas. Suele suceder que al modelar una base de datos se utilizan los tipos conocidos y no se da provecho a las
Tabla 9- Tipos numericos Tipos Numricos Tipo Tamao Descripcin bool Booleano decimal variable Especificadas por el usuario
float4 Float8
4 bytes 8 bytes
Bigint
8 bytes
Nmero de punto flotante con precisin Nmero de punto flotante con doble precisin Valores enteros.
6 lugares de decimales 15 lugares de decimales 9,233,372,036, 854,775,808 a +9,233,372,03 6,854,775,807 -32768 a +32767 -2147483648 a +2147483647 +/> lugares decimales no limite 0 a +2147483647 18 de
milisegundo a almacenar.
En tipos de datos para fecha y hora, Postgres conserva los tipos tradicionales. Aqu el nico parmetro interesante es aquel que se puede pasar a timestamp para indicar la cantidad de milisegundos a almacenar que por defecto son 6.
int2 Int4
2 bytes 4 bytes
Int8
8 bytes
numeric serial
variable 4 bytes
Precisin fija (entero) opcin para determinada precisin (entero) amplia gama determinada de precisin (entero) Especificadas por el usuario Identicador o referencia cruzada
Postgres contiene los tipos de datos nativos comnmente conocidos int y float, para nmeros enteros y reales respectivamente. Estos dependiendo del dgito que acompae su nombre, indica la precisin que soporta la columna. Para grandes nmeros se utiliza bigint, el cual suele ser utilizado para las columnas de identificadores. Cuando se requiere de gran precisin en nmeros, virtualmente sin limitacin (1000 dgitos), el tipo a utilizar es sin duda numeric. Este es recomendado para valores monetarios u cualquier dato donde la precisin es crucial. Este tipo adems soporta el valor NaN (Not A Number No Un Numero) para indicar tal caso, adems de NULL. El tipo de dato SERIAL es en realidad un atajo. En Postgres no existe un tipo autoincremental como es el caso de MySQL. Aqu por un lado se genera la columna con tipo BIGINT asociando al valor por defecto el siguiente valor de una secuencia (Ver punto 3.6) creada especialmente, provocndose el efecto de auto incremento Tabla 10- Tipo fecha y hora. Tipos de Fecha y Hora Tipo Descripcin date Fecha, con da, mes y ao time Hora, minuto, segundos timestamp(n) Fecha y hora con milisegundos. El parmetro n, indica la
Creemos dos clases. La clase capitals contiene las capitales de los estados, las cuales son tambin ciudades. Naturalmente, la clase capitals debera heredar de cities.
En este caso, una instancia de capitals hereda todos los atributos (name, population y altitude) de su padre, cities. El tipo del atributo name (nombre) es text, un tipo nativo de Postgres para cadenas ASCII de longitud variable. El tipo del atributo population (poblacin) es float, un tipo de datos, tambin nativo de Postgres , para nmeros de punto flotante de doble precisin. Las clase capitals tiene un atributo extra, state, que muestra a qu estado pertenecen. En Postgres, una clase puede heredar de ninguna o varias otras clases, y una consulta puede hacer referencia tanto a todas las instancias de una clase como a todas las instancias de una clase y sus descendientes. La jerarqua de la herencia es un grfico acclico dirigido. Por ejemplo, la siguiente consulta encuentra todas aquellas ciudades que estn situadas a un altura de 500 o ms pies:
cantidad
de
implementarlo a futuro pero no es de prioridad alta por eso que viene retrasndose su implementacin desde versiones antiguas.
7.2
Valores No-Atmicos
Por otro lado, para encontrar los nombres de todas las ciudades, includas las capitales estatales, que estn situadas a una altitud de 500 o ms pies, la consulta es:
Uno de los principios del modelo relacional es que los atributos de una relacin son atmicos Postgres no posee esta restriccin; los atributos pueden contener sub-valores a los que puede accederse desde el lenguaje de consulta. Por ejemplo, se pueden crear atributos que sean vectores de alguno de los tipos base. 7.3 Vectores
whichreturns:
Postgres permite que los atributos de una instancia sean definidos como vectores multidimensionales de longitud fija o variable. Puede crear vectores de cualquiera de los tipos base o de tipos definidos por el usuario. Para ilustrar su uso, creemos primero una clase con vectores de tipos base.
Aqu el "*" despus de cities indica que la consulta debe realizarse sobre cities y todas las clases que estn por debajo de ella en la jerarqua de la herencia. Muchos de los comandos que ya hemos discutido (select, and>upand> and delete) brindan soporte a esta notacin de "*" al igual que otros como alter.
La consulta de arriba crear una clase llamada SAL_EMP con una cadena del tipo text (name),un vector unidimensional del tipo int4 (pay_by_quarter), el cual representa el salario trimestral del empleado y un vector bidimensional del tipo text (schedule), que representa la agenda semanal del empleado. Ahora realizamos algunos INSERTSs; note que cuando agregamos valores a un vector, encerramos los valores entre llaves y los separamos mediante comas. Si usted conoce C, esto no es distinto a la sintaxis para inicializar estructuras.
Con esto obtenemos una reduccin en la construccin del ndice y ganaremos velocidad con ello adems de un mejor orden conceptual de nuestras tablas. No slo se puede heredar de un padre, es posible heredar de varias tablas, as teniendo la tabla hija todas las columnas de sus padres, y en caso que 2 o ms padres tengan un columna con el mismo nombre stas se fusionarn en la hija siempre y cuando sean del mismo tipo de dato. Al utilizar sta poderosa caracterstica existen algunas consideraciones que hay que tener en cuenta para evitarnos sorpresas desagradables e inesperadas. Al crear tablas heredadas, no todas las caractersticas de la tabla se heredan. Por ejemplo, las claves primarias, forneas, indices nicos. Segn el roadmap se ver para
Postgres utiliza de forma predeterminada la convencin de vectores "basados en uno" -- es decir, un vector de n elementos comienza con vector[1] y termina con vector[n]. Ahora podemos ejecutar algunas consultas sobre SAL_EMP. Primero mostramos como acceder a un solo elemento del vector por vez. Esta consulta devuelve los nombres de los empleados cuyos pagos han cambiado en el segundo trimestre:
PostgreSQL
descontinuado.
para
Windows
ha
sido
Para obtener un performance optimo, es requerido usar un sistema UNIX o un Linux optimizado para esta tarea.
La siguiente consulta recupera el pago del tercer trimestre de todos los empleados:
Tambin podemos acceder a cualquier porcin de un vector, o subvectores. Esta consulta recupera el primer item de la agenda de Bill para los primeros dos das de la semana.
Es software libre o sea, no hay costo asociado a la licencia del software. Estabilidad legendarias. y confiabilidad
Ofrece una garanta de integridad en los datos mucho ms fuerte. Presenta una mejor escalabilidad y rendimiento bajo grandes cargas de trabajo
MySQL Es ms rpido a la hora de resolver preguntas Tiene mejor documentacin y se ha orientado ms a facilitarle la vida al desarrollador Es fcil de vulnerar sin proteccin adecuada. Es ms ligero.
Extensible, el cdigo fuente est disponible para todos sin costo. Multiplataforma, est disponible en casi cualquier Unix.
8.2 Desventajas
9.5
Ejemplo
Ingresando A Postgresql: Desde la terminal (Aplicaciones Accesorios Terminal): sudo /etc/init.d/postgresql start para iniciar. Luego lo primero que tenemos qu hacer es usar pgAdmin3 (Aplicaciones Programacin pgAdmin III) para crearnos un servidor donde alojaremos todas nuestras bases de datos. All hacemos clic en el men File Add server
Fig ura 2. Creacin del servidor Luego accedemos al servidor al hacer doble click el nombre que le pusimos al servidor y nos va a pedir la contrasea que le dimos: Desde ah podremos crear nuestras bases de datos y posteriormente las tablas cmodamente.
Fig ura 3. Creacin de base de datos Figura 6.Creacion mediante cdigo de tablas
Figura 7. Llenado de datos de manera grafica O sino desde la terminal (Aplicaciones Accesorios Terminal): Sudo su postgres psql -d template1 create database baseDatos; \q; psql -d baseDatos; create table tabla(id int, nombre char(10), primary key(id)); Para ver todas las tablas de mi base de datos: \dt; Describir la tabla: \d tabla; Insertar: insert into tabla values(0,'charl'); Ver registros de la tabla:
10. Conclusiones
PostgreSQL es tan apto y conveniente como Microsoft SQL Server u Oracle, pero con una gran ventaja del costo. El motor de interno es muy estable y hace un buen desempeo ante una gran gama de volmenes de datos.
Corre en el hardware y Sistema Operativo de tu eleccin, es decir no solo en el sistema que cualquier otro vendedor recomienda para usar tu base de datos.
11. Agradecimientos
Agradecemos al profesor y a nuestros compaeros por ser la motivacin a la investigacin de este pequeo, pero significativo aporte, con el fin de la difusin de este gestor de base de datos como lo es PostgresSQL
Manual PostgreSQL, Instalacin, Creacin, Mantencin, PlpgSQL,.2 Abril 2008, Versin 0.3 Jonathan Makuc, Cristian Molina, Armando Reyes
12.2 Linkograficas:
SQL http://es.wikipedia.org/wiki/Postgre