sábado, 15 de septiembre de 2012

Semejanzas y diferencias entre MS Access y MS SQL Server


Introducción

Antes de explicar semejanzas y diferencias entre MS Access y MS SQL Server, debemos entender que es lo que son. Ambos software se conocen con el nombre de sistema de gestión de bases de datos (SGBD), estos son programas que permiten administrar datos, ya sea mediante el uso, la actualización y/o la creación de estos. Los datos pueden estar presentes en una, o muchas bases de datos, y ser utilizados por uno o varios usuarios. El objetivo fundamental de un SGBD es suministrar a los usuarios herramientas que le permitan manejar los datos para entregar valor y/o utilidad a estos.

Descripción MS Access:

Sistema de gestión de bases de datos creado por Microsoft, desarrollado principalmente para uso personal o de pequeñas organizaciones. MS Access es una potente base de datos, capaz de trabajar sobre sí misma o bien con otros lenguajes de programación, como Visual Basic. El software permite realizar consultas directas a las tablas contenidas mediante instrucciones SQL.  Dentro de las principales funciones presentes en MS Access podemos mencionar que los usuarios pueden crear tablas, consultas, formularios e informes, y conectarlos entre sí con macros. Los usuarios más avanzados pueden usar VBA para escribir soluciones para una manipulación más compleja de datos y control de usuarios.
 

Descripción MS sql Server:

Sistema de gestión de bases de datos relacionales, también creado por Microsoft, que ha sido desarrollado en base a SQL, una de sus principales características radica en las cantidades de datos y consultas que puede procesar de manera simultánea. Además MS SQL Server permite: soporte de transacciones, soporte procedimientos almacenados, inclusión de un entorno gráfico de administración, permite trabajar en modo cliente-servidor y por último permite administrar información de otros servidores de datos. Está diseñado para grandes compañías, y administrar un gran número de transacciones simultáneas. 
 

Semejanzas y diferencias:

A pesar de ser dos SGBB, Access y SQL server son muy distintos. Entre sus principales similitudes podemos encontrar:

  1-. Ambos son sistemas de almacenamiento de datos en forma de tablas relacionales. 

  2-. Ambos admiten comandos en lenguaje SQL, aunque el de SQL Server está mucho más desarrollado, ya que realmente es la interfaz del servidor con el cliente. 

  3-. Ambos son sistemas creados por Microsoft.

Las diferencias entre estos Sistemas de almacenamiento son más profundas y la primera a mencionar es el enfoque de cada uno de éstos. Access está más enfocado en “uso de escritorio” o personal, pensado para manejarse desde un solo equipo (o máximo una pequeña red local). Cabe mencionar que no esta pensado para que muchos clientes accedan al mismo tiempo a las bases de datos. Por otro lado, SQL Server permite el acceso a las bases de datos a miles de usuarios simultáneamente, y no sólo eso, sino que también permite almacenar grandes volúmenes de datos (TeraBytes) que incluyen elementos como fotografías, videos, textos, números, etc, con millones de registros.

Otra diferencia entre estos Sistemas de almacenamiento se aprecia a la hora de publicar bases de datos en Internet; SQL Server es autónomo, mientras que Access no lo es. Al utilizar Access en el manejo de bases de datos en Internet, se genera una sobrecarga de consumo de memoria que recaerá sobre el servidor web, generándole problemas por ejemplo en todas las páginas web del dominio. Esto nunca ocurrirá con SQL Server, pues es él quién realiza toda la gestión relacionada con los datos.

Otra diferencia es que SQL Server permite que los clientes puedan manipular los datos desde cualquier computador conectado a Internet, mientras que Access sólo permite crear aplicaciones que trabajan en red con los archivos, sin embargo todo el procesamiento se efectúa en un solo equipo.
SQL Server ofrecer ventajas a la hora de publicar datos en Internet, como por ejemplo la estabilidad para el servidor web, ya que se libera al servidor web de las actividades referentes a los datos, es decir no lo sobrecarga, y en conclusión podrá mejorar su rendimiento y estabilidad. Access, hace todo lo contrario, es decir sobrecarga al servidor web, aumentando el riesgo de inestabilidad para el servidor web.

Sin embargo, Access también ofrece ventajas, como por ejemplo la compatibilidad a la hora de compartir archivos, ya que es más probable que las personas tengan Access en sus computadores, y que por lo tanto este intercambio se efectúe sin problemas. 

Otra ventaja que tiene Microsoft Access es la capacidad de construir sistemas de software para gestionar una gama de servicios muy rápidamente. Además, Access, permite crear una interfaz usuaria totalmente interactiva, que permite a los usuarios introducir datos e informar sobre éstos, mientras que SQL Server sólo almacena los datos en tablas, no tiene la capacidad de realizar un front-end, como Access. 

