Importancia de Business Intelligence


El día 5 de abril de 2011 el MSC. Sergio Valero Orea nos dio una plática sobre Business Intelligence y nos dijo que era una combinación de las herramientas que hacen un negocio más inteligente. Herramientas de inteligencia de negocios ayudan a decir a los personas más sobre el negocio, su oferta de productos, su posición en el mercado y en la mente del consumidor pero ahora también se esta utilizando para educación y los deportes.


[08-04-11]

Exposición de un cartel


El día martes estuvimos muy nerviosos ya que expusimos un cartel ante el Lic. Gonzalo Rosas Cabrera y el tema que tratamos fue el DESARROLLO DE UNA BASE DE DATOS ORIENTADO A OBJETOS y al termino de la exposición todos los equipos concluimos que las bases de datos orientadas a objetos (BDOO) son aquellas cuyo modelo de datos está orientado a objetos y almacenan y recuperan objetos en los que se almacena estado y comportamiento y  proporcionar eficiencia y sencillez  a las aplicaciones.             

                                                                                       [08-04-11]


     

¿Qué es Business Intelligence?


Es un conjunto de herramientas y estrategias para explotar los datos que se generan en una empresa, dicho de otra manera transformar los datos en información, y la información en conocimiento, de forma que se pueda optimizar el proceso de toma de decisiones en los negocios.

[08-04-11]


¿Qué es el Datawarehouse?

Es una base de datos corporativa que se caracteriza por integrar y depurar información de una o más fuentes distintas, para luego procesarla permitiendo su análisis desde infinidad de pespectivas y con grandes velocidades de respuesta.

[08-04-11]


Bases de datos OLTP y OLAP


OLTP - On-Line Transactional Processing

Los sistemas OLTP son bases de datos orientadas al procesamiento de transacciones. Una transacción genera un proceso atómico (que debe ser validado con un commit, o invalidado con un rollback), y que puede involucrar operaciones de inserción, modificación y borrado de datos. El proceso transaccional es típico de las bases de datos operacionales.

       El acceso a los datos está optimizado para tareas frecuentes de lectura y escritura. (Por ejemplo, la enorme cantidad de transacciones que tienen que soportar las BD de bancos o hipermercados diariamente).

       Los datos se estructuran según el nivel aplicación (programa de gestión a medida, ERP o CRM implantado, sistema de información departamental...).

       Los formatos de los datos no son necesariamente uniformes en los diferentes departamentos (es común la falta de compatibilidad y la existencia de islas de datos).

       El historial de datos suele limitarse a los datos actuales o recientes.


OLAP - On-Line Analytical Processing

Los sistemas OLAP son bases de datos orientadas al procesamiento analítico. Este análisis suele implicar, generalmente, la lectura de grandes cantidades de datos para llegar a extraer algún tipo de información útil: tendencias de ventas, patrones de comportamiento de los consumidores, elaboración de informes complejos… etc. Este sistema es típico de los datamarts.

       El acceso a los datos suele ser de sólo lectura. La acción más común es la consulta, con muy pocas inserciones, actualizaciones o eliminaciones.

     Los datos se estructuran según las áreas de negocio, y los formatos de los datos están integrados de manera uniforme en toda la organización.

        El historial de datos es a largo plazo, normalmente de dos a cinco años.

       Las bases de datos OLAP se suelen alimentar de información procedente de los sistemas operacionales existentes, mediante un proceso de extracción, transformación y carga (ETL).

[08-04-11]



¿Qué es Eclipse?

 En las  clases pasadas estuvimos trabajando  en la creación de una Base de Datos orientada a objetos, esta dichosa Base de Datos fue creada en Eclipse.

Eclipse es una plataforma de desarrollo open source basada en Java. Es un desarrollo de IBM cuyo código fuente fue puesto a disposición de los usuarios. En sí mismo Eclipse es un marco y un conjunto de servicios para construir un entorno de desarrollo a partir de componentes conectados (plug-in). Hay plug-ins para el desarrollo de Java (JDT Java Development Tools) así como para el desarrollo en C/C++, COBOL, etc.

[01-04-11]

Agregar software (OME)

 

1.      Ir a menú Help

2.      Clic en Install New Software

3.      Aparecerá esta ventana y dar clic en ADD

4.      Buscamos la ruta en donde descomprimimos el archivo db4o-8.0

5.      Seleccionamos carpeta OME

                     [01-04-11]

Crear un Nuevo proyecto en eclipse

 

1.      Seleccionando en el menú File       New      Project

