jueves, 24 de agosto de 2017

Sistemas de gestores de base de datos libres

Los sistemas de gestores libres son aquellos que podemos descargar sin tener que pagar alguna cantidad, por ejemplo:
  • MySQL
  • Sydes (linux)
  • SQLIFE
  • ProsgretSQL
  •  Filebird
  • ApacheDerby
  • DBD2 express-C DB2
SQLIFE:




Squlite se caracteriza por ser un  motor de base de datos ágil y robusto diseñado para ambientes de alto volumen.La biblioteca implementa la mayor parte del estándar SQL-92, incluyendo transacciones de base de datos atómicas, consistencia de base de datos, aislamiento, y durabilidad (ACID), triggers y la mayor parte de las consultas complejas.

sus ventajas:

  • No requiere configuración.
  • No se requiere uso de servidor (proceso activo para atender la peticiones)
  • Fácilmente portable (multiplataforma Windows, Linux, MAC, dispositivos móviles, Tablet, etc.) y posee un acceso mucho más rápido.
sus desventajas:

  • Sqlite  posee deficiencias en la herramienta where esta limitación está dada por el soporte para clausuras anidadas, de igual forma  es notoria  la falta de Claves Foráneas.
mas informacion: https://es.wikipedia.org/wiki/SQLite#Caracter.C3.ADsticas

¿Que software me permite programar en lenguaje Ensamblador?

1. WinAsm

WinAsm Studio es un entorno de desarrollo integrado (IDE) gratuito para desarrollar programas en Windows 32-bit y DOS 16-bit utilizando Microsoft Macro Assembler MASM y FASM utilizando el Add-In para FASM. Ha sido escrito por Antonis Kyprianou (akyprian). 
Más información aquí (Web oficial): http://www.winasm.net/

2. Easy Code

Entorno visual de desarrollo en lenguaje ensamblador.

Easy Code es el entorno visual de programación en ensamblador hecho para generar aplicaciones de 32 bits para Windows. La interfaz de Easy Code, muy parecida a la de Visual Basic, le permite programar una aplicación en ensamblador de manera rápida y fácil como nunca antes había sido posible.
Más información aquí (Web oficial): http://www.easycode.cat/Spanish/index.htm

3. RadASM

RadASM es un IDE gratuito para ensambladores de 32 bits para Windows.
Soporta MASM, TASM, FASM, NASM, GoASM y HLA
Más información aquí (Web oficial): http://www.radasm.com/

4. Fresh IDE

Es un IDE visual para el lenguaje ensamblador con un compilador integrado Flat assembler (FASM). Está escrito en Fresh IDE y es una aplicación independiente compilable. Es totalmente compatible con FASM y puede ser compilado también con todas las versiones de FASM. El objetivo principal de Fresh IDE es hacer la programación en ensamblador tan rápido y eficiente como en los lenguajes de alto nivel, sin sacrificar el tamaño de una pequeña aplicación que potencia el lenguaje ensamblador. Se trata de una aplicación Windows, pero se ejecuta en Wine muy bien y puede crear, compilar, depurar y ejecutar aplicaciones para Windows y Linux en Windows y Linux. Descarga aquí.

5. Assembler IDE

Se trata de un entorno de desarrollo para código ensamblador, cuyo propósito es automatizar al máximo este proceso integrando el editor de código, el depurador (debugger) y el desensamblador.

Entre las posibilidades que nos ofrece el entorno Assembler IDE, destacan la depuración de código (debugging), el editor de código, el desensamblador o la compilación con NASM, TASM/MASM y FASM.

Como puedes comprobar se trata de una herramienta de lo más completita.

Y no dejes que te intimide el hecho de que el programa Assembler IDE esté únicamente disponible con los textos que aparecen en pantalla en idioma inglés, ya que sus desarrolladores han diseñado una interfaz de usuario que resulta muy clara, sencilla e intuitiva, de tal manera que cualquiera que se ponga a los mandos de esta aplicación la encontrará de lo más accesible.

