Base de Datos Normalizacion

22
PDF generado usando el kit de herramientas de fuente abierta mwlib. Ver http://code.pediapress.com/ para mayor información. PDF generated at: Fri, 18 Feb 2011 21:42:04 UTC Base de datos Normalización

Transcript of Base de Datos Normalizacion

Page 1: Base de Datos Normalizacion

PDF generado usando el kit de herramientas de fuente abierta mwlib. Ver http://code.pediapress.com/ para mayor información.PDF generated at: Fri, 18 Feb 2011 21:42:04 UTC

Base de datosNormalización

Page 2: Base de Datos Normalizacion

ContenidosArtículos

Base de datos 1Sistema de gestión de bases de datos 5Base de datos orientada a objetos 8Modelo relacional 9Normalización de bases de datos 11

ReferenciasFuentes y contribuyentes del artículo 18Fuentes de imagen, Licencias y contribuyentes 19

Licencias de artículosLicencia 20

Page 3: Base de Datos Normalizacion

Base de datos 1

Base de datos

OpenOffice.org Base: sistema de gestión de bases de datos.

Una base de datos o banco de datos (enocasiones abreviada con la sigla BD o con laabreviatura b. d.) es un conjunto de datospertenecientes a un mismo contexto yalmacenados sistemáticamente para suposterior uso. En este sentido, una bibliotecapuede considerarse una base de datoscompuesta en su mayoría por documentos ytextos impresos en papel e indexados parasu consulta. En la actualidad, y debido aldesarrollo tecnológico de campos como lainformática y la electrónica, la mayoría delas 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 yposteriormente acceder a los datos de forma rápida y estructurada. Las propiedades de estos SGBD, así como suutilización y administración, se estudian dentro del ámbito de la informática.

Las aplicaciones más usuales son para la gestión de empresas e instituciones públicas. También son ampliamenteutilizadas en entornos científicos con el objeto de almacenar la información experimental.Aunque las bases de datos pueden contener muchos tipos de datos, algunos de ellos se encuentran protegidos por lasleyes de varios países. Por ejemplo, en España los datos personales se encuentran protegidos por la Ley Orgánica deProtección de Datos de Carácter Personal (LOPD).

Tipos de Base de DatosLas bases de datos pueden clasificarse de varias maneras, de acuerdo al contexto que se este manejando, o la utilidadde la misma:

Según la variabilidad de los datos almacenados

Bases de datos estáticas

Éstas son bases de datos de sólo lectura, utilizadas primordialmente para almacenar datos históricos queposteriormente se pueden utilizar para estudiar el comportamiento de un conjunto de datos a través del tiempo,realizar proyecciones y tomar decisiones.

Page 4: Base de Datos Normalizacion

Base de datos 2

Bases de datos dinámicas

Éstas son bases de datos donde la información almacenada se modifica con el tiempo, permitiendo operaciones comoactualización, borrado y adición de datos, además de las operaciones fundamentales de consulta. Un ejemplo de estopuede ser la base de datos utilizada en un sistema de información de un supermercado, una farmacia, un videoclub ouna empresa.

Según el contenido

Bases de datos bibliográficas

Solo contienen un subrogante (representante) de la fuente primaria, que permite localizarla. Un registro típico de unabase de datos bibliográfica contiene información sobre el autor, fecha de publicación, editorial, título, edición, de unadeterminada publicación, etc. Puede contener un resumen o extracto de la publicación original, pero nunca el textocompleto, porque si no, estaríamos en presencia de una base de datos a texto completo (o de fuentes primarias —vermás abajo). Como su nombre lo indica, el contenido son cifras o números. Por ejemplo, una colección de resultadosde análisis de laboratorio, entre otras.

Bases de datos de texto completo

Almacenan las fuentes primarias, como por ejemplo, todo el contenido de todas las ediciones de una colección derevistas científicas.

Directorios

Un ejemplo son las guías telefónicas en formato electrónico.

Bases de datos o "bibliotecas" de información química o biológica

Son bases de datos que almacenan diferentes tipos de información proveniente de la química, las ciencias de la vidao médicas. Se pueden considerar en varios subtipos:• Las que almacenan secuencias de nucleótidos o proteínas.• Las bases de datos de rutas metabólicas.• Bases de datos de estructura, comprende los registros de datos experimentales sobre estructuras 3D de

biomoléculas-• Bases de datos clínicas.• Bases de datos bibliográficas (biológicas, químicas, médicas y de otros campos): PubChem, Medline,

EBSCOhost.

Modelos de bases de datosAdemás de la clasificación por la función de las bases de datos, éstas también se pueden clasificar de acuerdo a sumodelo de administración de datos.Un modelo de datos es básicamente una "descripción" de algo conocido como contenedor de datos (algo en donde seguarda la información), así como de los métodos para almacenar y recuperar información de esos contenedores. Losmodelos de datos no son cosas físicas: son abstracciones que permiten la implementación de un sistema eficiente debase de datos; por lo general se refieren a algoritmos, y conceptos matemáticos.Algunos modelos con frecuencia utilizados en las bases de datos:

Page 5: Base de Datos Normalizacion

Base de datos 3

Bases de datos jerárquicasÉstas son bases de datos que, como su nombre indica, almacenan su información en una estructura jerárquica. Eneste modelo los datos se organizan en una forma similar a un árbol (visto al revés), en donde un nodo padre deinformación puede tener varios hijos. El nodo que no tiene padres es llamado raíz, y a los nodos que no tienen hijosse los conoce como hojas.Las bases de datos jerárquicas son especialmente útiles en el caso de aplicaciones que manejan un gran volumen deinformación y datos muy compartidos permitiendo crear estructuras estables y de gran rendimiento.Una de las principales limitaciones de este modelo es su incapacidad de representar eficientemente la redundancia dedatos.

