miércoles, 20 de noviembre de 2013

Auditoria de Datos

Un dato es un valor que no esta estructurado y no dice nada sobre el por que de las cosas, ni tampoco su interpretacion y/o proposito posible.

La infromacion tiene una interpretacion y un proposito, es decir estan representando un contexto, siendo el conjunto de datos estructurados que sirven para categorizar, analizar, evaluer, entre otras cosas. los hechos que se quieran representar.

El conocimiento es informacion que nos permite lelvar a cabo las acciones para alcanzar nuestro objetivos. El conocimiento es aquella informacion que ha pasado por un analisis, medianen el cual la informacion a obtenido el valoy y/o la relevancia necesaria para ser util.


El uso de las computadoras y de las redes de datos como medio para almecenar, tranderir y procesar informacion, se ha covertido desmesuradamente en los ultimos años, al grado de ser un elemento necesario para el funcionamiento de cualquier organizacion.

Dado esto hay casos en que la informacion procesada no es tan importante, pero cuando se trata de datos privados y/o personales se requiere un adecuado blindaje.

En consecuencia, la informacion en todas sus formas y estados es un activo de un valor muy alto, por lo que las empresas no pueden ser indiferentes al manejo y proteccion de la informacion, para garantizar su integridad, confidencialidad y disponibilidad, de conformidad con lo establecido por la ley.

Es necesario contar con la seguridad de la informacion que al final es la preservación de la confidencialidad, intergridad y diponibilidad.

Aspectos a tener en cuenta para asegurar seguridad a nivel corporativo para garantizar la proteccion de la informacion:

  • Politica de Seguridad
  • Aspectos organizativos para la seguridad
  • Clasificacion y control de activos
  • Seguridad ligada al personal
  • Seguridad fisica y del entorno
  • Gestion de comunicaciones y operaciones
  • Control de accesos
  • Desarrollo y mantenimiento de sistemas
  • Gestion de incidentes de seguridad de la informacion
  • Gestion de continuidad de negocio
  • Conformidad
Bases de datos

para verificar la seguridad, consistencia y reglas de integridad en cualqier motor de bases de datos  si tiene que revisar

martes, 5 de noviembre de 2013

espejeo y replicacion

Copia espejo
Se conoce como copia espejo (en inglés data mirroring) al procedimiento de protección de datos y de acceso a los mismos en los equipos informáticos implementado en la tecnología de RAID1.
Consiste en la idea básica de tener dos discos duros conectados. Uno es el principal y en el segundo se guarda la copia exacta del principal, almacenando cualquier cambio que se haga en tiempo real en las particiones, directorios, etc, creando imágenes exactas, etc.
De esta forma se consigue tener 2 discos duros idénticos y que permiten, si todo está bien configurado, que ante el fallo del disco principal, el secundario tome el relevo, impidiendo la caída del sistema y la pérdida de los datos almacenados.
Aplicado a los servidores, sirve para tener la imagen de una página o sitio web en diferentes servidores de manera que siempre haya una copia online por si el servidor principal falla.

Espejeo en mysql server
El Mirroring (Base de Datos Espejo) proporciona una solución de alta disponibilidad de bases de datos, aumenta la seguridad y la disponibilidad, mediante la duplicidad de la base de datos.
Esta tecnología esta disponible a partir de la versión de SQL Server 2005 (es la evolución del log shipping presente en versiones anteriores)
En el Mirroring tenemos un servidor principal/primario que mantiene la copia activa de la base de datos (bbdd accesible). Otro servidor de espejo que mantiene una copia de la base de datos principal y aplica todas las transacciones enviadas por el Servidor Principal (en el que no se podrá acceder a la bbdd). Y un servidor testigo/arbitro que permite recuperaciones automáticas ante fallos, monitoriza el servidor principal y el de espejo para en caso de caída cambiar los roles (servidor opcional, no es obligatorio).

