A

andromedx

Usuario (México)

Primer post: 15 ene 2013Último post: 2 jun 2014
5
Posts
1
Puntos totales
1
Comentarios
Seguridad Informatica
Seguridad Informatica
InfoporAnónimo1/15/2013

Seguridad informática INTRODUCCIÓN Los piratas ya no tienen un parche en su ojo ni un garfio en reemplazo de la mano. Tampoco existen los barcos ni los tesoros escondidos debajo del mar. Llegando al año 2000, los piratas se presentan con un cerebro desarrollado, curioso y con muy pocas armas: una simple computadora y una línea telefónica. Hackers. Una palabra que aún no se encuentra en los diccionarios pero que ya suena en todas las personas que alguna vez se interesaron por la informática o leyeron algún diario. Proviene de "hack", el sonido que hacían los técnicos de las empresas telefónicas al golpear los aparatos para que funcionen. Hoy es una palabra temida por empresarios, legisladores y autoridades que desean controlar a quienes se divierten descifrando claves para ingresar a lugares prohibidos y tener acceso a información indebida . La seguridad informática, es el área de la informática que se enfoca en la protección de la infraestructura computacional y todo lo relacionado con ésta (incluyendo la información contenida). Para ello existen una serie de estándares, protocolos, métodos, reglas, herramientas y leyes concebidas para minimizar los posibles riesgos a la infraestructura o a la información. La seguridad informática comprende software, bases de datos, metadatos, archivos y todo lo que la organización valore (activo) y signifique un riesgo si ésta llega a manos de otras personas. Este tipo de información se conoce como información privilegiada o confidencial. El concepto de seguridad de la información no debe ser confundido con el de seguridad informática, ya que este último sólo se encarga de la seguridad en el medio informático, pero la información puede encontrarse en diferentes medios o formas, y no solo en medios informáticos. La seguridad informática es la disciplina que se ocupa de diseñar las normas, procedimientos, métodos y técnicas destinados a conseguir un sistema de información seguro y confiable. La seguridad informática está concebida para proteger los activos informáticos, entre los que se encuentran. La infraestructura computacional: Es una parte fundamental para el almacenamiento y gestión de la información, así como para el funcionamiento mismo de la organización. La función de la seguridad informática en esta área es velar que los equipos funcionen adecuadamente y anticiparse en caso de fallas, planes de robos, incendios, boicot, desastres naturales, fallas en el suministro eléctrico y cualquier otro factor que atente contra la infraestructura informática. Los usuarios Son las personas que utilizan la estructura tecnológica, zona de comunicaciones y que gestionan la información. La seguridad informática debe establecer normas que minimicen los riesgos a la información o infraestructura informática. Estas normas incluyen horarios de funcionamiento, restricciones a ciertos lugares, autorizaciones, denegaciones, perfiles de usuario, planes de emergencia, protocolos y todo lo necesario que permita un buen nivel de seguridad informática minimizando el impacto en el desempeño de los funcionarios y de la organización en general y como principal contribuyente al uso de programas realizados por programadores. Las amenazas Una vez que la programación y el funcionamiento de un dispositivo de almacenamiento (o transmisión) de la información se consideran seguras, todavía deben ser tenidos en cuenta las circunstancias "no informáticas" que pueden afectar a los datos, las cuales son a menudo imprevisibles o inevitables, de modo que la única protección posible es la redundancia (en el caso de los datos) y la descentralización -por ejemplo mediante estructura de redes- (en el caso de las comunicaciones). Estos fenómenos pueden ser causados por: El usuario: causa del mayor problema ligado a la seguridad de un sistema informático (porque no le importa, no se da cuenta o a propósito). Programas maliciosos: programas destinados a perjudicar o a hacer un uso ilícito de los recursos del sistema. Es instalado (por inatención o maldad) en el ordenador abriendo una puerta a intrusos o bien modificando los datos. Estos programas pueden ser un virus informático, un gusano informático, un troyano, una bomba lógica o un programa espía o Spyware. Un intruso: persona que consigue acceder a los datos o programas de los cuales no tiene acceso permitido (cracker, defacer, script kiddie o Script boy, viruxer, etc.). Un siniestro (robo, incendio, inundación): una mala manipulación o una malintención derivan a la pérdida del material o de los archivos. El personal interno de Sistemas. Las pujas de poder que llevan a disociaciones entre los sectores y soluciones incompatibles para la seguridad informática. Tipos de amenaza El hecho de conectar una red a un entorno externo nos da la posibilidad de que algún atacante pueda entrar en ella, con esto, se puede hacer robo de información o alterar el funcionamiento de la red. Sin embargo el hecho de que la red no sea conectada a un entorno externo no nos garantiza la seguridad de la misma. De acuerdo con el Computer Security Institute (CSI) de San Francisco aproximadamente entre 60 y 80 por ciento de los incidentes de red son causados desde adentro de la misma. Basado en esto podemos decir que existen 2 tipos de amenazas: Amenazas internas: Generalmente estas amenazas pueden ser más serias que las externas por varias razones como son: -Los usuarios conocen la red y saben cómo es su funcionamiento. -Tienen algún nivel de acceso a la red por las mismas necesidades de su trabajo. -Los IPS y Firewalls son mecanismos no efectivos en amenazas internas. Esta situación se presenta gracias a los esquemas ineficientes de seguridad con los que cuentan la mayoría de las compañías a nivel mundial, y porque no existe conocimiento relacionado con la planeación de un esquema de seguridad eficiente que proteja los recursos informáticos de las actuales amenazas combinadas. El resultado es la violación de los sistemas, provocando la pérdida o modificación de los datos sensibles de la organización, lo que puede representar un daño con valor de miles o millones de dólares. Amenazas externas: Son aquellas amenazas que se originan fuera de la red. Al no tener información certera de la red, un atacante tiene que realizar ciertos pasos para poder conocer qué es lo que hay en ella y buscar la manera de atacarla. La ventaja que se tiene en este caso es que el administrador de la red puede prevenir una buena parte de los ataques externos. La amenaza informática del futuro Si en un momento el objetivo de los ataques fue cambiar las plataformas tecnológicas ahora las tendencias cibercriminales indican que la nueva modalidad es manipular los significados de la información digital. El área semántica, era reservada para los humanos, se convirtió ahora en el núcleo de los ataques debido a la evolución de la Web 2.0 y las redes sociales, factores que llevaron al nacimiento de la generación 3.0. Se puede afirmar que “la Web 3.0 otorga contenidos y significados de manera tal que pueden ser comprendidos por las computadoras, las cuales -por medio de técnicas de inteligencia artificial- son capaces de emular y mejorar la obtención de conocimiento, hasta el momento reservada a las personas”. Es decir, se trata de dotar de significado a las páginas Web, y de ahí el nombre de Web semántica o Sociedad del Conocimiento, como evolución de la ya pasada Sociedad de la Información En este sentido, las amenazas informáticas que viene en el futuro ya no son con la inclusión de troyanos en los sistemas o softwares espías, sino con el hecho de que los ataques se han profesionalizado y manipulan el significado del contenido virtual. “La Web 3.0, basada en conceptos como elaborar, compartir y significar, está representando un desafío para los hackers que ya no utilizan las plataformas convencionales de ataque, sino que optan por modificar los significados del contenido digital, provocando así la confusión lógica del usuario y permitiendo de este modo la intrusión en los sistemas”, La amenaza ya no solicita la clave de homebanking del desprevenido usuario, sino que directamente modifica el balance de la cuenta, asustando al internauta y, a partir de allí, sí efectuar el robo del capital”. Para no ser presa de esta nueva ola de ataques más sutiles, Se recomienda: Mantener las soluciones activadas y actualizadas. Evitar realizar operaciones comerciales en computadoras de uso público. Verificar los archivos adjuntos de mensajes sospechosos y evitar su descarga en caso de duda. Tipos de Virus Artículo principal: Virus informático. Los virus se pueden clasificar de la siguiente forma: Virus residentes La característica principal de estos virus es que se ocultan en la memoria RAM de forma permanente o residente. De este modo, pueden controlar e interceptar todas las operaciones llevadas a cabo por el sistema operativo, infectando todos aquellos ficheros y/o programas que sean ejecutados, abiertos, cerrados, renombrados, copiados. Algunos ejemplos de este tipo de virus son: Randex, CMJ, Meve, MrKlunky. Virus de acción directa Al contrario que los residentes, estos virus no permanecen en memoria. Por tanto, su objetivo prioritario es reproducirse y actuar en el mismo momento de ser ejecutados. Al cumplirse una determinada condición, se activan y buscan los ficheros ubicados dentro de su mismo directorio para contagiarlos. Virus de sobreescritura Estos virus se caracterizan por destruir la información contenida en los ficheros que infectan. Cuando infectan un fichero, escriben dentro de su contenido, haciendo que queden total o parcialmente inservibles. Virus de boot(bot_kill) o de arranque Los términos boot o sector de arranque hacen referencia a una sección muy importante de un disco o unidad de almacenamiento CD,DVD, memorias USB etc. En ella se guarda la información esencial sobre las características del disco y se encuentra un programa que permite arrancar el ordenador. Este tipo de virus no infecta ficheros, sino los discos que los contienen. Actúan infectando en primer lugar el sector de arranque de los dispositivos de almacenamiento. Cuando un ordenador se pone en marcha con un dispositivo de almacenamiento, el virus de boot infectará a su vez el disco duro. Los virus de boot no pueden afectar al ordenador mientras no se intente poner en marcha a éste último con un disco infectado. Por tanto, el mejor modo de defenderse contra ellos es proteger los dispositivos de almacenamiento contra escritura y no arrancar nunca el ordenador con uno de estos dispositivos desconocido en el ordenador. Algunos ejemplos de este tipo de virus son: Polyboot.B, AntiEXE. Virus de enlace o directorio Los ficheros se ubican en determinadas direcciones (compuestas básicamente por unidad de disco y directorio), que el sistema operativo conoce para poder localizarlos y trabajar con ellos. Virus cifrados Más que un tipo de virus, se trata de una técnica utilizada por algunos de ellos, que a su vez pueden pertenecer a otras clasificaciones. Estos virus se cifran a sí mismos para no ser detectados por los programas antivirus. Para realizar sus actividades, el virus se descifra a sí mismo y, cuando ha finalizado, se vuelve a cifrar. Virus polimórficos Son virus que en cada infección que realizan se cifran de una forma distinta (utilizando diferentes algoritmos y claves de cifrado). De esta forma, generan una elevada cantidad de copias de sí mismos e impiden que los antivirus los localicen a través de la búsqueda de cadenas o firmas, por lo que suelen ser los virus más costosos de detectar. Virus multipartites Virus muy avanzados, que pueden realizar múltiples infecciones, combinando diferentes técnicas para ello. Su objetivo es cualquier elemento que pueda ser infectado: archivos, programas, macros, discos, etc. Virus del Fichero Infectan programas o ficheros ejecutables (ficheros con extensiones EXE y COM). Al ejecutarse el programa infectado, el virus se activa, produciendo diferentes efectos. Virus de FAT La Tabla de Asignación de Ficheros o FAT es la sección de un disco utilizada para enlazar la información contenida en éste. Se trata de un elemento fundamental en el sistema. Los virus que atacan a este elemento son especialmente peligrosos, ya que impedirán el acceso a ciertas partes del disco, donde se almacenan los ficheros críticos para el normal funcionamiento del ordenador. Análisis de riesgos Análisis de riesgo informático El activo más importante que se posee es la información y, por lo tanto, deben existir técnicas que la aseguren, más allá de la seguridad física que se establezca sobre los equipos en los cuales se almacena. Estas técnicas las brinda la seguridad lógica que consiste en la aplicación de barreras y procedimientos que resguardan el acceso a los datos y sólo permiten acceder a ellos a las personas autorizadas para hacerlo. Existe un viejo dicho en la seguridad informática que dicta: "lo que no está permitido debe estar prohibido" y ésta debe ser la meta perseguida. Los medios para conseguirlo son: Restringir el acceso (de personas de la organización y de las que no lo son) a los programas y archivos. Asegurar que los operadores puedan trabajar pero que no puedan modificar los programas ni los archivos que no correspondan (sin una supervisión minuciosa). Asegurar que se utilicen los datos, archivos y programas correctos en/y/por el procedimiento elegido. Asegurar que la información transmitida sea la misma que reciba el destinatario al cual se ha enviado y que no le llegue a otro. Asegurar que existan sistemas y pasos de emergencia alternativos de transmisión entre diferentes puntos. Organizar a cada uno de los empleados por jerarquía informática, con claves distintas y permisos bien establecidos, en todos y cada uno de los sistemas o aplicaciones empleadas. Actualizar constantemente las contraseñas de accesos a los sistemas de cómputo. Elementos de un análisis de riesgo Cuando se pretende diseñar una técnica para implementar un análisis de riesgo informático se pueden tomar los siguientes puntos como referencia a seguir: Planes para reducir los riesgos. Análisis de impacto al negocio El reto es asignar estratégicamente los recursos para cada equipo de seguridad y bienes que intervengan, basándose en el impacto potencial para el negocio, respecto a los diversos incidentes que se deben resolver. Para determinar el establecimiento de prioridades, el sistema de gestión de incidentes necesita saber el valor de los sistemas de información que pueden ser potencialmente afectados por incidentes de seguridad. Esto puede implicar que alguien dentro de la organización asigne un valor monetario a cada equipo y un archivo en la red o asignar un valor relativo a cada sistema y la información sobre ella. Dentro de los Valores para el sistema se pueden distinguir: Confidencialidad de la información, la Integridad (aplicaciones e información) y finalmente la Disponibilidad del sistema. Cada uno de estos valores es un sistema independiente del negocio, supongamos el siguiente ejemplo, un servidor Web público pueden poseer los requisitos de confidencialidad de baja (ya que toda la información es pública),pero de alta disponibilidad y los requisitos de integridad. En contraste, un sistema de planificación de recursos empresariales (ERP), sistema puede poseer alto puntaje en los tres variables. Los incidentes individuales pueden variar ampliamente en términos de alcance e importancia. Puesta en marcha de una política de seguridad Actualmente las legislaciones nacionales de los Estados, obligan a las empresas, instituciones públicas a implantar una política de seguridad. Ej: En España la Ley Orgánica de Protección de Datos o también llamada LOPD y su normativa de desarrollo. Generalmente se ocupa exclusivamente a asegurar los derechos de acceso a los datos y recursos con las herramientas de control y mecanismos de identificación. Estos mecanismos permiten saber que los operadores tienen sólo los permisos que se les dio. La seguridad informática debe ser estudiada para que no impida el trabajo de los operadores en lo que les es necesario y que puedan utilizar el sistema informático con toda confianza. Por eso en lo referente a elaborar una política de seguridad, conviene: Elaborar reglas y procedimientos para cada servicio de la organización. Definir las acciones a emprender y elegir las personas a contactar en caso de detectar una posible intrusión Sensibilizar a los operadores con los problemas ligados con la seguridad de los sistemas informáticos. Los derechos de acceso de los operadores deben ser definidos por los responsables jerárquicos y no por los administradores informáticos, los cuales tienen que conseguir que los recursos y derechos de acceso sean coherentes con la política de seguridad definida. Además, como el administrador suele ser el único en conocer perfectamente el sistema, tiene que derivar a la directiva cualquier problema e información relevante sobre la seguridad, y eventualmente aconsejar estrategias a poner en marcha, así como ser el punto de entrada de la comunicación a los trabajadores sobre problemas y recomendaciones en término de seguridad informática. Técnicas para asegurar el sistema Codificar la información: Criptología, Criptografía y Criptociencia, contraseñas difíciles de averiguar a partir de datos personales del individuo. Vigilancia de red. Zona desmilitarizada Tecnologías repelentes o protectoras: cortafuegos, sistema de detección de intrusos - antispyware, antivirus, llaves para protección de software, etc. Mantener los sistemas de información con las actualizaciones que más impacten en la seguridad. Sistema de Respaldo Remoto. Servicio de backup remoto Respaldo de Información La información constituye el activo más importante de las empresas, pudiendo verse afectada por muchos factores tales como robos, incendios, fallas de disco, virus u otros. Desde el punto de vista de la empresa, uno de los problemas más importantes que debe resolver es la protección permanente de su información crítica. La medida más eficiente para la protección de los datos es determinar una buena política de copias de seguridad o backups: Este debe incluir copias de seguridad completa (los datos son almacenados en su totalidad la primera vez) y copias de seguridad incrementales (sólo se copian los ficheros creados o modificados desde el último backup). Es vital para las empresas elaborar un plan de backup en función del volumen de información generada y la cantidad de equipos críticos. Un buen sistema de respaldo debe contar con ciertas características indispensables: Continuo El respaldo de datos debe ser completamente automático y continuo. Debe funcionar de forma transparente, sin intervenir en las tareas que se encuentra realizando el usuario. Seguro Muchos softwares de respaldo incluyen cifrado de datos (128-448 bits), lo cual debe ser hecho localmente en el equipo antes del envío de la información. Remoto Los datos deben quedar alojados en dependencias alejadas de la empresa. Mantención de versiones anteriores de los datos Se debe contar con un sistema que permita la recuperación de versiones diarias, semanales y mensuales de los datos. Hoy en día los sistemas de respaldo de información online (Servicio de backup remoto) están ganando terreno en las empresas y organismos gubernamentales. La mayoría de los sistemas modernos de respaldo de información online cuentan con las máximas medidas de seguridad y disponibilidad de datos. Estos sistemas permiten a las empresas crecer en volumen de información sin tener que estar preocupados de aumentar su dotación física de servidores y sistemas de almacenamiento. Consideraciones de software Tener instalado en la máquina únicamente el software necesario reduce riesgos. Así mismo tener controlado el software asegura la calidad de la procedencia del mismo (el software obtenido de forma ilegal o sin garantías aumenta los riesgos). En todo caso un inventario de software proporciona un método correcto de asegurar la reinstalación en caso de desastre. El software con métodos de instalación rápidos facilita también la reinstalación en caso de contingencia. Existe un software que es conocido por la cantidad de agujeros de seguridad que introduce. Se pueden buscar alternativas que proporcionen iguales funcionalidades pero permitiendo una seguridad extra. Consideraciones de una red Los puntos de entrada en la red son generalmente el correo, las páginas web y la entrada de ficheros desde discos, o de ordenadores ajenos, como portátiles. Mantener al máximo el número de recursos de red sólo en modo lectura, impide que ordenadores infectados propaguen virus. En el mismo sentido se pueden reducir los permisos de los usuarios al mínimo. Se pueden centralizar los datos de forma que detectores de virus en modo batch puedan trabajar durante el tiempo inactivo de las máquinas. Controlar y monitorizar el acceso a Internet puede detectar, en fases de recuperación, cómo se ha introducido el virus. Algunas afirmaciones erróneas comunes acerca de la seguridad Mi sistema no es importante para un cracker Esta afirmación se basa en la idea de que no introducir contraseñas seguras en una empresa no entraña riesgos pues ¿quién va a querer obtener información mía?. Sin embargo, dado que los métodos de contagio se realizan por medio de programas automáticos, desde unas máquinas a otras, estos no distinguen buenos de malos, interesantes de no interesantes, etc. Por tanto abrir sistemas y dejarlos sin claves es facilitar la vida a los virus. Estoy protegido pues no abro archivos que no conozco Esto es falso, pues existen múltiples formas de contagio, además los programas realizan acciones sin la supervisión del usuario poniendo en riesgo los sistemas. Como tengo antivirus estoy protegido En general los programas antivirus no son capaces de detectar todas las posibles formas de contagio existentes, ni las nuevas que pudieran aparecer conforme los ordenadores aumenten las capacidades de comunicación, además los antivirus son vulnerables a desbordamientos de búfer que hacen que la seguridad del sistema operativo se vea más afectada aún. Como dispongo de un firewall no me contagio Esto únicamente proporciona una limitada capacidad de respuesta. Las formas de infectarse en una red son múltiples. Unas provienen directamente de accesos al sistema (de lo que protege un firewall) y otras de conexiones que se realizan (de las que no me protege). Emplear usuarios con altos privilegios para realizar conexiones puede entrañar riesgos, además los firewalls de aplicación (los más usados) no brindan protección suficiente contra el spoofing.

