traducción del libro

30
INTRODUCCIÓN Un sistema de gestión de base de datos (DBMS) es un conjunto de datos relacionados entre sí y un conjunto de programas para acceder a esos datos. La recogida de datos, por lo general se refiere a como la base de datos, contiene información relevante para una empresa. El objetivo principal de un DBMS es proporcionar una manera de almacenar y recuperar la información de base de datos que es conveniente y eficiente. Los Sistemas de bases de datos están diseñados para manejar grandes masas de información. Administración de los datos implica ambas estructuras que definen para el almacenamiento de información y proporcionar mecanismos para la manipulación de la información. Además, el sistema de base de datos debe garantizar la seguridad de la información almacenada, a pesar del sistema accidentes o intentos de acceso no autorizado. Si los datos se comparten entre varios usuarios, el sistema debe evitar posibles resultados anómalos. Dado que la información es tan importante en la mayoría de las organizaciones, los científicos de la computación han desarrollado un gran cuerpo de conceptos y técnicas para la gestión de datos. Estos conceptos y técnicas constituyen el tema central de este libro. Este capítulo brevemente introduce los principios de los sistemas de bases de datos. 1.1 Aplicaciones de los sistemas de bases de datos. Las bases de datos son ampliamente utilizadas. Aquí tienes algunos programas representativos: • Información Empresarial: ° Ventas: Para el cliente, el producto y la información de compra. ° Contabilidad: Para los pagos, recibos, saldos de cuentas, activos y otros la información contable. ◦ Recursos humanos: Para obtener información sobre los empleados, salarios, impuestos sobre la nómina, y los beneficios, y para la generación de cheques de pago.

Upload: juandavidbohorquezespinosa

Post on 15-Nov-2015

218 views

Category:

Documents


0 download

DESCRIPTION

Libro bases de datos

TRANSCRIPT

