10 de Febrero de 2012
Jun
27

.NET Tutorial 10. Iniciación a las bases de datos con SQL Server

Categorías: ,

Sin lugar a dudas, una de las principales areas en el ámbito informático es el procesamiento, interpretación y alamcenamiento de información en base de datos (BDD).

Casi todas las páginas que pululan por internet guardan sus datos en BDD, un claro ejemplo son los foros, cómo por ejemplo el foro de Meristation.

Todos los post se guardan cómo "registros" en una / unas base de datos que luego el código (php, asp, ....) del foro nos muestra.

Sin embargo también se utilizan las bases de datos para aplicaciones "Windows", para almacenar la información de forma ordenada.

Las "bases de datos" son casi tan viejas cómo la informática. Desde siempre se ha necesitado guardar información de alguna forma. Podríamos considerar las tarjetas perforadas como las primeras "bases de datos".

Básicamente existen dos topologías de bases de datos: (a muy, muy groso modo)

  1. Las bases de datos son ficheros individuales
  2. "Servidor" de datos

En el primer ejemplo podemos encontar por ejemplo archivos tipo Access.
En el tema de "Servidores" de datos han proliferado multitud de sistemas. Oracle, MySQL, SQL Server, Postgre SQL, etc, etc.

Obviamente estas dos topologías tienen sus pros y sus contras:

Base de datos cómo ficheros individuales:

  • La gran ventaja es que al ser ficheros individuales se pueden "copiar" fácilmente
  • Normalmente su mantenimiento es fácil y no se necesitan grandes recursos. Su intalación suele ser nula, ya que la imensa mayoria de PC (hablo de entorno Windows) ya disponen de librerías para su manejo

Sin embargo presentan los siguientes inconvenientes:

  • Al tratarse de archivos individuales, se desaconseja su uso para aplicaciones donde pueda haber concurrencia. Es decir, ¿Que ocurre si dos, tres o trescientos usuarios acceden al mismo tiempo a dicha base de datos?
  • Normalmente, y a no ser que se desarrollen aplicaciones especiales, no se pueden usar estas bases de datos a través de internet. (Quizas podría usarse algún driver ODBC, pero omitiremos este punto)
  • Por norma general, estas bases de datos tienden a "corromperse" con el riesgo que esto supone: perder todos los datos
  • También por norma general estas bases de datos no estan "pensadas" para almacenar gran cantidad de registros (aunque he visto base de datos de Access con tablas que contenian mas de 50.000 registros)

 "Servidores" de datos:

Una de las principales ventajas de estos sistemas es que estan diseñados para que dos, tres o trescientos usuarios puedan acceder al mismo tiempo a las bases de datos.
Puede parecer una chorrada, por no podéis llegar a imaginar la de quebraderos de cabeza que puede llegar a dar la "concurrencia" a la hora de acceder a una base de datos.

Por otro lado estos sistemas suelen ser muchísimo más robustos, lo que hace que las bases de datos no se "corrompan" y no perdamos datos.

Obviamente este tipo de topología sí que está pensada trabajar "en red". Se puede acceder a la base de datos desde un PC que está en Burkina Faso o desde otro que esta en Honolulu.

Aunque claro, siempre hay "peros":

  • El mantenimiento de estos sistemas es bastante más complejo que en el caso de usar archivos individuales
  • En este caso, "copiar" una base de datos de un sistema a otro no es tan trivial cómo en el caso de los archivos individudales

Visual Studio .NET puede trabajar de forma nativa con SQL Server.

Existe una versión Express, al igual que VB.NET Express, o C# Express que es completamente gratuita.

Visual Studio .NET 2005 y Visual Studio 2008 (por lo menos las versiones "Professional") instalan por defecto SQL Express 2005 como servidor de SQL predeterminado.

No sé si las versiones Express de Visual Basic .NET o C# instalan este SQL server, si no es así siempre puedes descargartelo desde la página de Microsoft. Página oficial de SQL Server 2005 Express.

Nota: Existe una nueva versión de SQL Server Express, la 2008.

Una vez instalado SQL Server 2005 Express ya tendrás tu servidor listo para poder trabajar con él.
Esto puede ser realmente "complejo", pero de nuevo tendremos una herramienta "Visual" para manejar nuestras bases de datos.

Esta herramienta es el Microsoft SQL Server Management Studio Express (o abreviado, el MSSMSE). Lo puedes descargar desde éste enlace. Cómo verás hay dos links de descarga: la versión de 32 bits o la de 64 bits. Si tienes un S.O. de 64 bits puedes descargar el SQLServer2005_SSMSEE_x64.msi.

La instancia por defecto del SQL Server 2005 Express se llamará:

nombre_del_pc\SQLEXPRESS

Puedes instalar tantos servidores SQL cómo quieras, aunque claro, cuantos más instales, más recursos consumirá.

SQL Server  se ejecuta cómo servicio de Windows, no cómo un proceso y normalmente con el nombre MSSQL&nombre_de_la_instancia, por ejemplo MSSQL&SQLEXPRESS.

Por defecto, SQL Server Express se instala para trabajar de forma "local". Si queremos que nuestro servidor de SQL se pueda ver en una LAN o incluso desde internet tendremos que modificarlo desde la configuración de superficie:

Además, deberermos activar el protocolo TCP/IP.

Si queremos que nuestro servidor sea accesible desde "el exterior"deberemos anotar el puerto por el que se realizará la comunicación con el servidor, para abrirlo en nuestro router y firewall (Abrir el puerto en el router y redirigir el tráfico al PC donde se está ejecutando el servidor de SQL sólo será necesario si queremos que se pueda acceder desde fuera de nuestra red):

Por útlimo una vista del  Microsoft SQL Server Management Studio Express:

Desde el Microsoft SQL Server Management Studio Express podremos crear nuevas bases de datos, nuevas tablas, crear vistas, consultas, crear copias de seguridad, diagramas, etc, sería como el "Access" pero para SQL Server. Y cuando se sabe manejar, es una herramienta increiblemente potente.

En las próximas entregas veremos cómo crear una base de datos en nuestro servidor de SQL Server y cómo acceder a ella por código, dando de alta nuevos registros, modificando los existentes, borrando, etc.

Espero vuestras dudas y/o consultas

 

Saludos.
mov eax,ollydbg; Int 13h  

5
Valoración media: 5 (1 voto)