lunes, 23 de mayo de 2011



WEB 2.0 Y REDES SOCIALES
"Generando clientes a través de las redes sociales"
Jueves 26 de Mayo de 2011

Justificación


La web 2.0 es una plataforma de aplicaciones que ofrece a toda persona o empresa que tenga acceso a internet la posibilidad de contar con un lugar virtual en el ciberespacio en el que podrá establecer contacto con prospectos y clientes.

Esta plataforma, también conocida como redes sociales representa una opción muy atractiva para que una persona o empresa pueda estar más cerca que nunca de sus clientes. Hoy la tecnología hace posible que estas soluciones puedan ponerse en operación con una inversión mínima. ¿Por qué no participar en este nuevo espacio de relación con los clientes? ¿te interesa saber cómo hacerlo?

El Taller Web 2.0 y Redes Sociales tiene como finalidad el que los participantes cuenten con las aplicaciones básicas de una plataforma 2.0 y puedan aprovechar esta plataforma para crecer de manera modular su presencia en el ciberespacio, posicionarse con prospectos y clientes y crear una estrategia de comunicación 2.0 dirigida a los clientes.

Objetivo General

Este curso práctico tiene como objetivo brindarle el conocimiento y las herramientas necesarias para la implementación de su plataforma 2.0. Los beneficios que estas herramientas ofrecen son el incremento de la productividad, la reducción de costos y el tener una mayor presencia en la red.

Una vez finalizado el programa, el participante sabrá:



  • Cómo inscribirse y participar en una red social

  • Cómo usar una red social como herramienta de mercadeo

  • Cómo tener su propia red social
Contenido



  1. Introducción: ¿Qué es el Social Media? (Lectura Branding Personal)


  2. ¿Cómo actuar en medios sociales? (Lectura de Negocios)


  3. Mapa de las redes sociales (Caso de Negocios)


  4. Facebook



    1. Introducción a Facebook


    2. Conceptos básicos: usuarios, grupos, páginas y comunidades


    3. Configuración de tu Facebook


  5. Twitter



    1. Introducción a Twitter


    2. Configuración y puesta en marcha


    3. Diccionario de Twitter: glosario de términos


    4. Uso comercial de Twitter: ¿cómo puede ayudar a tu negocio?


    5. Configuración de tu Twitter


  6. Página web - Google



    1. Configuración de tu página con Google


    2. ¿Qué es un blog?


    3. Creación de blogs


    4. Incorporar mapas a tu página con googlemaps


  7. Personal branding en las redes sociales



    1. Integrando Google, Facebook y Twitter como tu Plataforma 2.0


    2. La imagen de tu Plataforma 2.0


    3. Mejores prácticas


  8. Conclusiones



    1. Siguientes pasos


    2. La ruta del crecimiento (evolución en el tiempo de tu Plataforma 2.0)
Inversión / Ubicación

Fecha:

Jueves 26 de Mayo de 2011

Inversión:

El precio del Taller es de $1,450.00 pesos más I.V.A.

El precio incluye estacionamiento, servicio de café, lunch y material de trabajo (versión electrónica)

Duración:

9 horas

Agenda:

8:30 - 9:00 horas Registro
9:00 - 14:00 horas Sesión de Trabajo
14:00 - 15:00 horas Lunch
15:00 - 19:00 horas Sesión de Trabajo

Ubicación:

Av. Insurgentes Sur 2047 Esquina Cracovia Edificio "B",
Colonia San Ángel,
Delegación Álvaro Obregón,
C.P. 01000

http://www.hecop.com.mx/#/localizacion/

Expositores:

Ing. Jacob Avila Camacho (Director Ihualia Marketing) - Consultor en Marketing Viral
Ing. Arturo Martínez Rueda (Director Innovación con Valor) - Consultor de Negocios y Tecnología

Nota:

Los participantes deberán traer lap top con tarjeta de red inalámbrica para poder trabajar durante el Taller en la configuración de su Plataforma 2.0

Informes e Inscripciones:

Enviar e-mail a: arturomartinezrueda@gmail.com


jacob@ihualia.com

Teléfono
:
Nextel (55) 3627 - 8747
(55) 3627 - 8747
(55) 3627 - 8747
Arturo H. Martínez Rueda



sábado, 9 de octubre de 2010

Auto Mass Traffic

Auto Mass Trafic es un software que te permite generar tráfico para tu sitio web de una forma fácil y automatizada.

Mientras más trafico llega a tu sitio web, más oportunidades de generar nuevos clientes, ya que al obtener grandes canditades de prospectos, tu labor se concentrará en convertir esos prospectos en clientes.

De manera automatizada puedes llegar a obtener hasta 800 mil visitas en tu sitio web, más de lo que podrías generar incluso con Google Adwords.


Comparación de Tráfico



Este software es muy fácil de utilizar, de implementar y de llevar a la práctica para obtener resultados inmediatos.

El creador dice:

WARNING: This Volume Of Traffic and Money Can NOT Be Achieved Using Google™, Yahoo™, MSN™, Banner Ads, Social Bookmarking, Social Networking, FaceBook™, Adwords™, SEO, Blogging, Article Writing, Media Buys, Classified Ads, Twitter™, Link Building, eMail Drops, Adswaps And Joint Ventures COMBINED!!!

