[RESUELTO]Relación uno a uno en base

Discute sobre las herramientas de la base de datos
Responder
mallamasj70
Mensajes: 11
Registrado: Mar Dic 19, 2017 5:29 pm

[RESUELTO]Relación uno a uno en base

Mensaje por mallamasj70 »

Muy buenas,

He estado leyendo el foro pero no encuentra una solución a crear relaciones uno a uno en base.
Pongo la clave foránea como índice único pero cuando, en relaciones, uno esa clave con la clave principal en otra tabla, no se crea la relación 1 a 1, aparece la relación 1 a muchos.
En el manual de base he visto cómo hacer relaciones 1 a muchos o muchos a muchos, pero nada de cómo realizar relaciones 1 a 1.

¿No se pueden realizar ese tipo de relaciones en openOffice? ¿No se está trabajando en arreglar eso?

Muchas gracias.
Última edición por mallamasj70 el Lun Feb 05, 2018 2:47 pm, editado 1 vez en total.
openOffice 4.1.4 - windows 10
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Relación uno a uno en base

Mensaje por RMG »

Hola,

Si se puede.
Adjuntos
relacion.png
relacion.png (3.24 KiB) Visto 8211 veces
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
mallamasj70
Mensajes: 11
Registrado: Mar Dic 19, 2017 5:29 pm

Re: Relación uno a uno en base

Mensaje por mallamasj70 »

Eso no me vale, ya sé hacerlo yo.

¿Me puedes enseñar lo mismo pero sin dos claves primarias interviniendo en la relación?

Una sería una clave primaria, pero la otra sería una clave foránea que no sea primaria.

Te pongo un ejemplo:

Tabla profesor:
IdProfesor(clave primaria)
nombre
etc...

Tabla curso:
IdCurso(clave primaria)
Nombre
IdProfesorTutor(esta no es clave primaria, solo clave foránea).

El supuesto para la relación profesor-curso es que un curso solo puede tener un profesor como tutor y un profesor solo puede ser tutor de un curso, no de más de un curso. Eso significa que el campo "IdProfesorTutor" en la tabla curso sería clave única y además clave foránea, pero no es primaria.

Si estableces la relación a mí por lo menos, no me sale de uno a uno.... ¿te sale a tí?

Saludos y gracias.
openOffice 4.1.4 - windows 10
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Relación uno a uno en base

Mensaje por RMG »

Hola,

Creo que esto puede ser tu solución. Debes hacer la relación entre las claves primarias, según mi imagen. Con el indice único evitas repetir curso.

Tabla profesor:
IdProfesor(clave primaria)
nombre
etc...

Tabla curso:
IdCurso(indice valor único)
Nombre
IdProfesorTutor(clave primaria)

Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
mallamasj70
Mensajes: 11
Registrado: Mar Dic 19, 2017 5:29 pm

Re: Relación uno a uno en base

Mensaje por mallamasj70 »

Hola de nuevo,

gracias por responder tan pronto.

No se debe poner como clave primaria, pues el tutor del curso no identifica al curso. Realmente no es una solución, es un parche. Imagínate que el curso se está usando en otras tablas como clave foránea y el profesor, simplemente pierde su vocación y decide dedicarse al transformismo, especializando en Lola Flores (por poner un ejempo), ¿qué hacemos ahora?. El curso debe tener su propio identificador y el profesor el suyo.

Una regla fundamental en las bases de datos relacionales es que cada tabla debe tener su propio identificador, clave primaria, elegida de entre las claves candidatas que puedan existir en la tabla y aunque una clave foránea puede ser parte de una clave primaria, nunca debe ser, únicamente, la clave primaria en otra tabla, solamente en la suya.

Lo que me viene a demostrar que efectivamente en base no se pueden poner las relaciones 1 a 1. En Access sí que se puede, pruébalo.

Y no te digo nada en las bases de datos de verdad.... mysql, oracle, postgreSQL, etc....

Un saludo amigo/a
openOffice 4.1.4 - windows 10
Longi
Mensajes: 804
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Relación uno a uno en base

Mensaje por Longi »

Sin entrar en discusiones teóricas sobre bases de datos, si un curso puede cambiar de profesor y un profesor no puede cambiar de curso, el asunto sería una relación uno a muchos pero por el curso...
De todos modos, podría ponerse un campo en la tabla de cursos con el profesor, y éste rellenarlo con un cuadro de lista, donde esten los profesores, que a su vez salen de una tabla, donde cada uno tiene sus propias características (dirección, teléfono, aficiones.....)
No soy un teórico ni soy capaz de imaginarme el universo de posibilidades que ofrecen las bases de datos, pero nunca entendí las relaciones uno a uno, ya que viene a ser una tabla partida en dos (un registro relacionado con otro de forma unívoca). Me resulta más sencillo de entender todo en una sola tabla.

