luis palacio

luis palacio

miércoles, 26 de enero de 2011

NORMALIZACION DE BASE DE DATOS

Qué es la normalización 

Normalización es un conjunto de reglas que sirven para ayudar a los diseñadores a desarrollar un esquema que minimice los problemas de lógica. Cada regla está basada en la que le antecede. La normalización se adoptó porque el viejo estilo de poner todos los datos en un solo lugar, como un archivo o una tabla de la base de datos, era ineficiente y conducía a errores de lógica cuando se trataba de manipular los datos. Por ejemplo, vea la base de datos MiTienda. Si almacena todos los datos en la tabla Clientes, ésta podría verse como se muestra a continuación: 
Clientes 
ID_Cliente Nombre 
Apellidos 
Nombre_Producto1 Costo_Producto1 
Imagen_Producto1 Nombre_Producto2 Costo_Producto2 
Imagen_Producto2 Fecha_Pedido 
Cantidad_Pedido 
Nombre_Cia_Envios 
Siempre que un analista de sistemas de base de datos arma una base de datos, queda a su cargo descomponer dicha base en grupos y segmentos deregistros. Este proceso es la descomposición; el mismo es necesario independientemente de la arquitectura de la base de datos - relacional, red o jerárquica-. Sin embargo, para la base de datos relacional, la acción correspondiente puede dividirse y expresarse en términos formales y se denominanormalización a la misma.
La normalización convierte una relación en varias sub-relaciones, cada una de las cuales obedece a reglas. Estas reglas se describen en términos de dependencia. Una vez que hayamos examinado las distintas formas de dependencia, encontraremos procedimientos a aplicar a las relaciones de modo tal que las mismas puedan descomponerse de acuerdo a la dependencia que prevalece. Esto no llevará indefectiblemente a formar varias subrelaciones a partir de la única relación preexistente.
 NORMAS
·         Primera forma normal
Para que una relación esté en primera forma normal (1 FN), debe ser solamente una relación propia, una matriz m por n, donde:
• Ninguna celda de la matriz está vacía;
• El valor n cualquier columna está definido por el dominio para dicho atributo.
• Cada tupla tiene una clave que la identifica en forma unívoca, pero dicha clave no significa orden.
La aplicación determina la relación
Para que una relación sea normalizada en pasos adicionales, debe encontrarse en la primera forma normal. Colocar los datos en la primera forma normal está a cargo del diseñador de la aplicación. Estos datos se encuentran disponibles de alguna manera inicialmente. Si la aplicación existe en forma manual, o ha sido anteriormente computarizada pero no todavía como relación, el diseñador reorganiza los datos de modo de conformar una matríz 1FN.
La segunda inicial más importante es la dimensión de la relación ¿cuántos componentes existen en la tupla o cuántas columnas en la tabla? ¿De qué manera se compara esto con el número de campos en el documento fuente?.
En la figura se puede observar un documento como muestra, una factura típica. Parte de la información es fija y otra variable. La figura nos muestra un formulario impreso dentro de l cual se ha agregado información. La impresión puede dividirse en dos categorías.
• Información descriptiva para el usuario
• Nombres de atributos.
La información impresa es necesariamente fija. Podemos observar el nombre de la compañía en la figura, así como otras particularidades (tales como el número de teléfono que no figura aquí). Otros nombres impresos corresponden a los atributos cuyos valores se escriben en el momento en que el formulario es llenado. Estos nombres de atributos son también los nombres de campos para almacenar los datos en el sistema. Los que se escribe son los valores de atributos.
La información convertida queda formada en tuplas. La próxima pregunta es cuantas tuplas representarán a la formación en esta forma. Debe notarse que el número de partes ordenadas varía de una factura o pedido a otro.