El volúmen de tráfico y la cantidad de dinero No pueden ser logrados utilizando únicamente Google™, Yahoo™, MSN™ Banners, redes sociales, bloging, articulos en boletines, anuncios clasificados, emails, etc. combinados.

Ya que todo esto es tedioso, complicado y caro, además de estresante.

Con tan solo tres pasos, puedes lograr tráfico impresionante:


3 pasos



Es un hecho, se necesita tráfico para poder generar dinero en línea y con este software puedesligrarlo fácilmente

Auto Mass Traffic

domingo, 16 de marzo de 2008

FileMaker: Diseño de bases de datos parte 4

En el artículo anterior concluimos definiendo la estructura de la base de datos que vamos a crear ahora en FileMaker y nos quedaron las tablas de las siguiente manera:


Sin embargo, antes de construir la base de datos en FileMaker, debemos considerar los casos de uso de la aplicación.

Los casos de uso describen que es lo que hará la aplicación y no tanto como lo hará, eso viene después, de momento necesitamos entender que haremos con la aplicación, como vamos a utilizar la aplicación y eso también nos dará una idea de las interfaces de usuario que deberemos diseñar, así como el esquema de operación de la misma.

¿Cuales son los casos de uso de la aplicación?

Catálogos.
Los primero tres casos de uso nos permitirán mantener los catálogos de la aplicación, estos catálogos serán: Nacionalidades, Turistas y Recorridos Turísticos.

Por lo tanto debemos diseñar una presentación, que permita la creación y modificación de registros para las tablas Nacionalidad, Recorrido y Turista, así como una presentanción quizas para listados en cada una de esas tablas.

En la presentación para el Alta de turistas se deberá incorporar un portal que permita la creación de registros relacionados hacia la tabla Teléfono.

Para la tabla Telefono, no es necesario crear una presentación, ya que la navegación en el sistema será desde la tabla Turista, así que podemos eliminar la presentación que el sistema crea por defecto para la tabla Telefono.

Dentro de la presentación de captura en la tabla Turista, adicionalmente a colocar un portal para los teléfonos, creamos una lista de valores para el campo idNacionalidad y a esa lista de valores, le asignamos el campo nacionalidad de la tabla Nacionalidad.

Para las tablas Nacionalidad, Turista y Recorridos, podemos crear presentaciones para captura, consulta y listados.

Funcionalidad de recorridos turísticos.
El último caso de uso lo hemos llamado: "Alta de Recorridos Realizados", esto es completamente distinto a lo que se refiere el caso de uso sobre Alta de Recorridos, este último es el manejo del catálogo de recorridos turísticos que ofrece la empresa y el primero se refiere a los recorridos que realiza un turista.

Estos recorridos realizados serán las visitas realizadas por los turistas dentro de los recorridos turísticos, razón por la cual se creo la tabla Realiza, que en realidad son las visitas llevadas a cabo en una fecha dada y hacia un recorrido determinado.

En esta tabla, "Realiza", se guardará un registro por cada turista que visita un mismo recorrido y en la misma fecha, es decir, Si el recorrido 1 es llevado a cabo por 20 turistas, entonces la tabla Realiza tendrá para este caso 20 registros, uno por cada turista, pero los 20 registros tendrán el mismo recorrido y la misma fecha. Si quisieramos mantener un catálogo de visitas o recorridos realizados, uno por cada recorrido en un fecha determinada, dentro del cual existen varios turistas, entonces debemos hacer un cambio en el diseño.

A estas alturas del diseño y una vez que empezamos a analizar los casos de uso, nos damos cuenta que nos hace falta considerar esta opción, por eso comentamos lineas arriba que aún no era prudente empezar a crear las tablas en FileMaker.

Realiza será una visita, por lo que se requiere descomponer la relación entre Realiza y Turista, la cual es una relación todavía de muchos a muchos, por lo tanto al realizar dicha descomposición creamos una tabla intermedia entre estas dos tablas que llamaremos Turista en Recorrido, a la cual pasamos el idTurista de la tabla Realiza y para lograr la integridad referencial adicionamos un idVisita en la tabla realiza que será autonuérico y que nos permitira establecer la relación con la tabla Turista en Recorrido quedando de la siguiente manera:


Como observamos en la figura, se creo una tabla adicional llamada Turista en Recorrido, la cual contiene dos campos: idVisita e idTurista, adicionalmente se modifcó la tabla Realiza eliminando el campo idTurista y agregando un campo llamado idVisita, el cual será autonumérico, para establecer la relación entre Realiza y Turista en Recorrido, de esta manera podremos colocar un portal en la presentación de Realiza para mostrar los registros relacionados de la tabla Turista en Recorrido, esta relación deberá permitir crear y borrar registros relacionados en la tabla Turista en Recorrido.

Ahora si tenemos el diseño final de la base de datos, por que para crear las tablas en FileMaker solo tenemos que establecer las consideraciones finales para los campos.

El siguiente punto es tomar en cuenta las consideraciones para cada uno de los campos en totas las tablas, así como la creación de las relaciones entre tablas.






Una vez creadas las tablas (Nacionalidad, Telefono, Turista, Recorrido, Realiza y Turista en Recorrido) con estas consideraciones en los campos, establecemos las relaciones entre ellas.

