fundamentos de base de datos

45
CAPITULO 2 MARCO TEORICO TEMA 1 FUNDAMENTOS DE BASE DE DATOS El término de bases de datos fue escuchado por primera vez en 1963, en un simposio celebrado en California, USA. Una base de datos se puede definir como un conjunto de información relacionada que se encuentra agrupada ó estructurada. Desde el punto de vista informático, la base de datos es un sistema formado por un conjunto de datos almacenados en discos que permiten el acceso directo a ellos y un conjunto de programas que manipulen ese conjunto de datos. Cada base de datos se compone de una o más tablas que guarda un conjunto de datos. Cada tabla tiene una o más columnas y filas. Las columnas guardan una parte de la información sobre cada elemento que queramos guardar en la tabla, cada fila de la tabla conforma un registro. El propósito de una Base de Datos es ayudar a la gente y a las organizaciones a llevar un registro de las cosas, de aquellos objetos acerca de los cuales les interesa guardar datos. Estos datos son los que permitirán generar información de esas cosas u objetos. Para comprender por qué es importante este almacenamiento de datos, se puede primero analizar qué problemas se presentan cuando se utilizan sólo datos, sin la estructura que ofrece una Base de Datos:

Upload: rafael-gonzales

Post on 15-Nov-2015

12 views

Category:

Documents


0 download

DESCRIPTION

introducción a base de datos

TRANSCRIPT

CAPITULO 2 MARCO TEORICOTEMA 1FUNDAMENTOS DE BASE DE DATOSEl trmino de bases de datos fue escuchado por primera vez en 1963, en un simposio celebrado en California, USA. Una base de datos se puede definir como un conjunto de informacin relacionada que se encuentra agrupada estructurada.Desde el punto de vista informtico, la base de datos es un sistema formado por un conjunto de datos almacenados en discos que permiten el acceso directo a ellos y un conjunto de programas que manipulen ese conjunto de datos.Cada base de datos se compone de una o ms tablas que guarda un conjunto de datos. Cada tabla tiene una o ms columnas y filas. Las columnas guardan una parte de la informacin sobre cada elemento que queramos guardar en la tabla, cada fila de la tabla conforma un registro.El propsito de una Base de Datos es ayudar a la gente y a las organizaciones a llevar un registro de las cosas, de aquellos objetos acerca de los cuales les interesa guardar datos. Estos datos son los que permitirn generar informacin de esas cosas u objetos. Para comprender por qu es importante este almacenamiento de datos, se puede primero analizar qu problemas se presentan cuando se utilizan slo datos, sin la estructura que ofrece una Base de Datos: Al tener sistemas aislados, con diferentes medios en los cuales se almacena informacin, un mismo dato puede estar almacenado en diferentes lugares. Al estar el mismo dato almacenado en diferentes lugares, puede tener diferentes valores en esos diferentes lugares, lo que puede provocar inconsistencias, si no se logra tener esas copias con la informacin consistente. La privacidad de datos se ve afectada, debido a que los departamentos necesitan compartir datos, pero no todos los que custodian, solo los que consideran pueden compartir, creando problemas al no contar con todo lo que necesitan, aunque la empresa pueda tenerlos disponibles.En contraste, las bases de datos almacenan los datos en tablas simples, donde cada una de ellas est definida para apoyar un tema o rea especfica. Esto permite mantener una definicin sencilla, y un uso sencillo de la tabla, en consecuencia. Las tablas poseen una estructura que permite relacionarlas fcilmente entre s, a travs del uso de llaves, o campos comunes, que permiten una navegacin sencilla y natural a travs de ellas, siempre y cuando su diseo sea el correcto.

SISTEMA DE ADMINISTRACIN DE BASE DE DATOS.Un Sistema de Administracin de Base de Datos, o DBMS, (por sus siglas en ingls, Database Management System) es de manera sencilla, software para la creacin y administracin de bases de datos, y sus sistemas asociados, en una computadora. Las funciones principales de un DBMS son: La creacin de bases de datos, sus tablas componentes, y las estructuras de apoyo asociadas Permitir la lectura y escritura de los datos almacenados en una base de datos Permitir el mantenimiento a las estructuras de una base de datos Forzar el cumplimiento de las reglas de integridad definidas para una base de datos Mantener el control de concurrencia a los datos, cuando se presenta la ejecucin concurrente de transacciones a la base de datos Ofrecer los mecanismos de seguridad para el acceso a las bases de datos definidas y mantenidas en el DBMS Ofrecer las facilidades de respaldo y recuperacin de las bases de datos, necesarias para garantizar la seguridad e integridad de las bases de datos manejadas por el DBMS. Ejemplos de DBMSs comerciales: Oracle, DB2, Microsoft Access, SQL Server

