Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INTRODUCCIÓN:
MySQL.
COMPONENTES:
MySQLCC: Ésta interfaz gráfica permite controlar todos los aspectos del servidor
MySQL. Permite crear bases de datos, tablas, usuarios, cambiar permisos, acceder y
cambiar la información almacenada, etc., de una forma muy intuitiva y muy fácil. Tiene
todas las opciones y tiene mejoras de la interfaz de texto mysql. Ésta aplicación debe
ser descargada independientemente.
mysql: Ésta interfaz de texto permite también controlar todos los aspectos del servidor
pero la interfaz es solamente texto. Permite leer instrucciones del usuario por medio
del teclado como también puede leer archivos que contienen instrucciones. Ésta es la
aplicación más usada por los programadores para controlar la base de datos. Son
aplicaciones de texto que funcionan en la consola.
mysqlimport permite importar datos a través de archivos de texto. Provee una interfaz
de texto para los comandos LOAD, DATA, INFILE.
mysqldump permite hacer copias o respaldos de la información almacenada para
restaurarlos en el mismo servidor o para exportarlo a otros servidores.
mysqladmin permite administrar el servidor con una interfaz gráfica y de una forma
muy sencilla
mysqlcheck permite revisar la salud de la base de datos. Permite también reparar
dichas bases si fuera necesario.
CARACTERÍSTICAS:
Cada vez que tengamos que crear una tabla que sirva para almacenar datos de
una aplicación Web, debemos poner a prueba nuestra capacidad para definir los tipos de
datos que con mayor eficiencia puedan almacenar cada dato que necesitemos guardar.
Los campos de las tablas MySQL nos dan la posibilidad de elegir entre tres grandes tipos
de contenidos:
Datos numéricos,
Datos para guardar cadenas de caracteres (alfanuméricos) y
Datos para almacenar fechas y horas.
Datos numéricos
Dentro de los datos numéricos, podemos distinguir dos grandes ramas: enteros y
decimales.
Las opciones que tenemos para almacenar datos que sean numéricos enteros
(edades, cantidades, magnitudes sin decimales), son las opciones siguientes (Figura 1):
Figura 1. Opciones para almacenar datos numéricos enteros en MySQL.
Estos tipos de datos son necesarios para almacenar precios, salarios, importes de
cuentas bancarias, etc. que no son enteros.
Tenemos que tener en cuenta que si bien estos tipos de datos se llaman "de coma
flotante", por ser la coma el separador entre la parte entera y la parte decimal, en realidad
MySQL los almacena usando un punto como separador.
La estructura con la que podemos declarar un campo FLOAT implica definir dos
valores: la longitud total (incluyendo los decimales y la coma), y cuántos de estos dígitos
son la parte decimal. Por ejemplo:
FLOAT (6.2)
La cantidad de decimales (el segundo número entre los paréntesis) debe estar
entre 0 y 24, ya que ése es el rango de precisión simple.
En cambio, en el tipo de dato DOUBLE, al ser de doble precisión, sólo permite que
la cantidad de decimales se defina entre 25 y 53.
Debido a que los cálculos entre campos en MySQL se realizan con doble precisión
(la utilizada por DOUBLE) usar FLOAT, que es de simple precisión, puede traer
problemas de redondeo y pérdida de los decimales restantes.
El máximo de dígitos totales para este tipo de dato es de 64, de los cuales 30 es el
número de decimales máximo permitido. Más que suficientes para almacenar precios,
salarios y monedas.
Datos alfanuméricos
CHAR
VARCHAR
BINARY
VARBINARY
TINYBLOB
TINYTEXT
BLOB
TEXT
MEDIUMBLOB
MEDIUMTEXT
LONGBLOB
LONGTEX
ENUM
SET
DATE
DATETIME
AAAA-MM-DD HH:MM:SS
TIME
TIMESTAMP
Un campo que tenga definido el tipo de dato TIMESTAMP sirve para almacenar
una fecha y un horario, de manera similar a DATETIME, pero su formato y rango de
valores serán diferentes.
AAAA-MM-DD HH:MM:SS
AAAA-MM-DD
AA-MM-DD
YEAR
Sin embargo, normalmente no será una buena práctica dejar que todos los
usuarios con acceso al servidor tengan todos los privilegios. Para conservar la integridad
de los datos y de las estructuras será conveniente que sólo algunos usuarios puedan
realizar determinadas tareas, y que otras, que requieren mayor conocimiento sobre las
estructuras de bases de datos y tablas, sólo puedan realizarse por un número limitado y
controlado de usuarios.
PostgreSQL.
CARACTERÍSTICAS:
COMPONENTES:
El tamaño de una página en PostgreSQL puede ser tan pequeño como 8k (por
defecto) hasta un máximo de 32k y no se permite que un tupla pueda ser más grande que
una página de tamaño.
Cuando se necesita guardar data muy grande (un video por ejemplo) la data es
comprimida y partida en pequeñas “filas” que se guardan en una tabla paralela, esto es
transparente para el usuario.
Las páginas contienen “items” los cuales apuntan a tuplas o entradas de índices
junto con metadata. Para el caso de PostgreSQL las operaciones de R/W primero se
consulta al Buffer Manager (memoria RAM) si contiene la página.
PostgreSQL posee un solo “Storage Manager” (MySql tiene 5 o más por ejemplo),
este está compuesto por varios módulos que proveen administración de las transacciones
y acceso a los objetos de la base de datos. Los módulos se programaron bajo 3
lineamientos bien claros:
Transaction System
Relational Storage
Time Management
Concurrency Control y Timestamp Management
Record Acces PostgreSQL siempre está añadiendo data, la data modificada o borrada
realmente no se modifica o se borra, las páginas donde ellas están almacenadas se
marca como “no visible” y se inserta un nuevo registro completo con un clon de toda la
data (como se maneja esto en detalle se explica más adelante). Esto hace que la base de
datos ocupe mucho espacio y afecta el “tiempo de acceso” a la data.
Existe un “tiempo de acceso” para llegar a la data (sea read o write) que depende de:
Hay que buscar que reducir este tiempo para que el acceso a la data sea más rápido.
Cada tipo de búsqueda tienen un tipo de índice adecuado para trabajarla, básicamente un
índice es un “archivo” donde esta parte de la data y estructura de una tabla con las
“search key” de búsqueda.
La forma clásica es buscar por extremos y medios (búsqueda binaria), pero esto hace que
sea altamente costosa la búsqueda, entonces es preferible organizar los índices en
estructuras más eficientes como los árboles.
Bajo MVCC las transacciones ven una imagen de la data al momento de iniciarla (para
ello la data se versiona con un timestamp), esto protege la transacción de inconsistencia
de data cuando llegan 2 operaciones de R/ W sobre la misma.
En simple el MVCC nunca modifica o elimina la data, nuevas filas de información de van
añadiendo conforme se crea o actualiza la data y se marca la anterior como “no visible”,
cuando se desea eliminar un dato igualmente se añade una fila de data y se marca como
“no visible” al mismo tiempo.
La data nunca es “visible” por otros usuarios hasta que no sea “commiteada”.
Cuando 2 transacciones trabajan sobre el mismo objeto y al menos uno de ellos incluye
operaciones de escritura entonces se produce un “conflicto”. Cuando 2 transacciones
hacen exactamente lo mismo puede que sean “serializadas” para optimizar el acceso a la
data.
Antes de que una transacción pueda ejecutar un R/W sobre un objeto en la db debe
obtener un “bloqueo”. Este bloqueo puede ser Compartido (Share) o Exclusivo
(Exclusive), estos son administrador por un “Lock Manager”.
Oracle.
En el desarrollo de páginas Web pasa lo mismo como es un sistema muy caro no está tan
extendido como otras bases de datos, por ejemplo, Access, MySQL, SQL Server etc.
COMPONENTES:
Oracle server.
Instancia Oracle
Base de datos Oracle
Procesos de usuario y de servidor
Otros archivos clave
Otros procesos
Oracle Server es la clave para la gestión de la información. Por regla general, Oracle
Server debe gestionar grandes cantidades de datos en un entorno para varios usuarios de
forma fiable, de modo que muchos usuarios puedan acceder de forma simultánea a los
mismos datos. Al mismo tiempo, es necesario que el rendimiento obtenido sea excelente.
Oracle Server también debe impedir el acceso no autorizado y proporcionar soluciones
eficaces para la recuperación en caso de fallo.
Una instancia Oracle es un medio de acceso a una base de datos Oracle por la que
siempre abre una única base de datos, la cual está formada por estructuras de procesos
en segundo plano y de memoria. Una instancia Oracle se compone de la estructura de la
memoria SGA (Área Global del Sistema) y de los procesos en segundo plano que se
utilizan para gestionar una base de datos.
La estructura física incluye tres tipos de archivos: Archivos de control, Archivos de datos y
Archivos redo log online
La estructura de la memoria de Oracle está formada por dos áreas de memoria llamadas:
SGA (Área Global del Sistema): Asignada al iniciar la instancia y componente fundamental
de una instancia Oracle y PGA (Área Global de Programas): Asignada al iniciar el proceso
de servidor.
Diferencias en la Asignación de Memoria entre Servidores Dedicados y Servidores
Compartidos.
Oracle se beneficia de varios tipos de procesos: los procesos de usuario se inician cuando
un usuario de base de datos solicita una conexión a Oracle Server. Procesos de servidor:
Se conectan a la instancia Oracle y se inician cuando un usuario establece una sesión.
Procesos en segundo plano: Se inician al iniciar una instancia Oracle.
Archivado de los Archivos Redo Log Online. Modo NOARCHIVELOG: En este modo, los
archivos redo log online se sobrescriben cada vez que se produce un cambio de log.
LGWR no sobrescribirá un grupo de archivos redo log online hasta que el punto de control
se haya terminado para ese grupo. Esto asegura que los datos validados se puedan
recuperar si se produce un error de instancia. Durante el error de instancia, sólo se pierde
el SGA. No hay pérdida de discos, sólo de memoria. Por ejemplo, un error del sistema
operativo provoca un error de instancia. Modo ARCHIVELOG: En caso de que la base de
datos se configure para que se ejecute en modo ARCHIVELOG, será necesario archivar
los grupos inactivos de archivos redo log online llenos antes de que se puedan volver a
utilizar de nuevo. Dado que los cambios efectuados en la base de datos se registran en
los archivos redo log online, el administrador de la base de datos puede utilizar la copia de
seguridad física de los archivos de datos y los archivos redo log online archivados para
recuperar la base de datos sin perder ninguno de los datos validados debido a un solo
punto de fallo, incluida la pérdida de un disco. Normalmente, se suele configurar una base
de datos de producción para que se ejecute en modo ARCHIVELOG.
Estructura Lógica. Existe la siguiente jerarquía de estructuras lógicas: Una base de datos
Oracle contiene como mínimo un tablespace. Un tablespace contiene uno o más
segmentos. Cada segmento está formado por extensiones. Una extensión está formada
por bloques lógicos. Un bloque es la unidad más pequeña para las operaciones de lectura
y escritura.
CARACTERÍSTICAS:
La base de datos de Oracle 10G Standar Edition es compatible con medianas industrias.
Esto incluye Real Aplication Clúster, para crear protección en contra de fallos de
hardware. Es muy sencillo de instalar y configurar, y viene con su propio software de
clustering.
La base de datos Oracle 10g Standar Edition, proporciona una rápida instalación sin
contratiempos tanto en un único servidor como en un ambiente de clúster.
La base de datos está pre configurada lista para ser usada en producción, completa con
espacio automatizado, administración de almacenamiento y de memoria, Back-up y
recuperación automatizada y administrador de estadísticas automatizado.
La consola de Enterprise Manager 10g data base control provee una interface web que te
enseña el estado actual de la base de datos y del ambiente del clúster y permite la
administración de la base de datos desde cualquier browser conectado a su sistema
Oracle es la base de datos número uno del mercado ya que posee la capacidad de
soportar todos los datos relacionales estándares, así como también datos oriundos como
XLM, XQuery y WebDAV, JDBC, SQLJ, ODBC.Net, OLE.Net, ODP.Net
Los procedimientos almacenados pueden ser escritos en java PL SQL o utilizando .Net
CLR Support en Oracle Database 10g Release Dos.
La base de datos Oracle Standar Edition, usa las mismas gestiones de concurrencia que
son usadas por la base de datos de Oracle Enterprise Edition, asegurando así el máximo
rendimiento para todas las cargas de trabajo.
Tipos de Tablas: Regulares. Forma comúnmente usada para almacenar los datos.
Tipo por defecto. Se tiene muy poco control sobre la distribución de las filas de la tabla en
su almacenamiento físico: Particionadas. Organizadas por Índices. Agrupadas
(clusterizadas).
Convenciones de nombres. El nombre debe ser tan descriptivo como sea posible: Hasta
30 caracteres. Debe empezar por una letra. Puede contener letras, números y caracteres
especiales ($, # Y _) Se puede documentar añadiendo comentarios: COMMENT ON
TABLE MITABLA IS ‘Este es un comentario ’; COMMENT ON COLUMN
MITABLA.COLUMN1 “Este es un comentario”.
Operaciones con las tablas. DROP TABLE… Borrar, ALTER TABLE… Modificar,
CREATE TABLE… Crear Sentencia Operación
Crear tablas. Cláusula STORAGE. Las opciones que se pueden definir en esta cláusula
son: STORAGE( INITIAL entero{K|M} NEXT entero{K|M} {MINEXTENTS entero}
{MAXEXTENTS entero|UNLIMITED} {PCTINCREASE %entero} ). Tamaño de los bloques:
Atributo Mínimo Máximo Defecto INITIAL 2 bloques * 5 bloques NEXT 1 bloque *
Modificar tablas. Para modificar tablas se utiliza ALTER TABLE. EJEMPLOS: ALTER
TABLE empleado PCTUSED 30, PCTFREE 60; ALTER TABLE empleado DROP
ANUDES COLUMNAS; Esta sentencia elimina las columnas no utilizadas. ALTER TABLE
empleado ADD CONSTRAINT salesrep_pk PRIMARY KEY (id); Añade una clave primaria
en la columna id.
Borrar tablas. Para borrar una tabla se utiliza DROP TABLE. EJEMPLO: DROP TABLE
[usuario .] empleado [CASCADE CONSTRAINTS].
Un método de autentificación. El más común es una clave o password, pero Oracle 10g
soporta otros métodos (como biometric, certificado y autentificación por medio de token).
Un Tablespace default, el cual es donde el usuario va a poder crear sus objetos por
defecto, sin embargo, esto no significa que pueda crear objetos, o que tenga una cuota de
espacio. Estos permisos se asignan de forma separada, salvo si utiliza el privilegio
RESOURCE el que asigna una quota unlimited, incluso en el Tablespace SYSTEM! Sin
embargo si esto ocurre, ud. puede posteriormente mover los objetos creados en el
SYSTEM a otro Tablespace.
Un Tablespace temporal, donde el usuario crea sus objetos temporales y hace los sort u
ordenamientos.
Un perfil o profile de usuario, que son las restricciones que puede tener su cuenta
(opcional). En Oracle existen 2 tipos de privilegios de usuarios: System y Object. Esta BD
cuenta con toda la infraestructura y características para ser implementada en una
empresa comercial.
¿Cuál de las 3 bases de datos sería utilizada para implementarla en una empresa
comercial?
Llegué a la conclusión de que las tres bases de datos cumplen con su función a la
perfección, por lo tanto, las tres son aptas para ser implementadas en una empresa
comercial.
Por ejemplo, una empresa como una tienda de autoservicio, podría utilizar la BD para
control de ventas, código de barra y almacén, mientras una empresa de viajes nacionales
utilizaría la BD para llevar un control de los horarios y destinos. Una entidad bancaria
utilizaría una BD para control de cuentas y depósitos, etc.
MySQL puede ser implementada por pequeñas y medianas empresas para las mismas
funciones antes citadas en PostgreSQL, la única diferencia es que en dado momento se
puede comprar la licencia. Pero aun así se necesita personal especializado para el
manejo de este tipo de bases de datos. Oracle es una BD intuitivo, cabe mencionar que
es un software propietario, por lo cual es necesario pagar para poder utilizarlo y con ello
vienen beneficios muy atractivos para cualquier empresa plenamente consolidada, como
lo es, el anexo de herramientas Oracle en un mismo paquete lo cual simplifica el trabajo y
la más importante de todas, siempre hay alguien responsable de la BD, siempre hay
asesoría en caso de fallos y una garantía de solución de errores. Por este hecho grandes
empresas en la actualidad, optan por el uso de esta BD, ya que sus servidores privados
que son los que les proveen el servicio, no pueden ser comparados con un servidor
gratuito de Linux, que si por alguna extraña razón falla, no habrá nadie responsable por la
falta del servicio.
BIBLIOGRAFÍA.
Celma Giménez, M. C. (2003). Bases de datos relacionales. Madrid, España: Pearson
Educación.
Johnson, J. (2000). Base de datos. Modelos, lenguajes, diseño. México : Oxford University
Press México.