miércoles, 5 de septiembre de 2012


Investigar los siguientes 

  • motor de base de datos
Es un conjunto de Algorimos que permite la Gestion y Optimización de Base de datos.
Prudentemente el Motor de bases de datos utiliza instrucciones especificas para la:
A)Busqueda de información
B) Añadir, Borrrar, Modificar : Tablas
C) Añadir, Borrar, Modificar : Campos
D) Etc.

La mayoria de los motores Basan sus busquedas por lo que se le llama I.D. (Identificadores) Ya que se facilita la Ordenacion por medio del metodo Burbuja.
  • MyISAM
Es la tecnología de almacenamiento de datos usada por defecto por el sistema administrador de bases de datos relacionales MySQL. Este tipo de tablas están basadas en el formato ISAM pero con nuevas extensiones. En las últimas versiones de Mysql, el motor InnoDB está empezando a reemplazar a este tipo de tablas por su capacidad de ejecutar transacciones de tipo ACID y bloqueo de registros e integridad referencial
  • InnoDB
Es una tecnología de almacenamiento de datos de código abierto para la base de datos MySQL, incluido como formato de tabla estándar en todas las distribuciones de MySQL AB a partir de las versiones 4.0. Su característica principal es que soporta transacciones de tipo ACID y bloqueo de registros e integridad referencial. InnoDB ofrece una fiabilidad y consistencia muy superior a MyISAM, la anterior tecnología de tablas de MySQL, si bien el mejor rendimiento de uno u otro formato dependerá de la aplicación específica.
  • Transacciones tipo ACID
Expresa la función que las transacciones desarrollan en aplicaciones críticas para una misión. Acuñado por los pioneros en el procesamiento de transacciones, el acrónimo ACID responde a los términos atomicidad (atomicity), coherencia (consistency), aislamiento (isolation) y permanencia (durability).
Estas propiedades garantizan un comportamiento predecible, reforzando la función de las transacciones como proposiciones de todo o nada diseñadas para reducir la carga de administración cuando hay muchas variables.

Atomicidad 
Una transacción es una unidad de trabajo en la que se produce una serie de operaciones entre las instrucciones BEGIN TRANSACTION y END TRANSACTION de una aplicación. Una transacción se ejecuta exactamente una vez y tiene carácter "atómico" (de subdivisión), es decir, el trabajo se realiza en su totalidad o no se realiza en ningún caso. La atomicidad elimina la posibilidad de procesar un subconjunto de operaciones.

Coherencia 
Una transacción es una unidad de integridad porque mantiene la coherencia de los datos, transformando un estado coherente de datos en otro estado de datos igualmente coherente.
La coherencia requiere que los datos enlazados mediante una transacción se mantengan en términos de semántica. Una parte de la responsabilidad para mantener la coherencia recae en el programador de la aplicación que debe asegurarse de que ésta exija todas las restricciones de integridad conocidas. 

Aislamiento 
Una transacción es una unidad de aislamiento, permitiendo que transacciones concurrentes se comporten como si cada una fuera la única transacción que se ejecuta en el sistema. Una transacción nunca debe ver las fases intermedias de otra transacción.
Las transacciones alcanzan el nivel máximo de aislamiento cuando se pueden serializar. Como un alto grado de aislamiento puede limitar el número de transacciones concurrentes, algunas aplicaciones reducen el nivel de aislamiento en el intercambio para mejorar el rendimiento.

Permanencia 
Una transacción también es una unidad de recuperación. Si una transacción se realiza satisfactoriamente, el sistema garantiza que sus actualizaciones se mantienen aunque el equipo falle inmediatamente después de la confirmación. El registro especializado permite que el procedimiento de reinicio del sistema complete las operaciones no finalizadas, garantizando la permanencia de la transacción.

  • Diferencia entre MyISAM y InnoDB
·                * InnoDB se recupera de un problema volviendo a ejecutar sus logs, mientras que MyISAM necesita repasar todos los índices y tablas que hayan sido actualizados y reconstruirlos si esos cambios no han sido escritos en disco. El primer proceso requiere más o menos el mismo tiempo siempre, mientras que el segundo aumenta con el tamaño de la base de datos.
·                   MyISAM deja al sistema operativo la tarea de hacer la caché de las lecturas y escrituras de los registros, mientras que InnoDB realiza él mismo la tarea, combinando cachés de registro y de índice. InnoDB no envía directamente los cambios en las tablas al sistema operativo para que las escriba, lo que puede hacerlo mucho más rápido que MyISAM en ciertos escenarios.
·                 InnoDB almacena físicamente los registros en el orden de la clave primaria, mientras que MyISAM los guarda en el orden en que fueron añadidos. Cuando la clave primaria se escoge de acuerdo con las necesidades de las consultas más habituales esto puede suponer una mejora sustancial del rendimiento. Por otro lado, si los datos se insertan en un orden que difiera sustancialmente del orden de la clave primaria, se obliga a InnoDB a reordenar mucho los datos para mantenerlos en el orden adecuado.
·              InnoDB no dispone de la compresión de datos de la que disfruta MyISAM, de modo que tanto el espacio en disco como la caché en la memoria RAM pueden ser más grandes. Este problema se ha reducido en MySQL 5.0, reduciéndolo en aproximadamente un 20%.
·                  Cuando opera con transacciones ACID, InnoDB debe escribir en disco al menos una vez por cada transacción, aunque puede combinar las escrituras de varias inserciones concurrentes. Para los discos duros típicos, esto supone un límite de aproximadamente 200 transacciones por segundo, por lo que aumentarlas exige controladores de disco con caché de escritura y sistema de alimentación ininterrumpido para mantener la integridad. InnoDB ofrece diversos modos de funcionamiento que reducen este efecto, pero conllevan una pérdida de integridad transaccional. MyISAM no tiene ese problema porque no soporta transacciones.

  • Como habilitar MyISAM e InnoDB en Mysql
