martes, 19 de febrero de 2019

1.-Perspectiva practica de la administracion de bases de datos

1.1 Administrdor de bases de datos (DBA)

El DBA (Data Base Admininistrator) es el administrador de base de datos. Es el profesional informático encargado de la administración de una o varias bases de datos gestionando su uso y funcionamiento .

Las funciones y responsabilidades de un DBA dependerán en gran medida de la organización de la empresa o proyecto en el que esté trabajando.

Un administrador de base de datos es un especialista en bases de datos e informatica que conoce las herramientas de gestion de la base de datos, asi como la forma de desarrollar los planes de administracion de datos.

Resultado de imagen para Administracion de bases de datos

1.1.1 Funciones de un DBA

Algunas de las funciones de un Administrador de Bases de Datos son las siguientes:
  • 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.1.2 Relacion del DBA con otras areas del sistema

Uno de los principales deberes de un administrador de base de datos es el desarrollo y soporte a pruebas. Las actividades de soporte incluyen la colecta de datos de produccion para llevar a cabo pruebas con ellos; consultar a los programadores respecto al desempeño; y hacer cambios a los diseños de tablas de manera que se pueda proporcionar nuevos tipos de almacenamiento para las funciones de los programas.

Asi es como, un DBA no solo debe preocuparse por la base de datos que como se mencionaba anteriormente en esta entrada, es solo uno de los muchos elementos con los que cuenta un sistema para su interaccion con los usuarios. Si bien, se debe llevar una coordinacion con las demas partes involucradas del sistema para que todo trabaje en armonia y asi el sistema tenga un mayor rendimiento ofreciendo mejor interaccion a sus usuarios.

Como ejemplo de los elementos que compone un sistema, tomaremos de ejemplo la programacion por capas.
Cada una de las capas se encarga de algo en especifico, pero a su vez deben de trabajar en conjunto para lograr un buen rendimiento.

Programa que resta 2 numeros

Ahora veremos un programa el cual, al contrario del programa anterior, en vez de sumar 2 numeros, los restara, basicamente es el mismo codigo del programa anterior, sin embargo, se le cambian algunos registros para poder realizar la resta ademas de los mensajes dentro del programa.

Sintaxis:

.model small


.stack 64
.data
  
;declarando variables globales
numero1 db 0
numero2 db 0

resta db 0

msjn1 db 10,13, "INGRESE EL PRIMER NUMERO A RESTAR=  ",'$';ingrese n1
msjn2 db 10,13, "INGRESE EL SEGUNDO NUMERO A RESTAR=  ",'$';ingrese n2

;mensaje para mostrar los resultados
 

msjnR db 10,13, "LA RESTA DE LA OPERACION DADA ES=  ",'$'
 

.code
begin proc far   
    
    
    ;direccionamiento del procedimiento
    mov ax, @data
    mov ds,ax   
    
    
    ;solicitar del teclado numero 1
    
    mov ah, 09
    lea dx, msjn1
    int 21h
    mov ah, 01
    int 21h
    sub al, 30h
    mov numero1,al   
    
    
    ;solicitar del teclado numero 2
    
    mov ah, 09
    lea dx, msjn2
    int 21h
    mov ah, 01
    int 21h
    sub al, 30h
    mov numero2,al
    
    ;operaciones aritmeticas
                  
    
    ;RESTA
    mov al,numero1
    sub al,numero2
    mov resta,al
    
 
    ;mostrando la resta
    mov ah,09
    lea dx,msjnR
    int 21h
    mov dl,resta
    add dl,30h 
    mov ah,02
    int 21h
   
  
    ;cierre del programa
    mov ah,4ch
    int 21h
    
    begin endp
end

Corrida del programa:

Al momento de correr el programa, nos mostrara al igual que en el programa anterior, 2 mensajes pidiendo 2 numeros, para despues mostrarnos la resta de dichos numeros.