2.      En la siguiente ventana seleccionar Java project

3.   Dar clic en siguiente

4.   En la siguiente ventana dar un nombre al proyecto

5.   Dar clic en siguiente

6.   Finalizar

[01-04-11]

 Agregar archivos a la librería

 

Estos archivos de DB4Objects nos sirven para que podamos trabajar con este tipo de Base de Datos

1.       Clic derecho sobre el proyecto

2.       Seleccionar Build Path

3.       Seleccionar Add External Archives

4.       En la ventana que aparece debemos seleccionar la ruta en donde se encuentran los archivos .Jar.

 

Para que no tengamos problemas debemos elegir la que  contiene todo

[01-04-11]

Usar OME

 

Ya después de que creamos nuestra Base de Datos orienta a objetos y que ya está funcionando podemos ver los resultados  con OME, para esto debemos hacer los siguientes pasos:

1.       Ir a menu Windows

2.       Seleccionar Open Perspective

3.       Seleccionar Other

4.       Seleccionar OME

[01-04-11]

Db4Objects

¿Qué es Db4Objects?

 

Db4o es un nombre que proviene de la expresión "Database for objects" que significa "Base de datos para objetos", se trata de un framework de persistencia que permite almacenar objetos Java o .NET de forma directa y transparente.

La compañía que produce y distribuye Db4o se llama db4objects. Db4o no es más que una base de datos orientada a objetos, de código abierto y libre con licencia GPL, que permite a los desarrolladores de Java y de .NET reducir radicalmente tiempo y costos de desarrollo y permite alcanzar niveles sin precedentes en el funcionamiento.

 

 

[viernes 25/03/11]

Principales beneficios


Disminución considerable (hasta un 90%) del costo de desarrollo de la persistencia.

Disminución del tiempo de desarrollo lo que permite salir al mercado de aplicaciones de software más rápido.

Ejecución hasta 44 veces más rápida que empleando los sistemas convencionales.

Distribución de altos volúmenes de datos sin requerir administración local.

Proceso de desarrollo y construcción de software “verdaderamente” orientado a objetos.

Construcción de arquitecturas de datos distribuidas y completamente sincronizada.

Disminución de los errores, facilidad para realizar cambios y obtención de aplicaciones de software con mejores perspectivas de mantenerse en producción con un mínimo de mantenimiento en el largo plazo.

 [viernes 25/03/11]


Simplificación del Código de desarrollo

 

Con Db4o es más fácil el manejo de una base de datos desde una aplicación, sencillamente se hace uso de las librerías provistas con el producto (.jar / .dll) desde su ambiente de desarrollo, se abre un archivo de base de datos y se almacena un objeto cualquiera, no importa cuan complejo sea, para ello requiere de sólo una línea de código.

Por ejemplo, en Java:

            Public void store (Car car) {

                        ObjectContainer db = Db40.openFile(“car.yap”);

                        db.set(car);

                        db.commit();

                        db.close();

            }

 [viernes 25/03/11]

 

Base de Datos empotrada

 

Db4o está diseñado para ser empotrado en clientes u otros componentes de software, resultando completamente invisible al usuario final. No requiere de mecanismos de instalación independientes, se presenta como una librería distribuible con muy bajo consumo de espacio.

Dado que se ejecuta en el mismo proceso de una aplicación, se tiene control completo del manejo de la memoria y puede ejecutar un veloz perfilamiento y una rápida depuración en el sistema entero.

Si una aplicación está en ejecución, la base de datos está en operación.

 [viernes 25/03/11]

 

Portabilidad y distribución en una plataforma mixta

 

Por ser una base de datos nativa Db4o permite el desarrollo de aplicaciones para ser distribuidas en diversas plataformas o en heterogéneas combinaciones de clientes Windows y servidores Java.

Db4o soporta Java’s JDK 1.1.x hasta 5.0 y ejecuta en J2EE i J2SE, también ejecuta con dialectos J2ME que soportan reflexión (CDC, Symbian, Zaurus, etc.). Dependiendo de los requerimientos del cliente puede ejecutar dialectos sin reflexión (RIM – blackberry, Palm OS, CLDC, MIDP).

También ejecuta en todas las plataformas .NET incluyendo a Mono. Todos los lenguajes .NET son soportados: C#, VB, ASP, C++.

[viernes 25/03/11]


Base de Datos Orientada a Objetos (BDOO)

 

Qué es una BDOO?

 