Las ventajas de utilizar una Base de Datos, a travs del software de administracin, se puede entender claramente en los siguientes casos: 1.Una base de datos permite almacenar grandes volmenes de datos, con un mnimo de datos duplicados. Esto permite tener un acceso rpido y eficiente a los mismos, cuando se requiere obtener informacin a partir de ellos. Al estar almacenados en un lugar comn, es factible aplicar reglas de integridad, que permite validar su consistencia. 2.La informacin almacenada en una base de datos se integra eficientemente, y no posee limitaciones impuestas por la organizacin de la empresa. Esta integracin permite que los datos seas usados eficientemente, y con un mnimo de problemas de integridad, por diferentes usuarios y departamentos en toda la organizacin. Esto le ofrece como beneficio a un administrador tener acceso a datos a los cuales antes no tena acceso, por estar almacenados en diferentes medios y sistemas. 3.Un beneficio muy importante se asocia a la calidad en los servicios de datos. La base de datos permite tener una durabilidad y permanencia de los datos que no es cuestionable. Otro aspecto relacionado a esta ventaja es que las transacciones que se ejecutan directamente sobre la base de datos quedan registradas permanentemente, lo que permite su acceso posterior, para cualquier consulta, o para la proteccin ante cualquier falla del sistema. 4.En teora, una base de datos dura indefinidamente, hasta que se decide guardarla en un ambiente fuera del uso directo de un sistema, o se decide borrarla definitivamente. 5.La durabilidad de una base de datos permite la recuperacin de los datos a un estado estable, antes de ocurrir la falla. Esto da la seguridad necesaria para ofrecer datos confiables a cualquier sistema de misin crtica de una empresa, como sera el sistema en lnea de ventas, o en general, cualquier sistema en lnea, tal como los que forman un negocio basado en Internet. 6.Un Sistema de Administracin de Bases de Datos permite compartir los datos de una Base de Datos sencilla y eficientemente, a una comunidad de usuarios diferentes. Las vistas son el medio que el software de administracin de base de datos ofrece para que un grupo de usuarios tenga acceso solo a la porcin de la base de datos a la cual ellos tienen derecho de acceso. De la misma forma, para un equipo de desarrollo de una aplicacin, una vista le permite el acceso a solo los datos que tienen derecho, de acuerdo a los requerimientos que el sistema bajo desarrollo debe resolver. 7.El acceso concurrente a los datos es otra de las ventajas. Este acceso permite que diferentes usuarios, a travs de sus aplicaciones, accedan a los datos, mezclando sus operaciones, con la seguridad que las mismas sern ejecutadas de tal forma que no se afecten negativamente entre s. Esta es una condicin indispensable para el uso de una base de datos desde Internet. viene el acceso no autorizado a la base de datos, los mensajes se encriptan de tal forma que es casi imposible decodificarlos. Con esto se ofrece un ambiente seguro, que permite trabajar de manera confiable con la base de datos.

CAMPOEn informtica, un campo es un espacio de almacenamiento para un dato en particular. En las bases de datos, un campo es la mnima unidad de informacin a la que se puede acceder; un campo o un conjunto de ellos forman un registro, donde pueden existir campos en blanco, siendo ste un error del sistema operativo. En las hojas de clculo los campos son llamados celdas.REGISTROEn el contexto de una base de datos relacional, un registro (tambin llamado fila o tupla) representa un objeto nico de datos implcitamente estructurados en una tabla. En trminos simples, una tabla de una base de datos puede imaginarse formada de filas y columnas o campos. Cada fila de una tabla representa un conjunto de datos relacionados, y todas las filas de la misma tabla tienen la misma estructura.Un registro es un conjunto de campos que contienen los datos que pertenecen a una misma repeticin de entidad. Se le asigna automticamente un nmero consecutivo (nmero de registro) que en ocasiones es usado como ndice aunque lo normal y prctico es asignarle a cada registro un campo clave para su bsqueda.

Base de datos: Una base de datos es un archivo o conjunto de archivos que contienen mltiples informaciones que de alguna forma guardan relacin. Por ej. Una base de datos para gestionar un Videoclub almacenar mltiples informaciones sobre pelculas, socios, etc y entre ellas existirn relaciones como por ej. Una pelcula con un socio por medio de un prstamo o alquiler. Entidad: En lneas generales podemos entender por entidad como todo aquello sobre lo que es necesario almacenar informacin en una base de datos. Por ej. En una base de datos de una biblioteca entidades seran LIBROS, SOCIOS, etc.Relacin: Entre las diferentes entidades de una base de datos suele haber relaciones, las cuales permiten un tratamiento ms globalizado de la informacin y reflejan situaciones del mundo real. Por ej. En un videoclub hay dos entidades claras PELICULAS y SOCIOS. Entre ellas existe una relacin bastante evidente que es el prstamo o alquiler. De esta forma las entidades y relaciones en una base de datos se representan de forma lgica con estructuras del tipo.

TEMA 2MODELO RELACIONALEl modelo relacional es un modelo de datos y, como tal, tiene en cuenta los tres aspectos siguientes de los datos:1) La estructura, que debe permitir representar la informacin que nos interesa del mundo real.2) La manipulacin, a la que da apoyo mediante las operaciones de actualizacin y consulta de los datos.3) La integridad, que es facilitada mediante el establecimiento de reglas de integridad; es decir, condiciones que los datos deben cumplir.El principal objetivo del modelo de datos relacional es facilitar que la base de datos sea percibida o vista por el usuario como una estructura lgica que consiste en un conjunto de relaciones y no como una estructura fsica de implementacin.Esto ayuda a conseguir un alto grado de independencia de los datos. Un objetivo adicional del modelo es conseguir que esta estructura lgica con la que se percibe la base de datos sea simple y uniforme. Con el fin de proporcionar simplicidad y uniformidad, toda la informacin se representa de una nica manera: mediante valores explcitos que contienen las relaciones (no se utilizan conceptos como por ejemplo apuntadores entre las relaciones). Con el mismo propsito, todos los valores de datos se consideran atmicos; es decir, no es posible descomponerlos.Para organizar los datos de una base de datos es necesario crear estructuras que los contengan. Existe varios modelos de almacenamiento pero el ms extendido es el modelo Relacional. Este modelo se caracteriza por almacenar organizar los datos en forma de tabla, esta es una forma habitual de organizar la informacin.A continuacin se muestran con un ejemplo, los aspectos bsicos de una estructura tabla para el almacenamiento de datos.