Y no queremos poner el punto y final a esta reseña sin mencionar el que, sin lugar a dudas, será uno de los aspectos más interesantes y atractivos del programa: su inmejorable precio. Y es que, como estamos ante una aplicación que se distribuye mediante licencia "freeware", podremos descargar Assembler IDE gratis. Descarga aquí.

Algunos IDE de paga:

1. Visual Studio Professional ($499.99 USD)


Visual Studio 2015 es un completo entorno de desarrollo integrado para crear aplicaciones espectaculares para Windows, Android e iOS, además de aplicaciones web y servicios de nube innovadores.
  • Herramientas y servicios para proyectos de cualquier tamaño o complejidad
  • C#, Visual Basic, F#, C++, Python, Node.js y HTML/JavaScript
  • Planificación de sprint
  • Depuración y creación de perfiles avanzadas, pruebas automatizadas y manuales
  • DevOps con implementaciones automatizadas y supervisión continua
2. Codelite ($39 USD)


Existen muchos entornos de desarrollo dedicados a C/C++, pero este por un motivo u otro no es tan conocido como otras opciones libres como Codeblocks o Dev-C++. Hablamos de Codelite: Un IDE multiplataforma para C/C++.
El proyecto codelite ya lleva bastantes años desde que inicio su andadura y cada vez su comunidad es mayor y cuenta con más características. Está escrito en C++ (Como cabe esperar de un IDE para C++) y usa las bibliotecas wxWidgets para la interfaz. Lo que nos asegura un IDE multiplataforma y que se adapta visualmente a todos los sistemas operativos.

programas de Turbo Assambler

ejemplo 1: hola mundo








ejecución:








ejemplo 2: ejemplo de uso de constantes







ejecución:

ejemplo 3: hola mundo(con función o procedimiento)


ejecución:

fuente: https://laweafomejaksja.jimdo.com/2016/03/05/3-programas-de-ejemplo-en-turbo-assembler-con-su-ejecuci%C3%B3n/

otros programas: http://nuyoo.utm.mx/~jjf/le/le.html#Programas

Administración de Base de Datos Unidad 1

1.1 funciones de un DBA


  • Gestión General de Base de Datos

El DBA es la persona con más conocimientos sobre base de datos en una organización. Como tal, debe entender las reglas básicas de la tecnología de base de datos relacional y ser capaz de comunicarlos con precisión a los demás.

  • Modelado de Datos y Diseño de Base de Datos

Un DBA debe ser un profesional experto en la recopilación y análisis de las necesidades del usuario para obtener modelos de datos conceptuales y lógicos. Esta tarea es más difícil de lo que parece. Un modelo conceptual de datos describe los requisitos de datos a un nivel muy alto, un modelo de datos lógico proporciona en profundidad los detalles de los tipos de datos, longitudes, relaciones y cardinalidad. El DBA utiliza técnicas de normalización para ofrecer modelos de datos que reflejen las necesidades de los datos de la empresa.

  • Auditoria

Una de las tareas de un DBA es identificar qué usuarios tienen acceso a insertar, actualizar o eliminar datos, y cuándo. Una auditoría NO sólo podría ser necesaria por un tiempo limitado, para usuarios específicos o datos específicos. También puede ser requerida  24/7 para todos los datos que se introduzcan en el DBMS. Regularmente, para realizar las funciones de autorías los DBAs tienen que trabajar en combinación con los auditores internos y externos de la empresa.

  • Integración con aplicaciones

La mayoría de las empresas hoy en día utilizan aplicaciones de terceros (casi nadie ya desarrolla sus propias aplicaciones in-house), muy pocas de estas aplicaciones funcionan de manera aislada. En otras palabras, las aplicaciones tienen que interconectarse unas con otras, generalmente utilizando base de datos como el medio para compartir los datos. Los DBAs a menudo se involucran en los procesos de integrar las aplicaciones existentes con las bases datos que administran. Esto puede incluir la creación de aplicaciones a medida, scripts, etc.

  • Resguardo y recuperación de datos

