usado, y una amplia mayoría de sistemas de bases de datos actuales se basan en el modelo relacional. El modelo relacional se encuentra a un nivel de abstracción inferior al modelo de datos E-R (Entidad-Relación). Los diseños de bases de datos a menudo se realizan en el modelo E-R, y después se traducen al modelo relacional. El modelo orientado a objetos se puede observar como una extensión del modelo E-R con las nociones de encapsulación, métodos (funciones) e identidad de objeto. El modelo de datos relacional orientado a objetos combina las características del modelo de datos orientado a objetos y el modelo de datos relacional. La mayoría de usuarios de un sistema de bases de datos no están situados actualmente junto al sistema de bases de datos, sino que se conectan a él a través de una red. Se puede diferenciar entonces entre las máquinas cliente, en donde trabajan los usuarios remotos de la base de datos, y las máquinas servidor, en las que se ejecuta el sistema de bases de datos. Las aplicaciones de bases de datos se dividen usualmente en dos o tres partes, como se ilustra en la Figura. En una arquitectura de dos capas, la aplicación se divide en un componente que reside en la máquina cliente, que llama a la funcionalidad del sistema de bases de datos en la máquina servidor mediante instrucciones del lenguaje de consultas. Los estándares de interfaces de programas de aplicación como ODBC y JDBC se usan para la interacción entre el cliente y el servidor. En cambio, en una arquitectura de tres capas, la máquina cliente actúa simplemente como frontal y no contiene ninguna llamada directa a la base de datos. En su lugar, el cliente se comunica con un servidor de aplicaciones, usualmente mediante una interfaz de formularios. ODBC ( Open Database Connectivity ) INVESTIGAR JDBC ( Java Database Connectivity ) El servidor de aplicaciones, a su vez, se comunica con el sistema de bases de datos para acceder a los datos. La lógica de negocio de la aplicación, que establece las acciones a realizar bajo determinadas condiciones, se incorpora en el servidor de aplicaciones, en lugar de ser distribuida a múltiples clientes. Las aplicaciones de tres capas son más apropiadas para grandes aplicaciones, y para las aplicaciones que se ejecutan en World Wide Web. Como muchos usuarios de sistemas de bases de datos no están familiarizados con computadores, los desarrolladores esconden la complejidad a los usuarios a través de varios niveles de abstracción para simplificar la interacción de los usuarios con el sistema, en la figura, se esquematizan los tres niveles de abstracción de base de datos. A continuación, se definen los principales niveles de abstracción: El nivel más bajo de abstracción describe cómo se almacenan realmente los datos. En el nivel físico se describen en detalle las estructuras de datos complejas de bajo nivel. En el nivel físico, un registro cliente, cuenta o empleado se puede describir como un bloque de posiciones almacenadas consecutivamente (por ejemplo, palabras o bytes). El compilador del lenguaje esconde este nivel de detalle a los programadores. Análogamente, el sistema de base de datos esconde muchos de los detalles de almacenamiento de nivel inferior a los programadores de bases de datos. Los administradores de bases de datos pueden ser conscientes de ciertos detalles de la organización física de los datos. El siguiente nivel más alto de abstracción describe qué datos se almacenan en la base de datos y qué relaciones existen entre esos datos. La base de datos completa se describe así en términos de un número pequeño de estructuras relativamente simples. En el nivel lógico cada registro de este tipo se describe mediante una definición de tipo y se define la relación entre estos tipos de registros. Los programadores, cuando usan un lenguaje de programación, trabajan en este nivel de abstracción. De forma similar, los administradores de bases de datos trabajan habitualmente en este nivel de abstracción. El nivel más alto de abstracción describe sólo parte de la base de datos completa. Muchos usuarios del sistema de base de datos no necesitan toda esta información. En su lugar, tales usuarios necesitan acceder sólo a una parte de la base de datos. Para que su interacción con el sistema se simplifique, se define la abstracción del nivel de vistas. En el nivel de vistas, los usuarios de computadoras ven un conjunto de programas de aplicación que esconden los detalles de los tipos de datos. Análogamente, en el nivel de vistas se definen varias vistas de una base de datos y los usuarios de la misma ven única y exclusivamente esas vistas. Además de esconder detalles del nivel lógico de la base de datos, las vistas también proporcionan un mecanismo de seguridad para evitar que los usuarios accedan a ciertas partes de la base de datos. Por ejemplo, los cajeros de un banco ven únicamente la parte de la base de datos que tiene información de cuentas de clientes; no pueden acceder a la información referente a los sueldos de los empleados. NIVELES DE ABSTRACCIÓN DE BASES DE DATO Hay cuatro tipos diferentes de usuarios de un sistema de base de datos, diferenciados por la forma en que ellos esperan interactuar con el sistema. Usuarios normales. Programadores de aplicaciones. Los usuarios sofisticados. Usuarios especializados. TRANSFORMACIÓN DEL MODELO ENTIDAD/RELACIÓN AL MODELO RELACIONAL ENTIDAD/RELACIÓN • El modelo E/R lo introdujo Peter Chen en 1976 y produjo una representación gráfica de entidades y sus relaciones en una herramienta de modelado de datos a nivel conceptual. Es un modelo que se simboliza haciendo uso de grafos y de tablas. • Se pretende 'visualizar' los objetos que pertenecen a la Base de Datos como entidades las cuales tienen unos atributos y se vinculan mediante relaciones. • Las características del modelo E/R son: • Abstracción de alto nivel respecto del mundo real, creando unos elementos (entidades) que representan la realidad. • Los registros, conjunto de datos que contiene cada entidad, su nivel de abstracción y de detalle son independientes de su uso posterior, de las limitaciones de almacenamiento y de la velocidad de proceso y del sistema en el que se vaya a implementar la base de datos. • Esa independencia física del soporte de almacenamiento permite que el número de entidades pueda crecer y modificarse. • Las exigencias o restricciones de este modelo son: • La existencia de la clave primaria. • La obligatoriedad de que las entidades estén asociadas mediante una relación y la imposibilidad de asociar dos relaciones entre sí. • Ventajas: • Simplicidad conceptual: los diseños de bases de datos complejas se crean y se manejan con mucha más facilidad que con cualquier otro sistema. • Representación visual: permite a los diseñadores, programadores y usuarios finales una representación de los datos y sus relaciones fácil de entender. • Herramientas de comunicación efectivas: permite a el diseñador integrar las visualizaciones de los datos que tienen los distintos usuarios. • Está muy bien integrado con el modelo relacional. • Desventajas: • No puede representar algunas restricciones. Por ejemplo puede reflejar fácilmente que un profesor puede impartir entre 1 y 4 clases, pero no puede recoger que un profesor no pueda impartir más de 3 clases seguidas. Estas restricciones las tiene que manejar la aplicación. • La representación de relaciones es limitada, recoge las relaciones entre las entidades pero no recoge, por ejemplo, las relaciones que puedan existir entre los atributos. • En el modelo E/R no hay comandos de manipulación de datos. • Cuando se representan todos los atributos el modelo se congestiona, por tanto los diseñadores tienden a simplificarlo y con ello se pierde información. •El modelo E/R es un modelo que utiliza entidades y relaciones para representar la realidad de una forma gráfica, independiente del almacenamiento y del sistema, y que se integra fácilmente con el modelo relacional. ENTIDADES ATRIBUTOS Claves • Se denomina clave al conjunto de atributos que identifican de forma única a cada ejemplo de entidad. Al menos hay una clave, la formada por todos los atributos. Cuando una clave se compone de más de un atributo se denomina clave compuesta. • Por ejemplo: En la entidad CLIENTES podríamos encontrar las siguientes claves: el código de cliente, el conjunto apellidos + nombre, el DNI, el nombre, apellidos y la dirección, etc. • Clave candidata: Es cada una de las claves que está formada por el mínimo número de campos posibles. • En el ejemplo anterior serían el DNI y el Código de cliente. • Clave primaria o principal: (primary key): Es la clave candidata seleccionada por el diseñador de la base de datos. Tiene que cumplir: • No puede contener valores nulos. • Ha de ser sencilla de crear. • No puede cambiar con el tiempo. • El atributo o conjunto de atributos que formen la clave primaria se representan subrayados. Lo ideal es que la clave primaria esté formada por un solo atributo. A cada una de las claves candidatas no seleccionadas se le denomina clave alternativa. • En el ejemplo anterior podría ser el Código de cliente. • Clave ajena foránea (foreign key): Es el atributo o conjunto de atributos de una entidad que forman la clave primaria en otra entidad. Se utilizan para representar las relaciones entre las tablas. • Es indiferente que los atributos que formen la clave ajena tengan distinto nombre, lo que interesa es que su contenido pertenezca al mismo dominio que la clave principal, aunque es preferible que tengan el mismo nombre para facilitar el trabajo. • Por ejemplo: La entidad CLIENTES con los atributos que habíamos expuesto: CodCliente (primary key), DNI, Apellidos, Nombre, Dirección y Teléfono; podría relacionarse con la entidad VEHÍCULOS cuyos atributos podrían ser: Matrícula (primary key), Marca, Modelo, Color y FechaMatriculación. El CodCliente de la entidad VEHÍCULOS sería una clave ajena (foreign key), porque es la clave principal en la entidad CLIENTES. • Clave artificial: es un atributo creado por el equipo de diseño de la base de datos, cuyo contenido es aleatorio o secuencial, no repetitivo. Al ser un atributo único, sirve para crear claves primarias más sencillas que una formada por la unión de varios atributos. En su creación se ha de tener en cuenta que ha de ser única e invariable. Suelen tener nombres como: código, identificador, número de.... • Por ejemplo: Queremos recoger los datos de nuestra agenda de teléfonos: Nombre, apellidos y teléfono. La clave principal podría estar formada por el conjunto de atributos: Apellidos y Nombre (podemos tener amigos con nombres que coincidan o hermanos cuyos apellidos sean iguales). Como se trata de una clave compleja en la que puede haber confusiones añadimos una clave artificial denominada CodigoAgenda que podría ser un número consecutivo. Relaciones • Una relación es la asociación de dos o más entidades. Generalmente se las identifica con un verbo (activo o pasivo) y se representan mediante un rombo. Las relaciones siempre operan en los dos sentidos • • Por ejemplo: La relación entre CLIENTES y VEHICULOS se definen en dos direcciones: • Un CLIENTE es propietario de un VEHICULO • Cada VEHICULO es propiedad de un CLIENTE • Grado de una relación: Se define como el número de entidades que participan en una relación. • Cuando solo participa una entidad se denominan de grado uno o relaciones reflexivas. • Cuando participan dos entidades en una relación se denominan binarias o de grado dos. • Si participan 3 entidades se denominan de grado 3 o ternarias. • Cuando participan más de 3 entidades se denominan n-arias. • Las relaciones pueden tener cualquier grado pero nosotros utilizaremos sólo binarias. Correspondencia y cardinalidad • En el modelo E/R se representan ciertas restricciones a las que deben ajustarse los datos contenidos en una base de datos. • Tipo de correspondencia: expresa el número de entidades a las que puede asociarse otra entidad mediante una relación. Los tipos de correspondencia para relaciones binarias son • Relaciones 1:1 (uno a uno): a cada elemento de la primera entidad le corresponde sólo uno de la segunda entidad, y a la inversa. • Por ejemplo: Cada empleado ocupa un puesto de trabajo y cada puesto de trabajo es ocupado por un solo empleado. • Relaciones 1: N (uno a muchos): a cada elemento de la primera entidad le corresponde uno o más elementos de la segunda entidad, y a cada elemento de la segunda entidad le corresponde uno sólo de la primera entidad. • Por ejemplo: Un proveedor suministra muchas piezas. Cada pieza solo nos la suministra un único proveedor. • • Relaciones M:N (muchos a muchos): a cada elemento de la primera entidad le corresponde uno o más elementos de la segunda entidad, y a cada elemento de la segunda entidad le corresponden uno o más elementos de la primera. • Por ejemplo: Cada mecánico puede intervenir varias reparaciones y una misma reparación la llevan a cabo varios mecánicos. • Cardinalidad de una relación: Expresa el número de ocurrencias de una entidad asociadas con una ocurrencia de la entidad relacionada. Se coloca al lado de las entidades y se representa con el formato: • (1,n) : el primer valor representa el valor mínimo y el segundo valor representa el máximo • Por ejemplo: En la relación CLIENTES traen VEHICULOS respecto a los clientes que traen a reparar sus vehículos a nuestro taller, las cardinalidades serían: • Un cliente trae a reparar como mínimo un vehículo y como máximo varios. • Cada vehículo es traído al taller por un cliente como mínimo y como máximo.