Seguiré el hilo a ver en qué acaba.

Un saludo!
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Relación uno a uno en base

Mensaje por RMG »

Hola,

Pues efectivamente como tu dices, en Acces si se puede, lo tienes muy fácil, lo compras y solucionado.

Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Relación uno a uno en base

Mensaje por RMG »

Y si se busca, muchas veces se encuentra la solución. Otra cosa es que te pueda o no gustar. Mira el ejemplo.

Saludos
Adjuntos
Cursos.7z
(6.44 KiB) Descargado 334 veces
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
mallamasj70
Mensajes: 11
Registrado: Mar Dic 19, 2017 5:29 pm

Re: Relación uno a uno en base

Mensaje por mallamasj70 »

Je je je

Lo de que te la compres ha sido una contestación muy buena, si señor, vaya vaya.

¿A ti te pagan los de OpenOffice o qué?

Pero bueno, ¿es que esto lo usa alguien de forma profesional?

Madre mía, yo tengo la carrera universitaria de informática, he trabajado varios años con base de datos relacionales ( Oracle, DB2 y mySQL) y llevo 12 años como profesor de informática, tanto en ciclo de grado medio como superior de informática (oposicones aprobadas para ello) y jamás, vamos, jamás recomendaría usar este software, no se puede llamar gestor de bases de datos ni de coña, de forma profesional.

Concluyendo, y aunque esto te duela.... creo que no lo tienen implementado y que como los de Oracle miran la pela por encima de todo, no lo van a hacer.

Lo importante es su producto estrella, la base de datos Oracle, que esa sí que es buena y de calidad, pero nada de los demás programas que hacen merecen la pena.

Pues sí, voy a tratar por todos los medios de que en mi centro compren Office, una pena, pero viendo las alternativas, no queda más remedio....

Ahora les estoy enseñando las consultas a mis alumnos y la verdad, también está fallando bastante, de hecho son los alumnos los que me piden que cambiemos por los problemas que está dando.
openOffice 4.1.4 - windows 10
xiseme
Mensajes: 1918
Registrado: Lun Nov 24, 2008 1:13 pm

Re: Relación uno a uno en base

Mensaje por xiseme »

:shock: :D :mrgreen: :crazy:
Visto que es fin de semana y asueto "per me".... Siendo eterno aprendiz por más de dos docenas de años ... esto me recuerda ...

[modo batallitas on]
Hace ya más una docena de años me inscribí en un curso de «Bases de datos relacionales».
Lo impartió con OpenOffice Base alguien que reconoció no saber gran cosa del programa, dado que él de lo que sí sabía, era de bases Oracle. Ni que decir tiene, que en mi caso, poco aprendí (algo sí, siempre-siempre se aprende si se acierta a mirar bien)
Lo triste que los demás alumnos se quedaron con la idea de que Base era complicado (y tristemente yo, con que las complicadas eran las "bases de verdad")
Todo porque el profesor no sabía. Sí: ¡no sabía! Sabría de Oracle pero de lo que se trataba... ¡no!
A mis reproches la respuesta del impartidor fué: "en mi empresa nos ganamos la vida dando cursos y el de bases de datos soy yo"

También me recuerda los piques, Matemáticos vs. Físicos. Físicos vs Ingenieros. Ingenieros vs Arquitectos y la controversia con las competencias laborales de informáticos e ingenieros industrales (esto último "in spain only", o eso creo)
[modo batallitas off]

Es claro que Base no es una base de datos profesional. Es una ovbiedad. Tan ovbio como que Access tampoco lo es. Y aún así se pueden conseguir cosa bien útiles con ellas. Una la compras (de piratear nada) la otra ... la disfrutas y/o la mejoras que para eso es software libre (que no necesariamente gratis) como lo son PostgreSQL, MariaDB, SQLite...

Para aprender/enseñar a conducir no hace falta un super-auto. Basta un buen utilitario, tenga o no tenga AC, ABS, ESP, ESR, o sensorround :D
Un magnífico piloto de fórmula-1 puede ser (o no) pésimo circulando en carretera; lo que es seguro es que no esperará lo mismo de un "coche de calle".

