1 Bach INFORMATICA BASES DE DATOS 1 Bach 1/12 1 Bach INDICE 1. Definiciones básicas ........................................................................................................................................... 3 1.1. Dato ............................................................................................................................................................. 3 1.2. Información ................................................................................................................................................. 3 1.3. Base de datos ............................................................................................................................................... 3 1.4. Abstracción .................................................................................................................................................. 3 1.5. Modelo de base de datos.............................................................................................................................. 3 1.6. Pasos para construir una BD........................................................................................................................ 4 2. Elementos básicos de una BD ............................................................................................................................ 4 2.1. Entidades. .................................................................................................................................................... 4 2.2. Atributos ...................................................................................................................................................... 4 2.3. Relación ....................................................................................................................................................... 5 3. Modelo E/R ........................................................................................................................................................ 5 3.1. Introducción ................................................................................................................................................. 5 3.2. Entidades. .................................................................................................................................................... 5 3.3. Relaciones.................................................................................................................................................... 5 3.4. Cardinalidad ................................................................................................................................................ 6 3.5. Clasificación de las relaciones..................................................................................................................... 6 3.6. Diccionario de Datos ................................................................................................................................... 7 3.7. Metodología de diseño ................................................................................................................................ 7 3.8. ejemplo de E/R completo ............................................................................................................................ 8 4. Implementación en el ordenador ........................................................................................................................ 9 4.1. Intro ............................................................................................................................................................. 9 4.2. Transformación............................................................................................................................................ 9 4.4. Tipos de datos ............................................................................................................................................ 11 4.5. Pasos para la resolución de los ejercicios. ................................................................................................. 11 4.6. Ejemplo esquema final ordenador ............................................................................................................. 11 2/12 1 Bach 1. DEFINICIONES BÁSICAS 1.1. DATO Por DATOS entendemos hechos conocidos que pueden registrarse. Un dato no dice nada sobre las cosas y por si mismo no tiene ninguna relevancia. La toma de decisiones utilizará los datos, pero estos nunca dirán lo que hay que hacer, no dicen nada acerca de lo que es importante o no. Por si mismo no reduce la ignorancia de quien tiene que tomar decisiones. Ejemplo de datos: nombre, apellidos, número de teléfono, matrícula del coche. Solo conviene almacenar datos que después de analizados o procesados sirvan para resolver un problema o tomar una decisión. Lo que nos lleva al concepto de información. 1.2. INFORMACIÓN INFORMACIÓN es el significado que una persona asigna a un dato. Por lo tanto si un dato es información o no depende de la persona. Ejemplo de información: Un fabricante de perfumes tiene intención de sacar al mercado un nuevo producto. Necesita conocer la opinión de sus posibles clientes. Entre las acciones a tomar decide elaborar una encuesta, en la que recogerá estas opiniones. Las respuestas recogidas son datos. Si agrupamos, totalizamos y procesamos los datos obtendremos información útil para el Departamento de Marketing, y además esta información será inteligible para este departamento, aportándole un conocimiento nuevo, de difícil o imposible predicción, y muy importante para las decisiones a tomar en lo referente al proceso de creación del nuevo perfume. 1.3. BASE DE DATOS Una BASE DE DATOS (BD a partir de ahora) es un conjunto de datos relacionados entre si y con un propósito específico. Una colección aleatoria de datos no puede considerarse una base de datos. Una base de datos representa una parcela del mundo real. Ejemplos de bases de datos comerciales son MySQL, SQLServer, DBase y Access. Las hojas de cálculo como Excell, pueden considerarse bases de datos de propósito específico. Ejemplo: Catálogo de biblioteca. Relaciona usuarios, libros, préstamos, devoluciones, etc. El propósito de toda la base de datos es registrar el préstamo de libros. No es aleatoria pues todo está organizado en torno a los libros y no existen datos no relevantes. Representa la parcela del mundo real que antes se hacía con fichas en una biblioteca, pero no representa la colocación de libros por ejemplo, ni la atención al usuario. Un SISTEMA GESTOR DE BASE DE DATOS( SGBD) es el software que no permite crear la base de datos, e introducir y obtener datos de la misma. Un ejemplo de SGBD es ACCESS o MySQL. 1.4. ABSTRACCIÓN La ABSTRACCIÓN es el proceso de descarte de los datos que nos llegan del exterior y que no nos interesan. Este proceso se está dando continuamente en nuestro cerebro, por ello solo recordamos ciertas cosas de lo que ha pasado durante el día, pues almacenar todos los datos recogidos sería imposible. Mediante la abstracción se eliminan los detalles irrelevantes. Así por ejemplo de una mesa diremos que está formada por cuatro patas y un tablero encima, con lo que todo el mundo sabrá lo que es una mesa. Se han obviado los detalles del tipo de material: madera, plastico, metal, el tipo de madera, las dimensiones, es cuadrada, rectangular redonda,... 1.5. MODELO DE BASE DE DATOS Debido a la complejidad del mundo real nosotros solo podemos representar en los sistemas informáticos una pequeña parte del mismo, la que nos interesa. Además para representar esta parte debemos simplificar y abstraer el funcionamiento 3/12 1 Bach del mundo real. Para esto se utilizan los modelos de datos, que nos permiten representar el mundo de una forma estándar y predeterminada que pueda ser entendida por la mayoría. Los MODELOS son por tanto una representación simplificada de la realidad. Este modelo sirve como herramienta para poder manejar la información extraída de la realidad y aplicada a situaciones que compartan un nexo común. Por ejemplo: el movimiento rectilíneo uniforme. Se ha creado un modelo físico, en el que a cualquier objeto que tenga un determinado tipo de movimiento se le aplica siempre la misma fórmula. El objeto debe cumplir una serie de características. Cualquier objeto que las cumpla será intercambiable por otro que también las cumpla. Es decir, nos abstraemos del objeto en sí mismo y nos fijamos solo en su movimiento que es lo que nos interesa estudiar. No nos importa si el objeto es blanco o negro, pues no afecta a su movimiento, por tanto abstraemos estos datos. Los modelos de datos dividen el mundo en una serie de elementos, que nos permiten describir los objetos del mundo real y sus relaciones. En el punto 2 se estudia cuales son los elementos básicos de una base de datos. 1.6. PASOS PARA CONSTRUIR UNA BD Cuando queremos crear una base de datos debemos dar los siguientes pasos: 1. Diseñar la base de datos utilizando un modelo. En nuestro caso utilizaremos el modelo entidad/relacion. 2. Pasar este diseño al esquema lógico de la base de datos que se va a utilizar, en nuestro caso al modelo relacional. 3. Introducir datos en la base de datos. sobre el que se quiere tener información en el sistema. Partiendo del lenguaje natural, un nombre común que actúa como sujeto o complemento directo en una frase, generalmente es una entidad, o en su defecto, un atributo. Por su parte los nombres propios suelen indicar instancias o ocurrencias de una entidad. Por ejemplo, si la parcela del mundo real es una empresa, "empleado" sería una entidad puesto que parece lógico que se quiera tener información al respecto en el sistema. Toda entidad debe quedar unívocamente identificada por un nombre, que debe ser único en el modelo y lo más significativo posible. Normalmente las entidades se nombran con un sustantivo. Se denomina OCURRENCIA a cada uno de los ejemplares de una entidad. Por ejemplo, en la entidad "empleado", los empleados Pedro y Juan, etc., son ocurrencias de la misma. 2.2. ATRIBUTOS Se define ATRIBUTO como cada una de las características, básicas de una entidad. Por ejemplo: de un empleado nos interesa saber su nombre, apellidos, dni y puesto que desempeña en nuestra empresa. Cada una de estas unidades de información es un atributo y recibirá un nombre distinto dentro de la entidad. 2.1. ENTIDADES. Se entiende por CLAVE PRINCIPAL aquellos atributos de una entidad que identifican unívocamente cada una de las ocurrencias de la misma. La función de la clave principal es organizativa, permite identificar cada entidad a lo hora de tener que buscarla. Es como el titulo de un libro. Una ENTIDAD es un objeto real o abstracto, que tiene existencia por sí mismo, se puede identificar de una manera clara y precisa y En el ejemplo anterior la clave principal sería el DNI, pues nadie puede tener el DNI repetido. 2. ELEMENTOS BÁSICOS DE UNA BD 4/12 1 Bach Se define DOMINIO como el conjunto de valores que puede tomar un atributo. Para el atributo nombre de un empleado el dominio es el de los nombres de personas, así por ejemplo no será posible el nombre mesa, silla, perro o 1234. Los dominios más usuales en las bases de datos comerciales son: - números reales o Num - caracteres o Car - cadena de caracteres o CdC - texto o Tex - autonumérico. o Auto - fecha o Fech - moneda o Mon 2.3. RELACIÓN Una RELACIÓN semántica entre entidades. es una conexión Por ejemplo: entre las entidades "empleado" y "empresa" se puede reconocer la relación "pertenece". La principal utilidad del esquema E/R es poner de manifiesto las relaciones entre entidades. 3.2. ENTIDADES. Las entidades se representan por medio de un rectángulo, dentro del cual se escribe el nombre de la entidad. EMPLEADO Suponiendo que estamos modelando una empresa el grafico anterior representaría un empleado cualquiera. 3.3. RELACIONES Las relaciones se representan por medio de un rombo y se une a las entidades mediante una línea. Si estamos modelando una empresa que tiene varias tiendas quizá nos interese saber en qué tienda trabaja cada empleado, como se ve a continuación. 3. MODELO E/R 3.1. INTRODUCCIÓN La utilización de un modelo estándar tiene las siguientes ventajas: - Los esquemas resultantes transmiten un mensaje preciso. No se pueden deducir de él cosas que no estén representadas. - Para las personas que sepan interpretarlos son suficiente información. No hace falta ninguna explicación adicional. El modelo entidad relación nos proporciona dos cosas: - Un grafismo de representación. Es decir, una forma de representar los elementos de la base de datos mediante gráficos. - Unas reglas. Estas reglas nos indican cómo se construye un grafico correctamente. La relación solo puede unir dos entidades. Las relaciones no se pueden asociar con otras relaciones. La relación tiene dos sentidos de lectura. En el ejemplo podemos leer: - En las tiendas trabajan empleados. - Los empleados trabajan en las tiendas. Con esta forma de hacer los gráficos ambos sentidos de lectura dicen lo mismo, pero esta forma de denotar la relación no nos permite saber cuántos empleados trabajan en una tienda, ni en cuantas tiendas trabaja un empleado. Por esto, vamos a completar el modelo con la cardinalidad, y comprobaremos como con este nuevo elemento el sentido de lectura ya no se insignificante. Lo que se obtiene de aplicar lo anterior se denomina el esquema E/R. 5/12 1 Bach 3.4. CARDINALIDAD La CARDINALIDAD nos permite saber cuántas ocurrencias de una entidad se relacionan con cuantas ocurrencias de la entidad del otro lado de la relación. “Un empleado trabaja como mínimo en una tienda y como máximo en dos.” 3.5. CLASIFICACIÓN DE LAS RELACIONES Existen dos tipos de cardinalidad: - Se denomina CARDINALIDAD MÁXIMA de la relación al número máximo de ocurrencias de cada entidad que pueden intervenir en la relación que se está considerando. - Se denomina CARDINALIDAD MÍNIMA, al número mínimo de ocurrencias de cada entidad que deben intervenir en la relación que se está considerando. Observar que con la cardinalidad minima la relación es obligatoria, es decir, para que exista la relación debe haber al menos tantas entidades involucradas como indique la cardinalidad mínima. Estas cardinalidades se escriben separadas por dos puntos, a la izquierda la cardinalidad mínima y a la derecha la máxima. Se ponen al lado de la entidad que, según el sentido, se lee en último lugar. Para nuestro ejemplo, supongamos que un empleado puede trabajar como mucho en dos tiendas y que una tienda tiene como mínimo dos empleados y como mucho cinco. El grafico quedaría como sigue: El mínimo de tiendas en que trabaja un empleado es de 1, porque en caso contrario no tendría sentido llamarlo empleado. Ahora el sentido si importa. Leyendo de izquierda a derecha leemos: “En una tienda trabajan al menos dos empleados y como mucho cinco.” Las relaciones pueden ser de varios tipos dependiendo de cuantas ocurrencias de una entidad se relacionen con las de otra a las que este unida con una relación. Una vez que hemos determinado la cardinalidad de la relación es fácil saber de qué tipo es, simplemente fijándonos es las cardinalidades máximas. Así tendríamos: 1/1. Uno con uno. Si una ocurrencia de una entidad se interrelaciona como máximo con una ocurrencia de la otra entidad. Por ejemplo, dadas las entidades "hombre" y "mujer", la relación "está casado" es 1:1, ya que un hombre está casado como máximo con una mujer y una mujer está casada como máximo con un hombre. 1/N. Uno con muchos. Si una ocurrencia de una entidad se interrelaciona con varias de la otra. Por ejemplo, dadas las entidades "empleado" y "departamento", la relación "pertenece" es del tipo 1:N ya que un empleado pertenece a un departamento y a un departamento pueden pertenecer varios empleados. N/N. Muchos con muchos. Si varias ocurrencias de una entidad se interrelacionan con varias ocurrencias de la otra. Por ejemplo, dadas las entidades "empleado" y "proyecto", la relación "trabaja" es N:N ya que un empleado puede trabajar en muchos proyectos y en un proyecto pueden trabajar muchos empleados. El tipo de relación se indica encima del robo de la relación correspondiente. Pero leyendo de derecha a izquierda: 6/12 1 Bach 3.6. DICCIONARIO DE DATOS Los datos que vamos a guarda en la base de datos realmente se van a almacenar en los atributos de las entidades. Por ello de cada entidad debemos identificar los atributos que la componen, su dominio y cuál es la clave principal. Determinar el dominio de cada atributo nos va a servir para restringir el tipo de información que puede almacenarse en los atributos. Por ejemplo si tenemos una entidad denominada Alumno, con los atributos: nombre, apellido1, apellido2, fechaNac y DNI. Obviamente no queremos que el usuario se confunda e introduzca el nombre en campo fecha. Si fijamos el dominio a fecha para fechaNac evitaremos esto, pues el sistema no lo permitará, ya que el nombre son letras. Debemos determinar cual es la clave principal porque asi podremos identificar unívocamente cada una de las ocurrencias. Para el ejemplo anterior fijaríamos como clave principal el atributo DNI, pues nadie puede tener el mismo DNI. De esta forma para buscar un alumno me basta con su DNI. En cambio como el nombre se puede repetir, necesitaría también el nombre y apellidos. Para determinar todo lo anterior crearemos el diccionario de datos( DD en adelante). La estructura del diccionario de datos se puede observar en el siguiente ejemplo: @Tienda IdTienda: Auto Ubicación: CdC (50) Tamaño: Núm @Empleado DNI: CdC (9) Nombre: CdC (20) Apellido1: CdC (20) Apellido2: CdC (20) Como se puede observar cumple varias reglas: - Al nombre de la entidad se le antecede la @ - Los atributos empieza después de una tabulación debajo de la entidad a la que pertenecen. - La clave principal aparece la primera y subrayada. - El dominio de los atributos se indica después de dos puntos. - Para las cadenas de caracteres debemos indicar el espacio que se reserva. Esto se hace por eficiencia. De esta forma nuestra base de datos ocupará solo el espacio necesario y no más. 3.7. METODOLOGÍA DE DISEÑO Para realizar el estudio de un enunciado y llegar a una base de datos idónea, se debe seguir un plan de acción organizado como sigue: 1. Leer el enunciado completamente. 2. Dividir el enunciado en partes coherentes y resolver cada parte independientemente. 3. Para cada parte identificar las entidades y sus atributos, así como la clave principal. Crearemos el diccionario de datos. 4. Identificamos las relaciones entre entidades y creamos el modelo E/R. Con la práctica los pasos anteriores se agilizan y podemos directamente pasar a crear el esquema final. Existen una serie de consideraciones que nos hacen más fácil la traducción de un enunciado del lenguaje natural a un esquema E/R: 1. ¿Tengo todas las entidades? 2. ¿Todas las entidades tienen clave? 3. ¿Todas las relaciones tienen cardinalidades? 4. ¿Existe alguna entidad repetida en mi esquema? 5. Si una entidad tiene un solo atributo o ninguno posiblemente haya que representarla como atributo de otra entidad. 6. Las relaciones de las que no se nos diga nada normalmente tendrán cardinalidad 1:n. 7. Si no nos dicen la clave y no podemos determinar una clave adecuada, crearemos una clave autonumérica, de nombre ID_algo. 8. Si tenemos que asociar el atributo con otra entidad diferente de a la que pertenece, es probable que ese atributo deba ser una entidad. 7/12 1 Bach 3.8. EJEMPLO DE E/R COMPLETO El administrador de una empresa nos ha llamado porque quiere que creemos una base de datos para gestionar su negocio. Nos ha dado las siguientes explicaciones: “ Existen diferentes Jefes, de los que tenemos guardado su nombre, apellidos, DNI, titulación y teléfono. De las dependientas solo tenemos el nombre, apellidos y DNI. Los jefes mandan en una sola tienda, aunque es jefe de todas las dependientas de la tienda. Estas trabajan en una sola tienda. Las dependientas tienen un solo jefe y nos interesa saber que productos son los que venden cada dependienta, teniendo en cuenta que un mismo producto se puede vender por varias dependientas. De los productos nos interesa saber su precio, nombre, tipo y cantidad de los mismos que tenemos. De cada tienda queremos saber tamaño y ubicación” DICCIONARIO DE DATOS @Jefe DNI: CdC (9) Nombre: CdC (20) Apellido1: CdC (20) Apellido2: CdC (20) Titulación: CdC(50) Telefono: Num @Dependienta DNI: CdC (9) Nombre: CdC (20) Apellido1: CdC (20) Apellido2: CdC (20) @Productos Codigo: Num Precio: moneda Nombre: CdC(30) Tipo: CdC(10) Cantidad: Num @Tienda Idtienda: Auto Ubicación: CdC (30) Tamaño: Num 8/12 1 Bach 4. IMPLEMENTACIÓN EN EL ORDENADOR 4.1. INTRO El modelo E/R nos sirve para diseñar la BD, es decir, nos ayuda a pensar sobre el problema y a hallar una solución lo más adecuada posible. Pero este modelo no puede utilizarse directamente en el ordenador. Además cada empresa de software utiliza diferentes herramientas para crear la BD. En este apartado veremos cómo implementar la BD. Para ello debemos saber que correspondencia hay entre los elementos de nuestros diseños y los elementos que pone a nuestra disposición el SGBD. Nosotros vamos a utilizar ACCESS, que utiliza el MODELO RELACIONAL, en el que el elemento básico son las tablas. 4.2. TRANSFORMACIÓN. 4.2.1. ELEMENTOS. El modelo de ACCESS se compone de tres elementos básicos: tablas y claves ajenas. Las tablas están compuestas a su vez por columnas y filas. Las entidades son transforman en tablas. Los atributos son las columnas de la tabla. Cada atributo tiene un dominio. Un conjunto de ellos será la clave principal. Una fila representa una ocurrencia de la entidad. Las relaciones se modelan por medio de claves ajenas que veremos a continuación. 4.3.2. RELACIONES. Para relacionar dos entidades, en este caso dos tablas, se utilizan un conjunto de atributos que denominamos CLAVE AJENA. Lo que se hace es coger un atributo de una tabla y colocarlo en otra, de tal forma que la clave ajena se corresponde con el atributo de origen. Por tanto tenemos ya dos tipos de clave, la principal y la ajena. Debemos transformar las relaciones atendiendo a su tipo: 1/1. Uno con uno. Se crean dos tablas una para cada entidad. La clave principal de una de ellas pasa a la otra como clave ajena. En el ejemplo del apartado anterior tenemos: Si pasamos la clave principal de Tienda a Jefe tendríamos: Access utiliza dos símbolos: 1 e ∞. El ∞ es como N. Por tanto lo que dice el esquema superior es: Un jefe atiende una sola tienda, pero una tienda es atendida por infinitos jefes. Además debemos obligar a que en la tabla jefe, todo jefe tenga relleno el campo IdTienda pues la cardinalidad mínima es 1. En Access esto se consigue poniendo el atributo como requerido. Pero eso no es exactamente lo que nosotros queríamos. Probemos a poner la relación al revés. ¿Que indica el esquema anterior? ¿Qué es lo que me impide que un jefe mande varias tiendas, si la relación que vemos es 1,? Nada. Para ello hay que añadir una restricción, de tal forma que no se pueda repetir el valor de la clave ajena dentro de la tabla que la contiene. En este caso no se pueden repetir los valores de DNIJefe. En ACCESS esto se consigue poniendo como características del atributo(o campo): Indexado, con valor: Si( sin duplicados). 1/N. Uno con muchos. Se crean dos tablas una para cada entidad. La clave principal de la 9/12 1 Bach entidad con cardinalidad 1 pasa como clave ajena a la que tiene cardinalidad N. Es igual a la anterior estrategia, pero en este caso no podemos elegir donde va la clave ajena. Siguiendo con el ejemplo del apartado anterior, vamos a transformar los siguiente: Nos quedaría así: requeridas tantas como indique J. En realidad este caso incluye al anterior. Según lo anterior, ¿cómo se transformaría el siguiente esquema? N/N. Muchos con muchos. Se crean dos tablas, una para cada entidad. Además se crea una tabla que tendrá sendas claves ajenas apuntando a cada una de las claves primarias correspondientes de las entidades que asocia. Estas claves ajenas se convierten en claves ajenas en la nueva tabla. Teniendo esto: Además debemos obligar a que el campo Dependienta.IdTienda nunca pueda estar vacio, pues la cardinalidad mínima es 1. En la tabla tienda no se pueden repetir los valores de IDTienda, pero en cambio en Dependienta, los valores de IDTienda pueden estar repetidos, por lo que varias dependientas distintas pueden trabajar en la misma tienda. Obviamente en nuestra base de datos, habrá más dependientas que tiendas. Caso genérico Pero podemos tener el caso que las cardinalidades no sean 1,1, sino J:K, siendo J y K dos números concretos cualesquiera, como por ejemplo 2 y 3. Lo vemos en el siguiente diagrama. Nos quedaría: De esta forma un producto puede ser vendido por muchas dependientas y una dependienta puede vender distintos productos. Caso genérico Si las cardinalidades no son 1:N, sino J:N y K:N, siendo J y K dos números concretos cualesquiera. En este caso procederíamos de la siguiente manera: desde E2 hacia E1, pasamos tantas claves ajenas como indique K y se marcarán como 10/12 1 Bach Entonces hacemos una tabla con tantas claves ajenas procedentes de E1 como indique J y tantas de E2 como indique K, convirtiendose todas en claves principales de la nueva tabla. En caso de que J o K sean 0 se pasarán como mínimo una clave ajena. El caso de que una ocurrencia de E1 no se asocie con ninguna de E2 se refleja en que no existirá entrada para esa ocurrencia en la tabla, existiendo la ocurrencia en su propia tabla de entidad. Consideraciones - Cuando una clave principal de tipo autonumerico, pasa como ajena a otra tabla, en esta se define como numérico. - Para componer el nombre de la clave ajena utilizaremos el nombre de la clave principal, seguido de un guión y después el nombre de la entidad de la que proviene. - Las claves ajenas son también primarias solo en las tablas que provienen de una relación N/N. - La cardinalidad mínima se asegura poniendo las claves ajenas como requeridas. - Si la cardinalidad mínima es cero, entonces la clave ajena no se pondrá como requerida. 4.4. TIPOS DE DATOS El tipo de datos se asocia a cada atributo y determina los valores que este puede tomar. Es la correspondencia con el término dominio que hacen los sistemas comerciales. En ACCESS el tipo de datos se debe definir al crear un atributo y los más usados son: - Texto. Texto o combinaciones de texto y números, así como números que no requieran cálculos, como los números de teléfono. Solo permite hasta 255 caracteres. - Numérico. Datos numéricos utilizados en cálculos matemáticos. - Autonumérico. Valor numérico que aumenta automáticamente cuando se inserta una nueva fila. - Memo. Texto extenso de mas de 255 caracteres. - Fecha/hora. Tipo especial de datos para almacenar fechas. ¿Porque distintos tipos de datos? Porque aunque el atributo esté vacío ocupa el espacio reservado para el tipo de datos, por tanto estamos desperdiciando espacio. Siempre hemos de elegir el tipo de dato que más se ajusta a los datos que vamos a almacenar. 4.5. PASOS PARA LA RESOLUCIÓN DE LOS EJERCICIOS. Cuando resolvemos este tipo de ejercicios es útil proceder de manera ordenada, un posible orden de resolución es el siguiente: 1. Pasar las entidades a tablas y poner las claves. 2. Transformar las relaciones: 2.1. Las N/M a tablas. 2.2. Las 1/N transportan la clave a la 1:n. 2.3. Las 1/1 transportan la clave donde queramos. 3. Unir las tablas. 4. Determinar los tipos de datos. 4.6. EJEMPLO ESQUEMA FINAL ORDENADOR 11/12 1 Bach 4.7. PLANIFICACIÓN Y DD. Una de las tareas mas importantes de la informática es la planificación. Por ello antes de pasar a implementar la solución, vamos a estudiar esta por medio de los esquemas E/R, los esquemas relacionales como el anterior y por medio del DD. Por ello por cada problema tendremos tres documentos el primero el esquema E/R, después haremos el DD, continuamos con el relacional y volvemos a completar el DD. Vamos a completarlo con la información necesaria concerniente a las relaciones, es decir, indicando las tablas que provienen de una relación N/M, las claves ajenas y las restricciones sobre las claves ajenas. Por su parte los atributos que son claves ajenas se indican con #. Si algún atributo es requerido se indica poniendo /R detrás de su tipo de datos. Si algún atributo no se puede repetir, entonces se indica con /ND. Ten en cuenta que la clave principal nunca se puede repetir, así que no hace falta ponerle /ND. Para nuestro ejemplo el DD quedarías así: DICCIONARIO DE DATOS @Jefe DNI: CdC (9) Nombre: CdC (20) Apellido1: CdC (20) Apellido2: CdC (20) Titulación: CdC(50) Telefono: Num @Dependienta DNI: CdC (9) Nombre: CdC (20) Apellido1: CdC (20) Apellido2: CdC (20) #IdTienda: Num /R @Productos Codigo: Num Precio: moneda Nombre: CdC(30) Tipo: CdC(10) Cantidad: Num @Tienda Idtienda: Auto Ubicación: CdC (30) Tamaño: Num #DNI-Jefe: CdC(9) /R /ND $Vende: #Codigo-Producto: Num. #DNI-Dependienta: CdC(9) Como se puede observar que, por medio de $, se indica que la tabla vende proviene de una relación N/N. 12/12