Base de datos de redÉste es un modelo ligeramente distinto del jerárquico; su diferencia fundamental es la modificación del concepto denodo: se permite que un mismo nodo tenga varios padres (posibilidad no permitida en el modelo jerárquico).Fue una gran mejora con respecto al modelo jerárquico, ya que ofrecía una solución eficiente al problema deredundancia de datos; pero, aun así, la dificultad que significa administrar la información en una base de datos de redha significado que sea un modelo utilizado en su mayoría por programadores más que por usuarios finales.

Bases de datos transaccionalesSon bases de datos cuyo único fin es el envío y recepción de datos a grandes velocidades, estas bases son muy pococomunes y están dirigidas por lo general al entorno de análisis de calidad, datos de producción e industrial, esimportante entender que su fin único es recolectar y recuperar los datos a la mayor velocidad posible, por lo tanto laredundancia y duplicación de información no es un problema como con las demás bases de datos, por lo general parapoderlas aprovechar al máximo permiten algún tipo de conectividad a bases de datos relacionales.

Bases de datos relacionalesÉste es el modelo utilizado en la actualidad para modelar problemas reales y administrar datos dinámicamente. Trasser postulados sus fundamentos en 1970 por Edgar Frank Codd, de los laboratorios IBM en San José (California), notardó en consolidarse como un nuevo paradigma en los modelos de base de datos. Su idea fundamental es el uso de"relaciones". Estas relaciones podrían considerarse en forma lógica como conjuntos de datos llamados "tuplas". Pesea que ésta es la teoría de las bases de datos relacionales creadas por Codd, la mayoría de las veces se conceptualizade una manera más fácil de imaginar. Esto es pensando en cada relación como si fuese una tabla que está compuestapor registros (las filas de una tabla), que representarían las tuplas, y campos (las columnas de una tabla).En este modelo, el lugar y la forma en que se almacenen los datos no tienen relevancia (a diferencia de otrosmodelos como el jerárquico y el de red). Esto tiene la considerable ventaja de que es más fácil de entender y deutilizar para un usuario esporádico de la base de datos. La información puede ser recuperada o almacenada mediante"consultas" que ofrecen una amplia flexibilidad y poder para administrar la información.El lenguaje más habitual para construir las consultas a bases de datos relacionales es SQL, Structured QueryLanguage o Lenguaje Estructurado de Consultas, un estándar implementado por los principales motores o sistemasde gestión de bases de datos relacionales.Durante su diseño, una base de datos relacional pasa por un proceso al que se le conoce como normalización de unabase de datos.Durante los años 80 la aparición de dBASE produjo una revolución en los lenguajes de programación y sistemas deadministración de datos. Aunque nunca debe olvidarse que dBase no utilizaba SQL como lenguaje base para sugestión.

Page 6: Base de Datos Normalizacion

Base de datos 4

Bases de datos multidimensionalesSon bases de datos ideadas para desarrollar aplicaciones muy concretas, como creación de Cubos OLAP.Básicamente no se diferencian demasiado de las bases de datos relacionales (una tabla en una base de datosrelacional podría serlo también en una base de datos multidimensional), la diferencia está más bien a nivelconceptual; en las bases de datos multidimensionales los campos o atributos de una tabla pueden ser de dos tipos, obien representan dimensiones de la tabla, o bien representan métricas que se desean estudiar.

Bases de datos orientadas a objetosEste modelo, bastante reciente, y propio de los modelos informáticos orientados a objetos, trata de almacenar en labase de datos los objetos completos (estado y comportamiento).Una base de datos orientada a objetos es una base de datos que incorpora todos los conceptos importantes delparadigma de objetos:• Encapsulación - Propiedad que permite ocultar la información al resto de los objetos, impidiendo así accesos

incorrectos o conflictos.• Herencia - Propiedad a través de la cual los objetos heredan comportamiento dentro de una jerarquía de clases.• Polimorfismo - Propiedad de una operación mediante la cual puede ser aplicada a distintos tipos de objetos.En bases de datos orientadas a objetos, los usuarios pueden definir operaciones sobre los datos como parte de ladefinición de la base de datos. Una operación (llamada función) se especifica en dos partes. La interfaz (o signatura)de una operación incluye el nombre de la operación y los tipos de datos de sus argumentos (o parámetros). Laimplementación (o método) de la operación se especifica separadamente y puede modificarse sin afectar la interfaz.Los programas de aplicación de los usuarios pueden operar sobre los datos invocando a dichas operaciones a travésde sus nombres y argumentos, sea cual sea la forma en la que se han implementado. Esto podría denominarseindependencia entre programas y operaciones.SQL:2003, es el estándar de SQL92 ampliado, soporta los conceptos orientados a objetos y mantiene lacompatibilidad con SQL92.

Bases de datos documentalesPermiten la indexación a texto completo, y en líneas generales realizar búsquedas más potentes. Tesaurus es unsistema de índices optimizado para este tipo de bases de datos.

Bases de datos deductivasUn sistema de base de datos deductiva, es un sistema de base de datos pero con la diferencia de que permite hacerdeducciones a través de inferencias. Se basa principalmente en reglas y hechos que son almacenados en la base dedatos. Las bases de datos deductivas son también llamadas bases de datos lógicas, a raíz de que se basa en lógicamatemática.

Gestión de bases de datos distribuida (SGBDD)la base de datos y el software SGBD pueden estar distribuidos en múltiples sitios conectados por una red. Hay de dostipos:1. Distribuidos homogéneos: utilizan el mismo SGBD en múltiples sitios.2. Distribuidos heterogéneos: Da lugar a los SGBD federados o sistemas multibase de datos en los que los SGBDparticipantes tienen cierto grado de autonomía local y tienen acceso a varias bases de datos autónomas preexistentesalmacenados en los SGBD, muchos de estos emplean una arquitectura cliente-servidor.

Page 7: Base de Datos Normalizacion

Base de datos 5

Estas surgen debido a la existencia física de organismos descentralizados. Esto les da la capacidad de unir las basesde datos de cada localidad y acceder así a distintas universidades, sucursales de tiendas, etcétera.

Véase también• Sistema de gestión de base de datos• Modelo relacional, normalización de bases de datos• Base de datos orientada a objetos• Almacén de datos• Minería de datos• Base de datos biológica• Base de datos probabilística

Sistema de gestión de bases de datosLos sistemas de gestión de bases de datos (en inglés database management system, abreviado DBMS) son un tipode software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que lautilizan.

PropósitoEl propósito general de los sistemas de gestión de bases de datos es el de manejar de manera clara, sencilla yordenada un conjunto de datos que posteriormente se convertirán en información relevante para una organización.

ObjetivosExisten distintos objetivos que deben cumplir los SGBD:• Abstracción de la información. Los SGBD ahorran a los usuarios detalles acerca del almacenamiento físico de

los datos. Da lo mismo si una base de datos ocupa uno o cientos de archivos, este hecho se hace transparente alusuario. Así, se definen varios niveles de abstracción.

• Independencia. La independencia de los datos consiste en la capacidad de modificar el esquema (físico o lógico)de una base de datos sin tener que realizar cambios en las aplicaciones que se sirven de ella.

• Consistencia. En aquellos casos en los que no se ha logrado eliminar la redundancia, será necesario vigilar queaquella información que aparece repetida se actualice de forma coherente, es decir, que todos los datos repetidosse actualicen de forma simultánea. Por otra parte, la base de datos representa una realidad determinada que tienedeterminadas condiciones, por ejemplo que los menores de edad no pueden tener licencia de conducir. El sistemano debería aceptar datos de un conductor menor de edad. En los SGBD existen herramientas que facilitan laprogramación de este tipo de condiciones.

• Seguridad. La información almacenada en una base de datos puede llegar a tener un gran valor. Los SGBD debengarantizar que esta información se encuentra segura de permisos a usuarios y grupos de usuarios, que permitenotorgar diversas categorías de permisos.

• Manejo de transacciones. Una transacción es un programa que se ejecuta como una sola operación. Esto quieredecir que luego de una ejecución en la que se produce una falla es el mismo que se obtendría si el programa no sehubiera ejecutado. Los SGBD proveen mecanismos para programar las modificaciones de los datos de una formamucho más simple que si no se dispusiera de ellos.

• Tiempo de respuesta. Lógicamente, es deseable minimizar el tiempo que el SGBD demora en proporcionar lainformación solicitada y en almacenar los cambios realizados.

Page 8: Base de Datos Normalizacion

Sistema de gestión de bases de datos 6

Ventajas• Proveen facilidades para la manipulación de grandes volúmenes de datos (ver objetivos). Entre éstas:

• Simplifican la programación de equipos de consistencia.• Manejando las políticas de respaldo adecuadas, garantizan que los cambios de la base serán siempre

consistentes sin importar si hay errores correctamente, etc.• Organizan los datos con un impacto mínimo en el código de los programas.• Disminuyen drásticamente los tiempos de desarrollo y aumentan la calidad del sistema desarrollado si son bien

explotados por los desarrolladores.• Usualmente, proveen interfaces y lenguajes de consulta que simplifican la recuperación de los datos.

Inconvenientes1. Típicamente, es necesario disponer de una o más personas que administren la base de datos, de la misma forma

en que suele ser necesario en instalaciones de cierto porte disponer de una o más personas que administren lossistemas operativos. Esto puede llegar a incrementar los costos de operación en una empresa. Sin embargo hayque balancear este aspecto con la calidad y confiabilidad del sistema que se obtiene.

2. Si se tienen muy pocos datos que son usados por un único usuario por vez y no hay que realizar consultascomplejas sobre los datos, entonces es posible que sea mejor usar una planilla de cálculo.

3. Complejidad: los software muy complejos y las personas que vayan a usarlo deben tener conocimiento de lasfuncionalidades del mismo para poder aprovecharlo al máximo.

4. Tamaño: la complejidad y la gran cantidad de funciones que tienen hacen que sea un software de gran tamaño,que requiere de gran cantidad de memoria para poder correr.

5. Coste del hardware adicional: los requisitos de hardware para correr un SGBD por lo general son relativamentealtos, por lo que estos equipos pueden llegar a costar gran cantidad de dinero.

Productos SGBD disponibles en el mercado

SGBD libres• PostgreSQL (http:/ / www. postgresql. org Postgresql) Licencia BSD• Firebird basada en la versión 6 de InterBase, Initial Developer's PUBLIC LICENSE Version 1.0.• SQLite (http:/ / www. sqlite. org SQLite) Licencia Dominio Público• DB2 Express-C (http:/ / www. ibm. com/ software/ data/ db2/ express/ )• Apache Derby (http:/ / db. apache. org/ derby/ )

SGBD no libres• MySQL: Licencia Dual, depende del uso. No se sabe hasta cuándo permanecerá así, ya que ha sido comprada por

Oracle. Sin embargo, existen 2 versiones: una gratuita que sería equivalente a la edición "express" SQL server deMicrosoft Windows, y otra más completa de pago.

• Advantage Database• dBase• FileMaker• Fox Pro• gsBase• IBM DB2: Universal Database (DB2 UDB)• IBM Informix• Interbase de CodeGear, filial de Borland

Page 9: Base de Datos Normalizacion

Sistema de gestión de bases de datos 7

• MAGIC• Microsoft Access• Microsoft SQL Server• NexusDB• Open Access• Oracle• Paradox• PervasiveSQL• Progress (DBMS)• Sybase ASE• Sybase ASA• Sybase IQ• WindowBase• IBM IMS Base de Datos Jerárquica• CA-IDMS

SGBD no libres y gratuitos• Microsoft SQL Server Compact Edition Basica• Sybase ASE Express Edition para Linux (edición gratuita para Linux)• Oracle Express Edition 10

Véase también• Base de datos• Comparación de sistemas administradores de bases de datos relacionales

Page 10: Base de Datos Normalizacion

Base de datos orientada a objetos 8