INTRODUCCINUn sistema de gestin de base de datos (DBMS) es un conjunto de datos relacionados entre s y un conjunto de programas para acceder a esos datos. La recogida de datos, por lo general se refiere a como la base de datos, contiene informacin relevante para una empresa. El objetivo principal de un DBMS es proporcionar una manera de almacenar y recuperar la informacin de base de datos que es conveniente y eficiente.Los Sistemas de bases de datos estn diseados para manejar grandes masas de informacin. Administracin de los datos implica ambas estructuras que definen para el almacenamiento de informacin y proporcionar mecanismos para la manipulacin de la informacin. Adems, el sistema de base de datos debe garantizar la seguridad de la informacin almacenada, a pesar del sistema accidentes o intentos de acceso no autorizado. Si los datos se comparten entre varios usuarios, el sistema debe evitar posibles resultados anmalos. Dado que la informacin es tan importante en la mayora de las organizaciones, los cientficos de la computacin han desarrollado un gran cuerpo de conceptos y tcnicas para la gestin de datos. Estos conceptos y tcnicas constituyen el tema central de este libro. Este captulo brevemente introduce los principios de los sistemas de bases de datos.1.1 Aplicaciones de los sistemas de bases de datos.Las bases de datos son ampliamente utilizadas. Aqu tienes algunos programas representativos: Informacin Empresarial: Ventas: Para el cliente, el producto y la informacin de compra. Contabilidad: Para los pagos, recibos, saldos de cuentas, activos y otros la informacin contable. Recursos humanos: Para obtener informacin sobre los empleados, salarios, impuestos sobre la nmina, y los beneficios, y para la generacin de cheques de pago. Fabricacin: Para la gestin de la cadena de suministro y para la produccin de seguimiento de elementos en las fbricas, los inventarios de artculos en almacenes y tiendas, y los pedidos de artculos. Los minoristas en lnea: Para observar datos de ventas anteriores ms el seguimiento de pedidos en lnea, generacin de listas de recomendacin, y el mantenimiento del producto en lnea evaluaciones. Banca y FinanzasBanca : Para informacin de los clientes, cuentas, prstamos y transacciones bancarias.Las transacciones con tarjeta de crdito : Para compras en tarjetas de crdito y generacin de estados de cuenta mensuales. Finanzas: Para almacenar informacin sobre explotaciones, las ventas y las compras de instrumentos financieros, como acciones y bonos; tambin para almacenar en tiempo real datos de mercado para permitir el comercio en lnea por los clientes y el comercio automatizado por la firma. Universidades: Para informacin de los estudiantes, las matriculaciones de cursos y grados (enAdems de la informacin de la empresa estndar tales como los recursos humanos y contabilidad). Aerolneas: Para reservaciones e informacin de la programacin. Aerolneas estaban entre los primero a utilizar bases de datos de una manera distribuida geogrficamente. Telecomunicaciones: Para llevar un registro de las llamadas realizadas, generando mensual facturas, el mantenimiento de saldos en tarjetas telefnicas de prepago, y almacenamiento de informacin acerca de las redes de comunicacin.Como la lista ilustra, las bases de datos constituyen una parte esencial de toda empresa hoy en da, almacenar no slo los tipos de informacin que son comunes a la mayora de las empresas, pero Adems contiene informacin que es especfica para la categora de la empresa. A lo largo de las ltimas cuatro dcadas del siglo XX, el uso de bases de datos grewin todas las empresas. En los primeros das, muy pocas personas interactuaron directamente con los sistemas de bases de datos, aunque sin darse cuenta, se relacionaban con bases de datos indirectamente a travs de informes impresos, tales como estados de cuenta de tarjetas de crdito, o a travs de agentes tales como cajeros de bancos y agentes de reservas de aerolneas. Entonces automatizado cajeros llegaron y permiten a los usuarios interactuar directamente con las bases de datos. Interfaces de telfono a los ordenadores (sistemas de respuesta de voz interactiva) tambin permitieron los usuarios tratan directamente con bases de datos de la persona que llama podra marcar un nmero y pulse las teclas para introducir informacin o para seleccionar opciones alternativas, para encontrar el vuelo tiempos de llegada / salida, por ejemplo, o para inscribirse en cursos en una universidad. La revolucin de Internet de finales de 1990 aument considerablemente el acceso directo de los usuarios de bases de datos. Organizaciones convirtieron a muchos de sus interfaces de telfono a bases de datos en interfaces Web, e hizo una gran variedad de servicios e informacin disponible en lnea. Por ejemplo, cuando se accede a una librera en lnea y navegar por un libro o coleccin de msica, usted est accediendo a los datos almacenados en una base de datos. Cuando se introduce un pedido en lnea, su pedido se almacena en una base de datos. Cuando se introduce un pedido en lnea, su pedido se almacena en una base de datos. Cuando acceda a un sitio bankWeb y recuperar el equilibrio y la transaccin informacin bancaria, la informacin es recuperado de la base de datos del banco sistema. Cuando accede a un Web sitio, su informacin puede ser recuperada de una base de datos para seleccionar qu anuncios debera ver. Adems, los datos acerca de sus accesos web pueden ser almacenados en una base de datos. As, aunque las interfaces de usuario ocultar detalles de acceso a una base de datos, y la mayora personas ni siquiera son conscientes de que estn tratando con una base de datos, el acceso a bases de datos constituye una parte esencial de casi todo el mundo la vida de hoy. La importancia de los sistemas de bases de datos se puede juzgar de otra manera, hoy en da, proveedores de sistemas de bases de datos como Oracle estn entre las mayores compaas de software en el mundo, y los sistemas de bases de datos forman una parte importante de la lnea de productos de Microsoft e IBM.Propsito de los sistemas de bases de datosSistemas de bases de datos surgieron en respuesta a principios de los mtodos de gestin informatizada datos de comerciales. Como ejemplo de tales mtodos, propios de la dcada de 1960, considerar parte de una organizacin universitaria que, entre otros datos, mantiene la informacin sobre todos los instructores, estudiantes, departamentos y ofertas de cursos. Uno manera de guardar la informacin en un ordenador es almacenarlo en el sistema operativo archivos. Para permitir a los usuarios manipular la informacin, el sistema tiene una serie de programas de aplicacin que manipulan los archivos, incluidos los programas a: Aadir nuevos alumnos, profesores y cursos Registrar los estudiantes para cursos y generar listas de clase Asignar los grados a los estudiantes, el promedio de calificaciones de cmputo (GPA), y generar transcripciones.Los Programadores del sistema escribieron estos programas de aplicacin para satisfacer las necesidades de la universidad.Nuevos programas de aplicacin se aaden al sistema de medida que surja la necesidad. Para ejemplo, supongamos que una universidad decide crear un nuevo e importante (por ejemplo, la computadora ciencia) .Como resultado, la universidad crea un newdepartment y crea nueva permanente archivos (o agrega informacin a los archivos existentes) para registrar informacin sobre todos los instructores en el departamento, estudiantes de esa importante, la oferta de cursos, grados requisitos, etc. Las universidades pueden tener que escribir nuevos programas de aplicacin para hacer frente a las reglas especficas para la nueva concentracin. Nuevos programas de aplicacin tambin puede tienen que ser por escrito para manejar nuevas reglas en la universidad. Por lo tanto, el paso del tiempo, el sistema adquiere ms archivos y ms programas de aplicacin.Este sistema tpico de procesamiento de archivos con el apoyo de una operacin convencional sistema. El sistema almacena permanentemente los registros en varios archivos, y necesita diferentes programas de aplicacin para extraer los registros de, y aadir registros a los adecuados archivos. Antes se introdujeron sistemas de gestin de bases de datos (DBMS), organizaciones suelen almacenar informacin en tales sistemas. Mantener la informacin de la organizacin en un sistema de procesamiento de archivos tiene un nmero de las principales desventajas:La redundancia de datos y la inconsistencia. Desde diferentes programadores crean los archivos y programas de aplicacin durante un largo perodo, los diversos archivos son probablemente tienen diferentes estructuras y los programas pueden bewritten en varios lenguajes de programacin. Por otra parte, la misma informacin puede ser duplicado en varios lugares (archivos). Por ejemplo, si un estudiante tiene una doble licenciatura (por ejemplo, la msica y las matemticas) la direccin y nmero de telfono de ese estudiante puede aparecer en un archivo que consta de registros de los estudiantes de los estudiantes en la Msica departamento y en un archivo que consta de registros de los estudiantes de los estudiantes en el Departamento de Matemticas. Esta redundancia conduce a un mayor almacenamiento y acceso costo. Adems, puede conducir a la inconsistencia de datos; es decir, las diferentes copias de la misma datamayno ms de acuerdo. Por ejemplo, una direccin de cambio de estudiante pueden reflejarse en los registros del departamento de msica, pero no en otras partes del sistema. Dificultad para acceder a los datos. Supongamos que una de las necesidades secretarios universitarios para averiguar los nombres de todos los estudiantes que viven dentro de un cdigo postal en particular rea. El empleado le pregunta al departamento de procesamiento de datos para generar una lista de este tipo.Debido a que los diseadores del sistema original no anticiparon esta solicitud, no existe un programa de aplicacin en la mano para hacerle frente. Hay, sin embargo, un programa de aplicacin para generar la lista de todos los estudiantes. El secretario de la universidad Ahora tiene dos opciones: o bien obtener la lista de todos los estudiantes y extraer el la informacin necesaria de forma manual o pedir a un programador para escribir la necesaria programa de aplicacin. Ambas alternativas son obviamente insatisfactorias. Suponer que dicho programa est escrito, y que, varios das despus, el mismo empleado necesita recortar esa lista para incluir slo aquellos estudiantes que han tomado al menos 60 horas de crdito. Como era de esperar, un programa para generar una lista de este tipo no existir. Una vez ms, el empleado tiene las dos opciones anteriores, ninguno de los cuales es satisfactoria.El punto aqu es que los entornos de archivos de procesamiento convencionales no lo hacen permitan a los datos necesarios para que sea recuperado en un cmodo y efficientmanner. Ms sistemas de recuperacin de datos sensibles son necesarios para el uso general. Aislamiento de Datos. Dado que los datos se encuentran dispersos en varios archivos y los archivos pueden estar en diferentes formatos, escribir nuevos programas de aplicacin para recuperar la de datos apropiado es difcil. Los problemas de integridad. Los valores de los datos almacenados en la base de datos deben satisfacer ciertos tipos de restricciones de consistencia. Supongamos que la universidad mantiene una dar cuenta de cada departamento, y registra la cantidad de saldo en cada cuenta.Supongamos tambin que la universidad requiere que el saldo de la cuenta de un Departamento nunca puede caer por debajo de cero. Desarrolladores cumplir estas limitaciones en el sistema aadiendo cdigo apropiado en los diversos programas de aplicacin. Sin embargo, cuando se aaden nuevas restricciones, es difcil el cambio los programas para hacerlas cumplir. El problema es limitaciones compoundedwhen involucrar a varios elementos de datos de diferentes archivos.Problemas de atomicidad. Un sistema informtico, como cualquier otro dispositivo, est sujeto al fracaso. En muchas aplicaciones, es fundamental que, si se produce un error, los datos son restaurados al estado coherente que exista antes de la falla. Considerar un programa para transferir $ 500 de la balanza por cuenta del departamento de A al saldo de la cuenta del departamento B. Si un fallo del sistema se produce durante el ejecucin del programa, es posible que el $ 500 fue retirado de la equilibrio del departamento de A pero este no acredita al saldo del departamento B, resultando en una base de datos de estado inconsistente. Claramente, es esencial para la base de datos consistencia que sea tanto el crdito y de dbito se producen, o que ni ocurrir. Es decir, la transferencia de fondos debe ser atmica que debe suceder en su totalidad o de ningn modo. Es difcil garantizar la atomicidad en un archivo de procesamiento convencional sistema. Anomalas concurrentes de acceso. En aras de un rendimiento global del sistema y una respuesta ms rpida, muchos sistemas permiten que mltiples usuarios actualizar el datos simultneamente. De hecho, hoy en da, los mayores minoristas de Internet pueden tener millones de accesos por da a sus datos por los compradores. En tal ambiente, interaccin de actualizaciones concurrentes es posible y puede resultar en inconsistente datos. Considere departamento A, con un saldo de cuenta de $ 10,000. Si dos empleados del departamento de dbito el saldo de la cuenta (decir por $ 500 y $ 100, respectivamente) del departamento de A en casi exactamente el mismo tiempo, el resultado de la ejecuciones concurrentes pueden dejar el presupuesto en un incorrecto (o inconsistente) estado. Supongamos que los programas que se ejecutan en nombre de cada retiro ledas el antiguo equilibrio, reducir ese valor por la cantidad beingwithdrawn, y escribir el resultado de nuevo. Si los dos programas se ejecutan simultneamente, ambos pueden leer el Valor $ 10.000, y escribir de nuevo 9,500 dlares y $ 9900, respectivamente. Dependiendo de que se escribe el valor ltimo, el saldo de la cuenta del departamento de A puede contener o bien $ 9500 o $ 9900, ms que el valor correcto de $ 9,400. Para protegerse contra esta posibilidad, el sistema debe mantener alguna forma de supervisin. Pero la supervisin es difcil de proporcionar porque los datos pueden ser accedidos por muchos diferentes programas de aplicacin que no han sido coordinados previamente. Como otro ejemplo, supongamos que un programa de registro mantiene un recuento de estudiantes inscritos en un curso, con el fin de cumplir los lmites sobre el nmero de estudiantes registered.When un estudiante registros, el programa lee la corriente cuenta para los cursos, verifica que el recuento no est ya en el lmite, aade uno a la cuenta, y almacena el recuento de vuelta en la base de datos. Supongamos dos los estudiantes se inscriben de forma simultnea, con el conteo en (digamos) 39. Los dos programas ejecuciones pueden tanto leer el valor de 39, y ambos seran entonces escribir de nuevo 40, que conduce a un aumento incorrecta de slo 1, a pesar de que dos estudiantes con xito registrado para el curso y el conteo debe ser 41. Por otra parte, supongamos que el lmite de inscripcin al curso fue de 40; en el caso anterior los estudiantes sera capaz de registrar, lo que lleva a una violacin del lmite de 40 estudiantes. Los problemas de seguridad. No todos los usuarios del sistema de base de datos deben ser capaces para acceder a todos los datos. Por ejemplo, en una universidad, el personal de nmina necesita ver slo la parte de la base de datos que tiene informacin financiera. Hacen no necesitan tener acceso a la informacin sobre los registros acadmicos. Pero, dado que la aplicacin programas se agregan al sistema de procesamiento de archivos de una manera ad hoc, hacer cumplir tales restricciones de seguridad es difcil.Estas dificultades, entre otros, impulsaron el desarrollo de sistemas de bases de datos. En lo que sigue, veremos los conceptos y algoritmos que permiten sistemas de bases de datos para resolver los problemas con los sistemas de procesamiento de archivos. En la mayora de este libro, utilizamos una organizacin universitaria como un ejemplo de funcionamiento de una tpico aplicacin de procesamiento de datos.Vista de datosUn sistema de base de datos es una coleccin de datos interrelacionados y un conjunto de programas que permiten a los usuarios acceder y modificar estos datos. Un propsito principal de una base de datos sistema es proporcionar a los usuarios una visin abstracta de los datos. Es decir, en el sistema se esconden ciertos detalles de cmo se almacenan y mantienen los datos.Abstraccin de DatosPara que el sistema sea utilizable, debe recuperar datos de manera eficiente. La necesidad de eficiencia ha llevado a los diseadores a utilizar estructuras de datos complejas para representar los datos en la base de datos. Dado que muchos usuarios del sistema de base de datos no estn capacitados ordenador, desarrolladores esconden la complejidad de los usuarios a travs de varios niveles de abstraccin, para simplificar los usuarios ' interacciones con el sistema: Nivel fsico. El nivel ms bajo de abstraccin describe cmo los datos son en realidad almacenado. El nivel fsico describe las estructuras de datos de bajo nivel complejas en detalle. Nivel Lgico. El nivel inmediatamente superior de abstraccin describe qu datos son almacenados en la base de datos, y qu relaciones existen entre esos datos. La por lo tanto nivel lgico describe la totalidad de la base de datos en trminos de un pequeo nmero de estructuras relativamente simples. Aunque la aplicacin de las estructuras simples a nivel lgico puede implicar estructuras complejas de nivel fsico, las usuario del nivel lgico no necesita ser consciente de esta complejidad. Este se refiere a la independencia de datos como fsica. Los administradores de bases de datos, que debe decidir qu tipo de informacin a tener en la base de datos, utilice el nivel lgico de la abstraccin. Nivel Visual. El nivel ms alto de abstraccin describe slo una parte de la totalidad base de datos. A pesar de que el nivel lgico utiliza estructuras ms simples, la complejidad permanece debido a la variedad de informacin almacenada en una base de datos grande.Muchos usuarios del sistema de base de datos no necesitan toda esta informacin; en su lugar, que necesitan para acceder a slo una parte de la base de datos. El nivel de vista de la abstraccin existe para simplificar su interaccin con el sistema. El sistema puede proporcionar muchos puntos de vista para la misma base de datos.La Figura 1.1 muestra la relacin entre los tres niveles de abstraccin. Una analoga con el concepto de tipos de datos en lenguajes de programacin pueden aclarar la distincin entre niveles de abstraccin. Muchos de programacin de alto nivel e idiomas que apoyan la idea de un tipo estructurado. Por ejemplo, podemos describir un registro de la siguiente manera:

type instructor = recordID : char (5);name : char (20);dept name : char (20);salary : numeric (8,2);end;Este cdigo define un nuevo tipo de registro llamado instructor con cuatro campos. Cada campo tiene un nombre y un tipo asociado con l. Una organizacin universitaria puede tener varios de estos tipos de registro, incluyendo department, with fields dept name, building, and budget course, with fields course id, title, dept name, and credits student, with fields ID, name, dept name, and tot credA nivel fsico, un instructor, un departamento o expediente del estudiante se puede describir como un bloque de ubicaciones de almacenamiento consecutivos. El compilador esconde este nivel de detalle de programador de. Del mismo modo, el sistema de base de datos oculta muchas de las informaciones acerca del almacenamiento de nivel ms bajo de los programadores de bases de datos. Los administradores de bases de datos, por otro lado, pueden ser conscientes de ciertos detalles de la organizacin fsica de los datos.En el plano lgico, cada uno de tales registros se describe mediante una definicin de tipo, como en el segmento de cdigo anterior, y la interrelacin de estos tipos de registro es definido tambin. Los programadores que utilizan un lenguaje de programacin de trabajo a este nivel de la abstraccin. Del mismo modo, los administradores de bases de datos por lo general trabajan en este nivel de abstraccin.Finalmente, en el nivel de vista, los usuarios de ordenadores ver un conjunto de programas de aplicacin que ocultan los detalles de los tipos de datos. A nivel de la vista, varias vistas de la base de datos se definen, y un usuario de base de datos ve todos o algunos de estos puntos de vista. Adicionalmente para ocultar los detalles del nivel lgico de la base de datos, las vistas tambin proporcionan un mecanismo de seguridad para evitar que los usuarios accedan a determinadas partes de la base de datos.Por ejemplo, los empleados de la oficina de registro universitario pueden ver slo la parte de la base de datos que contiene informacin acerca de los estudiantes; que no pueden acceder a la informacin sobre los salarios de los instructores.Instancias y esquemasBases de datos cambian con el tiempo a medida que se inserta la informacin y eliminar. La coleccin de la informacin almacenada en la base de datos en un momento determinado se denomina una instancia de la base de datos. El diseo general de la base de datos se llama el esquema de base de datos. Los esquemas se cambian con poca frecuencia, en todo caso. El concepto de esquemas de bases de datos e instancias puede ser entendido por analoga a un programa escrito en un lenguaje. Una base de datos en programacin corresponde a un esquema de las declaraciones de variables (junto con definiciones de tipos asociados) en un programa.Cada variable tiene un valor particular en un instante dado. Los valores de las variables en un programa en un punto en el tiempo corresponden a una instancia de un esquema de base de datos. Sistemas de base de datos tienen varios esquemas, se reparti segn los niveles de la abstraccin. El esquema fsico describe el diseo de base de datos en la fsica nivel, mientras que el esquema lgico describe el diseo de base de datos a nivel lgico.Una base de datos tambin puede tener varios esquemas en el nivel de vista, a veces llamado sub esquema, que describen diferentes vistas de la base de datos. De estos, el esquema lgico es con mucho el ms importante, en trminos de su efecto en programas de aplicacin, ya que los programadores construir aplicaciones utilizando la esquema lgico. El esquema fsico se oculta bajo el esquema lgico, y puede suele ser cambiado fcilmente sin afectar los programas de aplicacin. Aplicacin programas se dice que exhibir independencia de datos fsica si no dependen en el esquema fsico, y por lo tanto no necesitan ser reescritos si el esquema fsico cambia.Estudiamos idiomas para describir esquemas despus de la introduccin de la nocin de modelos de datos en la siguiente seccin.