Uno de los aspectos más fundamentales del trabajo del DBA es proteger los datos de la organización. Esto incluye hacer copias de seguridad periódicas de los datos y mantenerlos a salvo de la destrucción accidental o intencional. Además, diseñar, implementar y probar un plan de recuperación para que cuando se presenten los problemas, los datos se pueden restaurar rápidamente.

  • Inteligencia de negocios y almacenamiento de datos

Una de las áreas de mayor crecimiento para el DBA es la Inteligencia de Negocios (BI) y almacenamiento de datos. Esto se debe a que cada vez más organizaciones están tratando de extraer toda la información que pueda con el fin de tomar mejores decisiones de negocios.

  • Planificación de capacidad

En la mayoría de las organizaciones, el número y tamaño de las bases de datos crece rápidamente. Es la responsabilidad del DBA gestionar el creciente volumen de datos y diseñar los planes apropiados para administrarlos. Esto incluye también la gestión del hardware donde se almacenan los datos.

  • Administración de cambios

La configuración del servidor SQL Server o MySQL, el esquema de base de datos, el código de Transact-SQL, y muchas otras facetas del ecosistema de aplicaciones cambian con el tiempo. A menudo es la responsabilidad del DBA realizar el análisis de impacto antes de realizar los cambios dentro de una DBMS. Implementar cambios, hacer pruebas piloto y documentar todos los cambios y procedimientos es parte del trabajo de un DBA.

  • Desarrollo de aplicaciones

Muchos administradores de base datos deben de desarrollar aplicaciones y scripts con el objetivo de automatizar tareas relacionadas con la inserción, sustracción o borrado de información dentro del manejador de base de datos. En general, éste debe de colaborar a nivel de integración de sistema con los desarrolladores de aplicaciones, por lo que a veces se ve en la obligación de desarrollar código para casos específicos.


1.2 Relación del DBA con otras áreas de los sistema

Establezca cuales son las principales características que se utilizan para establecer una relación con las otras áreas de sistemas.

Tienes que ser de un nivel alto para tener relación 

La base de datos debe ser continua en su trabajo Deber ser una persona imparcial
Tener nociones de administración, manejo de personal y un conocimiento de las políticas y normas de la empresa, el mismo que participa en el desarrollo de procedimientos asegurando así la calidad e integridad de la base de datos


 Trabajando en equipo realice una simulación actuada donde se ponga de ejemplo alguno de las características antes mencionadas

fuente: https://es.scribd.com/document/232594448/1-1-2-Relacion-Del-DBA-Con-Otras-Areas-de-Los-Sistemas


1.3. Consideraciones para elegir un buen DBMS

Oracle, SQL Server, Microsoft Access, MySQL, DB2, Paradox. Hay toda una variedad de productos de base de datos en el mercado hoy en día, por lo que la selección de una plataforma para la infraestructura de su organización es una tarea de alta responsabilidad

Definir los requisitos Sistemas de gestión de bases (o DBMS) se pueden dividir en dos categorías - bases de datos de escritorio y bases de datos del servidor. En términos generales, las bases de datos de escritorio están orientados a un único usuario y las aplicaciones residen en ordenadores personales estándar (de ahí el término de escritorio).

Bases de datos del servidor contienen mecanismos para garantizar la fiabilidad y consistencia de los datos y están dirigidas a aplicaciones multiusuario. Estas bases de datos están diseñados para ejecutarse en servidores de alto rendimiento y tienen un precio proporcionalmente mayor.

 Es importante hacer un análisis de las necesidades de cuidado antes de sumergirse y comprometerse con una solución de base de datos. Usted encontrará a menudo que una base de datos de escritorio es adecuado para las necesidades de su negocio cuando se haya previsto inicialmente una costosa solución basada en servidor. Usted también puede descubrir requerimientos ocultos que requieren el despliegue de una solución escalable basada en el servidor de base de datos.

fuente https://es.scribd.com/doc/266205574/Consideraciones-Para-Elegir-Un-Buen-DBMS

miércoles, 23 de agosto de 2017

PostgerSQL

