14
Unidad II.- Diseño de Bases de Datos y el modelo E-R. 2.1 EL PROCESO DE DISEÑO El diseño de BD es el proceso por el que se determina la organización de una BD, incluidos su estructura, contenido y las aplicaciones que se han de desarrollar. Al diseñar una base de datos, en primer lugar debe dividir la información que desea almacenar como temas distintos y después indicar cómo se relacionan estos temas para que pueda recuperar la información correcta cuando sea necesario. Si mantiene la información en tablas separadas facilitará la organización y el mantenimiento de los datos y conseguirá aplicaciones de alto rendimiento. Si usa un proceso de diseño de base de datos establecido, puede crear de forma rápida y efectiva una base de datos bien diseñada que le proporciona acceso conveniente a la información que desea. Con un diseño sólido tardará menos tiempo en construir la base de datos y obtendrá resultados más rápidos y precisos. La clave para obtener un diseño de base de datos eficaz radica en comprender exactamente qué información se desea almacenar y la forma en que un sistema de administración de bases de datos relacionales, almacena los datos. Para ofrecer información de forma eficiente y precisa, debe tener almacenados los datos sobre distintos temas en tablas separadas. Por ejemplo, puede haber una tabla donde sólo se almacenen datos sobre empleados y otra tabla que sólo contenga datos de ventas

Fundamentos de Bases de Datos

Embed Size (px)

DESCRIPTION

unidad II y unidad III de fundamentos de bases de datos-ing. en sistemas computacionales

Citation preview

Unidad II.- Diseo de Bases de Datos y el modelo E-R.

2.1 EL PROCESO DE DISEOEl diseo de BD es el proceso por el que se determina la organizacin de una BD, incluidos su estructura, contenido y las aplicaciones que se han de desarrollar. Al disear una base de datos, en primer lugar debe dividir la informacin que desea almacenar como temas distintos y despus indicar cmo se relacionan estos temas para que pueda recuperar la informacin correcta cuando sea necesario. Si mantiene la informacin en tablas separadas facilitar la organizacin y el mantenimiento de los datos y conseguir aplicaciones de alto rendimiento.Si usa un proceso de diseo de base de datos establecido, puede crear de forma rpida y efectiva una base de datos bien diseada que le proporciona acceso conveniente a la informacin que desea. Con un diseo slido tardar menos tiempo en construir la base de datos y obtendr resultados ms rpidos y precisos.La clave para obtener un diseo de base de datos eficaz radica en comprender exactamente qu informacin se desea almacenar y la forma en que un sistema de administracin de bases de datos relacionales, almacena los datos. Para ofrecer informacin de forma eficiente y precisa, debe tener almacenados los datos sobre distintos temas en tablas separadas. Por ejemplo, puede haber una tabla donde slo se almacenen datos sobre empleados y otra tabla que slo contenga datos de ventas

El proceso de diseo consta de los pasos siguientes:

DETERMINAR LA FINALIDAD DE LA BASE DE DATOSEsto le ayudar a estar preparado para los dems pasos.

BUSCAR Y ORGANIZAR LA INFORMACIN NECESARIARena todos los tipos de informacin que desee registrar en la base de datos, como los nombres de productos o los nmeros de pedidos.

DIVIDIR LA INFORMACIN EN TABLASDivida los elementos de informacin en entidades o temas principales, como Productos o Pedidos. Cada tema pasar a ser una tabla.

CONVERTIR LOS ELEMENTOS DE INFORMACIN EN COLUMNASDecida qu informacin desea almacenar en cada tabla. Cada elemento se convertir en un campo y se mostrar como una columna en la tabla. Por ejemplo, una tabla Empleados podra incluir campos como Apellido y Fecha de contratacin.Almacene la informacin en sus partes lgicas ms pequeas.

ESPECIFICAR CLAVES PRINCIPALESElija la clave principal de cada tabla. La clave principal es una columna que se utiliza para identificar inequvocamente cada fila, como Id. de producto o Id. de pedido.

DEFINIR RELACIONES ENTRE LAS TABLASExamine cada tabla y decida cmo se relacionan los datos de una tabla con las dems tablas. Agregue campos a las tablas o cree nuevas tablas para clarificar las relaciones segn sea necesario.

AJUSTAR EL DISEOAnalice el diseo para detectar errores. Cree las tablas y agregue algunos registros con datos de ejemplo. Compruebe si puede obtener los resultados previstos de las tablas. Realice los ajustes necesarios en el diseo.

APLICAR LAS REGLAS DE NORMALIZACINAplique reglas de normalizacin de los datos para comprobar si las tablas estn estructuradas correctamente. Realice los ajustes necesarios en las tablas.

2.2 MODELO ENTIDAD RELACINEl modelo entidad-relacin (E-R) es un modelo de datos de alto nivel. Est basado en una percepcin de un mundo real que consiste en una coleccin de objetos bsicos, denominados entidades, y de relaciones entre estos objetos.Hay tres nociones bsicas que emplea el modelo de datos E-R: conjuntos de entidades, conjuntos de relaciones y atributos.

ENTIDAD: Es una cosa u objeto en el mundo real que es distinguible de todos los dems objetos. Por ejemplo, cada persona en un desarrollo es una entidad. Una entidad tiene un conjunto de propiedades, y los valores para algn conjunto de propiedades pueden identificar una entidad de forma unvoca.

ATRIBUTOS: Describen propiedades que posee cada miembro de un conjunto de entidades. La designacin de un atributo para un conjunto de entidades expresa que la base de datos almacena informacin similar concerniente a cada entidad del conjunto de entidades; sin embargo, cada entidad puede tener su propio valor para cada atributo. Para cada atributo hay un conjunto de valores permitidos, llamados elDOMINIO, o elconjunto de valores, de ese atributo.

RELACIN:Es una asociacin entre diferentes entidades.

2.3 RESTRICCIONES

Una restriccin es una condicin que obliga el cumplimiento de ciertas condiciones en la base de datos. Algunas no son determinadas por los usuarios, sino que son inherentemente definidas por el simple hecho de que la base de datos sea relacional. Algunas otras restricciones las puede definir el usuario, por ejemplo, usar un campo con valores enteros entre 1 y 10.

UNO A UNO: Una entidad en A se asocia con a lo sumo una entidad en B, y una entidad en B se asocia con a lo sumo una entidad en A.

VARIOS A UNO: Una entidad en A se asocia con a lo sumo una entidad en B. Una entidad en B, sin embargo, se puede asociar con cualquier nmero de entidades (ninguna o varias) en A

VARIOS A VARIOS: Una entidad en A se asocia con cualquier nmero de entidades (ninguna o varias) en B, y una entidad en B se asocia con cualquier nmero de entidades (ninguna o varias) en A.

RESTRICCIONES PARCIALES

La participacin de un conjunto de entidades E en un conjunto de relaciones R se dice que es total si cada entidad en E participa al menos en una relacin en R. Si slo algunas entidades en E participan en relaciones en R, la participacin del conjunto de entidades E en la relacin R se llama parcial.

2.4 DIAGRAMAS E-R2.5 DISEO CON DIAGRAMAS E-R

Diagrama Entidad - Relacin.

Es la representacin grfica del Modelo Entidad-Relacin y permite ilustrar la estructura de la base de datos del negocio modelado.Est compuesto por los siguientes elementos. Rectngulos: representan conjuntos de entidades. Elipses: representan atributos. Rombos: representan relaciones. Lneas: unen atributos a conjuntos de entidades y conjuntos de entidades a conjuntos de relaciones. Elipses dobles: representan atributos multivalorados. Elipses discontinuas: que denotan atributos derivados. Lneas dobles: indican participacin total de una entidad en un conjunto de relaciones. Rectngulos dobles: representan conjuntos de entidades dbiles.