Base de datos orientada a objetosEn una base de datos orientada a objetos, la información se representa mediante objetos como los presentes en laprogramación orientada a objetos. Cuando se integra las características de una base de datos con las de un lenguajede programación orientado a objetos, el resultado es un sistema gestor de base de datos orientada a objetos(ODBMS, object database management system). Un ODBMS hace que los objetos de la base de datos aparezcancomo objetos de un lenguaje de programación en uno o más lenguajes de programación a los que dé soporte. UnODBMS extiende los lenguajes con datos persistentes de forma transparente, control de concurrencia, recuperaciónde datos, consultas asociativas y otras capacidades.Las bases de datos orientadas a objetos se diseñan para trabajar bien en conjunción con lenguajes de programaciónorientados a objetos como Java, C#, Visual Basic.NET y C++. Los ODBMS usan exactamente el mismo modelo queestos lenguajes de programación.Los ODBMS son una buena elección para aquellos sistemas que necesitan un buen rendimiento en la manipulaciónde tipos de dato complejos.Los ODBMS proporcionan los costes de desarrollo más bajos y el mejor rendimiento cuando se usan objetos graciasa que almacenan objetos en disco y tienen una integración transparente con el programa escrito en un lenguaje deprogramación orientado a objetos, al almacenar exactamente el modelo de objeto usado a nivel aplicativo, lo quereduce los costes de desarrollo y mantenimiento.Historia

Herschell...Los orígenes del término orientados a objetos (abreviado OO) se remontan a los lenguajes deprogramación orientadas a objetos. Los lenguajes de programación OO tienen sus raíces en el lenguaje SIMULA 67,propuesto a finales de la década de 1960. En Simula, el concepto de clase agrupa la estructura de datos interna de unobjeto en una declaración de clase, es decir, introduce en el lenguaje Algol los conceptos de objeto y de clase. ComoAlgol, Simula es un lenguaje fuertemente tipado para entornos compilados. Sin embargo, el primer lenguaje quepopularizó la aproximación a objetos fue Smalltalk (1976); este puede considerarse una síntesis de años del lenguajeLisp, que ofrece una gran flexibilidad gracias a la interpretación, y de Simula, añadiendo el concepto de metaclase.Smalltalk ha podido responder a las necesidades de flexibilidad presentadas por el desarrollo de entornos deprogramación gráficos, favoreciendo la rápida creación de prototipos de interfaces de usuarios amigables. Fueutilizado con éxito en la primera estación gráfica de Xerox para (el antecesor de Macintosh).Con la llegada de las estaciones de trabajo en los años 80, han crecido numerosos lenguajes orientados a objetosinspirados en Simula o Smalltalk. Entre los lenguajes compilados, los más celebres son C++, Objective C y Eiffel,debido a la compatibilidad del lenguaje o del código producido con el lenguaje de programación C. La mayor partede los lenguajes interpretados son extensiones del Lisp; por ejemplo, Loops y CLOS. Es interesante notar que lamayor parte de los lenguajes populares existentes se encuentran en curso de ampliación para convertirse enorientados a objetos, incluyendo al Cobol y Ada (más exactamente Ada 9X, que aporta la herencia).En años recientes, han aparecido muchos prototipos experimentales y sistemas de bases de datos comercialesorientados a objetos. Entre los primeros se encuentran los sistemas ORION, OpenOODB, IRIS, ODE y el proyectoENCORE/ObServer. Y entre los sistemas disponibles en el mercado están: GEMSTONE/OPAL de ServicLogic,ONTOS de Ontologic, Objectivity de Objectivity Inc., Versant de Versant Technologies, ObjecStore de ObjectDesign y O2 de O2 Technology. Esta es solo una lista parcial de los prototipos experimentales y de los sistemas debases de datos comerciales orientados a objetos. Desafortunadamente, es aún demasiado pronto para saber cuálessistemas se instalarán como líderes en este campo.Las bases de datos orientados a objetos han adoptado muchos de los objetos creados para los lenguajes deprogramación orientados a objetos. Herschell

Page 11: Base de Datos Normalizacion

Base de datos orientada a objetos 9

Véase también• Enterprise Objects Framework• ODMG (Object Database Management Group)• Mapeo objeto-relacional• Persistencia

Modelo relacionalEl modelo relacional para la gestión de una base de datos es un modelo de datos basado en la lógica de predicados yen la teoría de conjuntos. Es el modelo más utilizado en la actualidad para modelar problemas reales y administrardatos dinámicamente. Tras ser postuladas sus bases en 1970 por Edgar Frank Codd, de los laboratorios IBM en SanJosé (California), no tardó en consolidarse como un nuevo paradigma en los modelos de base de datos.Su idea fundamental es el uso de «relaciones». Estas relaciones podrían considerarse en forma lógica como conjuntosde datos llamados «tuplas». Pese a que ésta es la teoría de las bases de datos relacionales creadas por Edgar FrankCodd, la mayoría de las veces se conceptualiza de una manera más fácil de imaginar, esto es, pensando en cadarelación como si fuese una tabla que está compuesta por registros (cada fila de la tabla sería un registro o tupla), ycolumnas (también llamadas campos).

DescripciónEn este modelo todos los datos son almacenados en relaciones, y como cada relación es un conjunto de datos, elorden en el que estos se almacenen no tiene relevancia (a diferencia de otros modelos como el jerárquico y el de red).Esto tiene la considerable ventaja de que es más fácil de entender y de utilizar por un usuario no experto. Lainformación puede ser recuperada o almacenada por medio de consultas que ofrecen una amplia flexibilidad y poderpara administrar la información.Este modelo considera la base de datos como una colección de relaciones. De manera simple, una relación representauna tabla que no es más que un conjunto de filas, cada fila es un conjunto de campos y cada campo representa unvalor que interpretado describe el mundo real. Cada fila también se puede denominar tupla o registro y a cadacolumna también se le puede llamar campo o atributo.Para manipular la información utilizamos un lenguaje relacional, actualmente se cuenta con dos lenguajes formalesel Álgebra relacional y el Cálculo relacional. El Álgebra relacional permite describir la forma de realizar unaconsulta, en cambio, el Cálculo relacional sólo indica lo que se desea devolver.