SQL Server usa Address Windowing Extension (AWE) para hacer el direccionamiento de 64-bit. Esto le impide usar la administración dinámica de memoria, y sólo le permite alojar un máximo de 64 GB de memoria compartida. Además SQL Server no maneja compresión de datos (excepto la versión 2008 Enterprise Edition), por lo que las bases de datos pueden llegar a ocupar mucho espacio en disco y requiere de un sistema operativo Microsoft Windows, por lo que no puede instalarse, por ejemplo, en servidores Linux.

La siguiente tabla evidencia  diferencias entre MS Access y MS SQL Server

Característica
MS Access
MS SQL Server
Nº de Procesadores en Paralelo
1
16
Instancias de servidores sobre un ordenador
Ninguna
Ilimitado
Procesamiento de consultas más rápido
bajo
Muy Alto
Arquitectura cliente-servidor
No
Consola o interfaz para administrar la base de datos
Si
Si
Escalabilidad
Ninguna
Si, Procesadores Multisimétricos
Nº de Usuarios conectados
255
Ilimitados
Limite de usuarios concurrentes
255
Ilimitados
Seguridad integrada
Si
Si, A nivel de SQL y de sistema operativo
Admite triggers
No
Si
Admite procedimientos almacenados
No
Si
Relaciones de tablas e integridad de referencia
Si
Si
Funciones Meta datos
No
Si



Funciones Básicas de SQL

Funciones Integradas

Estas funciones no pueden ser modificadas, y ayudan a realizar diversas operaciones. Devuelven tipos de datos escalares o tablas. Generalmente las funciones integradas son utilizadas para:

- Tener acceso a información del sistema SQL Server sin acceder a las tablas directamente.

- Permite realizar tareas como SUM, GETDATE o IDENTITY.




Funciones Escalares
 
Las más parecidas a las funciones del lenguaje de la programación, normalmente son  usadas para cálculos matemáticos básicos, ya que devuelven un valor único (escalar). En su formato simple no cuentan con un cuerpo de función, a diferencia de las funciones escalares de varias instrucciones, las que sí cuentan con uno, definido en un bloque BEGIN-END, además de una serie de instrucciones de Transact-SQL que devuelven un valor único. Mientras que en el formato simple, el resultado es un valor escalar proviniendo de una instrucción única, generalmente la instrucción SELECT.

Tipo de Funciones Escalares:
 
 
 
Funciones con Valores de Tabla
 
Como su nombre lo dice las funciones con valores de tabla definidas por el usuario devuelven un tipo de datos table. Al igual que las escalares simple no tienen cuerpo, por lo que la tabla es el resultado de una instrucción SELECT.
 
Las funciones con valores de tabla de varias instrucciones, sí poseen un cuerpo de la función y contienen una serie de instrucciones de Transact-SQL, las que crean e insertan filas en los resultados de la tabla. El cuerpo de la función está definido por un bloque BEGIN-END.
 
Estas funciones son un híbrido entre vista y procedimiento almacenado, ya que son consultas con una instrucción SELECT, pero a diferencia de los procedimientos anteriores, las funciones con valores de tabla permiten el uso de parámetros. Esta función resulta ser más eficiente al realizar consultas con parámetros, a diferencia de las otras 2.

Conclusión:

Ambos productos creados por Microsoft están enfocados a públicos completamente distintos. En primer lugar, Access está enfocado al usuario promedio de computadores, aquel que desea aprender a usar SQL, y tiene algún tipo de base de datos personal que desea manejar. Por lo mismo en nivel empresarial, es utilizado solo en pequeñas Pymes, que generalmente lo obtienen de forma ilegal,  o aprovechando que viene integrado en el paquete empresarial de Office. Es muy extraño ver Access en empresas más grandes, principalmente por su valor comercial, ya que la licencia permite ser instalada solo en un equipo, y se debe comprar una licencia por cada equipo que la empresa posee, y la integración entre estos no es automática. En cambio, la licencia de SQL Server se adquiere para un conjunto de equipos, y en caso de ser necesario extender la cantidad de equipos integrados, solo se cancela un diferencial a al costo total del producto. Además de que la integración de nuevos equipos al sistema de base de datos se realiza de forma automática, como se detalló con anterioridad.
Además, como se dijo anteriormente, SQL Server posee capacidad para integrar varios equipos, con un servidor central, lo cual aumenta la cantidad de consultas y/o transacciones simultaneas que se pueden realizar, por lo que lo más probable es que al salir al mundo laboral, nos encontremos con este tipo de aplicaciones, o alguna similar de otro proveedor (Oracle, IBM, etc.). Sin embargo, el sistema relacional, y el lenguaje base (SQL) sigue siendo el mismo de Access, y es por esto que se justifica su aprendizaje durante este curso, ya que posee una interfaz más amigable para nosotros que no tenemos mayores conocimientos de bases de datos, por lo que resulta como un “salto intermedio” al uso de SGBD mayores, con los cuales nos encontraremos en el futuro.





 Grupo 5

1 comentario: