Sie sind auf Seite 1von 52

INSTITUTO TECNOLOGICO DE TAPACHULA.

MATERIA: ADMINISTRADOR DE BASE DE DATOS

MAESTRO:

N DE CONTROL: 11510554

ALUMNOS: SERGIO OSORIO MENDEZ.

Contenido
MySQL ............................................................................................................................. 4 Principales Caractersticas .............................................................................................. 4 Capacidad de almacenamiento ................................................................................. 4 Mysql plataformas soportadas ....................................................................................... 5 RESPALDOS ........................................................................................................................ 7 TRANSACCIONES .............................................................................................................. 7 COMO MANEJA LOS TRIGGERS ...................................................................................... 8 PROCEDIMIENTOS ALMACENADOS ............................................................................... 9 CLUSTERS ............................................................................................................................ 9 COMO TRABAJA LOS PRIVILEGIOS O ROLES ............................................................... 10 COMERCIALES O LIBRES ................................................................................................. 12 PostgreSQL .......................................................................................................................... 13 Generales .................................................................................................................... 13 -Capacidad de almacenamiento .............................................................................. 14 -Transacciones ................................................................................................................ 16 -Respaldos ....................................................................................................................... 18 -Clusters ............................................................................................................................ 20 Creacin de un clster de base de datos ..................................................................... 20 -Comerciales o Libre ...................................................................................................... 22 PostgreSQL .......................................................................................................................... 22 Nombre del producto[editar editar cdigo] ........................................................... 23 Caractersticas y reglas a seguir .............................................................................. 24 Variables especiales en PL/pgSQL .......................................................................... 26 Database Roles and Privileges ......................................................................................... 27 Atributos de Roles ........................................................................................................... 28 Privilegios.......................................................................................................................... 29 Composicin de privilegios ........................................................................................... 30 SYBASE.................................................................................................................................. 35 CARACTERISTICAS PRINCIPALES ................................................................................... 35 Bajo Costo Total de Propiedad ................................................................................. 35 CAPACIDAD DE ALMACENAMIENTO ........................................................................... 36 PLATAFORMAS QUE SOPORTA ...................................................................................... 37 TRANSACCIONES ............................................................................................................ 37 RESPALDOS ...................................................................................................................... 38

CLUSTERS .......................................................................................................................... 39 COMERCIALES O LIBRES ................................................................................................. 39 COMO TRABAJA LOS PRIVILEGIOS DE ROLES ................................................................. 40 Microsoft SQL Server .......................................................................................................... 42 -Caractersticas Principales ........................................................................................... 42 Capacidad de almacenamiento ............................................................................... 43 Respaldos ........................................................................................................................ 43 Plataformas que soporta............................................................................................... 45 Transacciones ................................................................................................................. 45 Clster .............................................................................................................................. 46 Comerciales o Libre ....................................................................................................... 46 Como maneja los Tiggers .............................................................................................. 47 Como trabaja los privilegios o roles ............................................................................. 48 Roles y usuarios de base de datos............................................................................... 48 Rol public .............................................................................................................. 48 Cuenta de usuario dbo ...................................................................................... 48 Cuenta de usuario guest ........................................................................................ 49

Como trabaja los procedimientos almacenados ..................................................... 49 Usar SQL Server Management Studio ...................................................................... 49 BIBLIOGRAFIA .................................................................................................................. 51

MySQL

Principales Caractersticas

Escrito en C y en C++ Probado con un amplio rango de compiladores diferentes Funciona en diferentes plataformas Proporciona sistemas de almacenamiento transaccionales y no transaccionales Un sistema de reserva de memoria muy rpido basado en threads Un sistema de privilegios y contraseas que es muy flexible y seguro, y que permite verificacin basada en el host

Capacidad de almacenamiento
La siguiente tabla lista algunos ejemplos de lmites de tamao de ficheros de sistemas operativos. Esto es slo una burda gua y no pretende ser definitiva. Para la informacin ms actual, asegrese de consultar la documentacin especfica de su sistema operativo.

Sistema operativo Linux 2.2-Intel 32-bit Linux 2.4 Solaris 9/10 Sistema de ficheros w/NSS win32 w/ FAT/FAT32 win32 w/ NTFS MacOS X w/ HFS+

Tamao mximo de fichero 2GB (LFS: 4GB) (usando sistema de ficheros ext3) 4TB 16TB NetWare 8TB 2GB/4GB 2TB (posiblemente mayor) 2TB

Mysql plataformas soportadas


MySQL ha sido compilado correctamente en las siguientes combinaciones de sistemas operativos y paquetes de subprocesos. Ntese que, para varios sistemas operativos, el soporte nativo de subprocesos funciona solamente en las versiones ms recientes.

AIX 4.x, 5.x con subprocesos nativos. Consulte Seccin 2.12.5.3, Notas sobre IBM-AIX.

BSDI 2.x with con el paquete MIT-pthreads. Consulte Seccin 2.12.4.5, Notas sobre BSD/OS Version 2.x. BSDI 3.0, 3.1 y 4.x con subprocesos nativos. Consulte Seccin 2.12.4.5, Notas sobre BSD/OS Version 2.x. Digital Unix 4.x con subprocesos nativos. Consulte Seccin 2.12.5.5, Notas Alpha-DEC-UNIX (Tru64). FreeBSD 2.x con el paquete MIT-pthreads. Consulte Seccin 2.12.4.1, Notas sobre FreeBSD. FreeBSD 3.x and 4.x con subprocesos nativos. Consulte Seccin 2.12.4.1, Notas sobre FreeBSD. FreeBSD 4.x con LinuxThreads. Consulte Seccin 2.12.4.1, Notas sobre FreeBSD.

HP-UX 10.20 con el paquete DCE threads o MIT-pthreads. Consulte Seccin 2.12.5.1, Notas sobre HP-UX Version 10.20. HP-UX 11.x con subprocesos nativos. Consulte Seccin 2.12.5.2, Notas sobre HP-UX Version 11.x. Linux 2.0+ con LinuxThreads 0.7.1+ o glibc 2.0.7+ para varias arquitecturas de CPU. Consulte Seccin 2.12.1, Notas sobre Linux. Mac OS X. Consulte Seccin 2.12.2, Notas sobre Mac OS X. NetBSD 1.3/1.4 Intel y NetBSD 1.3 Alpha (requiere GNU make). Consulte Seccin 2.12.4.2, Notas sobre NetBSD. Novell NetWare 6.0. Consulte Seccin 2.6, Instalar MySQL sobre NetWare. OpenBSD > 2.5 con subprocesos nativos. OpenBSD < 2.5 con el paquete MIT-pthreads. ConsulteSeccin 2.12.4.3, Notas sobre OpenBSD 2.5. OS/2 Warp 3, FixPack 29 y OS/2 Warp 4, FixPack 4. Consulte Seccin 2.12.6, Notas sobre OS/2. SCO OpenServer 5.0.X con una versin del paquete FSU Pthreads recientemente portada. ConsulteSeccin 2.12.5.8, Notas sobre SCO UNIX y OpenServer 5.0.x. SCO UnixWare 7.1.x. Consulte Seccin 2.12.5.9, Notas sobre SCO UnixWare 7.1.x y OpenUNIX 8.0.0. SCO Openserver 6.0.x. Consulte Seccin 2.12.5.10, Notas sobre SCO OpenServer 6.0.x. SGI Irix 6.x con subprocesos nativos. Consulte Seccin 2.12.5.7, Notas sobre SGI Irix. Solaris 2.5 y posteriores con subprocesos nativos en SPARC y x86. Consulte Seccin 2.12.3, Notas sobre Solaris.

RESPALDOS
Debido a que las tablas de Mysql se almacenan como archivos, es fcil hacer una copia de seguridad. Para hacer una copia consistente haga unLOCK TABLES en las tablas relevantes, seguido de un FLUSH TABLES para las tablas. Solo necesita obtener un bloqueo de lectura; esto permite a otros clientes continuar consultando la tabla mientras usted est haciendo una copia de los archivos del directorio de la base de datos. La sentencia FLUSH TABLES es necesaria para asegurarse de que todas las pginas de ndice activas se escriben al disco antes de que comience la copia. Si quiere hacer una copia de una tabla a un nivel SQL, puede utilizar SELECT INTO... OUTFILE o BACKUP TABLE. Para SELECT INTO... OUTFILE, el archivo de salida no debe existir previamente. Esto tambin es cierto para BACKUP TABLE, ya que permitir que archivos externos sean sobre escritos sera un riesgo de seguridad. Otra tcnica para hacer copias de seguridad de una base de datos es utilizar el programa mysqldump o el script mysqlhotcopy script.

TRANSACCIONES
Las transacciones aportan una fiabilidad superior a las bases de datos. si disponemos de una serie de consultas SQL que deben ejecutarse en conjunto, con el uso de transacciones podemos tener la certeza de que nunca nos quedaremos a medio camino de su ejecucin. De hecho, se puede decir que las transacciones aportan una caracterstica de "deshacer" a las aplicaciones de bases de datos.

son mucho ms seguras y fciles si se produce algn fallo en el servidor, ya que las consultas se ejecutan o no en su totalidad. Por otra parte, las transacciones pueden hacer que las consultas tarden ms tiempo en ejecutarse.

COMO MANEJA LOS TRIGGERS