CARACTERÍSTICAS
PostgreSQL es un servidor de base de datos objeto relacional libre, liberado bajo la licencia BSD. Como muchos otros proyectos open source, el desarrollo de PostgreSQL no es manejado por una sola compañía sino que es dirigido por una comunidad de desarrolladores y organizaciones comerciales las cuales trabajan en su desarrollo, dicha comunidad es denominada el PGDG (PostgreSQL Global Development Group).Comandos Básicos de PostgreSQL:

A continuación un ejemplo de comandos básicos para la administración de PostgreSQL. Siempre estará disponible el aplicativo Pgadmin, para una administración gráfica.

Lista de Comandos:
1. Crear un Usuario.
[postgres@GNU][~]$ createuser luix
Clase_Maritima=> CREATE USER pilar with password ‘pilar’;

2. Listando todos los usuarios
Clase_Maritima=> du
Clase_Maritima=> SELECT * FROM pg_user ;

3. Cambiando el Password de un Usuario.
Clase_Maritima=> ALTER USER pilar with password ‘123456’;

4. Cambiando el nombre de un usuario
Clase_Maritima=> ALTER USER pilar RENAME TO manolo;

5. Borrando Usuarios
[postgres@GNU][~]$ dropuser pilar
Clase_Maritima=>drop user pilar;

6. Crear una Base Datos
[postgres@GNU][~]$ createdb Maritima
Clase_Maritima=> CREATE DATABASE marimar;

7. Listando todas las Base Datos
Clase_Maritima=> l
Clase_Maritima=> SELECT datname FROM pg_database ;
[postgres@GNU][~/data]$ psql -l

8. Cambiando el nombre de una Base datos
Clase_Maritima=> ALTER DATABASE marimar RENAME TO Maritmar;

9. Borrando una Base Datos
postgres@GNU][~]$ dropdatadb Maritima
Clase_Maritima=>drop database Maritima;

10. Accesando a una Base Datos con un usuario.

[postgres@GNU][~]$ psql -U pilar -h localhost -d Maritima

Lenguajes Enambladores

MASM
El Microsoft Macro Assembler (MASM) es un ensamblador para la familia x86 de microprocesadores. Fue producido originalmente por Microsoft para el trabajo de desarrollo en su sistema operativo MS-DOS, y fue durante cierto tiempo el ensamblador más popular disponible para ese sistema operativo. El MASM soportó una amplia variedad de facilidades para macros y programación estructurada, incluyendo construcciones de alto nivel para bucles, llamadas a procedimientos y alternación (por lo tanto, MASM es un ejemplo de un ensamblador de alto nivel). Versiones posteriores agregaron la capacidad de producir programas para los sistemas operativos Windows. MASM es una de las pocas herramientas de desarrollo de Microsoft para las cuales no había versiones separadas de 16 bits y 32 bits.

NASM
El Netwide Assembler o NASM, es un ensamblador libre para la plataforma Intel x86. Puede ser usado para escribir programas tanto de 16 bits como de 32 bits (IA-32). En el NASM, si se usan las bibliotecas correctas, los programas de 32 bits se pueden escribir de una manera tal para que sean portables entre cualquier sistema operativo x86 de 32 bits. El paquete también incluye un desensamblador, el NDISASM.

GAS
El gas, o GNU Assembler, es el ensamblador del proyecto GNU. Es el back end por defecto del GNU Compiler Collection y es usado para compilar Linux y otros sistemas operativos como el sistema operativo GNU. Es una parte del paquete GNU Binutils, y se puede acceder con el comando as desde el shell. Al igual que el resto de aplicaciones GNU, es software libre, y es licenciado bajo GNU General Public License.
El gas puede ejecutar como también generar ensamblados para un número diferente de arquitecturas. Inicialmente utilizaba únicamente la sintaxis de AT&T en lugar de la sintaxis de Intel usada en muchos otros ensambladores, sin embargo, las últimas versiones soportan dicha sintaxis.