A finales de los 80's aparecieron las primeras BDOO, es una base de datos inteligente. Soporta el paradigma orientado a objetos almacenando datos y métodos, y no sólo datos. Está diseñada para ser eficaz, desde el punto de vista físico, para almacenar objetos complejos. Evita el acceso a los datos; esto es mediante los métodos almacenados en ella. Es más segura ya que no permite tener acceso a los datos (objetos); esto debido a que para poder entrar se tiene que hacer por los métodos que haya utilizado el programador.

 [Viernes 11/03/11]


Estructura de objetos

 

El modelo orientado a objetos se basa en encapsular código y datos en una única unidad, llamada objeto. El interfaz entre un objeto y el resto del sistema se define mediante un conjunto de mensajes.

 

Un objeto tiene asociado:

 

•    un conjunto de variables que contienen los datos del objeto. El valor de cada variable es un objeto.

 

•    Un conjunto de mensajes a los que el objeto responde.

 

•    Un método, que es un trozo de código para implementar cada mensaje. Un método devuelve un valor como respuesta al mensaje.

[ Viernes 11/03/11]


Jerarquía de clases

En una base de datos existen objetos que responden a los mismos mensajes, utilizan los mismos métodos y tienen variables del mismo nombre y tipo. Sería inútil definir cada uno de estos objetos por separado por lo tanto se agrupan los objetos similares para que formen una clase, a cada uno de estos objetos se le llama instancia de su clase. Todos los objetos de su clase comparten una definición común, aunque difieran en los valores asignados a las variables.

 

    Así que básicamente las bases de datos orientados a objetos tienen la finalidad de agrupar aquellos elementos que sean semejantes en las entidades para formar un clase, dejando por separado aquellas que no lo son en otra clase.

  [Viernes 11/03/11]


Herencia

 

Las clases en un sistema orientado a objetos se representan en forma jerárquica como en el diagrama anterior, así que las propiedades o características del elemento persona las contendrán (heredaran) los elementos alumno y maestro. Decimos que tanto la entidad Alumno y maestro son subclases de la clase persona este concepto es similar al utilizado en la de especialización (la relación ISA) del modelo E-R.

 

Se pueden crear muchas agrupaciones (clases) para simplificar un modelo así que una jerarquía (en forma gráfica) puede quedar muy extensa, en estos casos tenemos que tener bien delimitados los elementos que intervienen en una clase y aquellos objetos que las heredan.

  [Viernes 11/03/11]


Consultas orientadas a objetos

 

Los lenguajes de programación orientados a objetos requieren que toda la interacción con objetos se realiza mediante el envío de mensajes.

 

Consideremos el ejemplo de alumno-cursa-materia deseamos realizar la consulta de los alumnos que cursan la materia de Base de Datos 1, para realizar esta consulta se tendría que enviar un mensaje a cada instancia alumno

 

Así un lenguaje de consultas para un sistema de bases de datos orientado a objetos debe incluir tanto el modelo de pasar el mensaje de objeto a objeto como el modelo de pasar el mensaje de conjunto en conjunto.

  [Viernes 11/03/11]

 

Modelo de Base de Datos

¿Qué es modelo de datos?

 

Es una colección de herramientas conceptuales para describir los datos, las relaciones que existen entre ellos, semántica asociada a los datos y restricciones de consistencia.

Los modelos de datos se dividen en tres grupos:

     Modelos lógicos basados en objetos.

     Modelos lógicos basados en registros.

     Modelos físicos de datos.

[Viernes 04/03/11]


Modelos comunes de Base de Datos


•    Modelos comunes:

•    Modelo jerárquico

•    Modelo de red

•    Modelo relacional

•    Modelo entidad-relación

•    Modelo objeto-relacional

•    Modelo de objeto

  [Viernes 04/03/11]


Modelos lógicos basados en objetos

 

Se usan para describir datos en los niveles conceptual y de visión, es decir, con este modelo representamos los datos de tal forma como nosotros los captamos en el mundo real, tienen una capacidad de estructuración bastante flexible y permiten especificar restricciones de datos explícitamente. Existen diferentes modelos de este tipo, pero el más utilizado por su sencillez y eficiencia es el modelo Entidad-Relación.

 [Viernes 04/03/11]


¿Qué es una Entidad?

 

 En bases de datos, una entidad es la representación de un objeto oconcepto del mundo real que se describe en una base de datos.

 

Una entidad se describe en la estructura de la base de datos empleando un modelo de datos.

 Por ejemplo, nombres de entidades pueden ser: Alumno, Empleado, Artículo, etc.