Un disparador es un objeto de base de datos con nombre que se asocia a una tabla, y se activa cuando ocurre un evento en particular para la tabla. Algunos usos para los disparadores es verificar valores a ser insertados o llevar a cabo clculos sobre valores involucrados en una actualizacin. Un disparador se asocia con una tabla y se define para que se active al ocurrir una sentencia INSERT, DELETE, o UPDATE sobre dicha tabla. Puede tambin establecerse que se active antes o despus de la sentencia en cuestin. Por ejemplo, se puede tener un disparador que se active antes de que un registro sea borrado, o despus de que sea actualizado. Para crear o eliminar un disparador, se emplean las sentencias CREATE TRIGGER y DROP TRIGGER.

mysql> CREATE TABLE account (acct_num INT, amount DECIMAL(10,2)); mysql> CREATE TRIGGER ins_sum BEFORE INSERT ON account -> FOR EACH ROW SET @sum = @sum + NEW.amount;

PROCEDIMIENTOS ALMACENADOS
Un procedimiento almacenado es un conjunto de comandos SQL que pueden almacenarse en el servidor. Una vez que se hace, los clientes no necesitan relanzar los comandos individuales pero pueden en su lugar referirse al procedimiento almacenado. Los procedimientos almacenados pueden mejorar el rendimiento ya que se necesita enviar menos informacin entre el servidor y el cliente. El intercambio que hay es que aumenta la carga del servidor de la base de datos ya que la mayora del trabajo se realiza en la parte del servidor y no en el cliente. Considere esto si muchas mquinas cliente (como servidores Web) se sirven a slo uno o pocos servidores de bases de datos. Los procedimientos almacenados le permiten tener bibliotecas o funciones en el servidor de base de datos. Esta caracterstica es compartida por los lenguajes de programacin modernos que permiten este diseo interno, por ejemplo, usando clases. Usando estas caractersticas del lenguaje de programacin cliente es beneficioso para el programador incluso fuera del entorno de la base de datos.

CLUSTERS
En su implementacin ms sencilla, un clster MySQL integra un servidor MySQL estndar y un motor de almacenamiento en memoria llamado NDBclster, funcionando en un conjunto de una o ms computadoras. Cada una de estas computadoras ejecutando uno o ms procesos, que

pueden consistir en procesos de MySQL server, nodos de almacenamiento de datos, servidor administrador del clster, o programas especializados para acceder a los datos. Las tablas de la base de datos se almacenan utilizando el motor NDB en los nodos de almacenamiento. La manera de acceder a los datos almacenados en el clster es a travs de cualquiera de los nodos MySQL. Los nodos de datos funcionan utilizando un esquema de espejado, permitiendo soportar sin impacto la cada de nodos individuales de datos dentro de clster. La nica consecuencia que tendra un suceso como la cada de un nodo Estas de datos, es que un pequeo conjunto de deben cumplir con el esquema transacciones relacionadas al nodo cado sern abortadas. transacciones transaccional, tal y como si estuvieran trabajando directamente con un servidor no clusterizado de Mysql

COMO TRABAJA LOS PRIVILEGIOS O ROLES


^

En MySQL existen cinco niveles distintos de privilegios: Globales: se aplican al conjunto de todas las bases de datos en un servidor. Es el nivel ms alto de privilegio, en el sentido de que su mbito es el ms general.

De base de datos: se refieren a bases de datos individuales, y por extensin, a todos los objetos que contiene cada base de datos. De tabla: se aplican a tablas individuales, y por lo tanto, a todas las columnas de esas tabla. De columna: se aplican a una columna en una tabla concreta. De rutina: se aplican a los procedimientos almacenados. An no hemos visto nada sobre este tema, pero en MySQL se pueden almacenar procedimientos consistentes en varias consultas SQL. Existe una sentencia para crear usuarios, CREATE USER, en versiones anteriores se usa exclusivamente la sentencia GRANT para crearlos. En general es preferible usar GRANT, ya que si se crea un usuario mediante CREATE USER, posteriormente hay que usar una sentencia GRANT para concederle privilegios. Usando GRANT podemos crear un usuario y al mismo tiempo concederle tambin los privilegios que tendr. La sintaxis simplificada que usaremos para GRANT, sin preocuparnos de temas de cifrados seguros que dejaremos ese tema para captulos avanzados, es: GRANT priv_type [(column_list)] [, priv_type [(column_list)]] ... ON TO user [IDENTIFIED BY [PASSWORD] 'password'] [, user [IDENTIFIED BY [PASSWORD] 'password']]

COMERCIALES O LIBRES
MySQL es un motor de base de datos, publicado bajo una licencia dual. Pero estas dos licencias slo se aplican cuando distribuyes MySQL como software para ser instalado en un servidor (aunque si no me equivoco existe software que permite usarlo en un CD). Si desarrollas un software y lo distribuyes junto a MySQL tienes dos opciones: 1. Si no quieres pagar la licencia comercial de MySQL tu software debe distribuirse como software libre. 2. Si no quieres distribuir tu software como software libre debes pagar por la licencia comercial de MySQL. Pero insisto, esto slo se aplica cuando distribuyes el software llamado MySQL junto al tuyo. Por ejemplo, Wordpress es una aplicacin web que trabaja con PHP y se conecta a MySQL, pero no lo distribuye.

PostgreSQL
-

Caractersticas Principales
La ltima serie de produccin es la 9.1. Sus caractersticas tcnicas la hacen una de las bases de datos ms potentes y robustas del mercado. Su desarrollo comenzo hace ms de 16 aos, y durante este tiempo, estabilidad, potencia, robustez, facilidad de administracin e implementacin de estndares han sido las caractersticas que ms se han tenido en cuenta durante su desarrollo. PostgreSQL funciona muy bien con grandes cantidades de datos y una alta concurrencia de usuarios accediendo a la vez a el sistema. A continuacin teneis algunas de las caractersticas ms importantes y soportadas por PostgreSQL: Generales Es una base de datos 100% ACID. Soporta distintos tipos de datos: adems del soporte para los tipos base, tambin soporta datos de tipo fecha, monetarios, elementos grficos, datos sobre redes (MAC, IP ...), cadenas de bits, etc. Tambin permite la creacin de tipos propios. Incluye herencia entre tablas, por lo que a este gestor de bases de datos se le incluye entre los gestores objeto-relacionales.

Copias de seguridad en caliente (Online/hotbackups) Unicode Juegos de caracteres internacionales Regionalizacin por columna Multi-VersionConcurrency Control (MVCC) Multiples mtodos de autentificacin Acceso encriptado via SSL SE-postgres Completa documentacin Licencia BSD

Disponible para Linux y UNIX en todas sus variantes (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64) y Windows 32/64bit.

-Capacidad de almacenamiento
Algunos de los limites de PostgreSQL son:

Lmite

Valor

Mximo tamao base de Ilimitado (Depende de tu sistema de dato almacenamiento) Mximo tamao de tabla Mximo tamao de fila Mximo tamao de campo 32 TB 1.6 TB 1 GB

Mximo numero de filas por Ilimitado tabla Mximo numero columnas por tabla de 250 - 1600 (dependiendo del tipo)

Mximo numero de indices Ilimitado por tabla

-Plataformas que soporta Una plataforma (es decir, una arquitectura de CPU y la combinacin del sistema operativo) se considera el apoyo de la PostgreSQL comunidad de desarrollo si el cdigo contiene disposiciones para trabajar en esa plataforma y se ha verificado recientemente para construir y pasar sus pruebas de regresin en esa plataforma. En la actualidad, la mayora de pruebas de compatibilidad de la plataforma se realiza automticamente por mquinas de prueba en el Build Granja PostgreSQL . Si usted est interesado en el uso de PostgreSQL en una plataforma que no se representa en la granja de la construccin, pero en el que el cdigo funciona o puede llegar a funcionar, se recomienda encarecidamente la creacin de una mquina de miembro granja compilacin por lo que la compatibilidad continua puede ser asegurado. En general, PostgreSQL se puede esperar para trabajar en estas arquitecturas de CPU: x86, x86_64, IA64, PowerPC, PowerPC 64, S/390, S/390x, Sparc, Sparc 64, Alpha, ARM, MIPS, Mipsel, M68K, y PA -RISC. Existe apoyo Cdigo para M32R, NS32K y VAX, pero estas arquitecturas no se sabe que se han probado recientemente. A menudo es posible construir en un tipo de CPU no admitida por la configuracin con - disablespinlocks , pero el rendimiento ser pobre. PostgreSQL se puede esperar a trabajar en estos sistemas operativos: Linux (todas las distribuciones ms recientes), Ventanas (Win2000 SP4 y posteriores), FreeBSD, OpenBSD, NetBSD, Mac OS X, AIX, HP / UX, IRIX, Solaris, Tru64 Unix, y UnixWare. Otros sistemas Unix tambin pueden funcionar pero no estn siendo probados actualmente. En la mayora de los casos, todas las arquitecturas de CPU soportadas por un sistema operativo dado funcionarn.