TASM
El Turbo Assembler (TASM), un paquete ensamblador principalmente destinado a la plataforma del IBM PC y sus compatibles. Fue la oferta de Borland en el mercado de herramientas de programación en lenguaje ensamblador para la familia de los microprocesadores x86. Como se pudiera esperar, trabajaban bien con los compiladores de lenguaje de alto nivel de Borland para los PC, como Turbo C, Turbo BASIC, Turbo Prolog y Turbo Pascal. Junto con el resto de suite de lenguajes de programación Turbo. Turbo Assembler es mantenido y empaquetado por Embarcadero Delphi y C++Builder.
El paquete Turbo Assembler vino junto con el enlazador Turbo Linker, y era interoperable con el depurador Turbo Debugger. Para la compatibilidad con el ensamblador Microsoft Macro Assembler (MASM) de Microsoft, TASM también podía ensamblar los archivos de código fuente del MASM por medio de su modo MASM. Al igual que éste, es un ensamblador de alto nivel.

Turbo Assembler también se refiere a un ensamblador común, basado en el microprocesador 6502 para el Commodore 64, creado por la compañía alemana Omikron en 1985. Este producto no se relaciona con el ensamblador de Borland.



martes, 22 de agosto de 2017

lenguajes de interfas unidad 1:Introducción al lenguaje ensamblador

1.1 Importancia de la programación en lenguaje ensamblador.


Definición: El lenguaje ensamblador es un tipo de lenguaje de bajo nivel utilizado para escribir programas informáticos, y constituye la representación más directa del código máquina específico para cada arquitectura de microprocesador. La importancia del lenguaje ensamblador es principalmente que se trabaja directamente con el microprocesador; por lo cual se debe de conocer el funcionamiento interno de este, tiene la ventaja de que en el se puede realizar cualquier tipo de programas que en los lenguajes de alto nivel no lo pueden realizar. Otro punto sería que los programas en ensamblador ocupan menos espacio en memoria.

Ventajas y desventajas

Ventajas
1.     .- Como trabaja directamente con el microprocesador al ejecutar un programa, pues como este lenguaje es el más cercano a la máquina la computadora lo procesa más rápido.
2.     Eficiencia de tamaño .- Un programa en ensamblador no ocupa mucho espacio en memoria porque no tiene que cargan librerías y demás como son los lenguajes de alto nivel
3.     Flexibilidad. - Es flexible porque todo lo que puede hacerse con una máquina, puede hacerse en el lenguaje ensamblador de esta máquina; los lenguajes de alto nivel tienen en una u otra forma limitantes para explotar al máximo los recursos de la máquina. O sea que en lenguaje ensamblador se pueden hacer tareas específicas que en un lenguaje de alto nivel no se pueden llevar acabo porque tienen ciertas limitantes que no se lo permite
Desventajas
Tiempo de programación .- Como es un lenguaje de bajo nivel requiere más instrucciones para realizar el mismo proceso, en comparación con un lenguaje de alto nivel. Por otro lado, requiere de más cuidado por parte del programador, pues es propenso a que los errores de lógica se reflejen más fuertemente en la ejecución.
Programas fuente grandes .- Por las mismas razones que aumenta el tiempo, crecen los programas fuentes; simplemente requerimos más instrucciones primitivas para describir procesos equivalentes. Esto es una desventaja porque dificulta el mantenimiento de los programas, y nuevamente reduce la productividad de los programadores.
Peligro de afectar recursos inesperadamente .- Que todo error que podamos cometer, o todo riesgo que podamos tener, podemos afectar los recursos de la máquina, programar en este lenguaje lo más común que pueda pasar es que la máquina se bloquee o se reinicialice. Porque con este lenguaje es perfectamente posible (y sencillo) realizar secuencias de instrucciones inválidas, que normalmente no aparecen al usar un lenguaje de alto nivel.
Falta de portabilidad.- Porque para cada máquina existe un lenguaje ensamblador; por ello, evidentemente no es una selección apropiada de lenguaje cuando deseamos codificar en una máquina y luego llevar los programas a otros sistemas operativos o modelos de computadoras.

 1.2 El procesador y sus registros internos