Parra ello, arrastramos desde la tabla Telefono, en esta relación se activarán las casillas para crear registros relacionados y eliminar registros relacionados en la tabla Telefono desde la tabla Turista, para la siguiente relación arrastramos el campo idTurista hacia el campo idTurista en la tabla Turista, el campo idNacionalidad desde la tabla Turista hacia el campo idNacionalidad en la tabla Nacionalidad.

El campo idTurista desde la tabla Realiza hacia el campo idTurista en la tabla Turista en Recorrido, esta relación debe permitir el borrado y la creación de registros relacionados en la tabla Turista en Recorrido desde la tabla Realiza, adicionalmente arrastramos el campo numero desde la tabla Realiza hacia el campo numero en la tabla Recorrido.

Por último arrastramos el campo idTurista de la tabla Turista en Recorrido hacia el campo idTurista en la tabla Turista.

Los valores de los campos idTurista en la tabla turista, así como número en la tabla Recorrido y el campo idNacionalidad de la tabla Nacionalidad serán asignados automáticamente por el sistema.

Finalmente, para dar de alta a los turistas que realizan recorridos, creamos una presentación para la tabla Realiza, en ella establecemos una lista de valores para el campo numero en el que asignamos el campo numerode la tabla Recorrido, de esta forma podemos escoger el recorrido turístico y mostrar en la presentación su nombre, para ello no se requiere un portal, simplemente colocar los campos relacionados de la tabla Recorrido en la presentación de la tabla Realiza.

Posteriormente colocamos un portal con los registro relacionados de la tabla Turista en Recorrido, aunque en este portal colocamos los campos de la tabla Turista.

Adicionalmente, si deseamos visualizar que recorridos ha hecho un turista, entonces, en la presentación de consulta para la tabla Turista podemos colocar un portal asigando a la tabla Realiza, pero en el colocamos campos de la tabla Recorrido, de esa forma podemos tener un historia de los recorridos que ha realizado un turista.

El archivo con el ejemplo que desarrollamos en estos cuatro artículos lo pueden descargar para su revisión en la siguiente dirección:

Turista.fp7

FileMaker: Diseño de bases de datos parte 3

En la segunda parte del artículo finalizamos con la transformación al modelo relacional, es decir, diseñando las tablas para la base de datos. Dichas tablas se obtivieron en base al modelo entidad-relación y de acuerdo con las reglas de transformación descritas en el artículo anterior.
Ahora necesitamos analizar las dependencias que existen entre los atributos o campos de las tablas y de esta forma poder normalizar dichas tablas.

La normalización implica tratar de eliminar al máximo la redundancia de datos que pudiera presentarse al construir las tablas ya transformadas y empezar a almacenar datos en ellas. Algunos grados de redundancia tendrán que ser aceptados en la mayoría de las bases de datos dependiendo de la funcinalidad de la aplicación, la semántica de los datos y las rescricciones de usuario.

El tema de la normalización es un poco más complejo y el objetivo de este artículo no es aburrir incursionando en los detalles técnicos, por lo que trataremos de explicarlo de una forma sencilla y clara.

Dada la sencilles de nuestro ejemplo, al llevar a cabo la transformación al modelo relacional, las tablas resultantes se obtuvieron dentro de la segunda y tercera forma normal y esto es debido a las dependencias entre atributos o campos.

Entre los campos de una tabla pueden existir dependencias de varios tipos. Las dependencias son propiedades inherentes al contenido semántico de los datos, formando parte de las restricciones de usuario del modelo relacional.

Existen distintos tipos de dependencias: funcionales, multivaluadas, jerárquicas y en combinación.

Dependencias Funcionales
Dada tabla R formada por los campos A, B Y C, representandola de la forma R(A, B, C). Si B depende funcionalmente de A (entonces A implica o determina a B), si para cada valor de A solamente existe un único valor posible para B.

Notación: A -> B

ejemplo: Para la tabla Recorrido, una dependencia funcional existe entre el campo número y el campo nombre:

numero -> nombre

Si además se cumpliera que no pueden existir dos recorridos con el mismo nombre, esto implicaría que el nombre también puede actual como clave de la tabla Recorrido y por lo tanto también derermina funcionalmente a número:

numero <-> nombre

Dependencias Multivaluadas
De la tabla R(A, B, C), A multidetermina a B si para cada valor de A existe un conjunto bien definido de valores posibles en B, con independencia del resto de los campos de la tabla.

Notación: A ->-> B

ejemplo: Si en la tabla turista también quisieramos guardar el telefono de los turistas y que algunos de ellos indicaran más de un número: celular, casa, oficina, etc. La dependencia multivaluada estaría dada por:

nombre ->-> teléfono

Para cada persona tenemos varios números telefónicos.

Formas normales
Existen seis niveles de normalización de una tabla. Una tabla se encuentra en uno u otro grado de normalización si cumple una serie de propiedades (restricciones) que se explicarán a continuación.

Las tres primeras formas normales las definió Codd y se basan en las dependencias funcionales que existen entre los campos de la tabla. Posteriormente, y basandose en las dependencias multivaluadas y en bombinación se definieron dos niveles más de normalización, la 4a y la 5a respectivamente.

Entre la tercera y la cuarta se definió una que se conoce como la forma normal de Boyce-Codd (FNBC) la cual redefine a la 3ra forma normal debido a algunas anomalías encontradas.

