Inicio » Informática profesional. » Novedades 2008 » Curso de ASP NET Avanzado » Administración de bases de datos.

Curso de ASP NET Avanzado

Cursos Relacionados:

Administración de bases de datos.

Una 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 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....


Crear bases de datos con el administrador.

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 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....


Creación de tablas.

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 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.

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.
Datos binarios.

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 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....


Datos caracter.

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 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....


Datos de fecha y hora.

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 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....


Datos Numéricos.

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 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....


Datos monetarios.

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 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 especiales.

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 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....


Restricciones y valores permitidos.

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 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....


Crear tablas con el administrador.

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 3.5 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 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....


Relaciones.

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:

  • ISBN.
  • Titulo.
  • Numero_páginas.
  • Fecha_Publicación.
  • Nombre_Autor.
  • Apellidos_Autor.
  • Fecha_Nacimiento_Autor.
  • Nacionalidad_Autor.
  • Nombre_Editorial.
  • Nacionalidad_Editorial.

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:

  • Relación uno a varios.
  • Relación varios a varios.
  • Relación uno a uno.

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 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....


 Diagramas de bases de datos.

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 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....


Si desea obtener un acceso sin restricciones a los contenidos del curso de ASP NET Avanzado y disfrutar de todas las herramientas del aula virtual (Videos explicativos streaming, acceso a los foros, chat, ejercicios resueltos, la ayuda del tutor, audioconferencia, estudio de grabación, test y actividades de autoevaluación, etc...) puede inscribirse completamente gratis y comenzar a realizar de forma inmediata el curso.