Cada entidad está constituida por uno o más atributos. Por ejemplo, la entidad "Alumno" podría tener los atributos: nombre, apellido, año de nacimiento, etc.

 [Viernes 04/03/11]

 

Modelo Entidad-Relación

 

Denominado por sus siglas como: E-R;Estemodelo representa a la realidad a través deentidades, que son objetos  que existen y que se distinguen de otros por sus características, por ejemplo: un alumno se distingue de otro por sus características particulares como lo es el nombre, o el numero de control asignado al entrar a una institución educativa, así mismo, un empleado, una materia, etc. Las entidades pueden ser de dos tipos:

            Tangibles:

                Son todos aquellos objetos físicos que podemos ver,

              tocar o sentir.

            Intangibles:

                 Todos aquellos eventos u objetos conceptuales que no

              podemos ver, aun sabiendo que existen, por ejemplo:

              la entidad materia, sabemos que existe, sin embargo, no la

              podemos visualizar o tocar.

  [Viernes 04/03/11]


Reglas de las entidades

 Debido al problema que teníamos en el salón acerca  de cómo elaborar el diagrama del aeropuerto en UML el profesor nos dio las siguientes reglas las cuales nos ayudan en la elaboración del diagrama.

1.       Cuando entre dos entidades hay una cardinalidad de uno a muchos la de mayor rango guarda la clave de la otra.

2.       Cuando entre dos entidades hay una cardinalidad de muchos a muchos  se crea una nueva  tabla para guardar las claves de las dos.

 [Viernes 25/02/11]

 

Multiplicidades

 En las multiplicidades témenos  los mínimos y los máximos los mínimos pueden surgir desde cero y el máximo puede ser infinito o puede ser desde cero hasta un cinco  o puede ser de un uno hasta 25.

 0..*            

 0..5   

 0..25

  [Viernes 25/02/11]


Cardinalidad de las Relaciones

 El diseño de relaciones entre las tablas de una base de datos puede ser la siguiente:

 

1.    Relaciones de uno a uno: una instancia de la entidad A se relaciona con una y solamente una de la entidad B.

 

2.    Relaciones de uno a muchos: cada instancia de la entidad A se relaciona con varias instancias de la entidad B.

 

3.    Relaciones de muchos a muchos: cualquier instancia de la entidad A se relaciona con cualquier instancia de la entidad B.

  [Viernes 25/02/11]


Trigger

 Son objetos relacionados con tablas y almacenados en la base de datos que se ejecutan o se muestran cuando sucede algún evento sobre sus tablas asociadas.  Los eventos pueden ser las sentencias INSERT, DELETE, UPDATE que modifican los datos de una tabla. Los triggeres se pueden ejecutar antes (BEFORE) y/o después (AFTER) de que sean modificados los datos

El siguiente trigger fue usado en  clases para  agregar registros en una base datos que se encontraba en la computadora del profesor, la práctica era insertar registros desde nuestras computadoras.

 

delimiter//

create trigger insertar before insert on Adeudos

for each row begin

insert into Adeudos from Adeudos values(NEW.CUsuario,NEW.NUsuario,NEW.monto,NEW.FechaPago);

end//

[Viernes 25/02/11]


Pasos para usar transacciones en MySQL

1.  Iniciar una transacción con el uso de la sentencia BEGIN.

2.  Actualizar, insertar o eliminar registros en la base de datos.

3.  Si se quieren los cambios a la base de datos, completar la transacción con el uso de la sentencia COMMIT. Únicamente cuando se procesa un COMMIT los cambios hechos por las consultas serán permanentes.

4. Si sucede algún problema, podemos hacer uso de la sentencia ROLLBACK para cancelar los cambios que han sido realizados por las consultas que han sido ejecutadas hasta el momento.

 

  [Viernes 25/02/11]


Ejemplo de una transacción usando ROLLBACK

 

mysql> BEGIN;

Query OK, 0 rows affected (0.01 sec)

mysql> INSERT  INTO numeros VALUES(4);

Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM numeros;

+-------+

| campo |

+-------+

| 1 |

| 2 |

| 3 |

| 4 |

+-------+

4 rows in set (0.00 sec)

Si en este momento ejecutamos un ROLLBACK, la transacción no será completada, y los cambios realizados sobre la tabla no tendrán efecto.

mysql> ROLLBACK;

Query OK, 0 rows affected (0.06 sec)

mysql> SELECT * FROM numeros;

+-------+

| campo |

+-------+

| 1 |

| 2 |

| 3 |