De esta forma las tablas en 1a forma normal tienen más reduncancia de datos que los niveles superiores y por lo tanto, más anomalias de actualización de datos. La 5a forma normal es el grado de normalización máximo que se puede alcanzar para una tabla.

Primera forma normal.
Se dice que una tabla se encuentra en la 1a forma normal cuando cada campo sólo toma un valor del dominio simple subyacente. Es decir que no existen grupos repetitivos.

Un ejemplo lo podemos mostrar con las tablas siguientes, la primer tabla no cumple la restricción de la primer forma normal, sin embargo la segunda si la cumple.
La primera forma normal es una restricción inherente al modelo relacional, por lo que su cumplimiento es obligatorio para todas las tablas.

Segunda forma normal.
Se dice que una tabla se encuentra en la segunda forma normal si:
  • Se encuentra en la 1er forma normal
  • Cada campo que no forma parte de la clave primaria tiene dependencia funcional completa respecto de alguna de sus claves.
Por ejemplo: Turista(idTurista, nombre, nacionalidad) donde la clave primaria es idTurista, existe:

nombre -> nacionalidad

Por lo tanto la tabla Turista con esos campos se encuentra en la segunda forma normal.

Tercera forma normal.
Se dice que la tabla se encuentra en la 3a forma normal si:

  • Se encuentra en la segunda forma normal
  • No existe ningun campo que no forma parte de la clave primaria que dependa transitivamente de alguna clave de la tabla.
Por ejemplo: R(A,B,C) si B -> C R se encuentra en la 2a forma normal, ya que no existe dependencia transitiva de B o C con respecto de A

Análisis
El objetivo del análisis es llevar a cabo un proceso de descomposición por medio de proyecciones sucesivas para obtener, de una tabla, una serie de tablas resultantes, las cuales deben cumplir con la conservación de la información (campos y registros), de las dependencias y que exista mínima redundancia de datos.

De esta forma las n tablas resultantes serán equivalentes a la tabla inicial y tendrán menor redundancia de datos debido a que se encuentran en un nivel de normalización mayor.

Dado que la normalización parece un tema complicado, nos podemos beneficiar ampliamente al entender los conceptos mas elementales de la normalizción.

Una de las formas más fáciles de entender esto, es pensar en nuestras tablas como hojas de cálclulo. Por ejemplo para el caso de los teléfonos de los turistas, si agregaramos un campo a la tabla por cada numero telefónico que podríamos capturar para un turista tendríamos algo asi:

Algunos turistas turistas tienen uno, dos o tres números, no todos tienen los tres números para los cuales tenemos capacidad en la tabla.

Así como hemos mencionado que el objetivo de la normalización es eliminar la redundancia de datos, también lo es eliminar el número de celdas vacías.

El darnos cuenta de que la tabla turista tiene un conjunto fijo de campos (nombre, sexo, edad, nacionalidad) y un conjunto variable de campos (telefono1, telefono2, telefono3), nos da una idea de como dividir los datos en multiples tablas que estarán relacionadas entre sí.

Cuando hablamos del proceso de descomposición para obtener n tablas resultantes, lo vemos en el ejemplo de los teléfonos y el proceso se describe con la siguiente figura:

Al aplicar las reglas de normalización a la tabla original R, esta la descomponemos en dos tablas R1 y R2, después, dada la redundancia de R2, le aplicamos las reglas y la descomponemos en R3 y R4. Todas las tablas resultantes: R1, R2, R3, y R4 conservan el atributo A, que es la clave primaria y con la cual estableceremos la relación entre ellas, sin embargo para cada tabla resultante, la clave primaria será una combinación de entre la clave primaria de la tabla original y algún otro campo de cada tabla resultante, dependiendo de las restricciones.

Si aplicamos la regla de la primer forma normal para la tabla de datos del ejemplo, la cual nos indica separar los grupos repetitivos. En este caso el grupo repetitivo es el conjunto de campos para teléfono, los cuales dependen del id del turista, por lo que los separamos juntos.

Separando en dos grupos los campos tendríamos:

1er Grupo (idTurista, nombre, sexo, edad, nacionalidad)
2o Grupo(idTurista, telefono1, telefono2, telefono3)

Ahora para la segunda forma normal, en esta analizamos sólo aquellos grupos que tengan claves combinadas, dado que no hay claves combinadas, ignoramos este paso.

Para la tercera forma normal examinamos las interdependencias entre campos no claves.

Todos los campos o atributos en cada grupo que no sean claves, deben ser examinados para verificar que no existan interdependencias entre ellos. Si se encuentran algunas, tales dependencias deben ser separadas en distintos grupos cuya clave debe ser el campo del cual son dependientes, dejando este campo clave también en el grupo original.

Para el primer grupo analizamos que nombre, sexo, edad y nacionalidad son dependientes de idTurista y no hay interdependencia entre ellos, por lo tanto, ingnoramos al prier grupo.

En el segundo grupo sucede lo mismo, cada campo teléfono es dependiente del idTurista. Pero ahora no todos los turistas tendrán tres teléfonos, por lo que modificamos el segundo grupo y dejamos que cada registro identifique un teéfono único para cada turista, de esta forma el segundo grupo quedará:

2o Grupo (idTurista, telefono)

En el hacemos que la clave primaria y única sea la combinación de ambos campos, es decir, la clave primaria estará formada por idTurista y telefono. Asi podremos evitar también que se capture dos veces el mismo número para el mismo turista, pero podemos tener el mismo número para turistas distintos.

