Just guesswork, but do you select "Upgrade an existing database" early on:
and "advanced install" later on:
The docs do look as if they are referring to the 10g installer.
Unfortunately present SQL or its implementations in all RDBMS products does not fully support temporal relations.
Only Teradata and DB2 have some features implementing constraints having time in the two or more of columns.
My example:
SET SCHEMA TEST;
CREATE TABLE PRODUCT (
product_ID INT NOT NULL,
suplier NVARCHAR(50),
PRIMARY KEY (product_ID)
)
;
CREATE TABLE CAMPAIGN (
campaign_ID INT NOT NULL,
product_ID INT NOT NULL,
price DECIMAL,
PRIMARY KEY (campaign_ID)
)
;
ALTER TABLE CAMPAIGN
ADD CONSTRAINT XFK_campaign_productid
FOREIGN KEY (product_ID) REFERENCES PRODUCT (product_id)
ON DELETE NO ACTION;
If you add temporal columns business_startdate and business_enddate and optionally
transaction_starttime and transaction_endtime, you cannot enforce referential integrity anymore.
You might have to implement triggers or stored procedures or application level coding if you want to implement a constraint like this:
CREATE TABLE CAMPAIGN (
campaign_ID INT NOT NULL,
product_ID INT NOT NULL,
business_startdate DATE NOT NULL,
business_enddate DATE NOT NULL,
transaction_starttime TIMESTAMP NOT NULL,
transaction_endtime TIMESTAMP NOT NULL,
price DECIMAL,
PRIMARY KEY (campaign_ID,business_startdate,transaction_starttime)
)
;
For DB2 there exist a temporal primary key constaint in the following syntax:
CREATE TABLE CAMPAIGN (
campaign_ID INT NOT NULL,
product_ID INT NOT NULL,
business_startdate DATE NOT NULL,
business_enddate DATE NOT NULL,
price DECIMAL,
PERIOD BUSINESS_TIME (business_startdate,business_enddate),
PRIMARY KEY (campaign_ID,BUSINESS_TIME WITHOUT OVERLAPS)
)
;
Best Answer
Oracle's installers are mostly Java based - see here. Oracle apparently wants to "universalize" (yuck, what a word) the procedure. Apparently, however, for XE on Windows, they decided that it would be best just to have a plain old .exe.
Maybe they figured that Windows users who chose the XE option weren't up to installing a JVM? :-). Maybe they used some sort of Byte code-to-exe tool to convert their Java based installer to a simpler Windows exe?
Apart from the CPU, RAM and data limitations in XE, Java isn't included in the database. If I recall correctly (haven't done it in a while), the Linux installer is a Java based one - even though Java isn't in the db. I'm not sure if the installer has it's own JRE or whatnot.
Basically, Oracle is trying to make installs as generic (univeralize - what was wrong with the word "generic"?) as possible but has decided to keep the .exe paradigm for Windows.