-Transacciones
Las Transacciones hijo Concepto des fundamentales de Todos los Sistemas de Bases de Datos. El Punto Esencial De Una transaccion canjear su palabra capacidad, prr empaquetar Varios Pasos en Una Sola Operacin "todo o nada". Los ESTADOS INTERMEDIOS empre Los Pasos ningn hijo Visibles prr Otras Transacciones concurrentes, y si ocurre Alguna falla Que impida Que se completa la transaccion, entonces Ninguno de los Pasos en s ejecuta y no en s afecta la la Base de Datos en Absoluto. EJEMPLO Por, considerar si Una Contiene la Base de Datos bancaria Que equilibre De VARIAS Cuentas de Clientes saldos Y Totales de Depsito de sucursales. Suponga Que QUEREMOS Pago sin registro de 100 dlares de la Cuenta de Alicia a la de Roberto. Simplificando la Operacin exageradamente, las Ordenes SQL prrafo Hacerlo s Verian ASI: UPDATE cuentasSET balance = balance - 100 . 00 WHEREnombre= 'Alicia' ; UPDATE sucursalesSET balance = balance - 100 . 00 WHERE nombre= ( SELECT sucursalFROM cuentasWHERE nombre= 'Alicia' ); UPDATE cuentasSET balance = balance + 100 . 00 WHEREnombre= 'Roberto' ; UPDATE sucursalesSET balance = balance + 100 . 00 WHERE nombre = ( SELECT sucursal FROM cuentas WHERE nombre = 'Roberto' ); Los Detalles de ESTS rdenes ningn hijo Importantes en Este Momento, Lo Que importa es Que heno Varias ACTUALIZACIONES separadas involucradas prr lograr this Operacin mas o menos sencilla. Los Operadores Bancarios van a querer Estar Seguros De que o Todos ESTOS Pasos s ejecutan o no en s ejecuta Ninguno. DEFINITIVAMENTE no seria aceptable Si Una falla del Sistema RESULTA En que Roberto recibe $ 100 Que No were debitados de la Cuenta de Alicia. Tampoco S a Alicia le debitaran ya Roberto no le abonaran. Se NECESITA Una Garantia de Que Si algoritmos venta mal en el transcurso de la Operacin, Ninguno de los Pasos ejecutados Hasta El Momento tendran efecto. Para El Ejemplo anterior, AGRUPAR las ACTUALIZACIONES En Una transaccion proporciona ESA garantia. De las Transacciones s dados Que hijo atomicas: desde el Punto de Vista de Otras Transacciones, la transaccion ocurre Completamente o no ocurre en Absoluto.

Also es necessary Garantizar Que, despues Que se completa Una transaccion Y Que El Sistema de Bases de Datos del tenga completo Conocimiento de ella, REALMENTE el Registro Sido hai permanente Y Que this No Se perdera, INCLUSO si llega a suceder Una falla Poco Tiempo despues.EJEMPLO Por, si s estuviera registrando sin retiro de Roberto, no seria aceptable Que el Dbito de Cuenta Do desapareciera En Una falla del Sistema justo despues de Que EL Venta Del banco. Base de Ua de Datos transaccional garantiza Que TODAS las ACTUALIZACIONES Realizadas Por Una transaccion s grabarn en la ONU Medio De Almacenamiento permanente (en disco, EJEMPLO POR) de los antes de Me transaccion s Completamente Reportado. Otra Propiedad Importante De Las bases de Datos transaccionales s Relaciona Con La Nocion de las ACTUALIZACIONES atmicas: CUANDO heno Muchas Transacciones concurrentes, Ninguna De Ellas deberia CONOCER Los Cambios incompletos Hechos porciones Las Demas. EJEMPLO Por, si Alguna transaccion no est Ocupada totalizando Todos Los saldos sucursal de una, no incluyera Que servira el Dbito de la sucursal de Alicia Pero no el Crdito a la sucursal de Roberto, viceversa ni. ASI Que las Transacciones servicio Deben Todo o Nada, ningn Solamente en Terminos de su efecto permanente en la la Base de Datos, sino-Also in Terminos de do VISIBILIDAD A MEDIDA Que suceden. Las ACTUALIZACIONES HECHAS HASTA CIERTO Momento Por Una transaccion Abierta invisibles hijo Par las dems La Transacciones Hasta Que la transaccion s completa. A partir de Finalizacin do, TODAS las ACTUALIZACIONES s Hacen Visibles simultaneamente. En PostgreSQL, Una transaccion s encerrando indica las Ordenes SQL De La transaccion empre Las rdenes COMIENZAN y COMMIT . Entonces la transaccion bancaria del EJEMPLO de arriba s Veria ASI: EMPEZAR ; ACTUALIZACIN Cuentas SET equilibrio = equilibrio - 100 .00 DONDE Nombre = 'Alicia' ; - etcetc COMMIT ;

Si en Medio De Una transaccion s deciden Que ya no s QUIERE registrador los Cambios (Chvez tal el equilibrio de Alicia en s Volvio negativo en algun Momento, EJEMPLO POR), Se Puede recurrir a la orden ROLLBACK en Lugar De COMMIT y TODAS las ACTUALIZACIONES Hasta ESE punto quedarian canceladas. De Hecho, PostgreSQL Trata CADA Declaracion de SQL de como si estuviera en s Ejecutando Dentro De Una transaccion. Si la ONU no ESPECIFICA Una Orden COMENZAR , entonces CADA DECLARACIN ONU Tiene individuo COMENZAR y, si es Exitosa, sin COMMIT Alrededor de ella. Veces ALGUNAS, un Grupo de la ONU Declaraciones Encerradas Entre COMIENZAN y COMMIT s les llama sin bloque de transaccion.

-Respaldos
pg_dump es una herramienta de lnea de comandos que nos permita hacer un respaldo de alguna de las bases de datos (o todas) en nuestro servidor postgres. Permite hacer el volcado de datos en diferentes formatos ya sean compresos, texto plano, etc. En resumen, escribe en un archivo (o salida estndar) las instrucciones SQL necesarias para hacer un respaldo de la base de datos. El formato del comando pg_dump es: pg_dump [opciones] [nombre_base] Entre las opciones que se pueden utilizar estn: dbname: Nombre de la base de datos de la que se desea hacer respaldo. -a o --data-only: Hace un volcado solo de los datos y no del esquema. -c o --clean: Crea instrucciones para eliminar los elementos antes de crearlos. Es til para evitar los errores del tipo 'la relacion nombre_relacin ya existe' a la hora de restaurar el respaldo. -C o --create: Escribe las instrucciones para la creacin de la base de datos dentro del script del respaldo. -f <archivo> o --file=<archivo>: Escriba la salida (el volcado) en el archivo especificado. En caso de que no se utilice esta opcin, el volcado se hace a la salida estndar.

-F <formato_de_archivo> o --format=<formato_de_archivo>: Permite especificar el formato de la salida del dump. El formato de salida puede ser: p o plain: Texto plano. c o custom: Formato de salida customizable. Este tipo de salida siempre se realiza compreso por defecto. t o tar: Crea la salida en formato tar. -n <nombre_esquema> o --schema=<nombre_esquema>: Realiza el dumpnicamente del esquema (y todos los objetos que contengan) que concuerde con el<nombre_esquema>. Si no se especifica, se har un dump de todos los esquemas que no sean del sistema y que estn en la base destino. Si se quiere incluir en el dump ms de un esquema se pueden poner multiples -n <nombre_esquema> como sean necesarios. -N <nombre_esquema> o --exclude-schema=<nombre_esquema>: Omite los esquemas que concuerden con <nombre_esquema> del dump a realizarse. Se pueden incluir tantos -N como sean necesarios. -s o --schema-only: Hace un volcado nicamente del esquema, no de los datos. -t <nombre_tabla> o --table=<nombre_tabla>: Hace un volcado solo de las tablas que se especifiquen. Se pueden utilizar -t <nombre_tabla> tantas veces como se necesite. Se debe tener en cuenta que pg_dump no hace un seguimiento de las tablas de las que pueda depender la tabla que se desee volcar con el dump, as que hay que tener cuidado de incluirlas todas las que sean necesarias (que tengan relacin con llaves primarias o forneas) para garantizar que se puede hacer la restauracin de los datos exitosamente. -T <nombre_tabla> o --exclude-table: <nombre_tabla>: Excluye del dumplas tablas listadas. Esta opcin puede ser utilizada ms de una vez. --inserts: Utiliza inserts en lugar de copy en las instrucciones de SQL. --port = <puerto>: Especifica el puerto TCP o local en el cual el servidor est escuchando. -U <nombre_de_usuario>: Especifica el nombre de usuario con el que se har la conexin a la base de datos que se desea respaldar. Ejemplos: Si tenemos una base de datos llamada base_de_prueba y queremos respaldarla completamente en un archivo llamado base_de_prueba.sql, podemos utilizar el siguiente comando: pg_dumpbase_de_prueba>base_de_prueba.sql Para hacer el volcado en un archivo de extensin personalizada (opcin F y c para custom): pg_dump -Fcbase_de_prueba>base_de_prueba.dump

Para volcar solo una tabla de la base: pg_dump -t nombre_tablabase_de_prueba>mi_tabla_dump.sql

-Clusters
Creacin de un clster de base de datos Antes de que pueda hacer nada, debe inicializar un rea de almacenamiento de base de datos en el disco. Nosotros llamamos a esto un grupo de base de datos . ( SQL utiliza el cluster catlogo plazo.) Un cluster de base de datos es un conjunto de bases de datos que es administrado por una sola instancia de un servidor de base de datos en funcionamiento. Despus de la inicializacin, un cluster de base de datos contendr una base de datos con nombre postgres , que se entiende como una base de datos predeterminada para el uso de los servicios pblicos, los usuarios y las aplicaciones de terceros. El servidor de base de datos en s no requiere el postgres base de datos que existe, pero muchos programas de utilidades externas asuma que existe. Otra base de datos creada dentro de cada grupo durante la inicializacin se llama template1 . Como el nombre sugiere, este se puede utilizar como una plantilla para las bases de datos creadas posteriormente, no se debe utilizar para el trabajo real. (Consulte el Captulo 20 para obtener informacin sobre la creacin de nuevas bases de datos dentro de un grupo.) En trminos del sistema de archivos, un cluster de base de datos ser un solo directorio en el que se almacenarn todos los datos. A esto le llamamos el directorio de datos o rea de datos .Es totalmente de usted, donde usted elija para almacenar sus datos. No hay por defecto, aunque lugares como / usr / local / pgsql / data locales o / var / lib / pgsql / data son populares. Para inicializar un conjunto de bases de datos, utilice el comando initdb ,que se instala con PostgreSQL . La ubicacin del sistema de archivos deseado de su clster de base de datos se indica mediante el D- opcin, por ejemplo

$initdb-D / usr / local / pgsql / data locales

Observe que debe ejecutar este comando habiendo iniciado sesin en el PostgreSQL cuenta de usuario, que se describe en la seccin anterior. Sugerencia: Como alternativa a la D- opcin, puede establecer la variable de entornoPGDATA . initdb intentar crear el directorio especificado si no existe ya. Es probable que no tenga permiso para hacerlo (si has seguido nuestro consejo y crear una cuenta sin privilegios). En ese caso, debera crear el directorio s mismo (como root) y cambie el propietario para ser el PostgreSQL usuario. As es como se puede hacer esto: root # mkdir / usrpgsql data / local / / root # chownpostgres / usr / local / pgsql / data local de root # do postgres postgres $ initdb-D / usr / local / pgsql / data locales

initdb se negar a ejecutar si el directorio de datos parece que ya se ha inicializado. Debido a que el directorio de datos contiene todos los datos almacenados en la base de datos, es esencial que est asegurado contra el acceso no autorizado. initdb lo tanto revoca los permisos de acceso de todo el mundo, pero el PostgreSQL usuario. Sin embargo, mientras que el contenido del directorio son seguras, la configuracin de la autenticacin del cliente por defecto permite a cualquier usuario local para conectarse a la base de datos e incluso convertirse en el superusuario base de datos. Si no confas en otros usuarios locales, le recomendamos que utilice una de initdb 's -W , - pwprompt o pwfile opciones para asignar una contrasea para el superusuario base de

datos.Adems, especifique -A md5 o -Una contrasea de manera que el valor por defecto de confianza no se utiliza el modo de autenticacin, o modificar el generado pg_hba.conf archivo despus de ejecutar initdb , antes de que inicie el servidor por primera vez. (Otros enfoques razonables incluyen el uso de identautenticacin o permisos para restringir las conexiones del sistema de archivos. Vea el Captulo 21 para obtener ms informacin.) initdb tambin inicializa la configuracin regional predeterminadapara el clster de base de datos. Normalmente, se acaba de tomar la configuracin regional en el medio ambiente y aplicarlos a la base de datos inicializado. Es posible especificar una configuracin regional diferente de la base de datos, ms informacin acerca de que se puede encontrar en la seccin 22.1 . El orden de clasificacin se utiliza dentro de un cluster de base de datos en particular se establece por initdb y no se puede cambiar ms adelante, corto de dumping de todos los datos, volver a ejecutar initdb , y volver a cargar los datos. Tambin hay un impacto en el rendimiento para el uso de otras localizaciones distintas a C o POSIX . Por lo tanto, es importante hacer esta eleccin correctamente la primera vez. initdb tambin establece la codificacin del juego de caracteres por defecto para el cluster de base de datos. Normalmente esto se debe elegir para que coincida con la configuracin local.Para ms detalles vase la Seccin 22.2 .

-Comerciales o Libre
PostgreSQL PostgreSQL es un SGBD relacional orientado a objetos y libre, publicado bajo la licencia BSD. Como muchos otros proyectos de cdigo abierto, el desarrollo de PostgreSQL no es manejado por una empresa y/o persona, sino que es dirigido por una comunidad de desarrolladores que trabajan de forma desinteresada, altruista, libre y/o apoyados por organizaciones

comerciales. Dicha comunidad es denominada el PGDG (PostgreSQL Global DevelopmentGroup). Nombre del producto[editar editar cdigo] El uso de caracteres en mayscula en el nombre PostgreSQL puede confundir a algunas personas a primera vista. Las distintas pronunciaciones de "SQL" pueden llevar a confusin. Los desarrolladores de PostgreSQL lo pronuncian /postskju l/;. Es tambin comn or abreviadamente como simplemente "Postgres", el que fue su nombre original. Debido a su soporte del estndar SQL entre la mayor parte de bases de datos relacionales, la comunidad consider cambiar el nombre al anterior Postgres. Sin embargo, el PostgreSQLCoreTeam anunci en 2007 que el producto seguira llamndose PostgreSQL. El nombre hace referencia a los orgenes del proyecto como la base de datos "post-Ingres", y los autores originales tambin desarrollaron la base de datos Ingres.

1. CARACTERISTICAS DEL SOFTWARE LIBRE: Se encuentra disponible el cdigo fuente del software, por lo que puede modificarse el software sin ningn lmite. Libertad de estudiarlo y adaptarlo. Libertad de distribuir copias. Libertad de mejora y publicacin de cambios. Libertad de usar el programa con cualquier propsito. -Como maneja los Triggers Una de las funcionalidades disponibles en PostgreSQL son los denominados disparadores (triggers). En este artculo vamos a introducirnos en el mundo de los disparadores, como funcionan y como podemos empezar a utilizarlos. Un disparador no es otra cosa que una accin definida en una tabla de nuestra base de datos y ejecutada automticamente por una funcin programada por nosotros. Esta accin se activar, segun la definamos, cuando realicemos un INSERT, un UPDATE un DELETE en la susodicha tabla.

Un disparador se puede definir de las siguientes maneras:


Para que ocurra ANTES de cualquier INSERT,UPDATE DELETE Para que ocurra DESPUES de cualquier INSERT,UPDATE DELETE Para que se ejecute una sola vez por comando SQL (statementleveltrigger) Para que se ejecute por cada linea afectada por un comando SQL (row-leveltrigger)

Esta es la definicin del comando SQL que se puede utilizar para definir un disparador en una tabla. CREATE TRIGGER nombre{ BEFORE | AFTER } { INSERT | UPDATE | DELETE [ OR ... ] } ON tabla[ FOR [ EACH ] { ROW | STATEMENT } ] EXECUTE PROCEDURE nombre de funcion( argumentos ) Antes de definir el disparador tendremos que definir el procedimiento almacenado que se ejecutar cuando nuestro disparador se active. El procedimiento almacenado usado por nuestro disparador se puede programar en cualquiera de los lenguajes de procedimientos disponibles, entre ellos, el proporcionado por defecto cuando se instala PostgreSQL, PL/pgSQL. Este lenguaje es el que utilizaremos en todos los ejemplos de este rticulo. Podeis encontrar mas informacin sobre procedimientos almacenados en el artculo "Procedimientos almacenados y PL/pgSQL" Caractersticas y reglas a seguir A continuacin teneis algunas de las caractersticas y reglas ms importantes a tener en cuenta, cuando definamos un disparador y/ programemos un procedimiento almacenado que se vaya a utilizar por un disparador: 1. El procedimiento almacenado que se vaya a utilizar por el disparador debe de definirse e instalarse antes de definir el propio disparador.

2. Un procedimiento que se vaya a utilizar por un disparador no puede tener argumentos y tiene que devolver el tipo "trigger". 3. Un mismo procedimiento almacenado se puede utilizar por mltiples disparadores en diferentes tablas. 4. Procedimientos almacenados utilizados por disparadores que se ejecutan una sola vez per comando SQL (statement-level) tienen que devolver siempre NULL. 5. Procedimientos almacenados utilizados por disparadores que se ejecutan una vez per linea afectada por el comando SQL (row-level) pueden devolver una fila de tabla. 6. Procedimientos almacenados utilizados por disparadores que se ejecutan una vez per fila afectada por el comando SQL (row-level) y ANTES de ejecutar el comando SQL que lo lanz, pueden: 1. Retornar NULL para saltarse la operacin en la fila afectada. 2. devolver una fila de tabla (RECORD) 7. Procedimientos almacenados utilizados por disparadores que se ejecutan DESPUES de ejecutar el comando SQL que lo lanz, ignoran el valor de retorno, asi que pueden retornar NULL sin problemas. 8. En resumen, independendientemente de como se defina un disparador, el procedimiento almacenado utilizado por dicho disparador tiene que devolver bien NULL, bien un valor RECORD con la misma estructura que la tabla que lanz dicho disparador. 9. Si una tabla tiene ms de un disparador definido para un mismo evento (INSERT,UPDATE,DELETE), estos se ejecutarn en orden alfabtico por el nombre del disparador. En el caso de disparadores del tipo ANTES / row-level, la file retornada por cada disparador, se convierte en la entrada del siguiente. Si alguno de ellos retorna NULL, la operacin ser anulada para la fila afectada. 10. Procedimientos almacenados utilizados por disparadores pueden ejecutar sentencias SQL que a su vez pueden activar otros disparadores. Esto se conoce como disparadores en cascada. No existe lmite para el nmero de disparadores que se pueden llamar pero es responsabilidad del programador el evitar una recursin

infinita de llamadas en la que un disparador se llame asi mismo de manera recursiva. Otra cosa que tenemos que tener en cuenta es que, por cada disparador que definamos en una tabla, nuestra base de datos tendr que ejecutar la funcin asociada a dicho disparador. El uso de disparadores de manera incorrecta inefectiva puede afectar significativamente al rendimiento de nuestra base de datos. Los principiantes deberian de usar un tiempo para entender como funcionan y asi poder hacer un uso correcto de los mismos antes de usarlos en sistemas en produccin. Variables especiales en PL/pgSQL Cuando una funcin escrita en PL/pgSQL es llamada por un disparador tenemos ciertas variable especiales disponibles en dicha funcin. Estas variables son las siguientes: NEW Tipo de dato RECORD; Variable que contiene la nueva fila de la tabla para las operaciones INSERT/UPDATE en disparadores del tipo row-level. Esta variable es NULL en disparadores del tipo statement-level. OLD Tipo de dato RECORD; Variable que contiene la antigua fila de la tabla para las operaciones UPDATE/DELETE en disparadores del tipo row-level. Esta variable es NULL en disparadores del tipo statement-level. TG_NAME Tipo de dato name; variable que contiene el nombre del disparador que est usando la funcin actualmente. TG_WHEN Tipo de dato text; una cadena de texto con el valor BEFORE o AFTER dependiendo de como el disparador que est usando la funcin actualmente ha sido definido TG_LEVEL Tipo de dato text; una cadena de texto con el valor ROW o STATEMENT dependiendo de como el disparador que est usando la funcin actualmente ha sido definido

TG_OP Tipo de dato text; una cadena de texto con el valor INSERT, UPDATE o DELETE dependiendo de la operacin que ha activado el disparador que est usando la funcin actualmente. TG_RELID Tipo de dato oid; el identificador de objeto de la tabla que ha activado el disparador que est usando la funcin actualmente. TG_RELNAME Tipo de dato name; el nombre de la tabla que ha activado el disparador que est usando la funcin actualmente. Esta variable es obsoleta y puede desaparacer en el futuro. Usar TG_TABLE_NAME. TG_TABLE_NAME Tipo de dato name; el nombre de la tabla que ha activado el disparador que est usando la funcin actualmente. TG_TABLE_SCHEMA Tipo de dato name; el nombre de la schema de la tabla que ha activado el disparador que est usando la funcin actualmente. TG_NARGS Tipo de dato integer; el nmero de argumentos dados al procedimiento en la sentencia CREATE TRIGGER. TG_ARGV[] Tipo de dato textarray; los argumentos de la sentencia CREATE TRIGGER. El ndice empieza a contar desde 0. Indices invlidos (menores que 0 mayores/iguales que tg_nargs) resultan en valores nulos.

-Como trabaja los privilegios o roles Database Roles and Privileges PostgreSQL administra los permisos de acceso de base de datos utilizando el concepto de roles. Este rol puede considerarse ya sea como usuario de base de datos, o un grupo de usuarios de bases de datos, dependiendo de cmo el rol se establezca. Un rol puede ser propietario de objetos de

bases de datos (por ejemplo, tablas) y se pueden asignar privilegios de los objetos a otros roles para controlar quin tiene acceso a los objetos. Adems, es posible la concesin de la pertenencia de un rol a otro rol, lo que permite utilizar el rol de miembro de los privilegios asignados al rol que es un miembro de. El concepto de los roles subsume los conceptos de "usuarios" y "grupos". En las versiones de PostgreSQL anteriores de 8.1, los usuarios y los grupos eran distintos tipos de entidades, pero ahora hay slo roles. Cualquier funcin puede actuar como un usuario, un grupo, o ambos. Atributos de Roles Uno de los roles de base de datos puede tener una serie de atributos para definir sus privilegios e interactuar con el sistema de autenticacin de cliente. loginprivilege Solo roles que tienen el atributo de inicio de sesin puede ser usados como el nombre de rol inicial de una conexin de base de datos. Un rol con el atributo de inicio de sesin puede ser considerada lo mismo que un "usuario de base de datos". Para crear un rol con el privilegio de acceso: CREATE nombre de rol LOGIN; CREATE nombre de usuario; (CREATE USER es equivalente a CREATE ROLE, salvo que CREATE USER asume LOGIN por defecto, mientras que CREATE ROLE no.) superuser El status de superusuario de base de datos se salta todas las comprobaciones de permisos. Este es un privilegio que no debera ser utilizado con descuido, lo mejor es hacer la mayor parte de su trabajo como un rol que no sea un super-usuario. Para crear una nueva base de datos de superusuario, use CREATE ROLE nombre SUPERUSER. Debe hacer esto como un rol que ya sea un super-usuario. databasecreation

Debe ser explcitamente dado para crear bases de datos (con excepcin de los superusuarios, ya que pasan por alto todos los controles de permiso). Para crear este role, usar de CREATE ROLE nombre CREATEDB. rolecreation Debe ser explcitamente dado para crear ms roles (a excepcin de los superusuarios, ya que pasan por alto todos los controles de permiso). Para crear esa funcin, usar CREATE ROLE nombre CREATEROLE. Un role con el privilegio CREATEROLE puede modificar y colocar otros roles, tambin, as como de conceder o revocar la pertenencia a ellas. Sin embargo, para crear, modificar, eliminar o cambiar roles de super-usuario, el estado de superusuario es imprescindible; CREATEROLE no es suficiente para eso. password Slo es significativa si el mtodo de autenticacin de cliente requiere que el usuario proporcione una contrasea cuando se conecta a la base de datos. La contrasea y los mtodos de autenticacin MD5 hacen uso de contraseas. Las contraseas de bases de datos son independientes de las contraseas del sistema operativo. Especificar una contrasea a la creacin de papel con una cuerda CREATE ROLE Nombre de Usuario PASSWORD 'contrasea'. Los atributos de roles pueden ser modificados despus de la creacin con ALTER ROLE. Vea las pginas de referencia para la funcin de CREATE y ALTER comandos ROLE para ms detalles. Consejo: Es una buena prctica crear un ROLE que tenga el CREATEDB CREATEROLE y privilegios, pero no sea un super-usuario, y luego utilizar este ROLE para todas las corrientes de gestin de bases de datos y roles. Este enfoque evita los peligros de operar como un super-usuario para las tareas que realmente no lo requieren. Privilegios Cuando se crea un objeto, se le asigna un propietario. El propietario es normalmente el rol que ejecut la sentencia de creacin. Para la mayora de los tipos de objetos, el estado inicial es que slo el propietario (o un super-usuario) puede hacer cualquier cosa con el objeto. Para permitir que otros roles puedan usarla, deben otorgarse privilegios. Hay varios tipos

diferentes de privilegio: SELECT, INSERT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER, CREATE, CONNECT, TEMPORARY, EXECUTE, and USAGE. Para obtener ms informacin sobre los diferentes tipos de privilegios con el apoyo de PostgreSQL, consulte la pgina de referencia GRANT. Para asignar privilegios, se utiliza el comando GRANT. As que, si Joe es un ROLE existente, y de cuentas es una tabla existente, el privilegio de actualizar la tabla puede ser concedido con: GRANT UPDATE ON cuentas TO joe; El nombre especial public puede ser utilizado para conceder un privilegio a cada role en el sistema. Escrito ALL en lugar de un privilegio especfico establece que todos los privilegios que se aplican al objeto sern concedidos. Para revocar el privilegio, utilice el comando REVOKE: REVOKE ALL ON cuentas de PUBLICA; Los privilegios de propietario de un objeto (es decir, el derecho a modificar o destruir el objeto) son siempre implcitos en ser el dueo, y no pueden ser concedidos o revocados. Sin embargo, el propietario puede elegir para revocar sus propios privilegios ordinarios, por ejemplo, para hacer una tabla de slo lectura para s mismo, as como los dems. Un objeto puede ser asignado a un nuevo propietario con un comando ALTER del tipo apropiado para el objeto. Los superusuarios siempre puede hacer esto, los roles ordinarios slo puede hacerlo si los dos son el actual propietario del objeto (o un miembro del rol de la propiedad) y un miembro del rol del propietario nuevo. Composicin de privilegios Con frecuencia es conveniente que los usuarios se agrupen para facilitar la administracin de los privilegios: de esa manera, los privilegios pueden ser concedidos a, o revocados de un grupo como un todo. En PostgreSQL Esto se hace mediante la creacin de un rol que representa el grupo y, a