·         Segunda Forma Normal
Una relación está en segunda forma normal (2FN) solamente si todos los atributos son dependientes en forma completa de la clave.
Descripcion De La Segunda Forma Normal (2 Fn)
Su nombre ya nos indica el hecho de que la segunda forma normal es por lo general el próximo paso de normalización y descomposición. Para ser accesible a la normalización, y poder ser puesta en segunda forma normal, la relación debe poseer las siguientes propiedades:
• Debe estar en primera forma normal
• Debe tener una clave compuesta.
La consecuencia inmediata de los requerimientos expresados más arriba es que cualquier relación en primera forma normal que tiene una clave simple, está automáticamente en segunda forma normal. Comencemos con un ejemplo en forma de tabla de una relación consistente en 17 atributos, que se presenta en la figura. La misma se encuentra en primera forma normal y tiene una clave compuesta que consiste en dos atributos P y Q. Estos están subrayados en la figura para mostrar que sirven como clave. La tupla de relación puede también escribirse linealmente en forma simbólicamente:
R = (A,B,C,D,E,F,G,H,I,L,M,N,O,P,Q)
El próximo paso es crear un grafo de dependencia, presentando aquí como figura. Debe notarse que este grafo se crea examinado con conocimientos y atributos para determinar como participan y relacionan entre ellos.
No resulta suficiente analizar la matríz de relación, la cual puede hacernos creer que existe una dependencia debido a que la muestra de la cual se ha extraído dicha relación es pequeña. Si somos inducidos a error por los datos existentes y construimos una dependencia donde esta no existe, se planteará un problema. Cuando lleguen nuevos datos que contradigan la dependencia, deberá dejarse de lado el esquema completo.
Supongamos en consecuencia que el grafo que se puede observar en la figura ha sido derivado en forma funcional y que expresa correctamente las dependencias. Resulta claro a partir de este grafo que los atributos que parten de P son dependientes solamente de este. De un modo similar los que parten de Q dependen solamente de este último. Solamente aquellos que parten de la línea de trazos que conecta a P y Q tienen dependencia completa de ambos. Esta es la guía para la descomposición.

·         Tercera forma normal
Una relación se encuentra en tercera forma normal (EFN) si no existen transitividades entre sus atributos y si ya se encuentra en 2 FN.
Descripción
Una relación R a poner en tercera forma normal debe estar en la segunda forma normal. Es muy común que R sea una sub-relación; la relación original estaba en primera forma normal (para ponerla en segunda forma normal fue descompuesta en varias sub-relaciones). Estas son ahora candidatas a una descomposición adicional.
Recordamos que las propiedades de la segunda forma normal (2Fn) son:
• Tenemos una matríz m x n con un valor determinado para cada componente de cada tupla.
• Cada valor es obtenido a partir de un dominio propiamente definimos
• Cada valor contiene una clave, ya sea simple o compuesta
• Cada componente no clave es dependiente en forma completa de su clave.
En consecuencia es evidente que tenemos, o bien una clave simple, o una clave compuesta de la cual todos los componentes no clave son dependientes en forma completa.
El objeto de esta fase es determinar todas las dependencias transitivas; la descomposición producirá a continuación sub-relaciones para las cuales no existirán dependencias transitivas -la definición de la tercera forma normal (EFN)-.
Una dependencia transitiva abarca como mínimo tres componentes. Si los componentes fueran más, la dependencia múltiple puede derivarse en varias dependencias atransitivas de tres componentes solamente dada una. Por lo tanto dirigiremos nuestra atención a una dependencia transitiva simple de tres componentes. Tal dependencia puede expresarse como:
Q ---> A ----> B
En la cual se dice que B depende de A y que A depende de Q. La transitividad existe debido a que el valor de B depende en la última instancia del valor de Q.
La dependencia transitiva es degenerada si cualquiera de las dependencias anteriores es total. Esto es, podemos prever que la relación de Q a A es muchos-unos, donde varios valor único de A. Dado un valor tal Q el valor de A queda determinado. La inversa no se aplica y en consecuencia no existe una dependencia total: dado un valor de A el valor correspondiente de Q no queda determinado a menos de que se trate de una dependencia total.

Dependencias multivaluadas
La tercera forma normal toma en cuenta la dependencia transitiva y provee una reducción óptima universal, excepto para los casos infrecuentes de dependencia multivaluadas. Ha quedado claro en épocas recientes que es posible una reducción adicional en este caso, y esto es lo que se lleva a cabomediante la cuarta forma normal.
Existe una dependencia multivaluada cuando un valor de una variable está siempre asociado con varios valores de otra u otras variables dependientes que son siempre las mismas y están siempre presentes. Esto se ilustra mejor con el ejemplo presentado en la figura. La relación FAB describe tejidos. La variable independiente (con respecto a las dependencias (multivaluadas) es el número de tejido FABNO. Con el se encuentra asociados un modelo (o patrón) y un color. En la figura, el tejido 345 vienen en dos modelos y entres combinaciones de modelo y color. En este caso se aplica el grafo de dependencia. Para hacer mas clara que esta es una dependencia multivariable, una cabeza doble de flecha apunta desde FABNO o PATRN y también desde FABNO a COLOR.
La ineficiencia en el registro de información y se resulta clara al examinar las dos nuevas relaciones. La primera de éstas, FABPAT lista el número de tejido contra el modelo; en el segundo caso, FABCOL, lista el número de tejido contra las combinaciones de color. Dado que la regla es que todas las combinaciones de las variables dependientes multivaluadas deben prevalecer, resulta simple reconstruir la relación FAB a partir de las dos sub-relaciones que resultaron.
Descomposición Para poner una relación o sub-relación en la cuarta forma normal debe poder aplicarse lo siguiente:
• Debe estar en la tercera forma normal.
• Deben existir una o mas multidependencias.
Después de construir el grafo de dependencia, el próximo paso es ejecutar proyecciones utilizando la variable independiente y una de las variables multidependientes.
FABPAT = proyectar FAB (FABNO, PATRN)
FABCOL = proyectar FAB (FABNO, COLOR)
El resultado son nuevas sub-relaciones que han sido utilizadas para ahorra espacio y permitir una más fácil actualización.
Ejemplo de profesor y texto
Consideremos otro ejemplo. Los cursos dictados en una escuela corresponden a un número de curso. Asociada a cada número de curso se encuentra ladescripción del mismo. Para cada curso existe una selección de textos y una selección de profesores. Puede darse cualquier combinación de texto yprofesor.
El grafo de dependencia. El mismo nos muestra una dependencia total entre el número de curso y la descripción del curso. Existe una multidependencia entre texto y número de curso, y también entre profesor y número de curso.
Para descomponer la sub-relación en sus relaciones más pequeñas, se efectúan tres proyecciones. Las sub-relaciones resultantes.
BASE DE TADOS

Una base de datos o banco de datos es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. En la actualidad, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital (electrónico), que ofrece un amplio rango de soluciones al problema de almacenar datos.
Existen programas denominados sistemas gestores de bases de datos, abreviado SGBD, que permiten almacenar y posteriormente acceder a los datos de forma rápida y estructurada. Las propiedades de estos SGBD, así como su utilización y administración, se estudian dentro del ámbito de la informática. 

ÍNDICE
Un índice es una estructura de datos que permite recuperar las filas de una tabla de forma más rápida además de proporcionar una ordenación distinta a la natural de la tabla. Un índice se define sobre una columna o sobre un grupo de columnas, y las filas se ordenarán según los valores contenidos en esas columnas. Por ejemplo, si definimos un índice sobre la columna población de una tabla de clientes, el índice permitirá recuperar los clientes ordenados por orden alfabético de población.

CLAVE
Contraseña, password. Conjunto finito de caracteres limitados que forman una palabra secreta que sirve a uno o más usuarios para acceder a un determinado recurso. Las claves suelen tener limitaciones en sus caracteres (no aceptan algunos) y su longitud. La Real Academia aconseja utilizar "clave" o "contraseña" en vez de su equivalente en inglés, "password".

MODELO ENTIDAD-RELACIÓN
Un diagrama o modelo entidad-relación (a veces denominado por su siglas, E-R "Entityrelationship", o, "DER" Diagrama de Entidad Relación) es una herramienta para el modelado de datos de un sistema de información. Estos modelos expresan entidades relevantes para un sistema de información así como sus interrelaciones y propiedades.
CONSTRAINTS
Las constraints son las encargadas de asegurar la integridad referencial en la base de datos. Tipos de constraints:
• CHECK
• NOT NULL
• UNIQUE KEY
• PRIMARY KEY
• FOREIGN KEY
Las constraints existen sólo en el diccionario de datos y son aplicadas(o comprobadas) durante la ejecución del SQL o PL/SQL. Cuando están habilitadas, las constraints están aseguradas. Si no están habilitada.
TABLA
en las bases de datos, se refiere al tipo de modelado de datos, donde se guardan los datos recogidos por un programa. Su estructura general se asemeja a la vista general de un programa de Hoja de cálculo.
Las tablas se componen de dos estructuras:
Registro: es cada una de las filas en que se divide la tabla. Cada registro contiene datos de los mismos tipos que los demás registros. Ejemplo: en una tabla de nombres y direcciones, cada fila contendrá un nombre y una dirección.
Campo: es cada una de las columnas que forman la tabla. Contienen datos de tipo diferente a los de otros campos. En el ejemplo anterior, un campo contendrá un tipo de datos único, como una dirección, o un número de teléfono, un nombre, etc.
A los campos se les puede asignar, además, propiedades especiales que afectan a los registros insertados. El campo puede ser definido como índice o autoincrementable, lo cual permite que los datos de ese campo cambien solos o sean el principal indicar a la hora de ordenar los datos contenidos.

REGISTRO

 En informática, y concretamente en el contexto de una base de datos relacional, un registro (también llamado fila o tupla) representa un objeto único de datos implícitamente estructurados en una tabla. En términos simples, una tabla de una base de datos puede imaginarse formada de filas y columnas o campos. Cada fila de una tabla representa un conjunto de datos relacionados, y todas las filas de la misma tabla tienen la misma estructura.
Un registro es un conjunto de campos que contienen los datos que pertenecen a una misma repetición de entidad. Se le asigna automáticamente un número consecutivo (número de registro) que en ocasiones es usado como índice aunque lo normal y práctico es asignarle a cada registro un campo clave para su búsqueda.
La estructura implícita de un registro y el significado de los valores de sus campos exige que dicho registro sea entendido como una sucesión de datos, uno en cada columna de la tabla. La fila se interpreta entonces como una variable relacional compuesta por un conjunto de tuplas, cada una de las cuales consta de dos ítems: el nombre de la columna relevante y el valor que esta fila provee para dicha columna.

TUPLA
Una tupla, en matemáticas, es una secuencia ordenada de objetos, esto es, una lista con un número limitado de objetos (una secuencia infinita se denomina en matemática como una familia). Las tuplas se emplean para describir objetos matemáticos que tienen estructura, es decir que son capaces de ser descompuestos en un cierto número de componentes. Por ejemplo, un Grafo dirigido se puede definir como una tupla de (VE) donde V es el conjunto de nodos y E es elsubconjunto de V × V que denota los vértices del grafo.




SELECT
A seleccionar declaración recupera cero o más filas de una o más tablas de bases de datos o base de datos de puntos de vista . En la mayoría de las aplicaciones, SELECCIONAR es el más comúnmente usado de manipulación de datos del lenguaje (DML) de comandos.Como SQL es una programación declarativa del lenguaje, SELECCIONE consultas especificar un conjunto de resultados, pero no especifica cómo calcularlo. La base de datos de la consulta se traduce en un " plan de consulta ", que puede variar entre ejecuciones, las versiones de bases de datos y software de base de datos. Esta funcionalidad se llama el " optimizador de consultas ", ya que es responsable de encontrar el mejor plan posible ejecución de la consulta, dentro de los límites aplicables.
La instrucción SELECT tiene muchas cláusulas opcionales:
§  DONDE especifica qué filas a recuperar.
§  GROUP BY grupos de filas que comparten una propiedad para que una función de agregado se pueden aplicar a cada grupo.
§  HABIENDO selecciona entre los grupos definidos por la cláusula GROUP BY.
§  ORDER BY especifica un orden en el que para devolver las filas.

UPDATE
 Para la actualización de datos SQL dispone de la sentencia UPDATE. La sentencia UPDATE permite la actualización de uno o varios registros de una única tabla. La sintaxis de la sentencia UPDATE es la siguiente 
Las siguientes sentencias actualizan los datos de la tabla tCoches con los valores de la tabla tMarca obtenidos anteriormente en la página dedicada a la inserción de datos.Update Modifica los valores presentes en una o mas columnas de una o mas líneas de una tabla.

DELECT
En el lenguaje estructurado de consulta de bases de datos ( SQL ), el SUPR declaración elimina uno o más registros de una tabla . Un subgrupo se puede definir para su eliminación con una condición, de lo contrario todos los registros se eliminan.
El BORRAR sentencia sigue a la sintaxis:
ELIMINAR DE table_name [ DONDE condición];
Las filas que coinciden con los DONDE condición será eliminada de la tabla. Si la DONDE se omite la cláusula, todas las filas de la tabla se eliminan. El BORRAR declaración no devuelve ninguna fila, es decir, no va a generar un conjunto de resultados .
La ejecución de un SUPR declaración puede causar disparadores para ejecutar que puede causar elimina en otros cuadros. Por ejemplo, si dos tablas están vinculadas por una clave externa y las filas en la tabla de referencia se eliminan, entonces es común que las filas en la tabla de referencia también tendría que ser eliminado para mantener la integridad referencial .

DROP
Utilice la DROP TABLE declaración a mover un objeto de tabla o mesa a la papelera de reciclaje, o eliminar la tabla y todos sus datos de la base de datos por completo.Para una tabla externa, esta declaración sólo elimina los metadatos de la tabla en la base de datos. No tiene ningún efecto sobre los datos reales, que se encuentra fuera de la base de datos.
Al colocar una tabla que es parte de un clúster, la tabla se mueve a la papelera de reciclaje. Sin embargo, si posteriormente caer el racimo, la tabla se purga de la papelera de reciclaje y ya no pueden ser recuperados con un FLASHBACK TABLE operación.
Quitar una tabla invalida los objetos dependientes y elimina los privilegios de objeto sobre la mesa. Si desea volver a crear la tabla, a continuación, debe volver a conceder privilegios de objeto sobre la mesa, volver a crear los índices, las restricciones de integridad, y factores desencadenantes de la tabla y, a especificar sus parámetros de almacenamiento. Truncar no tiene ninguno de estos efectos. Por lo tanto, la eliminación de filas con TRUNCATE declaración puede ser más eficiente que caer y volver a crear una tabla.
FUNCIONES DE GRUPO
En una búsqueda de grupos, cada línea en el resultado de la búsqueda, corresponde a un grupo de líneas de nuestra tabla, la columna que se pone a continuación de group by es aquella por la que queremos agrupar las líneas de la tabla. En el ejemplo anterior cada línea de la tabla EMP se incluye en uno de los tres grupos, uno para cada departamento, dependiendo de su valor en el campoDEPTO: todas las líneas de su mismo grupo tienen el mismo número de departamento.
Podemos combinar las funciones de grupo con las búsquedas relacionales. Además, hay tres funciones que pueden utilizarse con los grupos:
* SUM : Para sumar los valores de los campos, dentro de los grupos definidos por GROUP BY.
* COUNT: Para contar el número de líneas que entran en cada uno de esos grupos.
* AVG: Para saber la medida de los valores de campos específicos en cada grupo.

DICCIONARIO DE DATOS

Un diccionario de datos es un conjunto de metadatos que contiene las características lógicas y puntuales de los datos que se van a utilizar en el sistema que se programa, incluyendo nombre, descripción, alias, contenido y organización.
Identifica los procesos donde se emplean los datos y los sitios donde se necesita el acceso inmediato a la información, se desarrolla durante el análisis de flujo de datos y auxilia a los analistas que participan en la determinación de los requerimientos del sistema, su contenido también se emplea durante el diseño.
En un diccionario de datos se encuentra la lista de todos los elementos que forman parte del flujo de datos de todo el sistema. Los elementos mas importantes son flujos de datos.

CLAVE FORÁNEA

Almacenes de datos y procesos. El diccionario de datos guarda los detalles y descripción de todos estos elementos.
En el contexto de bases de datos relacionales, una clave foránea (o Foreign Key FK) es una limitación referencial entre dos tablas. La clave foránea identifica una columna o grupo de columnas en una tabla (tabla hija o referendo) que se refiere a una columna o grupo de columnas en otra tabla (tabla maestra o referenciada). Las columnas en la tabla referendo deben ser la clave primaria u otra clave candidata en la tabla referenciada.
Los valores en una fila de las columnas referendo deben existir solo en una fila en la tabla referenciada. Así, una fila en la tabla referendo no puede contener valores que no existen en la tabla referenciada. De esta forma, las referencias pueden ser creadas para vincular o relacionar información. Esto es una parte esencial de la normalización de base de datos. Múltiples filas en la tabla referendo pueden hacer referencia, vincularse o relacionarse a la misma fila en la tabla referenciada. Mayormente esto se ve reflejado en una relación uno (tabla maestra o referenciada) a muchos (tabla hija o referendo).

CLAVE ÚNICA
Cada tabla puede tener uno o más campos cuyos valores identifican de forma única cada registro de dicha tabla, es decir, no pueden existir dos o más registros diferentes cuyos valores en dichos campos sean idénticos. Este conjunto de campos se llama clave única.
Pueden existir varias claves únicas en una determinada tabla, y a cada una de éstas suele llamársele candidata a clave primaria.

INSERT
INSERT INTO nos permite insertar filas múltiples en una tabla. A diferencia del ejemplo anterior, donde insertamos una única fila al especificar susvalores para todas las columnas, ahora utilizamos la instrucción SELECT para especificar los datos que deseamos insertar en la tabla. Si está pensando si esto significa que está utilizando información de otra tabla, está en lo correcto. La sintaxis es la siguiente:
INSERT INTO "tabla1" ("columna1", "columna2", ...)
SELECT "columna3", "columna4", ...
FROM "tabla2"

Note que esta es la forma más simple. La instrucción entera puede contener fácilmente cláusulas WHERE, GROUP BY, y HAVING, así como también uniones y alias.

WHERE
La cláusula WHERE es la instrucción que nos permite filtrar el resultado de una sentencia SELECT.  Habitualmente no deseamos obtener toda la información existente en la tabla, sino que queremos obtener sólo la información que nos resulte util es ese momento. La cláusula WHERE filtra los datos antes de ser devueltos por la consulta.
 En nuestro ejemplo, si queremos consultar un coche en concreto debemos agregar una cláusula WHERE. Esta cláusula especifica una o varias condiciones que deben cumplirse para que la sentencia SELECT devuelva los datos.

BASE DE DATOS
Una base de datos es un sistema información que permite realizar los siguientes procesos:

   
1: Creación de las estructuras de información: TABLAS
2: Búsqueda de información en las tablas: CONSULTAS
3: Captura de datos para las tablas: FORMULARIOS
4: Resumen de información: INFORMES
5: Ejecucion de lista de acciones: MACROS: y descripción de procesos complejos módulos.