Ahora bien, sabemos que para el campo sexo, sólo pueden existir dos valores (H o M), por lo que podremos utilizar una lista de valores para este campo y evitar errores en la captura del mismo.

Para el caso del campo nacionalidad, la cantidad de valores que se pueden tener es grande, sin embargo para evitar errores en la captura con los posibles datos podriamos separarlo de grupo 1 y crear un nuevo grupo, al cual le tendremos que asignar una clave única:

3er grupo (idNacionalidad, nacionalidad)

El primer grupo quedaría modificado de la siguiente forma:

1er Grupo (idTurista, nombre, sexo, edad, idNacionalidad)

Con ello podríamos crear una lista de valores para nacionalidad y evitar errores en la captura.

Dado los pocos campos que tenemos en las tablas Recorrido y Realiza, no existen independencias o dependencia funcionales y multivaluadas en estas tablas, por lo que no hay necesidad de llevar a cabo una normalización adicional, dischas tablas se encuentran en la 3er forma normal.

Finalmente las tablas a construir en la base de datos son las siguientes:

Estas ya son las tablas normalizadas hasta la tercer forma normal que se construiran en la base de datos. Para ello el sigueinte paso es analizar los tipos de datos que se requieren para cada uno de los campos.

En la cuarta y última parte de este artículo hablaremos sobre los detalles para la construcción de estas tablas, los tipos de datos para los campos, restricciones y validaciones, así como las cosideraciones necesarias para la creación de presentaciones (layouts) para la aplicación: captura, consulta, reportes, etc.

FileMaker: Diseño de bases de datos parte 2

Diseño de tablas y sus relaciones
En la primer parte de este artículo habiamos creado el modelo entidad relación del ejemplo de recorridos turísticos y teníamos lo siguiente:
En donde mencionabamos que un turista puede realizar varios recorridos turísticos, y que un recorrido turístico es realizado por varios turistas, por lo que tenemos una relación de muchos a muchos entre ambas entidades: Turistas y Recorridos. En este modelo tenemos sólo dos entidades: Turista y Recorrido. "Realiza" es la relación que existe entre las dos entidades.

Ahora bien, si sabemos que para cada turista necesitamos registrar su nombre, edad, nacionalidad y sexo y que además los recorridos están identificados con un número de recorrido, un nombre y una descripción de la ruta y los atractivos turísticos que se visitan, así como, la fecha en que cada turísta realiza un recorrido, el modelo lo podemos completar con dicha información de la siguiente manera:
La fecha no la colocamos en el recorrido, ya que la entidad Recorrido es un catálogos de los recorridos turísticos que se ofrecen y que se realizan en distintas fechas por distintos turistas, así que la fecha la colocamos en la relación entre ambas entidades.

Con esta información, ahora podemos describir algo similar a esto: "John Smith, hombre británico de 30 años de edad, realizó el 20 de enero de 2008, el recorrido número 1 - Teotihuacan, Recorrido a la zona arqueológica, con escalada a la pirámide del sol, comida en reataurante xxx,.... etc. etc."

Cuando tenemos entidades con muchisimos datos, no se vuelve práctico colocarlos todos en el modelo entidad-relación, sin embargo, podemos colocar los datos más relvantes para darle sentido al modelo.

En la entidad Recorrido, el número de recorrido, será el valor que nos identifique de manera única a cada registro, es decir, a cada recorrido, por lo tanto no habrá dos recorridos con el mismo número.

Para el caso de la entidad Turista, no tenemos hasta el momento un atributo que identifique de manera única a cada turista, no podemos utilizar el nombre, ya que varias personas pueden llamarse igual, lo mismo sucedería con la edad, el sexo y la nacionalidad, por lo que agregaremos un atributo que sea un identificador único para cada registro o turista, este identificador lo llamaremos idTurista y tendrá valores numéricos consecutivos.

Nuestro siguiente paso ahora es realizar la transformación del modelo entindad-relación al modelo relacional, es decir, diseñar las tablas de la base de datos en donde almacenaremos la información de este sistema.


Reglas de transformación.
Las tres reglas básicas para realizar la tranformación del modelo entidad-relación al modelo relacional son:
  • Toda entidad se transforma en una tabla.

  • Las relaciones de muchos a muchos (N:M) se transforman en tablas.

  • Las relaciones uno a muchos (1:N) dan lugar o bien a una propagación de identificador único o bien a una tabla.
Tomando en cuenta la primer regla, tranformamos las dos entidades del modelo en dos tablas correspondientes:
Como se mencionó anteriormente y podemos observar en la figura de la tablas, la tabla Turista contiene un atributo adicional (campo) llamado idTurista, el cual se convierte en la clave primaria de esta tabla, es el atributo que nos permite establecer un identificador único para cada turista. Para el caso de la tabla Recorrido, el identificador único (clave primaria) será el número del recorrido.

El modelo relacional impone una serie de restricciones inherentes:
  1. En una tabla no puede haber dos registros iguales (obligatoriedad de clave primaria).

  2. El orden de los registros y de los atributos no es relevante.

  3. Cada atributo sólo puede tomar un único valor del dominio sobre el cual está definido, a excepción del caso de los campos repetitivos que si se permiten en FileMaker.

  4. Ningún atributo que forme parte de la clave primaria puede tener valores nulos o vacíos (integridad de entidades).
Las restricciones con respecto a los atributos, las veremos más adelante.

Mientras tanto, para la segunda regla de transformación tenemos que: Las relaciones N:M dan lugar a una tabla cuya clave primaria o identificador único será la concatenación de los identificadores principales de las entidades que se enlazan con esta relación. De esta forma, los campos que forma la clave primaria de esta nueva tabla son claves ajenas o foraneas respecto a las tablas en las que estos campos son clave primaria.

La relación "Realiza", da lugar a una tabla que llamaremos Realiza, (el nombre puede ser distinto), que contiene ademas de los atributos que forma la clave primaria, el campo fecha.
idTurista se refiere al identificador único de la tabla turista, pero en esta tabla se convierte en una clave foranea que forma parte de la clave primaria de la tabla Realiza. número es la clave primaria en la tabla Recorrido, pero se convierte en clave foranea en esta tabla y forma parte también, de la clave primaria de la tabla Realiza.

La tabla realiza enlaza a las tablas Turista y Recorrido, por lo tanto su clave primaria o identificador único está formado por dos campos, es decir, es una clave primaria compuesta.

Ahora bien, ¿Que sucede si un mismo turista realiza dos veces un mismo recorrido?, ya sea por que le gustó, por que quiso repetir la experiencia, etc. por lo que sea, pero si el mismo turista lo realiza dos veces, es obvio que no puede hacerlo el mismo día si tomamos en cuenta que son recorridos de todo un día.

Tomando en cuenta las reglas y restricciones mencionadas anteriormente, en la que deciamos que en una tabla no puede haber dos registros iguales, el valor que diferenciaría a estos dos registros es precisamente la fecha. Por lo tanto, para la tabla Realiza, incorporamos a la clave primaria el campo fecha. De esta forma la clave primaria de la tabla Realiza estará compuesta por los campos: idTurista, numero y fecha.

Finalmente, al diseñar las tres tablas resultantes y enlazarlas para establecer la relación entre ellas, el diagrama relacional nos queda de la siguiente forma:
Aún no podemos decir que las tablas quedarán construidas de esta forma en FileMaker, antes de construirlas necesitamos tomar encuenta algunas consideraciones sobre el dominio de los atributos, valores multivaluados, depencencias funcionales y restricciones en cuanto a la información que será almacenada en la base de datos.
Todos estos puntos los trataremos en la siguiente parte de este artículo, en donde veremos los esquemas de normalización para reducir al máximo la redundancia de datos.

FileMaker: Diseño de Bases de Datos Parte 1

El Modelo Relacional


Desde el lanzamiento de la versión 7 de FileMaker Pro y ahora con las nuevas funcionalidades de la versión 9 (Conexión a fuentes de datos SQL Externas), se vuelve importante tener ciertos conocimientos en temas acordes al modelo relacional, ya que FileMaker, de alguna forma, en estas versiones se apega más al concepto de una base de datos relacional, que lo fué en sus versiones anteriores.



Cuando hablamos de temas acordes al modelo relacional, nos referimos principalmente al conocimiento, al menos básico, de los siguientes temas:
  • Diseño y Modelado de la base de datos.
  • Diseño de tablas y sus relaciones.

  • Normalización.

  • Construcción de tablas relacionadas normalizadas.

Diseño y Modelado de bases de datos
Uno de los pasos importantes en la construcción de una aplicación que maneja una base de datos, es precisamente, el diseño de la base de datos. Si las tablas no son definidas correctamente, podemos tener problemas al momento de ejecutar consultas que nos permitan obtener la información que deseamos.

No importa si la base de datos contiene solo unos cuantos registros o miles de ellos, es importante asegurar que la base de datos está correctamente diseñada para obtener la máxima eficiencia y que podamos utilizarla por mucho tiempo.

Dependiendo de los requeriminetos de la base de datos, el diseño puede ser complejo, pero tomando en cuenta algunas de las reglas simples será mucho más fácil crear una base de datos para cada uno de nuestros proyectos.

Algunas de las consideraciones que debemos tomar en cuanta al realizar el diseño de la base de datos son:
  1. Velocidad de acceso

  2. Tamaño de la información

  3. Tipo de información

  4. Facilidad de acceso

  5. Importación y exportación de información

  6. Presentación de la información


No importa que tan buenas sean las aplicaciones que hemos desarrollado con anterioridad, siempre es recomendable seguir algunos estándares de diseño para garantizar la máxima eficiencia en lo que se refiere al almacenamiento y recuperación de la información.

Al igual que un arquitecto crea los planos para la construcción de un edificio, nosotros debemos crear el modelo para la construcción de una aplicación. Ningún arquitecto se avienta a iniciar la construcción de un edificio sin antes tener una idea clara de lo que quiere construir, y esta idea se modela con el desarrollo de los planos, ahí es donde se plasman las dimensiones, características y alcances de lo que se requiere construir. Pues en el desarrollo de software sucede lo mismo, antes de iniciar la programación y/o la construcción como tal es importante crear un modelo que nos permita visualizar las características y los alcances de nuestra aplicación.

El modelo es una abstracción de la realidad, que nos permite simular el producto final y entender claramente el objetivo que perseguimos.