+-------+

3 rows in set (0.00 sec)

 

  [Viernes 18/02/11]


Ejemplo de una transacción usando COMMIT

 

mysql> BEGIN;

Query OK, 0 rows affected (0.01 sec)

mysql> INSERT  INTO numeros VALUES(4);

Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM numeros;

+-------+

| campo |

+-------+

| 1 |

| 2 |

| 3 |

| 4 |

+-------+

4 rows in set (0.00 sec)

Una vez que hacemos un COMMIT, la transacción es completada, y todas las sentencias SQL que han sido ejecutadas previamente afectan de manera permanente a las tablas de la base de datos.mysql> COMMIT;

Query OK, 0 rows affected (0.06 sec)

mysql> SELECT * FROM numeros;

+-------+

| campo |

+-------+

| 1 |

| 2 |

| 3 |

| 4 |

+-------+

3 rows in set (0.00 sec)

 [Viernes 18/02/11]


Seguridad en MySQL

Establecer contraseña de usuario

Una instalación por defecto de MySQL es una instalación muy sencilla sin embargo, esta operación por defecto deja un buen número de agujeros de seguridad esto es una puerta de entrada a todo tipo de intrusos.

 

Una vez instalada la base de datos MySQL, para establecer la contraseña del usuario root hay que teclear desde la shell o línea de comandos de su directorio:

 

mysqladmin -u root password 'contraseña'

[Viernes 18/02/11]


Renombrar la cuenta del administrador

Es recomendable renombrar la cuenta del administrador de MySQL (root). De esta forma estaremos disminuyendo la posibilidad de éxito de un ataque de fuerza bruta contra la contraseña del administrador. Para ello deberemos ejecutar:

 

UPDATE user SET user = "nuevonombre" WHERE user = "root"; flush privileges;

 [Viernes 18/02/11]

 

Herramientas para comprobar la seguridad de MySQL

 

Herramientas que sirven para comprobar la seguridad (ambas para Linux):

 

MySQL Network Scanner                                                                                                                             

Descarga del código fuente: http://www.securiteam.com/tools/6Y00L0U5PC.html

 

MySQL Brute Force Password Hash Cracker                                                                              

Descarga del código fuente: http://www.securiteam.com/tools/5YP0H0A40O.html

 

PasswordsPro (Windows)

Descarga del programa: http://www.insidepro.com/eng/passwordspro.shtml#450

[Viernes 18/02/11]

 

 ¿Qué es una transacción en Mysql?

 Una transacción es una unidad lógica de procesamiento de la base de datos que incluye unas más operaciones de acceso a la base de datos, que puede ser inserción, eliminación, modificación, o recuperación. Las operaciones de la base de datos que forman una transacción pueden estar insertadas dentro de un programa de aplicación pueden especificarse interactivamente a través de un lenguaje de consulta de alto nivel como es SQL. Una forma de especificar los limites de las transacciones es mediante las sentencias explicitas (beging transacción, end transacción).


[Viernes 11/02/11]


Tipos de fallos en una transacción

Los fallos comúnmente se clasifican como fallos de la transacción, del sistema y de los medios. Hay varias razones por las que una transacción puede fallar mientras se esta ejecutando.

1.       Un fallo del computador (caída del sistema).

2.       Un error de la transacción o del sistema.

3.       Errores locales o condiciones de excepción detectadas por la transacción.

4.       Imposición de control de concurrencia.

5.       Fallo del disco.

6.       Problemas físicos y catastróficos.

[Viernes 11/02/11]


Estados de una transacción

Una transacción  es una unidad atómica de trabajo que se realiza por completo o bien no se efectúa en absoluto. Para fines de recuperación el sistema necesita mantenerse al tanto de cuando la transacción se inicia, termina y se confirma o aborta. El gestor de recuperación se mantiene al tanto de las siguientes operaciones:

1.       BEGIN_TRANSACTION ( inicio de la transacción )

2.       READ OR WRITE  (leer o escribir )

3.       END_TRANSACTION ( fin de la transacción )

4.       COMMIT_TRANSACTION ( confirmar transacción )

5.       ROLL BACK OR ABORT ( restaurar o abortar )

 

 [Viernes 11/02/11]


Propiedades deseables en las transacciones

 

Las transacciones atómicas deben poseer varias propiedades. Estas  se conocen como propiedades ACID y su complimiento debe estar asegurado por los métodos de control de concurrencia y de recuperación del SGBD. Las operaciones ACID son:

1.       Atomicidad: una transacción es una unidad atómica de procesamiento; o bien se realiza por completo o no se realiza por completo.

2.       Conservación de la consistencia: una transacción conserva la consistencia si su ejecución completa lleva a la base de datos de un estado consistente a otro.

3.       Aislamiento: una transacción debería parecer que se esta ejecutando de forma aislada de las demás transacciones. Es decir, la ejecución de una transacción no debería inferir con otras transacciones que se ejecuten concurrentemente.

4.       Durabilidad o permanencia: los cambios aplicados a la base de datos por una transacción confirmada deben perdurar en la base de datos. Estos cambios no deben perderse por un fallo posterior.

[Viernes 11/02/11]


El diario de un sistema

Par apodarse recuperar de los  fallos de transacciones, el sistema mantiene un diario (log) que sigue la pista a todas las operaciones de transacciones que afectan a los valores de la base de datos. El diario se mantiene en disco, de modo que no le afecta ningún tipo de fallo, mas que los de disco o  lo catastróficos. A continuación mencionaremos los tipos de entradas, denominadas registros del diario, T se refiere a un identificador de transacción.

1.       [ start_trasaction, T ]

2.       [ write_item T,X, valor _anterior, nuevo_valor]

3.       [ read_item, T,X ]

4.       [ Commit, T ]

5.       [ abort, T ]

[Viernes 11/02/11]

 

Cómo conectarse a un servidor remoto

Abrir cmd y escribir lo siguiente:

C:\users\user> Mysql --host=Tu ip -u Tu usuario -pTu contraseña

[Viernes 04/02/11]


Agregar soporte de tablas federadas a MySQL

 

Paso 1. Seguir la ruta.

C:\Program Files\MySQL\MySQL Server 5.1\my.ini

Paso 2: Editar my.ini como se muestra a continuación, guardar cambios.

 [mysqld]

Federated

Paso3: Abrir cmd como  administrador.

Paso 4: Reiniciar el servicio.

Net stop mysql---> Detiene el servicio

Net start mysql---> Inicia el servicio

[Viernes 04/02/11]


 

Show Engines

Muestra la información de estado sobre los motores de almacenamiento. Esto es particularmente útil para comprobar si

un motor de almacenamiento está soportado, o para ver cuál es el motor de almacenamiento por defecto. Esta sentencia está implementada a partir de MySQL 4.1.2.

 [Viernes 04/02/11]


 

Cómo usar las tablas Federated

 

CREATE TABLE test_table (

    id     int(20) NOT NULL auto_increment,

    name   varchar(32) NOT NULL default '',

    other  int(20) NOT NULL default '0',

    PRIMARY KEY  (id),

    KEY name (name),

    KEY other_key (other)

)

ENGINE=MyISAM

DEFAULT CHARSET=latin1;

 

A continuación, cree una tabla federated en el servidor local para acceder a la tabla remota:

 

CREATE TABLE federated_table (

    id     int(20) NOT NULL auto_increment,

    name   varchar(32) NOT NULL default '',

    other  int(20) NOT NULL default '0',

    PRIMARY KEY  (id),

    KEY name (name),

    KEY other_key (other)

)

ENGINE=FEDERATED

DEFAULT CHARSET=latin1

COMMENT='mysql://root@remote_host:9306/federated/test_table';

[Viernes 04/02/11]


 

Sentencia Flush

 

FLUSH PRIVILEGES: Recarga los privilegios desde las tablas de concesiones en la base de datos 'mysql'.


[Viernes 04/02/11]


 

 

Prompts en MySql

Un comando no necesita ser escrito en una sóla línea, así que los comandos que requieran de varias líneas no son un problema. mysql determinará en dónde finaliza la sentencia cuando encuentre el punto y coma, no cuando encuentre el fin de línea.

En la siguiente tabla se muestran cada uno de los prompts que podemos obtener y una breve descripción de su significado para mysql:

 

Prompt

 

Significado

 

mysql>

 

Listo para una nueva consulta.

 

->

 

Esperando la línea siguiente de una consulta multi-línea.

 

'>

 

Esperando la siguiente línea para completar una cadena que comienza con una comilla sencilla ( ' ).

 

">

 

Esperando la siguiente línea para completar una cadena que comienza con una comilla doble ( " ).

 

[ Viernes 28/01/11]


CREANDO UN USUARIO NUEVO Y ASIGNANDO PERMISOS A UNA BASE DE DATOS USANDO GRANT

 

grant es un comando en mysql que nos ayuda a agregar permisos a un usuario a una base de datos deseada, a demas si el usuario no existe grant nos ayuda a crear dicho usario que deseemos.

A continuación se presenta la linea de ejemplo para la asignacion de todos los permisos a un usuario para una base de datos deseada:

GRANT ALL PRIVILEGES ON tu_db.* to 'tu_usuario'@'red_de_acceso' identified by 'tu_password'

donde:

tu_db = es el nombre de la base de datos a la que se le dara permisos al usuario, [.*] significa que se le dara los permisos al usuario de todas las tablas dentro de la base de datos.

 

tu_usuario = el nombre del usuario existente o a crear al que se le daran los permisos.

red_de_acceso = es por donde pretende acceder dicho usuario anteriormente mencionado ejem. si el usuario accede mediante la misma pc donde esta el administrador de base de datos seria '127.0.0.1', pero si deseas especificar otra red lo puedes hacer o poner el comodin '%' que significa que puede accederce de cualquier red.

  [Viernes 28/01/11]


QUE SON LAS BASES DE DATOS DISTRIBUIDAS

 

Una base de datos distribuida es el conjunto de 2 o mas bases de datos que trabajan en conjunto y que se unen logicamente en un punto, las bases de datos distribuidas son administradas por los Administradores de bases de datos distribuidas y que asu vez estas estan compuestas por software que son los DTM y los DBM, en los cuales el DTM es el encargado de recibir las peticiones de aplicaciones de consulta y traducirlas para enviar instrucciones entendibles por los DBM para poder enviar la informacion necesaria.

Se dice que no es muy recomendable usar este tipo de bases de datos por la complejidad que implican a demas es muy costosa su implementacion.

 [ Viernes 28/01/11]


DROP INDEX

 

Para eliminar un índice debemos emplear la sentencia DROP INDEX.

DROP INDEX .;

  [Viernes 28/01/11]


CREAR VISTA

 

 use codigos;

CREATE VIEW menor AS select CEstados,dEstado, count(municipios.dMunicipio) as Municipios_por_estado from Estados left join Municipios on estados.cestados= municipios.estado group by CEstados,dEstado ;

[ Viernes 28/01/11]


WHERE  Y  ORDER BY

 

La cláusula WHERE, si esta presente, selecciona combinaciones individuales de las filas procedentes de las tablas fuente que participan en los resultados de la consulta. Las subconsultas en la clausula WHERE se evalúa para cada fila individual.

Lacláusula ORDER BY específica que los resultados de  la consulta deben ser ordenados en sentido ascendente o descendente, basándose en los valores de una o más columnas.

[ Viernes 21/01/11]


 

PRINCIPALES SENTENCIAS DE SQL

Definición de datos

CREATE TABLE   Añade una nueva tabla a la base de datos.

DROP TABLE*    Suprime una tabla de la base de datos.

ALTER TABLE*   Modifica la estructura  de una tabla existente.

CREATE VIEW*  Suprime una lista de la base de datos.

CREATE INDEX* Construye un índice para una columna.

DROP INDEX*   Suprime el índice para la columna.

CREATE  SYNONYM* Define un alias para un nombre de tabla.

DROP SYNONUM*  Suprime un alias para un nombre de tabla.

COMMENT* Define comentarios para una tabla.

[Viernes 21/01/11]


ELIMINACIÓN DE FILAS DUPLICADAS (DISTINCT)

  

Para eliminar valores duplicados, la palabra clave DISTINCT se incluye delante del argumento de la función de columna, inmediatamente después del paréntesis abierto.

¿Cuántos títulos diferentes tienen los vendedores?

SELECT COUNT (DISTINCT TITULO)

      FROM REPVENTAS

COUNT (DISTINCT  TITULO)

¿Cuánto oficinas de ventas tienen vendedores que superan sus cuotas?

SELECT COUNT (DISTINCT OFICINA_REP)

    FROM REPVENTAS

WHERE VENTAS > COUTA

COUNT   (DISTINCT OFICINA_REP)

[Viernes 21/01/11]

 

 

MÉTODO PARA LA IMPORTACIÓN DE DATOS

 

Hola a todos, en esta ocasión aprenderemos una forma de seleccionar datos de una tabla de Excel  e importarlos a una tabla de una base de datos de MySQL.

 Tenemos un archivo .csv el cual contiene los campos que vamos a importar, para esto primero debemos seleccionar dichos campos. Para hacer esto usaremos la siguiente fórmula en Excel: "insert into municipios values ("& G2 &",6,' "& D2 & " ');"

 Bien lo que le decimos a Excel con esta  fórmula es lo siguiente:

 1.-   "insert into municipios values  esto es un comentario para guiarnos por ahora pero que nos servirá al usar script en MySQL.

 2.-   "& K2 &"lo que hacemos con esto es concatenar  el registro que se encuentra en K2 que es el código del municipio. 

 Nota: basta con seleccionar la celda de la columna, cuando copiemos y peguemos este  cambiará de valor y se incrementara de forma automática.

 3.-  ,6, este registro es la clave del estado así que siempre será la misma

 4.-  ' "& E2 & " '  Lo que hacemos con este fragmento de fórmula es concatenar el registro que tenemos en la celda que  en este caso es el nombre del municipio esta es la razón  por la cual agregamos comillas simples por que el registro será  de tipo cadena.

 5.-  );" cerramos el paréntesis y cerramos la instrucción

 Como resultado obtendremos la siguiente información:

 "insert  into municipios values ("& 106 &",6,' "& Toluca& " ');"

 Para poder copiar esta fórmula en todas las celdas basta con seleccionar la celda donde se encuentra la formula y seleccionar las celdas en donde queremos copiar la misma fórmula y damos clic en  copiar celdas.

 Nos aseguramos que no haya datos duplicados, en el menú datos y quitar duplicados.

Ahora ya tenemos todos los datos que vamos a insertar en nuestra tabla de MySQL. Para poder hacer esto basta con copiar y pegar  en el editor de sscrpts de MySQL.

 

[ Viernes 21/01/11]


 

TIPOS DE DATOS FECHA

 

 

Tipo de Campo

Tamaño de Almacenamiento

DATE

3 bytes

DATETIME

8 bytes

TIMESTAMP

4 bytes

TIME

3 bytes

YEAR

1 byte

 

 

 

 

 

 







[Viernes 21/01/11]



Mysql query


 Mysql_query () envía una sentencia a la base de datos activa en el servidor asociado al identificador de enlace. Si no es especificado un identificador_de enlace, se asumirá el último enlace abierto. Si no hay un  enlace abierto, la función intenta establecer un enlace como si se llamara  función mysql_connect () sin argumentos, y lo utiliza.

 La sentencia no puede terminar por punto y coma.

 Mysql_query () devuelve TRUE (no_cero) o FALSE para indicar si la sentencia se ha ejecutado correctamente o no. Un valor TRUE significa que la sentencia era correcta y pudo ser ejecutada  en el servidor. No indica nada sobre el número de fila devueltas. Es perfectamente posible que la sentencia se ejecute correctamente pero que no devuelve ninguna fila.

 

[Viernes 14/01/11]


FUNCIONES DE AGREGADO

 

AVG               Utilizada para calcular el promedio de los valores de un campo determinado 

COUNT          Utilizada para devolver el número de registros de la selección.

SUM               Utilizada para devolver la suma de todos los valores de un campo determinado.

MAX              Utilizada para devolver el valor más alto de un campo especificado.

MIN                 Combina en un único registro los registros los valores idénticos en la lista de campos especificada.

GROUP  BY   Combina en un único registro los registros los valores idénticos en la lista de campos especificada.

HAVING         Elimina los grupos para los cuales la expresión da como resultado FALS o DESCONOCIDO.


[Viernes 14/01/11]


JOIN


El join nos sirve para relacionar diferentes tablas en donde se consiga una coincidencia en una relación en especifico, este es mucho mas rapido que la igualación que común mente se usa.



[Viernes 14/01/11]


Renombrar una columna de resultado en un select


Para renombrar una columna en un select podemos usar la sentencia AS que nos permite para renombrar la columna de resultado, esto resulta muy útil al momento de crear funciones de agregado y mostrarlos con un nombre bonito!! o al menos acorde al resultado que muestra.


[Viernes 14/01/11]



Consulta de clase

 

Use codigospostales; Select  A.dAsentamiento.A.CP,             TA.dTipoAsentamiento,M.dMunicipio,E.dEstado From Asentamiento A, tipoasentamiento TA,            Municipios M, Estado E Where RA. cTipoAsentamiento = A.TipoAsentamiento,            C TipoAsentamiento A.Municipios = M.cMunicipios and A.Estado = E,cEstados

la anterior consulta nos fue proporcionada por el profesor la cual era la solución correcta para el problema No.8 la cual se resolvía comparando las llaves foráneas entre el asentamiento y las tablas municipios, tipoasentamiento, estado.


[Viernes 14/01/11}