Considrese el siguiente diagrama entidad-relacin, que consta de dos conjuntos de entidades, cliente y prstamo, relacionadas a travs de un conjunto de relaciones binarias prestatario. Los atributos asociados con cliente son id-cliente, nombre-cliente, calle-cliente, y ciudad-cliente. Los atributos asociados con prstamo son nmero-prstamo e importe. Los atributos de un conjunto de entidades que son miembros de la clave primaria estn subrayados. El conjunto de relaciones prestatario puede ser varios a varios, uno a varios, varios a uno o uno a uno. Para distinguir entre estos tipos, se dibuja o una lnea dirigida () o una lnea no dirigida () entre el conjunto de relaciones y el conjunto de entidades en cuestin.

2.6 CONJUNTO DE ENTIDADES DBILES

Una entidad dbil es una entidad cuyos atributos no la identifican completamente, sino que slo la identifican de forma parcial. Esta entidad debe participar en una interrelacin que ayuda a identificarla.Una entidad dbil se representa con un rectngulo doble, y la interrelacin que ayuda a identificarla se representa con una doble lnea.Para que un conjunto de entidades dbiles tenga sentido, debe estar asociada con otro conjunto de entidades, denominado el conjunto deentidades identificadoras o propietarias. Cada entidad dbil debe estar asociada con una entidad identificadora; es decir, se dice que el conjunto de entidades dbiles depende existencialmente del conjunto de entidades identificadoras. Se dice que el conjunto de entidades identificadoras es propietaria del conjunto de entidades dbiles que identifica. La relacin que asocia el conjunto de entidades dbiles con el conjunto de entidades identificadoras se denomina relacin identificadora. La relacin identificadora es varios a uno del conjunto de entidades dbiles al conjunto de entidades identificadoras y la participacin del conjunto de entidades dbiles en la relacin es total.

2.7 MODELO E-R EXTENDIDO

En algunos casos, hay ocurrencias de una entidad que tienen caractersticas propias especficas que nos interesa modelizar. Por ejemplo, puede ocurrir que se quiera tener constancia de qu coche de la empresa tienen asignado los empleados que son directivos; tambin que, de los empleados tcnicos, interese tener una interrelacin con una entidadproyectoque indique en qu proyectos trabajan y se desee registrar su titulacin. Finalmente, que convenga conocer la antigedad de los empleados administrativos. Asimismo, habr algunas caractersticas comunes a todos los empleados: todos se identifican por un DNI, tienen un nombre, un apellido, una direccin y un nmero de telfono.

La generalizacin/especializacin permite reflejar el hecho de que hay una entidad general, que denominamosentidad superclase, que se puede especializar en entidades subclase:

a) La entidad superclase nos permite modelizar las caractersticas comunes de la entidad vista de una forma genrica.b) Las entidades subclase nos permiten modelizar las caractersticas propias de sus especializaciones.

Es necesario que se cumpla que toda ocurrencia de una entidad subclase sea tambin una ocurrencia de su entidad superclase.

Denotamos la generalizacin/especializacin con una flecha que parte de las entidades subclase y que se dirige a la entidad superclase.En la generalizacin/especializacin, las caractersticas (atributos o interrelaciones) de la entidad superclase se propagan hacia las entidades subclase. Es lo que se denomina herencia de propiedades. La generalizacin/especializacin puede ser de dos tipos:

a) Disjunta. En este caso no puede suceder que una misma ocurrencia apa rezca en dos entidades subclase diferentes. Se denota grficamente con la etiqueta D.

b) Solapada. En este caso no tiene lugar la restriccin anterior. Se denota grficamente con la etiqueta S.

Adems, una generalizacin/especializacin tambin puede ser:

1) Total. En este caso, toda ocurrencia de la entidad superclase debe pertenecer a alguna de las entidades subclase. Esto se denota con la etiqueta T.

2) Parcial. En este caso no es necesario que se cumpla la condicin anterior. Se denota con la etiqueta P.

2.8 OTROS ASPECTOS DEL DISEO DE BASES DE DATOS

Reduccin de diagramas E-R a tablasUn diagrama E-R, puede ser representado tambin a travs de una coleccin de tablas. Para cada una de las entidades y relaciones existe una tabla nica a la que se le asigna como nombre el del conjunto de entidades y de las relaciones respectivamente, cada tabla tiene un nmero de columnas que son definidas por la cantidad de atributos y las cuales tienen el nombre del atributo.

2.9 LA NOTACIN E-R CON UMLEl lenguaje de modelado unificado (UML, Unified Modeling Language) es un estndar propuesto para la creacin de especificaciones de varios componentes de un sistema software. Algunas de las partes de UML son:Diagrama de clase. Un diagrama de clase es similar a un diagrama E-R. Ms adelante en este apartado se mostrarn algunas caractersticas de los diagramas de clase y cmo se corresponden con los diagramas E-R.

Diagrama de caso de uso. Los diagramas de caso de uso muestran la interaccin entre los usuarios y el sistema, en particular los pasos de las tareas que realiza el usuario (tales como prestar dinero o matricularse de una asignatura).

Diagrama de actividad. Los diagramas de actividad describen el flujo de tareas entre varios componentes de un sistema.

Diagrama de implementacin. Los diagramas de implementacin muestran los componentes del sistema y sus interconexiones tanto en el nivel del componente software como el hardware.Los conjuntos de relaciones binarias se representan en UML dibujando simplemente una lnea que conecte los conjuntos de entidades. Se escribe el nombre del conjunto de relaciones adyacente a la lnea. Tambin se puede especificar el papel que juega un conjunto de entidades en un conjunto de relaciones escribiendo el nombre del papel en un cuadro, junto con los atributos del conjunto de relaciones, y conectar el cuadro con una lnea discontinua a la lnea que describe el conjunto de relaciones. Este cuadro se puede tratar entonces como un conjunto de entidades, de la misma forma que una agregacin en los diagramas E-R puede participar en relaciones con otros conjuntos de entidades. La relaciones no binarias no se pueden representar directamente en UML se deben convertir en relaciones binarias. Las restricciones de cardinalidad se especifican en UML de la misma forma que en los diagramas E-R, de la forma i..s, dondeidenota el mnimo ysel mximo nmero de relaciones en que puede participar una entidad. Sin embargo, se debera ser consciente que la ubicacin de las restricciones es exactamente el inverso de la ubicacin de las restricciones en los diagramas E-R.

UNIDAD III.- MODELO RELACIONAL

3.1 ESTRUCTURA BSICAEl modelo relacional fue propuesto por E.F. Codd en los laboratorios de IBM en California. Se trata de un modelo lgico, que establece una estructura sobre los datos, aunque posteriormente stos puedan ser almacenados de mltiples formas para aprovechar caractersticas fsicas concretas de la mquina sobre la que se implante la base de datos realmente.Una base de datos relacional consiste en un conjunto de tablas, a cada una de las cuales se le asigna un nombre exclusivo. Cada fila de la tabla representa una relacin entre un conjunto de valores. Dado que cada tabla es un conjunto de dichas relaciones, hay una fuerte correspondencia entre el concepto de tabla y el concepto matemtico de relacin, del que toma su nombre el modelo de datos relacional.El nombre de modelo relacional viene de la estrecha relacin que existe entre el elemento bsico de este modelo, y el concepto matemtico de relacin. Podemos decir que una relacin R sobre los conjuntos D1, D2, .., Dn, se define como:R ** D1 D2 ... Dndonde los conjuntos D1, D2, .., Dn pueden ser cualesquiera, e incluso estar repetidos.

Los matemticos definen las relaciones como subconjuntos del producto cartesiano de la lista de dominios.

3.2 ESQUEMA DE LA BASE DE DATOS.

El Esquema de una Base de datos (en Ingls Database Schema) describe la estructura de una Base de datos, en un lenguaje formal soportado por un Sistema administrador de Base de datos (DBMS). En una Base de datos Relacional, el Esquema define sus tablas, sus campos en cada tabla y las relaciones entre cada campo y cada tabla.El esquema es generalmente almacenado en un Diccionario de Datos. Aunque generalmente el esquema es definido en un lenguaje de Base de datos, el trmino se usa a menudo para referirse a una representacin grfica de la estructura de base de datos.

Niveles de Esquema de Base de datos

Esquema Conceptual, un mapa de conceptos y sus relaciones. Esquema Lgico, un mapa de las entidades y sus atributos y las relaciones. Esquema Fsico, una aplicacin de un esquema lgico. Esquema Objeto, Base da datos Oracle Objeto.