Elementos bsicos del Modelo RelacionalRELACIN Es la estructura bsica del modelo relacional. Se representa mediante una tabla. DOMINIO Es el conjunto vlido de valores que toma un atributo. Existen con independencia de cualquier otro elemento. ATRIBUTO Representa las propiedades de la relacin. Se representa mediante una columna. TUPLA Es una ocurrencia de la relacin. Se representa mediante una filaCLAVESUna clave candidata de una relacin es un conjunto de atributos que identifican univoca y mnimamente cada tupla de la relacin. Por la propia definicin de relacin, siempre hay, al menos, una clave candidata, ya que al ser una relacin un conjunto no existen dos tuplas iguales y, por tanto, el conjunto de todos los atributos siempre tiene que identificar unvocamente a cada tupla; si no se cumpliera la condicin de minimalidad se eliminaran aquellos atributos que lo impidiesen.Una relacin puede tener ms de una clave candidata, entre las cuales se debe distinguir:Clave primaria: es aquella clave candidata que el usuario escoger, por consideraciones ajenas al modelo relaciona, para identificar las tuplas de la relacin. Cuando solo existe una clave candidata, esta ser la clave primaria.Claves alternativas: son aquellas claves candidatas que no han sido escogidas como clave primaria.Se denomina clave ajena de una relacin R2 a un conjunto no vacio de atributos cuyos valores han de coincidir con los valores de la clave candidata de una relacin R1 (R1 y R2 no son necesariamente distintas). Cabe destacar que la clave ajena y la correspondiente clave candidata han de estar definidas sobre el mismo dominio.Los conceptos de claves, tanto candidatas (en especial primaria) como ajenas, son muy importantes en el estudio de la integridad del modelo relacional.RESTRICCIONES SEMANTICASDentro del contexto relacional, como en otros modelos de datos, existen restricciones semnticas o de usuario, que son facilidades que el modelo ofrece a los usuarios a fin de que estos puedan reflejar en el esquema, lo ms fielmente posible, la semntica del mundo real.Sin embargo, estas restricciones semnticas del modelo relacional, al igual que ocurre con cualquier otro modelo, no son muchas veces suficientes para captar toda la semntica del universo del discurso que se est tratando de modelar. Por ello, algunos productos aaden ciertas facilidades que permiten programarlas; aunque aun sin estas facilidades, siempre podran incluirse en un programa de aplicacin con sentencias de manipulacin embebidas.Atributo Mono valuado: Un atributo mono valuado es aquel que slo toma un valor al momento de que el objeto define su estado. Por ejemplo, el objeto Wilmer puede definir su atributo cedula con el valor 15633744 que se supone adems nico para esa persona. En el modelo orientado a objetos clsico se asume que todos los atributos toman un valor preciso. Sin embargo podramos vernos en la necesidad de considerar imperfecciones como imprecisin e incertidumbre. Con respecto a la imprecisin, podra ocurrir que el valor que tome el atributo sea una etiqueta lingstica o sea un valor vago o difuso.Atributo Multivaluado: Un atributo multivaluado representa propiedades sobre objetos cuyos valores no son atmicos sino un conjunto de valores. Por ejemplo el atributo NroTlf del objeto Wilmer seran todos los nmeros de telfonos de los que dispone esa persona y desde donde puede ser contactado.Clave primaria: Permite declarar un atributo o un conjunto de atributos como clave primaria de una relacin, por lo que sus valores no se podrn repetir ni se admitirn el nulo o valores ausentes. La obligatoriedad de la clave primaria es una restriccin inherente del modelo relacional; sin embargo, la declaracin de un atributo como clave primaria de una relacin es una restriccin semntica que responde a la necesidad del usuario de imponer que los valores del conjunto de atributos que constituyen la clave primaria no se repitan en la relacin ni tampoco tomen valores nulos.Clave Ajena: es una limitacin referencial entre dos tablas. La clave fornea identifica una columna o grupo de columnas en una tabla (tabla hija o referendo) que se refiere a una columna o grupo de columnas en otra tabla (tabla maestra o referenciada). Las columnas en la tabla referendo deben ser la clave primaria u otra clave candidata en la tabla referenciada.Los valores en una fila de las columnas referendo deben existir solo en una fila en la tabla referenciada. As, una fila en la tabla referendo no puede contener valores que no existen en la tabla referenciada. De esta forma, las referencias pueden ser creadas para vincular o relacionar informacin. Esto es una parte esencial de la normalizacin de base de datos. Mltiples filas en la tabla referendo pueden hacer referencia, vincularse o relacionarse a la misma fila en la tabla referenciada. Mayormente esto se ve reflejado en una relacin uno (tabla maestra o referenciada) a muchos (tabla hija o referendo).Unicidad: Mediante la cual se indica que los valores de un conjunto de atributos (uno o ms) no pueden repetirse en una relacin. Esta restriccin permite la definicin de claves alternativas.Obligatoriedad: de uno o ms atributos, con lo que se indica que el conjunto de atributos no admite valores nulos.En el modelo relacional se pueden distinguir dos restricciones de rechazo distinto, segn la condicin afecte a un nico elemento de la base de datos o a ms de uno:Verificacin: comprueba, en toda operacin de actualizacin, si el predicado es cierto o falso y, en el segundo caso, rechaza la operacin. La restriccin de verificacin se define sobre un nico elemento y puede o no tener nombres.Asercin: acta de forma idntica a la anterior, pero se diferencia de ella en que puede afectar a varios elementos y a su definicin, por tanto, no va unida a la de un determinado elemento, por lo que siempre ha de tener un nombre, ya que la asercin es un elemento ms del esquema que tiene vida por s mismo.

