That's a much more soft definition, because we dont really select tables, we run queries.
For example:
SQL> set autotrace traceonly explain
SQL> select count(*)
  2  from scott.emp e,
  3       scott.dept d
  4  where e.deptno = d.deptno;
Execution Plan
----------------------------------------------------------
Plan hash value: 2083865914
---------------------------------------------------------------------------
| Id  | Operation          | Name | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------
|   0 | SELECT STATEMENT   |      |     1 |     3 |     3   (0)| 00:00:01 |
|   1 |  SORT AGGREGATE    |      |     1 |     3 |            |          |
|*  2 |   TABLE ACCESS FULL| EMP  |    14 |    42 |     3   (0)| 00:00:01 |
---------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
   2 - filter("E"."DEPTNO" IS NOT NULL)
SQL> set autotrace off
The *query* references DEPT but we never actually touched DEPT.  Does this count ? 
If you want to see where tables are *referenced* then you could mine the sql text in v$sqlstats and make some guesses.  You could also mine the object_name in v$sqlplan (but there is still the caveat above).
Similarly, v$segment_statistics can give some rough guides....