v

CREATE CLUSTER COUNTRY_CLST (CO_ID NUMBER(4) ) INDEX PCTFREE 0;
CREATE INDEX COUNTRY_IDX ON CLUSTER COUNTRY_CLST;
CREATE TABLE COUNTRY( CO_ID NUMERIC(4) NOT NULL, CO_NAME VARCHAR(50) NOT NULL, … … … … … … CONSTRAINT COUNTRY_PKEY PRIMARY KEY (CO_ID), CONSTRAINT COUNTRY_CHECK1 CHECK(CO_ID > 0) ) CLUSTER COUNTRY_CLST(CO_ID);
CREATE TABLE ADDRESS(
ADDR_ID NUMERIC(10) NOT NULL,
ADDR_CO_ID NUMERIC(4) NOT NULL,
… … … … … …
CONSTRAINT ADDRESS_PKEY PRIMARY KEY (ADDR_ID),
CONSTRAINT ADDRESS_FKEY FOREIGN KEY (ADDR_CO_ID)
REFERENCES COUNTRY(CO_ID),
CONSTRAINT ADDRESS_CHECK1 CHECK(ADDR_ID > 0) )
CLUSTER COUNTRY_CLST(ADDR_CO_ID);
PART(pnum, pname, price) SP(pnum, snum, qty) SUPPLIER(snum, sname, address)

PART(pnum, pname, price) SP(pnum, snum, qty) SUPPLIER(snum, sname, address)

PART(pnum, pname, price) SP(pnum, snum, qty) SUPPLIER(snum, sname, address)


Make a set of clustering variants V empty
repeat
Find in a clustering graph a variant Vmax that maximises savings;
Add Vmax to V;
Remove from a clustering graph an edge that represents a variant Vmax and all edges that represent variants inconsistent with Vmax;
until clustering graph has no edges;