EsquemaUn esquema es la definición de una estructura (generalmente relaciones o tablas de una base de datos), es decir,determina la identidad de la relación y que tipo de información podrá ser almacenada dentro de ella; en otraspalabras, el esquema son los metadatos de la relación. Todo esquema constará de:• Nombre de la relación (su identificador).• Nombre de los atributos (o campos) de la relación y sus dominios; el dominio de un atributo o campo define los

valores permitidos para el mismo, es equivalente al tipo de dato por ejemplo character, integer, date, string, etc.

Page 12: Base de Datos Normalizacion

Modelo relacional 10

InstanciasUna instancia de manera formal es la aplicación de un esquema a un conjunto finito de datos. En palabras no tantécnicas, se puede definir como el contenido de una tabla en un momento dado, pero también es valido referirnos auna instancia cuando trabajamos o mostramos únicamente un subconjunto de la información contenida en unarelación o tabla, como por ejemplo:• Ciertos caracteres y números (una sola columna de una sola fila).• Algunas o todas las filas con todas o algunas columnas

• Cada fila es una tupla. El número de filas es llamado cardinalidad.• El número de columnas es llamado aridad o grado.

Base de datos relacionalUna base de datos relacional es un conjunto de una o más tablas estructuradas en registros (líneas) y campos(columnas), que se vinculan entre sí por un campo en común, en ambos casos posee las mismas características comopor ejemplo el nombre de campo, tipo y longitud; a este campo generalmente se le denomina ID, identificador oclave. A esta manera de construir bases de datos se le denomina modelo relacional.Estrictamente hablando el término se refiere a una colección específica de datos pero a menudo se le usa, en formaerrónea como sinónimo del software usado para gestionar esa colección de datos. Ese software se conoce comoSGBD (sistema gestor de base de datos) relacional o RDBMS (del inglés relational database management system).Las bases de datos relacionales pasan por un proceso al que se le conoce como normalización de una base de datos,el cual es entendido como el proceso necesario para que una base de datos sea utilizada de manera óptima.Entre las ventajas de este modelo están:1. Garantiza herramientas para evitar la duplicidad de registros, a través de campos claves o llaves.2. Garantiza la integridad referencial: Así al eliminar un registro elimina todos los registros relacionados

dependientes.3. Favorece la normalización por ser más comprensible y aplicable.

Véase también• Hugh Darwen• Bases de datos• Modelo de Datos• Álgebra relacional• Cálculo relacional• Modelo entidad-relación• SQL Lenguaje de consulta estructurado.• Tabla• Registro• Campo

Page 13: Base de Datos Normalizacion

Normalización de bases de datos 11

Normalización de bases de datos

Definición general

Figura 1.0: Trabajo (Código, Nombre, Posición, Salario), donde Código es la ClavePrimaria.

El modelo entidad relación se basacomo un sitio web en red aprobado porla IEEE. Originalmente era unconcepto para estudiantes de laUniversidad Harvard, pero actualmenteestá abierto a cualquier persona quetenga un proyecto de base de datosabierto (SQL, MySQL, Oracle).

Se rige por las 3 Formas Normales.• Primera forma normal:Debe ser una base de datos real, que represente un objeto del mundo y contener tablas basadas en el modeloentidad-relación.• Segunda forma normal:Debe cumplir la primera forma normal y además hacer referencia con una llave foránea.• Tercera forma normal:Debe cumplir la segunda forma normal y además contener una clave primaria.

Dependencia funcional Aumentativa

entonces DNI nombre

DNI,dirección nombre,dirección

Si con el DNI se determina el nombre de una persona, entonces con el DNI más la dirección también se determina elnombre o su dirección.

Dependencia funcional transitiva

Dependencia funcional transitiva.

Sean X, Y, Z tres atributos (o grupos deatributos) de la misma entidad. Si Ydepende funcionalmente de X y Z de Y,pero X no depende funcionalmente deY, se dice entonces que Z dependetransitivamente de X. Simbólicamentesería:

X Y Z entonces X ZFechaDeNacimiento Edad

Edad Conducir

FechaDeNacimiento Edad Conducir

Entonces tenemos que FechaDeNacimiento determina a Edad y la Edad determina a Conducir, indirectamentepodemos saber a través de FechaDeNacimiento a Conducir (En muchos países, una persona necesita ser mayor decierta edad para poder conducir un automóvil, por eso se utiliza este ejemplo).

Page 14: Base de Datos Normalizacion

Normalización de bases de datos 12

Propiedades deducidas

Unión

y entonces

Pseudo-transitiva

y entonces

Descomposición

y está incluido en entonces

ClavesUna clave primaria es aquella columna (pueden ser también dos columnas o más) que identifica únicamente a esafila. La clave primaria es un identificador que va a ser único para cada fila. Se acostumbra a poner la clave primariacomo la primera columna de la tabla pero esto no tiene que ser necesario, si no es más una conveniencia. Muchasveces la clave primaria es autonumérica.En una tabla puede que tengamos más de una clave, en tal caso se puede escoger una para ser la clave primaria, lasdemás claves son las claves candidatas. Además es la posible clave primaria.Una clave ajena (foreign key o clave foránea) es aquella columna que existiendo como dependiente en una tabla,es a su vez clave primaria en otra tabla.Una clave alternativa es aquella clave candidata que no ha sido seleccionada como clave primaria, pero que tambiénpuede identificar de forma única a una fila dentro de una tabla. Ejemplo: Si en una tabla clientes definimos elnúmero de documento (id_cliente) como clave primaria, el número de seguro social de ese cliente podría ser unaclave alternativa. En este caso no se usó como clave primaria porque es posible que no se conozca ese dato en todoslos clientes.Una clave compuesta es una clave que está compuesta por más de una columna.

Formas NormalesLas formas normales son aplicadas a las tablas de una base de datos. Decir que una base de datos está en la formanormal N es decir que todas sus tablas están en la forma normal N.En general, las primeras tres formas normales son suficientes para cubrir las necesidades de la mayoría de las basesde datos. El creador de estas 3 primeras formas normales (o reglas) fue Edgar F. Codd.[1]

