Regarding #1:
I've not used DTP, so I won't comment specifically on installation steps. In general though, I prefer the versions from official repositories, rather than doing something manually. That said, getting plugin versions wrong in eclipse has never wrecked my eclipse. At worst, the plugin won't work. However, if you still want to be absolutely sure, you can always make a copy of your complete eclipse directory, and experiment on the copy. That way, your original installation will still be safe. It's perfectly ok to have multiple eclipse installations in the same system; there's no registry or anything else to make them trip over one another.
Regarding #2:
Yes, a blank database can be created without any tables in any DB, including JavaDB. In the
JDBC URL, you just have to suffix a ";create=true". Examples connection URLs are
here.
Does Java DB persist after the table/records have been entered?
There are 4 ways to which JavaDB can be used:
1) As an embedded in-memory database:
In this mode, data is stored only in memory and not persisted to file system.
The memory belongs to the same java process as your learning application.
There are ways to persist this kind of memory db if you change your mind later on. Their dev guide explains how.
2) As an embedded persisted database:
All data changes are persisted to file system.
The javadb engine is loaded in the same process as your learning application. The host application is responsible for proper startup and shutdown of database engine.
Note: Such a database can be opened by only 1 process at a time. This is an inconvenience for you to use DTP to visualize the data, because DTP plugin hosted in eclipse is a separate
process from your learning app.
3) As a client server in-memory database:
Here too, data is stored only in memory and not persisted to file system.
In this mode, JavaDB engine is hosted in a dedicated server process, and not in your learning app process.
The data in memory belongs to the server process, unlike in embedded in-memory mode .
4) As a client server persisted database:
All data changes are persisted to file system.
This is similar to the typical mode that other common databases like mysql use.
The JavaDB engine is hosted in a dedicated server process, and not in your learning app process. The server process is responsible for proper startup and shutdown of javadb engine.
Summary:
Since you wish to use a tool like DTP to visualize data, possibly doing so even while your application is running,
you should run JavaDB in mode 4) above.
In embedded modes, you'll have to first close your application every time you want to examine the DB using DTP.
Any thoughts on using a Primary Key for a table when that data available doesn't really have anything unique(like the typical Account examples found in books)?
I typically use a unique identifier generated by the DB. The term for that is
surrogate key.
Some DB/DBA purists don't like it because it increases storage space, but I find it very convenient and use it even if the queries I have in mind at that point of time in the development cycle don't require it.
Clean shutdown tip: One tip on using JavaDB in embedded mode is your application is responsible for cleanly shutting it down when it's closing. The way to do that is to open a special connection that shuts it down (yes, you read it right - you have to open a connection to shut it down!). The line below cleanly shuts it down and even throws an SQLException which is not really an error but an indication of successful shutdown because it's message is "Derby system shutdown". Very odd, but there you go!