Existen varios tipos de mirroring:
  • Alta disponibilidad: Garantiza la consistencia transaccional entre el servidor principal y el servidor de espejo y ofrece Automatic Failover mediante un servidor testigo.
  • Alta Protección: Garantiza la consistencia transaccional entre el servidor principal y el espejo.
  • Alto Rendimiento: Aplica las transacciones en el Servidor Espejo de manera asíncrona ocasionando mejoras significativas en el rendimiento del servidor principal pero no garantiza que dichas transacciones se hallan realizado de manera exitosa en el espejo.
Modo
Recuperación
Automática
ante Fallos
Posible
Pérdida
de Datos
Servidor Testigo
(Witness)
Transaction
Safety
Alta Disponibilidad
(High Availability)
SI
NO
SI
ON
Alta Protección
(High Protection)
NO
NO
NO
ON
Alto Rendimiento
(High Performance)
NO
SI
NO
OFF

en el siguiente link se muestra un ejemplo de espejeo en sql server
http://blog.maximilianomarin.com/2012/11/configurar-mirroring-en-sql-server/

Replicacion

El proceso de replicación de una base de datos consiste en replicar las consultas de actualización (tanto DML como DDL) en una base de datos maestra (master) sobre una o varias bases de datos esclavas (slave), de manera que tengamos una copia de las mismas a lo largo del tiempo.

MySQL soporta replicación unidireccional asíncrona, es decir, las consultas de actualización ejecutadas en el maestro son replicadas en los servidores esclavos. Esta replicación se realiza de forma transparente. Además es instantánea si los servidores esclavos están levantandos y en estado de replicación.

Con la replicación se pueden llegar a obtener dos mejoras importantes:

1. Por un lado, se garantiza que el servicio ofrecido por la aplicación, no se vea interrumpido en caso de que se dé un fallo en alguna de las réplicas. Además, el tiempo necesario para restablecer el servicio en la aplicación podría llegar a ser grande en algunos tipos de fallo.
2. Por otra parte, la capacidad de servicio se ve incrementada cuando las peticiones efectuadas por los clientes únicamente implican consultas.
En el siguiente link esta un ejemplo de la replicacion con un servidor maestro y un servidor esclavo en mysql
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=mysql_replicacion

video con una muestra de replicacion maestro-esclavo
http://www.youtube.com/watch?v=o3XP6HROljE

Anuncios DBA


Administrador De Base De Datospara Abarrotera Del Duero S.A. De C.V.

Para Trabajar En
Zamora, México, México
Descripción del Trabajo
Solicitamos Administrador de Base Datos, con alta capacidad para investigar, resolver problemas, administrar tanto archivos físicos como lógicos, monitoreo, alertas, respaldos, recuperaciones, instalación y configuraciones.

Experiencia mínima de 3 años en Implementación, Mantenimiento y Monitoreo de Base de Datos. Así como Tuning, Virtualización, SQL Server Clustering, Back up, Restore, Disaster Recovery, Seguridad y Control.

Manejo del Inglés hablado y escrito en un 70 % mínimo

Deseable Certificación Microsoft MCDBA SQL 2000 & MCITP 2005, 2008

Contrato:
Tiempo Completo

Salario:
Atractivo

Ciudad: Zamora
Conocimientos
Seguridad
SQL

 

Administrador De Base De Datospara Consorcio Intra

Para Trabajar En
Veracruz, Veracruz, México
Descripción del Trabajo
CONSORCIO INTRA SOLICITA:

Administrador de Base de Datos

Requisitos:
Sexo: Indistinto
Edad: 25 a 38 años.
Escolaridad: Ingeniero o Lic. En Sistemas o afin
Experiencia:
-Experiencia mínima de 1 año como Oracle DBA
- Experiencia mínima de 2 años manejando SQL y PL/SQL