Los registros del procesador se emplean para controlar instrucciones en ejecución, manejar direccionamiento de memoria y proporcionar capacidad aritmética. Los registros son direccionarle por medio de un nombre. Los bits por convención, se numeran de derecha a izquierda, como en:

 ... 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Registros de segmento Un registro de segmento tiene 16 bits de longitud y facilita un área de memoria para direccionamiento conocida como el segmento actual.

Registro CS. El DOS almacena la dirección inicial del segmento de código de un programa en el registro CS. Esta dirección de segmento, mas un valor de desplazamiento en el registro apuntador de instrucción (IP), indica la dirección de una instrucción que es buscada para su ejecución.

Registro DS. La dirección inicial de un segmento de datos de programa es almacenada en el registro DS. En términos sencillos, esta dirección, más un valor de desplazamiento en una instrucción, genera una referencia a la localidad de un byte específico en el segmento de datos.

Registro SS. El registro SS permite la colocación en memoria de una pila, para almacenamiento temporal de direcciones y datos. El DOS almacena la dirección de inicio del segmento de pila de un programa en el registro SS. Esta dirección de segmento, más un valor de desplazamiento en el registro del apuntador de pila (SP), indica la palabra actual en la pila que está siendo direccionada.

Registros ES. Algunas operaciones con cadenas de caracteres (datos de caracteres) utilizan el registro extra de segmento para manejar el direccionamiento de memoria. En este contexto, el registro ES está asociado con el registro DI (índice). Un programa que requiere el uso del registro ES puede inicializarlo con una dirección de segmento apropiada.

Registros FS y GS. Son registros extra de segmento en los procesadores 80386 y posteriores.

Registros de propósito general. Los registros de propósito general AX, BX, CX y DX son los caballos de batalla del sistema. Son únicos en el sentido de que se puede direccionarlos como una palabra o como una parte de un byte. El último byte de la izquierda es la parte "alta", y el ultimo byte de la derecha es la parte "baja". Por ejemplo, el registro CX consta de una parte CH (alta) y una parte Cl (baja), y usted puede referirse a cualquier parte por su nombre.

Registro de Apuntador de Instrucciones. El registro apuntador de instrucciones (IP) de 16 bits contiene el desplazamiento de dirección de la siguiente instrucción que se ejecuta. El IP está asociado con el registro CS en el sentido de que el IP indica la instrucción actual dentro del segmento de código que se está ejecutando actualmente. Los procesadores 80386 y posteriores tienen un IP ampliado de 32 bits, llamado EIP.

Registros Apuntadores. Los registros SP (apuntador de la pila) Y BP (apuntador de base) están asociados con el registro SS y permiten al sistema accesar datos en el segmento de la pila.

Registro SP. El apuntador de la pila de 16 bits está asociado con el registro SS y proporciona un valor de desplazamiento que se refiere a la palabra actual que está siendo procesada en la pila. Los procesadores 80386 y posteriores tienen un apuntador de pila de 32 bits, el registro ESP. El sistema maneja de forma automática estos registros.

Registro BP. El BP de 16 bits facilita la referencia de parámetros, los cuales son datos y direcciones transmitidos vía pila. Los procesadores 80386 y posteriores tienen un BP ampliado de 32 bits llamado el registro EBP.

Registros Índice. Los registros SI y DI están disponibles para direccionamiento indexado y para sumas y restas.

Registro SI. El registro índice fuente de 16 bits es requerida por algunas operaciones con cadenas (de caracteres). En este contexto, el SI está asociado con el registro DS. Los procesadores 80386 y posteriores permiten el uso de un registro ampliado de 32 bits, el ESI.

Registro DI. El registro índice destino también es requerido por algunas operaciones con cadenas de caracteres. En este contexto, el DI esta asociado con el registro ES. Los procesadores 80386 y posteriores permiten el uso de un registro ampliado de 32 bits, el EDI.

Registro de Banderas. De los 16 bits del registro de banderas, nueve son comunes a toda la familia de procesadores 8086, y sirven para indicar el estado actual de la máquina y el resultado del procesamiento. Muchas instrucciones que piden comparaciones y aritmética cambian el estado de las banderas, algunas cuyas instrucciones pueden realizar pruebas para determinar la acción subsecuente.