1
0
T
Transacciones y vistas en mysql
Ciencia EducacionporAnónimo11/27/2013

Transacciones en MySQL El servidor de bases de datos MySQL soporta distintos tipos de tablas, tales como ISAM, MyISAM, InnoDB y BDB (Berkeley Database). De éstos, InnoDB es el tipo de tabla más importante (después del tipo predeterminado, MyISAM), y merece una atención especial. Las tablas del tipo InnoDB están estructuradas de forma distinta que MyISAM, ya que se almacenan en un sólo archivo en lugar de tres, y sus principales características son que permite trabajar con transacciones, y definir reglas de integridad referencial. El soporte de transacciones que provee MySQL no es algo nuevo en MySQL 4, ya que desde la versión 3.23 se podía hacer uso de tablas InnoDB, la única diferencia es que con la llegada de la versión 4.0 de MySQL, el soporte para este tipo de tablas es habilitado por default. 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 ejecución. De hecho, podríamos decir que las transacciones aportan una característica de "deshacer" a las aplicaciones de bases de datos. Para este fin, las tablas que soportan transacciones, como es el caso de InnoDB, son mucho más seguras y fáciles de recuperar si se produce algún 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 más tiempo en ejecutarse. Seguramente alguna vez hemos escuchado hablar acerca de las transacciones, pero probablemente no entendemos bien lo que son, y como deben de ser usadas. La idea de este artículo es presentar algunos ejemplos para mostrar que no es nada complicado, y difícil de aprender. En este artículo se asume que se cuenta ya con un servidor MySQL con soporte para el tipo de tablas InnoDB. En nuestro caso haremos uso de un servidor MySQL 4.013 ejecutándose en un sistema MSWindows. Para asegurarnos que tenemos soporte para el tipo de tablas InnoDB podemos ejecutar la siguiente sentencia: mysql> SHOW VARIABLES LIKE '%innodb%'; +---------------------------------+------------+ | Variable_name | Value | +---------------------------------+------------+ | have_innodb | YES | | innodb_additional_mem_pool_size | 1048576 | | innodb_buffer_pool_size | 8388608 | | innodb_data_file_path | ibdata:30M | | innodb_data_home_dir | | | innodb_file_io_threads | 4 | | innodb_force_recovery | 0 | | innodb_thread_concurrency | 8 | | innodb_flush_log_at_trx_commit | 1 | | innodb_fast_shutdown | ON | | innodb_flush_method | | | innodb_lock_wait_timeout | 50 | | innodb_log_arch_dir | . | | innodb_log_archive | OFF | | innodb_log_buffer_size | 1048576 | | innodb_log_file_size | 5242880 | | innodb_log_files_in_group | 2 | | innodb_log_group_home_dir | . | | innodb_mirrored_log_groups | 1 | | innodb_max_dirty_pages_pct | 90 | +---------------------------------+------------+ 20 rows in set (0.00 sec) La variable más importante es por supuesto have_innodb que tiene el valor YES. En efecto, una de las principales características de las tablas del tipo InnoDB es que pueden trabajar con transacciones, o sentencias SQL que son agrupadas como una sola. Un ejemplo típico de esto es una transacción bancaria. Por ejemplo, si una cantidad de dinero es transferida de la cuenta de una persona a otra, se requerirán por lo menos dos consultas: UPDATE cuentas SET balance = balance - cantidad_transferida WHERE cliente = persona1; UPDATE cuentas SET balance = balance + cantidad_transferida WHERE cliente = persona2; Estas dos consultas deben trabajar bien, ¿pero qué sucede si ocurre algún imprevisto y "se cae" el sistema después de que se ejecuta la primer consulta, pero la segunda aún no se ha completado?. La persona1 tendrá una cantidad de dinero removida de su cuenta, y creerá que ha realizado su pago, sin embargo, la persona2 estará enfadada puesto que pensará que no se le ha depositado el dinero que le deben. En este ejemplo tan sencillo se ilustra la necesidad de que las consultas sean ejecutadas de manera conjunta, o en su caso, que no se ejecute ninguna de ellas. Es aquí donde las transacciones toman un papel muy importante. Los pasos para usar transacciones en MySQL son: * Iniciar una transacción con el uso de la sentencia BEGIN. * Actualizar, insertar o eliminar registros en la base de datos. * Si se quieren los cambios a la base de datos, completar la transacción con el uso de la sentencia COMMIT. Únicamente cuando se procesa un COMMIT los cambios hechos por las consultas serán permanentes. * Si sucede algún problema, podemos hacer uso de la sentencia ROLLBACK para cancelar los cambios que han sido realizados por las consultas que han sido ejecutadas hasta el momento. Vamos a ejecutar algunas consultas para ver como trabajan las transacciones. Lo primero que tenemos que hacer es crear una tabla del tipo InnoDB e insertar algunos datos. Para crear una tabla InnoDB, procedemos con el código SQL estándar CREATE TABLE, pero debemos especificar que se trata de una tabla del tipo InnoDB (TYPE= InnoDB). Esto es aplicable a cualquier tipo de tabla, pero cuando no se especifica nada, MySQL supone que se trata de una tabla MyISAM. mysql> CREATE TABLE innotest (campo INT NOT NULL PRIMARY KEY) TYPE = InnoDB; Query OK, 0 rows affected (0.10 sec) mysql> INSERT INTO innotest VALUES(1); Query OK, 1 row affected (0.08 sec) mysql> INSERT INTO innotest VALUES(2); Query OK, 1 row affected (0.01 sec) mysql> INSERT INTO innotest VALUES(3); Query OK, 1 row affected (0.04 sec) mysql> SELECT * FROM innotest; +-------+ | campo | +-------+ | 1 | | 2 | | 3 | +-------+ 3 rows in set (0.00 sec) De acuerdo, nada espectacular. Ahora veamos cómo usar transacciones. mysql> BEGIN; Query OK, 0 rows affected (0.01 sec) mysql> INSERT INTO innotest VALUES(4); Query OK, 1 row affected (0.00 sec) mysql> SELECT * FROM innotest; +-------+ | campo | +-------+ | 1 | | 2 | | 3 | | 4 | +-------+ 4 rows in set (0.00 sec) Si en este momento ejecutamos un ROLLBACK, la transacción no será completada, y los cambios realizados sobre la tabla no tendrán efecto. mysql> ROLLBACK; Query OK, 0 rows affected (0.06 sec) mysql> SELECT * FROM innotest; +-------+ | campo | +-------+ | 1 | | 2 | | 3 | +-------+ 3 rows in set (0.00 sec) Ahora vamos a ver qué sucede si perdemos la conexión al servidor antes de que la transacción sea completada. mysql> BEGIN; Query OK, 0 rows affected (0.00 sec) mysql> INSERT INTO innotest VALUES(4); Query OK, 1 row affected (0.00 sec) mysql> SELECT * FROM innotest; +-------+ | campo | +-------+ | 1 | | 2 | | 3 | | 4 | +-------+ 4 rows in set (0.00 sec) mysql> EXIT; Bye Cuando obtengamos de nuevo la conexión, podemos verificar que el registro no se insertó, ya que la transacción no fue completada. Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 449 to server version: 4.0.13 Type 'help;' or 'h' for help. Type 'c' to clear the buffer. mysql> SELECT * FROM innotest; +-------+ | campo | +-------+ | 1 | | 2 | | 3 | +-------+ 3 rows in set (0.00 sec) Ahora vamos a repetir la sentencia INSERT ejecutada anteriormente, pero haremos un COMMIT antes de perder la conexión al servidor al salir del monitor de MySQL. mysql> BEGIN; Query OK, 0 rows affected (0.00 sec) mysql> INSERT INTO innotest VALUES(4); Query OK, 1 row affected (0.00 sec) mysql> COMMIT; Query OK, 0 rows affected (0.02 sec) mysql> EXIT; Bye Una vez que hacemos un COMMIT, la transacción es completada, y todas las sentencias SQL que han sido ejecutadas previamente afectan de manera permanente a las tablas de la base de datos. Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 450 to server version: 4.0.13 Type 'help;' or 'h' for help. Type 'c' to clear the buffer. mysql> SELECT * FROM innotest; +-------+ | campo | +-------+ | 1 | | 2 | | 3 | | 4 | +-------+ 4 rows in set (0.00 sec) Lecturas consistentes Por default, las tablas InnoDB ejecutan un lectura consistente (consistent read). Esto significa que cuando una sentencia SELECT es ejecutada, MySQL regresa los valores presentes en la base de datos hasta la transacción más reciente que ha sido completada. Si alguna transacción está en progreso, los cambios hechos por alguna sentencia INSERT o UPDATE no serán reflejados. Sin embargo, existe una excepción: las transacciones abiertas si pueden ver sus propios cambios. Para demostrar esto, necesitamos establecer dos conexiones al servidor MySQL. Primero agregaremos un registro dentro de una transacción con la primera conexión (ID 524): Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 524 to server version: 4.0.13 Type 'help;' or 'h' for help. Type 'c' to clear the buffer. mysql> BEGIN; Query OK, 0 rows affected (0.00 sec) mysql> INSERT INTO innotest VALUES(5); Query OK, 1 row affected (0.00 sec) Ahora, desde la segunda conexión (ID 525) consultamos los datos de nuestra tabla. Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 525 to server version: 4.0.13 Type 'help;' or 'h' for help. Type 'c' to clear the buffer. mysql> SELECT * FROM innotest; +-------+ | campo | +-------+ | 1 | | 2 | | 3 | | 4 | +-------+ 4 rows in set (0.00 sec) Como se puede observar, el registro que hemos insertado desde la 1ra. conexión no es regresado puesto que forma parte de una transacción que no ha sido completada. Ahora, desde la 1ra. conexión ejecutamos la misma consulta SELECT. mysql> SELECT * FROM innotest; +-------+ | campo | +-------+ | 1 | | 2 | | 3 | | 4 | | 5 | +-------+ 5 rows in set (0.00 sec) Después de completar la transacción con una sentencia COMMIT en la 1ra. conexión podremos verificar que desde la 2da. conexión los cambios ya son visibles. mysql> SELECT * FROM innotest; +-------+ | campo | +-------+ | 1 | | 2 | | 3 | | 4 | | 5 | +-------+ 5 rows in set (0.00 sec) Otro ejemplo En el ejemplo anterior hemos usado únicamente sentencias INSERT, sin embargo, sucede lo mismo con sentencias UPDATE o DELETE. Vamos a crear una sencilla tabla llamada ventas que sea del tipo InnoDB. mysql> CREATE TABLE ventas( -> id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, -> producto VARCHAR(30) NOT NULL, -> cantidad TINYINT NOT NULL) TYPE = InnoDB; Query OK, 0 rows affected (0.96 sec) Insertamos un registro. mysql> INSERT INTO ventas VALUES(0,'Gansito marinela',3); Query OK, 1 row affected (0.16 sec) mysql> SELECT * FROM ventas; +----+------------------+----------+ | id | producto | cantidad | +----+------------------+----------+ | 1 | Gansito marinela | 3 | +----+------------------+----------+ 1 row in set (0.01 sec) Ahora vamos a iniciar una transacción con la sentencia BEGIN. mysql> BEGIN; Query OK, 0 rows affected (0.00 sec) Actualizamos el registro. mysql> UPDATE ventas SET cantidad=4 WHERE id=1; Query OK, 1 row affected (0.07 sec) Líneas correspondientes: 1 Cambiadas: 1 Avisos: 0 Verificamos que los cambios han sucedido. mysql> SELECT * FROM ventas; +----+------------------+----------+ | id | producto | cantidad | +----+------------------+----------+ | 1 | Gansito marinela | 4 | +----+------------------+----------+ 1 row in set (0.00 sec) Si queremos deshacer los cambios, entonces ejecutamos un ROLLBACK. mysql> ROLLBACK; Query OK, 0 rows affected (0.06 sec) Verificamos que se deshicieron los cambios. mysql> SELECT * FROM ventas; +----+------------------+----------+ | id | producto | cantidad | +----+------------------+----------+ | 1 | Gansito marinela | 3 | +----+------------------+----------+ 1 row in set (0.00 sec) Vamos a actualizar el registro usando otra transacción. mysql> BEGIN; Query OK, 0 rows affected (0.00 sec) mysql> UPDATE ventas SET cantidad=2 WHERE id=1; Query OK, 1 row affected (0.00 sec) Líneas correspondientes: 1 Cambiadas: 1 Avisos: 0 mysql> SELECT * FROM ventas; +----+------------------+----------+ | id | producto | cantidad | +----+------------------+----------+ | 1 | Gansito marinela | 2 | +----+------------------+----------+ 1 row in set (0.00 sec) Vamos a confirmar que deseamos los cambios. mysql> COMMIT; Query OK, 0 rows affected (0.05 sec) En este momento los cambios son permanentes y definitivos. mysql> SELECT * FROM ventas; +----+------------------+----------+ | id | producto | cantidad | +----+------------------+----------+ | 1 | Gansito marinela | 2 | +----+------------------+----------+ 1 row in set (0.00 sec)