Cabe mencionar que el primer numero que se ingrese siempre debe ser mayor al segundo numero ingresado, si no ocurrira un error.




Programa suma de dos numeros dados por el usuario

Este programa puede ser encontrado en el siguiente video.
Lectura de Caracteres en Lenguaje Ensamblador

Sintaxis:



.MODEL SMALL
.STACK 64
.DATA
    N1 DB 0
    N2 DB 0
    SUMA DB 0
    MSG1 DB "DAME EL PRIMER VALOR:","$"
    MSG2 DB 10,13,"DAME EL SEGUNDO VALOR","$"
    MSG3 DB 10,13,"SUMA= ","$"
.CODE
BEGIN PROC FOR
    ;DIRECCIONAMOS AL SEGMENTO DE DATOS
    MOV AX,@DATA
    MOV DS,AX
    
    ;SOLICITAMOS EL PRIMER DIGITO
    MOV AH,09
    LEA DX,MSG1
    INT 21H
    
    ;SE LEE EL PRIMER VALOR
    MOV AH,01
    INT 21H
    SUB AL,30H
    MOV N1,AL
    
    ;SOLICITAMOS EL SGUNDO DIGITO
    MOV AH,09
    LEA DX,MSG2
    INT 21H
    MOV AH,01
    INT 21H
    SUB AL,30H ;CONVIERTE EL CARACTERER EN NUMERO
    MOV N2,AL
    ;OPERACION
    MOV AL,N1
    ADD AL,N2
    ADD AL,30H ;CONVIERTE A CARACTER
    MOV SUMA,AL
    MOV AH,09
    LEA DX,MSG3
    INT 21H
    
    ;SE IMPRIME EL CARACTER CON EL SRVICIO 02 DE LA INT 21H
    MOV AH,02
    MOV DL,SUMA
    INT 21H
    MOV AH,4CH
    INT 21H
    BEGIN ENDP
END

Corrida del programa:

Al correr el programa nos muestra en pantalla un par de mensajes, en donde se nos pide ingresar algun numero, este numero debe de ser de 1 digito, ingresamos los 2 numeros, y se nos muestra un mensaje donde nos da la suma de dichos numeros ingresados.
Cabe mencionar que la suma de los 2 numeros dados, debe de dar 1 solo dijito, si no nos dara un caracter erroneo.



Impresion de Caracteres en pantalla y lectura desde teclado

Al momento de ingresar un caracter a lenguaje ensamblador a nuestros registros, este no tma el caracter como tal, no lo toma como la letra o el numero que es, si no que toma el codigo ascii del caracter.

Tabla de códigos ascii proporcionada desde emu8086


Al ingresar un caracter, pongamos de ejemplo un numero, el compilador debe tomar el codigo ascii de de ese numero, y al momento de querer imprimirlo en pantalla, o en la consola, lo que debe hacer, es regresar el caracter que le pertenece a ese codigo ascii y mostrara en pantaña el numero seleccionado.

Programa que muestra un determinado mensaje, una cierta cantidad de veces dependiendo de las veces que el usuario elija que se repita.

Sintaxis:

.MODEL SMALL
.STACK 64

.DATA
MENSAJE DB "INGRESA EL NUMERO DE VECES QUE SE REPITETIRA EL MENSAJE (1-9)",13,10,"$"
REPETIR DB 13,10,"REPITIENDO EL CICLO.$"

.CODE
INICIO PROC FAR
        
        MOV AX,@DATA
        MOV DS, AX
        
        MOV AH, 09
        LEA DX, MENSAJE
        INT 21H
        
        MOV AH,01
        INT 21H
        
        ;CONVERTIR A VALOR LO QUE SE LE TECLEA
        SUB AL, 30H
        
        MOV CL , AL
        
        CICLO:
            MOV AH, 09
            LEA DX, REPETIR
            INT 21H
        LOOP CICLO
        
        MOV AX, 4C00H
        INT 21H
INICIO ENDP
END

Corrida del programa:

Al momento de correr el programa, lo que podemos observar es que nos muestra un mensaje el cual dice que inigresemos las veces que queremos que s emuestre el mensaje.
Por ciertas razones, las veces que se puede repetir, mas bien, el numero de veces que se va a repetir, solo puede ser de 1 digito.



Uso de registros en ensamblador 8086

Los registros básicos a la hora de programas dentro del lenguaje de ensamblador, enfocándonos en 8086.
Si bien existen distintos tipos de registros, nosotros veremos los siguientes

AX    Acumulador
BX    Registro base
CX    Registro contador
DX    Registro de datos

El registro AX se usa para almacenar resultados, lectura o escritura desde o hacia los puertos.
El registro BX sirve como apuntador base o indice.
El registro CX se utiliza en operaciones de iteracion, como un contador que se va incrementado o decrementando de acuerdo con el tipo de instrucción dada. Mas comúnmente, utilizado en algún ciclo.
El registro DX se usa como puente para el acceso de datos.

De los anteriores registros, solo habiamos utlizado los registros AX, y el BX par guardar registros numericos hexadecimales.

A continuacion veremos la utilizacion de los registros antes mencionados, para imprimir el abecedario.

Sintaxis:

;USO DEL REGISTRO CX

ORG 100H
    MOV DL, "A" ;SE TRANSFIERE LA LETRA A AL REGISTRO DL
    MOV CX, 26  ;SE TRANSFIERE 26 AL REGISTRO CONTADOR
    
    IMPRIME: ;VA A IMPRIMIR HASTA ACABAR LAS 26
        MOV AH, 02 ;SE TRANSFIERE 02 AL ACUMULADOR
        INT 21H    ;DATO ASCII LEIDO DESDE EL TECLADO
        INC DL     ;SIUIENTE CARACTER DEL ALFABETO
    LOOP IMPRIME   ;CONTINUA

Corrida del programa:

Se han dejado comentarios en el programa para su entendimiento.



Al momento de correr el programa veremos como empiezan a aparecer cada una de las letras del alfabeto hasta su terminacion.


Ahora veremos el programa con una segunda parte la cual no seria mas que el mismo alfabeto pero terminando de imprimir el alfabeto en mayusculas empezara ahora en minusculas.

Sintaxis:


;USO DEL REGISTRO CX

ORG 100H
    MOV DL, "A" ;SE TRANSFIERE LA LETRA A AL REGISTRO DL
    MOV CX, 26  ;SE TRANSFIERE 26 AL REGISTRO CONTADOR
    
    IMPRIME: ;VA A IMPRIMIR HASTA ACABAR LAS 26
        MOV AH, 02 ;SE TRANSFIERE 02 AL ACUMULADOR
        INT 21H    ;DATO ASCII LEIDO DESDE EL TECLADO
        INC DL     ;SIUIENTE CARACTER DEL ALFABETO
    LOOP IMPRIME   ;CONTINUA
    
MOV DL, "a"
MOV CX, 10
LOOP2:
    MOV AH, 02
    INT 21H
    INC DL
LOOP LOOP2


Corrida del programa:


Programa en ensamblador 8086: Operaciones de suma, resta e incremento

Ahora veremos un programa de cierta manera sencillo, dentro de emu8086.

Sintaxis:


ORG 100H         

;SUMA NUMEROS DE 1 SOLO DIGITO
MOV AX, 8H   ;ASIGNA UN VALOR A AX
MOV BX, 4H   ;ASIGNA UN VALOR A BX
ADD AX, BX   ;SUMA AX Y BX
MOV BX,5     ;CAMBIA EL VALOR DE BX
SUB AX,BX    ;RESTA AX Y BX
MOV BX,3     ;CAMBIA EL VALOR DE BX
INC BX
MOV AX,6

HLT ;TERMINA EL PROCESO

CORRIDA DEL PROGRAMA:




Asi es como se ve el programa apenas correrlo.
A continuacion notamos como con la instruccion MOV AX, 8H, se le asigna a AX el valor de 8 en hexadecimal.



 Aqui se le asigna a BX el valor de 4 hexadecimal


Posteriormente se realiza una suma del contenido del registro ZX y BX guardando el resultado en AX, al utilizar hexadecimal, el registro guardado de la suma, se guardara en hexadecimal.


Al registro BX se le cambia el valor a 5 en hexadecimal.


Posteriormente al cambio de valor a BX, se hace una substraccion o resta, entre el registro AX y el BX, dando como resultado un valor de 7 guardandolo en el registro AX.


Después de la substraccion, se le cmabia el valor a BX por un 3 hexadecimal.


Finalmente, incrementamos en 1 el valor del registro BX.


Cambiamos el valor de AX por un 6


Y finalizamoc el programa.

Programa #2

Se hizo un segundo programa al cual solo se le cambiaban los valores ingresandolos en decimal y el programa como tal los convierte a hexadecimal.
Es decir qu si enviamos un 10 al registro AX, el programa lo convertira a hexadecimal y le guardara un "A"

Sintaxis:

ORG 100H
MOV AX, 80  ;Asigna el valor de 80 decimal a hexadecimal a AX
MOV BX,450  ;Asigna el valor de 450 decimal a hexadecimal a BX
INC BX      ;Incrementa en 1 BX
ADD AX,80   ;Suma a AX, 80 en hexadecimal
MOV CX,200  ;Da el valor de 200 hexadecimal a CX
SUB CX,AX   ;Resta a CX el valor en AX

RET


1.4 Iinterrupciones dentro del lenguaje ensamblador

Interrupciones

Veamos primero mas que nada que es una interrupción dentro el lenguaje ensamblador, es una situación especial que suspende la ejecución de un programa de modo que el sistema pueda realizar una acción para tratarla. Tal situación se da, por ejemplo, cuando un periférico requiere la atención del procesador para realizar una operación de E/S.

Las interrupciones constituyen quizá el mecanismo mas importante para la conexión del microcontrolador con el mundo exterior, sincronizando la ejecución de programas con acontecimientos externos.

Pasos para el procesamiento

  1. Terminar la ejecución de la instrucción maquina en curso.
  2. Salva el valor de contador de programa, IP, en la pila, de manera que en el CPU, al terminar el proceso, pueda seguir ejecutando el programa a partir de la ultima instrucción.
  3. La CPU salta a la dirección donde esta almacenada la rutina de servicio de interrupción y ejecuta esa rutina que tiene como objetivo atender al dispositivo que genero la interrupción.
  4. Una vez que la rutina de la interrupción termina, el procesador restaura el estado que había guardado en la pila en el paso 2 y retorna al programa que s estaba usando anteriormente.

EJEMPLOS DE INTERRUPCIONES

int 01h-->un solo paso
int 02h-->interrupcion no enmascarable
int 03h--> punto de interrupcion
int 04h-->desbordamiento
int 05h-->impresion de pantalla
int 08h-->Cronometro
int 15h-->Servicios del sistema
int 16h-->Funciones de entrada del teclado
int 18h-->Entrada con el Basic de Rom
int 19h-->Cargador ed arranque
int 1Ah-->Leer y establecer la hora
int 1Bh-->Obtener el control con una interrupcion de teclado.
int 2oh-->Terminar un programa
int 33h->Funciones del Raton

Aqui abajo dejare un pdf el cual contiene una tabla de interrupciones.




Cabe aclarar este PDF no lo encontré yo, lo encontró mi compañera Carolina Sauceda Peña pueden encontrar su blog en esta liga http://iscsaucedacarolina.blogspot.com creditos a ella.

Programa que pone 3 colores y 3 letras

include 'emu8086.inc' CUADRO MACRO XI,YI,XF,YF,COLOR MOV AX, 0600H ; MOV BH, COLOR ; COLOR DE FONDO Y LETRA MOV BL, 00H MOV CH...