CONCEPTO DE VALOR NULOSi bien los valores nulos no son un concepto exclusivo del modelo relacional, ha sido en el contexto de este modelo donde se ha abordado su estudio de manera ms sistemtica y donde se estn realizando ms investigaciones a fin de formalizar su tratamiento.Se puede definir el valor nulo como una seal utilizada para representar informacin desconocida, inaplicable, inexistente, no valida, etc.En cuanto a las operaciones aritmticas con valores nulos, se considera nulo el resultado de sumar, restar, multiplicar o dividir cuando alguno de los operandos toma valor nulo. Tambin los valores nulos inciden en algunas operaciones algebraicas. Otro tema importante es el de la igualdad o desigualdad de dos tuplas; dos tuplas se consideraran duplicadas si, atributo a atributo ambos son iguales y no nulos o ambos nulos. Esta definicin de tupla duplicada afecta, como es lgico, a la insercin y a la modificacin de relaciones en lo que se refiere a la clave primaria, y tiene, por tanto, incidencia en varios operadores del algebra relacional.ALGEBRA REALACIONALEl lgebra relacional es un conjunto de operaciones que describen paso a paso cmo computar una respuesta sobre las relaciones, tal y como stas son definidas en el modelo relacional. Denominada de tipo procedimental, a diferencia del Clculo relacional que es de tipo declarativo.Describe el aspecto de la manipulacin de datos. Estas operaciones se usan como una representacin intermedia de una consulta a una base de datos y, debido a sus propiedades algebraicas, sirven para obtener una versin ms optimizada y eficiente de dicha consulta.

Operaciones BsicasCada operador del lgebra acepta una o dos relaciones y retorna una relacin como resultado. y son operadores unarios, el resto de los operadores son binarios. Las operaciones bsicas del lgebra relacional son: Seleccin ()Permite seleccionar unsubconjuntodetuplasde una relacin (R), todas aquellas que cumplan la(s) condicin(es)P, esto es:

Ejemplo:

Selecciona todas las tuplas que contengan Gmez como apellido en la relacin Alumnos.Una condicin puede ser una combinacin booleana, donde se pueden usar operadores como:,, combinndolos con operadores. Proyeccin ()Permite extraer columnas (atributos) de una relacin, dando como resultado unsubconjunto verticalde atributos de la relacin, esto es:

Dondeson atributos de la relacinR.Ejemplo:

Selecciona los atributos Apellido, Semestre y Numero Control de la relacin Alumnos, mostrados como un subconjunto de la relacin Alumnos Producto cartesiano (x)El producto cartesiano dedos relacionesse escribe como:

y entrega una relacin, cuyoesquemacorresponde a una combinacin de todas las tuplas deRcon cada una de las tuplas deS, y sus atributos corresponden a los deRseguidos por los deS.Ejemplo:

Muestra una nueva relacin, cuyo esquema contiene cada una de las tuplas de la relacin Alumnos junto con las tuplas de la relacin Maestros, mostrando primero los atributos de la relacin Alumnos seguidos por las tuplas de la relacin Maestros. Unin ()La operacin

retorna el conjunto de tuplas que estn en R, o en S, o en ambas. R y S deben seruniones compatibles. Diferencia (-)La diferencia de dos relaciones, R y S denotada por:

entrega todas aquellas tuplas que estn en R, peronoen S. R y S deben seruniones compatibles.

Estas operaciones son fundamentales en el sentido en que (1) todas las dems operaciones pueden ser expresadas como una combinacin de stas y (2) ninguna de estas operaciones pueden ser omitidas sin que con ello se pierda informacin.No bsicas o DerivadasEntre los operadores no bsicos tenemos:Interseccin ()La interseccin de dos relaciones se puede especificar en funcin de otros operadores bsicos:

La interseccin, como enTeora de conjuntos, corresponde al conjunto de todas lastuplasque estn en R y en S, siendo R y Suniones compatibles.Unin natural () (Natural Join)La operacin unin natural en el lgebra relacional es la que permite reconstruir las tablas originales previas al proceso de normalizacin. Consiste en combinar las proyeccin, seleccin y producto cartesiano en una sola operacin, donde la condicines la igualdad Clave Primaria = Clave Externa (o Fornea), y la proyeccin elimina la columna duplicada (clave externa).Expresada en las operaciones bsicas, queda

Una reunin theta ( -Join) de dos relaciones es equivalente a:

donde la condicines libre.Si la condicines una igualdad se denomina EquiJoin.Divisin (/)Supongamos que tenemos dos relaciones A(x, y) y B(y) donde el dominio deyen A y B, es el mismo.El operador divisinA / Bretorna todos los distintos valores dextales que para todo valoryen B existe una tuplaen A.Agrupacin ()Permite agrupar conjuntos de valores en funcin de un campo determinado y hacer operaciones con otros campos.Por ejemplo: sum(puntos) as Total Equipo(PARTIDOS).

TEMA 3MODELO DE DOMINIO O CONCEPTUALPuede utilizarse para capturar y expresar el entendimiento ganado en un rea bajo anlisis como paso previo al diseo de un sistema. El modelo de dominio es utilizado por el analista como un medio para comprender el sector de negocios al cual el sistema va a servir.El modelo de dominio puede ser tomado como el punto de partida para el diseo del sistema. Cuando se realiza la programacin orientada a objetos, el funcionamiento interno del software va a imitar en alguna medida a la realidad, por lo que el mapa de conceptos del modelo de dominio constituye una primera versin del sistema.Si no se logra lo planteado en el modelo del negocio entonces identifico conceptos, se le da definiciones a estos conceptos y se trata de unir o relacionar en otro modelo distinto que es el de dominio. Este modelo permitir mostrar de manera visual los principales conceptos que se manejan, ayudando a los usuarios, desarrolladores e interesados; a utilizar un vocabulario comn para poder entender el contexto en que se desarrolla el sistema. Adems contribuir a identificar personas, eventos, transacciones y objetos involucrados en el sistema.Un modelo de dominio en la resolucin de problemas e ingeniera de software, es un modelo conceptual de todos los temas relacionados con un problema especfico. En l se describen las distintas entidades, sus atributos, papeles y relaciones, adems de las restricciones que rigen el dominio del problema.El modelo de dominio se crea con el fin de representar el vocabulario y los conceptos clave del dominio del problema. El modelo de dominio tambin identifica las relaciones entre todas las entidades comprendidas en el mbito del dominio del problema, y comnmente identifica sus atributos. Un modelo de dominio que encapsula los mtodos dentro de las entidades se asocia ms bien con modelos orientados a objetos. El modelo de dominio proporciona una visin estructural del dominio que puede ser complementado con otros puntos de vista dinmicos, como el modelo de casos de uso.Una ventaja importante de un modelo de dominio es que describe y limita el alcance del dominio del problema. El modelo de dominio puede ser usado efectivamente para verificar y validar la comprensin del dominio del problema entre las diversas partes interesadas. Define un vocabulario y es til como herramienta de comunicacin. Puede aadir precisin y enfoque para la discusin entre el equipo de negocios, as como entre los equipos tcnicos y de negocios.