continuacin, la concesin de pertenencia al rol del grupo a los roles de cada usuario. Para configurar una funcin de grupo, primero crear la funcin: CREATE ROLE name; Un rol que se utiliza como un grupo no tiene el atributo LOGIN, aunque se puede establecer si lo desea. Una vez que el papel de grupo existe, usted puede agregar y eliminar miembros usando el comando GRANT y REVOKE: GRANT group_role TO role1, ... ; REVOKE group_role FROM role1, ... ; Se puede conceder la adhesin a los roles de otro grupo, tambin (ya que no hay realmente una distincin entre las roles de grupo y los roles no grupales). La base de datos no le permitir crear lazos de pertenencia circular. Adems, no se permite la concesin de la pertenencia a un rol pblico. Los miembros de un rol puede usar los privilegios del rol de grupo de dos maneras. En primer lugar, cada miembro de un grupo puede hacer de forma explcita SET ROLE para "convertirse" temporalmente en el rol de grupo. En este estado, el perodo de base de datos tiene acceso a los privilegios de la funcin del grupo por encima del rol de acceso original, y cualquier objeto de base de datos creada se considera propiedad del rol de grupo y no de la funcin de acceso. En segundo lugar, los roles de los miembros que tienen el atributo INHERIT tienen automticamente el uso de los privilegios de los roles a los que pertenecen. Como ejemplo, supongamos que hemos hecho: CREATE ROLE joe LOGIN INHERIT; CREATE ROLE admin NOINHERIT; CREATE ROLE wheel NOINHERIT; GRANT admin TO joe; GRANT wheel TO admin;

Inmediatamente despus de conectar como el rol Joe, un perodo de base de datos tendr el uso de los privilegios concedidos directamente a Joe adems de los privilegios concedidos al administrador, porque Joe ", hereda los privilegios de" administrador. Sin embargo, los privilegios concedidos a wheel no estn disponibles, porque a pesar de que Joe es indirectamente un miembro de wheel, la composicin es a travs de administrador que tiene el atributo NOINHERIT. Despus de SET ROLE admin; la sesin tendra el uso nicamente de los privilegios concedidos a admin, y no de los concedidos a Joe. Despus de: SET ROLE wheel; la sesin tendra el uso nicamente de los privilegios concedidos a wheel, y no a los que se conceden a cualquiera de Joe o de administracin. El estado de privilegio original puede ser restaurado con cualquiera de: SET ROLE joe; SET ROLE NONE; RESET ROLE; El comando SET ROLE siempre permite seleccionar cualquier role que la funcin original de inicio de sesin es directa o indirectamente un miembro. As, en el ejemplo anterior, no es necesario convertirse en administrador antes de convertirse en wheel. En el estndar SQL, hay una distincin clara entre los usuarios y roles, y los usuarios no heredan automticamente los privilegios, mientras que los roles hacer. Este comportamiento se puede obtener en PostgreSQL, dando roles se utilizan las funciones de SQL como el atributo INHERIT. El papel de los atributos de LOGIN, SUPERUSER, CREATEDB, y CREATEROLE pueden considerarse como privilegios especiales, pero nunca se heredan como los privilegios de los objetos ordinarios de la base de datos. Usted realmente debe establecer SET ROLE a un rol especfico con uno de estos atributos a fin de hacer uso del atributo. Continuando con el ejemplo

anterior, podramos optar por otorgar CREATEDB y CREATEROLE a la funcin de administrador. Luego de una sesin de conexin como Joe no tendramos estos privilegios de inmediato, slo despus de hacer SET ROLE admin. Para destruir a un grupo de roles, usar DROP ROLE: DROP ROLE name Ninguna membresa al rol de grupo es revocada automticamente (los roles miembros no se ven afectados). Notar sin embargo que los objetos de propiedad del rol del primer grupo deben ser descartados o reasignados a otros propietarios, y los permisos concedidos al rol de grupo debe ser revocada. -Como trabaja los procedimientos almacenados Existen dos ventajas evidentes al utilizar procedimientos almacenados en nuestro sistema:

La ejecucin del procedimiento ocurre en el servidor de bases de datos. Esto probablemente aumentar el rendimiento de nuestra aplicacin al no tenerse que mandar datos entre el cliente y el servidor, y no tener que procesar resultados intermedios en el cliente para obtener el resultado final. Al tener la lgica de la aplicacin implementada en la base de datos no tendremos que implentarla en los clientes, con el consiguiente ahorro de lineas de cdigo redundante y complejidad. Si tenemos diferentes tipos de clientes implementados en diferentes sistemas lenguajes de programacin y accediendo a la misma base de datos, no tendremos que programar la misma lgica en todos, al estar esta disponible en la base de datos. Tendremos una API a la lgica de la aplicacin lista para usarse desde diferentes clientes

Un procedimiento almacenado en PostgreSQL se puede escribir en multiples lenguajes de programacin. En una instalacin por defecto de

PostgreSQL podremos tener disponibles los siguientes lenguajes: PL/pgSQL, PL/Perl, PL/Tcl y PL/Python. El nico lenguaje que est disponible automticamente es PL/pgSQL. Para utilizar PL/Perl, PL/Tcl o PL/Python tendremos que haber configurado/compilado PostgreSQL con estos parmetros --with-perl --withtcl --with-python. Tambien existen muchos otros lenguajes disponibles como mdulos adicionales, entre ellos, PL/Java, PL/PHP, PL/R, PL/Ruby, PL/Sheme y PL/sh, pero estos tienen que descargarse e instalarse por separado [Informacin sobre descargas]. Suponiendo que tenemos PostgreSQL instalado con los lenguajes que queremos utilizar tendremos que realizar dos operaciones para poder empezar a utilizar un procedimiento almacenado en nuestra base de datos: 1. Instalar, si no lo tenemos instalado, el lenguaje que vayamos a utilizar para programar nuestro procedimiento (solamente necesitamos hacer esto una sola vez por base de datos) 2. Programar nuestro procedimiento e instalarlo en la base de datos

SYBASE
CARACTERISTICAS PRINCIPALES
Bajo Costo Total de Propiedad Ahorro en Almacenamiento/Compresin Sybase comprime su bodega de datos hasta en un 70%. En pruebas auditadas por un auditor TPC, Sybase carg 48.2 terabytes de datos de entrada en una bodega de 22 terabytes. Usando una base de datos relacional tradicional, los mismo 48.2 terabytes habran explotado hasta entre 120 y 240 terabytes. Esto brinda una gran reduccin en costos de almacenamiento versus una bodega de datos basada en una base de datos transaccional convencional. Costos Reducidos de Mantenimiento Eliminando la necesidad de afinar cada consulta y de dedicar tiempo y recursos a agregar nuevos campos y manejar el crecimiento diario, Sybase elimina el sobrecosto de los datos y reduce los costos de mantenimiento. Despliegue Acelerado Dado que Sybase est construido desde su raz para operaciones analticas, toma slo una fraccin del tiempo para desplegar, comparado a bases de datos tradicionales. Con Sybase, no hay necesidad de hacer reingeniera sobre la base de datos para ajustarla a las operaciones analticas. El tiempo

de despliegue puede ser reducido hasta en un 80%. Esto significa resultados ms rpidos para su organizacin. Velocidad La informacin es el motor que mueve a las organizaciones exitosas. En conjunto, el sobrecosto, almacenamiento y esfuerzo de mantenimiento reducidos de Sybase, los tiempos reducidos de cargue de datos y la velocidad en el tiempo de respuesta de las consultas, resultan en el retorno de inversin. Escalabilidad SybaseFue diseado desde la raz para escalar transparentemente desde lo muy pequeo, hasta lo muy, muy grande. Ha sido probado minuciosamente para:

Miles de usuarios y consultas Docenas de nodos y miles de CPUs sobre mltiples generaciones de servidores Datos de entrada de ms de 48 terabytes

La escalabilidad no es un problema.
CAPACIDAD DE ALMACENAMIENTO

Gracias a su estructura basada en columnas, es el nico servidor que le permite almacenar la misma cantidad de informacin utilizando una tercera parte de la capacidad de disco y garantiza la accesibilidad total a los datos. Adems, IQ es una herramienta escalable, por lo que al mismo tiempo que las necesidades de negocio crezcan, ser capaz de darles respuesta sin necesidad de nuevas actualizaciones o inversiones. las instalaciones de SYBASE fueron ms eficientes que otrossistemas, lo que requera 24% menos capacidad de

almacenamiento y correr procesadordel servidor.


PLATAFORMAS QUE SOPORTA

sobre

29%

menos

poder

del

Sybase IQ soporta los siguientes sistemas operativos:


Solaris 64 bit GNU/Linux 64/32 bit HP-UX 64 bit HP-UX Itanium 64 bit IBM AIX 64 bit Microsoft Windows 64/32 bit UNIX LINUX POWER

TRANSACCIONES
Los sistemas de procesamiento de transacciones extremos deben soportar decenas de miles de usuarios concurrentescon un desempeo ultra veloz y continuo sobre plataformas rentables y basadas en estndares. SYBASE, el sistema deadministracin de bases de datos empresariales de misin crtica de Sybase, potencia a 90% de los principales 50bancos y firmas de seguridad globales. Estas compaas eligen a SYBASE por su confiabilidad, desempeo superior y bajocosto total de propiedad (TCO). SYBASE permite que los exigentes departamentos de TI logren millones de transacciones por minuto con bases dedatos de terabytes, al tiempo de mantener velocidades de crecimiento rpidas del volumen de datos y de transacciones.Bombay Stock

Exchange procesa 4 millones de transacciones al da, interconectadas con 400 ciudades. BlueCrossBlueShield de Tennessee procesa 5 terabytes de datos con 3,200 usuarios concurrentes al da. Y, Passport Canadaejecuta 100 mil transacciones por minuto en una base de 9 terabytes que est creciendo 2 terabytes al ao. De hecho SYBASE ha establecido rcords en el desempeo de procesamiento de transacciones en IBM PowerSystems en configuracionesde 2 y 4 ncleos que corren Linux sobre el benchmark TPC-C.1
RESPALDOS