Para configurar los ficheros de espacio de tablas de InnoDB, debe utilizarse la opción innodb_data_file_pathen la sección [mysqld] del fichero de opciones my.cnf. En Windows, se puede emplear en su lugar my.ini. El valor de innodb_data_file_path debería ser una lista de una o más especificaciones de ficheros. Si se incluirá más de un fichero de datos, habrá que separarlos con punto y coma (';'):

Crear su base de datos  y tablas(DDL) e insertar datos (DML)


  1. Ingrese a Mysql  (mysql -hlocalhost -uroot -p) recuerde estar en el directorio bin.
  2. crear base de datos con el nombre (inventario,biblioteca,etc.)
  3. salga de mysq
  4. DML para su base de datos  en un archivo tipo texto, utilize notepad  o word pad, grabe con la extensión nombre.sql


5.para iniciar mysql y conectarse a la base de datos siga el siguiente ejmplo ( cambie empresa por el nombre de su base de datos y empresa.sql por el nombre que uso en el archivo texto para  crear sus tablas) el archivo debe estar en el directorio mysql/bin 
6. en el promt de mysql  escriba  
     SELECT  * FROM nombre_tabla;
  donde nombre_tabla es el nombre de su tabla



problema #3
 Problema de diseño de bases de datos
 Supongamos que se nos ha encargado el desarrollo de un sistema de información para 
una galería de arte. Tras analizar el problema, hemos obtenido la siguiente lista de requisitos:  
• El sistema ofrecerá información acerca de las distintas exposiciones que estén programadas 
(título, descripción, fecha de inauguración y fecha de clausura). 
• En cada exposición se expondrán obras de distintos artistas. Cada obra vendrá identificada 
por un número de registro. El sistema informará acerca del título, artista, estilo y precio de 
salida de cada una de las obras de arte expuestas en las exposiciones. 
• Cada obra tiene un propietario, que suele ser el artista que la creó, aunque esto no es 
necesariamente así. 
• Las obras expuestas se pueden comprar haciéndole ofertas a sus propietarios. Al término de 
la exposición, el propietario de una obra puede vender la obra a la persona que haya 
realizado la mejor oferta. 
NOTA: Es esencial que en la base de datos no se almacenen datos de forma redundante, para lo 
cual hemos de tener en cuenta que una misma persona puede ser propietaria de una obra de arte 
y realizar ofertas para comprar otras obras de arte. De hecho, incluso puede ser responsable de 
la creación de alguna de las obras expuestas. 

DIAGRAMA:
TABLAS:

CODIGO:
Exposicion
Num_exposicion
INT, primary key
Titulo
VARCHAR(25)
Fecha_inaguracion
DATE
Fecha_clausura
DATE
Descripcion
VARCHAR(50)

CREATE TABLE exposicion(
Num_exposicion INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
Titulo VARCHAR(25) NOT NULL,
Fecha_inaguracion DATE NOT NULL,
Fecha_clausura DATE NOT NULL,
Descripcion VARCHAR(50));

Obra
Num_obra
INT, primary key
Titulo
VARCHAR(30)
Estilo
VARCHAR(20)
Precio_salida
DECIMAL(9,2)
Num_artista
INT, foreign key
CREATE TABLE obra(
Num_obra INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
Titulo VARCHAR(30) NOT NULL,
Estilo VARCHAR(20) NOT NULL,
Precio_salida DECIMAL (9,2) NOT NULL,
Num_artista INT FOREIGN KEY (num_artista) REFERENCES artista (num_artista) ON DELETE CASCADE );

Propietario
Num_propietario
INT, primary key
Nom_propietario
VARCHAR(20)
Apell1_propietario
VARCHAR(20)
Apell2_propietario
VARCHAR(20)
CREATE TABLE propietario(
Num_propietario INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
Nom_propietario VARCHAR(20) NOT NULL,
Apell1_propietario VARCHAR(20) NOT NULL,
Apell2_propietario VARCHAR(20) NOT NULL,