Un modelo del dominio es una representacin visual de las clases conceptuales u objetos del mundo real en un dominio de inters. Tambin se les denomina modelos conceptuales trmino utilizado en la primera edicin del libro de Larman), modelo de objetos del dominio y modelos de objetos de anlisis.Utilizando la notacin UML, un modelo del dominio se representa con un conjunto de diagramas de clases en los que no se define ninguna operacin. Pueden mostrar: Objetos del dominio o clases conceptuales. Asociaciones entre las clases conceptuales. Atributos de las clases conceptuales.La informacin que presenta (utilizando la notacin UML) podra, de manera alternativa, haberse expresado en prosa, mediante sentencias. Pero es fcil entender los distintos elementos y sus relaciones mediante este lenguaje visual, puesto que un porcentaje significativo del cerebro toma parte en el procesamiento visual --es una cualidad de los humanos-.CLASES CONCEPTUALESEl modelo del dominio muestra las clases conceptuales o vocabulario del dominio. Informalmente, una clase conceptual es una idea, cosa u objeto. Ms formalmente, una clase conceptual podra considerarse en trminos de su smbolo, intensin, y extensin: Smbolo: Palabras o imgenes que representan una clase conceptual. Intensin: La definicin de una clase conceptual. Extensin: El conjunto de ejemplos a los que se aplica la clase conceptual.

Cuando creamos un modelo del dominio, normalmente, el smbolo y la vista intencional de la clase conceptual son los que tienen un mayor inters prctico.Los problemas del software pueden ser complejos; la descomposicin divide y vencers es una estrategia comn para tratar esta complejidad mediante la divisin del espacio del problema en unidades fciles de comprender. En el anlisis estructurado, la dimensin de la descomposicin es por procesos o por funciones. Sin embargo, en el anlisis orientado a objetos, la dimensin de la descomposicin es fundamentalmente por cosas o entidades del dominio. Una diferencia esencial entre el anlisis orientado a objetos y el estructurado es: la divisin por clases conceptuales (objetos) en lugar de la divisin por funciones. Por tanto, la principal tarea del anlisis es identificar diferentes conceptos en el dominio del problema y documentar el resultado en un modelo del dominio.Por ejemplo, en el dominio de ventas en una tienda del mundo real, existen las clases conceptuales de Tienda, Registro y Venta. Por tanto, nuestro modelo del dominio, podra incluir Tienda, Registro y Venta.IDENTIFICACION DE CLASES CONCEPTUALESEs normal obviar clases conceptuales durante la etapa de identificacin inicial, y descubrirlas ms tarde al considerar los atributos y asociaciones, o durante el trabajo de diseo. Cuando se encuentren, se pueden aadir al modelo del dominio.A continuacin se presentan dos tcnicas para la identificacin de las clases conceptuales:1. UTILIZACIN DE UNA LISTA DE CATEGORAS DE CLASES CONCEPTUALES.Se comienza la creacin de un modelo del dominio haciendo una lista de clases conceptuales candidatas. La Tabla l contiene categoras habituales que, normalmente, merece la pena tener en cuenta, aunque no en ningn orden particular de importancia. Los ejemplos se han extrado del dominio de las tiendas y las reservas de vuelos.

2. IDENTIFICACIN DE FRASES NOMINALES.Otra tcnica til (debido a su simplicidad) es el anlisis lingstico: identificar los nombres y frases nominales en las descripciones textuales del dominio, y considerarlos como clases conceptuales o atributos candidatos.Se debe tener cuidado con este mtodo; no es posible realizar una correspondencia mecnica de nombres a clases, y las palabras en lenguaje natural son ambiguas.En cualquier caso, es otra fuente de inspiracin. Los casos de uso en formato completo constituyen una descripcin excelente a partir de la cual extraer este anlisis.

