Archive for 27 julio 2011

Examen 70-432 TS: Microsoft SQL Server 2008, Implementation and Maintenance

julio 27, 2011

Logo SQL Server 2008

Dando mis charlas de SQL Server 2008 estos días pasados en el Instituto, hubieron varias ocasiones en que me preguntaron algunos de los asistentes, si habia alguna certificación de Microsoft que fuera sobre mantenimiento de Bases de Datos, inmediatamente respondí “sí la hay”.

Les heblé entonces a “grosso modo” acerca de la TS: Microsoft SQL Server 2008, Implementation and Maintenance y quedamos pendientes para esta semana antes de que se acabe el semestre, poder darles una charla mas concreta acerca de esta certificación.

Para poder obtener esta certificación el candidato debe poseer cierto perfil:

  • Uno a Dos años de experiencia usando SQL Server 2008 o de Dos a Tres años de experiencia trabajando con versiones anteriores de SQL Server.
  • Trabajar en entornos donde SQL Server 2008 sea parte de una solución global
  • Administrar Sistemas que ejecuten SQL Server 2008
  • Trabajar con aplicaciones de terceros que se basen en SQ Server 2008
  • Desarrollar o construir aplicaciones que utilicen SQL Server 2008

Después de ver si cumplimos o no con el perfil, debemos tener en cuenta los conocimientos a evaluar:

  • Instalación y Configuración de SQL Server 2008
  • Mantenimiento de Instancias de SQL Server
  • Gestión de Seguridad de SQL Server
  • Mantenimiento de Bases de Datos en SQL Server
  • Realización de tareas de Gestión de Datos
  • Monitoreo y Solución de problemas en SQL Server
  • Optimización de Rendimiento de SQL Server
  • Implementación de Alta Disponiblidad

Para poder tener una buena preparación es recomendable seguir las indicaciones y sugerencias de Microsoft acerca del material de estudio:

Entrenamiento en clase
•10775A: 70-462 Implementing, Configuring, and Maintaining Microsoft SQL Server Code Name “Denali” (5 Days)
•10774A: 70-461 Writing Queries with Microsoft SQL Server Transact-SQL (5 Days)
•6231B: Maintaining a Microsoft SQL Server 2008 R2 Database (5 Days)
•6231BD: Maintaining a Microsoft SQL Server 2008 R2 Database (5 Days)
•10776A: 70-463: Building, Supporting, and Developing Databases for Microsoft SQL Server Code Name “Denali” (5 Days)
•6231A: Maintaining a Microsoft SQL Server 2008 Database (5 Days)
•6232B: Implementing a Microsoft SQL Server 2008 R2 Database (5 Days)
•LP432A: Learning Plan for Implementing and Maintaining Microsoft SQL Server 2008 (Exam 70-432) (1 Forms)
•6232BD: Implementing a Microsoft SQL Server 2008 R2 Database (5 Days)
•2778A: Writing Queries Using Microsoft SQL Server 2008 Transact-SQL (3 Days)

Microsoft E-Learning
•6369AE: Implementing and Maintaining Microsoft SQL Server 2008 (16 Hours)
•2778CE: Writing Queries Using Microsoft SQL Server 2005 Transact-SQL (18 Hours)

Microsoft Press Books
•MCTS Self-Paced Training Kit (Exam 70-432): Microsoft SQL Server 2008 – Implementation and Maintenance

Practice Tests
•MeasureUp
(Measureup.com)
•Self Test Software
(Selftestsoftware.com)

Recusros Microsoft Online
•Microsoft SQL Server 2008 – Learning Portal
•Product information: Visita el sitio SQL Server 2008 para informacion detallada del producto.
•Microsoft Learning Community: Grupos y comunidades de foros que discuten sugerencias, recusrsos de entrenamiento y tips para certificarse.
•TechNet: Diseñado para los profesionales IT, este sitio incluye instrucciones “How-To”, practicas, descargas, recursos técnicos, newsgroups y chats.
•MSDN: Diseñado para desarrolladores, la red Microsoft Developer Network (MSDN) ofrece códigos de ejemplo, artículos técnicos, descargas, newsgroups y chats.

Para mayor información pueden revisar el sitio oficial de la certificación en:
TS: Microsoft SQL Server 2008, Implementation and Maintenance