El modelo Entidad-Relación es uno de principales estándares que nos permiten plasmar la funcionalidad de la aplicación en terminos de entidades y la forma en que se relacionan unas con otras. Las entidades representan los datos del dominio de nuestra aplicación. Por ejemplo, si deseamos desarrollar una aplicación para llevar el control de los recorridos turísticos que realiza un turista. Las principales entidades que encontramos aquí son: Turistas y Recorridos, estas entidades son los datos que serán almacenados en la base de datos. La relación que guardan estas dos entidades una con otra, se podría describir de la siguiente forma: Los turistas realizan recorridos. La relación entre las dos entidades es una acción, es decir, un verbo que describe la acción que se lleva a cabo de una entidad a otra, lo cual se modela como se muestra en la siguiente figura:



La figura nos decribe dos entidades relacionadas entre sí de acuerdo con el modelo entidad-relación. La simbología adicional utilizada en el modelo, nos permite describir con más detalle la forma en que estas dos entidades se encuentran relacionadas y lo podemos leer de la siguiente forma:

1 Turista realiza N Recorridos, 1 Recorrido es realizado por N Turistas, lo cual nos resulta en una relación de muchos a muchos (N:M) entre las dos entidades.

De esta manera podemos entender también como quedarán las tablas que construiremos en la base de datos. Adicionalmente en el modelo entidad-relación podemos especificar los atributos necesarios para cada una de las entidades, es decir, los datos que se requieren para procesar e identificar cada uno de ellos, por ejemplo para turista podríamos requerir su nombre, su nacionalidad, su edad, etc. Para la entidad Recorrido, quizas la ruta que lo identifica, el nombre del recorrido o algún otro dato que la empresa para esta entidad.

Los atributos de las entidades se convertiran en los campos de las tablas correspondientes.

Ahora bien, si para la relación "realiza" es necesario identificar cuando y a que hora se realiza el recorrido, entonces la relación se convierte en una relación identificada, la cual especificaría dos atributos: fecha y hora, de cuerdo con el ejemplo que estamos tratando.

Diseño de tablas y sus relaciones

Esta sección la cubriremos en la segunda parte de este artículo y basicamente consiste de la transformación del modelo entidad-relación al modelo relacional, en el cual, concretamente convertimos las entidades, así como las relaciones identificadas en tablas.

martes, 1 de enero de 2008

El Poder de la Información

La información represente un recurso vital y crítico en el mundo de los negocios, las finanzas, el derecho, el entorno académico y todo sin dejar de lado la cultura, las artes y las ciencias en general.

Hace algún tiempo, el rol de "productor de información" estaba reservado para empresas grandes, corporaciones o instituciones; las únicas con la capacidad financiera para producir contenidos y distribuirlos o comercializarlos.

Con el auge del Internet este contexto se ha visto fuertemente modificado y hoy, casi cualquier persona está en condiciones de producir y distribuir información.

Una de las vías más habituales para producir y distribuir información la constituyen los Boletines electrónicos. Es un hecho que los mejores Boletines los producen los expertos. Sin embargo, una de las particularidades de este fenómeno es que generalmente, aquellos más idóneos, aptos y especializados para la producción de contenidos, no necesariamente son los mismos que poseen el conocimiento para darle un soporte integral a su publicación.

Tener un boletín electrónico por suscripción voluntaria te permite establecer una presencia efectiva en la Red y no hay nada más valioso para su negocio que tener una publicación que sea distribuida cumplidamente cada semana, cada quincena o cada mes.

El modelo de negocios de un boletín electrónico difiere substancialmente del que se corresponde a un sitio Web tradicional, tal como difiere un programa de televisión de una revista por suscripción.

Mientras que un sitio web, o un programa de televisión, dependen de mantener su audiencia día a día, los boletines electrónicos, al igual que una revista de suscripción, tienden a desarrollar una comunidad de suscriptores estable, homogénea y creciente.

No podemos esperar a que la gente visite nuestro sitio web, nosotros debemos llegar a ellos cumplidamente cada semana/quincena/mes directamente a su buzón de correo electrónico. La gente se suscribe a una publicación y si uno hace un buen trabajo, estos estarán esperando la siguiente edición con expectativa.

Mientras más antiguo es un suscriptor, más integrado está en la comunidad y más identificado se siente con la misma.

Y lo más importante: todo consumidor termina direccionando su capacidad de consumo en los entornos en los que se siente cómodo, seguro, representado y atendido y un buen boletín electrónico, dotado de las adecuadas herramientas posee la potencialidad de aprovechar, dentro de su segmento temático o perfil, una parte importante de ese poder de compra.

De allí que el valor de los boletines sea tan elevado y que posean plena capacidad para aprovechar a fondo ese potencial económico.

Con todo ello podemos asegurar que los Boletines electrónicos constituyen el proyecto más rentable dentro del modelo de negocios de Internet.

Algunas de las ventajas de crear un boletín electrónico por suscripción son:

  • Velocidad y confiabilidad en la entrega.
  • Cualquier persona o incluso empresa de cualquier tamaño, puede editar su propio boletín con un verdadero alcance global.
  • Los costos por operar un boletín electrónico tienden a cero, ya que básicamente dependen de la capacidad e inovación de su editor.
  • Son fáciles de crear, distribuir y mantener
  • Nos permiten dar a conocer la empresa, los servicios, los productos, etc.
  • Nos ayudan a generar confianza y credibilidad en los usuarios para que con el tiempo direcciones su capacidad de consumo hacia nuestro negocio.
  • Alientan la fidelidad del cliente
  • Constituyen una herramienta de mercadotécnica para el negocio.
  • Permiten establecer relaciones de largo plazo y duraderas con los clientes.