Primera Forma Normal (1FN)Una tabla está en Primera Forma Normal si:• Todos los atributos son atómicos. Un atributo es atómico si los elementos del dominio son indivisibles, mínimos.• La tabla contiene una clave primaria.• La clave primaria no contiene atributos nulos.• No debe existir variación en el número de columnas.• Los Campos no clave deben identificarse por la clave (Dependencia Funcional)Una tupla no puede tener múltiples valores en cada columna. Los datos son atómicos. (Si a cada valor de X lepertenece un valor de Y y viceversa)Esta forma normal elimina los valores repetidos dentro de una BD

Page 15: Base de Datos Normalizacion

Normalización de bases de datos 13

Segunda Forma Normal (2FN)Dependencia Funcional. Una relación está en 2FN si está en 1FN y si los atributos que no forman parte de ningunaclave dependen de forma completa de la clave principal. Es decir que no existen dependencias parciales. (Todos losatributos que no son clave principal deben depender únicamente de la clave principal).En otras palabras podríamos decir que la segunda forma normal está basada en el concepto de dependenciacompletamente funcional. Una dependencia funcional es completamente funcional si al eliminar losatributos A de X significa que la dependencia no es mantenida, esto es que . Unadependencia funcional es una dependencia parcial si hay algunos atributos que pueden sereliminados de X y la dependencia todavía se mantiene, esto es .Por ejemplo {DNI, ID_PROYECTO} HORAS_TRABAJO (con el DNI de un empleado y el ID de un proyectosabemos cuántas horas de trabajo por semana trabaja un empleado en dicho proyecto) es completamente dependientedado que ni DNI HORAS_TRABAJO ni ID_PROYECTO HORAS_TRABAJO mantienen la dependencia.Sin embargo {DNI, ID_PROYECTO} NOMBRE_EMPLEADO es parcialmente dependiente dado que DNI NOMBRE_EMPLEADO mantiene la dependencia.

Tercera Forma Normal (3FN)La tabla se encuentra en 3FN si es 2FN y si no existe ninguna dependencia funcional transitiva entre los atributosque no son clave.Un ejemplo de este concepto sería que, una dependencia funcional X->Y en un esquema de relación R es unadependencia transitiva si hay un conjunto de atributos Z que no es un subconjunto de alguna clave de R, donde semantiene X->Z y Z->Y.Por ejemplo, la dependencia SSN->DMGRSSN es una dependencia transitiva en EMP_DEPT de la siguiente figura.Decimos que la dependencia de DMGRSSN el atributo clave SSN es transitiva vía DNUMBER porque lasdependencias SSN→DNUMBER y DNUMBER→DMGRSSN son mantenidas, y DNUMBER no es un subconjuntode la clave de EMP_DEPT. Intuitivamente, podemos ver que la dependencia de DMGRSSN sobre DNUMBER esindeseable en EMP_DEPT dado que DNUMBER no es una clave de EMP_DEPT.Formalmente, un esquema de relacion está en 3 Forma Normal Elmasri-Navathe,[2] si para toda dependenciafuncional , se cumple al menos una de las siguientes condiciones:1. es superllave o clave.2. es atributo primo de ; esto es, si es miembro de alguna clave en .Además el esquema debe cumplir necesariamente, con las condiciones de segunda forma normal.

Forma normal de Boyce-Codd (FNBC)La tabla se encuentra en FNBC si cada determinante, atributo que determina completamente a otro, es clavecandidata. Deberá registrarse de forma anillada ante la presencia de un intervalo seguido de una formalizacionperpetua, es decir las variantes creadas, en una tabla no se llegaran a mostrar, si las ya planificadas, dejan de existir.Formalmente, un esquema de relación está en FNBC, si y sólo si, para toda dependencia funcional válida en , se cumple que1. es superllave o clave.De esta forma, todo esquema que cumple FNBC, está además en 3FN; sin embargo, no todo esquema quecumple con 3FN, está en FNBC.

Page 16: Base de Datos Normalizacion

Normalización de bases de datos 14

Cuarta Forma Normal (4FN)Una tabla se encuentra en 4FN si, y sólo si, para cada una de sus dependencias múltiples no funcionales X->->Y,siendo X una super-clave que, X es o una clave candidata o un conjunto de claves primarias.

Diagrama deinclusión de todas

las formas normales.

Quinta Forma Normal (5FN)

Una tabla se encuentra en 5FN si:• La tabla está en 4FN• No existen relaciones de dependencias no triviales que no siguen los criterios de las claves.

Una tabla que se encuentra en la 4FN se dice que está en la 5FN si, y sólo si, cada relaciónde dependencia se encuentra definida por las claves candidatas.

Reglas de CoddCodd se percató de que existían bases de datos en el mercado las cuales decían ser relacionales, pero lo único quehacían era guardar la información en las tablas, sin estar estas tablas literalmente normalizadas; entonces éste publicó12 reglas que un verdadero sistema relacional debería tener, en la práctica algunas de ellas son difíciles de realizar.Un sistema podrá considerarse "más relacional" cuanto más siga estas reglas.

Regla No. 1 - La Regla de la informaciónToda la información en un RDBMS está explícitamente representada de una sola manera por valores en una tabla.Cualquier cosa que no exista en una tabla no existe del todo. Toda la información, incluyendo nombres de tablas,nombres de vistas, nombres de columnas, y los datos de las columnas deben estar almacenados en tablas dentro delas bases de datos. Las tablas que contienen tal información constituyen el Diccionario de Datos. Esto significa quetodo tiene que estar almacenado en las tablas.Toda la información en una base de datos relacional se representa explícitamente en el nivel lógico exactamente deuna manera: con valores en tablas. Por tanto los metadatos (diccionario, catálogo) se representan exactamente igualque los datos de usuario. Y puede usarse el mismo lenguaje (ej. SQL) para acceder a los datos y a los metadatos(regla 4)

