Cuando se tiene una aplicación legada que no soporta esquemas, se pueden utilizar los sinónimos, el siguiente código muestra cómo crear un sinónimo en la base de datos de AdventureWorks.
CREATE SYNONYM Product
FOR Production.Product
SELECT
ProductID,
Name,
ProductNumber
FROM
Product
drop synonym product
Saludos,
Ing. Eduardo Castro Martínez, PhD – Microsoft SQL Server MVP
http://mswindowscr.org
http://comunidadwindows.org
Costa Rica
Technorati Tags: SQL Server
LiveJournal Tags: SQL Server
del.icio.us Tags: SQL Server
http://ecastrom.blogspot.com
http://ecastrom.wordpress.com
http://ecastrom.spaces.live.com
http://universosql.blogspot.com
http://todosobresql.blogspot.com
http://todosobresqlserver.wordpress.com
http://mswindowscr.org/blogs/sql/default.aspx
http://citicr.org/blogs/noticias/default.aspx
http://sqlserverpedia.blogspot.com/
SQL Azure permite crear múltiples bases de datos de forma sencilla y rápida. Para poder aumentar la escalabilidad de las aplicaciones es necesario poder aumentar la capacidad de manejo de datos de forma casi lineal. Para poder lograr esto podemos recurir a la capacidad de creación dinámica de base de datos en SQL Azure y de esa forma poder distribuir los datos de una única base de datos en múltiples bases de datos, esta técnica es conocida como Database Sharding.
Existen diferentes técnicas para hacer Database Sharding entre estas están:
- Particionamiento basado en rangos. En esta técnica se divide una única tabla en varios servidores, para esto se debe utilizar un algoritmo que permita dividir los datos de forma uniforme y predicible. El criterio para dividir debe procurar que la división de los datos sea balanceada, por ejemplo si se divide por estado entonces podría que un estado tenga más datos que otro y la división no será balanceada.
- Particionamiento vertical. Esta técnica implica asignar o almacenar tablas grandes en base de datos distintas, por ejemplo, una BD tiene la tabla de clientes, otra BD tiene la tabla de órdenes y otra BD la tabla de imágenes. En esta técnica el problema surge si la tabla de clientes crece mucho, entonces en este caso deberemos utilizar particionamiento por rangos.
- Particionamiento basados en llaves artificiales o hash. En este caso uno o más atributos o columnas de la tabla son utilizados en una función de hash que permite asignar una llave con base de la cual se hace la división de los datos. El único detalle a considerar con esta técnica es que tenemos que saber de antemano la cantidad de base de datos que deseamos crear ya que es un parámetro utilizado en la función de hash.
- Pariticionamiento dinámico. Esta técnica también conocida como particionamiento por directorios implica la creación de una función del tipo ObtenerServidorDe, esto significa que en la capa de acceso a datos se llama a esta función para determinar en cual base de datos se encuentra el registro que deseamos obtener. Esta técnica es la más dinámica de todas puesto que podemos agregar o quitar bases de datos sin que se afecte al resto de la arquitectura de la aplicación.
- Particionamiento aleatorio. Similar al particionamiento dinámico con la única diferencia de que utiliza algoritmos aleatorios para asignar un registro a una base de datos determinada.
Un ejemplo de pseudocódigo de particionamiento dinámico sería el siguiente:
string connectionString = ObtenerServidorDe(idOrden);
SqlConnection conn = new SqlConnection (connectionString);
conn.Open();
SqlCommand cmd = new SqlCommand("….”);
Algunas consideraciones al utilizar el Sharding son las siguientes:
- Cómo manejar la integridad referencial. Debido a que no se soporta integridad referencial entre servidores, es necesario que la capa de acceso a datos realice las verificaciones de integridad referencial, aunque esto implica más código y tiempo de desarrollo, nos asegura la integridad de los datos.
- Rebalanceo de particionamiento. Se puede dar el caso de que en primera instancia se utiliza un modelo de particionamiento pero después hay que cambiarlo, en este caso la técnica de particionamiento dinámico es la más factible, aunque es un punto único de fallo, lo más recomendado es utilizar un Azure Worker Role para implementar este tipo de particionamiento.
- Consultas entre tablas relacionados. Al momento de utilizar sharding ya no será posible realizar consultas que unan tablas en distintas base de datos, para hacer esto se pueden utilizar tres técnicas: la primera implica que todas las consultas complejas deben eliminarse por consultas simples que accesan una única tabla y los joins se hacen a nivel lógico en la capa de acceso a datos, la segunda implica desnormalizar las tablas para que se puedan hacer consultas desde una sola tabla, la tercer técnica es utilizar tablas de consolidación. En las tablas de consolidación todas las tablas individuales están en una BD distinta, pero para aquellas consultas que necesitan hacer búsquedas sobre todos los registros, se crea una tabla resumen en otra bd que contine todos los registros de todos los shards, aunque esta técnica permite hacer búsquedas sobre todos los registros, implica moficar la capa de acceso a datos para que le de mantenimiento a las talbas individuales y las tablas consolidadas lo cual aumenta la complejidad de la aplicación.
Debido a que la aplicación de Sharding tiene ventajas y desventajas es necesario seguir algunos principios:
- No todas las tablas deben ser consideradas para Sharding, antes de implementar una estrategia de Sharding es necesario elegir cuales son las tablas candidatas para particionamiento físico. Estas tablas candidatas son aquellas que crecen mucho en nuestro sistema y que posible dividir en varias bases de datos sin poner mucho estres u overhead en la capa de acceso a datos
- En algunas ocasiones es mejor utilizar Windows Azure Storage que SQL Storage, por ejemplo, las imágenes y videos es mejor utilizarlas en Windows Azure Storage
Saludos,
Ing. Eduardo Castro Martinez, PhD – Microsoft SQL Server MVP
http://mswindowscr.org
http://comunidadwindows.org
Costa Rica
Technorati Tags: SQL Server
LiveJournal Tags: SQL Server
del.icio.us Tags: SQL Server
http://ecastrom.blogspot.com
http://ecastrom.wordpress.com
http://ecastrom.spaces.live.com
http://universosql.blogspot.com
http://todosobresql.blogspot.com
http://todosobresqlserver.wordpress.com
http://mswindowscr.org/blogs/sql/default.aspx
http://citicr.org/blogs/noticias/default.aspx
Les comento que estamos trabajando un proyecto que integra las siguientes tecnologías:
SQL Azure
Windows Azure
Silverlight
MVC 2.0
Visual Studio 2010
Pronto estaremos posteando código ejemplo para que puedan ver el potencial de toda esta tecnología.
Saludos,
Eduardo Castro Martinez
Gracias el Equipo de Microsoft MSDN y TechNet de Latino América por permitirme participar como Speaker en los Webcasts para la audiencia de ITPro´s de Latinoamerica. Es para mi un honor poder estar dentro de los Top 10 Oradores del 2009!!!



Deseamos invitarlo a la sesión que tendremos este jueves 10 de diciembre sobre Windows Cloud Computing y SQL Server 2008 R2.
En esta ocasión veremos la plataforma de computación en la nube con SQL Server Azure y Windows Azure. Igualmente veremos las mejoras que posee SQL Server 2008 R2.
Recientemente se realizó el Microsoft Professional Developers Conference 2009 y el SQL PASS 2009, eventos en los cuales se presentaron las innovaciones en los productos Microsoft. Con el fin de compartir este conocimiento cada participante recibirá un DVD con material de estas conferencias.
Adicionalmente, debido a que estamos a final de año y con el fin de resaltar la solidaridad, durante el evento estaremos recolectando una donación voluntaria de ¢2.000 colones que serán entregadas a la Fundación Obras del Espíritu Santo.
El evento será este jueves 10 de diciembre de 8:00am a 12:00 md en el Hotel Aurola Holiday Inn en San José. Tendremos parqueo disponible para los asistentes. El registro inicia a las 7.30 a.m.
Para registrarse ingrese a la siguiente dirección http://windowsazure.eventbrite.com/
El detalle de la invitación la encontrás en nuestro sitio
http://comunidadwindows.org
http://mswindowscr.org
Te invita,
Comunidad Windows



La plataforma de Windows Azure y SQL Server Azure ofrece ambiente para crear aplicaciones basadas en computación por demanda. SQL Server 2008 R2 presenta mejoras en escalabilidad, administración, inteligencia de negocios y datawarehouse



Plataforma de Cloud Computing de Microsoft
Infraestructura y uso de SQL Server Azure
Creación de aplicaciones con Windows Azure y .NET Services
SQL Server 2008 R mejoras y nuevas funcionalidades
SQL Server 2008 R2 mejoras y nuevas funcionalidades


Cada asistente recibirá un DVD que contiene el material de las conferencias Microsoft PDC 2009 y SQL PASS 2009


Fecha:
Jueves 10 de diciembre de 2009
Hora:
7:30 a.m. - 8:00 a.m. Registro
8:00 a.m. - 12:00 m.d. Charlas y refrigerio
Lugar:
Hotel Aurola Holiday Inn
Dirección:
Avenida 5, Calle 5, Frente al Parque Morazán
Teléfono 2523-1260
2523-1261
Información:
comunidadwindows@live.com
eventos@mswindowscr.org


Reserve su espacio a tiempo.
Cupo limitado.


http://windowsazure.com
http://www.microsoft.com/sqlserver/2008/en/us/r2.aspx



Les comparto este webcast que impartí sobre la administración en SQL Server Azure.
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032426192&Culture=es-AR

Webcast MSDN: Roles y responsabilidades de la administración de una base de datos de Microsoft SQL Data Services
Id. de evento: 1032426193
Registrarse
Idiomas:
Español.
Productos:
Windows Azure.
Audiencia(s):
Programador/desarrollador de programas.
Moderador(es):
Eduardo Castro
Duración:
60 Minutos
Fecha de Inicio:
miércoles, 18 de noviembre de 2009 06:00 p.m. Bogotá
Información general del Evento
Venga para conocer acerca de la administración de bases de datos en el nuevo mundo de SQL Data Services (SDS). Comenzando desde la creación de una cuenta SDS, conozca acerca de las herramientas y técnicas para suministrar cuentas, servidores y bases de datos. Vea cómo se administra la facturación. Aprenda cómo colaborar con sus colegas para construir un proyecto Azure que utiliza SDS. Mostramos los mecanismos para la administración de bases de datos tales como los inicios de sesión y permisos de administración. Vea cómo SDS automatiza las tediosas y complejas tareas administrativas (por ejemplo, los errores de la máquina) y cómo le permite invertir más tiempo en las importantes funciones de diseño de un DBA.
Opciones de registro
Id. de evento:
1032426193
Registrarse

Saludos,
Eduardo Castro Martinez – Microsoft SQL Server MVP
http://mswindowscr.org
http://comunidadwindows.org
Costa Rica
Technorati Tags: SQL Server
LiveJournal Tags: SQL Server
del.icio.us Tags: SQL Server
http://ecastrom.blogspot.com
http://ecastrom.wordpress.com
http://ecastrom.spaces.live.com
http://universosql.blogspot.com
http://todosobresql.blogspot.com
http://todosobresqlserver.wordpress.com
http://mswindowscr.org/blogs/sql/default.aspx
http://citicr.org/blogs/noticias/default.aspx
More Posts
Next page »