1 00:00:00,000 --> 00:00:14,119 Buenas tardes a todos. Os convoco a una nueva grabación de un vídeo que he realizado para 2 00:00:14,119 --> 00:00:21,960 que nos quede bastante más claro lo que son las reglas de transformación de entidad relacional, 3 00:00:21,960 --> 00:00:27,480 modelo relacional. Este apartado, dentro de todo el contenido de la unidad 2, 4 00:00:27,480 --> 00:00:33,740 es bastante importante y he creído conveniente realizar este vídeo para que quede más claro. 5 00:00:36,060 --> 00:00:44,960 Vamos a pasar en este vídeo a recorrer todas las relaciones que hemos visto, NM, 1N, 1-1, 6 00:00:45,600 --> 00:00:53,579 y vamos a ver cómo se transforman. Veremos jerarquías, veremos exclusividad, inclusividad, etc. 7 00:00:53,579 --> 00:01:15,180 Y también las relaciones reflexivas. Vamos a coger todo ese tipo de relaciones y vamos a ver cómo se transforman al modelo relacional. Para ello empezamos con las relaciones NM. Estas son relaciones NM. Vamos a ver cómo se transforman al modelo relacional. 8 00:01:15,180 --> 00:01:21,480 aquí vamos a tener una regla general se van a transformar en una tabla siempre se transformarán 9 00:01:21,480 --> 00:01:28,319 en una tabla la clave de la tabla se forma cómo se va a formar esa clave se va a formar con la 10 00:01:28,319 --> 00:01:35,480 concatenación de las claves de las entidades que van a participar en dicha relación dichas claves 11 00:01:35,480 --> 00:01:42,019 son además claves ajenas que referencian a las tablas en las que son claves primarias el nombre 12 00:01:42,019 --> 00:01:46,799 el que vamos a asignar a la tabla será el que tenga la propia relación. 13 00:01:51,650 --> 00:01:54,609 Aquí tenemos un ejemplo en el que tenemos autores y libros. 14 00:01:54,609 --> 00:02:00,469 Vamos a comprobar primero que esa relación es una relación MN. 15 00:02:00,969 --> 00:02:09,669 Para ello vamos a ir de izquierda a derecha y podemos decir que un autor puede escribir 1 a N libros 16 00:02:09,669 --> 00:02:14,069 y un libro puede ser escrito por 1 a N autores. 17 00:02:14,069 --> 00:02:30,870 Por lo tanto, la relación es MN. Una vez que la tenemos, tenemos que pasarlo al modelo relacional, a generar tablas. Aquí tenemos la tabla autores, que sería esta derivaría de la entidad autor y que tiene su propia clave primaria. 18 00:02:30,870 --> 00:02:50,430 Y la otra sería libros con su propia clave primaria, código libro. Ahora hay que resolver esta relación MN creando, que hemos dicho anteriormente, una nueva tabla. Para crear esa tabla se obtenía concatenando el qué, las dos claves primarias de ambas entidades que están relacionadas. 19 00:02:50,430 --> 00:03:03,710 ¿Cómo se va a llamar esa relación? Esa nueva tabla se llamará igual que el nombre que tenía la propia relación. El nombre que tenía la propia relación era escriben. 20 00:03:03,710 --> 00:03:13,189 Entonces, por tanto, el nombre de la nueva tabla que se va a generar en el modelo relacional será escriben. 21 00:03:16,520 --> 00:03:24,120 Cogemos la primera clave primaria de una de las entidades y posteriormente cogemos la otra. 22 00:03:24,580 --> 00:03:32,319 Y obtenemos el que, la nueva tabla, para resolver una transformación de una relación MN al modelo relacional, 23 00:03:32,319 --> 00:03:39,240 generando una nueva tabla que se va a escribir con la concatenación de sus dos claves primarias. 24 00:03:40,219 --> 00:03:53,009 ¿Qué sucede cuando en la propia relación N-M tenemos ahora una dimensión temporal? 25 00:03:53,430 --> 00:03:55,610 ¿Esta dimensión temporal a qué se refiere? 26 00:03:55,610 --> 00:04:02,370 En algunos casos en el que la relación tenga lo que va a tener son una serie de atributos de tipo fecha. 27 00:04:02,370 --> 00:04:18,930 Esos atributos de tiempo-fecha le va a esa relación NM a darle una peculiaridad especial. Entonces, será necesario incluir el que, al menos una fecha como parte del atributo identificador. 28 00:04:18,930 --> 00:04:38,269 En otros casos la fecha puede ser una entidad más o solo un atributo. Tenemos aquí otro nuevo ejemplo en el que ahora la relación es cliente y vehículo. Lo primero que vamos a hacer es comprobar que esta nueva relación es una relación NM. 29 00:04:38,269 --> 00:04:55,790 Para ello, la entidad cliente puede alquilar 1 a n vehículos, o sea, que es correcto. Y un vehículo, además, puede ser alquilado por 1 a n clientes. Por tanto, la relación NM se comprueba que es así. 30 00:04:55,790 --> 00:05:12,209 Cada una de las entidades, la entidad cliente tendrá su propia clave primaria, que será código cliente, y en el caso de la entidad vehículo tendrá su clave primaria, que será matrícula. 31 00:05:12,209 --> 00:05:29,069 Bien, ya hemos situado el contexto de esta relación, pero ahora la diferencia que tenemos con respecto a la anterior es que tenemos ahora dos atributos propios, fecha inicio y fecha fin, que pertenecen a la relación alquila. 32 00:05:29,790 --> 00:05:37,649 Bien, ¿qué vamos a hacer ahora? Pues ahora, según hemos dicho anteriormente, hay que añadir uno de esos atributos propios dentro de la nueva tabla a crear. 33 00:05:37,649 --> 00:05:59,069 Aquí tenemos la nueva tabla a crear que será alquila, se llama exactamente igual que el nombre de la relación y dentro ya dijimos que una relación NM y se concatenaban tanto la clave primaria de una de las entidades con la clave primaria de la otra entidad. 34 00:05:59,949 --> 00:06:10,670 Además, en este tipo de casos donde está implicada una dimensión temporal, tendremos que añadir uno de los atributos propios. 35 00:06:10,670 --> 00:06:15,069 Aquí, en este caso, ha añadido fecha de inicio y luego veremos exactamente por qué. 36 00:06:16,970 --> 00:06:25,769 Transformación de la dimensión temporal. ¿Por qué ha añadido en la dimensión temporal la fecha de inicio? 37 00:06:25,769 --> 00:06:42,110 ¿Veis? Esta sería la nueva tabla que ha creado, que sería la llamada alquila, donde tiene código cliente y matrícula, que es exactamente igual a como sucedía en las primeras que hemos visto, pero al ver una dimensión temporal, añade fecha e inicio. 38 00:06:42,110 --> 00:06:45,769 Fecha inicio marca el momento en que comienza el alquiler 39 00:06:45,769 --> 00:06:49,250 Es el identificador natural del suceso 40 00:06:49,250 --> 00:06:52,069 Esto sería que cuando comienza 41 00:06:52,069 --> 00:06:56,310 Entonces, dos alquileres del mismo cliente sobre el mismo vehículo 42 00:06:56,310 --> 00:07:01,389 No pueden empezar el mismo día 43 00:07:01,389 --> 00:07:04,589 Eso es lógico 44 00:07:04,589 --> 00:07:07,470 Pero podrían terminar en fechas iguales 45 00:07:07,470 --> 00:07:11,649 Entonces, no nos importa el hecho de la fecha final 46 00:07:11,649 --> 00:07:27,569 porque ahí no habría problema, no sería un identificador único la fecha final, por esto que, como decimos aquí, se podría alquilar el mismo cliente dos vehículos y podrían terminar el mismo día. 47 00:07:27,569 --> 00:07:43,810 Pero, ¿qué sucede con que dos alquileres del mismo cliente sobre el mismo vehículo no pueden empezar el mismo día? Sobre distintos sí pueden finalizar. Entonces, por tanto, la fecha de inicio diferencia de manera inequívoca cada operación de alquiler. 48 00:07:43,810 --> 00:07:55,449 Me explico mejor. Tenemos que esta sería la nueva tabla que se ha creado con el nombre de alquila, con sus dos claves primarias de cada una de las entidades y con la fecha fin. 49 00:07:58,730 --> 00:08:12,449 Veis que he añadido los atributos propios, que hay que añadirlos a la nueva tabla, pero la única que pertenece a la clave primaria de la tabla sería fecha de inicio. 50 00:08:12,449 --> 00:08:36,730 Aquí tenemos un ejemplo en el que el código de cliente con la misma matrícula es el mismo coche. Veis la fecha de inicio, tú no puedes alquilar el mismo vehículo, no puedes hacer dos alquileres del mismo cliente sobre el mismo vehículo. 51 00:08:36,730 --> 00:08:49,330 Entonces, pero sí es posible que las realice en distintas fechas de inicio, pero que luego se puedan tener la misma fecha de fin. 52 00:08:49,330 --> 00:09:08,509 De ahí que fecha de inicio sea el único inequívoco de todos los atributos que se le va a añadir a la nueva tabla y fecha fin no. Se le añadían los dos, pero el único que se añade a toda la clave primaria sería el de fecha de inicio. 53 00:09:08,509 --> 00:09:14,419 Pasamos a las relaciones 1N 54 00:09:14,419 --> 00:09:20,460 Las relaciones 1N serían estas de aquí 55 00:09:20,460 --> 00:09:24,639 En el que lo que vamos a utilizar como norma general 56 00:09:24,639 --> 00:09:26,740 Se propaga la clave de la entidad 57 00:09:26,740 --> 00:09:29,620 Se va a propagar la clave de la entidad 58 00:09:29,620 --> 00:09:33,220 Que tiene cardinalidad máxima 1 59 00:09:33,220 --> 00:09:35,399 A la que tiene cardinalidad máxima N 60 00:09:35,399 --> 00:09:40,259 O sea que la fecha se va a realizar 61 00:09:40,259 --> 00:10:02,789 ¿Desde dónde? Hemos dicho desde la 1 a la n. Aquí tenemos el nuevo ejemplo en el que tendríamos que, vamos a comprobar que es una relación 1-n, un libro será editado, uno o más libros serán editados por una editorial. 62 00:10:02,789 --> 00:10:14,549 pero un libro será editado por una única editorial, pero una editorial puede editar uno o más libros. 63 00:10:14,629 --> 00:10:23,090 Por lo tanto, la relación 1-N es correcta. Estas serían las claves primarias, tanto de libro como de editorial. 64 00:10:23,629 --> 00:10:27,350 ¿Qué sucede? Estas serían sus dos tablas, cada una correspondiente a una, 65 00:10:27,350 --> 00:10:38,850 y lo único que se va a realizar, según lo que se realiza, según la norma general, es propagar la entidad que tiene coordinada de edilidad máxima 1, 66 00:10:38,990 --> 00:10:51,149 ¿cuál es? Sería la de editorial, se propagará su clave, o sea, código editorial, se propagará a la tabla de libro, donde está código libro. 67 00:10:51,149 --> 00:11:09,789 Por lo tanto, código editorial pasaría a libro. Veis aquí, editorial es la entidad con cardinalidad máxima 1, mientras que libro es la entidad con cardinalidad máxima n. 68 00:11:09,789 --> 00:11:33,809 Hemos dicho que para que se pueda resolver esta transformación al modelo relacional es necesario, no se va a crear ninguna tabla, se van a conservar las dos tablas que hay, pero hay que propagar la clave de la entidad de carnibilidad máxima 1 a la de N. 69 00:11:33,809 --> 00:11:46,090 O sea, sería así. ¿Veis? El código editorial que corresponde a la entidad editorial ha pasado ahora a la tabla de libro. 70 00:11:49,759 --> 00:12:02,539 Excepciones a estas relaciones 1N. Estamos con las relaciones 1N y en los siguientes casos interesa más crear una nueva tabla a partir de la relación. 71 00:12:02,539 --> 00:12:13,919 O sea, lo que vamos a convertir, acordaos, las relaciones N-M se transformaban como se generaba una nueva tabla en la que se concatenaban las dos claves primarias de las tablas implicadas. 72 00:12:15,120 --> 00:12:29,679 ¿Qué sucede? Que hay excepciones o casos donde es mejor crear una nueva tabla, o sea, transformar la relación 1-N, donde no se creaba una tabla, transformarla a una relación N-M. 73 00:12:29,679 --> 00:12:42,519 ¿Y eso cuándo ocurre? Eso ocurre cuando el número de ocurrencias de la entidad que propaga la clave es muy pequeño y cabe la posibilidad de que al propagar la clave quedan muchos valores repetidos o nulos. 74 00:12:42,519 --> 00:13:05,419 La otra posibilidad es que esa propia relación en un futuro se pueda convertir en una relación NM. Y la tercera excepción sería cuando la relación tenga atributos propios. Si vemos algún atributo propio en una relación 1N y hay un atributo propio en la misma, se transformará como una relación NM. Se creará una nueva tabla. 75 00:13:05,419 --> 00:13:14,490 Vamos a ver un ejemplo de una excepción de cada uno de los casos 76 00:13:14,490 --> 00:13:19,389 Hemos dicho que el primero era cuando el número de ocurrencias de la entidad que propaga la clave es muy pequeño 77 00:13:19,389 --> 00:13:23,590 Tenemos aquí el ejemplo de sindicato y empleado 78 00:13:23,590 --> 00:13:33,190 Vamos primero a comprobar que esa relación es una relación 1 a n 79 00:13:33,190 --> 00:13:48,669 Y para ello formulamos la relación sindicato. En un sindicato se puede afiliar uno o más empleados y un empleado se puede afiliar a un sindicato o no. Y estaría bien la relación. 80 00:13:48,669 --> 00:14:08,049 Por lo tanto, aquí, ¿qué tendríamos? Cuando el número de empleados, como hemos dicho antes, es muy pequeño, lo que sucede es que se puede transformar una relación 1 a n, se puede transformar en una relación m-n. 81 00:14:08,049 --> 00:14:29,450 Por tanto, aquí tenemos la tabla sindicato y la tabla empleado, en la que cada una tiene su clave primaria. Para transformar una relación que antes era 1N, pase a MN, se resolvía como creando una nueva tabla, con él el nombre de la tabla era el nombre de la relación. 82 00:14:29,450 --> 00:14:43,409 Entonces se creará la tabla afiliar y dentro de la tabla afiliar se cogerán ambas claves primarias y se añadirán como clave primaria de afiliar, o sea, la resolución de una tabla NM. 83 00:14:43,409 --> 00:14:47,629 ¿Qué sucede en la segunda excepción? 84 00:14:47,850 --> 00:14:54,490 Cuando en la segunda excepción sucedía cuando en el futuro se puede convertir en una relación NM 85 00:14:54,490 --> 00:14:59,990 Pues ahora es exactamente lo mismo, vamos a transformar esta relación 1N 86 00:14:59,990 --> 00:15:02,809 La vamos a transformar como en una MN 87 00:15:02,809 --> 00:15:09,230 Entonces, por tanto, aquí tenemos el ejemplo de dos entidades como proveedor y pieza 88 00:15:09,230 --> 00:15:12,149 Que están relacionadas con una relación 1AN 89 00:15:12,149 --> 00:15:33,850 Aquí, si veis, un proveedor puede suministrar una o más piezas y una pieza va a ser suministrada únicamente por un proveedor. Pero lo lógico es que esta relación en un futuro se vaya a convertir en una relación en M. 90 00:15:33,850 --> 00:16:00,230 O sea, es lógico que una misma pieza pueda ser proporcionada por distintos proveedores. Por ello, ahora transformaremos la relación 1N en una MN. ¿Cómo? Pues como se hacía al principio. Cogeremos las dos tablas y se migrarán las dos claves primarias a la nueva tabla creada, que sería con el mismo nombre que la relación suministra y con sus dos claves primarias. 91 00:16:00,230 --> 00:16:22,679 La tercera excepción en la que se va a transformar una relación 1 a n en una relación n a m, pues lo que tenemos es que será cuando la relación tenga atributos propios. 92 00:16:22,679 --> 00:16:34,179 Veis aquí que aquí tenemos una serie de atributos propios dentro de la relación, una serie de atributos propios dentro de la relación prestar, que sería fecha de inicio y fecha de fin. 93 00:16:34,639 --> 00:16:47,740 Lo hemos visto antes con alumno, entonces, no, esta relación es distinta. Sería un alumno puede prestar cero o más ejemplares y un ejemplar puede ser prestado por un alumno o no. 94 00:16:47,740 --> 00:17:14,859 Entonces, esa sería una relación 1-N y un alumno puede retirar varios ejemplares. No se recoge la dimensión temporal aquí. Por tanto, ¿qué sucede? Esta sería, podríais decirme, es parecida a la que hemos visto antes del alquiler de coches, pero en el alquiler de coches sí era vital recoger la dimensión temporal. 95 00:17:14,859 --> 00:17:30,799 Aquí no es necesario o no se ajusta este ejemplo de relación en el que estos atributos propios o la fecha de inicio sea clave para la distinción entre prestar un ejemplar o no por un alumno. 96 00:17:30,799 --> 00:17:46,359 Por tanto, ¿qué sucede? Sucede que se podría, al no existir esa dimensión temporal, a pesar de existir estos dos atributos propios dentro de la relación prestar, se podría transformar en una relación MN. 97 00:17:46,359 --> 00:18:06,819 Aquí tenemos que para transformar la relación MN, migrarían las dos claves primarias de las dos tablas implicadas, de alumno y de ejemplar, y se le añadirían además a la tabla creada o prestar, se le añadirían los atributos propios que tiene y se le añadirían, pero no como clave primaria. 98 00:18:06,819 --> 00:18:18,140 Relaciones, seguimos con las relaciones 1n, en el que vamos a ver con respecto a las cardinalidades que sucede 99 00:18:18,140 --> 00:18:32,700 Cuando la entidad que tiene cardinalidad máxima 1, que tiene también una cardinalidad máxima o mínima también de 1 100 00:18:32,700 --> 00:18:46,829 ¿Qué sucede? Que tenemos que tener en cuenta que al propagar la clave, que en la tabla que recibe la clave, como clave ajena no pueda tener valores nulos. 101 00:18:47,170 --> 00:18:56,150 Explicaremos por qué. Aquí tenemos una relación en la que es una relación 1 a n. Vamos a comprobarlo. Editorial ya lo hemos comprobado anteriormente. 102 00:18:56,150 --> 00:19:03,950 Editorial edita cero o más libros y un libro puede ser editado nada más que por una editorial. Por tanto, estas serían sus claves primarias. 103 00:19:04,009 --> 00:19:24,569 Y que sucede que ahora tenemos que se va a resolver como una relación 1 a n. Esa relación a 1 a n no se creaba una tabla nueva y migraba la clave primaria de una de las entidades o de una de las tablas migraba a la otra. 104 00:19:24,569 --> 00:19:41,230 ¿De dónde migraba? Migraba siempre desde la entidad con una cardinalidad 1 a la n. Aquí lo tenemos, por tanto, el libro que es la que tiene n, hemos migrado la clave primaria de editorial a la de libro. 105 00:19:41,230 --> 00:20:04,349 Pero nos está diciendo que cuando la entidad que tiene cargabilidad máxima 1 y tiene también 1 de cargabilidad mínima, que actúa como clave ajena y que está insertada dentro de la tabla libro, tiene que tener una condición que sea no nula. 106 00:20:04,349 --> 00:20:19,369 Vamos a ver ahora por qué. Aquí entra la cardinalidad mínima 1-1 del lado de la editorial. ¿Qué sucede con el lado de la editorial? Significa que todo libro debe tener exactamente una editorial. Es decir, no puede existir un libro sin editorial. 107 00:20:19,369 --> 00:20:39,250 Por tanto, propagar la clave primaria COT editorial a la tabla libro tenemos que garantizar que no admita nulos, ya que si fuera nulo, ¿qué estaríamos haciendo? Estaríamos permitiendo que existan libros sin editorial asignada, lo cual viola la restricción del modelo. 108 00:20:39,250 --> 00:20:49,470 ¿Cómo se lograría esta restricción? Se lograría por medio de un check o habría que hacer con software dicha restricción. 109 00:20:50,809 --> 00:21:01,029 La segunda casuística o cardinalidad es cuando la entidad que tiene cardinalidad máxima, esta de aquí, tiene la cardinalidad mínima 1. 110 00:21:01,029 --> 00:21:03,930 entonces tendremos que controlar por software 111 00:21:03,930 --> 00:21:07,309 que al dar de alta una fila de la otra tabla 112 00:21:07,309 --> 00:21:09,289 se introduzca al menos una fila en esta 113 00:21:09,289 --> 00:21:12,150 vemos aquí exactamente igual que antes 114 00:21:12,150 --> 00:21:14,009 editorial con código editorial y libro 115 00:21:14,009 --> 00:21:16,190 que era la cargada de la leída N 116 00:21:16,190 --> 00:21:21,170 la que se migraba a la otra clave primaria 117 00:21:21,170 --> 00:21:22,569 de editorial se migraba al libro 118 00:21:22,569 --> 00:21:25,130 cuando sucede esto 119 00:21:25,130 --> 00:21:30,250 tiene que cumplir que código editorial sea no nulo 120 00:21:30,250 --> 00:21:52,630 Y eso se tendría que controlar por medio de software. ¿Qué sucede aquí? Pues que hay un nuevo problema, que hay que garantizar que la editorial tenga al menos un libro. O sea, antes estábamos hablando que era necesario que la editorial por lo menos editara un libro, ahora aquí lo que estamos intentando garantizar es que la editorial tenga al menos un libro. 121 00:21:52,630 --> 00:22:09,369 Entonces, el modelo de entidad de relación indica que una editorial debe editar al menos un libro, de 1 a n. Entonces, las restricciones de integridad referencial por sí solas no pueden garantizar esto. Entonces, ¿cómo se haría esto? Para que por lo menos haya una fila, pues habría que hacerlo por medio de software. 122 00:22:09,369 --> 00:22:21,289 Pasamos a las relaciones 1 a 1 en el que no hay una regla fija 123 00:22:21,289 --> 00:22:24,210 Ahora aquí no hay una regla fija 124 00:22:24,210 --> 00:22:28,349 Puede optarse por la solución basada o bien recoger la mayor cantidad de semántica posible 125 00:22:28,349 --> 00:22:34,210 Tener en cuenta las características mínimas, evitar los valores nulos o por motivos suficientes 126 00:22:34,210 --> 00:22:59,650 Bien, cuando las cardinalidades de ambas entidades son 1-1, aquí lo tenemos, cuando las cardinalidades de ambas entidades son 1-1, se van a poder adoptar distintas soluciones. 127 00:22:59,650 --> 00:23:15,890 ¿Cuáles son esas soluciones? Que no se necesiten dos tablas, se puede crear una única tabla en la que se incluyan los atributos de las dos entidades, como habíamos hablado de las NM, cuya clave principal será cualquiera de los dos atributos identificados principales. 128 00:23:15,890 --> 00:23:22,029 ya no la suma, sino que puede ser uno o el otro. Entonces tendríamos cualquiera de los 129 00:23:22,029 --> 00:23:27,650 atributos identificadores principales. Bien, ¿qué tenemos que...? La segunda opción 130 00:23:27,650 --> 00:23:35,089 sería propagar la clave de cualquiera de ellas a la otra tabla, teniendo en cuenta 131 00:23:35,089 --> 00:23:39,170 a cuál de ellas se efectúan los accesos más frecuentes. Y por último tendríamos 132 00:23:39,170 --> 00:23:45,390 propagar las dos claves. Vamos a ver cada uno de los ejemplos y el primero de ellos, 133 00:23:45,390 --> 00:24:10,769 Estamos hablando de una cardinalidad, o sea, de una relación 1-1. La primera solución que se puede adoptar sería la solución A y en esta, en la que hablábamos, aquí vamos a comprobar que es una relación 1-1, un esposo tiene que estar casado con una esposa y una esposa estará casada con un esposo. 134 00:24:10,769 --> 00:24:25,410 Tiene que ser 1, 1, 1, 1. ¿Por qué? Porque si está casado tiene que haber mínimo un esposo y mínimo una esposa. La primera solución es, hemos dicho que era crear una nueva tabla. La nueva tabla aquí la ha llamado estar casado. 135 00:24:25,410 --> 00:24:42,250 Esa tabla tendría el que, se cogerían las dos claves primarias, código esposo y código esposa, y se cogería una de ellas, se añadirían las dos a la propia tabla, pero solo una de ellas se actuaría como clave primaria, siempre la que hay mayor semántica. 136 00:24:42,250 --> 00:24:47,430 En el segundo caso tendríamos el qué 137 00:24:47,430 --> 00:24:49,829 En el segundo caso tendríamos la segunda solución 138 00:24:49,829 --> 00:24:52,890 Tendríamos ahora que no se crea una nueva tabla 139 00:24:52,890 --> 00:24:54,190 Sino que lo que va a tener es 140 00:24:54,190 --> 00:24:56,490 Se mantienen las dos tablas que había 141 00:24:56,490 --> 00:24:58,769 Esposo y esposa 142 00:24:58,769 --> 00:25:03,349 Cada una con su clave primaria 143 00:25:03,349 --> 00:25:06,170 Y luego en uno de ellos se repetiría 144 00:25:06,170 --> 00:25:08,849 O migraría el otro código de la otra entidad 145 00:25:08,849 --> 00:25:11,369 Y migraría a una de las tablas 146 00:25:11,369 --> 00:25:21,809 La tercera solución sería esta de aquí en el que tendríamos que ahora tampoco se va a crear una nueva tabla 147 00:25:21,809 --> 00:25:33,829 se mantiene también la tabla esposo, la tabla esposa y ahora lo que se hace es que se migra ambos dos como claves ajenas 148 00:25:33,829 --> 00:25:43,829 Se migra en esposo, recibe la clave primaria de COD esposa y en el COD esposa la de COD esposo. 149 00:25:43,829 --> 00:25:59,200 ¿Qué sucede ahora cuando las cardinalidades de ambas entidades, ahora ya estamos hablando de, antes era una relación en la que las cardinalidades eran la mínima y máxima 1-1, 150 00:25:59,200 --> 00:26:10,240 ahora estamos hablando de que nos vamos a introducir a una relación en la que ambas entidades van a tener una cardinalidad mínima de 0 y una máxima de 1. 151 00:26:10,839 --> 00:26:13,599 Esta sería la relación hombre-mujer y matrimonio. 152 00:26:14,160 --> 00:26:21,140 Ahora, un hombre puede tener matrimonio con una mujer o no, y la mujer a su vez al revés también. 153 00:26:21,140 --> 00:26:28,619 Sigue siendo esto una relación uno a uno, pero ahora las carácteres máximas y mínimas son diferentes. 154 00:26:28,799 --> 00:26:30,960 Ya no es uno-uno, sino que sería cero-uno. 155 00:26:31,779 --> 00:26:32,980 ¿Qué tendríamos aquí? 156 00:26:32,980 --> 00:27:00,700 ¿Qué podríamos hacer? Transformarla de distintos tipos. Crearíamos una nueva tabla, que sería la tabla matrimonio, en la que lo que haría es coger las dos claves primarias de hombre y de mujer y las introduciría dentro o las migrarían a la nueva tabla matrimonio. 157 00:27:00,700 --> 00:27:05,000 Y tendríamos a su vez también la tabla hombre y mujer, cada una con sus claves primarias. 158 00:27:07,240 --> 00:27:16,740 Si una, ¿qué sucede cuando tenemos una cardinalidad? Una de ellas es 1-1 y la otra es 0-1, como aquí, como empleado departamento. 159 00:27:17,279 --> 00:27:25,640 Ahora, empleado, un empleado puede ser responsable de un departamento o no, pero en un departamento siempre tiene que haber un responsable que sea un empleado. 160 00:27:25,640 --> 00:27:45,019 Entonces, ¿ahora cómo se resuelve? En la resolución de esta relación 1-1 se va a propagar la clave de la entidad que tiene la cardinalidad 1-1 a la que tiene la 0-1. O sea, que tendríamos que esto iría así. 161 00:27:45,019 --> 00:27:59,869 Bien, como vemos, no se crea ninguna tabla, sino que se mantiene la tabla empleado y la tabla de departamento, cada uno con sus claves primarias. 162 00:27:59,869 --> 00:28:13,150 lo que sucede es que ahora de la entidad con cardenalidad 1.1 se migra su clave primaria a la 0.1 163 00:28:13,150 --> 00:28:18,769 y con ello tenemos que departamento tendrá, además de código departamento, tendrá COD empleado. 164 00:28:20,750 --> 00:28:24,950 Habrá que controlar, además, como sucedía en los casos que hemos visto anteriormente, 165 00:28:24,950 --> 00:28:28,490 que la clave propagada no puede tomar valores nulos. 166 00:28:34,900 --> 00:29:05,910 Vamos a pasar ahora a las interrelaciones reflexivas. Estas interrelaciones reflexivas es cuando ahora lo que tenemos es una, en estas interrelaciones reflexivas lo que vamos a tener es que solo va a participar una sola entidad. 167 00:29:06,910 --> 00:29:21,470 En eso se caracteriza una interrelación reflexiva. Como regla general, toda relación reflexiva se convierte, siempre como regla general se va a convertir, la relación reflexiva se convierte en dos tablas. 168 00:29:21,470 --> 00:29:27,269 Una será para la entidad y otra para la relación 169 00:29:27,269 --> 00:29:38,369 Se pueden presentar diversos casos en el que tendremos cuando una relación es 1-1, cuando una relación es 1-N o cuando una relación es M-N 170 00:29:38,369 --> 00:29:46,950 aquí tenemos el caso de una relación 1-1 171 00:29:46,950 --> 00:29:50,390 en el que no se va a crear ninguna tabla para la relación 172 00:29:50,390 --> 00:29:51,529 ya lo hemos dicho anteriormente 173 00:29:51,529 --> 00:29:56,349 la clave de la entidad lo que va a hacer es que se va a repetir 174 00:29:56,349 --> 00:30:01,710 con lo que la tabla resultante tendrá ese atributo dos veces 175 00:30:01,710 --> 00:30:07,329 entonces aquí tenemos una persona con una relación 1-1 176 00:30:07,329 --> 00:30:13,650 en el que la cardinalidad mínima y máxima es 0-1, en el que una persona puede estar casada con otra persona o no. 177 00:30:14,309 --> 00:30:18,470 Y esa sería la propia interrelación reflexiva. 178 00:30:18,470 --> 00:30:30,470 Aquí tendríamos una tabla en la que la que tendríamos sería la propia tabla persona 179 00:30:30,470 --> 00:30:37,609 y en el que habría que añadir la clave de dicha entidad o la clave primaria repetida. 180 00:30:39,430 --> 00:30:45,630 Por ello, habría que añadir DNI persona y DNI persona pero correspondiente a la esposa. 181 00:30:46,029 --> 00:30:51,750 Hemos creado una tabla que sería la tabla persona con la propia clave repetida dos veces. 182 00:30:53,130 --> 00:30:55,849 Eso sería para unas relaciones uno a uno. 183 00:30:55,849 --> 00:31:13,529 ¿Qué sucede cuando la relación reflexiva es una relación 1 a n? Cuando tenemos que la relación es 1 a n, en este caso hay que tener en cuenta la cardinalidad del lado de muchos. Muy importante la cardinalidad del lado de muchos. 184 00:31:13,529 --> 00:31:20,150 Aquí tenemos un ejemplo en el que tenemos tema, un tema consta de uno o más temas. 185 00:31:21,150 --> 00:31:29,150 Podría ser, en este caso, 0n o 1an. Podría constar de cero o más temas o de uno como mínimo o más temas. 186 00:31:30,329 --> 00:31:39,170 ¿Eso qué conlleva? Eso lo que nos está diciendo es si estamos hablando de lo que se llama obligatoriedad. 187 00:31:39,170 --> 00:31:58,329 En el caso de que no sea obligatorio eso, se crea una nueva tabla cuya clave será la de la entidad del lado de muchos. Nueva tabla con la clave de muchos. Y se propaga la clave a la nueva tabla como clave ajena. 188 00:31:58,710 --> 00:32:05,369 ¿Qué sucede si siempre es obligatoria? Pues que no se va a crear, no creamos tabla. 189 00:32:06,130 --> 00:32:16,549 Bien, aquí tenemos el caso de la relación que he dicho anteriormente y pongamos en la primera solución en el que no es obligatoria. 190 00:32:16,549 --> 00:32:20,730 Por lo tanto, la calidad mínima sería 0 o 1, no es obligatoria. 191 00:32:20,730 --> 00:32:46,109 Por tanto, hemos dicho que se va a crear una nueva tabla, que se llamaría igual que la relación, que se llama consta, y que va a tener el qué. Va a tener tanto su propia clave primaria más la clave repetida, que sería repetida dos veces. 192 00:32:46,109 --> 00:32:49,049 después tendríamos la otra tabla 193 00:32:49,049 --> 00:32:50,990 tema que tendríamos que 194 00:32:50,990 --> 00:32:53,009 estaría sin repetir 195 00:32:53,009 --> 00:32:54,750 ¿qué sucede cuando 196 00:32:54,750 --> 00:32:55,890 la 197 00:32:55,890 --> 00:32:58,730 ¿qué sucede en la 198 00:32:58,730 --> 00:33:00,829 bueno, antes de llegar a la solución B 199 00:33:00,829 --> 00:33:02,230 en la relación 200 00:33:02,230 --> 00:33:06,470 tendríamos aquí la 201 00:33:06,470 --> 00:33:08,829 bueno, la voy a contar también en cuanto a la 202 00:33:08,829 --> 00:33:10,890 solución B, que sería esta otra 203 00:33:10,890 --> 00:33:13,410 es cuando la calidad mínima 204 00:33:13,410 --> 00:33:15,029 es 1, entonces cuando 205 00:33:15,029 --> 00:33:26,930 la calidad mínima es 1, no es necesario crear la tabla consta y tendríamos que crear, solo tendríamos la tabla tema con sus claves repetidas, como sucedía al principio que he explicado. 206 00:33:26,930 --> 00:33:45,410 Bueno, hablamos ahora de la obligatoriedad. ¿Qué sucede con respecto a ser obligatoria o no? ¿Qué quiere decir obligatoria? Que la participación en la relación es obligatoria. ¿Qué quiere decir? Que no puede existir un registro que no esté relacionado con otro. 207 00:33:45,410 --> 00:34:02,009 No puede existir un registro que no esté relacionado con otro. En este caso, todo tema debe depender de otro tema. Aquí tenemos un ejemplo en el que tenemos el caso de varios temas, programación, Java, bloques en Java. 208 00:34:02,009 --> 00:34:18,079 Si la relación es obligatoria, el primer tema de programación no podría tener código tema superior nulo. En cambio, si la relación es no obligatoria, sí podría tenerlo, porque no depende de ningún otro tema. 209 00:34:18,079 --> 00:34:34,619 La transformación de una interrelación reflexiva con respecto a una relación 1-n en el segundo caso. 210 00:34:34,619 --> 00:34:57,599 Bueno, hemos visto que se podía obtener en cuenta la cardinalidad del lado de muchos. Hemos visto que podría suceder que fuera 0n o 1n. Cuando la cardinalidad mínima era 0 o 1, habíamos visto que habría que crear una nueva tabla con la clave repetida. 211 00:34:57,599 --> 00:35:18,760 Pero ¿qué sucede cuando la cardinalidad dentro de las relaciones 1 a n, cuando la cardinalidad del lado n, la mínima es 1? Pues lo que sucede es que no es necesario generar una nueva tabla y se resolvería repitiendo en la misma tabla generada a través de la entidad tema, repitiendo la clave primaria. 212 00:35:18,760 --> 00:35:26,099 Nos quedarían las interrelaciones reflexivas N-M 213 00:35:26,099 --> 00:35:32,199 Estas interrelaciones N-M en la tabla, ¿cómo va a resultar? 214 00:35:32,920 --> 00:35:38,559 La tabla que resulta de la relación contendrá dos veces la clave primaria de la entidad del lado de muchos 215 00:35:38,559 --> 00:35:45,280 Aquí tenemos el ejemplo en el que una pieza se compone por de 1 a N piezas 216 00:35:45,280 --> 00:36:03,059 Y a su vez, estas estarán compuestas también de piezas. ¿Cómo se resuelve esto? Se va a resolver a través de, se va a componer repitiendo dos veces la clave primaria de la entidad del lado de muchos. 217 00:36:03,059 --> 00:36:09,599 Si tuviera atributos de la propia relación se repetirían si los hay 218 00:36:09,599 --> 00:36:12,840 La clave de esta nueva tabla será la combinación de las dos 219 00:36:12,840 --> 00:36:23,119 Si veis aquí tenemos la propia entidad pieza que se ha transformado en la tabla pieza 220 00:36:23,119 --> 00:36:27,760 Con su propio código y con los propios atributos que pueda tener que no sean clave primaria 221 00:36:27,760 --> 00:36:42,980 Y luego, por otro lado, tendríamos el caso de se compone, que sería la tabla que se ha creado, en el que tendríamos con la suma de la clave primaria repetida dos veces. 222 00:36:43,860 --> 00:36:53,679 Bien, antes de pasar a dependencias, quiero hacer un repaso de nuevo de las reflexivas para que nos queden más claras. 223 00:36:57,760 --> 00:37:04,599 Hemos visto que había tres tipos de relaciones, que eran las relaciones 1-1, relación 1-N y relación M-N. 224 00:37:04,599 --> 00:37:17,519 Cuando teníamos una relación 1-1, no se generaba en ninguna tabla, sino que la propia entidad de personas era la propia tabla donde se repetía el atributo dos veces. 225 00:37:17,739 --> 00:37:20,679 Para la relación 1-1 está claro que sería así. 226 00:37:21,460 --> 00:37:25,079 Con respecto a la 1-N, había dos soluciones. 227 00:37:25,079 --> 00:37:45,019 Una, si era obligatoria o no. Si no era obligatoria, se creaba una nueva tabla en la que teníamos la propia tabla tema, la propia entidad tema, con su propia clave primaria. 228 00:37:45,019 --> 00:37:55,440 y luego se creaba otra tabla de la relación con el mismo nombre donde se conjugaba o se repetía ambas claves primarias. 229 00:37:55,440 --> 00:38:00,000 Lo que pasa es que una sería la clave primaria y la otra actuaría como clave ajena. 230 00:38:00,940 --> 00:38:03,880 ¿Qué sucedía en la solución 2? 231 00:38:03,940 --> 00:38:14,800 En la solución 2 o solución B, cuando la cardinalidad era 1, o sea, cuando era obligatoria, no se creaba ninguna tabla. 232 00:38:15,019 --> 00:38:18,199 Y se mantenía como hemos visto en las relaciones 1 a 1. 233 00:38:18,199 --> 00:38:27,780 Lo que pasa es que si vemos las relaciones 1 a 1, se repetía la clave, en la que esta era clave primaria y esta era clave ajena. 234 00:38:28,719 --> 00:38:32,840 Y aquí exactamente igual, lo que obtenemos es el mismo tipo. 235 00:38:32,960 --> 00:38:39,900 Con lo cual, en una relación 1 a n que sea obligatoria, actúa como una relación 1 a 1. 236 00:38:39,900 --> 00:38:45,320 En una relación 1 a n, que no es obligatoria, se tenía que crear la nueva tabla. 237 00:38:46,320 --> 00:38:54,260 Por último, teníamos las relaciones n, m, en las que las relaciones n, m siempre se va a crear una nueva tabla. 238 00:38:54,639 --> 00:39:01,840 Y esa nueva tabla, en las relaciones n, m, ahora tenemos que la clave primaria contiene la suma de ambas claves, 239 00:39:02,079 --> 00:39:05,599 o de la clave primaria repetida dos veces. 240 00:39:05,599 --> 00:39:17,599 Fijaos la diferencia entre la solución de las relaciones 1 a n no obligatorias 241 00:39:17,599 --> 00:39:23,400 en el que solo una de ellas es la clave primaria y la otra sería una clave ajena 242 00:39:23,400 --> 00:39:27,380 mientras que en el caso de las relaciones n a m 243 00:39:27,380 --> 00:39:33,699 la nueva tabla que se crea fruto de la relación es la clave primaria es la suma de las dos 244 00:39:33,699 --> 00:39:36,739 La clave de esta nueva tabla será la combinación de las dos 245 00:39:36,739 --> 00:39:38,019 ¿Veis la diferencia, verdad?