P.D.: Oracle* no tiene que nada ver con OpenOffice . Aquella se limitó a comprar un competidor (Sun) que a su vez había comprado MySQL y donar OpenOffice a la Fundación Apache

*Salvo para fastidiar durante algún tiempo el trabajo de la comunidad e ingenieros de Sun
Todo es mejorable, estamos dispuestos a mejorar. ¿Yo? ... poco a poco.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
Longi
Mensajes: 804
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Relación uno a uno en base

Mensaje por Longi »

Buenas!
Me quito el sombrero ante el currículum mostrado!
Otros no somos más que autodidactas que creemos que las cosas hechas con pasión pueden llegar a tener alguna virtud, no solo defectos.
En primer lugar decir que esto no depende de Oracle desde hace años, por lo que es software libre, y por ello gratuito (de ahí la respuesta similar a : "si encuentra algo mejor, cómprelo").
En segundo lugar, no hay que enfadarse tanto si algo gratuito no te resuelve los problemas. Si consideras que algo es mejorable, y tienes tiempo y sobre todo, conocimientos (como tu currículum indica) una opción es la de echar una mano para mejorarlo, y no despotricar contra la gente que voluntaria y gratuitamente pone sus esfuerzos en las cosas.
En tercer lugar puedes usar casi cualquier base de datos, aunque uses el front-end llamado "Base" de "OpenOffice" o de "LibreOffice", ya que, aunque no es perfecto, es un gestor de bases de datos. Desde mi ignorancia sugiero mirar si el fallo está en HSQLDB (motor bastante antiguo con el que viene instalado) en vez de mirar en Base.
En cuarto lugar, y conectado con lo anterior, puedes usar el RunTime de Access (que tengo idea de que es de distribución libre) y construir con base un grupo de consultas, formularios e informes que tendrán la fiabilidad de Access, pero lo mismo con Postgres, MaríaDB, SQLite, MySQL, otras versiones de HSQLDB...., aunque quizá falle un poco la velocidad, debido a la dependencia de Java (que ese creo que si que es de Oracle).

En definitiva, que menos acritud, y que por mi parte quedas invitado a mejorar al patito feo de LibreOffice y Openoffice si tuvieras interés en que las cosas funcionen mejor.
Aclaro que lo del patito feo es porque como no tiene volumen de usuarios, los desarrolladores dedican sus esfuerzos en otras aplicaciones, mientras base va quedando quieta, por lo que a su vez tiene pocos usuarios. Si se implementasen las mejoras necesarias (y reconozco que son muchas) supongo que habría más volumen de usuarios, más volumen de desarrolladores y una evolución cuando menos razonable.
Un saludo y buen rollo! :)
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
mallamasj70
Mensajes: 11
Registrado: Mar Dic 19, 2017 5:29 pm

Re: Relación uno a uno en base

Mensaje por mallamasj70 »

OpenOffice no es complicado es bastante simple.
Las bases de datos a nivel profesional, su diseño y correcta implementación, si que son bastante complejas.

Si te quedastes con la idea de que los sistemas gestores de bases de datos es un mundo complicado entones te quedastes con la idea correcta.

Saludos
openOffice 4.1.4 - windows 10
mriosv
Mensajes: 2335
Registrado: Sab Dic 27, 2008 1:12 am
Ubicación: Galiza (España)

Re: Relación uno a uno en base

Mensaje por mriosv »

mallamasj70, a la vista de alguno de sus comentarios, no parece que se haya profundizado mucho sobre lo que OpenOffice es y en su estudio, para ser utilizado como plataforma de formación.
Puedes usar "Subir adjunto" en Respuesta rápida - Editor Completo - Pestaña Subir adjunto
Apache OpenOffice 4, LibreOffice (Win10x64)
mallamasj70
Mensajes: 11
Registrado: Mar Dic 19, 2017 5:29 pm

Re: Relación uno a uno en base

Mensaje por mallamasj70 »

Es una pena lo que dices Longi, ¿es cierto? ¿Se están olvidando de base?

Saludos y buen rollo también.
openOffice 4.1.4 - windows 10
Longi
Mensajes: 804
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Relación uno a uno en base

Mensaje por Longi »

Tan solo es la opinión de alguien que no está informado de forma fehaciente.
Quizá es que como es la aplicación en la que más tiempo invierto, también hecho de menos algunos desarrollos que considero necesarios.
Pero quisiera añadir que cuanto más se le conoce, más posibilidades se le encuentran.
Seguro que gente que sabe, cuanto más lo conozca, más fallos le encontrará, pero por eso precisamente, sería bueno que la gente que los encuentra, y se supone que los podría mejorar, que lo hiciese, no decir que no vale para nada y tirarlo a la basura.
Bueno, ya está bien de discusiones bizantinas!
Si sirvió la respuesta que dio RMG, márcalo como solucionado, y en su defecto, pues seguimos a otra cosa, que así no vamos a arreglar el mundo.

Un saludo ;)
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
mallamasj70
Mensajes: 11
Registrado: Mar Dic 19, 2017 5:29 pm

Re: Relación uno a uno en base

Mensaje por mallamasj70 »

Longi,

Me la he resuelto en el sentido que me ha hecho ver que no se puede hacer. En ese sentido sí que la ha resuelto.

Saludos
openOffice 4.1.4 - windows 10
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Relación uno a uno en base

Mensaje por RMG »

Hola,
Me la he resuelto en el sentido que me ha hecho ver que no se puede hacer. En ese sentido sí que la ha resuelto.
Si en que no se puede hacer, te refieres al tipo de relación uno a uno entre clave primaria y foránea, efectivamente no se puede hacer.

Si te refieres a un tipo de relación para no duplicar campos con el mismo dato, que realmente es lo esencial y necesario, en este caso si se puede. Otra cosa es que no lo quieras o no te guste de ese modo.

Por si en mi anterior ejemplo adjuntado, es un poco complicado de entender, en este lo tienes más fácil con un formulario para ello.

Saludos
Adjuntos
Cursos1.7z
(12.89 KiB) Descargado 249 veces
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
mallamasj70
Mensajes: 11
Registrado: Mar Dic 19, 2017 5:29 pm

Re: Relación uno a uno en base

Mensaje por mallamasj70 »

RMG,

No, el ejemplo anterior no es complicado de entender.

Simplemente es que no resuelve la pregunta que he realizado. Yo quiero usar OpenOfice base para enseñar, iniciar más bien, a los alumnos en las bases de datos. No me interesa resolver una problema a nivel profesional, que no recomiendo ni de lejos usar esta base de datos a ese nivel. Mi objetivo es puramente docente. Y a nivel docente no se puede hacer lo que preguntaba.

En tu solución siguen saliendo relaciones 1 a muchos, no es lo que yo quiero. Yo preguntaba si había alguna manera de que saliera la relación 1 a 1 igual que sale cuando se realiza entre dos claves primarias, pero a nivel gráfico, en la pantalla de relaciones que yo intento enseñar a los alumno como si fuera el modelo E-R.

Agradezco tus comentarios y tus soluciones, sin duda. Eres muy amable, y es una pena que Apache, que tan pedazo de servidor Web ha implementado ( el mejor diría yo desde mi humilde experiencia) no dedique más tiempo a mejorar la suite LibreOffice.

Tampoco nos vamos a cortar las venas porque no salga el "grafiquito" de uno a uno en todas las situaciones en las que debería salir.

Te doy las gracias por haberme despejado la duda, y desde ese punto de vista sí que me has ayudado. ¿Sabrías cómo ponerla como resuelta?

Si la pongo resuelta es gracias a tí.

Saludos!!!!!
openOffice 4.1.4 - windows 10
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Relación uno a uno en base

Mensaje por RMG »

Mira el enlace, esto nos ayuda a mantener un foro más organizado.

https://forum.openoffice.org/es/forum/v ... f=3&t=2668

Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
Avatar de Usuario
SLV-es
Mensajes: 4894
Registrado: Jue Ago 26, 2010 1:25 am
Ubicación: España
Contactar:

Re: [RESUELTO]Relación uno a uno en base

Mensaje por SLV-es »

Bueno, por si podemos echar un poco más de luz en los múltiples temas que se han tratado aquí:

- Apache OpenOffice ya no es de Oracle
- LibreOffice no es de Apache
- Que yo sepa, y perdonad mi ignorancia al respecto si acabo diciendo una burrada, una relación 1 a 1 sólo se da entre claves primarias. En Access, que es la otra base de datos que conozco, las relaciones clave primaria - clave foranea no son 1 a 1, pues la clave foranea no cumple la condición que se necesita para establecer relaciones 1 a 1, que es que sea única.

Y eso si, agradezco mucho que se hayan serenado los ánimos y felicito a todos por reconducir el tema de forma útil y constructiva.
+info en la web "no oficial" dedicada a OpenOffice en Español
AOO 4.1.2 y LibO 4.4.6 en W10 y en Lliurex
No respondo mensajes privados sobre AOO, por favor, utiliza el foro para tus preguntas
Responder