#!/usr/bin/python
import mysql.connector
from mysql.connector import errorcode
try:
cnx = mysql.connector.connect(user='root',
password='tecnologico',
host='localhost',
port=3308,
database='biblioteca')
except mysql.connector.Error as err:
if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
print("Nombre de usuario o password incorrecto")
elif err.errno == errorcode.ER_BAD_DB_ERROR:
print("La base de datos no existe")
else:
print(err)
else:
print('Conexion establecida')
# cursor, clase para el manejo del SQL ???
cursor = cnx.cursor()
# Creamos la consulta SQL
query = ("SELECT id_libro, nombre, editorial, edicion FROM libros")
# Ejecutamos la consula SQL
cursor.execute(query)
# Mostramos todos los datos de la consulta
for (id_libro, nombre, editorial, edicion) in cursor:
print("Id: "+ str(id_libro) +" ,Titulo: " + nombre + ", Editorial: " + editorial + ", Edicion: " + str(edicion))
# Cerramos cursor
cursor.close()
# Cerramos la conexion
cnx.close()
jueves, 26 de abril de 2018
Conexion a MySQL desde Python
Controladores MySQL para Python
Para conectar Python
a una base de datos se necesita un controlador, que es una biblioteca
utilizada para interactuar con la base de datos. Para la base de
datos MySQL, están disponibles 3 opciones de controlador:
- MySQL /Conector para Python
- MySQLdb
- PyMySQL
Pymysql es un
paquete para la interacción con bases de datos MySQL escrito
completamente en Python, a diferencia de su principal “competidor”,
MySQLdb. Se presenta como una atractiva alternativa a este último y
con razón, pues las ventajas son bastante relevantes. Corre en
distintas implementaciones de Python: CPython, PyPy y IronPython.
Además, su instalación resulta más sencilla al prescindir de
código escrito en C. Por último, y de las que más aprecio
personalmente, soporte para el conjunto de versiones 3.x.
Si cuentas con pip
en tu ordenador, el proceso será de lo más sencillo. Ejecutar en la
terminal:
pip install PyMySQL
martes, 24 de abril de 2018
Pip (administrador de paquetes)
pip es un sistema de gestión de paquetes utilizado para instalar y administrar paquetes de software escritos en Python. Muchos paquetes pueden ser encontrados en el Python Package Index (PyPI). Python 2.7.9 y posteriores (en la serie Python2), Python 3.4 y posteriores incluyen pip (pip3 para Python3) por defecto.
Una ventaja importante de pip es la facilidad de su interfaz de línea de comandos, el cual permite instalar paquetes de software de Python fácilmente desde solo una orden:
pip install nombre-paquete
Los usuarios también pueden fácilmente desinstalar algún paquete:
pip uninstall nombre-paquete
Otra característica particular de pip es que permite gestionar
listas de paquetes y sus números de versión correspondientes a través de
un archivo de requisitos. Esto nos permite una recreación eficaz de un
conjunto de paquetes en un entorno separado (p. ej. otro ordenador) o
entorno virtual. Esto se puede conseguir con un archivo correctamente
formateado
requisitos.txt
y la siguiente orden:pip install -r requisitos.txt
Con pip es posible instalar un paquete para una versión concreta de Python, sólo es necesario reemplazar
${versión}
por la versión de Python que queramos: 2, 3, 3.4, etc:pip${versión} install nombre-paquete
miércoles, 18 de abril de 2018
Programa con macros: Multiplicación de dos cifras (EMU8086)
.model small ;Modelo de memoria
.stack
numero macro var
mov ah,01h ;Function(character read)
int 21h ;Interruption DOS functions
sub al,30h ;Convertimos a decimal
mov var,al ;Almacenamos en varible
endm
caracter macro chr
mov ah,02h ;Function(character to send to standard output)
mov dl,chr ;Caracter a imprimir en pantalla
int 21h ;Interruption DOS functions
endm
multiplicar macro var1, var2
mov al,var1
mov bl,var2
mul bl
endm
separar macro alta, baja
mov ah,00h ;Se limpia la parte alta de ax
AAM ;Separa el registro ax en su parte alta y baja
mov alta,ah
mov baja,al
endm
resultado macro var
mov ah,02h
mov dl,var
add dl,30h
int 21h
endm
.data ;Definicion de datos(variables), donde se almacenara informacion
;Variables del primer numero ingresado
unidades_n1 db ?
decenas_n1 db ?
;Variables del segundo numero ingresado
unidades_n2 db ?
decenas_n2 db ?
;Variables temporales para los resultados de la primera multiplicacion
res_temp_dec_n1 db ?
res_temp_cen_n1 db ?
;Variables temporales para los resultados de la segunda multiplicacion
res_temp_dec_n2 db ?
res_temp_cen_n2 db ?
;Variables para los resultados
res_unidades db ?
res_decenas db ?
res_centenas db ?
res_uni_millar db ?
;Variable de acarreo en multiplicacion
acarreo_mul db 0
;Variable de acarreo en suma
acarreo_suma db 0
.code
.startup
mov ah,00h ;Function(Set video mode)
mov al,03 ;Mode 80x25 8x8 16
int 10h ;Interruption Video
numero decenas_n1
numero unidades_n1
caracter '*'
numero decenas_n2
numero unidades_n2
caracter '='
;Realizamos las operaciones
;Primera multiplicacion
multiplicar unidades_n1, unidades_n2
separar acarreo_mul, res_unidades
;Segunda multiplicacion
multiplicar decenas_n1, unidades_n2
mov res_temp_dec_n1,al
mov bl,acarreo_mul
add res_temp_dec_n1,bl
mov al,res_temp_dec_n1
separar res_temp_cen_n1, res_temp_dec_n1
;Tercera multiplicacion
multiplicar unidades_n1, decenas_n2
separar acarreo_mul, res_temp_dec_n2
;Suma -> Decenas
mov bl, res_temp_dec_n1
add res_temp_dec_n2,bl
mov al, res_temp_dec_n2
separar acarreo_suma, res_decenas
;Cuarta multiplicacion
multiplicar decenas_n1, decenas_n2
mov res_temp_cen_n2,al
mov bl,acarreo_mul
add res_temp_cen_n2,bl
mov al,res_temp_cen_n2
separar res_uni_millar, res_temp_cen_n2
;Suma -> Centenas
mov bl, res_temp_cen_n1
add res_temp_cen_n2, bl
mov bl, acarreo_suma
add res_temp_cen_n2,bl
mov al,res_temp_cen_n2
separar acarreo_suma, res_centenas
;Acarreo para unidades de millar
mov bl, acarreo_suma
add res_uni_millar, bl
;Mostramos resultados
resultado res_uni_millar
resultado res_centenas
resultado res_decenas
resultado res_unidades
.exit
end
martes, 17 de abril de 2018
Ejercicio anterior de loop con macro
; Loop de tamanio entre 1-9 (utilizando macro)
; David Alejandro Mendoza Martinez
org 100h
.model small ;Modelo de memoria small
.stack 64 ;Segmento pila
imprimir macro msj ;Macro para imprimir mensajes en pantalla
mov ah, 09 ;Salida de una cadena de caracteres
lea dx, msj ;Cargar la direccion de cadena en DX
int 21h ;Interrupcion de sistema
endm
datos segment ;Segmento de datos
mensaje db "Ingresa el numero de veces que se repetira el mensaje (1-9)",13,10,'$'
repetir db 13,10,"Repitiendo el ciclo $"
datos ends
codigo segment ;Segmento de codigo
assume cs:codigo, ds:datos ;Asignacion de segmentos
inicio: ;Funcion inicio
mov ax, datos ;Movemos el segmento datos a AX
mov ds, ax ;Movemos lo que esta en el registro AX a DS
imprimir mensaje
mov ah, 01 ;Entrada de caracteres con eco
int 21h ;Interrupcion de sistema
sub al, 30h ;Conversion a digito del caracter ascii
mov cl, al ;Movemos a CL(contador) lo que hay en AL
ciclo: ;Inicio del ciclo
imprimir repetir
loop ciclo ;Fin del ciclo
mov ax,4c00h ;Terminar con codigo de retorno
int 21h ;Interrupcion de sistema
end inicio ;Fin de la funcion inicio
codigo ends ;Cierre del segmento codigo
Procedimientos almacenados
DELIMITER //
CREATE PROCEDURE nuevo_libro(
IN N_nombre varchar(45),
IN N_editorial varchar(45),
IN N_edicion date
)
BEGIN
INSERT INTO libros(nombre, editorial, edicion)
VALUES (N_nombre, N_editorial, N_edicion);
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE eliminar_libro(
IN id int
)
BEGIN
DELETE FROM libros WHERE id_libro=id;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE consultar_editorial(
IN id int
)
BEGIN
SELECT * FROM editorial WHERE id_editorial=id;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE proc_usuarios(
IN _id int,
IN _nombre varchar(45),
IN _apellido_p varchar(45),
IN _apellido_m varchar(45),
IN _correo varchar(45),
IN accion varchar(45)
)
BEGIN
CASE accion
WHEN 'nuevo' THEN
INSERT INTO tecnologico.alumnos(nombre, apellido_p, apellido_m, correo)
VALUES (_nombre, _apellido_p, _apellido_m, _correo);
WHEN 'editar' THEN
UPDATE tecnologico.alumnos SET
nombre=_nombre, apellido_p=_apellido_p, apellido_m=_apellido_m, correo=_correo
WHERE num_cont=_id;
WHEN 'eliminar' THEN
DELETE FROM tecnologico.alumnos WHERE num_cont=_id;
WHEN 'consultar' THEN
SELECT * FROM tecnologico.alumnos WHERE num_cont=_id;
END CASE;
END //
DELIMITER ;
lunes, 16 de abril de 2018
Programa que mueve un caracter a la posicion que indique el usuario (macros)
org 100h
.model small
TITLE Programa que solicita una cadena y una posicion para mostrarla
gotoxy macro fila,col ;Macro que pone el cursor en la posicion deseada
mov ah,02h ;Funcion imprimir caracter
mov dh,fila ;Ingresamos la coordenada de x
mov dl,col ;Ingresamos la coordenada de y
mov bh,0h ;Numero de pagina
int 10h ;Interrupcion
endm ;Fin del macro
pantalla macro que ;Macro que imprime el primer caracter de la palabra escrita
mov ah,02h ;Funcion imprimir caracter
mov dl,offset que ;Ponemos el mensaje en dl
int 21h ;Interrupcion
endm ;Fin del macro
imprime macro eztryng ;Macro que imprime los mensajes que le enviemos
mov dx,offset eztryng ;Ponemos elmensaje en dx
mov ah,9 ;Funcion imprimir variable
int 21h ;Interrupcion
endm ;Fin del macro
.data ;Segmento de datos con variables
mensaje DB "INGRESE UN CARACTER: ",13,10,"$"
mensaje2 DB "INGRESE X del 0 al 9: ",13,10,"$"
mensaje3 DB "INGRESE Y del 0 al 9: ",13,10,"$"
caracter DB ?
varx DB ?
vary DB ?
vaa db 0
vtext db 100 dup('$') ;Declaracion del vector
.code ;Segmento de codigo
inicio: ;Funcion de inicio
mov ax,@data ;Almacenamos lo que esta en el segento data
mov ds,ax ;Movemos ax a ds
imprime mensaje ;Llamamos al macro imprime y le enviamos la variable mensaje
mov si,00h ;Limpiamos el registro si
mov caracter,0 ;Limpiamos la variable caracter
leer: ;Inicio de la funcion leer
mov ax,0000 ;Limpiamos ax
mov ah,01h ;Funcion de ingreso de caracter con impresion del mismo en pantalla
int 21h ;Interrupcion
mov caracter[si],al ;Ponemos el caracter tecleado en el arreglo caracter
inc si ;Incrementamos si
cmp al,0dh ;Comparamos al=salto de linea
ja leer ;De no ser igual repite la funcion leer para ingresar otro caracter
jb leer ;En caso de que al=salto de linea continua el programa
mov ah,02h ;Funcion imprimir caracter
mov dl,10 ;Imprimimos un salto de linea
int 21h ;Interrupcion
imprime caracter ;Llamamos al macro imprime y le enviamos la variable caracter
mov ah,02h ;Funcion imprime caracter
mov dl,10 ;Imprimimos un salto de linea
int 21h ;Interrupcion
imprime mensaje2 ;Llamamos al macro imprime y le enviamos la variable mensaje2
mov ax,0000 ;Limpiamos ax
mov ah,01h ;Fincion de ingreso de caracter con impresion del mismo en pantalla
int 21h ;Interrupcion
sub al,30h ;Le restamos 30h al caracter ingresado para transformarlo en un numero
mov bl,al ;Ponemos el numero en bl
mov varx,al ;Ponemos el numero en varx
imprime mensaje3 ;Llamamos al macro imprime y le enviamos la variable mensaje3
mov ah,01h ;Funcion de ingreso de caracter con impresion del mismo en pantalla
int 21h ;Interrupcion
sub al,30h ;Le restamos 30h al caracter ingresado para transformarlo en un numero
mov bl,al ;Ponemos el numero en bl
mov vary,al ;Ponemos el numero en vary
mov ax,0003h ;Funcion que limpia la pantalla
int 10h ;Interrupcion de sistema
mov ah,01h ;Funcion de captura con impresion en pantalla
int 21h ;Interrupcion
mov ax,4c00h ;Funcion de fin
int 21h ;Interrupcion
end inicio ;Fin de la function inicio
domingo, 15 de abril de 2018
Unidad 2: Arquitectura del gestor
Objetivo de la Unidad
-Conocer los diferentes tipos de memoria y procesos que nos podemos encontrar en un sistema gestor de bases de datos.-Tener conocimiento sobre el procedimiento de instalación y configuración de un DBMS.
-Saber los requisitos que pide cada DBMS y comandos generales de alta y baja.
-Poder elegir el mejor DBMS en cada situación.
2.1. Características del DBMS
Los sistemas de administración de bases de datos son usados para permitir a los usuarios acceder y manipular la base de datos proveyendo métodos para construir sistemas de procesamiento de datos para aplicaciones que requieran acceso a los datos.
Además proporcionan a los administradores las herramientas que les permitan ejecutar tareas de mantenimiento y administración de los datos.
Control de la redundancia de datos
Este consiste en
lograr una mínima cantidad de espacio de almacenamiento para
almacenar los datos evitando la duplicación de la información. De
esta manera se logran ahorros en el tiempo de procesamiento de la
información, se tendrán menos inconsistencias, menores costos
operativos y hará el mantenimiento más fácil.
Compartimiento de datos
Una de las
principales características de las bases de datos, es que los datos
pueden ser compartidos entre muchos usuarios simultáneamente,
proveyendo, de esta manera, máxima eficiencia.
Mantenimiento de la integridad
La integridad de los
datos es la que garantiza la precisión o exactitud de la información
contenida en una base de datos. Los datos interrelacionados deben
siempre representar información correcta a los usuarios.
Soporte para Control
de transacciones y recuperación de fallas
Se conoce como
transacción toda operación que se haga sobre la base de datos. Las
transacciones deben por lo tanto ser controladas de manera que no
alteren la integridad de la base de datos. La recuperación de fallas
tiene que ver con la capacidad de un sistema DBMS de recuperar la
información que se haya perdido durante una falla en el software o
en el hardware.
Independencia de los
Datos
En las aplicaciones
basadas en archivos, el programa de aplicación debe conocer tanto la
organización de los datos como las técnicas que el permiten acceder
a los datos. En los sistemas DBMS los programas de aplicación no
necesitan conocer la organización de los datos en el disco duro.
Este totalmente independiente de ello.
Seguridad
La disponibilidad de
los datos puede ser restringida a ciertos usuarios. Según los
privilegios que posea cada usuario de la base de datos, podrá
acceder a mayor información que otros.
2.1.3 Requerimientos para instalación de la base de datos
Antes de instalar
cualquier SGBD es necesario conocer los requerimientos de hardware y
software, el posible software a desinstalar previamente, verificar el
registro de Windows y el entorno del sistema, así como otras
características de configuración especializadas como pueden ser la
reconfiguración de los servicios TCP/IP y la modificación de los
tipos archivos HTML para los diversos navegadores.
2.1.4 Instalación del software de base de datos en modo transaccional
Una
base de datos en modo transaccional significa que la BD será capaz
de que las operaciones de inserción y actualización se hagan dentro
de una transacción, es un componente que procesa información
descomponiéndola de forma unitaria en operaciones indivisibles,
llamadas transacciones, esto quiere decir que todas las operaciones
se realizan o no, si sucede algún error en la operación se omite
todo el proceso de modificación de la base de datos, si no sucede
ningún error se hacen toda la operación con éxito.
Una
transacción es un conjunto de líneas de un programa que llevan
insert o update o delete. Todo aquél software que tiene un log de
transacciones (que es la "bitácora" que permite hacer
operaciones de commit o rollback), propiamente es un software de BD;
aquél que no lo tiene (v.g. D-Base), propiamente no lo es. Todo
software de base de datos es transaccional; si el software de la BD
no es "transaccional", en realidad NO es un "software"
de BD; en todo caso, es un software que emula el funcionamiento de un
verdadero software de BD. Cada transacción debe finalizar de forma
correcta o incorrecta como una unidad completa. No puede acabar en un
estado intermedio.
Se
usan las siguientes métodos :
- Begin TRans para iniciar la transacción.
- CommitTrans para efectuar los cambios con éxito.
- RollbackTrans para deshacer los cambios.
Y
depende que base de datos uses para efectuar las operaciones pero, es
la misma teoría para cualquier BD.
2.1.5 Variables de ambiente y archivos importantes para instalación
Variables
de Ambiente: Se usan para personalizar el entorno en el que se
ejecutan los programas y para ejecutar en forma correcta los comandos
del shell.
Variables de entorno declaradas por el instalador de MySQL en Windows 10:
Carpeta de archivos de MySQL en Windows 10:
A
continuación se comentan las opciones más utilizadas de la sección
mysqld (afectan al funcionamiento del servidor MySQL), se almacenan
en el archivo my.cnf (o my.ini).
basedir
= ruta: Ruta a la raíz MySQL.
console:
Muestra los errores por consola independientemente de lo que se
configure para log_error.
datadir
= ruta: Ruta al directorio de datos.
default-table-type
= tipo: Tipo de la Tabla InnoDB o, MyISAM.
flush:
Graba en disco todos los comandos SQL que se ejecuten (modo de
trabajo, sin transacción).
general-log
= valor: Con valor uno, permite que funcione el archivo LOG para
almacenar las consultas realizadas.
general-log-file
= ruta: Indica la ruta al registro general de consultas.
language:
Especifica el idioma de los lenguajes de error, normalmente esots
archivos de lenguaje, están bajo /usr/local/share.
log-error
= ruta: Permite indicar la ruta al registro de errores.
log
= ruta: Indica la ruta al registro de consultas.
long-query-time
= n: Segundos a partir de los cuales una consulta que tardes más, se
considerará una consulta lenta.
og-bin
= ruta: Permite indicar la ruta al registro binario.
pid-file
= ruta: Ruta al archivo que almacena el identificador de proceso de
MySQL.
port
= puerto: Puerto de escucha de MySQL.
skip-grant-tables:
Entra al servidor saltándose las tablas de permisos, es decir todo
el mundo tiene privilegios absolutos.
skip-networking:
El acceso a MySQL se hará solo desde el servidor local.
slow-query-log
= 0|1: Indica si se hace LOG de las consultas lentas.
slow-query-log-file
= ruta: Ruta al archivo que hace LOG de las consultas lentas.
socket
= ruta: Archivo o nombre de socket a usar en las conexiones locales.
standalone:
Para Windows, hace que el servidor no pase a ser un servicio.
user
= usuario: Indica el nombre de usuario con el que se iniciará sesión
en MySQL.
tmpdir
= ruta: Ruta al directorio para archivos temporales.
2.1.6 Procedimiento general de instalación de un DBMS (Firebird)
2.1.7 Procedimiento para Configuración de un DBMS
Para configurar nuestro DBMS podemos acceder a las siguientes pantallas, para Oracle o MySQL. El esquema de una base de datos (en inglés, Database Schema) describe la estructura de una Base de datos, en un lenguaje formal soportado por un Sistema administrador de Base de datos (DBMS). En una Base de datos Relacional, el Esquema define sus tablas, sus campos en cada tabla y las relaciones entre cada campo y cada tabla.
Oracle
generalmente asocia un 'username' como esquemas en este caso SYSTEM y
HR (Recursos humanos).
Por
otro lado MySQL presenta dos esquemas information_schema y MySQL
ambos guardan información sobre privilegios y procedimientos del
gestor y no deben ser eliminados.
Optamos
por Detailed Configuration, de modo que se optimice la configuración
del servidor MySQL.
Dependiendo
del uso que vayamos a darle a nuestro servidor deberemos elegir una
opción u otra, cada una con sus propios requerimientos de memoria.
Puede que te guste la opción Developer Machine, para
desarrolladores, la más apta para un uso de propósito general y la
que menos recursos consume. Si vas a compartir servicios en esta
máquina, probablemente Server Machine sea tu elección o, si vas a
dedicarla exclusivamente como servidor SQL, puedes optar por
Dedicated MySQL Server Machine, pues no te importará asignar la
totalidad de los recursos a esta función.
De
nuevo, para un uso de propósito general, te recomiendo la opción
por defecto, Multifunctional Database.
InnoDB
es el motor subyacente que dota de toda la potencia y seguridad a
MySQL. Su funcionamiento requiere de unas tablas e índices cuya
ubicación puedes configurar. Sin causas de fuerza mayor, acepta la
opción por defecto.
Esta
pantalla nos permite optimizar el funcionamiento del servidor en
previsión del número de usos concurrentes. La opción por defecto,
Decision Support (DSS) / OLAP será probablemente la que más te
convenga.
Deja
ambas opciones marcadas, tal como vienen por defecto. Es la más
adecuada para un uso de propósito general o de aprendizaje, tanto si
eres desarrollador como no. Aceptar conexiones TCP te permitirá
conectarte al servidor desde otras máquinas (o desde la misma
simulando un acceso web típico).
Hora
de decidir qué codificación de caracteres emplearás, salvo que
quieras empezar a trabajar con Unicode porque necesites soporte
multilenguaje, probablemente Latin1 te sirva (opción por defecto).
Instalamos
MySQL como un servicio de Windows (la opción más limpia) y lo
marcamos para que el motor de la base de datos arranque por defecto y
esté siempre a nuestra disposición. La alternativa es hacer esto
manualmente.
Además,
me aseguro de marcar que los ejecutables estén en la variable PATH,
para poder invocar a MySQL desde cualquier lugar en la línea de
comandos.
Pon
una contraseña al usuario root. Esto siempre es lo más seguro.
Si
lo deseas, puedes indicar que el usuario root pueda acceder desde una
máquina diferente a esta, aunque debo advertirte de que eso tal vez
no sea una buena práctica de seguridad.
Última
etapa, listos para generar el fichero de configuración y arrancar el
servicio.
Sólo
damos al botón de Finalizar y terminamos con la configuración del
DBMS.
2.1.8 Comandos Generales de Alta y Baja del DBMS
Una
tabla es un sistema de elementos de datos (atributo - valores) que se
organizan que usando un modelo vertical - columnas (que son
identificados por su nombre)- y horizontal filas. Una tabla tiene un
número específico de columnas, pero puede tener cualquier número
de filas. Cada fila es identificada por los valores que aparecen en
un subconjunto particular de la columna que se ha identificado por
una llave primaria.
Definiendo
cómo es almacenada la información
CREATE DATABASE se utiliza para crear una nueva base de datos vacía.
DROP DATABASE se utiliza para eliminar completamente una base de
datos existente.
CREATE TABLE se utiliza para crear una nueva tabla, donde la
información se almacena realmente.
ALTER TABLE se utiliza para modificar una tabla ya existente.
DROP TABLE se utiliza para eliminar por completo una tabla existente.
Manipulando
los datos
SELECT
se utiliza cuando quieres leer (o seleccionar) tus datos.
INSERT se utiliza cuando quieres añadir (o insertar) nuevos datos.
UPDATE se utiliza cuando quieres cambiar (o actualizar) datos
existentes.
DELETE se utiliza cuando quieres eliminar (o borrar) datos
existentes.
REPLACE se utiliza cuando quieres añadir o cambiar (o reemplazar)
datos nuevos o ya existentes.
TRUNCATE se utiliza cuando quieres vaciar (o borrar) todos los datos
de la plantilla.
Conclusiones de la unidad
Los sistemas gestores de bases de datos nacieron para facilitar el desarrollo y avance de las empresas. Sabemos también que la información crecía día a día, y conforme iba creciendo Surgieron necesidades, que eran preciso suplir para mantener a flote la Empresa en el mundo moderno donde la información es la base del éxito.
Los recursos utilizados por los SGBD van desde una red, maquina, hasta sistemas operativos, pero su funcionamiento varía muy poco dependiendo de las cualidades que tengan dichos recursos, de cualquier modo el propósito del SGBD sigue siendo el mismo: Administrar Información. Con esto en mente empezaremos la descripción del funcionamiento de los SGBD para entender y conceptualizar las ventajas del uso de estas herramientas tan útiles y versátiles para nosotros como futuros ingenieros de sistemas.
Los recursos utilizados por los SGBD van desde una red, maquina, hasta sistemas operativos, pero su funcionamiento varía muy poco dependiendo de las cualidades que tengan dichos recursos, de cualquier modo el propósito del SGBD sigue siendo el mismo: Administrar Información. Con esto en mente empezaremos la descripción del funcionamiento de los SGBD para entender y conceptualizar las ventajas del uso de estas herramientas tan útiles y versátiles para nosotros como futuros ingenieros de sistemas.
Suscribirse a:
Entradas (Atom)