24-02-2015, 23:12
Básicamente lo que dice el título. Si alguno tiene la fotocopia y la puede compartir o contar mas o menos que fue lo que se tomó en el final de hoy.
Gracias
Gracias
(25-02-2015 11:00)Nacho14 escribió: [ -> ]Según tengo entendido los VoF son FALSOS los dos.El 1A seguro es falso por lo que vos dijiste.
No se si era justificando o no pero se podría justificar así
A) FALSO, porque también se puede asegurar la unicidad de un campo creando un trigger que valide cada vez que se hace un update o insert
B) FALSO, porque el orden de complijidad del árbol binario de búsqueda es O(log n) y en el peor de los casos O(n) y el orden de complejidad de un árbol b es siempre O(log n). O sea si se da el peor de los casos no serian iguales. (igual en esta no estoy seguro si esta bien, si alguno me puede corregir mejor)
(25-02-2015 11:36)Aoshido escribió: [ -> ](25-02-2015 11:00)Nacho14 escribió: [ -> ]Según tengo entendido los VoF son FALSOS los dos.El 1A seguro es falso por lo que vos dijiste.
No se si era justificando o no pero se podría justificar así
A) FALSO, porque también se puede asegurar la unicidad de un campo creando un trigger que valide cada vez que se hace un update o insert
B) FALSO, porque el orden de complijidad del árbol binario de búsqueda es O(log n) y en el peor de los casos O(n) y el orden de complejidad de un árbol b es siempre O(log n). O sea si se da el peor de los casos no serian iguales. (igual en esta no estoy seguro si esta bien, si alguno me puede corregir mejor)
El 1B no sabria porque no lo conteste.
Lo de niveles de isolation esta en todos lados, y respecto a la seguridad en la base yo puse con el Catalogo y con Vistas, es una pregunta que (Junto con asegurar integridad) se repite mucho en los finales, saludos!
(25-02-2015 19:43)coolerking escribió: [ -> ]Hola Aoshido! Gracias por publicar! Como te fue?
(o la parte practica la estoy entendiendo mal o es un re quilombo... es UNA reserva o pueden ser varias reservas a futuro?)
Te hago una pregunta... que no terminé de entender, a las vistas de catalogo de seguridad te referis? Cuando hablas de herramientas para asegurar integridad?
(al final nada de pseudocodigo ese es el ejercicio entero jajaja)
Select h.numero from habitaciones
left join reservas r on (r.nrohabitacion = h.nrohabitacion and datediff(h.desde,getdate('today'))>=3)
where h.estado = libre
order by r.desde asc
limit 1
(25-02-2015 22:27)Aoshido escribió: [ -> ](25-02-2015 19:43)coolerking escribió: [ -> ]Hola Aoshido! Gracias por publicar! Como te fue?
(o la parte practica la estoy entendiendo mal o es un re quilombo... es UNA reserva o pueden ser varias reservas a futuro?)
Te hago una pregunta... que no terminé de entender, a las vistas de catalogo de seguridad te referis? Cuando hablas de herramientas para asegurar integridad?
Hola!
No te enquilombes al pedo, dentro de todas las consulta que te piden en los ultimos finales era una de las mas sencillas estas. Para limitar la cantidad de resultados podes usar "TOP" (Select top 1 * from habitaciones) si estas en MSSQL o LIMIT (Select * from habitaciones limit 1) si estas en otros motores .
A mi me fue bien, saque un 4 miseria a pesar de saber todo pq estaba terriblemetne nervioso entregue rapido e hice un solo trigger para la Foreing key.
Te dejo un poco en Pseudocodigo como son las cosas que yo creo qeu hay que hacer
(al final nada de pseudocodigo ese es el ejercicio entero jajaja)
Select h.numero from habitaciones
left join reservas r on (r.nrohabitacion = h.nrohabitacion and datediff(h.desde,getdate('today'))>=3)
where h.estado = libre
order by r.desde asc
limit 1
Y en el otro tenes que hacer 3 triggers
Uno para BEFORE INSERT en RESERVAS (que no te deje insertar un nrohabitacion que no exista en habitaciones)
Uno para BEFORE UPDATE en RESERVAS (que no te deje modificar un nrohabitacion que no exista en habitaciones)
Uno para BEFORE DELETE en HABITACIONES (Que no te deje borrar una haitacion que esta siendo referneciada en resrevas)
Las vistas y el Catalogo son 2 objetos distintos.
Las vistas buscalas en google como "Views" Y el catalogo es el que tiene todos los datos necesarios para representar una BD ademas de las relaciones (Que eso estan en las tablas corrrespondientes)
Por ejemplo en el catalago tenes tablas con los usuarios que pueden acceder a la base de datos, tablas que te dicen que permisos tienen esos usarios en la base y demas.
Un ejemplo mas concreto seria (me imagino, nunca vi un catalogo...)
USERS
ID----Nombre
1----- Aoshido
Permissions
IDUSER IDTABLE "PERMISOS"
1--------- 1--------- TODOS
TABLES
1 --- Ejemplo
Eso seria que el Usuario Aoshido en la tabla "Ejemplo" tiene todos los permisos (Insert update delete drop etc)
Cualquier cosa pregunten, saludos!
(28-02-2015 21:29)Martin. escribió: [ -> ]Porque harían un update del número de Habitación? ya que es la PK de esa tabla.
Incluso en el enunciado te dice que la Foreign Key está en Reservas, por lo que no es necesario el update del IdHabitacion de la tabla de Habitaciones.
"Desarrolle los triggers necesarios para emular una foreing key de resrevaciones a habitaciones sabiendo que ninguna posee constrains de ningun tipo"
Lo único que se está actualizando es el estado de la habitación que en este caso no se involucra en las validaciónes para la FK.