ASOCIACIONESUna asociacin es una relacin entre tipos (o ms concretamente, instancias de estos tipos) que indica alguna conexin significativa e interesante. En UML, las asociaciones se definen como "la relacin semntica entre dos o ms clasificadores que implica conexiones entre sus instancias".Resulta til identificar aquellas asociaciones entre clases conceptuales que son necesarias para satisfacer los requisitos de informacin de los escenarios actuales que se estn desarrollando, que ayudan a entender el modelo del dominio. Las asociaciones que merece la pena registrar, normalmente, implican conocimiento de una relacin que es necesario conservar durante algn tiempo -podran ser milisegundos o aos, dependiendo del contexto. En otras palabras, entre qu objetos necesitamos mantener en memoria una relacin? Por ejemplo, necesitamos recordar qu instancias de una Lnea De Venta estn asociadas con una instancia de una Venta? Sin ninguna duda, de otra manera no sera posible reconstruir una venta, imprimir un recibo o calcular el total de venta.Considere la inclusin de las siguientes asociaciones en un modelo del dominio: Asociaciones de las que es necesario conservar el conocimiento de la relacin durante algn tiempo (asociaciones "necesito-conocer"). Asociaciones derivadas de la Lista de Asociaciones Comunes.Por el contrario, necesitamos recordar una relacin entre la Venta actual y un Encargado? No, los requisitos no dan a entender que se necesite ninguna relacin de este tipo. No es incorrecto mostrar una relacin entre una Venta y un Encargado, pero no es convincente o til en el contexto de nuestros requisitos.ste es un punto importante. En un modelo del dominio con n clases del dominio diferentes, puede existir n(n-1) asociaciones entre diferentes clases conceptuales un nmero potencialmente grande. Muchas lneas en un diagrama aadirn "ruido visual" y lo har menos comprensible. Por tanto, se debe ser cuidadoso al aadir lneas de asociacin. Se recomienda utilizar como criterio las guas que se sugieren en esta seccin.NOTACION DE LAS ASOCIACIONES UMLUna asociacin se representa como una lnea entre clases con un nombre de asociacin, La asociacin es inherentemente bidireccional, lo que significa que desde las instancias de cualquiera de las dos clases, es posible el recorrido lgico hacia la otra. Este recorrido es puramente abstracto; no se trata de una sentencia sobre conexiones entre entidades software.Los extremos de la asociacin podran contener una expresin de multiplicidad que indica la relacin numrica entre las instancias de las clases.

Una "flecha de direccin de lectura" opcional indica la direccin de la lectura del nombre de la 1-1 asociacin; no indica la direccin de la visibilidad o navegacin. Si no est presente, la convencin es leer la asociacin de izquierda a derecha o de arriba hacia abajo, aunque no es una regla de UML.GUIA PARA LAS ASOCIACIONES Es conveniente centrarse en aquellas asociaciones para las que se necesita conservar el conocimiento de la relacin durante algn tiempo (asociaciones "necesito-conocer"). Es ms importante identificar clases conceptuales que identificar asociaciones. Demasiadas asociaciones tienden a confundir un modelo del dominio en lugar de aclararlo. Su descubrimiento puede llevar tiempo, con beneficio marginal. Se debe evitar mostrar asociaciones redundantes o derivadas.ROLESCada extremo de una asociacin se denomina rol. Los roles pueden tener opcionalmente: Nombre. Expresin de multiplicidad. Navegabilidad.La multiplicidad se presenta a continuacin, y las otras dos caractersticas se discutirn ms tarde.La multiplicidad define cuntas instancias de una clase A pueden asociarse con una instancia de una clase B

El valor de la multiplicidad indica cuntas instancias se puede asociar legalmente con otra, en un momento concreto, en lugar de a lo largo de un periodo de tiempo. Por ejemplo, es posible que un coche usado pudiera a lo largo del tiempo ser vendido repetidamente a comerciantes de coches usados. Pero en un momento concreto, el coche slo es Abastecido-por un comerciante.El coche no es Abastecido-por muchos comerciantes en un momento concreto. Anlogamente, en pases con leyes mongamas, una persona puede estar Casado-con slo una persona en un momento dado, aunque a lo largo del tiempo, puedan casarse con muchas personas.El valor de la multiplicidad depende de nuestros intereses como modeladores y desarrolladores de software, porque pone de manifiesto una restriccin de diseo que ser (o podr ser) reflejada en el software.MULTIPLICIDADLa multiplicidad restringe la forma en que las entidades se relacionan. Se trata de restricciones empresariales.El grado ms comn para las relaciones es el binario. Las relaciones binarias se clasifican de tipo: 1 a 1 (1:1) -> un empleado gestiona una sucursal.1 a muchos (1:*) -> un empleado controla inmuebles de alquiler. .

COMO DE DETALLADAS DEBE SER LAS ASOCIACIONESLas asociaciones son importantes, pero un error tpico al crear los modelos del dominio, es dedicar demasiado tiempo durante el estudio intentando descubrirlas.Es fundamental entender lo siguiente: Es ms importante encontrar las clases conceptuales que las asociaciones. La mayora del tiempo dedicado a la creacin del modelo del dominio debera emplearse en la identificacin de las clases conceptuales, no de las asociaciones.

ATRIBUTOSResulta til identificar aquellos atributos de las clases conceptuales que se necesitan para satisfacer los requisitos de informacin de los actuales escenarios en estudio. Un atributo es un valor de datos lgico de un objeto.Se deben incluir en un modelo del dominio aquellos atributos para los que los requisitos (o los casos de uso) sugieren o implican una necesidad de registrar la informacin.Por ejemplo, un recibo (que recoge la informacin de una venta) normalmente incluye una fecha y una hora, y la direccin quiere conocer las fechas y horas de las ventas por mltiples motivos. En consecuencia, la clase conceptual Venta necesita los atributos fecha y hora.

AGREGACIONLa agregacin es un tipo especial de relacin en el que se modela una semntica del tipo tiene o es parte de, en la que una entidad represente una entidad de mayor tamao (el todo), compuesta de entidades ms pequeas (las partes).

COMPOCISIONSimilar a la relacin de Agregacin solo que la Composicin es una relacin mas fuerte. Aporta documentacin conceptual ya que es una "relacin de vida", es decir, el tiempo de vida de un objeto est condicionado por el tiempo de vida del objeto que lo incluye

ASOCIACION REFLEXIVAUna asociacin reflexiva (o recursiva) es aquella en la que los dos extremos de la asociacin estn unidos a la misma clase.Los enlaces pueden conectar dos instancias diferentes de la misma clase, o incluso una instancia consigo misma.En una asociacin reflexiva los nombres de rol son obligatorios, para poder distinguir los dos extremos de la asociacin.Una asociacin reflexiva no es simtrica: los extremos son distinguibles, aunque la asociacin quiera significar equivalencia: esamigo-de, es-igual-a...