El concepto de relacin se corresponde con el concepto de variable de los lenguajes de programacin. El concepto de esquema de la relacin se corresponde con el concepto de definicin de tipos de los lenguajes de programacin.El concepto de ejemplar de relacin se corresponde con el concepto de valor de una variable en los lenguajes de programacin. El valor de una variable dada puede cambiar con el tiempo; de manera parecida, el contenido del ejemplar de una relacin puede cambiar con el tiempo cuando la relacin se actualiza. Sin embargo, se suele decir simplemente relacin cuando realmente se quiere decir ejemplar de la relacin.

3.3 CLAVESUna clave permite identificar un conjunto de atributos suficiente para distinguir las entidades entre s. Las claves tambin ayudan a identificar unvocamente a las relaciones y as a distinguir las relaciones entre s.

Unasuperclavees un conjunto de uno o ms atributos que, tomados colectivamente, permiten identificar de forma nica una entidad en el conjunto de entidades.

Si K es una superclave, entonces tambin lo es cualquier superconjunto de K. A menudo interesan las superclaves tales que los subconjuntos propios de ellas no son superclave. Tales superclaves mnimas se llamanclaves candidatas.Es posible que conjuntos distintos de atributos pudieran servir como clave candidata.

Se usar el trminoclave primariapara denotar una clave candidata que es elegida por el diseador de la base de datos como elemento principal para identificar las entidades dentro de un conjunto de entidades.

3.4 LENGUAJES DE CONSULTA

Un lenguaje de consulta es un lenguaje en el que un usuario solicita informacin de la base de datos. Estos lenguajes suelen ser de un nivel superior que el de los lenguajes de programacin habituales. Los lenguajes de consulta pueden clasificarse como procedimentales o no procedimentales. En los lenguajes procedimentales el usuario instruye al sistema para que lleve a cabo una serie de operaciones en la base de datos para calcular el resultado deseado. En los lenguajes no procedimentales el usuario describe la informacin deseada sin dar un procedimiento concreto para obtener esa informacin. La mayor parte de los sistemas comerciales de bases de datos relacionales ofrecen un lenguaje de consulta que incluye elementos de los enfoques procedimental y no procedimental.Usaremos lenguajes que nos permitan trabajar con el lgebra relacional, siendo sta de tipo procedimental, mientras que el clculo relacional de tuplas y el de dominios son no procedimentales.

Un lenguaje de manipulacin de datos completo no slo incluye un lenguaje de consulta, sino tambin un lenguaje para la modificacin de las bases de datos. Estos lenguajes incluyen rdenes para insertar y borrar tuplas, as como rdenes para modificar partes de las tuplas existentes. Las modificaciones de las bases de datos se examinarn despus de completar la discusin sobre las consultas.Los lenguajes de consulta pueden clasificarse comoprocedimentalesyno procedimentales:CLASIFICACIN

Procedimentales El usuario indica al sistema que lleve a cabo una serie de operaciones en la BD para calcular el resultado.

No procedimentales El usuario describe la informacin deseada sin dar un procedimiento concreto para obtener la informacin.Lenguajes Formales del Modelo Relacional Se parte de los esquemas de relaciones y se define un lenguaje de manipulacin de datos. Dentro de estos lenguajes podemos encontrar:lgebra Relacional (Procedimental) Clculo Relacional de Tuplas (No procedimental) Clculo Relacional de Dominios (No procedimental) Estos lenguajes son estrictos y formales y han servido como base para los lenguajes implementados en los SGBD comerciales que veremos posteriormente. lgebra Relacional Lenguaje de consulta procedimental basado en lgebra de conjuntos. Serie de operaciones que toman una o dos relaciones como entrada y generan una relacin como salida, pero siempre sin modificar los datos de la base de datos (es un lenguaje de consulta).Las operaciones son: Seleccin Proyeccin Reunin (JOIN o producto cartesiano con condicin) Divisin Operaciones habituales de conjuntos: unin, interseccin, resta y producto cartesiano.