Cursos subvencionados para trabajadores
Realiza el curso gratis a través de tu empresa.
Cursos SubvencionadosUna vez que hemos visto como realizar instancias de usuarios mediante el administrador, nos pondremos a trabajar en la creación de bases de datos mediante esta herramienta.
Ya hemos explicado que una base de datos está formada por un grupo de tablas que almacenan datos estructurados mediante registros (filas) y campos (columnas). Cada campo almacena un tipo de información como fechas, números enteros, decimales, texto, etc...
Al crear una base de datos es primordial la configuración de la estructura de almacenamiento de datos. SQL Server 2005 administra la base de datos en varios archivos de datos y registros de transacciones. Toda la información y los objetos (tablas, procedimientos almacenados, triggers, vistas, etc... se almacena en esta jerarquía de archivos.
Inscríbete ahora y accede a 3 unidades gratis
Evalua el curso de ASP NET 2.0 Avanzado y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....
Lo primero que debemos tener en cuenta en el momento de crear nuestra base de datos, es verificar que el usuario creador de la base de datos debe tener permiso sobre la base de datos "master". Esta base de datos es la que utiliza SQL Server por defecto, y al crear una base de datos cualquiera, se modifican tablas que guardan información sobre la nueva base de datos.
Durante la tarea de creación de nuevas bases de datos, se fija el nombre, sus propiedades, y la ubicación física de los archivos que la componen.
Para iniciar el proceso de creación, se despliegan las carpetas y se pulsa con el botón derecho sobre la carpeta de las bases de datos. Y seleccionamos la opción "New database"

El resto de opciones de este menú son los siguientes:
| Opción: | Función: |
|---|---|
| Attach |
Creamos una base ya existente, es decir incluimos en nuestro administrador una base de datos para poder ser administrada. |
| Restore Database | Restaurar una base de datos, a partir de su copia de seguridad. |
| Restore Files and Filegroups | Restaurar archivos y grupos de archivos. Los grupos de archivos son definidos por el usuarios en el momento de la creación o de la modificación de una base de datos. |
Una vez abierta la ventana para la creación de la base de datos podemos asignar las siguientes propiedades:

| Opción: | Función: |
|---|---|
| Datbase Name |
Nombre de la base de datos. |
| Owner | Propietario de la base de datos. |
| Logical Name | Nombre lógico para los archivos que se generan junto con la base de datos. |
| File Type | Tipo de archivo. Anteriormente hemos mencionado que en la creación de una base de datos se generan dos tipos de archvios: el archivo principal y el de transacciones. |
| Filegroup | Grupo de archivos a los que pertenecen cada uno de los tipos de archivo. |
| Initial Size | Tamaño inicial que se reserva para la base de datos. |
| Autogrowth | Autocrecimiento. Los archivos de datos aumentan automáticamente de tamaño de dos modos posibles: en megabytes o en porcentaje. Además podemos restringir o no el crecimiento a una cantidad fija de megabytes. |
| Path | Ruta física del directorio donde se almacenarán los dos tipos de ficheros. |
| File Name | Nombre de esos ficheros. |
La configuración de estas propiedades son suficientes para la creación de la base de datos. Una vez pulsado y aceptados los cambios, nuestra base de datos ya ha sido creada y preparada para se gestionada mediante el administrador.
Inscríbete ahora y accede a 3 unidades gratis
Evalua el curso de ASP NET 2.0 Avanzado y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....
Como ya sabemos las tablas son los objetos que almacenan los datos. A la hora de diseñar una base de datos, se debe hacer un estudio de que tablas serán necesarias y que tipo de datos van a almacenar. Al diseñar la tabla es obligatorio evaluar las columnas que vamos a añadir, el tipo de dato para cada columna, y la longitud máxima si es necesaria.
Inscríbete ahora y accede a 3 unidades gratis
Evalua el curso de ASP NET 2.0 Avanzado y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....
Los tipos de datos indican que valores se pueden almacenar en una determinada columna.
En Sql Server tenemos los siguientes tipos de datos fundamentales:
| Tipo de dato: | Descripción |
|---|---|
| binarios |
Números hexadecimales. |
| carácter | Combinaciones de letras, símbolos y números. |
| Unicode | Cualquier carácter que cumpla el estándar unicode |
| fecha y hora | Fechas, horas... |
| numéricos | Permiten positivos, negativos, enteros, decimales y fraccionales. |
| moneda | Valores monetarios positivos y negativos. |
| usuario | Tipos de datos definidos por el usuario. |
| especiales | Cualquiera que no se pueda ubicar en los tipos mencionados. |
Dentro de este grupo fundamental encontramos los siguientes tipos.
| Tipo de dato: | Características. |
|---|---|
| binary |
Tamaño máximo de 8 KB para sus filas. |
| varbinary | Los datos varían sus dígitos hexadecimales hasta 8 KB |
| image | Datos binarios de cualquier longitud superior a 8 KB, entre estos datos podemos encontrar documentos de Word, imágenes (jpeg, bmp, gif). Hay que ser muy precavidos al utilizarlo para no incrementar innecesariamente el tamaño de la base de datos. |
Inscríbete ahora y accede a 3 unidades gratis
Evalua el curso de ASP NET 2.0 Avanzado y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....
Tipos de datos disponibles para este grupo:
| Tipo de dato: | Características. |
|---|---|
| char |
Longitud fija no superior a 8 Kb |
| varchar | Longitud variable no superior a 8 Kb. |
| text | Caracteres ASCII con longitud superior a 8 Kb. |
En este mismo grupo se pueden situar los tipos de datos para caracteres unicode. Que serían nchar, nvarchar y ntext.
Inscríbete ahora y accede a 3 unidades gratis
Evalua el curso de ASP NET 2.0 Avanzado y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....
En este grupo podemos utilizar los siguientes tipos:
| Tipo de dato: | Características. |
|---|---|
| datetime |
Intervalo: 01/01/1753 - 31/12/9999, se necesitan 8Kb para almacenar este tipo de dato. |
| smalldatetime | Intervalo: 01/01/1900 - 06/06/2079, se necesitan 4 Kb de capacidad para este tipo. |
Inscríbete ahora y accede a 3 unidades gratis
Evalua el curso de ASP NET 2.0 Avanzado y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....
Tipos de utilizados:
| Tipo de dato: | Características. |
|---|---|
| bigint |
Intervalo: -2^63 y 2^63-1. Capacidad: 8 bytes. |
| int | Intervalo: -2.147.483.648 y 2.147.483.647. Capacidad: 4 bytes. |
| smallint | Intervalo: -32.768 a 32.767. Capacidad: 2 bytes. |
| tinyint | Intervalo: 0 a 255: Capacidad: 1 byte |
| decimal o numeric | Datos que almacenan hasta el dígito menos significativo de los decimales. |
| float y real | Conocidos como numéricos aproximados o de coma flotante, almacenan tantos decimales como permita el sistema binario. |
Inscríbete ahora y accede a 3 unidades gratis
Evalua el curso de ASP NET 2.0 Avanzado y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....
Los datos monetarios almacenan hasta un máximos de 4 decimales.
| Tipo de dato: | Características. |
|---|---|
| money |
Intervalo: -922.337.203.685.477,5808 y 922.337.203.685.477,5807. Capacidad: 8 bytes. |
| smallmoney | Intervalo: -214.748,3648 y 21.748,3647 Capacidad: 4 bytes. |
Inscríbete ahora y accede a 3 unidades gratis
Evalua el curso de ASP NET 2.0 Avanzado y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....
En SQL Server podemos encontrar una serie de datos especiales.
| Tipo de dato: | Características. |
|---|---|
| timestamp o rowversion |
Número creciente en binario que almacena |
| bit | Representa valores TRUE o FALSE, YES o NO, 1 ó 0 |
| uniqueidentifier | Número hexadecimal de 16 Bytes que identifica como única una fila entre muchas. |
| sql_variant | Cualquier tipo de datos permitido, excepto txt, ntext, timestamp) |
| table | Almacena resultados para más adelante procesarlos. |
Inscríbete ahora y accede a 3 unidades gratis
Evalua el curso de ASP NET 2.0 Avanzado y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....
Uno de los aspectos más esenciales a cuidar al diseñar las tablas de datos son las restricciones, valores predeterminados y valores nulos.
Por lo tanto, al crear nuestras tablas debemos evaluar los valores válidos y asegurar la integridad de los datos. Para garantizar la integridad de los datos SQL Server nos ofrece los siguientes métodos mediante restricciones:
| Restricción: | Funciones: |
|---|---|
| PRIMARY KEY |
Esta restricción en una de las columnas (o varias) asegura que gracias a ella la fila sea única. Recibe el nombre de clave principal o primaria. |
| FOREIGN KEY | Aseguran y establecen un vínculo entre los datos de dos tablas relacionadas. Reciben el nombre de clave externa o foránea. |
| UNIQUE | Aseguramos que no tengamos valores duplicados en columnas que no sean claves primarias. |
| CHECK | Limita los valores permitidos. |
| DEFAULT | Las columnas deben contener un valor, aunque sea nulo (NULL) |
| NULL | La columna acepta valores NULL. |
Para usar las restricciones se debe hacer siguiendo una lógica de trabajo para no caer en errores inesperados y cumplir las reglas marcadas. No te preocupes si no entiendes ciertos conceptos, más adelante con las relaciones entre tablas y los ejercicios prácticos terminarás de comprender la teoría y su utilidad.
En una tabla sólo está permitido colocar una columna con clave primaria (PRIMARY KEY) y lógicamente, no aceptará valores NULL. En el momento de asignar a una columna la restricción de clave primaria, SQL Server genera un índice único para esta columna, y el acceso o búsquedas a esta columna será notablemente más rápido.
Si se decide situar una restricción PRIMARY KEY en más de una columna, este caso es especial, ya que puede haber valores repetidos en una columna de clave primaria, siempre que la combinación de valores de columnas de clave primaria aseguren filas únicas y diferentes. Es decir, el conjunto de valores asignados a los campos de clave primaria aseguran la identidad de un fila.
Por norma general una columna FOREIGN KEY o varias suelen estar vinculadas a columnas PRIMARY KEY de otra tabla. Aunque también es posible vincularlas con columnas UNIQUE de otras tablas.
Las restricciones UNIQUE pueden almacenar valores NULL, pero no así las claves primarias.
Para controlar los valores de una columna podemos hacerlo con restricciones CHECK y FOREIGN KEY, aunque actúan de diferente modo, obtenemos resultados parecidos. Podemos indicar varias restricciones CHECK a una misma columna, el orden en el que serán evaluadas, será el mismo en el que fueron creadas.
Debes tener muy claro que un valor NULL significa que no hay una entrada de dato. No es ni un cero, ni un blanco, ni tan siquiera una cadena de caracteres de longitud cero (""). Hace referencia a un valor desconocido o inexistente. No es aconsejable permitir valores NULL porque añaden complejidad a las estructuras de las tablas y complica las consultas.
Si no permitimos valores NULL, se garantiza mejor la integridad de datos, si utilizamos claves primarias, no permite por defecto valores NULL.
Inscríbete ahora y accede a 3 unidades gratis
Evalua el curso de ASP NET 2.0 Avanzado y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....
Lo primero que debemos hacer es desplegar la base de datos sobre la que vamos a crear las tablas, una vez desplegadas vemos diferentes carpetas que almacenan distintos tipos de objetos. Una de estas carpetas es la carpeta Tables, pulsando con el botón derecho y seleccionando la opción New Table.