Pues estas son sólo algunas de las ventajas y características de poseer un boletín electrónico por suscripción.

Ahora bien, ¿como podemos iniciarnos en la creación de un boletín electrónico sin ser expertos en html?, Primero que nada, necesitamos establecer los temas para los contenidos que estaremos manejando y determinar cual es mercado meta al que queremos llegar con la distribución de dichos boletines. Es posible que podamos abarcar varios temas y dirigir cada tema a un grupo específico, ahi es donde empieza el segundo punto, la lista de suscriptores. Cada suscriptor debe estar de acuerdo en recibir el boletín, por que es importante que en ellos exista la forma de cancelar su suscripción cuando así lo deseen.

Finalmente, el último punto es contar con una herramienta que nos permita crear de una forma fácil y profesional nuestros boletínes.

Los tres puntos que hemos mencionado, los podemos resumir de la siguiente forma:

  1. Seleccionar los temas de interés para el mercado meta o los clientes potenciales
  2. Construir la lista de suscriptores
  3. Contratar el uso de una herramienta profesional para crear los boletínes.

Uno de los aspectos más improtantes, una vez que ya tenemos definidos los temas y unos cuantos suscritores es contratar el uso de una herramienta, de esta forma al iniciar el envío personalizado de boletínes, los mismo suscritores podrán recomendarnos y nuestra base de datos de suscriptores se incrementará.

En cuanto a las herramientas recomendadas podríamos hablar de Newsletter Maker, la cual es una aplicación web que podemos utilizar desde cualquier parte en donde tengamos una conexión a internet.

Nos permite crear una base de artículos, noticias, anuncios, así como una base de datos con grupos de suscriptores y armar boletínes en base a plantillas preestablecidas, la cuales podemos personalizar y modificar, incorporar artículos y reutilizarlos cuantas veces queramos para añadirlos a boletínes sin tener que volver a reescribir los anuncios o noticias o los artículos que ya tenemos creados.

Adicionalmente, podemos crear usuarios, es decir, permitir que colaboradores nuestros, ingresen a la aplicación para ayudarnos a capturar artículos.

Es una muy buena herramienta que nos facilita las cosas a la hora de crear y distribuir boletínes.

lunes, 16 de julio de 2007

FileMaker 9

FileMaker Inc. libreró la semana pasada la nueva versión de su herramienta de bases de datos y al darle una revisada rápida, sorpresivamente veo que sus nuevas características estan realmente fabulosas.
Supera por mucho a la competencia, sino es que ya no existe competencia para las nuevas versiones de FileMaker Pro.
Una de las principales cosas que me encantaron fue el poder incorporar a la estructura de una base de datos FileMaker, tablas de fuentes externas de datos: SQL Server, Oracle y MySQL para empezar.

Incorporar datos de fuentes externas como si fueran tablas de FileMaker nos permite ahora si crear soluciones clientes para sistemas con otras bases de datos, generar reportes sofisticados para aplicaciones empresariales que funcionan con otras bases de datos, sin la necesidad de importar datos extraidos de esas bases de datos, sino simplemente incorporarlos con si fueran parte de la misma solución FileMaker. Sensacional !!!

Por otro lado, el formateo condicionado de los datos mostrados en campos, facilita el desarrollo, ya que no será necesario implementar trucos para cambiarle el color, tipo de letra, tamaño, etc. a un campo en base a un evento sucedido, ahora esa función existe internamente como opción de FileMaker.

Otra características que ya estabamos pidiendo desde hace mucho, es el poder organizar todos los guiones o scripts de una solución. Ahora es posible categorizarlos y agruparlos para una mejor organización a la hora de estar desarrollando una solución. Ya que con un sistema de 5 tablas al menos, podemos generar varias decenas de guiones y después querer editarlos era todo un show. Con la versión 9, es posible realmente organizarlos como es debido y ademas poder abrir multiples ventanas para editar diferentes guiones.

Finalmente, algunos controles y objetos de edición de presentaciones o layouts fueron mejorados. Por ejemplo al control de tabs, podemos ajustar el tamaño de cada pestaña y incluso podemos incorporarle algun icono o imágen a cada tab o pestaña.

Hay otros cambios importantes en esta versión, pero les sugiero que la revisen y manden sus comentarios o impresiones al respecto.

lunes, 9 de julio de 2007

JacobSoft

JacobSoft
Crea tu propio estilo.

Una opción muy importante para trascender en el mundo del desarrollo de software es crear tu propio estilo y empaquetarlo con tu propia marca, es decir, darle nombre a tu estilo y exportarlo.

Puedes apoyarte con algunos patrones de diseño, adotparlos, personalizarlos y establecer tu sello personal, tu estilo. Eso te hará único el mundo del desarrollo de software y al crear API's funciones, ejemplos de código, firmalos con tu marca persona.

En los próximos artículos desarrollaré el tema con ejemplos prácticos, mientras tanto, manda tus comentarios y aporta sugerencias.