When it comes to recovering data, restoring the database is actually the last weapon in the Oracle DBA's arsenal.
Look into the "Flashback" suite of technologies; there are about six of them, all using slightly different methods to achieve slightly different things.
For example, to recover a dropped table, you might use "Flashback Table", which simply gets that one table back from the Recycle bin (unless some clever Bod uses "drop table .. purge" to obliterate it completely).
To recover data that's been deleted, you can use "Flashback Query" to query the table as it was in the past (but only as far as back as Guaranteed Undo will support).
The quickest way to recover the database to a point in time is "Flashback Database", which uses completely separate Flashback Logs to [very] rapidly roll the whole database back to a point in time (this time limited by the amount of Flashback logs in the FRA).
To do a full-blown recovery of the database to a point in time, you need the database to be in archivelog mode and you need to be backing up the database, controlfiles and archived redo logs. Assuming you've got all of that:
set until time "to_date('20190528120000','YYYYMMDDHH24MISS')";
alter database open resetlogs;
BTW, the most pointless activity you can do as an Oracle DBA is to omit the "set time" clause in the above. That will destroy the database, overwrite it with its [latest] backup and then roll forward the archived redo logs, thereby putting the database back into exactly the same state as when you started the operation!