Al seleccionar new table, se abre una nueva pestaña con la siguiente ventana, donde podemos configurar todas las propiedades de la tabla.

Punto 1)
En esa zona podemos indicar las características fundamentales de una columna, su nombre, tipo de dato, longitud y si permite o no almacenar valores nulos.
Punto 2)
Es un punto más donde configurar la posibilidad de almacenar valores nulos.
Punto 3)
Asigna una columna con la propiedad IDENTITY. Con esta propiedad, el campo será un tipo numérico que aumenta su valor automáticamente. El valor se va incrementando según se vayan añadiendo registros a la tabla, el valor de incremento y el valor de inicio puede ser indicado mediante las propiedades Identity Increment e Identity Seed.
Si pulsamos con el botón derecho sobre una de las columnas, nos muestran un menú para poder configurar las restricciones de cada columna:
Punto 4)
Set primary key: Asigna la restricción clave primaria a la columna seleccionada. Podemos reconocer una columna como clave primaria si aparece un pequeño icono con forma de llave a su izquierda. ![]()
Punto 5)
Relationships: Establece las relaciones entre tablas, creando la columna como clave foránea o FOREIGN KEY. En el capítulo Relaciones, veremos como configurar estas relaciones.
Punto 6)
Indexes/Keys: Configuramos la columna con la restricción UNIQUE.
Punto 7)
Restricciones CHECK.
Una vez definidas las columnas de la tabla, almacenamos los cambios e introducimos un nombre para identificar la tabla.
Para realizar cualquier modificación de una tabla una vez almacenada, debemos seleccionar la tabla con el botón derecho y pulsar la opción Modify del menú emergen. Esto nos llevará de nuevo a la misma ventana de creación de tablas, para modificar las propiedades que estimemos necesarias.
Por último, tenemos que ver como introducir datos directamente a nuestras tablas, para ello pulsando con el botón derecho sobre la tabla en cuestión elegimos la opción Open Table.

Al seleccionar Open Table, nos aparece una ventana para ir ingresando los datos y creando nuestras filas.

Lógicamente nosotros no operaremos de este modo. Nuestro objetivo es programar y desarrollar los interface gráficos que permitan la introducción automática de datos en las tablas con ASP.NET 2.0 y ADO.NET 2.0. Pero habrá veces que tendremos que recurrir a la introducción de datos en SQL Server obligatoriamente.
Inscríbete ahora y accede a 3 unidades gratis
Evalua el curso de ASP NET 2.0 Avanzado y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....
El objetivo principal que se busca al relacionar tablas es el conseguir no tener datos repetidos o redundantes.
Las relaciones entre tablas se consiguen a través de vínculos establecidos entre una columna o varias de las tablas a relacionar. Vamos a ver un ejemplo, con el que entenderás mejor la finalidad de las relaciones.
Piensa en la gestión de una biblioteca, para almacenar los datos de los libros, nos creamos una tabla a la que llamaremos tabla_libros. Esta tabla debe almacenar los siguientes campos:
Estudiando un poco el tipo de información que va a almacenar nuestra tabla, vemos con claridad que los campos ISBN, Titulo y número de páginas son específicas para un libro, en cambio habrá muchos libros que hayan sido escritos por el mismo autor y publicados por la misma editorial. Supongamos que sólo trabajamos con libros de dos editoriales y de dos autores. Si tenemos 1000 libros en nuestra biblioteca, los campos Nombre_Autor, Fecha_Nacimiento_Autor, Nacionalidad_Autor, Nombre_Editorial y Nacionalidad_Editorial aparecerán repetidos, ya que son campos compartidos por muchos de los libros que son creados por el mismo autor y editados por la misa editorial. Estamos duplicando información de un modo innecesario.
La solución más eficaz es situar a los autores en una tabla independiente para ellos y a las editoriales en otra tabla. De este modo, y siguiendo con las suposiciones de nuestro ejemplo, si únicamente trabajamos con dos autores y con dos editoriales, estas tablas nuevas sólo tendrán dos registros. Y bastaría con buscar el modo de relacionar a cada libro con su correspondiente autor y su correspondiente editorial.
| tabla_libros | tabla_autores | tabla_editoriales |
|---|---|---|
| ISBN |
Nombre_Autor |
Nombre_Editorial |
| Titulo |
Apellidos_Autor |
Nacionalidad_Editorial |
| Numero_Paginas |
Fecha_Nacimientos_Autor |
codigo_editorial |
| codig_autor |
Nacionalidad_Autor |
|
| codigo_editorial |
codigo_autor |
Por lo tanto debemos crear de algún modo unos punteros que apunten a la tabla autores y otro para la tabla editoriales, para conocer en todo momento el autor y la editorial de cada libro. De este modo, añadimos un campo a cada tabla, para que sirva de vínculo entre ellas (codigo_autor y codigo_editorial). Veremos como hacerlo más adelante, de momento quédate con la idea los problemas planteados y las soluciones que vamos adoptando y explicando.
En el momento de relacionar las tablas podemos obligar a que se sincronicen mediante relaciones de integridad, de modo que por ejemplo un libro siempre apunte a una editorial que exista en nuestra tabla de editoriales.
Las relaciones se asocian a columnas clave y suelen identificarse con el mismo nombre. Por norma general (no siempre es así), la relación vincula la clave principal de una tabla (recuerda que la clave principal asegura que un registro sea único) con la clave externa (FOREIGN KEY) de la otra tabla.
Existen los siguientes tipos de relación:
La más utilizada es la primera de ellas, Relación uno a varios. Que indica que un mismo registro aparece varias veces vinculado en otra tabla y que sin embargo asegura que el registro de la tabla destino sólo aparece una vez. No es tan complicado como parece, en nuestro ejemplo, sabemos que una editorial aparece vinculada para varios libros, este es un buen ejemplo de relación uno a varios.
La relación varios a varios, permite que la tabla1 tenga varios registros que coincidan en la tabla2 y viceversa. Para estas relaciones se utilizan tablas auxiliares "puente" entre las relaciones de las tablas.
Y por último la relación uno a uno, exige que una fila de la tabla1 sólo pueda coincidir con una fila de la tabla2 y viceversa. Este tipo de relación a penas es utilizado.
Para configurar las relaciones con SQL Server 2005, debemos pinchar con el botón derecho sobre la columna deseada y seleccionar la opción RelationShips:

Pulsamos sobre el botón Add para añadir una nueva relación. Las propiedades que podemos configurar desde esta ventana son las siguientes:
| Propiedad | Función |
|---|---|
| Check Exisitng Data On Creation Or Re-Enabling |
Comprueba los datos existentes en el momento de la creación. Garantiza la restricción de los datos que ya existen cuando se crea la clave externa en la tabla. |
| Enforce For Replication |
Exige relación para la duplicación. Aplica esta restricción cuando copiemos esta tabla en otra base de datos. |
| Enforce Foreign Key Constraint |
Exige la restricción de clave externa. |
| INSERT And UPDATE Sepecification |
Permite colocar reglas para la actualización y la eliminación de datos en cascada. Es decir, una modificación en la clave principal provoca la modificación automática en las claves foráneas. |
Inscríbete ahora y accede a 3 unidades gratis
Evalua el curso de ASP NET 2.0 Avanzado y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....
Los diagramas de bases de datos permiten obtener una vista de la estructura de la base de datos que hemos creado. De este modo podremos visualizar las tablas creadas y sus relaciones.
Podemos tener todos los diagramas de bases de datos que deseemos, en cada diagrama podemos mostrar la totalidad de las tablas o bien un determinado número. Una misma tabla puede aparecer en varios diagramas.
Desde los diagramas podemos crear nuevas tablas y realizar modificaciones en ellas. Pero para esta tarea se aconseja utilizar los métodos que hemos explicado hasta ahora por ser más claros y extensos.
La principal ventaja que nos ofrecen los diagramas es el la comodidad de poder realizar y estudiar las relaciones entre tablas de un modo visual, lo cual ofrece una información muy clara de cual es la estructura de las relaciones creadas. De este modo, podemos identificar rápidamente el tipo de relación existente entre dos tablas. Dos tablas relacionadas aparecen unidas por líneas y en el extremo de estas líneas tenemos unos iconos que nos indican el tipo de relación. Además, el estilo de estas líneas ofrece información sobre el tipo de sincronización o de las restricciones establecidas en la relación.
| Iconos. | Tipo de relación. |
|---|---|
|
Relación uno a varios. | |
|
Relación varios a varios. | |
|
Relación uno a uno. |
Los diagramas de bases de datos se almacenan en la carpeta DataBase Diagram, para crear un nuevo diagrama pulsamos con el botón derecho y seleccionamos New DataBase Diagram. Una vez abierta la ventana para los diagramas, podemos pulsar con el botón derecho en una zona libre de la ventana y se nos muestra un menú para realizar la mayoría de operaciones posibles:

| Opciones. | Función. |
|---|---|
| New Table... |
Crear una nueva tabla en la base de datos. |
| Add Table... | Añadir una tabla existente al diagrama. |
| New Text Annotation | Permite explicar "notas" o comentarios de texto en el diagrama. |
| Select All | Selecciona todos los objetos de las tablas. |
| Show Relationship Labels | Muestra etiquetas con los identificadores de las relaciones. |
| Arrange Tables | Reordena nuestras tablas de modo automático de forma que las líneas de relaciones no se entrecrucen para ofrecer mayor claridad. |
| Zoom |
Zoom de la vista, permite alejar o acercar las vistas. |
| View Page Breaks |
Muestra el diagrama dividido por páginas para ofrecer una vista previa de como quedaría una impresión de las páginas. |
| Recalculate Page Breaks | Actualiza la división de páginas. |
| Copy Diagram to Clipboard | Copia el diagrama de base de datos en el portapales. |
Para establecer una relación en el diagrama, es tan sencillo como seleccionar la columna de una tabla y arrastrar el ratón hasta la tabla con la que se desea vincular, en función de la restricción de estas columnas SQL Server nos ofrece por defecto el tipo de relación más común para esas columnas.
En los siguientes videos se toma como base el ejemplo de la biblioteca con las tablas libros, autores y editoriales, en ellos podrás aprender el proceso completo de creación de tablas, relaciones, diagramas de bases de datos e inserción de registros,
Inscríbete ahora y accede a 3 unidades gratis
Evalua el curso de ASP NET 2.0 Avanzado y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....
Copyright 2008© ADRInfor S.L. Logroño | Tel: 941250116 Fax: 941236805 | Email | Politica de Privacidad