Modelos de DatosDetrs de la estructura de una base de datos es el modelo de datos: una coleccin de conceptual herramientas para describir datos, relaciones de datos, la semntica de datos, y la coherencia restricciones. Un modelo de datos proporciona una forma de describir el diseo de una base de datos en los, niveles lgicos, y ver fsicos.Hay un nmero de diferentes modelos de datos que vamos a cubrir en el texto.Los modelos de datos se pueden clasificar en cuatro categoras diferentes: Modelo Relacional. El modelo relacional utiliza una coleccin de tablas para representar tanto los datos y las relaciones entre esos datos. Cada tabla tiene mltiples columnas, y cada columna tiene un nombre nico. Las tablas tambin se conocen como las relaciones. El modelo relacional es un ejemplo de un modelo basado en registros.Los modelos basados en registros se llaman as porque la base de datos se estructura en registros de formato fijo de varios tipos. Cada tabla contiene registros de un particular, escriba. Cada tipo de registro define un nmero fijo de campos o atributos. Las columnas de la tabla corresponden a los atributos del tipo de registro. El modelo de datos relacional es el modelo ms utilizado de datos, y una gran mayora de los sistemas de bases de datos actuales se basan en el modelo relacional. Los captulos 2 hasta el 8 de cubrir el modelo relacional en detalle. Modelo Entidad-Relacin. La entidad-relacin (E-R) utiliza un modelo de datos coleccin de objetos bsicos, llamados entidades, andrelationships entre estos objetos.Una entidad es una "cosa" u "objeto" en el mundo real que es distinguible de otros objetos. El modelo de entidad-relacin es ampliamente utilizado en la base de datos diseo, y en el captulo 7 explora en detalle. Programacin de objetos de datos basada en Model.Object orientada (especialmente en Java, C ++ o C #) se ha convertido en la metodologa de desarrollo de software dominante. Esto condujo al desarrollo de un modelo de datos orientado a objetos que puede ser visto como la extensin del modelo ER con nociones de encapsulacin, mtodos (funciones) y la identidad del objeto. Las cosechadoras de modelos de datos objeto-relacional caractersticas del modelo de datos orientado a objetos y datos relacionales modelo. Captulo 22 examina el modelo de datos objeto-relacional. Modelo de Datos semiestructurados. El modelo de datos permite la semiestructurada la especificacin de datos donde los elementos de datos individuales del mismo tipo pueden tener diferentes conjuntos de atributos. Esto est en contraste con los modelos de datos mencionados anterior, en el que cada elemento de datos de un tipo particular debe tener el mismo conjunto de atributos. El Extensible Markup Language (XML) es ampliamente utilizado para representar datos semiestructuradas. Captulo 23 cubre.Histricamente, el modelo de datos de la red y el modelo de datos jerrquico, precedidos del modelo de datos relacional. Estos modelos fueron atados estrechamente a la subyacente implementacin y complica la tarea de modelado de datos. Como resultado, estn poco utilizado ahora, excepto en el viejo cdigo de base de datos que todava est en servicio en algunos lugares.Ellos se describen en lnea en los Apndices D y E para los lectores interesados.Lenguajes de bases de datosUn sistema de base de datos proporciona un lenguaje de definicin de datos para especificar la base de datos esquema y un lenguaje de manipulacin de datos para expresar consultas de bases de datos y actualizaciones. En la prctica, los datos de definicin y manipulacin de datos lenguas no son dos lenguas separadas; sino que simplemente forman parte de una nica base de datos de lengua, tales como el lenguaje SQL utilizado.Lenguaje de manipulacin de datosUn lenguaje de manipulacin de datos (DML) es un lenguaje que permite a los usuarios el acceso o manipular los datos segn lo organizado por el modelo de datos adecuado. Los tipos de acceso son: Recuperacin de la informacin almacenada en la base de datos La insercin de nueva informacin en la base de datos Supresin de la informacin de la base de datos Modificacin de la informacin almacenada en la base de datosHay bsicamente dos tipos: LMD de procedimiento requieren un usuario para especificar qu datos son necesarios y cmo obtener esos datos. LMD declarativos (tambin conocidos como nonprocedural LMD) requieren que el usuario especifican qu datos se necesitan, sin especificar cmo obtener esos datos. LMD declarativos son generalmente ms fciles de aprender y usar que son de procedimiento LMD. Sin embargo, ya que un usuario no tiene que especificar cmo obtener los datos, el sistema de base de datos tiene que averiguar un medio eficiente de acceder a los datos.Una consulta es una declaracin que solicita la recuperacin de la informacin. La porcin de LMD que implica la recuperacin de informacin se llama un lenguaje de consulta. Aunque tcnicamente incorrecto, es una prctica comn el uso de la lengua trminos de consulta y lenguaje de manipulacin de datos como sinnimos.Hay una serie de lenguajes de consulta de base de datos en uso, sea en forma comercial o experimentalmente. Nosotros estudiamos el lenguaje de consulta, SQL, en captulos ms utilizados3, 4 y 5. Tambin estudiamos algunos otros lenguajes de consulta en el Captulo 6.Los niveles de abstraccin que hemos discutido en la Seccin 1.3 no slo se aplican con la definicin o la estructuracin de los datos, sino tambin para la manipulacin de datos. En la fsica nivel, tenemos que definir algoritmos que permiten el acceso eficiente a los datos. A mayor niveles de abstraccin, que hacen hincapi en la facilidad de uso. El objetivo es permitir que los seres humanos para interactuar eficientemente con el sistema. El componente procesador de consultas del sistema de base de datos (que se estudian en los captulos 12 y 13) se traduce consultas DML en secuencias de acciones a nivel fsico del sistema de base de datos.Lenguaje de Definicin de datosSe especifica un esquema de base de datos mediante un conjunto de definiciones expresada por un especial lenguaje llamado lenguaje de definicin de datos (DDL). La DDL tambin se utiliza para especificar propiedades adicionales de los datos.Se especifica la estructura y los mtodos de acceso de almacenamiento utilizados por la base de datos sistema por un conjunto de estados en un tipo especial de DDL llama un almacenamiento de datos y lenguaje de definicin. Estas declaraciones definen los detalles de implementacin de los esquemas de bases de datos, que generalmente estn ocultos a los usuarios. Los valores de los datos almacenados en la base de datos deben satisfacer ciertas restricciones de consistencia. Por ejemplo, supongamos que la universidad requiere que el saldo de la cuenta de un departamento nunca debe ser negativo. El DDL ofrece instalaciones para especificar tales limitaciones. El sistema de bases de datos comprueba estas restricciones cada vez que la base de datos se actualiza. En general, una restriccin puede ser un predicado arbitrario perteneciente a la base de datos. Sin embargo, predicados arbitrarias pueden ser costosas para probar. Por lo tanto, sistemas de bases de datos implementan restricciones de integridad que pueden ser testeados con un mnimo de gastos generales:Restricciones de dominio. Un dominio de valores posibles debe estar asociado con cada atributo (por ejemplo, los tipos enteros, tipos de caracteres, tipos de fecha / hora).La declaracin de un atributo a ser de un dominio particular acta como una restriccin a los valores que puede tomar. Las limitaciones de dominio son la forma ms elemental de restriccin de integridad. Se prueban fcilmente por el sistema cada vez que un nuevo elemento de datos se introduce en la base de datos. Integridad Referencial. Hay casos en los que queremos asegurar que un valor que aparece en una relacin para un conjunto dado de atributos tambin aparece en un cierto conjunto de atributos en otra relacin (integridad referencial). Por ejemplo, el departamento enumerado para cada curso debe ser uno que realmente existe. Ms precisamente, el valor del nombre dept en un rcord del campo debe aparecer en el nombre de departamento atributo de algn registro de la relacin departamento. Las modificaciones de base de datos pueden causar violaciones de integridad referencial. Cuando una restriccin de referencia en la fe es violada, el procedimiento normal es rechazar la accin que caus la violacin. Las afirmaciones. Una afirmacin es cualquier condicin que la base de datos debe siempre satisfacer. Las limitaciones de dominio y las limitaciones de integridad referencial son especiales formas de afirmaciones. Sin embargo, hay muchas limitaciones que no podemos expresar usando slo estas formas especiales. Por ejemplo, "Cada departamento debe tener al menos cinco cursos cada semestre "debe expresarse como una afirmacin. Cuando se crea una afirmacin, el sistema pone a prueba para la validez. Si es vlida, entonces se permite cualquier modificacin futura a la base de datos de la afirmacin slo si no causa que la afirmacin de que se viol. Autorizacin. Podemos querer diferenciar entre los usuarios en cuanto a la tipo de acceso que se permite en varios valores de datos en la base de datos. Estas diferenciaciones se expresan en trminos de la autorizacin, el ms comn siendo: autorizacin de lectura, que permite leer, pero no modificar, de datos; insertar autorizacin, que permite la insercin de nuevos datos, pero no la modificacin de los datos existentes; autorizacin de actualizacin, que permite la modificacin, pero no la eliminacin, de los datos; y borrar la autorizacin, que permite la eliminacin de datos. Podemos asignar al usuario de todo, ninguno, o una combinacin de estos tipos de autorizacin.El DDL, al igual que cualquier otro lenguaje de programacin, se pone como entrada un poco instrucciones (declaraciones) y genera una salida. La salida del DDL es colocado en el diccionario de datos, que contiene metadatos, es decir, datos sobre los datos. El diccionario de datos se considera que es un tipo especial de tabla que slo puede ser visitada y actualizada por el sistema de base de datos en s (no es un usuario regular). El sistema de base de datos de consulta el diccionario de datos antes de leer o modificar real datos.Bases de datos RelacionalesUna base de datos relacional se basa en el modelo relacional y utiliza una coleccin de tablas para representar los datos y las relaciones entre esos datos. Tambin incluye LMD y DDL. En el captulo 2 se presenta una suave introduccin a los fundamentos del modelo relacional. La mayora de los sistemas de bases de datos relacionales comerciales emplear el lenguaje SQL, que cubrimos con gran detalle en los captulos 3, 4, y 5. En el captulo 6 analizamos otros idiomas influyentes.TablasCada tabla tiene varias columnas y cada columna tiene un nombre nico. Figura 1.2 presenta una base de datos relacional muestra que comprende dos mesas: una muestra detalles de profesores universitarios y el otro muestra los detalles de las distintas universidades del departamento.La primera tabla, la tabla instructor, muestra, por ejemplo, que un instructor llamado Einstein con ID 22222 es un miembro del departamento de Fsica y tiene una salario anual de $ 95.000. La segunda tabla, departamento, muestra, por ejemplo, que el departamento de Biologa est situado en el edificio Watson y tiene un presupuesto de $ 90.000. Por supuesto, una universidad del mundo real tendra muchos ms departamentos e instructores. Utilizamos mesas pequeas en el texto para ilustrar los conceptos. Un mayor ejemplo para el mismo esquema est disponible en lnea.El modelo relacional es un ejemplo de un modelo basado en registros. Basado Record modelos se llaman as porque la base de datos se estructura en los registros de formato fijo de varios tipos. Cada tabla contiene los registros de un tipo particular. Cada tipo de registro define un nmero fijo de campos o atributos. Las columnas de la tabla corresponden a los atributos del tipo de registro.No es difcil ver cmo las tablas pueden ser almacenadas en archivos. Por ejemplo, un especial personaje (como una coma) se puede usar para delimitar los diferentes atributos de una registro, y otro carcter especial (tal como un carcter de nueva lnea) se pueden usar para delimitar registros. El modelo relacional se esconde dicha implementacin de bajo nivel detalles de los desarrolladores de bases de datos y usuarios.Tambin tomamos nota de que es posible crear esquemas en el modelo relacional que tener problemas como informacin innecesariamente duplicado. Por ejemplo, supongamos almacenamos el presupuesto del departamento como un atributo del registro instructor. Luego, siempre que el valor de un presupuesto determinado (digamos que una para el departamento de Fsica) cambios, que el cambio se debe a reflejarse en los registros de todos los instructores asociado con el departamento de Fsica. En el captulo 8, estudiaremos cmo distinguir los buenos diseos de esquemas de diseos malos. Lenguaje de Manipulacin de datosEl lenguaje de consulta SQL es no procedimental. Una consulta toma como entrada varias mesas (posiblemente slo uno) y siempre devuelve una sola tabla. He aqu un ejemplo de un Consulta SQL que encuentra los nombres de todos los instructores en el departamento de Historia:select instructor.namefrom instructorwhere instructor.dept name = History;La consulta especfica que esas filas del instructor tabla donde el nombre de departamento es La historia debe ser recuperada, y el atributo de nombre de estas filas se debe mostrar. Ms especficamente, el resultado de ejecutar esta consulta es una tabla con una sola columna nombre de la etiqueta, y un conjunto de filas, cada una de las cuales contiene el nombre de un instructor cuyo nombre dept, es Historia. Si la consulta se ejecuta en la tabla de la figura 1.2, el resultado constar de dos filas, una con el nombre El Said y el otro con el nombre Califieri.Las consultas pueden incluir informacin de ms de una tabla. Por ejemplo, la consulta siguiente busca el nombre ID instructor y el departamento de todos los instructores asociada a un departamento con presupuesto de ms de $ 95.000.select instructor.ID, department.dept namefrom instructor, departmentwhere instructor.dept name= department.dept name anddepartment.budget > 95000;Si la consulta anterior se ejecuta en las tablas en la Figura 1.2, el sistema encontrara que hay dos departamentos con presupuesto de ms de $ 95,000 por Ordenador Ciencia y Finanzas; hay cinco instructores en estos departamentos. Por lo tanto, la resultado consistir en una tabla con dos columnas (id, nombre de departamento) y cinco filas: (12121, finanzas), (45565, Ciencias de la Computacin), (10101, Ciencias de la Computacin), (83821, Ciencias de la Computacin), y (76543, Hacienda).Lenguaje de Manipulacin de datosSQL proporciona un DDL rica que permita definir las tablas, restricciones de integridad, afirmaciones, etc. Por ejemplo, la siguiente sentencia SQL DDL define la tabla departamento:create table department(dept name char (20),building char (15),budget numeric (12,2));La ejecucin de la sentencia DDL anterior crea la tabla departamento con tres columnas: Nombre del departamento, edificio, y el presupuesto, cada uno de los cuales tiene un tipo de datos especfico asociado con este. Nosotros discutiremos los tipos de datos en ms detalle en el captulo 3. Adems, la sentencia DDL actualiza el diccionario de datos, que contiene metadatos (ver Seccin 1.4.2). El esquema de una tabla es un ejemplo de metadatos.Acceso a bases de datos desde aplicaciones de programasSQL no es tan poderoso como una mquina universal de Turing; es decir, hay algunos clculos que son posibles utilizando un lenguaje de programacin de propsito general pero no son posibles utilizando SQL. SQL tambin no apoya acciones como la entrada de los usuarios, la produccin de pantallas, o la comunicacin en la red. Tales clculos y acciones deben estar escritos en un lenguaje principal, como C, C ++ o Java, con consultas SQL incorporado que acceden a los datos en la base de datos. Aplicacin programas son programas que se utilizan para interactuar con la base de datos de esta manera.Ejemplos en un sistema universitario son programas que permiten a los estudiantes se inscriben para cursos, generar listas de clase, calcular estudiante GPA, generar cheques de nmina, etc.Para acceder a la base de datos, sentencias DML deben ejecutarse desde el host idioma. Hay dos maneras de hacer esto: Al proporcionar una interfaz de programacin de aplicaciones (conjunto de procedimientos) que puede ser utilizado para enviar sentencias DML y DDL para la base de datos y recuperar el resultados.El Open Database Connectivity (ODBC) para su uso con el C el lenguaje es un estndar de interfaz de programacin de aplicaciones de uso comn. La Java Database Connectivity (JDBC) estndar proporciona funciones correspondientes al lenguaje Java. Al extender la sintaxis del lenguaje de acogida para incrustar DML llamadas dentro del husped programa de idiomas. Por lo general, un carcter especial prologa llamadas DML, y un preprocesador, llamado el pre compilador DML, convierte las sentencias DML a procedimiento normal llama en la lengua de acogida.Diseo de bases de datosLos Sistemas de bases de datos estn diseados para manejar grandes masas de informacin. Estos grandes cuerpos de informacin no existen en aislamiento. Ellos son parte de la operacin de alguna empresa cuyo producto final puede ser informacin de la base de datos o puede haber algn dispositivo o servicio para el que la base de datos slo desempea un soporte papel.Diseo de base de datos implica principalmente el diseo del esquema de base de datos. La diseo de un entorno de aplicaciones de base de datos completa que satisface las necesidades de los la empresa que est siendo modelado requiere la atencin a un conjunto ms amplio de cuestiones. En este texto, nos centramos inicialmente en la escritura de consultas de bases de datos y el diseo de esquemas de bases de datos. Captulo 9 describe el proceso general de diseo de la aplicacin.Proceso de diseoUn modelo de datos de alto nivel proporciona a la base de datos un diseo con un marco conceptual en el que se especifican los requisitos de datos de los usuarios de bases de datos, y cmo la base de datos estar estructurada para cumplir con estos requisitos. La fase inicial de diseo de base de datos, entonces, es caracterizar plenamente las necesidades de datos de la prospectiva los usuarios de bases de datos. El diseador de la base de datos necesita interactuar ampliamente con dominio los expertos y los usuarios llevar a cabo esta tarea. El resultado de esta fase es una especificacin de los requerimientos del usuario.A continuacin, el diseador elige un modelo de datos, y mediante la aplicacin de los conceptos del modelo de datos elegido, traduce estos requisitos en un esquema conceptual de la base de datos. El esquema desarrollado en esta fase conceptual - diseo proporciona un visin detallada de la empresa. El diseador revisa el esquema para confirmar que todos los requisitos de datos se satisfacen y no estn en conflicto con uno otra. El diseador tambin puede examinar el diseo para eliminar cualquier redundante caracterstica. El objetivo en este punto es en la descripcin de los datos y sus relaciones, en lugar de sobre la especificacin de los detalles fsicos de almacenamiento.En trminos del modelo relacional, el proceso de diseo conceptual implica decisiones sobre qu atributos que queremos plasmar en la base de datos y la forma de grupo estos atributos para formar las distintas tablas. La parte de "lo que" es bsicamente un negocio decisin, y no vamos a discutir ms sobre l en este texto. El "cmo" es principalmente una parte problema de la computadora en la ciencia. Hay principalmente dos maneras de abordar el problema.La primera de ellas es utilizar el modelo entidad-relacin (seccin 1.6.3); el otro es emplear un conjunto de algoritmos (colectivamente conocidos como la normalizacin) que toma como introducir el conjunto de todos los atributos y genera un conjunto de tablas (Seccin 1.6.4).Un esquema conceptual desarrollado plenamente indica los requisitos funcionales de la empresa. En una especificacin de requisitos funcionales, los usuarios describen el tipo de operaciones (o transacciones) que se realizarn en los datos. Ejemplo operaciones incluyen la modificacin o actualizacin de datos, bsqueda y recuperacin datos especficos, y borrar datos. En esta etapa de diseo conceptual, el diseador puede revisar el esquema para asegurar que cumple con los requisitos funcionales. El proceso de pasar de un modelo abstracto de datos a la aplicacin de la base de datos procede en dos etapas finales de diseo. En la fase de diseo lgico, la diseador asigna el esquema conceptual de alto nivel sobre la aplicacin de datos modelo del sistema de base de datos que se utilizar. El diseador utiliza la resultante esquema de base de datos especfica del sistema en la fase de diseo fsico subsiguiente, en el que se especifican las caractersticas fsicas de la base de datos. Estas caractersticas incluyen la forma de organizacin de archivos y las estructuras de almacenamiento interno; que se discuten en el captulo 10.Diseo de base de datos para una Organizacin UniversitariaPara ilustrar el proceso de diseo, examinemos cmo una base de datos para una universidad podra ser diseada. La especificacin inicial de necesidades de los usuarios puede basarse en entrevistas con los usuarios de bases de datos, y en el anlisis del propio diseador de la organizacin. La descripcin que surge de esta fase de diseo sirve como el base para especificar la estructura conceptual de la base de datos. stas son las principales caractersticas de la universidad. La universidad se organiza en departamentos. Cada departamento est identificado por un nombre nico (nombre de departamento), est situado en un edificio en particular, y tiene una presupuesto. Cada departamento tiene una lista de los cursos que ofrece. Cada curso ha asociado con es una ID de curso, ttulo, nombre de departamento y crditos, y tambin puede haber han asociado requisitos previos. Los instructores son identificados por su identificador nico. Cada instructor tiene el nombre, asociado departamento (nombre dept), y el salario. Los estudiantes se identifican por su identificador nico. Cada estudiante tiene un nombre, un asociado importante departamento (nombre dept), y tot _ cred (horas totales de crdito del estudiante ganado hasta el momento). La universidad mantiene una lista de los salones de clase, especificando el nombre de la construccin, nmero de habitacin, y capacidad de la sala. La universidad mantiene una lista de todas las clases (secciones) que se ensean. Cada seccin es identificada por un identificador de curso, Identificacin seg, ao y semestre, y se ha asociado a l un semestre, ao, edificio, nmero de habitacin, y el tiempo de id espacio (el intervalo de tiempo cuando el clase se rene). El departamento tiene una lista de asignaciones de enseanza especifiquen, para cada instructor, las secciones del instructor est enseando. La universidad tiene una lista de todos los registros del curso del estudiante, especificando, por cada estudiante, los cursos y las secciones asociadas que el estudiante tiene tomado (registrado para).Una base de datos real de la universidad sera mucho ms compleja que la anterior design. Sin embargo, nosotros utilizamos este modelo simplificado para ayudarle a entender conceptual ideas sin perderse en detalles de un diseo complejo.El modelo de entidad relacinEl modelo de datos de entidad-relacin (ER) utiliza una coleccin de objetos bsicos, llamado entidades y relaciones entre estos objetos. Una entidad es una "cosa" u "objeto" en el mundo real que es distinguible de otros objetos. Por ejemplo, cada persona es una entidad, y las cuentas bancarias se pueden considerar como entidades. Las entidades se describen en una base de datos por un conjunto de atributos. Por ejemplo, el atributos dept nombre, edificio, y el presupuesto puede describir un departamento en particular en una universidad, y forman atributos del conjunto de entidades departamento. Del mismo modo, atributos de ID, nombre y salario puede describir un entity.2 instructor El ID de atributo adicional se utiliza para identificar de forma nica un instructor (ya que puede ser posible tener dos instructores con el mismo nombre y el mismo sueldo). Un identificador nico instructor debe asignarse a cada instructor. En los Estados Unidos, muchas organizaciones utilizan el nmero de la seguridad social de una persona (un nico nmero el gobierno de Estados Unidos asigna a cada persona en los Estados Unidos) como identificador nico.Una relacin es una asociacin entre varias entidades. Por ejemplo, un miembro relacin asocia un instructor con su departamento. El conjunto de todas las entidades del mismo tipo y el conjunto de todas las relaciones del mismo tipo que se denomina un conjunto de entidades y relaciones establecidas, respectivamente. La estructura lgica general (esquema) de una base de datos se puede expresar grficamente por una entidad-relacin (E-R) diagrama. Hay varias formas en las que a dibujar estos diagramas. Uno de los ms populares es utilizar el Modelado Unificado De Lenguaje (UML). En la notacin que utilizamos, que est basado en UML, un diagrama ER se representa como sigue:

El conjunto de entidades estn representadas por una caja rectangular con el nombre conjunto de entidades en la cabecera y los atributos enumerados debajo. Los conjuntos de relaciones estn representadas por un diamante conectar un par de relacionados conjuntos de entidades. El nombre de la relacin se coloca dentro del diamante.Como ejemplo, considere parte de una base de datos de la universidad consiste en instructores y los departamentos con los que estn asociados. La Figura 1.3 muestra la diagrama E-R correspondiente. El diagrama ER indica que hay dos entidades de conjuntos, instructor y el departamento, con atributos como se indica anteriormente. El diagrama tambin muestra un miembro de relacin entre el instructor y el departamento.Adems de las entidades y relaciones, el modelo ER representa ciertas restricciones a las que el contenido de una base de datos debe cumplir. Una importante restriccin son las cardinalidades de mapeo, que expresan el nmero de entidades a las que otra entidad se puede asociar a travs de un conjunto de relaciones. Por ejemplo, si cada instructor debe estar asociado a un nico departamento, el modelo ER puede expresar esa restriccin.El modelo entidad-relacin utilizada es ampliamente en el diseo de bases de datos, y en el captulo 7 explora en detalle.NormalizacinOtro mtodo para el diseo de una base de datos relacional es utilizar un proceso comnmente conocida como la normalizacin. El objetivo es generar un conjunto de esquemas de relacin que nos permite almacenar informacin sin redundancia innecesaria, pero tambin permite nosotros para recuperar informacin fcilmente. El enfoque es disear esquemas que estn en una forma normal apropiada. Para determinar si un esquema de relacin est en una de las formas normales deseables, que necesitan informacin adicional acerca del mundo real empresa que estamos modelando con la base de datos. El enfoque ms comn es el uso de dependencias funcionales, que cubrimos en la Seccin 8.4.Para entender la necesidad de la normalizacin, echemos un vistazo a lo que puede salir mal en un diseo de base de datos mal. Entre las propiedades indeseables que un mal diseo puede tener son: La repeticin de la informacin Incapacidad para representar cierta informacin Vamos a discutir estos problemas con la ayuda de un diseo de base de datos modificada para nuestro ejemplo universidad. Supongamos que en vez de tener las dos tablas separadas instructor y departamento, tenemos una sola mesa, la facultad, que combina la informacin de los dos tablas (como se muestra en la Figura 1.4). Observe que hay dos filas en la facultad que contener informacin repetida sobre el departamento de Historia, en concreto, que la construccin y el presupuesto del departamento. La repeticin de informacin en nuestra alternativa diseo es indeseable. Repeticin de espacio desechos de informacin. Adems, se complica la actualizacin de la base de datos. Supongamos que deseamos cambiar el presupuesto importe del departamento de Historia desde $ 50.000 a $ 46.800. Este cambio debe reflejarse en las dos filas; contrastar esto con el diseo original, donde este requiere una actualizacin de una nica fila. Por lo tanto, las actualizaciones son ms costosas en virtud de la diseo alternativo que bajo el diseo original. Cuando realizamos la actualizacin en la base de datos alternativa, debemos asegurarnos de que cada tupla perteneciente a la Historia departamento se actualiza, o de lo contrario nuestra base de datos mostrar dos presupuesto diferente valores para el departamento de Historia.Ahora, vamos a cambiar nuestra atencin hacia el tema de la "incapacidad para representar cierta informacin. Supongamos que estamos creando un nuevo departamento en la universidad. En el diseo alternativo anteriormente, no podemos representar directamente la informacin relativa a un departamento (nombre departamento, edificio, presupuesto) a menos que el departamento tiene al menos un instructor en la universidad. Esto se debe a las filas de la tabla facultad requieren valores de ID, el nombre y el salario. Esto significa que no podemos registrar informacin sobre el departamento de nueva creacin hasta el primer instructor es contratado para el nuevo departamento.Una solucin a este problema es introducir valores nulos. El valor nulo indica que el valor no existe (o no se conoce). Un valor desconocido puede ser que falta (el valor no existe, pero no tenemos esa informacin) o no conocida (no sabemos si realmente existe el valor).Como veremos ms adelante, los valores nulos son difciles de manejar, y es preferible no recurrir a ellos. Si no estamos dispuestos a hacer frente a los valores nulos, entonces podemos crear un particular, informacin del departamento itemof slo cuando el departamento tiene al menos un instructor asociado en el departamento. Adems, tendramos eliminar esta informacin cuando el ltimo instructor en el departamento se aparta. Es evidente que esta situacin no es deseable, ya que, en virtud de nuestro diseo de base de datos original, la informacin del departamento estara disponible sin importar si o no hay un instructor asociado con el departamento, y sin recurrir a la valores nulos.Una extensa teora de la normalizacin se ha desarrollado que ayuda formalmente a definir qu diseos de base de datos no son deseables, y cmo obtener diseos deseables. Captulo 8 se refiere a diseo relacional de bases de datos, incluyendo la normalizacin.