Como siempre espero haberles ayudado en aclarar sus dudas, cualquier cosa no dejen de contactarme que con gusto les responderé.

Saludos!

Roberto Pozo

Anuncios

SQL Server 2008 T-SQL Database & Tables

julio 26, 2011

Hola!… Después de un merecido fin de semana de descanso, les traigo este nuevo video tutorial acerca de como crear Bases de Datos y tablas a través del Command Prompt del SQL Server.

En algunas ocasiones puede que no podamos ingresar a nuestro SQL Server Management Studio, pero con esta herramienta no necesitaremos preocuparnos para poder trabajar con nuestras bases de datos.

Como siempre ante cualquier duda o consulta, comuniquense y con gusto les ayudaré.

Saludos!
Roberto Pozo

SQL Server 2008 UNIQUEIDENTIFIER Video Tutorial

julio 22, 2011

Logo SQL Server 2008

En esta ocasión les presento el video tutorial de SQL Server 2008 UNIQUEIDENTIFIER, en este paso a paso veremos como crear los identificadores únicos a través de Microsoft SQL Server 2008 Management Studio y el tipo de datos UNIQUEIDENTIFIER.

Espero les ayude en sus proyectos.

Como siempre ante cualquier duda comuniquense y con gusto les ayudaré.

Saludos!
Roberto Pozo

SQL Server 2008 Reportes en Excel Video Tutorial

julio 22, 2011

Logo SQL Server 2008

En esta oportunidad les presento el video tutorial de como crear Reportes Sencillos Urgentes de SQL Server 2008 con Microsoft Excel

Como siempre antes cualquier duda comuniquense y con gusto les ayudaré.

Saludos!
Roberto Pozo

SQL Server 2008 UNIQUEIDENTIFIER

julio 21, 2011

Logo SQL Server 2008

Hola; hoy hablaremos acerca de un tipo de datos que podemos utilizar en SQL Server 2008, que es algo desconocido para muchos, hablaremos de el tipo UNIQUEIDENTIFIER

…En muchas soluciones de almacenamiento de datos, se presentan situaciones donde es necesario garantizar la exclusividad de un valor específico, es decir que sea UNICO.

No es suficiente garantizar que el valor sea único dentro de un solo tipo de base de datos, a veces es necesario asegurarse de que el valor sea único a través de diferentes sistemas.

Afortunadamente, podemos tomar ventaja del tipo de datos UNIQUEIDENTIFIER para garantizar un valor distinto y único para una fila determinada, incluso podemos asignar este tipo de datos a una variable en un programa.

SQL Server se basa en este tipo de datos para ayudar a garantizar la integridad de importantes operaciones internas, como la fusión y la replicación transaccional.

Como podemos imaginar, estos valores pueden ser bastante grandes, ya que deben ser distintos, en este ejemplo, podemos observar como estos identificadores únicos se ven:

SQL Server 2008 UNIQUEIDENTIFIER Ejemplo 1

Para generar estos valores únicos, SQL Server 2008 toma ventaja de la función NEWID para crear un valor de identificador único para nosotros.

Veamos como crear estos valores con un ejemplo:

SQL Server 2008 UNIQUEIDENTIFIER Creando tabla

Creamos una nueva tabla a la cual le hemos asignado el nombre uniqueid, en esta tabla se ha creado una columna llamada Id_Unico que es en donde le diremos a SQL Server 2008 que inserte los valores UNICOS asignandole el tipo de valor que tendrá que será del tipo UNIQUEIDENTIFIER, a continuación, insertaremos dos filas en la tabla mediante el uso de esta función de utilidad:

SQL Server 2008 UNIQUEIDENTIFIER Insertando Valores

Aprovechando la función NEWID y conociendo que los valores que tendrá ese campo deben ser UNIQUEIDENTIFIER, SQL Server 2008 asiga los valores que se insertarán dentro del campo en cuestión, asegurandose de que cada valor sea unico y distinto.

Como vimos mas arriba, los valores asignados en la tabla serían los siguientes, para este ejemplo:

UNIQUEIDENTIFIER Mostrando Datos Unicos

Como podemos observar en este ejemplo, crear identificadores únicos para nuestras aplicaciones es realmente facil y sencillo gracias al tipo de dato UNIQUEIDENTIFIER y a la funcion NEWID.

Como siempre ante cualquier duda no dejen de contactarse conmigo que con gusto les ayudaré.

Saludos!
Roberto Pozo

SQL Server 2008 Normalizando Bases de Datos Tercera Forma Normal

julio 20, 2011

Logo SQL Server 2008

Luego de una semana extremadamente ocupada dando mis talleres y charlas, he vuelto para poder culminar estos artículos de Normalización de Bases de Datos…

Esta es la última parte donde hablaremos de la Tercera Forma Normal, la cual es un poco compleja para enetenderla desde el primer momento que se vé, así que trataré de ser lo mas claro posible…

Empezemos:

Una tabla en la tercera forma normal debe estar en la segunda forma normal y cada columna de clave no-principal debe ser no-transitiva (o directamente) dependiente sólo de la clave principal. En otras palabras, si alguna de las columnas de clave no-primaria dependen directamente de las otras columnas de claves no-primarias, la tabla no está en la tercera forma normal.

La diferencia entre la segunda forma normal y la tercera forma normal a veces no se logra comprender entre las personas que aprenden acerca de las formas normales por primera vez. La mayor diferencia es que la segunda forma normal se centra en la clave principal como una clave compuesta y requiere columnas con clave no-primaria que dependan completamenete de la clave primaria, no sólo una parte de ella.

Fijémonos en esta imagen:

SQL Server 2008 Tercera Forma Dependencia Directa

En la imagen anterior podemos observar que la tabla no está en la tercera forma normal, debido a la columna Telefono_Cliente.

La columna Telefono_Cliente depende directamente en la columna Nombre, en este sentido sería Nombre del cliente, debido a que este cliente realizó el pedido, el número de teléfono está en una relación indirecta con la clave principal IDPedido, que muestra una relación transitiva entre el Telefono_Cliente y el IDPedido.

Pensemos en un vendedor que sea el encargado de rellenar los datos para este pedido, si un cliente hace 50 pedidos, sería necesario entonces introducir el número de teléfono 50 veces diferentes en el pedido.

Para hacer compatible la tabla de pedidos con la tercera forma normal, es necesario crear una tabla Clientes y poner los datos de los clientes asociados en la tabla.

Veamos otra imagen para darnos una mejor idea:

SQL Server 2008 Tercera Forma Correcta

Como podemos observar, las columnas Nombre y Telefono_cliente han sido sustituidas por una columna IDCliente, además, en lugar de sólo el nombre del cliente y el número de teléfono, la tabla de clientes tiene todos los datos de los clientes asociados.

Con esto podemos tener una base de datos que cumpe con las tres (3) formas normales principales.

Hasta aquí llega este tema de normalización, ya que sólo íbamos a cubrir las tres primeras formas, espero les sean de ayuda para poder crear bases de datos normalizadas que les ayudarán a mantener una aplicación exitosa.

Como siempre ante cualquier duda comuníquense y con gusto se las aclararé.

Saludos!
Roberto Pozo

SQL Server 2008 Creando Reportes Sencillos Urgentes con Excel

julio 13, 2011

SQL SERVER 2008

En ocasiones puede suceder que el jefe de la empresa le solicite a un Administrador IT en SQL Server 2008 un informe o reporte urgente en una hoja de Excel para poder revisar cierta información que en los reportes online que se han creado no aparezca, o porque simplemente desea llevarse a su casa un informe menos formal para analizarlo y revisarlo cómodamente en la tranquilidad de su casa, o sólo porque es el jefe quiere ver que tan rápido puede el Administrador de Bases de datos resolver ciertas situaciones.

La manera más rápida y cómoda para crear este reporte es la siguiente:

En primer lugar abrimos el Excel para tener un nuevo libro disponible para trabajarlo.

SQL Server hoja excel

Luego hacemos clic en la pestaña Datos y encontraremos a mano superior izquierda cinco (5) opciones para obtener datos externos (Desde Access, Desde Web, Desde Texto , De otras fuentes y Conexiones existentes), cliqueamos en la opción De otras fuentes y seleccionamos Desde SQL Server , esto nos creará una conexión a la tabla que solicitemos en nuestro servidor SQL y nos importará los datos a Excel como una tabla o como un reporte de tabla dinámica.

Opciones de conexion

Nos aparecerá la ventana del asistente para la conexión de datos, en esta primera pantalla escribiremos el nombre del servidor SQL al cual nos conectaremos y seleccionaremos la forma de conectarnos, pudiendo elegir entre dos, “Utilizar autenticación de Windows” o “Utilizar nombre de usuario y contraseña”, en donde escribiremos los datos de autenticación con los cuales nos conectamos al servidor.

Configurando conexiones

Luego hacemos clic en siguiente y el asistente se conectará a nuestro SQL Server y nos mostrará en una nueva pantalla las Bases de Datos a las que tengamos acceso, seleccionamos la base de datos a consultar y nos enseñará en la parte inferior de la ventana, las tablas correspondientes a la BD seleccionada.

Seleccionando Bases de datos y tablas

Seleccionamos la tabla con la que queremos interactuar y damos clic en siguiente, esto nos enviará a otra ventana del asistente donde guardaremos un archivo de conexión para futuros usos y le asignaremos un nombre descriptivo para tener un mejor control

Guardando Conexion

En esta ventana podemos también asignar palabras claves de búsqueda para cuando tengamos una cantidad muy grande de conexiones creadas poder buscarlas con mayor facilidad.

NOTA: Si hacemos clic en el botón Examinar en Nombre de Archivo, podemos guardar nuestro archivo de conexión en otro directorio que no sea el asignado por defecto.

Luego de rellenar los campos solicitados hacemos clic en finalizar y se cerrará el asistente para abrir una nueva ventana de importación de datos, seleccionamos la manera de cómo deseamos importar y ver los datos importados dentro del libro,

Seleccionanado tipo Importar Datos

Seleccionamos la celda en donde deseamos que se inicie la incrustación de datos y damos clic en aceptar.

Se cargarán los datos importados dentro de nuestro libro y podremos empezar a trabajar con ellos, en este caso he seleccionado “Tabla” como opción de importación.

Mostrando los datos cargados

Al llegar a este punto podremos jugar con los datos recogidos (Para este ejemplo he utilizado la base de datos AdventureWorks2008 y la tabla Address), por ejemplo que nos muestre solo a las personas que vivan en la ciudad de “Albany”.

Nos ubicamos en la celda CITY hacemos clic en la flecha, esto nos desplegará un menú y seleccionamos la Ciudad mencionada.

Jugando con los datos

Damos clic en aceptar y nos mostrará sólo los datos que solicitamos.

Resultados de Consulta

Así sucesivamente podemos jugar con los dato y mostrar la información que nos soliciten al momento.

Como habrán podido observar, el SQL Server 2008 tiene la potencia necesaria y la adaptación para poder acoplarse con facilidad a la mayoría de las herramientas en las que podamos leer bases de datos, y de una manera completamente rápida, fácil y eficaz.

Como siempre ante cualquier duda avísenme y con gusto se las aclararé.

Saludos!
Roberto Pozo

SQL SERVER 2008 Normalizando Bases de Datos Segunda Forma Normal

julio 12, 2011

Logo SQL Server 2008

Después de haber conocido como se establece la primera forma normal, empezaremos con este tercer artículo donde nos veremos como se establece la segunda forma normal.

*La segunda forma normal afirma que las tablas deben estar en la primera forma normal y cada columna debe depender de la clave principal.

*La segunda forma normal sólo entra en juego en las tablas que tienen más de una columna designada como la clave principal.

*Tener más de una columna como la clave principal también se conoce como una clave compuesta.

*Si una tabla no tiene una clave compuesta (sólo una columna se designa como la clave principal), y la tabla está en la primera forma normal, entonces se considera automáticamente que está en la segunda forma normal.

*En comparación; si una tabla tiene una clave primaria compuesta, se encuentra en la primera forma normal, y tiene columnas que no son dependientes de cada una de las columnas de la clave primaria, entonces no está dentro de lo que se estipula en la segunda forma normal.

Veamos la siguiente imagen:

Segunda Forma Normal Estableciendo Criterios

Sólo la tabla DetallesPedidos tiene una clave compuesta (formada por las columnas IDPedido y IDProducto). Porque ambas tablas Pedidos y Productos tienen sólo una columna con clave principal, entonces ellas son automáticamente consideradas compatibles con la segunda forma normal, siempre y cuando estén en la primera forma normal.

Ahora bien, la tabla DetallesPedidos para ser compatible con la segunda forma normal, cada una de las columnas de clave no primaria (Cantidad y Fabricante) deben ser totalmente dependientes de la clave primaria completa (Ambas columnas IDPedido y IDProducto), la columna Cantidad es totalmente dependiente, ya que identifica la cantidad de los muchos productos (IDProducto) que se han ordenado en este pedido (IDPedido).

Sin embargo, la columna del fabricante no es dependiente de la clave principal, porque el fabricante es dependiente del producto (IDProducto), pero no en este pedido actual (IDPedido), pero si movemos la columna del fabricante de la tabla DetallesPedidos a la tabla de los productos lograremos hacer que sea compatible con la segunda forma normal.

Con esta última observación de mover la columna del fabricante a la tabla Productos, terminamos el tema de la Segunda Forma Normal.

Como siempre ante cualquier duda comuníquense y con gusto se las aclararé.

Saludos!
Roberto Pozo

SQL Server 2008 Normalizando Bases de Datos Primera Forma Normal

julio 9, 2011

Logo SQL Server 2008

Continuando con nuestros artículos sobre Normalización de Bases de Datos, continuamos esta segunda parte para conocer y explicar la Primera Forma Normal, sin más preámbulos comencemos:

PRIMERA FORMA NORMAL: No repetir grupos;
La primera forma normal establece que no se deben repetir elementos o grupos de elementos dentro de las tablas, también establece que cada una de las columnas debe ser “Atómica”, estas reglas podríamos catalogarlas así:
• Más de un valor no puede ser almacenado en ninguna celda (repetir grupos dentro de las columnas); Por ejemplo, para la columna ProductosComprados, puede incluirse solo un producto comprado, no se pueden ingresar dos productos comprados.

• Más de una columna no se debe usar para definir el mismo tipo de dato (repetir grupos a través de las columnas); Por ejemplo, Si se compra más de un producto, no puede existir dentro de la misma tabla Producto1, Producto2, Producto3, etc…

• Las columnas deben ser “Atómicas”; Los datos de una columna deben ser divididos a su más mínima expresión de valor, por ejemplo para la columna Nombre deberíamos dividirla en tres (3) columnas; PrimerNombre, Segundo Nombre, Apellido.

NO REPETIR GRUPOS DENTRO DE UNA COLUMNA:
Un grupo repetido dentro de una columna es un grupo donde más de un valor es incluido dentro de la misma columna, por ejemplo; Imaginemos que tenemos una tabla para guardar toda la información de las ventas, por cada venta que se haga se almacena el nombre del cliente, la fecha y el producto comprado.

Para darnos una idea veamos la siguiente imagen, en la cual se viola completamente la primera forma normal

Grupo Repetido dentro de columnas

Podemos observar que tenemos tres (3) columnas (Descripción, Cantidad y Precio), que poseen grupos repetidos, nuestro cliente compró dos (2) libros y la descripción de ambos libros se encuentran en la columna “Descripción”, al mismo tiempo podemos observar que las dos cantidades se encuentran en la columna “Cantidad” y lo mismo ocurre con la columna “Precio” donde encontramos el precio de ambos libros, todos estos datos se separan solamente por una simple coma (,).

Imaginemos entonces que con esta tabla quisieramos hacer la siguientes consultas:
Cantidad de Libros vendidos por autor
Catidad de Libros vendidos por tema
Cantidad de Libros vendidos por precio
Porcentaje de Ventas generadas por mes
Y paremos de contar…

Como podemos observar estas consultas son casi imposibles de hacer por la redundancia que tenemos en la data.

Ahora bien para poder cumplir con la primera forma normal, entonces deberiamos colocar un sólo dato en cada columna, en la columna descripcion colocariamos la descripcion de un solo libro, solo una cantidad en la columna cantidad y un solo precio en la columna precio. Excelente!!! Diran muchos, sin embargo el hecho de limitar los datos a un solo valor por columna no será realmente suficiente para poder solucionar el problema, y ya veremos el por qué.

NO REPETIR GRUPOS A TRAVES DE LAS COLUMNAS:
Un grupo repetido a través de columnas es un grupo donde múltiples columnas son agregadas a la tabla para introducir el mismo grupo de datos, supongamos que un desarrollador novato quiere solucionar el problema mostrado anteriormente (Grupos repetidos dentro de una columna), entonces decide que la mejor solución es agregar mas campos a la tabla para poder agregar los datos que se repiten y así solventar la situación creando la siguiente tabla…

Grupo Repetido cruzado entre columnas

Wow… Funciona!!! dirán algunos, pero este desarrollador ha cometido un error, está repitiendo grupos a través de las columnas y esto es una violación a la primera forma normal, ha creado una segunda columna para Descripción, Cantidad y Precio que las ha llamado Descripcion2, Cantidad2 y Precio2.

Esto NO FUNCIONA y TAMPOCO SOLUCIONA el problema, ya que si un cliente puede querer comprar cinco (5) productos o setenta (70) o mil (1000), no podemos añadir una cantidad suficiente de campos para los grupos repetidos y así poder solventar cualquier condición posible.

Imaginemos que tenemos un supermarket donde limitamos a los usuarios a comprar solamente dos productos por vez; “Lo sentimos señor, por favor vuelva mañana para que pueda comprar otros dos productos mas”…

… Esa no es la solución ni la manera de llevar un negocio, mucho menos es la forma de crear una Base de datos que cumpla con la primera forma normal, sin embargo una solución a esto podria ser crear dos o mas tablas relacionadas entre sí, por ejemplo:

Creamos dos tablas (Pedidos y DetallesPedidos) para las ordenes de compra realizadas por los clientes, y los grupos de repeticion los sacamos de la tabla Pedidos y los añadimos a una columna relacionada DetallesPedidos, haciendo que las dos tablas estén relacionadas en la columna IDDetallesCompra.

Primera Forma Normal Solucion

Ahora nuestra tabla DetallesPedidos tiene columnas para describir el producto, la cantidad y el precio, lo que nos permite tener tantas filas en la tabla DetallesPedidos según sea necesario ya que ésta se relaciona con la tabla Pedidos.

ATOMICO:
Los valores atómicos son valores que no pueden ser reducidos a un valor menor, eso ya lo tenemos claro, pero ahora veamos un caso sencillo, supongamos el valor NOMBRE, una columna nombre puede incluir el nombre completo de una persona, es decir primer nombre, segundo nombre y apellidos, por Ejemplo: Roberto Enrique Pozo, pero este valor NOMBRE no es “atómico”, porque el nombre no está reducido a sus valores significativos mas pequeños.

Para un nombre los valores significativos mas pequeños serían el primer nombre, el segundo nombre o la inicial del segundo nombre y el apellido, entonces para dividir un nombre dentro de sus valores atómicos más pequeños simplemente lo dividimos en tres (3) columnas una para el primer nombre, una para el segundo nombre o la inicial y una para el apellido.

Ahora muchos se preguntarán:
¿Si aplicamos este concepto de la primera forma normal, los valores dentro de una columna no se pueden dividir a un valor menor?

La respuesta que muchos dirán es SI, sin embargo deberíamos crear una columna para cada letra del alfabeto y esto sería realmente ridículo hacerlo, por eso la mejor opción es crear como se menciona arriba, una columna para el nombre, una columna para la INICAL del segundo nombre (Acá si reducimos a la mas mínima expresión esta columna – Queda “Atómica” ya que solo tendrá una letra),y, una columna para el apellido.

Las columnas con valores atómicos hacen mas sencillo crear consultas basadas en atributos individuales de nombres, por ejemplo podemos hacer búsquedas sencillas basadas en el primer nombre o en el apellido y tambien es mucho más fácil crear consultas que se puedan ordenar alfabeticamente ya sea por el primer nombre o por el apellido.

Con esta última observación acerca de las columnas atómicas, terminamos el tema de la Primera Forma Normal.

Como siempre ante cualquier duda comuníquense y con gusto se las aclararé.

Saludos!
Roberto Pozo

SQL Server 2008 Normalizando Bases de Datos… Introducción

julio 9, 2011

Logo SQL Server 2008

Una de las fallas principales por las que pasamos los desarrolladores al momento de implementar o crear Bases de Datos en SQL server 2008 o en cualquier motor de BDs es la falta de normalización en las mismas.

Esto conlleva, que normalmente creemos campos duplicados dentro de las tablas, provocando así que nuestras bases de datos sean extremadamente complejas, ocupen mayor espacio y recursos, además de crearnos un montón de problemas a la hora de actualizar, hacer consultas, realizar mantenimiento, etc….

Si normalizamos nuestras Bases de Datos podemos prevenir muchos de estos problemas, por ejemplo:

Supongamos que tenemos una compañía en la que vendemos varios tipos de productos a nuestros clientes, la información de cada uno de nuestros clientes la tenemos almacenada en una Base de Datos en la cual incluimos el nombre, apellido, dirección, teléfono, email , ciudad y país.

En esta base de datos no normalizada hemos creado una simple tabla, lo cual nos podría traer como consecuencia algunos problemas cuando tratemos de hacer consultas o al intentar modificar los datos existentes.

En este artículo sólo hablaré de las principales formas normales en modo de introducción, ya que es un tema un poco extenso y por eso he decidido dividirlo en cuatro (4) partes, Introducción, Primera Forma Normal, Segunda Forma Normal y la última será Tercera Forma Normal…

…Como hemos comentado más arriba estos problemas podrían ser:

Duplicación de Datos:
En una base de datos no normalizada, la información de un cliente puede ser ingresada cada vez que él haga una compra, almacenando los datos del cliente en una tabla Compras, esto trae como resultado la duplicidad de trabajo, además que es muy difícil que la información sea ingresada de la misma manera cada vez, por ejemplo revisemos las distintas maneras que un empleado puede ingresar un nombre (Marcos Gonzales), o una ciudad por ejemplo San Francisco (SF, San Fran, SFO), etc…

Una base de datos normalizada previene precisamente la duplicidad de trabajo y la asociación de los tipos.

Problemas de actualización:
Supongamos que la dirección de uno de nuestros clientes debe ser actualizada porque se ha mudado de domicilio, pero los datos del mismo han sido ingresados en múltiples lugares dentro de nuestra base de datos, esto provocaría que la actualización debería hacerse en los múltiples lugares donde haya sido ingresada la data, si la actualización no la hacemos en esos múltiples sitios dentro de nuestra base de datos, entonces la información llegaría a ser inconsistente, es decir sería correcta en algunos lugares e incorrecta en otros.

Problemas de Consulta:
Los datos en una base de datos que no está normalizada son difíciles de revisar, por ejemplo si en la tabla de pedidos, por cada compra que haga nuestro cliente se ingresan los datos del mismo, y el cliente hace varias compras en el transcurso del mes, tendremos una gran cantidad de información repetida, si el cliente se muda de domicilio, el único lugar donde la dirección sería la correcta correspondería a la última compra realizada por él.

Si revisáramos las órdenes de compra aleatoriamente la mayoría de la información sería incorrecta.

Para prevenir precisamente este tipo de fallas, es que se han creado ocho (8) formas de normalización, siendo las más comunes las tres primeras que son:

Primera forma normal: La tabla no debe tener grupos repetidos, y cada una de las columnas debe ser “Atómica”; Atómica no significa que deben ser explosivas, al contrario, Atómica significa que las columnas deben reducirse al menor valor posible.

Segunda forma normal: Cada columna depende de una clave primaria, la segunda forma normal aplica sólo cuando una tabla tendrá una clave primaria compuesta.

Tercera forma normal: Cada columna depende directamente de una clave primaria, esto es columnas sin clave primaria no serán directamente dependientes de otras columnas sin clave primaria.

Las formas normales son estrictamente progresivas para cada una de las formas normales superiores, es decir, la tercera forma normal es estricta con la segunda forma normal, la segunda forma normal es estricta con la primera, ¿qué decimos con esto? Que si una tabla cumple con la segunda forma normal, entonces por definición es también una tabla de primera forma normal.

Hasta acá llega esta introducción de normalización de Bases de datos.

Como siempre ante cualquier duda comuníquense y con gusto se las aclararé.

Saludos!
Roberto Pozo