Milestone 1 solution
Here is SQL statement for creating tables in Postgres, the modified statement is highlighted. You are welcome to make additional modification wherever you see a fit.
CREATE TABLE T_GOFunction (
source VARCHAR ( 255 ) NOT NULL,
function VARCHAR ( 255 ) NOT NULL,
T_Protein_ID INTEGER NOT NULL,
T_GOFunction_ID serial,
CONSTRAINT
PK_T_GOFunction17 PRIMARY KEY (T_GOFunction_ID)
);
CREATE INDEX TC_T_GOFunction49 ON T_GOFunction
(T_Protein_ID );
CREATE TABLE T_Match (
fromA INTEGER NOT NULL,
fromB INTEGER NOT NULL,
toA INTEGER NOT NULL,
toB INTEGER NOT NULL,
score DOUBLE PRECISION NOT NULL,
T_Protein_T_Protein_ID INTEGER NOT NULL,
T_Protein_ID INTEGER NOT NULL,
T_Match_ID serial PRIMARY KEY
);
CREATE INDEX TC_T_Match44 ON T_Match
(T_Protein_T_Protein_ID , T_Protein_ID );
CREATE TABLE T_Protein (
accessionNumber VARCHAR ( 255 )
NOT NULL,
name VARCHAR ( 255 ) NOT NULL,
organism VARCHAR ( 255 ) NOT NULL,
sequence TEXT NOT NULL,
T_Protein_ID serial,
T_ProteinSource_ID INTEGER NOT NULL,
CONSTRAINT
PK_T_Protein12 PRIMARY KEY (T_Protein_ID)
);
CREATE INDEX TC_T_Protein43 ON T_Protein
(T_ProteinSource_ID );
CREATE TABLE T_ProteinSource (
dbName VARCHAR ( 255 ) NOT NULL,
date VARCHAR ( 255 ) NOT NULL,
T_ProteinSource_ID serial,
CONSTRAINT
PK_T_ProteinSource15 PRIMARY KEY (T_ProteinSource_ID)
);
CREATE TABLE T_LocalAlignment (
totalScore DOUBLE PRECISION NOT
NULL,
T_Protein_ID INTEGER NOT NULL,
T_Protein_T_Protein_ID INTEGER NOT NULL,
CONSTRAINT
PK_T_LocalAlignment14 PRIMARY KEY (T_Protein_T_Protein_ID,
T_Protein_ID)
);
CREATE INDEX TC_T_LocalAlignment46 ON T_LocalAlignment
(T_Protein_T_Protein_ID );
CREATE INDEX TC_T_LocalAlignment45 ON T_LocalAlignment
(T_Protein_ID );
CREATE TABLE T_GeneFusionEvent (
ComputedFunction SMALLINT,
T_Protein_T_Protein_ID INTEGER NOT NULL,
T_Protein_ID INTEGER NOT NULL,
T_LocalAlignment_T_Protein_T_Protein_ID INTEGER NOT NULL,
T_LocalAlignment_T_Protein_ID INTEGER NOT NULL,
CONSTRAINT
PK_T_GeneFusionEvent16 PRIMARY KEY (T_LocalAlignment_T_Protein_T_Protein_ID,
T_LocalAlignment_T_Protein_ID, T_Protein_T_Protein_ID,
T_Protein_ID)
);
CREATE INDEX TC_T_GeneFusionEvent47 ON T_GeneFusionEvent
(T_Protein_T_Protein_ID , T_Protein_ID );
CREATE INDEX TC_T_GeneFusionEvent48 ON T_GeneFusionEvent
(T_LocalAlignment_T_Protein_T_Protein_ID , T_LocalAlignment_T_Protein_ID
);
ALTER TABLE T_GeneFusionEvent ADD
CONSTRAINT FK_T_GeneFusionEvent21 FOREIGN KEY (T_Protein_T_Protein_ID,
T_Protein_ID) REFERENCES T_LocalAlignment
(T_Protein_T_Protein_ID, T_Protein_ID) ON DELETE NO
ACTION ON UPDATE NO ACTION;
ALTER TABLE T_GeneFusionEvent ADD
CONSTRAINT FK_T_GeneFusionEvent22 FOREIGN KEY (T_LocalAlignment_T_Protein_T_Protein_ID,
T_LocalAlignment_T_Protein_ID) REFERENCES T_LocalAlignment (T_Protein_T_Protein_ID,
T_Protein_ID) ON DELETE NO ACTION ON UPDATE NO
ACTION;
ALTER TABLE T_Protein ADD
CONSTRAINT FK_T_Protein24 FOREIGN KEY (T_ProteinSource_ID)
REFERENCES T_ProteinSource (T_ProteinSource_ID) ON DELETE NO
ACTION ON UPDATE NO ACTION;
ALTER TABLE T_LocalAlignment ADD
CONSTRAINT FK_T_LocalAlignment18 FOREIGN KEY (T_Protein_ID)
REFERENCES T_Protein (T_Protein_ID) ON DELETE NO
ACTION ON UPDATE NO ACTION;
ALTER TABLE T_LocalAlignment ADD
CONSTRAINT FK_T_LocalAlignment19 FOREIGN KEY (T_Protein_T_Protein_ID)
REFERENCES T_Protein (T_Protein_ID) ON DELETE NO
ACTION ON UPDATE NO ACTION;
ALTER TABLE T_GOFunction ADD CONSTRAINT FK_T_GOFunction20 FOREIGN KEY (T_Protein_ID) REFERENCES T_Protein (T_Protein_ID) ON DELETE NO ACTION ON UPDATE NO ACTION;