Les oeuvres empruntées et pretées hérite de tous les attributs de l'objets oeuvre (caractéristiques permanente), pour les oeuvres possedée par le louvre on veut garder en memoir le prix d'acqusition et pour celmles appartenants a un musée exterieur on précisera de quel musée il provient par une association
Nous avons décider de modideliser cet heriatge par deux classe filles completées d'une vue dynamique qui represente la classe oeuvre
Dans expo_perm.json et expo_temp.json, nous avons utilisé une représentation avec imbrication redondante pour les guides, les salles et les panneaux, c'est à dire qu'ils sont décrits plusieurs fois dans une exposition.
Et pour les oeuvres nous avons utilisé une liste avec leur ids.
Pour écrire les tables des oeuvres en JSON, on peut mettre en attribut toutes les tables qui possèdent une clé étrangère vers oeuvre, soit en redéfinissant l'objet à chaque soit avec les ids.
sql="SELECT idm, nom, adresse, AVG(ROUND(fin - debut)) FROM Prete JOIN Musee_ext ON prete.musee = musee_ext.IDM GROUP BY idm, musee_ext adresse, nom;"
cur.execute(sql)
raw=cur.fetchone()
print("Temps moyen d'un prêt (par musée):")
whileraw:
print(f"musée partenaire : {raw[0]} :")
print(f" adresse : {raw[1]}")
print(f" temps moyen des prêts : {raw[2]} jours")
print()
raw=cur.fetchone()
definformations_oeuvres():
cur=conn.cursor()
sql='SELECT O.ido, O.titre , O.prix_acq, count(R.oeuvre) as "Nombre restaurations", sum(R.montant) as "Total montant restaurations" FROM OEUVRE_LOUVRE O \
LEFT JOIN Restaurer R ON R.oeuvre = O.ido GROUP BY O.ido, O.titre, O.prix_acq UNION ALL \
SELECT oe.ido, oe.titre, NULL AS prix, -1 AS "Nombre restaurations", NULL AS "Total montant restaurations" FROM oeuvre_ext oe;'
cur.execute(sql)
raw=cur.fetchone()
print("Informations sur chaque oeuvre :")
whileraw:
ifraw[2]!=None:
print(f"Nom de l'oeuvre : {raw[1]} (id:{raw[0]}) ")
print(f" prix d'acquisition : {raw[2]}")
print(f" prix total des {raw[3]} rennovation {raw[4]} euros ")
print()
else:
print(f"Nom de l'oeuvre : {raw[1]} (id:{raw[0]}) ")
print(" empruntée d'un autre musée")
print()
raw=cur.fetchone()
defmain():
print(conn)
menu()
cont=0
whilecont==0:
print(conn)
menu()
cont=int(input("Continuer 1, si oui"))
conn.close()
print(conn)
return0
defmenu():
print("Inserer des donées:")
print(" 20. Insertion d'un nouveau musée")
print(" 21. Insertion oeuvre néolithique")
print(" 22. Creer une nouvelle exposition permanente")
print(" 23. ")
print(" 24. ")
print(" 25. ")
print(" 26. ")
print("Liste des requêtes :")
print("1. Lister les guides avec leur identification, nom, prénom, et date d'embauche.")
print("2. Lister toutes les informations des expositions permanentes.")
INSERTINTOOeuvre_louvre(titre,dimensions,type,date_crea,auteur,prix_acq,date_acq,expo)VALUES('La joconde','0.77 x 0.53','peinture',1510,2,10000000,TO_DATE('1990-01-01','YYYY-MM-DD'),'Femmes');
INSERTINTOOeuvre_louvre(titre,dimensions,type,date_crea,auteur,prix_acq,date_acq)VALUES('Annonciation','0.98 x 0.217','peinture',1480,2,10000,TO_DATE('2001-04-01','YYYY-MM-DD'));