Conocimientos requeridos:
- Crear usuarios de BD, privilegios y roles
- Creación de SQL scripts y Shell scripts
- Conocimiento basico de Unix / Linux
- Instalación de Oracle 10g, 11g
- Crear, compilar y ejecutar objetos PL/SQL
- Manejo avanzado de algún editor de SQL (sqlplus, toad, SQL navigator, etc.)
- Manejo de respaldos
- Tuning básico
- Monitoreo procesos de Sistema Operativo y de base de datos

-Administración de ERP

- Preferentemente haber tomado los cursos de Administración de BD Oracle

- Disponibilidad inmediata
- Tiempo Completo

Ofrecemos:
Sueldo: $15,000 a $23,000 mensuales libres
Prestaciones de Ley
Con Opción a Planta
Interesados enviar Cv con fotografía actualizada indicando pretensiones económicas.

Contrato:
Tiempo Completo

Salario:
$15,000 a $23,000 libres mensuales

Ciudad: Veracruz
Conocimientos
Fotografía
Linux
PL/SQL
SQL
Unix

 

LATBC

Industria: Tecnología

Latbc es una firma internacional de Consultoría, que se especializa en Tecnologías de Información. Nos caracteriza la filosofía que cambia paradigmas; generamos negocios a largo plazo y nos mantenemos a la vanguardia gracias a la continua inversión en investigación y desarrollo, que consolida el éxito en cada proyecto.. Filosofía 1 Nuestros clientes tienen que ganar al comprarnos. 2 No hacemos negocios de oportunidad. 3 El indicador más importante de nuestro éxito es la recompra. 4 Sólo nos comprometemos a hacer lo que sabemos. 5 No hacemos proyectos que pongan en riesgo a nuestros clientes. 6 Sabemos que el éxito de nuestros clientes terminará siendo parte de nuestro éxito. 7 Hacemos que nuestros clientes nos vean como socios de negocio no como proveedores. 8 Siempre vamos a crecer, siempre vamos a ser mejores, siempre vamos a innovar, pero nunca olvidaremos que somos diferenDescripción del empleo

Lugar de trabajo: Distrito Federal,

Jerarquía: Senior / Semi-Senior

Sector: Administración de Base de Datos

 

prestigio internacional, expansión constante la cual te ofrecerá proyección global y un plan de crecimiento profesional y personal.
El equipo Latbc está en búsqueda de talento para la posición:
DBA ORACLE
-Requisitos
*Género: Indistinto
*Edad: Indistinto
*Escolaridad: TSU, Licenciado, Ingeniero en sistemas o Carrera a fin en sistemas
*Experiencia y conocimientos: 2 años mínimo administrando BD Oracle
Administración Bases de Datos Oracle (Versiones 9i, 10g, 11g)
PL/SQL
Shell de Unix
Competencias:
Trabajo bajo presión
Responsable
Proactivo
Buena actitud y presentación
OFRECEMOS
Sueldo competitivo
Prestaciones de Ley
Crecimiento profesional

Zona para laborar: Vallejo
enviar CV: maribel-almazan@latbc.com.mx

Descripción

“Randstad es una consultoría de Recursos Humanos con 50 años de trayectoria a nivel internacional y 5 años en México busca talento como tú para empresa del giro de Tecnología”

Administrador de bases de datos

Requisitos:
Ingeniería en sistemas o afín
Experiencia mínima de 3 años como DBA

Ofrecemos:
Sueldo 100% nómina más prestaciones de ley


“Te invitamos a enviar tu CV al correo electrónico mencionado o postularte por este medio y así pertenecer a nuestra base de datos ”

 

Información de la vacante

Ubicación: México Distrito Federal (DF) D.F.

 

Datos de Contacto

Correo electrónico: abehar@randstad.com.mx

Postúlate en el botón enviar mi currículum, si no está activo haz click
aquí

Lugar de trabajo

Distrito Federal
 
El primer problema es que la mayoria de las empresas piden como minimo entre 2-3 años de experiencia como DBA, al momento yo solo manejo mysql, 

lunes, 28 de octubre de 2013

Indices en la base de datos

aqui los indices se crearon con la tabla

CREATE  TABLE IF NOT EXISTS `Eventos`.`detalles_evento` (
  `id_evento` INT NOT NULL AUTO_INCREMENT ,
  `Fecha_hora` DATETIME NULL ,
  `descripcion_evento` VARCHAR(20) NULL ,
  `nombre_organizador` VARCHAR(20) NULL ,
  `capacidad` VARCHAR(10) NULL ,
  `titulo_evento` VARCHAR(20) NULL ,
  `nombre_lugar` VARCHAR(20) NULL ,
  `direccion` VARCHAR(20) NULL ,
  PRIMARY KEY (`id_evento`) ,
  INDEX `Capacidad` (`capacidad` ASC) ,
  INDEX `Lugar` (`nombre_lugar` ASC) )
ENGINE = InnoDB;

CREATE  TABLE IF NOT EXISTS `Eventos`.`Boletos` (
  `num_boleto` INT NOT NULL AUTO_INCREMENT ,
  `tipo_boleto` VARCHAR(10) NULL ,
  `id_evento` INT NULL ,
  PRIMARY KEY (`num_boleto`) ,
  INDEX `id_evento` (`id_evento` ASC) ,
  CONSTRAINT `id_evento`
    FOREIGN KEY (`id_evento` )
    REFERENCES `Eventos`.`detalles_evento` (`id_evento` )
    ON DELETE CASCADE
    ON UPDATE CASCADE)
ENGINE = InnoDB;


CREATE  TABLE IF NOT EXISTS `Eventos`.`pro_pag` (
  `id_pormo` INT NOT NULL AUTO_INCREMENT ,
  `medio_difusion` VARCHAR(8) NULL ,
  `tipo_clasificacion` VARCHAR(7) NULL ,
  `id_evento` INT NULL ,
  PRIMARY KEY (`id_pormo`) ,
  INDEX `id_eventos` (`id_evento` ASC) ,
  CONSTRAINT `id_eventos`
    FOREIGN KEY (`id_evento` )
    REFERENCES `Eventos`.`detalles_evento` (`id_evento` )
    ON DELETE CASCADE
    ON UPDATE CASCADE)
ENGINE = InnoDB;

Cuestionario

  1. ¿Qué es una transacción?
    una colección de operaciones que forman una unidad lógica de trabajo en una BD realizada por una o más sentencias SQL estrechamente relacionadas.
  2. ¿Qué significa ACID?  y defina cada una de las palabras que forman las siglas
  3.    Atomicidad
    La Atomicidad requiere que cada transacción sea "todo o nada": si una parte de la transacción falla, todas las operaciones de la transacción fallan, y por lo tanto la base de datos no sufre cambios. Un sistema atómico tiene que garantizar la atomicidad en cualquier operación y situación, incluyendo fallas de alimentación eléctrica, errores y caidas del sistema.
    Consistencia
    La propiedad de Consistencia se asegura que cualquier transacción llevará a la base de datos de un estado válido a otro estado válido. Cualquier dato que se escriba en la base de datos tiene que ser válido de acuerdo a todas las reglas definidas, incluyendo (pero no limitado a) los constraints, los cascades, los triggers, y cualquier combinación de estos.
    aIslamiento
    El aislamiento ("Isolation" en inglés) se asegura que la ejecución concurrente de las transacciones resulte en un estado del sistema que se obtendría si estas transacciones fueran ejecutadas una atrás de otra. Cada transacción debe ejecutarse en aislamiento total; por ejemplo, si T1 y T2 se ejecutan concurrentemente, luego cada una debe mantenerse independiente de la otra.
    Durabilidad
    La durabilidad significa que una vez que se confirmó una transacción (commit), quedará persistida, incluso ante eventos como pérdida de alimentación eléctrica, errores y caidas del sistema. Por ejemplo, en las bases de datos relacionales, una vez que se ejecuta un grupo de sentencias SQL, los resultados tienen que almacenarse inmediatamente (incluso si la base de datos se cae inmediatamente luego).
  4. ¿Qué significa Tx?

    Tx significa Transmisión o Transmisor (en este caso Transacción).
  5. ¿Para que nos sirve el Rollback?

    En tecnologías de base de datos, un rollback es una operación que devuelve a la base de datos a algún estado previo.
     
    Esta función finaliza la transacción actual y deshace los cambios realizados.
  6. defina Integridad de datos
    Integridad de datos en general: hace referencia a que todas las características de los datos (reglas, definiciones, fechas, etc) deben ser correctos para que los datos estén completos.
     
    Integridad de datos en bases de datos: Integridad de datos se refiere al estado de corrección y completitud de los datos ingresados en una base de datos.
  7. defina concurrencia
    La concurrencia es la propiedad de los sistemas que permiten que múltiples procesos sean ejecutados al mismo tiempo, y que potencialmente puedan interactuar entre sí.
  8. Defina Grado de consistencia

    Podría definirse como la coherencia entre todos los datos de la base de datos.
  9. Mencione aspectos relacionados al procesamiento de transacciones
    Los siguientes son los aspectos más importantes relacionados con el procesamiento de transacciones:
    • Modelo de estructura de transacciones: Es importante considerar si las transacciones son planas o pueden estar anidadas.
    • Consistencia de la base de datos interna: Los algoritmos de control de datos semántico tienen que satisfacer siempre las restricciones de integridad cuando una transacción pretende hacer un commit.
    • Protocolos de confiabilidad: En transacciones distribuidas es necesario introducir medios de comunicación entre los diferentes nodos de una red para garantizar la atomicidad y durabilidad de las transacciones. Así también, se requieren protocolos para la recuperación local y para efectuar los compromisos (commit) globales.
    • Algoritmos de control de concurrencia: Los algoritmos de control de concurrencia deben sincronizar la ejecución de transacciones concurrentes bajo el criterio de correctitud. La consistencia entre transacciones se garantiza mediante el aislamiento de las mismas.
    • Protocolos de control de replicas: El control de réplicas se refiere a cómo garantizar la consistencia mutua de datos replicados. Por ejemplo se puede seguir la estrategia read-one-write-all (ROWA).
  10. defina los estados de una transacción:
    1. Activa (Active): El estado inicial; la transacción permanece en este estado durante su ejecución.
    2. Parcialmente comprometida (Uncommited):Después de ejecutarse la ultima transacción.
    3. Fallida (Failed):Tras descubrir que no se puede continuar la ejecución normal.
    4. Abortada (Rolled Back)Después de haber retrocedido la transacción y restablecido la base de datos a su estado anterior al comienzo de la transacción.
    5. Comprometida (Commited):Tras completarse con éxito.
  11. El estándar ANSI/ISO SQL define cuatro niveles de aislamiento transaccional en función de tres eventos que son permitidos o no dependiendo del nivel de aislamiento. Estos eventos son:
    1. Lectura sucia: Las sentencias SELECT son ejecutadas sin realizar bloqueos, pero podría usarse una versión anterior de un registro. Por lo tanto, las lecturas no son consistentes al usar este nivel de aislamiento.
    2. Lectura no repetible: Una transacción vuelve a leer datos que previamente había leído y encuentra que han sido modificados o eliminados por una transacción cursada.
    3. Lectura Fantasma: Una transacción vuelve a ejecutar una consulta, devolviendo un conjuto de registros que satisfacen una condición de búsqueda y encuentra que otros registro que satisfacen la condición han sido insertadas por otra transacción cursada.

jueves, 24 de octubre de 2013

Actividad 21: Indices

¿Que es un indice?

es una estructura de datos que mejora la velocidad de las operaciones, por medio de un identificador único en cada fila de una tabla, permitiendo un acceso rápido a los registros de una tabla en una base de datos.

Existen 4 tipos de indices:

1.- Normal: El indice que permita que un mismo valor de la expresion se repita en diferentes registros y cada registro tiene su entrada en el indice.

2.- Unico: El indice permite que un mismo valor de la expresion se repita en diferentes registros, pero si varios registros tienen el mismo valor en la expresion, habra una sola entrada en el indice.

3.- Candidato: Esta tipo obliga que la expresion no se repita en diferentes registros y cada registro tiene su entrada en el indice. Habra entonces tantas entradas como registros. Si al construir el indice se encuentran valores repetidos, se da un mensaje de error y el proceso fracasa. Si el inidice se construye con exito y posteriormente se pretende duplicar el valor de la expresion en distintos registros de la tabla, se da un mensaje de error y se pide una decision.

4.- Principal: Es igual en restricciones y funcionamiento al tipo candidatos, pero se aplica solamente a las tablas base y puede haber solo uno por tabla. tiene ventajas sobre los indices candidato.

Crear indices en mysql

aqui se meustra un ejemplo de como crear un indice en mysql en base a los primeros 10 caracteres de una columna

CREATE INDEX part_of_name ON customer (name(10));
 
Indices en oracle
 
En oracle existen tres tipos de indices:
1)Table Index:
CREATE [UNIQUE|BITMAP] INDEX [esquema.]index_name
      ON [esquema.]table_name [tbl_alias]
         (col [ASC | DESC]) index_clause index_attribs
2)Bitmap Join Index:
CREATE [UNIQUE|BITMAP] INDEX [esquema.]index_name
      ON [esquema.]table_name [tbl_alias]
         (col_expression [ASC | DESC])
            FROM [esquema.]table_name [tbl_alias]
               WHERE condition [index_clause] index_attribs
3)Cluster Index:
CREATE [UNIQUE|BITMAP] INDEX [esquema.]index_name
      ON CLUSTER [esquema.]cluster_name index_attribs 

viernes, 18 de octubre de 2013

actividades 17, 18 y 19

Sentencia Create
 
CREATE  TABLE IF NOT EXISTS `Eventos`.`detalles_evento` (
  `id_evento` INT NOT NULL AUTO_INCREMENT ,
  `Fecha_hora` DATETIME NULL ,
  `descripcion_evento` VARCHAR(20) NULL ,
  `nombre_organizador` VARCHAR(20) NULL ,
  `capacidad` VARCHAR(10) NULL ,
  `titulo_evento` VARCHAR(20) NULL ,
  `nombre_lugar` VARCHAR(20) NULL ,
  `direccion` VARCHAR(20) NULL ,
  PRIMARY KEY (`id_evento`) )
ENGINE = InnoDB;
 
CREATE  TABLE IF NOT EXISTS `Eventos`.`Boletos` (
  `num_boleto` INT NOT NULL AUTO_INCREMENT ,
  `tipo_boleto` VARCHAR(10) NULL ,
  `id_evento` INT NULL ,
  PRIMARY KEY (`num_boleto`) ,
  INDEX `id_evento` (`id_evento` ASC) ,
  CONSTRAINT `id_evento`
    FOREIGN KEY (`id_evento` )
    REFERENCES `Eventos`.`detalles_evento` (`id_evento` )
    ON DELETE CASCADE
    ON UPDATE CASCADE)
ENGINE = InnoDB;
 
CREATE  TABLE IF NOT EXISTS `Eventos`.`pro_pag` (
  `id_pormo` INT NOT NULL AUTO_INCREMENT ,
  `medio_difusion` VARCHAR(8) NULL ,
  `tipo_clasificacion` VARCHAR(7) NULL ,
  `id_evento` INT NULL ,
  PRIMARY KEY (`id_pormo`) ,
  INDEX `id_eventos` (`id_evento` ASC) ,
  CONSTRAINT `id_eventos`
    FOREIGN KEY (`id_evento` )
    REFERENCES `Eventos`.`detalles_evento` (`id_evento` )
    ON DELETE CASCADE
    ON UPDATE CASCADE)
ENGINE = InnoDB;


inserts


 
consultas


 
usuarios