La forma de hacer este respaldo es muy sencilla, basta con ingresar a la base de datos con el dueo de la base de datos y ejecutar el siguiente comando: javoaxian@darthmaul:~$ isql -Uusuario -Sservidor -Dbasededatos 1>dumpdatabasenombre_baseto "/ruta/archivo/respaldo/archivo.dump" 2>go Como se puede observar, se debe especificar el nombre de la base de datos y la ruta del archivo con extensin .dump que contendr el respaldo de la base de datos. Algo IMPORTANTE de mencionar, es que el archivo.dump es creado con la cuenta de usuario sybase del sistema operativo, por lo que deberemos otorgarle permisos de escritura para que este usuario (sybase) escriba sobre el directorio donde queremos guardar nuestro respaldo. Otra opcin es que manden el respaldo al directorio /tmp y copiar el respaldo a uno de nuestros directorios. Lo malo de esto, es que debermos solicitar al administrador del equipo que borre el respaldo por cuestiones de seguridad. Ejemplo: javoaxian@darthmaul:~$ isql -Ujavoaxian -Sdarthmaul Djavoaxian 1>dumpdatabasejavoaxianto "/home/javoaxian/respaldos_sybase/respaldo_2008-0612.dump" 2>go

CLUSTERS

Utiliza la agrupacin de disco compartido, donde un nmero de instancias del servidor ASE se agrupa en un clster visto como un nico sistema la gestin del mismo conjunto de datos. Esto permite que las cargas de trabajo de aplicaciones para equilibrarse entre las instancias. El software migra automticamente las conexiones si un nodo falla, segn la compaa. ASE ClusterEdition es compatible con los sistemas que ejecutan Red Hat Enterprise Linux 4 y 5 (x86_64); Solaris 9 y 10 en SPARC (64 bits) y SUSE Linux 9 y 10 (x86_64).Sybase no dio a conocer la informacin de precios.
COMERCIALES O LIBRES

Sybase ASE. Es la abreviatura de "Adaptive Server Enterprise", el software de base de datos relacional fabricado y vendido por Sybase Inc. ASE es un software verstil, de clase empresarial RDBMS que es especialmente bueno en el manejo de cargas de trabajo OLTPASE, es utilizado de forma intensiva en el mundo financiero (bancos, bolsas de valores, compaas de seguros), en el comercio electrnico, as como en el rea de prcticamente todos los dems. La ms reciente versin de ASE es la 15.7 (publicado en septiembre del 2011); la versin anterior es la versin 15.5. ASE 15.7 tambin se conoce como "el lanzamiento de SAP", ya que esta es la versin de ASE que SAP est utilizando para apoyar el paquete de ERP Business Suite en la parte superior de Sybase ASE. Sybase ASE es un producto patentado, un software comercial. Sin embargo, las versiones libres de ASE tambin estn disponibles.

COMO MANEJA LOS TRIGGERS

Sybase: Soporta slo un trigger por operacin de insercin, actualizacin o eliminacin.


Sybase: Pueden entregar varias filas, pero no soportan cursores. Deben usar Transact-SQL, un lenguaje procedimental propietario, para crearlos, que se compilan en un solo paso y se guardan en el catlogo. Se llaman con el comando EXECUTE de SQL y pasando a ste el nombre del procedimiento y del servidor en el que se halla.

COMO TRABAJA LOS PRIVILEGIOS DE ROLES


El proceso de instalacin y configuracin de Adaptive Server definevarios roles de usuario. Cada uno de los roles de usuario est asociada adistintas responsabilidades y privilegios. Estos roles de usuariodeterminan cmo el servidor Adaptive Server se integra en el sistema: Administrador del sistema operativo: usuario responsable delmantenimiento del sistema operativo. Este tipo de usuario tieneprivilegios de superusuario o root. Administrador del sistema Sybase: usuario responsable de laadministracin del sistema del servidor Adaptive Server, creacin decuentas de usuario, asignacin de permisos en las bases de datos ycreacin de bases de datos nuevas. En el proceso de instalacin, elnombre de inicio de sesin del Administrador del sistema es sa. Estenombre (sa) no es vlido para el inicio de sesin en UNIX. El nombrede inicio de sesin sa es especfico del servidor Adaptive Server y seutiliza para iniciar en ste la sesin mediante el comando isql. Inicio de sesin Sybase: el nombre de inicio de sesin sybase esvlido para UNIX y tiene privilegios sobre todos los archivos ydirectorios de instalacin de Sybase, define los permisos en esosdirectorios y archivos, y realiza la instalacin y actualizacin delservidor Adaptive Server. COMO TRABAJA LOS PROCEDMIENTOS ALMACENADOS Un StoredProcedure o Procedimiento Almacenado es un programa (o funcin) que se almacena fsicamente en una base de datos. La implementacin de un storedprocedure vara de un gestor de bases de datos a otro. En la mayora de los casos, no obstante, los storedprocedures permiten definir una

API (capa de abstraccin) para que el gestor de bases de datos interacte con tablas u otros objetos de la base de datos, en vez de tener un cliente de la aplicacin interactuando directamente. Antes de poder crear una funcin SQLJ definida por usuario o un procedimiento almacenado SQLJ, usted debe instalar la clase Java en ASE. Para mayor informacin sobre cmo instalar una clase Java en ASE, vea la Nota Tcnica No. 10055. ASE 12.5 le permite invocar mtodos estticos Java a manera de procedimientos almacenados SQLJ. Los procedimientos almacenados SQLJ:

Pueden retornar conjuntos resultados y/o parmetros de salida al cliente. Se compartan exactamente igual a los procedimientos SQL al ser ejecutados. Pueden se invocados desde clientes usando ODBC, ClientLibrary o JDBC. Pueden ser invocados desde el otros procedimientos almacenados del servidor.

El usuario final no necesita saber si el procedimiento que est siendo invocado es un procedimiento almacenado SQLJ o un procedimiento almacenado Transact-SQL. Se invocan de la misma manera.

Microsoft SQL Server


Microsoft SQL Server es un sistema para la gestin de bases de datos producido por Microsoft basado en el modelo relacional. Sus lenguajes para consultas son T-SQL y ANSI SQL. Microsoft SQL Server constituye la alternativa de Microsoft a otros potentes sistemas gestores de bases de datos como son Oracle, PostgreSQL o MySQL.

-Caractersticas Principales

Soporte de transacciones. Soporta procedimientos almacenados. Incluye tambin un entorno grfico de administracin, que permite el uso de comandos DDL y DML grficamente.

Permite trabajar en modo cliente-servidor, donde la informacin y datos se alojan en el servidor y los terminales o clientes de la redslo acceden a la informacin. Adems permite administrar informacin de otros servidores de datos.

Capacidad de almacenamiento

Caracterstica

Requisito de espacio en disco 811 MB

Motor de base de datos y archivos de datos, replicacin, bsqueda de texto completo y Data Quality Services Analysis Services y archivos de datos Reporting Services y Administrador de informes Integration Services Master Data Services Componentes de cliente, excepto los componentes de los Libros en pantalla de SQL Server y las herramientas de Integration Services. Los componentes de los Libros en pantalla de SQL Server para ver y administrar el contenido de la Ayuda1

345 MB 304 MB 591 MB 243 MB 1823 MB

375 KB

Respaldos

Recuperacin Microsoft SQL Server 2012 cuenta con 3 formas diferentes de respaldo y recuperacin de bases de datos:

SQL Server Management Studio (Herramienta grfica de administracin para SQL Server 2005 y posteriores) (nivel de dificultad: fcil) PowerShell (Interfaz de consola avanzada disponible para Microsoft Windows con posibilidad de interactuar con SQL Server) (nivel de dificultad: medio) Transact-SQL (Lenguaje propio de SQL Server) (nivel de dificultad: avanzado).

Versin de SQL Server Native Client SQL Server Native Client (SQL Server 2005)

Sistemas operativos admitidos

Microsoft

SQL Server Native Client 10.0 (SQL Server 2008) SQL Server Native Client 10.5 (SQL Server 2008 R2)

Windows 2000 Service Pack 4 o posterior Microsoft Windows Server 2003 o posterior Microsoft Windows XP Service Pack 1 o posterior Microsoft Windows Vista (requiere SQL Server Service Pack 2 o posterior) Microsoft Windows Server 2008 (requiere SQL Server Service Pack 2 o posterior) Microsoft Windows Server 2003 Service Pack 2 o posterior Microsoft Windows XP Service Pack 2 o posterior Microsoft Windows Vista Microsoft Windows Server 2008
Microsoft

Windows Server 2003 Service Windows XP Service Pack 2 o Windows Vista

Pack 2 o posterior
Microsoft

posterior
Microsoft

Microsoft Microsoft

Windows Server 2008 Windows 7

SQL Server Native Client 11.0 (SQL Server 2012)


Plataformas que soporta Transacciones

Microsoft Microsoft Microsoft Microsoft Microsoft

Windows Vista Windows Server 2008 Windows 7 Windows 8 Windows Server 2012

Una transaccin es un conjunto de operaciones Transact SQL que se ejecutan como un nico bloque, es decir, si falla una operacin Transact SQL fallan todas. Si una transaccin tiene xito, todas las modificaciones de los datos realizadas durante la transaccin se confirman y se convierten en una parte permanente de la base de datos. Si una transaccin encuentra errores y debe cancelarse o revertirse, se borran todas las modificaciones de los datos. El ejemplo clsico de transaccin es una transferencia bancaria, en la que quitamos saldo a una cuenta y lo aadimos en otra. Si no como capaces de abonar el dinero. en la cuenta de destino, no debemos quitarlo de la cuenta de origen. SQL Server funciona por defecto con Transacciones de confirmacin automtica, es decir, cada instruccin individual es una transaccin y se confirma automticamente.

Clster

La construccin de los ordenadores del clster es mas fcil y econmica debido a su flexibilidad: pueden tener todos la misma configuracin de hardware y sistema operativo, diferente rendimiento pero con arquitecturas y sistemas operativos similares. Para que un clster funcione como tal, no basta solo con conectar entre si los ordenadores, si no que es necesario proveer un sistema de manejo del clster, el cual se encargue de interactuar con el usuario y los procesos que corran en el para optimizar el funcionamiento. Sqlserver viene con un software llamado iscsi que permite la conexin de un host de Windows a una matriz de almacenamiento externo iscsi utilizando adaptadores de red.

Comerciales o Libre

Sql server tiene algunas ventajas en cuanto a su estructura pero tambin desventajas en cuanto a si es comercial o libre en todo caso sql server tiene ambos lados por ejemplo:
Microsoft SQL Server Data Engine (MSDE, tambin conocido como Microsoft Data Engine o Microsoft Desktop Engine) es unSistema de Gestin de Bases de Datos Relacionales desarrollado por Microsoft. Se trata de una versin reducida de Microsoft SQL Server 7.0 o 2000, que es gratuito para uso no comercial, as como un uso comercial limitado SQL SERVER 2012 ENTERPRISE EDITION: SQL Server 2012 Enterprise Edition es el tope mximo de la alineacin del producto MS SQL Server 2012. Esta es compatible con el nmero mximo de ncleos y memoria RAM que posea el host del sistema operativo proporcionando un completo conjunto de caractersticas, incluyendo soporte para toda la disponibilidad de avanzada y caractersticas de BI.

Como maneja los Tiggers

Un desencadenador es una clase especial de procedimiento almacenado que se ejecuta automticamente cuando se produce un evento en el servidor de bases de datos. Los desencadenadores DML se ejecutan cuando un usuario intenta modificar datos mediante un evento de lenguaje de manipulacin de datos (DML). Los eventos DML son instrucciones INSERT, UPDATE o DELETE de una tabla o vista. Estos desencadenadores se activan cuando se desencadena cualquier evento vlido, con independencia de que las filas de la tabla se vean o no afectadas. Para obtener ms informacin, vea Desencadenadores DML. Estos eventos corresponden principalmente a instrucciones CREATE, ALTER y DROP de Transact-SQL, y a determinados procedimientos almacenados del sistema que ejecutan operaciones de tipo DDL. Los desencadenadores logon se activan en respuesta al evento LOGON que se genera cuando se establece la sesin de un usuario. Los desencadenadores pueden crearse directamente a partir de instrucciones de Transact-SQL o de mtodos de ensamblados creados en Common Language Runtime (CLR) de Microsoft .NET Framework y cargados en una instancia de SQL Server. SQL Server permite crear varios desencadenadores para cualquier instruccin especfica.

Como trabaja los privilegios o roles

Los roles fijos de base de datos incluyen un conjunto predefinido de permisos diseados para permitir administrar grupos de permisos con facilidad. Recurso Roles de nivel de servidor y Permisos de los roles fijos de servidor en los Libros en pantalla de SQL Server Roles de nivel de base de datos y Permisos datos en los de los en roles fijos de base de Libros pantalla de SQL Server
Roles y usuarios de base de datos

Descripcin Describe los roles fijos de servidor y los permisos asociados a ellas en SQL Server.

Describe los roles fijos de base de datos y los permisos asociados a ellas.

A la hora de disear la seguridad para la aplicacin, tambin debe tener en cuenta el rol public, la cuenta de usuario dbo y la Rol public El rol public est contenido en todas las bases de datos, incluidas las bases de datos del sistema. No se puede eliminar y no se pueden agregar ni quitar usuarios de ella. Cuenta de usuario dbo Dbo, o propietario de base de datos, es una cuenta de usuario con permisos implcitos para realizar todas las actividades en la base de datos. Los miembros del rol fijo del servidor sysadmin se asignan automticamente adbo.

Cuenta de usuario guest La cuenta guest es una cuenta integrada en todas las versiones de SQL Server. De forma predeterminada, est deshabilitada en las bases de datos nuevas. Si est habilitada, se puede deshabilitar mediante la revocacin de su permiso CONNECT, que se lleva a cabo con la ejecucin de la instruccin REVOKE CONNECT FROM GUEST de Transact-SQL.

Como trabaja los procedimientos almacenados

Permisos
Requiere el permiso CREATE PROCEDURE en la base de datos y el permiso ALTER en el esquema en el que se va a crear el procedimiento.

Crear un procedimiento almacenado


Puede usar cualquiera de los siguientes medios: SQL Server Management Studio Transact-SQL

Usar SQL Server Management Studio


Para crear un procedimiento en el explorador de objetos: 1. En el Explorador de objetos, conctese a una instancia de Motor de base de datos y expndala. 2. Expanda Bases de datos, la base de datos AdventureWorks2012 y, por ltimo, Programacin. 3. Haga clic con el botn secundario en Procedimientos almacenados y, a continuacin, haga clic en Nuevo procedimiento almacenado. 4. En el men Consulta, haga clic en Especificar valores para parmetros de plantilla.

5. En el cuadro de dilogo Especificar valores para parmetros de plantilla, especifique los siguientes valores para los parmetros mostrados.
Parmetro Autor Create Date Descripcin Procedure_name @Param1 @Datatype_For_Param1 Default_Value_For_Param 1 @Param2 @Datatype_For_Param2 Default_Value_For_Param 2 Valor Your name Today's date Devuelve datos de empleado. HumanResources.uspGetEmployeesTes t @LastName nvarchar (50) NULL @FirstName nvarchar (50) NULL

6. Haga clic en Aceptar. 7. En el editor de consultas reemplace la instruccin SELECT por la siguiente instruccin: Transact-SQL
SELECT FirstName, LastName, Department FROM HumanResources.vEmployeeDepartmentHistory WHERE FirstName = @FirstName AND LastName = @LastName AND EndDate IS NULL;

8. Para probar la sintaxis, en el men Consulta, haga clic en Analizar. Si se devuelve un mensaje de error, compare las instrucciones con la informacin anterior y corrija lo que sea necesario. 9. Para crear el procedimiento, en el men Consulta, haga clic en Ejecutar. El procedimiento se crea como un objeto de la base de datos. 10. Para ejecutar el procedimiento, en el Explorador de objetos.

11. En la ventana Ejecutar procedimiento, escriba Margheim como valor del parmetro @LastName y Diane como valor del parmetro @FirstName.

BIBLIOGRAFIA

http://www.slideshare.net/Thekavenet/transa cciones-en-mysql
http://technet.microsoft.com/es-es/library/ms143506.aspx http://technet.microsoft.com/es-es/library/ms345415.aspx

http://technet.microsoft.com/es-es/library/ms143432.aspx http://technet.microsoft.com/es-es/library/cc280356.aspx http://www.slideshare.net/jo_unwell/sql-server-cluster http://redondoj.wordpress.com/2012/02/20/ediciones-de-ms-sql-server2012/

http://www.mtbase.com/contenido/documento?id=4,00026 http://www.ecured.cu/index.php/Sybase_IQ#Plataformas_soportadas http://www.sybase.com http://www.netapp.com/es/solutions/applications/sybase/sybase-backuprecovery.aspx http://www.pcworld.com/article/142611/article.html http://www.symantec.com/es/mx/storage-foundation-for-sybase-ase-ce http://www.mtbase.com/productos/gestionbasesdedatos/ase/ase-ce http://www.databasejournal.com/features/sybase/article.php/3887051/Bes t-Practices-for-a-SYBASE-ASE-Cluster-Edition-Proof-of-Concept.htm http://www.ecured.cu/index.php/Sybase_ASE http://aby17ekbalam.blog.com/2010/05/20/procedimientos-disparadores/ http://download.sybase.com/pdfdocs/asg1250s/inasesol.pdf http://www.mtbase.com/contenido/documento.jsp?id=10096 http://postgresql-dbms.blogspot.mx/p/limitaciones-puntos-derecuperacion.html http://www.postgresql.org.es/sobre_postgresql http://www.postgresql.org/docs/current/static/supported-platforms.html http://pgsqltutorial.readthedocs.org/en/latest/part_iii/transactions.html http://eacortez.blogspot.mx/2011/10/postgresql-respaldo-y-restauracionde.html http://www.postgresql.org/docs/8.3/static/creating-cluster.html http://www.postgresql.org.es/node/301 http://kb.deister.net/index.php/Database_Roles_and_Privileges http://www.postgresql.org.es/node/297 http://es.wikipedia.org/wiki/PostgreSQL

Das könnte Ihnen auch gefallen