Regla No. 2 - La regla del acceso garantizadoCada ítem de datos debe ser lógicamente accesible al ejecutar una búsqueda que combine el nombre de la tabla, suclave primaria, y el nombre de la columna.Esto significa que dado un nombre de tabla, dado el valor de la clave primaria, y dado el nombre de la columnarequerida, deberá encontrarse uno y solamente un valor. Por esta razón la definición de claves primarias para todaslas tablas es prácticamente obligatoria.

Page 17: Base de Datos Normalizacion

Normalización de bases de datos 15

Regla No. 3 - Tratamiento sistemático de los valores nulosLa información inaplicable o faltante puede ser representada a través de valores nulos

Un RDBMS (Sistema Gestor de Bases de Datos Relacionales) debe ser capaz de soportar el uso de valores nulos enel lugar de columnas cuyos valores sean desconocidos.

Regla No. 4 - La regla de la descripción de la base de datosLa descripción de la base de datos es almacenada de la misma manera que los datos ordinarios, esto es, en tablas ycolumnas, y debe ser accesible a los usuarios autorizados.La información de tablas, vistas, permisos de acceso de usuarios autorizados, etc, debe ser almacenada exactamentede la misma manera: En tablas. Estas tablas deben ser accesibles igual que todas las tablas, a través de sentencias deSQL (o similar).

Regla No. 5 - La regla del sub-lenguaje IntegralDebe haber al menos un lenguaje que sea integral para soportar la definición de datos, manipulación de datos,definición de vistas, restricciones de integridad, y control de autorizaciones y transacciones.Esto significa que debe haber por lo menos un lenguaje con una sintaxis bien definida que pueda ser usado paraadministrar completamente la base de datos.

Regla No. 6 - La regla de la actualización de vistasTodas las vistas que son teóricamente actualizables, deben ser actualizables por el sistema mismo.La mayoría de las RDBMS permiten actualizar vistas simples, pero deshabilitan los intentos de actualizar vistascomplejas.

Regla No. 7 - La regla de insertar y actualizarLa capacidad de manejar una base de datos con operandos simples aplica no sólo para la recuperación o consultade datos, sino también para la inserción, actualización y borrado de datos'.Esto significa que las cláusulas para leer, escribir, eliminar y agregar registros (SELECT, UPDATE, DELETE eINSERT en SQL) deben estar disponibles y operables, independientemente del tipo de relaciones y restricciones quehaya entre las tablas.

Regla No. 8 - La regla de independencia físicaEl acceso de usuarios a la base de datos a través de terminales o programas de aplicación, debe permanecerconsistente lógicamente cuando quiera que haya cambios en los datos almacenados, o sean cambiados los métodosde acceso a los datos.El comportamiento de los programas de aplicación y de la actividad de usuarios vía terminales debería ser predeciblebasados en la definición lógica de la base de datos, y éste comportamiento debería permanecer inalterado,independientemente de los cambios en la definición física de ésta.

Page 18: Base de Datos Normalizacion

Normalización de bases de datos 16

Regla No. 9 - La regla de independencia lógicaLos programas de aplicación y las actividades de acceso por terminal deben permanecer lógicamente inalteradascuando quiera que se hagan cambios (según los permisos asignados) en las tablas de la base de datos.La independencia lógica de los datos especifica que los programas de aplicación y las actividades de terminal debenser independientes de la estructura lógica, por lo tanto los cambios en la estructura lógica no deben alterar omodificar estos programas de aplicación.

Regla No. 10 - La regla de la independencia de la integridadTodas las restricciones de integridad deben ser definibles en los datos, y almacenables en el catalogo, no en elprograma de aplicación.

Las reglas de integridad

1. Ningún componente de una clave primaria puede tener valores en blanco o nulos (ésta es la norma básica deintegridad).

2. Para cada valor de clave foránea deberá existir un valor de clave primaria concordante. La combinación de estasreglas aseguran que haya integridad referencial.

Regla No. 11 - La regla de la distribuciónEl sistema debe poseer un lenguaje de datos que pueda soportar que la base de datos esté distribuida físicamente endistintos lugares sin que esto afecte o altere a los programas de aplicación.El soporte para bases de datos distribuidas significa que una colección arbitraria de relaciones, bases de datoscorriendo en una mezcla de distintas máquinas y distintos sistemas operativos y que esté conectada por una variedadde redes, pueda funcionar como si estuviera disponible como en una única base de datos en una sola máquina.

Regla No. 12 - Regla de la no-subversiónSi el sistema tiene lenguajes de bajo nivel, estos lenguajes de ninguna manera pueden ser usados para violar laintegridad de las reglas y restricciones expresadas en un lenguaje de alto nivel (como SQL).Algunos productos solamente construyen una interfaz relacional para sus bases de datos No relacionales, lo que haceposible la subversión (violación) de las restricciones de integridad. Esto no debe ser permitido.

Referencias[1] A Relational Model of Data for Large Shared Data Banks Communications of the ACM, Vol. 13, No. 6, June 1970, pp. 377-387 (http:/ /

www. acm. org/ classics/ nov95/ toc. html)[2] Fundamentals of DATABASE SYSTEMS Addison Wesley;, ISBN-10: 0321122267, ISBN-13: 978-0321122261,

• E.F.Codd (junio de 1970). "A Relational Model of Data for Large Shared Databanks". Communications of theACM.

• C.J.Date (1994). "An Introduction to Database Systems". Addison-Wesley.

Page 20: Base de Datos Normalizacion

Fuentes y contribuyentes del artículo 18

Fuentes y contribuyentes del artículoBase de datos  Fuente: http://es.wikipedia.org/w/index.php?oldid=44181246  Contribuyentes: .Sergio, 3coma14, Achicoria, AdeVega, Airunp, Aleator, Alexav8, Alhen, Alphabravotango,Andreasmperu, Angus, Armando-Martin, Armin76, Arrt-932, Ascánder, Açigni-Lovrij, Baiji, Baldur71, Belb, Biasoli, Bigsus, BlackBeast, BuenaGente, Carrillo1, Cesar4545, ChaTo, Chanchicto,Cinabrium, Claudio Elias, Comae, Damián del Valle, Daniel G., Dferg, Diegusjaimes, Diotime, Dodo, Dpr, Dreitmen, Drini2, Ecemaml, Eddanlo, Ediazrod, Eduardosalg, Edub, Eli22,Elisardojm, Elwikipedista, Equi, Er Komandante, Er javi 93, FAR, Fabio.morales, Fcr, Fernandopcg, Foundling, FrancoGG, Furti, Gaabriieelaa, Gabriel Acquistapace, Gacq, GermanX, Gizmo II,Globalphilosophy, Gonis, Grivadeneira, HUB, HUEVOCHIPS, Hispa, Humbefa, Humberto, Irbian, JMPerez, Jesuja, Jgalgarra, Jkbw, Jonik, JorgeGG, Jsanchezes, Jugones55, Klondike, Kokoo,Lazamazu, Leonardo, Levhita, Lourdes Cardenal, Magister Mathematicae, Maldoror, Mansoncc, ManuelGR, Matdrodes, Mel 23, Mikelo, Moriel, Mortadelo2005, Muro de Aguas, Murven,Máximo de Montemar, Napoleón333, Nelauxiliadora, No sé qué nick poner, Nonick, Nubecosmica, OMenda, Olivares86, Opinador, Orgullomoore, Otermin, PACO, Pablin3, Pabloab,Pablotorres, Pacolope, PeiT, Petruss, Pieter, PoLuX124, Ppfk, Renacimiento, RoyFocker, Rsg, Rumpelstiltskin, Sabbut, Sanbec, Sauron, Savh, Sergio Andres Segovia, Shasa, Sramco,Superzerocool, Taichi, Tano4595, Taragui, Technopat, Tirithel, Tomatejc, Tostadora, Wesisnay, Xenoforme, Xpel1, Yamaneko, Yrithinnd, ZackBsAs, Zanorte, Zuirdj, conversion script, 830ediciones anónimas

Sistema de gestión de bases de datos  Fuente: http://es.wikipedia.org/w/index.php?oldid=44121482  Contribuyentes: 4lex, Agmesas, Banfield, Biasoli, Diegusjaimes, Dodo, Eligna, Humbefa,Leugim1972, Nioger, Olivares86, Poco a poco, Riviera, Robertorp, Savh, Super braulio, Technopat, Tirithel, 74 ediciones anónimas

Base de datos orientada a objetos  Fuente: http://es.wikipedia.org/w/index.php?oldid=44010465  Contribuyentes: Dodo, GermanX, Jarke, Jesuja, Niqueco, Psicosix, Tano4595, Tirithel,Tomatejc, 15 ediciones anónimas

Modelo relacional  Fuente: http://es.wikipedia.org/w/index.php?oldid=42970783  Contribuyentes: Airunp, Amadís, Angel GN, Antur, Barcex, CommonsDelinker, Delphidius, Diosa, Dogor,Edmenb, Eligna, Eliomaximus, Emijrp, GermanX, Guanxito, Humbefa, Humberto, Javierito92, Jesuja, Lanselott, Leonel.canton, Lhombria, Ltourn, Magomaitin, Maldoror, Mansoncc, Manwë,Mario modesto, Matdrodes, Ooscarr, Oscaroe, PoLuX124, RoyFocker, Rrupo, Savh, Snakeyes, Super braulio, Tano4595, Tecnicoespaniol, U.gonzalez, Vitorres, Xatufan, 114 ediciones anónimas

Normalización de bases de datos  Fuente: http://es.wikipedia.org/w/index.php?oldid=43987844  Contribuyentes: Airunp, Akhram, Alagoro, Alexav8, Almorca, Andreasmperu, Andvarp, Angus,Antur, BL, Barct, Bedwyr, BlackBeast, C'est moi, Changa, Cumanacr, David0811, Deniel77, Dferg, Diego diaz espinoza, Diegusjaimes, Dodo, Dovidena, Ecelan, Edmenb, Edtruji, Egaida,Elielsardanons, Eluseche, Elwikipedista, Er Komandante, FAR, Fama.arciniega, Felipecanol, Fgtez, Filipo, Gaeddal, Gatra, GermanX, Goofys, Grillitus, Gusgus, Hernan Beati, Hprmedina,Humbefa, Humberto, Isha, Jago84, Javierito92, Jkarretero, Juandiegocano, Jugones55, Jynus, Kuanto, Libertad y Saber, Lucien leGrey, Maleiva, Mansoncc, ManuelMontiel, Manuelt15, Manwë,Matdrodes, Mencey, Merlyn333, Miguelo on the road, Mortadelo2005, Mushii, Máximo de Montemar, Netito777, PabloCastellano, Pabloab, Paintman, Pan con queso, PoLuX124, Queninosta,RafaRamirez, Rayleon, RoyFocker, Rrupo, Rsg, SHeLoo, Savh, Snakeyes, Spirit-Black-Wikipedista, Super braulio, Taichi, Tirithel, Tostadora, Truor, Tyrannosaurusreflex, U.gonzalez, Valyag,Verajm, Vitorres, Walter closser, Xatufan, Yeza, 696 ediciones anónimas

Page 21: Base de Datos Normalizacion

Fuentes de imagen, Licencias y contribuyentes 19

Fuentes de imagen, Licencias y contribuyentesArchivo:OOo-2.0-Base-ca.png  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:OOo-2.0-Base-ca.png  Licencia: GNU Lesser General Public License  Contribuyentes: German,IradigalescArchivo:TablaRelacional2.png  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:TablaRelacional2.png  Licencia: Creative Commons Attribution 3.0  Contribuyentes: User:EdtrujiArchivo:DependenciaFunional2.png  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:DependenciaFunional2.png  Licencia: GNU Free Documentation License  Contribuyentes:User:EdtrujiArchivo:FormasNormales.png  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:FormasNormales.png  Licencia: Public Domain  Contribuyentes: User:Diego diaz espinoza

Page 22: Base de Datos Normalizacion

Licencia 20

LicenciaCreative Commons Attribution-Share Alike 3.0 Unportedhttp:/ / creativecommons. org/ licenses/ by-sa/ 3. 0/