Instituto de Educación Superior “San Ignacio de Monterrico” INTRODUCCION AL MODELAMIENTO DE BASE DE DATOS Concepto de Datos Representación simbólica (numérica, alfabética, etc.) de un atributo de una entidad. Un dato no tiene valor semántico (sentido) en sí mismo, pero al ser procesado puede servir para realizar cálculos o tomar decisiones. Los datos son susceptibles de ser comprimidos, encriptados, transmitidos y almacenados. Concepto de Información La información no es un dato conjunto cualquiera. Es una colección de hechos significativos y pertinentes, para el organismo u organización que los percibe. La definición de información es la siguiente: Información es un conjunto organizado de datos significativos y pertinentes que describan sucesos o entidades, haciendo uso racional es la base del Conocimiento Definición de Modelo de Base de Datos Un modelo de datos para las bases de datos es una colección de conceptos que se emplean para describir la estructura de una base de datos. Esa colección de conceptos incluyen entidades, atributos y relaciones. La mayoría de los modelos de datos poseen un conjunto de operaciones básicas para especificar consultas y actualizaciones de la base de datos. Clases de Modelo de Base de Datos Los modelos de datos pueden clasificarse en: - Modelos de datos de alto nivel o conceptuales: disponen de conceptos cercanos a la forma en que los usuarios finales perciben una base de datos. - Modelos de datos de bajo nivel o físicos: disponen de conceptos que describen detalles sobre el almacenamiento de los datos en la computadora. - Modelos de datos de representación (o de implementación): disponen de conceptos que pueden entender los usuarios finales, pero que no están alejados de la forma en que se almacenan los datos en la computadora. Formando Emprendedores de Calidad para un Mundo Empresarial 1 Instituto de Educación Superior “San Ignacio de Monterrico” Clasificación de los modelos de datos Los modelos de datos sirven para clasificar los distintos tipos de SGBD. Existen diferentes modelos de datos para bases de datos como ser: - Modelo relacional - Modelo orientado a objetos - Modelo relacional-objeto - Modelo jerárquico - Modelo de red Base de Datos Una base de datos (cuya abreviatura es BD) es una entidad en la cual se pueden almacenar datos de manera estructurada, con la menor redundancia posible. Diferentes programas y diferentes usuarios deben poder utilizar estos datos. Por lo tanto, el concepto de base de datos generalmente está relacionado con el de red ya que se debe poder compartir esta información. De allí el término base. "Sistema de información" es el término general utilizado para la estructura global que incluye todos los mecanismos para compartir datos que se han instalado. ¿Por qué utilizar una base de datos? Una base de datos proporciona a los usuarios el acceso a datos, que pueden visualizar, ingresar o actualizar, en concordancia con los derechos de acceso que se les hayan otorgado. Se convierte más útil a medida que la cantidad de datos almacenados crece. Formando Emprendedores de Calidad para un Mundo Empresarial 2 Instituto de Educación Superior “San Ignacio de Monterrico” Una base de datos puede ser local, es decir que puede utilizarla sólo un usuario en un equipo, o puede ser distribuida, es decir que la información se almacena en equipos remotos y se puede acceder a ella a través de una red. La principal ventaja de utilizar bases de datos es que múltiples usuarios pueden acceder a ellas al mismo tiempo. Administración de bases de datos Rápidamente surgió la necesidad de contar con un sistema de administración para controlar tanto los datos como los usuarios. La administración de bases de datos se realiza con un sistema llamado DBMS (Database management system [Sistema de administración de bases de datos]). El DBMS es un conjunto de servicios (aplicaciones de software) para administrar bases de datos, que permite: Un fácil acceso a los datos El acceso a la información por parte de múltiples usuarios La manipulación de los datos encontrados en la base de datos (insertar, eliminar, editar). El DBMS puede dividirse en tres subsistemas: El sistema de administración de archivos: para almacenar información en un medio físico El DBMS interno: para ubicar la información en orden El DBMS externo: representa la interfaz del usuario Formando Emprendedores de Calidad para un Mundo Empresarial 3 Instituto de Educación Superior “San Ignacio de Monterrico” ELEMENTOS DE BASE DE DATOS Una base de datos está formada por: Los datos: Que deben ser integrados, es decir, que en la unión de los archivos que forman el sistema no exista redundancia de datos. Ejemplo: La gestión de los libros de una biblioteca. Tenemos: Una ficha con datos de un libro, una ficha con datos de un lector y una ficha mostrando el listado de lecturas de un libro, esa ficha que se entregan junto al libro cuándo lo prestan en la biblioteca. Si hacemos un listado con el nombre de los campos que hemos introducido en esas fichas obtendríamos: Título Autor Editorial Año Idioma Lector Fecha préstamo Fecha devolución Nombre Apellidos Domicilio Teléfono DNI Formando Emprendedores de Calidad para un Mundo Empresarial 4 Instituto de Educación Superior “San Ignacio de Monterrico” Nótese que se han omitido las referencias: Ref_libro y Ref_lector, son datos particulares de los que hablaremos específicamente más adelante. Cada dato de ese listado_suma, aparece en una ficha junto a otros con los que se relaciona, y ningún dato se repite en el resto de las fichas, por lo tanto los datos están integrados. 1. Entidad (Entity).- Persona, lugar, objeto u evento para el cual se obtiene y mantiene datos. Ejemplo: Cliente, Orden, Producto, Proveedor. Generalmente una Entidad representa se representa en una Tabla. 2. Tabla.- Es un grupo de registros que contienen datos sobre una entidad en específico. Ejemplo: el archivo de clientes, es archivo de productos, o de empleados. 3. Relaciones: En una B.D. se almacenan además de las entidades, las relaciones existentes entre ellas. En el ejemplo de la Librería hay relaciones entre: las entidades libros/clientes y las entidades libros/proveedores. Tipo de relaciones: - Simples - Biunívocas: de Uno a Uno (1 a 1) - Complejas - De Uno a Muchos (1 a N) - De Muchos a Muchos (N a N) 4. Campo.- Atributo o característica de la entidad. Ejemplo: en la entidad Cliente, algunos campos pueden ser Nombre, Apellido, Dirección. Tipos de campos: - Alfabéticos: letras del alfabeto (A-Z) - Numéricos: Nº del sistema decimal (0-9) - Alfanuméricos: letras y números Campos según función en el registro: - Literales Formando Emprendedores de Calidad para un Mundo Empresarial 5 Instituto de Educación Superior “San Ignacio de Monterrico” - Numéricos - Claves - Indicadores - Códigos - Punteros 5. Atributo.- De cada entidad se almacenan una serie de datos que se denominan atributos de la entidad. Pueden ser atributos de una entidad cualquier característica o propiedad de ésta. Son atributos de la entidad libros: Autor, Título, Área de Edición, 6. Registro (Record).- Es una colección o grupo de campos que describen un miembro de una entidad. Ejemplo, el record de un cliente, o de un producto. Tipos de registros: - Registros de longitud fija: todos los campos que lo forman son de longitud fija. - Registros de longitud variable: uno o varios de los campos que lo integran tiene longitud variable aunque tiene una dimensión máxima que no se sobrepasará. - Registros de longitud indefinida: la longitud es imposible de determinar. Incluye marcas de final de campo y de fin de registro. 7. Llave o "Key".- Es un campo que se usa para localizar, acceder o identificar un record en específico. Hay cuatro tipos de “key”: a. "Primary key".- es un campo u combinación de campos que en forma única y mínima identifica un miembro en particular de una entidad. Es único porque no hay dos miembros con el mismo "key". Es mínimo porque contiene tan solo la información necesaria para identificar al miembro de la entidad. Si el "primary key" es una combinación de varios campos se conoce como “multivalue key". b. "Foreign key".- es un cambo en un archivo que debe parear con el valor del "primary key" de otro archivo para que se pueda establecer una relación o “link” entre ambos archivos. Formando Emprendedores de Calidad para un Mundo Empresarial 6 Instituto de Educación Superior “San Ignacio de Monterrico” MODELO DE BASE DE DATOS Un modelo de datos para las bases de datos es una colección de conceptos que se emplean para describir la estructura de una base de datos. En definitiva esta colección de conceptos incluye entidades, atributos y relaciones. La mayoría de los modelos de datos poseen un conjunto de operaciones básicas para especificar consultas y actualizaciones de la base de datos. En base a la experiencia, se determina el diseño de una base de datos se convierte en algo casi mecánico. En el proceso de modelado se aplican reglas y se generan diseños normalizados e incluso desnormalizados casi sin pensar a través de la información adquirida en alguna entrevistas con las personas de negocio. Realizar un buen diseño de base de datos es crítico para cualquier proyecto, pero no siempre el fiel reflejo de la realidad sino es lo mejor en todos los casos. Ejemplo En el siguiente ejemplo se tiene, un proyecto que creó una base de datos para mantener la información de cierto tipo de construcciones que contienen varios elementos. Como ejemplo, se consideró sólo 3 elementos denominados A, B y C, donde: A está formado por n elementos B; y B está formado a su vez por n elementos C. El diseño sería: Este modelo es totalmente correcto, pero la aplicación fracasó porque no se utilizaba, ¿dónde está el problema?.- Durante la fase de diseño nadie se preocupó de averiguar que los datos que iban a ser almacenados fuesen mantenibles, es Formando Emprendedores de Calidad para un Mundo Empresarial 7 Instituto de Educación Superior “San Ignacio de Monterrico” decir, que hubiera personas/procesos/sistemas encargadas de mantener la relación entre las entidades. Resultó que aunque en la teoría los elementos B se componían de elementos C, no era viable (por recursos humanos y coste) identificar a qué elemento B pertenecía cada elemento C, aunque sí era necesario almacenar los elementos C. El diseño de datos fue cambiado por algo del estilo siguiente: Moraleja: El modelo de datos debe ser una herramienta de almacenamiento de datos mantenible por los usuarios. Importancia del Modelo de Base de Datos El modelo de Base de Datos podríamos definirlo como una descripción analógica utilizada para visualizar algo que no se puede observar directamente, es decir la representación relativamente simple generalmente grafica. - El Modelo de Base de Datos, facilitará la comprensión y aprehensión de cada proyecto de información. - Cada modelo permite poder expresar abstracciones, - Posibilitar el establecer analogías en base a los conceptos de abstracción entre los distintos modelos. - Aplicación de los métodos en problemas reales o ficticios, dando mayor oportunidad a ejercitar los conocimientos adquiridos y aplicarlos con creatividad. El Modelado es la etapa en donde identificamos y “dibujamos” los conjuntos de datos que el Usuario requiere en un Sistema de información. El Diseño Lógico es la etapa donde transformamos ese modelo en un diseño relacional (asumiendo que es el más utilizado), independiente de la herramienta (DBMS) que vayamos a utilizar. El Diseño Físico es aquel en donde especificamos características propias del DBMS Formando Emprendedores de Calidad para un Mundo Empresarial 8 Instituto de Educación Superior “San Ignacio de Monterrico” elegido, como tipos de dato concretos, parámetros por cada tabla, campo, relación, etc. La construcción, es en si el proceso de capturar los “metadatos” o datos sobre datos para materializar el diseño relacional dentro de nuestro DBMS, quizá usando scripts SQL. Generalmente se usa el modelo de Entidad-Relación para el modelado y diseño lógico de bases de datos, en donde a través del reconocimiento de entidades débiles, entidades fuertes, relaciones entre entidades y su semántica vamos armando la red de la base de datos, para después con algunas reglas, llegar en pocos pasos al diseño lógico. Las herramientas gráficas de diseño de Base de Datos, en su mayoría usan algún “tipo” o variante del modelado Entidad-Relación para elaborar el diseño lógico. Clasificación de los Modelos de Base de Datos Existen fundamentalmente tres alternativas disponibles para diseñar las bases de datos: el modelo jerárquico, el modelo de red y el modelo relacional. MODELO JERARQUICO. Puede representar dos tipos de relaciones entre los datos: relaciones de uno a uno y relaciones de uno a muchos. MODELO DE RED. Este modelo permite la representación de muchos a muchos, de tal forma que cualquier registro dentro de la base de datos puede tener varias ocurrencias superiores a él. El modelo de red evita redundancia en la información, a través de la incorporación de un tipo de registro denominado el conector. MODELO RELACIONAL. Este modelo se está empleando con más frecuencia en la práctica, debido a la ventajas que ofrece sobre los dos modelos anteriores, entre ellas, el rápido entendimiento por parte de usuarios que no tienen conocimientos profundos sobre Sistemas de Bases de Datos. BASES DE DATOS DISTRIBUIDAS. Las bases de datos distribuidas se están utilizando cada vez más en la misma medida en que se usan las arquitecturas de cliente-servidor y groupware. Los principales problemas que se generan por el uso de la tecnología de bases de datos distribuidas son en lo referente a duplicidad de datos y a su integridad al momento de realizar actualizaciones a los mismos. Además, el control de la información puede constituir una desventaja, debido a que se encuentra diseminada en diferentes localidades geográficas. Formando Emprendedores de Calidad para un Mundo Empresarial 9 Instituto de Educación Superior “San Ignacio de Monterrico” TENDENCIAS FUTURAS. En el futuro la mayoría de las organizaciones cambiarán la forma convencional de manejo de la información a la arquitectura de base de datos a las ventajas derivadas de su uso. El uso de las bases de datos distribuidas se incrementará de manera considerable en la medida en que la tecnología de comunicación de datos brinde más facilidades para ello. El uso de bases de datos facilitará y soportará en gran medida a los Sistemas de Información para la Toma de Decisiones. Multitarea La ejecución de más de un programa a la vez en una computadora. Los sistemas operativos multitarea (Windows, OS/2, Unix y otros) permiten que múltiples operaciones se ejecuten simultáneamente. Sus mayores beneficios se obtienen cuando se realizan tareas largas y complejas (como consultar una base de datos). La cantidad de programas que pueden ejecutarse depende de la memoria disponible, de la velocidad de la CPU y de la eficiencia del sistema operativo. Multiusuario Un SO multiusuario permite a mas de un solo usuario accesar una computadora. Claro que, para llevarse esto a cabo, el SO también debe ser capaz de efectuar multitareas. Unix es el Sistema Operativo Multiusuario más utilizado. Debido a que Unix fue originalmente diseñado para correr en una minicomputadora, era multiusuario y multitarea desde su concepción. Actualmente se producen versiones de Unix para PC tales Microport, Esix, IBM,y Sunsoft. Apple también produce una versión de Unix para la Machintosh llamada: A/UX.Unix, Unix proporciona tres maneras de permitir a múltiples personas utilizar la misma PC al mismo tiempo. 1. Mediante Módems 2. Mediante conexión de terminales a través de puertos seriales 3. Mediante Redes Multiproceso Las computadoras que tienen más de un CPU son llamadas multiproceso. Un sistema operativo multiproceso coordina las operaciones de las computadoras multiprocesadoras. Ya que cada CPU en una computadora de multiproceso puede estar ejecutando una instrucción, el otro procesador queda liberado para procesar Formando Emprendedores de Calidad para un Mundo Empresarial 10 Instituto de Educación Superior “San Ignacio de Monterrico” otras instrucciones simultáneamente. Al usar una computadora con capacidades de multiproceso incrementamos su velocidad de respuesta y procesos. Casi todas las computadoras que tienen capacidad de multiproceso ofrecen una gran ventaja. Los primeros Sistemas Operativos Multiproceso realizaban lo que se conoce como: Multiproceso asimétrico: Una CPU principal retiene el control global de la computadora, así como el de los otros procesadores. Esto fue un primer paso hacia el multiproceso pero no fue la dirección ideal a seguir ya que la CPU principal podía convertirse en un cuello de botella. Multiproceso simétrico: En un sistema multiproceso simétrico, no existe una CPU controladora única. La barrera a vencer al implementar el multiproceso simétrico es que los SO tienen que ser rediseñados o diseñados desde el principio para trabajar en u n ambiente multiproceso. Las extensiones de Unix, que soportan multiproceso asimétrico ya están disponibles El Modelado SOM El modelo SOM, o modelado de Objetos como aquí le llamaremos, permite ilustrar a la base de datos en términos de Objetos de negocio, y no directamente en tablas. Bajo la metodología SOM, una entidad es cualquier cosa, concreta o abstracta, con un infinito número de propiedades o características que la describen. Por ejemplo, un auto tiene modelo, número de neumáticos, tipo de bencina que utiliza, capacidad del tanque de aceite, potencia del motor, peso molecular, capacidad de reflejo de rayos UV según la pintura del fabricante, y así, podemos tardarnos un buen tiempo describiendo las características del auto. Sin embargo, dependiendo del cliente o usuario al que estemos sirviendo en cuestiones de informática, cada empresa, persona, departamento, institución, compañía, tendrá necesidades distintas y únicas en el conjunto de propiedades o características que desean reunir para una entidad en particular. De acuerdo entonces a Kroenke *, al “conjunto nombrado de propiedades que suficientemente describen una entidad en el ambiente de trabajo del usuario”, ese es un Objeto Semántico. Siguiendo con el ejemplo anterior, a un vendedor de autos usados le interesará conocer datos, como: Número de Serie Marca Sub-marca Modelo Formando Emprendedores de Calidad para un Mundo Empresarial 11 Instituto de Educación Superior “San Ignacio de Monterrico” Kilometraje Estado del auto Precio mínimo Precio máximo Precio final de venta Fecha inicial de venta Fecha de venta NIVEL DE ABSTRACCION Un sistema de gestión de bases de datos es una colección de archivos interrelacionados y un conjunto de programas que permiten a los usuarios acceder y modificar esos archivos. Un objetivo importante de un SDBDD es proporcionar a los usuarios una visión abstracta de los datos. Es decir, el sistema esconde ciertos detalles de cómo se almacenan y mantienen los datos. Existen tres niveles de abstracción: Nivel físico.- El nivel más bajo de abstracción describe cómo se almacena realmente los datos. En el nivel físico, se describen en detalle las estructuras de datos complejas del nivel bajo. Nivel conceptual.- El siguiente nivel más alto de abstracción describe qué datos son realmente almacenados en la base de datos y las relaciones que existen entre los datos. Aquí se describen la base de datos completa en términos de un número pequeño de estructuras relativamente. Aunque la implementación de las estructuras sencillas del nivel conceptual puede implicar estructuras complejas del nivel físico, el usuario no necesita darse cuenta de esto. Este nivel es usado por los administradores de bases de datos, quienes deben decidir qué información se va a guardar en la base de datos. Nivel de visión.- El nivel más alto de abstracción describe sólo parte de la base de datos completa. A pesar del uso de estructuras más sencillas en el nivel conceptual, permanece algo de complejidad debido al gran tamaño de la base de datos. Muchos usuarios del sistema de bases de datos no se interesarán por toda la información. En cambio, dichos usuarios sólo necesitan una parte de la base de datos. Para simplificar su interacción con el sistema, se define el nivel de abstracción de visión. El sistema puede proporcionar muchas visiones de la misma base de datos. Formando Emprendedores de Calidad para un Mundo Empresarial 12 Instituto de Educación Superior “San Ignacio de Monterrico” BASE DE DATOS RELACIONALES Una base de datos relacional es una base de datos en donde todos los datos visibles al usuario están organizados estrictamente como tablas de valores, y en donde todas las operaciones de la base de datos operan sobre estas tablas. Estas bases de datos son percibidas por los usuarios como una colección de relaciones normalizadas de diversos grados que varían con el tiempo. En general, el objetivo del diseño de una base de datos relacional es generar un conjunto de esquemas de relaciones que permitan almacenar la información con un mínimo de redundancia, pero que a la vez faciliten la recuperación de la información. Una de las técnicas para lograrlo consiste en diseñar esquemas que tengan una forma normal adecuada. Para determinar si un esquema de relaciones tiene una de las formas normales se requiere mayor información sobre la empresa del "mundo real" que se intenta modelar con la base de datos. La información adicional la proporciona una serie de limitantes que se denominan dependencias de los datos. Reseña En 1970, el modo en que se veían las bases de datos cambió por completo cuando E. F. Codd introdujo el modelo relacional. En aquellos momentos, el enfoque existente para la estructura de las bases de datos utilizaba punteros físicos (direcciones de disco) para relacionar registros de distintos ficheros. Si, por ejemplo, se quería relacionar un registro con un registro , se debía añadir al registro un campo conteniendo la dirección en disco del registro . Este campo añadido, un puntero físico, siempre señalaría desde el registro al registro . Codd demostró que estas bases de datos limitaban en gran medida los tipos de operaciones que los usuarios podían realizar sobre los datos. Además, estas bases de datos eran muy vulnerables a cambios en el entorno físico. Si se añadían los controladores de un nuevo disco al sistema y los datos se movían de una localización física a otra, se requería una conversión de los ficheros de datos. Estos sistemas se basaban en el modelo de red y el modelo jerárquico, los dos modelos lógicos que constituyeron la primera generación de los SGBD. Formando Emprendedores de Calidad para un Mundo Empresarial 13 Instituto de Educación Superior “San Ignacio de Monterrico” El modelo relacional, como todo modelo de datos, tiene que ver con tres aspectos de los datos: Estructura de datos. Integridad de datos. Manejo de datos. Características de una base de Datos relacional Todos los datos se representan en tablas. Incluso los resultados de cualquier consulta son otra tabla. Las tablas están compuestas por filas y columnas. Las filas y las columnas, en principio, carecen de orden (por ejemplo: el orden en el que se muestren las filas y las columnas no importa). Las filas sólo se ordenan si se le indica a la base de datos que lo haga, mediante el correspondiente comando. De no ser así, el orden será arbitrario, y puede cambiar en caso de tratarse de una base datos dinámica. El orden de las columnas lo determina cada consulta. Cada tabla tiene una clave primaria, un identificador único, compuesto por una o más columnas. La mayoría de las claves primarias están formadas por una única columna (Ejemplo: ID_USUARIO). Para establecer una relación entre dos tablas es necesario incluir, en forma de columna, en una de ellas la clave primaria de la otra. A esta columna se le llama clave secundaria. Estos dos conceptos --clave primaria y secundaria-- son los más importantes en el diseño de bases de datos. Es importante dedicarles tiempo, para entender bien en qué consisten y cómo funcionan. Problemas de las Base de Datos relacionales Antes, de hablar de formas normales y dependencias de datos es conveniente considerar los defectos que pueden tener una base de datos mal diseñada. Supongamos las siguientes relaciones: Formando Emprendedores de Calidad para un Mundo Empresarial 14 Instituto de Educación Superior “San Ignacio de Monterrico” PERSONA (DNI, NOMBRE, APELLIDOS) COCHE (MATRICULA, MARCA. TIPO, POTENCIA, COLOR) TENER (DNI, MATRICULA, FECHA, PRECIO) Si en lugar de las anteriores relaciones que componen la BD, optásemos por una única relación, formada por los atributos de las tres, ésta tendría los siguientes defectos: - En primer lugar, algunos datos serán redundantes; en general en esta relación una persona aparecerá tantas veces como coches posea. -Esta redundancia conlleva unos riesgos de incoherencia durante las actualizaciones: por ejemplo, si resulta que el nombre de López no es Pedro sino Juan, hay que tener cuidado y actualizar todas las tuplas en las que aparece López. - Es preciso admitir la presencia de valores nulos en una relación de este tipo para poder mantener en la base, coches sin propietarios o personas que no tienen coches. Si muchos de los atributos no se aplican a todas las tuplas de la relación, acabaremos con un gran número de nulos en esas tuplas. Esto puede originar un considerable desperdicio de espacio de almacenamiento Ejemplo: Si sólo el 10% de los empleados tiene oficinas individuales, no se justificará incluir un atributo NUM_OFIC en la relación EMPLEADO; más bien, podríamos crear una relación OFICINAS_EMPL (DNIEMP, NUM_OFIC) contenga exclusivamente tuplas para los empleados con oficinas individuales). Por lo tanto además de hacerse más complicada la actualización (inserción, eliminación y modificación), se desperdicia espacio. Uno de los objetivos en el diseño de esquemas es minimizar el espacio de almacenamiento que ocupan las relaciones base (archivos). La agrupación de atributos en esquemas de relación tiene un efecto significativo sobre el espacio de almacenamiento, se requiere más. Fases del Diseño de Base de Datos - Recolección y análisis de requerimientos: Los diseñadores entrevistan a los futuros usuarios de la base de datos para recoger y documentar sus necesidades de información. En paralelo, conviene Formando Emprendedores de Calidad para un Mundo Empresarial 15 Instituto de Educación Superior “San Ignacio de Monterrico” definir los requerimientos funcionales que consisten en operaciones (transacciones) que se aplicarán a la base de datos, e incluyen la obtención de datos y la actualización. - Diseño conceptual: Una vez recogidos todos los requerimientos, el siguiente paso es crear un esquema conceptual para la base de datos mediante un modelo de datos conceptual de alto nivel. El esquema conceptual contiene una descripción detallada de los requerimientos de información de los usuarios, y contiene descripciones de los tipos de datos, relaciones entre ellos y restricciones. Nosotros utilizaremos para el diseño de esquemas conceptuales el modelo E-R (entidad-relación), que describe los datos cono entidades, vínculos (relaciones) y atributos. - Diseño lógico de la base de datos (transformación de modelo de datos): El siguiente paso en el proceso de diseño consiste en implementar de hecho la base de datos con un S.G.B.D. comercial, transformando el modelo conceptual al modelo de datos empleados por el S.G.B.D. (jerárquico, red o relacional). En nuestro módulo haremos la implementación con un S.G.B.D. relacional, por ser el modelo más utilizado por las empresas en la actualidad. - Diseño físico de la base de datos: En este paso se especifican las estructuras de almacenamiento internas y la organización de los archivos de la base de datos. Formando Emprendedores de Calidad para un Mundo Empresarial 16 Instituto de Educación Superior “San Ignacio de Monterrico” CONCEPTOS DEL MODELO E-R Presentación e historia del modelo: El modelo E-R fue propuesto por Peter P. Chen entre los años 1976-1977. Posteriormente otros muchos autores han investigado y escrito sobre el modelo, proporcionando importantes aportaciones, por lo que realmente no se puede considerar que exista un único modelo E-R. El modelo E-R describe los datos como entidades, relaciones (vínculos) y atributos y permite representar el esquema conceptual de una base de datos de forma gráfica mediante los diagramas E-R. Entidades y atributos: El objeto básico que se representa en el modelo E-R es la entidad que es "cualquier objeto del mundo real con existencia propia, sobre el cual queremos tener información en una base de datos”. Una entidad puede ser un objeto con existencia física (una cierta persona, una casa, un empleado, un coche,..) o un objeto con existencia conceptual (una empresa, un puesto de trabajo, un curso universitario,...). Conjunto de entidades es la totalidad de las entidades del mismo tipo que comparten las mismas propiedades o atributos. En los diagramas E-R se representan mediante un rectángulo y dentro del mismo se pone el nombre. Por ejemplo: CLIENTE, PROVEEDOR, ARTICULO, COCHE, etc. Debemos elegir nombres que comuniquen, hasta donde sea posible, el significado de cada entidad. Normalmente se utilizan nombres en singular y no en plural. EMPLEADO Tipos de entidades: a) Fuertes (o regulares), que son aquellas que tienen existencia por si mismas (Por ejemplo, EMPLEADO). Las entidades fuertes se representan como se ha dicho con un rectángulo con trazo simple. EMPLEADO DEPARTAMENTO Formando Emprendedores de Calidad para un Mundo Empresarial 17 Instituto de Educación Superior “San Ignacio de Monterrico” b) Débiles, cuya existencia depende de otro tipo de entidad (Por ejemplo, FAMILIAR depende de EMPLEADO. La desaparición de un empleado de la base de datos hace que desaparezcan también todos los familiares del mismo). Estos tipos de entidades se representan normalmente con un rectángulo con líneas de doble trazo. Estas entidades normalmente no tienen suficientes atributos para formar una clave primaria. EMPLEADO FAMILIAR Cada entidad tiene propiedades especificas, llamadas atributos, que la describen. Por ejemplo, una entidad PROVEEDOR puede describirse por su C.I.F., su nombre, su teléfono, etc. Los atributos se representan por elipses que están conectadas a su entidad o relación mediante una línea recta. CIF nombre tfno PROVEEDOR Al conjunto de valores que puede tomar un atributo se le llama dominio del atributo. Toda entidad debe tener al menos un atributo que permita diferenciar unas entidades particulares de otras, es decir que no toman nunca el mismo valor para dos entidades particulares diferentes. A estos atributos se les llaman claves. En el diagrama E-R los atributos clave deben aparecer destacados; por ejemplo, subrayando su nombre (por ejemplo, cif de la entidad PROVEEDOR). CIF nombre tfno PROVEEDOR Tipos de atributos: a) Simples o compuestos: Los compuestos están formados por un conjunto de atributos, mientras que los simples no se pueden dividir. Formando Emprendedores de Calidad para un Mundo Empresarial 18 Instituto de Educación Superior “San Ignacio de Monterrico” b) Monovaluados o multivaluados: Los monovaluados sólo pueden tener un valor para una entidad particular, mientras que los multivaluados pueden tener más de un valor. Los multivaluados se representan mediante una elipse con trazado doble. (Por ejemplo el atributo color de la entidad COCHE es un atributo multivaluado, pues un coche puede estar pintado de varios colores). matric modelo color COCHE c) Almacenados o derivados: Los derivados son atributos cuyo valor para una entidad particular puede obtenerse en función de los valores almacenados en otros atributos. Se representan mediante una elipse con trazo discontinuo. (Por ejemplo el atributo edad de la entidad PERSONA es un atributo derivado porque se puede obtener en función del valor dela tributo fecha_nacimiento). DNI nombre fecha_nac edad PERSONA En 1979, Tardieu, propone tres reglas generales que debe cumplir una entidad: Tiene que tener existencia propia. Cada ocurrencia de un tipo de entidad debe poder distinguirse de las demás. Todas las ocurrencias de un tipo de entidad deben tener los mismo tipos de propiedades (atributos). Relación Asociación entre entidades, sin existencia propia en el mundo real que estamos modelando, pero necesaria para reflejar las interacciones existentes entre entidades. Las relaciones pueden ser de tres tipos: Formando Emprendedores de Calidad para un Mundo Empresarial 19 Instituto de Educación Superior “San Ignacio de Monterrico” Relaciones 1-1.- Las entidades que intervienen en la relación se asocian una a una (Ej: la entidad HOMBRE, la entidad MUJER y entre ellos la relación MATRIMONIO). Relaciones 1-n.- Una ocurrencia de una entidad está asociada con muchas (n) de otra (Ej: la entidad EMPERSA, la entidad TRABAJADOR y entre ellos la relación TRABAJAR-EN). Relaciones n-n.-Cada ocurrencia, en cualquiera de las dos entidades de la relación, puede estar asociada con muchas (n) de la otra y viceversa (Ej: la entidad ALUMNO, la entidad EMPRESA y entre ellos la relación MATRÍCULA). Representación gráfica de Entidades y Relaciones Para asimilar fácilmente un diseño de datos cuando se emplea el modelo E/R se utilizan los siguientes elementos gráficos: La utilización de estos elementos dará como resultado lo que se denomina el esquema entidad-relación de la base de datos. Los ejemplos que se incluyen en el apartado anterior, gráficamente quedarían como sigue: Formando Emprendedores de Calidad para un Mundo Empresarial 20 Instituto de Educación Superior “San Ignacio de Monterrico” ¿Cómo se pasa del esquema E/R a las tablas? Para cada entidad del esquema se creará una tabla con tantos campos como atributos tenga la entidad. Ejemplo: Tabla 'TRABAJADOR' DNI NUM_SS nombre-apellidos ... 11111111 XXXXXXXXXXX Fulano de tal ... 22222222 YYYYYYYYYYY Mengano de cual ... ...... ...... ...... ...... Las relaciones 1-1 se pueden reflejar incluyendo en una de las dos tablas un campo en el que poder colocar la clave del elemento de la otra tabla con el que se está relacionado. Ese nuevo campo que se incluye en la tabla recibe el nombre de clave ajena. Ejemplo: Tabla 'HOMBRE' DNI Nombre ... 11111111 ... ... 22222222 ... ... ... ... ... Tabla 'MUJER' DNI Nombre ... DNI-ESPOSO 33333333 ... ... 11111111 44444444 ... ... (nulo) ... ... ... ... Donde el campo DNI-ESPOSO es clave foránea de la tabla HOMBRE. Aquí hay que hacer notar que el campo DNI-ESPOSO puede tomar o bien un valor nulo, en el caso de aquellas mujeres que no estén casadas, o bien el valor de alguno de los DNI de la tabla HOMBRE, en el caso de las mujeres casadas; en este segundo caso, ese DNI (la clave ajena) no se deberá repetir en ningún otro registro de la tabla MUJER. Las relaciones 1-n se representan de forma muy parecida a como se ha explicado para las relaciones 1-1. La diferencia está en que ahora no es indiferente donde se coloque la clave ajena, esta debe estar obligatoriamente en la tabla del 'mucho' (n); Formando Emprendedores de Calidad para un Mundo Empresarial 21 Instituto de Educación Superior “San Ignacio de Monterrico” y además, para este caso si se permitirá que haya valores repetidos en dicho campo. Ejemplo: Tabla 'EMPRESA' CIF Nombre ... XX-1111-AA ... ... YY-2222-BB ... ... ... ... ... Tabla 'TRABAJADOR' DNI Nombre ... CIF 11111111 ... ... XX-1111-AA 22222222 ... ... YY-2222-BB 33333333 ... ... YY-2222-BB 44444444 ... ... XX-1111-AA ... ... ... ... Para representar las relaciones n-n en tablas lo que se hace es crear una nueva tabla solamente para la relación. Esta nueva tabla tendrá dos claves ajenas y su propia clave estará formada por la unión de las claves ajenas. Ejemplo: Tabla 'ALUMNO' DNI Nombre ... 11111111 ... ... 22222222 ... ... ... ... ... Tabla 'ASIGNATURA' COD-ASIGNATURA Nombre ... 01 ... ... 02 ... ... ... ... ... Tabla 'MATRÍCULA'(esta es la relación) DNI COD_ASIGNATURA NOTA 11111111 01 7.5 11111111 02 6.25 22222222 01 5.5 22222222 02 8 ... ... ... Formando Emprendedores de Calidad para un Mundo Empresarial 22 Instituto de Educación Superior “San Ignacio de Monterrico” En la tabla MATRÍCULA es donde se refleja la relación. La clave de dicha tabla está formada por los campos DNI y COD-ASIGNATURA ; y cada uno de ellos es clave ajena, el primero de ALUMNO y el segundo de ASIGNATURA. Hacer ver aquí que la tabla MATRICULAS puede tener más campos además de los que son clave ajena como ocurre en el ejemplo; la tabla añade además un campo NOTA. Vínculo o relación: Se puede definir como una correspondencia, asociación o conexión entre dos o más entidades. En los diagramas E-R se representa gráficamente como un rombo y sus nombres son verbos. Por ejemplo: VENDE, PERTENECE, etc. PROVEEDOR ARTICULO VENDE Una relación puede tener atributos descriptivos. Por ejemplo, en la relación anterior, podría tener como atributo descriptivo fecha_venta (la fecha en que se hace la venta). fecha_venta PROVEEDOR VENDE ARTICULO Grado de una relación es el número de entidades que participan en la relación. Se puede restringir el modelo E-R para incluir solo conjuntos de relaciones binarias, es decir de grado 2 (es aconsejable). Correspondencia de cardinalidad, expresa el número máximo de entidades que están relacionadas con una única entidad del otro conjunto de entidades que interviene en la relación. Aunque normalmente nos interesa sólo la cardinalidad máxima, a veces es útil especificar la cardinalidad mínima. Según su cardinalidad, podemos clasificar las relaciones de los siguientes tipos: Formando Emprendedores de Calidad para un Mundo Empresarial 23 Instituto de Educación Superior “San Ignacio de Monterrico” TIPO RELACIÓN REPRESENTACIÓN 1:1 Una a una : La cardinalidad máxima en 1 ambas direcciones es 1. 1 1:N Una a muchas: La cardinalidad máxima en 1 una dirección es 1 y en la otra muchos. N N:M Muchas a muchas: La cardinalidad máxima N en ambas direcciones en muchos. M Tipos de participación de las entidades en una relación: Opcional (parcial): No todas las ocurrencias de una entidad tienen que estar relacionadas con alguna de la otra entidad. Se representa mediante una línea con trazo sencillo. (Por ejemplo, no toda persona posee animales, y no todo animal es posesión de alguna persona. En este caso ambas entidades participan parcialmente en la relación). PERSONA POSEE ANIMAL Obligatoria (total): Todas las ocurrencias de una entidad deben estar relacionadas con alguna de la entidad con la que esta relacionada. Se dice también, que existen una participación total de ese conjunto de entidades en el conjunto de relaciones, y se representa mediante una línea con trazo doble. (Por ejemplo, todo proveedor tiene que vender algún artículo para serlo, y todo artículo es vendido por algún proveedor. En este caso ambas entidades participan de forma total en la relación). PROVEEDOR VENDE ARTICULO Formando Emprendedores de Calidad para un Mundo Empresarial 24 Instituto de Educación Superior “San Ignacio de Monterrico” NORMALIZACION La normalización es una técnica para diseñar la estructura lógica de los datos de un sistema de información en el modelo relacional, desarrollada por E. F. Codd en 1972. Es una estrategia de diseño de abajo a arriba: se parte de los atributos y éstos se van agrupando en relaciones (tablas) según su afinidad. Aquí no se utilizará la normalización como una técnica de diseño de bases de datos, sino como una etapa posterior a la correspondencia entre el esquema conceptual y el esquema lógico, que elimine las dependencias entre atributos no deseadas. Las ventajas de la normalización son las siguientes: Evita anomalías en inserciones, modificaciones y borrados. Mejora la independencia de datos. No establece restricciones artificiales en la estructura de los datos. Uno de los conceptos fundamentales en la normalización es el de dependencia funcional. Una dependencia funcional es una relación entre atributos de una misma relación (tabla). La dependencia funcional es una noción semántica. Si hay o no dependencias funcionales entre atributos no lo determina una serie abstracta de reglas, sino, más bien, los modelos mentales del usuario y las reglas de negocio de la organización o empresa para la que se desarrolla el sistema de información. Cada dependencia funcional es una clase especial de regla de integridad y representa una relación de uno a muchos. En el proceso de normalización se debe ir comprobando que cada relación (tabla) cumple una serie de reglas que se basan en la clave primaria y las dependencias funcionales. Cada regla que se cumple aumenta el grado de normalización. Si una regla no se cumple, la relación se debe descomponer en varias relaciones que sí la cumplan. La normalización se lleva a cabo en una serie pasos. Cada paso corresponde a una forma normal que tiene unas propiedades. Conforme se va avanzando en la normalización, las relaciones tienen un formato más estricto (más fuerte) y, por lo Formando Emprendedores de Calidad para un Mundo Empresarial 25 Instituto de Educación Superior “San Ignacio de Monterrico” tanto, son menos vulnerables a las anomalías de actualización. El modelo relacional sólo requiere un conjunto de relaciones en primera forma normal. Las restantes formas normales son opcionales. Sin embargo, para evitar las anomalías de actualización, es recomendable llegar al menos a la tercera forma normal. Tomando como referencia la tabla siguiente: AUTORES Y LIBROS NOMBRE NACION CODLIBRO TITULO EDITOR Date USA 999 IBD AW Ad.Mig. ESP 888 CyD RM Ma.Piat. ITA 777 CyD RM Date USA 666 BdD AW Se plantean una serie de problemas: Redundancia: cuando un autor tiene varios libros, se repite la nacionalidad. Anomalías de modificación: Si Ad.Mig. y Ma.Piat. desean cambiar de editor, se modifica en los 2 lugares. A priori no podemos saber cuántos autores tiene un libro. Los errores son frecuentes al olvidar la modificación de un autor. Se pretende modificar en un sólo sitio. Anomalías de inserción: Se desea dar de alta un autor sin libros, en un principio. NOMBRE y CODLIBRO son campos clave, una clave no puede tomar valores nulos. Asegurando: Integridad entre los datos: consistencia de la información. El proceso de normalización nos conduce hasta el modelo físico de datos y consta de varias fases denominadas formas normales, estas formas se detallan a continuación. Definición de la clave Antes de proceder a la normalización de la tabla lo primero que debemos de definir es una clave, esta clave deberá contener un valor único para cada registro (no Formando Emprendedores de Calidad para un Mundo Empresarial 26 Instituto de Educación Superior “San Ignacio de Monterrico” podrán existir dos valores iguales en toda la tabla) y podrá estar formado por un único campo o por un grupo de campos. En la tabla de alumnos de un centro de estudios no podemos definir como campo clave el nombre del alumno ya que pueden existir varios alumnos con el mismo nombre. Podríamos considerar la posibilidad de definir como clave los campos nombre y apellidos, pero estamos en la misma situación: podría darse el caso de alumnos que tuvieran los mismo apellidos y el mismo nombre (Juan Fernández Martín). La solución en este caso es asignar un código de alumno a cada uno, un número que identifique al alumno y que estemos seguros que es único. Una vez definida la clave podremos pasar a estudiar la primera forma normal. Primera forma normal (1FN) Una relación está en primera forma normal si, y sólo si, todos los dominios de la misma contienen valores atómicos, es decir, no hay grupos repetitivos. Si se ve la relación gráficamente como una tabla, estará en 1FN si tiene un solo valor en la intersección de cada fila con cada columna. Si una relación no está en 1FN, hay que eliminar de ella los grupos repetitivos. Un grupo repetitivo será el atributo o grupo de atributos que tiene múltiples valores para cada tupla de la relación. Hay dos formas de eliminar los grupos repetitivos. En la primera, se repiten los atributos con un solo valor para cada valor del grupo repetitivo. De este modo, se introducen redundancias ya que se duplican valores, pero estas redundancias se eliminarán después mediante las restantes formas normales. La segunda forma de eliminar los grupos repetitivos consiste en poner cada uno de ellos en una relación aparte, heredando la clave primaria de la relación en la que se encontraban. Un conjunto de relaciones se encuentra en 1FN si ninguna de ellas tiene grupos repetitivos. , podríamos considerar el siguiente diseño: Formando Emprendedores de Calidad para un Mundo Empresarial 27 Instituto de Educación Superior “San Ignacio de Monterrico” Código Nombre Cursos 1 Marcos Hinojosa Inglés 2 Lucas Peter Contabilidad, Informática 3 Marta Hildebrant Inglés, Contabilidad Podemos observar que el registro de código 1 si cumple la primera forma normal, cada campo del registro contiene un único dato, pero no ocurre así con los registros 2 y 3 ya que en el campo cursos contiene más de un dato cada uno. La solución en este caso es crear dos tablas del siguiente modo: TABLA A Código TABLA B Nombre Código Curso 1 Marcos 1 Inglés 2 Lucas 2 Contabilidad 3 Marta 2 Informática 3 Inglés 3 Informática Como se puede comprobar ahora todos los registros de ambas tablas contienen valores únicos en sus campos, por lo tanto ambas tablas cumplen la primera forma normal. Una vez normalizada la tabla en 1NF, podemos pasar a la segunda forma normal. Segunda forma normal (2FN) Una relación está en segunda forma normal si, y sólo si, está en 1FN y, además, cada atributo que no está en la clave primaria es completamente dependiente de la clave primaria. La 2FN se aplica a las relaciones que tienen claves primarias compuestas por dos o más atributos. Si una relación está en 1FN y su clave primaria es simple (tiene un Formando Emprendedores de Calidad para un Mundo Empresarial 28 Instituto de Educación Superior “San Ignacio de Monterrico” solo atributo), entonces también está en 2FN. Las relaciones que no están en 2FN pueden sufrir anomalías cuando se realizan actualizaciones. Para pasar una relación en 1FN a 2FN hay que eliminar las dependencias parciales de la clave primaria. Para ello, se eliminan los atributos que son funcionalmente dependientes y se ponen en una nueva relación con una copia de su determinante (los atributos de la clave primaria de los que dependen). Supongamos que construimos una tabla con los años que cada empleado ha estado trabajando en cada departamento de una empresa: Código Empleado Código Dpto. Nombre Departamento Años 1 6 Juan Contabilidad 6 2 3 Pedro Sistemas 3 3 2 Sonia I+D 1 4 3 Verónica Sistemas 10 2 6 Pedro Contabilidad 5 Tomando como punto de partida que la clave de esta tabla está formada por los campos código de empleado y código de departamento, podemos decir que la tabla se encuentra en primera forma normal, por tanto vamos a estudiar la segunda: 1. El campo nombre no depende funcionalmente de toda la clave, sólo depende del código del empleado. 2. El campo departamento no depende funcionalmente de toda la clave, sólo del código del departamento. 3. El campo años si que depende funcionalmente de la clave ya que depende del código del empleado y del código del departamento (representa el número de años que cada empleado ha trabajado en cada departamento) Por tanto, al no depender todos los campos de la totalidad de la clave la tabla no está en segunda forma normal, la solución es la siguiente: Formando Emprendedores de Calidad para un Mundo Empresarial 29 Instituto de Educación Superior “San Ignacio de Monterrico” Tabla A Tabla B Tabla C Código Código Emplead Nombre Departament o o Dpto. Código Emplead o Código Departament o Año s 1 Juan 2 I+D 1 6 6 2 Pedro 3 Sistemas 2 3 3 3 Sonia 6 3 2 1 4 3 10 2 6 5 4 Contabilida d Verónic a Podemos observar que ahora si se encuentras las tres tablas en segunda forma normal, considerando que la tabla A tiene como índice el campo Código Empleado, la tabla B Código Departamento y la tabla C una clave compuesta por los campos Código Empleado y Código Departamento. Tercera forma normal (3FN) Una relación está en tercera forma normal si, y sólo si, está en 2FN y, además, cada atributo que no está en la clave primaria no depende transitivamente de la clave primaria. La dependencia es transitiva si existen las dependencias , , siendo , , atributos o conjuntos de atributos de una misma relación. Aunque las relaciones en 2FN tienen menos redundancias que las relaciones en 1FN, todavía pueden sufrir anomalías frente a las actualizaciones. Para pasar una relación de 2FN a 3FN hay que eliminar las dependencias transitivas. Para ello, se eliminan los atributos que dependen transitivamente y se ponen en una nueva relación con una copia de su determinante (el atributo o atributos no clave de los que dependen). Podemos plantear la siguiente estructura: Código Nombre Curso Aula Formando Emprendedores de Calidad para un Mundo Empresarial 30 Instituto de Educación Superior “San Ignacio de Monterrico” 1 Marcos Informática Aula A 2 Lucas Inglés Aula B 3 Marta Contabilidad Aula C Estudiemos la dependencia de cada campo con respecto a la clave código: Nombre depende directamente del código del alumno. Curso depende de igual modo del código del alumno. El aula, aunque en parte también depende del alumno, está mas ligado al curso que el alumno está realizando. Por esta última razón se dice que la tabla no está en 3NF. La solución sería la siguiente: Tabla A Código Tabla B Nombre Curso Curso Aula 1 Marcos Informática Informática Aula A 2 Lucas Inglés Inglés Aula B 3 Marta Contabilidad Contabilidad Aula C Una vez conseguida la segunda forma normal, se puede estudiar la cuarta forma normal. Cuarta forma normal (4NF) Una tabla está en cuarta forma normal si y sólo si para cualquier combinación clave campo no existen valores duplicados. Veámoslo con un ejemplo: Geometría Figura Color Tamaño Cuadrado Rojo Grande Cuadrado Azul Grande Formando Emprendedores de Calidad para un Mundo Empresarial 31 Instituto de Educación Superior “San Ignacio de Monterrico” Cuadrado Azul Mediano Círculo Blanco Mediano Círculo Azul Pequeño Círculo Azul Mediano Comparemos ahora la clave (Figura) con el atributo Tamaño, podemos observar que Cuadrado Grande está repetido; igual pasa con Círculo Azul, entre otras. Estas repeticiones son las que se deben evitar para tener una tabla en 4NF. La solución en este caso sería la siguiente: Tamaño Color Figura Tamaño Figura Color Cuadrado Grande Cuadrado Rojo Cuadrado Pequeño Cuadrado Azul Círculo Mediano Círculo Blanco Círculo Pequeño Círculo Azul Ahora si tenemos nuestra base de datos en 4NF. Forma normal de Boyce-Codd (BCFN) Una relación está en la forma normal de Boyce-Codd si, y sólo si, todo determinante es una clave candidata. La 2FN y la 3FN eliminan las dependencias parciales y las dependencias transitivas de la clave primaria. Pero este tipo de dependencias todavía pueden existir sobre otras claves candidatas, si éstas existen. La BCFN es más fuerte que la 3FN, por lo tanto, toda relación en BCFN está en 3FN. La violación de la BCFN es poco frecuente ya que se da bajo ciertas condiciones que raramente se presentan. Se debe comprobar si una relación viola la BCFN si tiene dos o más claves candidatas compuestas que tienen al menos un atributo en común. Otras formas normales Formando Emprendedores de Calidad para un Mundo Empresarial 32 Instituto de Educación Superior “San Ignacio de Monterrico” Existen otras dos formas normales, la llamada quinta forma normal (5FN) que no detallo por su dudoso valor práctico ya que conduce a una gran división de tablas y la forma normal dominio / clave (FNDLL) de la que no existe método alguno para su implantación. Resumen El diseño de bases de datos consta de tres etapas: diseño conceptual, lógico y físico. El diseño lógico es el proceso mediante el que se construye un esquema que representa la información que maneja una empresa, basándose en un modelo lógico determinado, pero independientemente del SGBD concreto que se vaya a utilizar para implementar la base de datos e independientemente de cualquier otra consideración física. Las dos fases de que consta el diseño lógico son la construcción y validación de los esquemas lógicos locales para cada vista de usuario, y la construcción y validación de un esquema lógico global. Cada una de estas fases consta de una serie de pasos. Un paso importante es la conversión del esquema conceptual a un esquema lógico adecuado al modelo relacional. Para ello, se deben hacer algunas transformaciones: eliminar las relaciones de muchos a muchos, eliminar las relaciones complejas, eliminar las relaciones recursivas, eliminar las relaciones con atributos, eliminar los atributos multievaluados, reconsiderar las relaciones de uno a uno y eliminar las relaciones redundantes. Los esquemas lógicos se pueden validar mediante la normalización y frente a las transacciones de los usuarios. La normalización se utiliza para mejorar el esquema, de modo que éste satisface ciertas restricciones que evitan la duplicidad de datos. La normalización garantiza que el esquema resultante está más próximo al modelo de la empresa, es consistente, tiene la mínima redundancia y la máxima estabilidad. Las restricciones de integridad son las restricciones que se imponen para que la base de datos nunca llegue a un estado inconsistente. Hay cinco tipos de restricciones de integridad: datos requeridos, restricciones de dominio, integridad de entidades, integridad referencial y reglas de negocio. Para garantizar la integridad referencial se debe especificar el comportamiento de las claves ajenas: si aceptan nulos y qué hacer cuando se borra la tupla a la que se hace referencia, o cuando se modifica el valor de su clave primaria. El proceso de normalización es un estándar que consiste, básicamente, en un proceso de conversión de las relaciones entre las entidades, evitando: La redundancia de los datos: repetición de datos en un sistema. Formando Emprendedores de Calidad para un Mundo Empresarial 33 Instituto de Educación Superior “San Ignacio de Monterrico” Anomalías de actualización: inconsistencias de los datos como resultado de datos redundantes y actualizaciones parciales. Anomalías de borrado: pérdidas no intencionadas de datos debido a que se han borrado otros datos. Anomalías de inserción: imposibilidad de adicionar datos en la base de datos debido a la ausencia de otros datos. Formando Emprendedores de Calidad para un Mundo Empresarial 34 Instituto de Educación Superior “San Ignacio de Monterrico” TIPOS DE DATOS A. Tipos de datos simples Es uno de los conceptos fundamentales de cualquier lenguaje de programación. Estos definen los métodos de almacenamiento disponibles para representar información, junto con la manera en que dicha información ha de ser interpretada. Para crear una variable (de un tipo simple) en memoria debe declararse indicando su tipo de variable y su identificador que la identificará de forma única. La sintaxis de declaración de variables es la siguiente: TipoSimple Identificador1, Identificador2; Esta sentencia indica al compilador que reserve memoria para dos variables del tipo simple TipoSimple con nombres Identificador1 e Identificador2. Los tipos de datos en Java pueden dividirse en dos categorías: simples y compuestos. Los simples son tipos nucleares que no se derivan de otros tipos, como los enteros, de coma flotante, booleanos y de carácter. Los tipos compuestos se basan en los tipos simples, e incluyen las cadenas, las matrices y tanto las clases como las interfaces, en general. Cada tipo de datos simple soporta un conjunto de literales que le pueden ser asignados, para darles valor. En este apartado se explican los tipos de datos simples (o primitivos) que presenta Java, así como los literales que soporta (sintaxis de los valores que se les puede asignar). a.) Tipos de datos enteros Se usan para representar números enteros con signo. Hay cuatro tipos: byte, short, int y long. Tipo Tamaño byte 1Byte (8 bits) short 2 Bytes (16 bits) int 4 Bytes (32 bits) long 8 Bytes (64 bits) Tabla 5: Tipos de datos enteros Formando Emprendedores de Calidad para un Mundo Empresarial 35 Instituto de Educación Superior “San Ignacio de Monterrico” Literales enteros Son básicos en la programación en Java y presentan tres formatos: Decimal: Los literales decimales aparecen como números ordinarios sin ninguna notación especial. Hexadecimal: Los hexadecimales (base 16) aparecen con un 0x ó 0X inicial, notación similar a la utilizada en C y C++. Octal: Los octales aparecen con un 0 inicial delante de los dígitos. Por ejemplo, un literal entero para el número decimal 12 se representa en Java como 12 en decimal, como 0xC en hexadecimal, y como 014 en octal. Los literales enteros se almacenan por defecto en el tipo int, (4 bytes con signo), o si se trabaja con números muy grandes, con el tipo long, (8 bytes con signo), añadiendo una L ó l al final del número. La declaración de variables enteras es muy sencilla. Un ejemplo de ello sería: long numeroLargo = 0xC; // Por defecto vale 12 b.) Tipos de datos en coma flotante Se usan para representar números con partes fraccionarias. Hay dos tipos de coma flotante: float y double. El primero reserva almacenamiento para un número de precisión simple de 4 bytes y el segundo lo hace para un numero de precisión doble de 8 bytes. Tipo Tamaño float 4 Byte (32 bits) double 8 Bytes (64 bits) Tabla 6: Tipos de datos numéricos en coma flotante Formando Emprendedores de Calidad para un Mundo Empresarial 36 Instituto de Educación Superior “San Ignacio de Monterrico” En la Interfase SQL SERVER tenemos: Tipo de datos Tamaño de Intervalo almacenamiento Byte 1 byte 0 a 255 Boolean 2 bytes True o False Integer 2 bytes -32,768 a 32,767 Long 4 bytes -2,147,483,648 a 2,147,483,647 4 bytes -3,402823E38 a –1,401298E-45 para valores negativos; (entero largo) Single (coma flotante/ 1,401298E-45 a 3,402823E38 para valores positivos precisión simple) Double (coma 8 bytes -1.79769313486231E308 flotante/ -4,94065645841247E-324 precisión doble) a para valores negativos; 4,94065645841247E-324 a 1,79769313486232E308 para valores positivos Currency 8 bytes -922.337.203.685.477,5808 a 922.337.203.685.477,5807 14 bytes +/-79.228.162.514.264.337.593.543.950.335 (entero a escala) Decimal sin punto decimal; +/-7,9228162514264337593543950335 con 28 posiciones a la derecha del signo decimal; el número más pequeño distinto de cero +/-0,0000000000000000000000000001 Datetime 8 bytes Varchar 10 bytes + longitud Desde 0 a 2.000 millones (longitud de la cadena 1 de enero de 100 a 31 de diciembre de 9999 variable) Char Longitud (longitud fija) cadena de la Desde 1 a 65.400 aproximadamente Formando Emprendedores de Calidad para un Mundo Empresarial 37 es Instituto de Educación Superior “San Ignacio de Monterrico” Definido por el Número usuario requerido El intervalo de cada elemento es el mismo que el intervalo por los elementos de su tipo de datos. (utilizando Type) binary Imágenes Formando Emprendedores de Calidad para un Mundo Empresarial 38