0
0
S
San Baltazar Loxicha Pochutla Oaxaca
Apuntes Y MonografiasporAnónimo4/22/2013

Toponimia Recibe el nombre de San Baltazar, por el Santo Patrón de la Población. Loxicha , en zapoteco significa "Lugar de Piña". Reseña Histórica El primero de enero de 1521 llega a este lugar don Fernando B. Guzmán, Juez congregador comisionado para congregar tres núcleos, San Juan Latzuguí, el cual estaba ubicado en el extremo del cerro sabroso que se ubica al centro de esta población, San Bernardo que se encontraba situado al pie del cerro Tizneñ fue difícil la tarea de Don Fernando de convencer a estos tres núcleo, dos años se tardó a esta comunidades, los habitantes de San Juan abandonaron su lugar de origen, se congregan con los pobladores de San Baltazar, de igual forma aceptaron los pobladores de San Bernardo, así nace el actual Municipio de San Baltazar loxicha, fue gobernado por agentes Municipales, durante más de 300 años sufriendo amenazas de naturaleza, huracanes y temblores. Cronología de Hechos Históricos AÑOACONTECIMIENTOS 1800 El pueblo tenía sus oficinas con madera, techos de paja, de igual forma el templo católico, estas propiedades sufrieron incendios. 1930 Decide el pueblo edificar el templo con material de aquellos tiempos únicamente mezclas de cal y piedra, por diferencias entre los pobladores ésta construcción quedó suspendida por más de 16 años, en 1947 se reanudó de nueva cuenta los trabajos de construcción terminándose en 1960. 1954 Los terrenos comunales fueron confirmados a favor del municipio por resolución presidencial 11,800.80 hectáreas. NOMENCLATURA DenominaciónToponimia San Baltazar Loxicha.Recibe el nombre de San Baltazar, por el Santo Patrón de la Población. Loxicha , en zapoteco significa "Lugar de Piña". ESCUDO HISTORIA Reseña Histórica El primero de enero de 1521 llega a este lugar don Fernando B. Guzmán, Juez congregador comisionado para congregar tres núcleos, San Juan Latzuguí, el cual estaba ubicado en el extremo del cerro sabrozo que se ubica al centro de esta población, San Bernardo que se encontraba situado al pie del cerro Tizneñ fue difícil la tarea de Don Fernando de convencer a estos tres núcleo, dos años se tardó a esta comunidades, los habitantes de San Juan abandonaron su lugar de origen, se congregan con los pobladores de San Baltazar, de igual forma aceptaronlos pobladores de San Bernardo, así nace el actual Municipio de San Baltazar loxicha, fue gobernado por agentes Municipales, durante más de 300 años sufriendo amenazas de naturaleza, huracanes y temblores. Personajes Ilustres En una etapa del año mil ochocientos las tierras de este municipio sufrieron invasiones, y estas fueron defendidas heroicamente por un ilustre del pueblo de nombre Marcelino Mendoza. Cronología de Hechos Históricos AÑOACONTECIMIENTOS 1800 El pueblo tenía sus oficinas con madera, techos de paja, de igual forma el templo católico, estas propiedades sufrieron incendios. 1930 Decide el pueblo edificar el templo con material de aquellos tiempos únicamente mezclas de cal y piedra, por diferencias entre los pobladores ésta construcción quedó suspendida por más de 16 años, en 1947 se reanudó de nueva cuenta los trabajos de construcción terminándose en 1960. 1954 Los terrenos comunales fueron confirmados a favor del municipio por resolución presidencial 11,800.80 hectáreas. MEDIO FÍSICO Localización Las coordenadas geográficas del municipio son: 16° 05' latitud norte y96° 47' longitud oeste, se encuentra a una altitud de 970 msnm.Su distancia aproximada a la capital del estado es de 210 kilómetros. Extensión La superficie total del municipio es de 58.7 km2 y la superficie del municipio en relación al Estado es del 0.1%. Orografía En el municipio de San Baltazar Loxicha, se ubica al Sur, sus principales montes son accidentados. Hidrografía El municipio está rodeado de dos ríos los cuales limitan los terrenos comunales entre los Municipios de Santa Catarina Loxicha, San Sebastián y con los terrenos de San Francisco Coatlán, mismo que desemboca en la Barra de Colotepec, a 15 kilómetros de Puerto Escondido. Clima El clima predominante en el municipio es de diferente expresión, temperatura caliente, templado y frío, la dirección del viento es de norte a sur, y vientos que se desprenden del mar hacia el norte. Principales Ecosistemas Flora Pinos, encinos, macuil, cedro blanco y cacaguanano. Fauna Ardillas, pericos, iguana, tejón, jabalí, venado, armadillo. Recursos naturalesSu flora y fauna. Fiestas, Danzas y Tradiciones Fiestas Populares El pueblo celebra su fiesta tradicional el 6 de enero de cada año, con bandas de música acostumbrando interpretar las chilenas en los bailes. GOBIERNO Principales Localidades La cabecera municipal es San Baltazar Loxicha,las localidades de mayor importancia son Santa Martha Loxicha, y la Unión del Sur, su actividad preponderantes es el cultivo de café. Caracterización de Ayuntamiento Presidente Municipal Síndico Regidor de seguridad Regidor de obras Regidor de hacienda Organización y Estructura de la Administración Pública Municipal Presidente Municipal Tiene la facultad administrativa en relación con diferentes dependencias del gobierno, el síndico municipal atiende el área jurídica, como auxiliar del ministerio público, vigila los intereses del pueblo. Primer Regidor Es responsable de la seguridad pública municipal, también atiende el área de ecología. Regidor Segundo Tiene la responsabilidad de coordinar las obras públicas, también su área es la de la salud de los habitantes. Regidor Tercero Es el que atiende y vigila conjuntamente con el síndico municipal lo relacionado a la hacienda municipal, también atiende la rubrica de la educación de los diferentes niveles que existan en el municipio, preescolar, primaria y tele secundaria. Autoridades Auxiliares El municipio dentro de su territorio, tiene una agencia municipal, 2 localidades, una ranchería y son las siguientes: agencia municipal de Santa Martha Loxicha, localidad La Unión del Sur, localidad el Ocote y la ranchería Río Jordán. Nombramiento El agente municipal y los representantes de las otras localidades son nombrados por sus propios habitantes bajo el régimen de usos y costumbres Funciones Sus principales obligaciones son vigilar el orden público, la educación de los niños, la salud de sus propios pobladores, son apoyados con recursos para el sostenimiento de sus oficinas. Regionalización Política El municipio pertenece al décimo distrito electoral federal y al décimo séptimo distrito electoral local. Reglamentación Municipal El municipio cuenta conuna ordenanza que se denomina reglamento interno.

0
0
C
conexion de php
Apuntes Y MonografiasporAnónimo2/3/2014

Conexión. ……………………………………………………………………………………………………………………………………………………… <?php $conexion = mysql_connect("localhost", "root", ""; mysql_select_db("escuela", $conexion); $host="localhost"; $user="root"; $pw=""; $db="escuela" ?> Consultar consultas.php <html> <head><title>Ejemplo de php</title></head> <body> <h2>Ejemplo de base de datos con php</h2> <table border="1"> <tr> <td>Idprofe</td><td>Nombre</td><td>Apellido</td><td>Direccion</td><td>Tipo semestre</td> </tr> <?php include("Conexion.php"; $consulta=mysql_query("select * from profe;", $conexion); while($reg=mysql_fetch_array($consulta)) { echo "<tr><td>".$reg['idProfe']."</td><td>".$reg['Nombre']."</td><td>".$reg['Apellido']."</td><td>".$reg['Direccion']."</td><td>".$reg['Tipo_Semestre']."</td></tr>"; } mysql_close($conexion); ?> </table> </body> </html> …………………………………………………………………………………………………………………………………………………….. Insertar …………………………………………………………………………………………………………………………………………………….. <!DOCTYPE HTML> <head> <title>Untitled 1</title> </head> <form name="Formulario" method="Post" action="insert.php"> <body> <table> <tr><td>Inserta tu Id</td><td><input type="text" name="Id"/></td></tr> <tr><td>Inserta Nombre</td><td><input type="text" name="Nombre" /></td></tr> <tr><td>Insertar apellido</td><td><input type="text" name="Apellido" /></td></tr> <tr><td>Inserte direccion</td><td><input type="text" name="Direccion" /></td></tr> <tr><td>Inserte semestre</td><td><input type="text" name="Tipo" /></td></tr> <tr><td></td><td><input type="submit" value="Registrar" /></td></tr> </table> </form> </body> </html> ……………………………………………………………………………………………………………………………………………………… Insert ……………………………………………………………………………………………………………………………………………………….. <?php include("Conexion.php"; $Id=$_POST['Id']; $Nombre=$_POST['Nombre']; $Apellido=$_POST['Apellido']; $Direccion=$_POST['Direccion']; $Tipo=$_POST['Tipo']; mysql_query("insert into profe(idProfe, Nombre, Apellido, Direccion, Tipo_Semestre) values ('$Id', '$Nombre', '$Apellido', '$Direccion', '$Tipo');", $conexion) or die("Error en meterlo"; echo "Alumno Metido con exito" ?> …………………………………………………………………………………………………………………………………………………. Borrar. Esta en Form1 ………………………………………………………………………………………………………………………………………………… <!DOCTYPE HTML> <head> <meta http-equiv="content-type" content="text/html" /> <meta name="author" content="IIoZoII" /> <title>TrabajoBD</title> </head> <body> <form action=" borra.php" method="post" name="form1"> <p align="center"> <input type="text" name="nombre"/> <input type="submit" value="borrar" /> </p> </form> </body> </html> ………………………………………………………………………………………………………………………………………………………… Borrar.php Metodo ………………………………………………………………………………………………………………………………………………………… <?php include("Conexion.php"; $con = mysql_connect($host,$user,$pw) or die ("problemas al conectar"; mysql_select_db($db,$con) or die (" al conectar"; $nombre = $_POST['nombre']; $hola= mysql_query("select idProfe from profe where Nombre = '$nombre' ",$con) or die ("problemas al conectar:".mysql_error()); if ($reg= mysql_fetch_array($hola)) { mysql_query("DELETE FROM profe where Nombre = '$nombre' ",$con) or die ("problemas al conectar:".mysql_error()); echo "se han eliminado los datos"; } else { echo "problemas a eliminar"; } ?> ………………………………………………………………………………………………………………………………………………………… Actualizar Esta en Form2.php “se crea un blog de notas es este nombre” ………………………………………………………………………………………………………………………………………………………… <html> <head> <meta http-equiv="content-type" content="text/html" /> <meta name="author" content="IIoZoII" /> <title>TrabajoBD</title> </head> <body> <form action=" update.php" method="post" name="form2"> <p align="center"> <input type="text" name="cviejo"/> <br></br> <input type="text" name="cnuevo"/> <br></br> <input type="submit" value="actualizar" /> <marquee direction="left" scrolldelay="300" scrollamount="12" behavior="scroll" loop="25" style="background-color:#7FFFD4;border:5px #00FF00 double;" id="Marquee1"> <font style="font-size:13px" color="#387AC8" face="Arial">Te Amo Me Enamore de Ti Con Solo Verte</font></marquee> '<img src="1048765luffy.jpg" width="500" height="478" />' </p> </form> </body> </html> Metodo de Actualizacion Update.php <?php include("Conexion.php"; $con = mysql_connect($host,$user,$pw) or die ("problemas al conectar server"; mysql_select_db($db,$con) or die (" al conectar bd"; mysql_query("update profe set Nombre = '$_POST' where Nombre= '$_POST'",$con) or die ("problemas al conectar:".mysql_error()); echo ("actualizacion correcta"; ?>

0
1
E
Expresiones Regulares
Apuntes Y MonografiasporAnónimo6/2/2014

UNIDAD 2 EXPRESIONES REGULARES En esta unidad se describen las expresiones regulares, primero las expresiones regulares con sus operaciones fundamentales: la concatenación, la unión y la cerradura; estas operaciones son suficientes para el estudio de los lenguajes formales y la teoría de máquinas, después las expresiones regulares extendidas que incluyen operaciones adicionales. 2.1 Definición formal. Las expresiones regulares están formadas por constantes y operadores y denotan conjuntos de palabras llamados conjuntos regulares. Dado un alfabeto finito Σ, se definen las siguientes constantes: 1. (conjunto vacío) ∅ que denota el conjunto ∅ 2. (palabra vacía) ε que denota el conjunto {ε} 3. (carácter del alfabeto) a elemento de Σ que denota el conjunto {a} y las siguientes operaciones: 1. (unión) r|s que denota la unión de R y S, donde R y S son respectivamente los conjuntos denotados por las expresiones r y s. 2. (concatenación) r.s que denota el conjunto { αβ | α en R y β en S }, donde R y S representan respectivamente los conjuntos denotados por las expresiones r y s. Por ejemplo, la expresión "(ab|c)(d|ef)" denota el conjunto {"ab", "c"}{"d", "ef"} = {"abd", "abef", "cd", "cef"}. 3. Cerradura (de Kleene) r* que denota el más pequeño conjunto que extiende a R, contiene ε y está cerrado por concatenación de palabras, donde R es el conjunto denotado por la expresión r. r* es también el conjunto de todas las palabras que pueden construirse por concatenación de cero o más ocurrencias de R. Por ejemplo, "(ab|c)*" contiene las palabras ε, "ab", "c", "abab", "abc", "cab", "cc", "ababab", etcétera. Para reducir al mínimo el número de paréntesis necesarios para escribir una expresión regular, se asume que la cerradura de Kleene es el operador de mayor prioridad, seguido de concatenación y luego la unión de conjuntos. El operador de concatenación suele omitirse. Los paréntesis solo se incluyen para eliminar ambigüedades. Y Por ejemplo, "(ab)c" se escribe igualmente como "abc" y "U(b(c*))" puede escribirse "Ubc*". Nótese que las expresiones regulares definen lenguajes. Los lenguajes regulares pueden ser usados en la construcción de analizadores léxicos - programas que analizan un texto y extraen los lexemas (o unidades léxicas) que hay en el mismo. El conjunto de los lenguajes regulares sobre un alfabeto  está formado por el lenguaje vacío, los lenguajes unitarios incluido {} y todos los lenguajes obtenidos a partir de la concatenación, unión y cerradura de lenguajes. Ejemplo de lenguajes regulares: Expresión Regular Lenguaje Regular 10 L={La cadena de 10} 1 | 0 L={Una cadena de 0 ó una cadena de 1} 1* L={Cualquier cadena de 1’s incluyendo  } (00)* L={Cadenas de 0’s de longitud par, incluyendo  } 0*1* L={Cadenas de ninguno o más 0’s concatenadas a cadenas de ninguno o más 1’s} 1(1 | 0)* L={Todas las cadenas sobre el alfabeto {1, 0} que empiecen con 1} (1 | 0)*00 L={Todas las cadenas sobre el alfabeto {1, 0} que terminen en 00} (1 | 0)*00(1 | 0)* L={Cualquier combinación de 0’s ó 1’s que contengan al menos dos ceros consecutivos} Cuando sea necesario distinguir entre una expresión regular r y el lenguaje denotado por la misma, usaremos L(r) para denotar el lenguaje. En cualquier caso, si se afirma que w  r, ello equivale a decir que w  L(r). Si r y s son expresiones regulares sobre el mismo alfabeto y si L(r)= L(s), entonces se dice que r y s son equivalentes. En el caso de que r y s sean equivalentes se puede escribir r = s. También se puede usar r s en el caso de que L(r)  L(s). 2.2 Operaciones. Para escribir operaciones regulares extendidas, usadas en las aplicaciones, se amplían las operaciones, representadas por símbolos con significado especial (llamados también meta-caracteres). A continuación se listan los principales meta-caracteres y su función en la mayoría de los intérpretes de expresiones regulares. El Punto "." El punto es interpretado por el motor de búsqueda como cualquier otro carácter excepto los caracteres que representan un salto de línea, a menos que se le especifique esto al motor de Expresiones Regulares. Por lo tanto si esta opción se deshabilita en el motor de búsqueda que se utilice, el punto le dirá al motor que encuentre cualquier carácter incluyendo los saltos de línea. En la herramienta EditPad Pro esto se hace por medio de la opción "punto corresponde a nueva línea" en las opciones de búsqueda. En .Net Framework se utiliza la opción RegexOptions.Singleline al efectuar la búsqueda o crear la expresión regular. El punto se utiliza de la siguiente forma: Si se le dice al motor de RegEx que busque "g.t" en la cadena "el gato de piedra en la gótica puerta de getisboro goot" el motor de búsqueda encontrará "gat", "gót" y por último "get". Nótese que el motor de búsqueda no encuentra "goot"; esto es porque el punto representa un solo carácter y únicamente uno. Si es necesario que el motor encuentre también la expresión "goot", será necesario utilizar repeticiones, las cuales se explican más adelante. Aunque el punto es muy útil para encontrar caracteres que no conocemos, es necesario recordar que corresponde a cualquier carácter y que muchas veces esto no es lo que se requiere. Es muy diferente buscar cualquier carácter que buscar cualquier carácter alfanumérico o cualquier dígito o cualquier no-dígito o cualquier no-alfanumérico. Se debe tomar esto en cuenta antes de utilizar el punto y obtener resultados no deseados. La barra inversa "" Se utiliza para "marcar" el siguiente carácter de la expresión de búsqueda de forma que este adquiera un significado especial o deje de tenerlo. O sea, la barra inversa no se utiliza nunca por sí sola, sino en combinación con otros caracteres. Al utilizarlo por ejemplo en combinación con el punto "." este deja de tener su significado normal y empieza a comportarse como un carácter literal. De la misma forma, cuando se coloca la barra inversa seguida de cualquiera de los caracteres especiales que discutiremos a continuación, estos dejan de tener su significado especial y se convierten en caracteres de búsqueda literal. Como ya se mencionó con anterioridad, la barra inversa también puede darle significado especial a caracteres que no lo tienen. A continuación hay una lista de algunas de estas combinaciones: • t - Representa un tabulador. • r - Representa el "regreso al inicio" o sea el lugar en que la línea vuelve a iniciar. • n - Representa la "nueva línea" el carácter por medio del cual una línea da inicio. Es necesario recordar que en Windows es necesaria una combinación de rn para comenzar una nueva línea, mientras que en Unix solamente se usa n. • a - Representa una "campana" o "beep" que se produce al imprimir este carácter. • e - Representa la tecla "Esc" o "Escape" • f - Representa un salto de página • v - Representa un tabulador vertical • x - Se utiliza para representar caracteres ASCII o ANSI se conoce su código. De esta forma, si se busca el símbolo de derechos de autor y la fuente en la que se busca utiliza el conjunto de caracteres Latin-1 es posible encontrarlo utilizando "xA9". • u - Se utiliza para representar caracteres Unicode si se conoce su código. "u00A2" representa el símbolo de centavos. No todos los motores de Expresiones Regulares soportan Unicode. El .Net Framework lo hace, pero el EditPad Pro no, por ejemplo. • d - Representa un dígito del 0 al 9. • w - Representa cualquier carácter alfanumérico. • s - Representa un espacio en blanco. • D - Representa cualquier carácter que no sea un dígito del 0 al 9. • W - Representa cualquier carácter no alfanumérico. • S - Representa cualquier carácter que no sea un espacio en blanco. • A - Representa el inicio de la cadena. No un carácter sino una posición. • Z - Representa el final de la cadena. No un carácter sino una posición. • b - Marca el inicio y el final de una palabra. • B - Marca la posición entre dos caracteres alfanuméricos o dos no-alfanuméricos. Nota: La utilidad Charmap.exe de Windows permite encontrar los códigos ASCII/ANSI/UNICODE para utilizarlos en Expresiones Regulares. Los corchetes "[]" La función de los paréntesis cuadrados en el lenguaje de las expresiones regulares es representar "clases de caracteres", o sea, agrupar caracteres en grupos o clases. Son útiles cuando es necesario buscar uno de un grupo de caracteres. Dentro de los paréntesis cuadrados es posible utilizar el guión "-" para especificar rangos de caracteres. Adicionalmente, los meta-caracteres pierden su significado y se convierten en literales cuando se encuentran dentro de los paréntesis cuadrados. Por ejemplo, "d" nos es útil para buscar cualquier carácter que represente un dígito. Sin embargo esta denominación no incluye el punto "." que divide la parte decimal de un número. Para buscar cualquier carácter que representa un dígito o un punto puede utilizarse la expresión regular "[d.]". Como se hizo notar anteriormente, dentro de los paréntesis cuadrados, el punto representa un carácter literal y no un meta-caracter, por lo que no es necesario antecederlo con la barra inversa. El único carácter que es necesario anteceder con la barra inversa dentro de los paréntesis cuadrados es la propia barra inversa. La expresión regular "[dA-Fa-f]" permite encontrar dígitos hexadecimales. Los paréntesis cuadrados permiten también encontrar palabras aún si están escritas de forma errónea, por ejemplo, la expresión regular "expresi[oó]n" permite encontrar en un texto al palabra "expresión" aunque se haya escrito con o sin acento. Es necesario aclarar que sin importar cuantos caracteres se introduzcan dentro del grupo por medio de los paréntesis cuadrados, el grupo solo le dice al motor de búsqueda que encuentre un solo carácter a la vez, o sea, que "expresi[oó]n" no encontrará "expresioon" o "expresioón". La barra "|" Nos sirve para indicar una de varias opciones. Por ejemplo, la expresión regular "a|e" encontrará cualquier "a" o "e" dentro del texto. La expresión regular "este|oeste|norte|sur" permitirá encontrar cualquiera de los nombres de los puntos cardinales. La barra se utiliza comúnmente en conjunto con otros caracteres especiales. El signo de dólar "$" Representa el final de la cadena de caracteres o el final de la línea, si se utiliza el modo multi-línea. No representa un caracter en especial sino una posición. Si se utiliza la expresión regular ".$" el motor encontrará todos los lugares donde un punto finalice la línea, lo que es útil para avanzar entre párrafos.

0
0
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.