GENERALIZACION-ESPECIALIZACIONCada una de las entidades superclase y subclase que forman parte de una generalizacin/especializacin se transforma en una relacin:a) La relacin de la entidad superclase tiene como clave primaria la clave de la entidad superclase y contiene todos los atributos comunes.b) Las relaciones de las entidades subclase tienen como clave primaria la clave de la entidad superclase y contienen los atributos especficos de la subclase. Ejemplo de transformacin de la generalizacin/especializacinVeamos un ejemplo (consultad el grfico en la pgina siguiente) que contiene una generalizacin/especializacin y, tambin, una interrelacin M:N en la que interviene una de las entidades subclase. Este ejemplo se traduce al modelo relacional como se indica a continuacin:

TEMA 4MAPEOEl mapeo objeto-relacional (ms conocido por su nombre en ingls, Object-Relational mapping es una tcnica de programacin para convertir datos entre el sistema de tipos utilizado en un lenguaje de programacin orientado a objetos y el utilizado en una base de datos relacional, utilizando un motor de persistencia. En la prctica esto crea una base de datos orientada a objetos virtual, sobre la base de datos relacional. Esto posibilita el uso de las caractersticas propias de la orientacin a objetos (bsicamente herencia y polimorfismo). Hay paquetes comerciales y de uso libre disponibles que desarrollan el mapeo relacional de objetos, aunque algunos programadores prefieren crear sus propias herramientas ORM.En la programacin orientada a objetos, las tareas de gestin de datos son implementadas generalmente por la manipulacin de objetos, los cuales son casi siempre valores no escalares. Para ilustrarlo, considere el ejemplo de una entrada en una libreta de direcciones, que representa a una sola persona con cero o ms nmeros telefnicos y cero o ms direcciones. En una implementacin orientada a objetos, esto puede ser modelado por un objeto persona con campos que almacenan los datos de dicha entrada: el nombre de la persona, una lista de nmeros happy wheels demo telefnicos y una lista de direcciones. La lista de nmeros telefnicos estara compuesta por objetos de nmeros telefnicos y as sucesivamente. La entrada de la libreta de direcciones es tratada como un valor nico por el lenguaje de programacin (puede ser referenciada por una sola variable, por ejemplo). Se pueden asociar varios mtodos al objeto, como uno que devuelva el nmero telefnico preferido, la direccin de su casa, etc..Sin embargo, muchos productos populares de base de datos, como los Sistemas de Gestin de Bases de Datos SQL, solamente pueden almacenar y manipular valores escalares como enteros y cadenas, organizados en tablas normalizadas. El programador debe convertir los valores de los objetos en grupos de valores simples para almacenarlos en la base de datos (y volverlos a convertir luego de recuperarlos de la base de datos), o usar slo valores escalares simples en el programa. El mapeo objeto-relacional es utilizado para implementar la primera aproximacin.El ncleo del problema reside en traducir estos objetos a formas que puedan ser almacenadas en la base de datos para recuperarlas fcilmente, mientras se preservan las propiedades de los objetos y sus relaciones; estos objetos se dice entonces que son persistentes.

ASOCIACIONESUna regla general para el mapeo es respetar el tipo de multiplicidad en el modelo de objetos, y en el modelo relacional. As una relacin 1-1 en el modelo de objetos, deber corresponder a una relacin 1-1 en el modelo relacional.La asociaciones, a su vez, estn divididas segn su multiplicidad y su navagabilididad. Segn su multiplicidad, pueden existir asociaciones 1-1, 1-n, m-n. Segn su navegabilidad, se tiene unidireccional o bidireccional. Se puede dar la seis combinaciones posibles. Una aclaracin importante, es que en las base de datos relacionales, todas las asociaciones son bidireccionales, tambin es un factor de la incongruencia del modelos.Asociacin clave forneaPara mapear las relaciones, se usan los identificadores de objetos (OID). Estos OID se agregan como una columna ms en la tabla donde se quiere establecer la relacin. Dicha columna es una clave fornea a la tabla con la que se est relacionada. As, queda asignada la relacin. Recordar que las relaciones en el modelo relacional son siempre bidireccionales. El patrn se llama Foreign Key Mapping.

Multiplicidad 1-1Cada objeto A est asociado con cero o un objeto B y, cada objeto B est asociado con cero o un objeto A.En el modelo relacional, cualquiera de las 2 tablas relacionadas implementar una columna con el Oid de la otra tabla, y esta columna ser la clave fornea para relacionarlas.Por ejemplo, entre Empleado y Posicion existe una relacin 1 a 1 y se mapea a 2 tablas.No obstante, este tipo de relacin al ser un subconjunto de 1-n, y sta a su vez de n-m, puede mapearse como esta ltima a travs de una tabla asociativa o implementando la clave en la otra tabla relacionada (ver Nevegabilidad unidireccional).

Multiplicidad 1-nCada objeto A puede estar asociado con cero o ms objetos B, pero cada objeto B est asociado con cero o un objeto A. En el modelo de objetos, este tipo de relacin, se representa como una coleccin o array de tipo de datos de usuario. En el modelo relacional se pueden seguir 2 estrategias para establecer la relacin:Implementando la clave fornea OID en la tabla muchos a la tabla uno. Implementando una tabla asociativa, convirtiendo la relacin en muchos a muchos

Multiplicidad n-mCada objeto A est asociado con cero o ms objetos B, y a su vez, cada objeto B est asociado a cero o ms objetos A.En el modelo de objetos, esta relacin ser similar a la anterior. Ser implementada mediante una coleccin o array en ambos objetos.En el modelo relacional, se usa una tabla auxiliar asociativa para representar la relacin y cuyo +unico objetivo es relacionar 2 o ms tablas. Dicha tabla tendr al menos 2 columnas, cada una representando la clave fornea a las 2 tablas que relaciona. Con esto se transforma la relacion n-m a dos relaciones (1-n y 1-m).

Asociacin recursivaUna asociacin recursiva (o reflexiva) es aquella donde ambos extremos de la asociacin es una misma entidad (clase, tabla).En el modelo de objetos se representa por una linea asociativa que empieza y termina en la misma clase. Puede tener cualquier multiplicidad y navegabilidad.En el modelo relacional, se representa por una clave fornea a s misma, y depende de la multiplicidad si esa clave se implementa en la misma tabla o en una tabla asociativa.

AgregacinComo ya mostr, una asociacin es una relacin dbil e independiente entre 2 objetos. Una agregacin es una relacin ms fuerte que una asocacin pero an independiente. Una composicin es a la vez una relacin fuerte y dependiente entre 2 objetos.Con lo anterior se asume que tanto una asociacin, agregacin o composicin se mapea en el modelo relacional como una relacin.La agregacin normalmente se mapea como una relacin n-m, o sea que hay una tabla auxiliar para mapear la relacin.La composicin puede mapearse como una relacin 1-n. Donde los objetos compuestos mantienen una relacin con el objeto compositor. A nivel relacional, indica que la tabla de los objetos compuestos tienen una columna con la clave fornea al objeto que los compuso.En el modelo objetos, tanto las agregaciones como las composiciones se corresponden con un array o una coleccin de objetos.

Lenguaje De Definicin De Datos (DDL)Un lenguaje de definicin de datos (Data Definition Language, DDL por sus siglas en ingls) es un lenguaje proporcionado por el sistema de gestin de base de datos que permite a los usuarios de la misma llevar a cabo las tareas de definicin de las estructuras que almacenarn los datos as como de los procedimientos o funciones que permitan consultarlos.Un Data Definition Language o Lenguaje de descripcin de datos ( DDL ) es un lenguaje de programacin para definir estructuras de datos . El trmino DDL fue introducido por primera vez en relacin con el modelo de base de datos CODASYL, donde el esquema de la base de datos ha sido escrito en un lenguaje de descripcin de datos que describe los registros, los campos, y "conjuntos" que conforman el usuario modelo de datos. Ms tarde fue usado para referirse a un subconjunto de SQL, pero ahora se utiliza en un sentido genrico para referirse a cualquier lenguaje formal para describir datos o estructuras de informacin, como los esquemas XML .ComandoDescripcin

CREATEUtilizado para crear nuevas tablas,campose ndices

DROPEmpleado paraeliminartablase ndices

ALTERUtilizado para modificar lastablasagregandocamposo cambiando la definicin de los campos.

CREATEEste comando crea un objeto dentro de la base de datos. Puede ser una tabla, vista, ndice, trigger, funcin, procedimiento o cualquier otro objeto que el motor de la base de datos soporte. Una sentencia CREATE en SQL crea un objeto dentro de un sistema de gestin de bases de datos relacionales (RDBMS).Los tipos de objetos que se pueden crear depende del RDBMS que est siendo utilizado, pero la mayora soportan la creacin de tablas, ndices, usuarios, sinnimos y bases de datos. ALTEREste comando permite modificar la estructura de un objeto. Se pueden agregar, quitar campos a una tabla, modificar el tipo de un campo, agregar y/o quitar ndices a una tabla, modificar un trigger, etc. El uso mas comn para este comando se centra principalmente en la modificacin de una base de datos y de las tablas que contenga esta misma.DROPEste comando elimina un objeto de la base de datos. Puede ser una tabla, vista, ndice, trigger, funcin, procedimiento o cualquier otro objeto que el motor de la base de datos soporte. Se puede combinar con la sentencia ALTER.

LENGUAJE DE MANIPULACION DE DATOS (DML)Lenguaje de Manipulacin de Datos (Data Manipulation Language, DML) es un lenguaje proporcionado por los sistemas gestores de bases de datos que permite a los usuarios de la misma llevar a cabo las tareas de consulta o modificacin de los datos contenidos en las Bases de Datos del Sistema Gestor de Bases de Datos. El lenguaje de manipulacin de datos ms popular hoy da es SQL, usado para recuperar y manipular datos en una base de datos relacional.SELECTEste comando obtiene filas de la base de datos y permite realizar la seleccin de una o varias filas o columnas de una o varias tablas. La sintaxis completa de la instruccin SELECT es compleja.UPDATEEste comando actualiza los registros de una tabla. Los registros se pueden actualizar segn los resultados de una instruccin SELECT - SQL.INSERTEste comando anexa un registro al final de una tabla existente. El nuevo registro incluye los datos mostrados en el comando INSERT o de una matrizDELETEEste comando Marca registros de una tabla para su eliminacin utilizando la sintaxis de SQL.

LENGUAJE ESTRUCTURADO DE CONSULTAEl lenguaje de consulta estructurado o SQL (por sus siglas en ingls Structured Query Language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en ellas. Una de sus caractersticas es el manejo del lgebra y el clculo relacional que permiten efectuar consultas con el fin de recuperar de forma sencilla informacin de inters de bases de datos, as como hacer cambios en ellas.El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por el motor de base de datos de Microsoft Jet. SQL se utiliza para crear objetos QueryDef, como el argumento de origen del mtodo OpenRecordSet y como la propiedad RecordSource del control de datos. Tambin se puede utilizar con el mtodo Execute para crear y manipular directamente las bases de datos Jet y crear consultas SQL de paso a travs para manipular bases de datos remotas cliente - servidor.Componentes del SQLEl lenguaje SQL est compuesto por comandos, clusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos.ComandosExisten dos tipos de comandos SQL: los DLL que permiten crear y definir nuevas bases de datos, campos e ndices.los DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos.