initial import
This commit is contained in:
commit
e9e71a4591
2 changed files with 127 additions and 0 deletions
8
pgsql/drop_tables.sql
Normal file
8
pgsql/drop_tables.sql
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
-- drop tables in the correct order, avoiding constraint violations
|
||||
|
||||
drop table triples;
|
||||
drop table events;
|
||||
drop table texts;
|
||||
drop table datatypes;
|
||||
drop table nodes;
|
||||
drop table namespaces;
|
||||
119
pgsql/init.sql
Normal file
119
pgsql/init.sql
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
-- tables
|
||||
|
||||
CREATE TABLE namespaces (
|
||||
id serial NOT NULL primary key,
|
||||
iri text NOT NULL,
|
||||
prefix text
|
||||
);
|
||||
|
||||
CREATE TABLE nodes (
|
||||
id bigserial NOT NULL primary key,
|
||||
namespace bigint,
|
||||
name text
|
||||
);
|
||||
|
||||
CREATE TABLE datatypes (
|
||||
id serial NOT NULL primary key,
|
||||
dtname text NOT NULL,
|
||||
tablename text,
|
||||
node bigint
|
||||
);
|
||||
|
||||
CREATE TABLE events (
|
||||
id bigserial NOT NULL primary key,
|
||||
tstamp timestamp NOT NULL,
|
||||
node bigint
|
||||
);
|
||||
|
||||
CREATE TABLE triples (
|
||||
id bigserial NOT NULL primary key,
|
||||
subject bigint NOT NULL,
|
||||
predicate bigint NOT NULL,
|
||||
datatype integer NOT NULL,
|
||||
value bigint,
|
||||
creation bigint NOT NULL,
|
||||
deletion bigint
|
||||
);
|
||||
|
||||
CREATE TABLE texts (
|
||||
id bigserial NOT NULL primary key,
|
||||
language bigint,
|
||||
text text NOT NULL
|
||||
);
|
||||
|
||||
ALTER TABLE nodes OWNER TO fco;
|
||||
ALTER TABLE datatypes OWNER TO fco;
|
||||
ALTER TABLE namespaces OWNER TO fco;
|
||||
ALTER TABLE triples OWNER TO fco;
|
||||
ALTER TABLE texts OWNER TO fco;
|
||||
|
||||
-- data
|
||||
|
||||
INSERT INTO namespaces (iri, prefix)
|
||||
VALUES ('http://cyberconcepts.org/cco-common#', 'cco');
|
||||
INSERT INTO namespaces (iri, prefix)
|
||||
VALUES ('http://www.w3.org/1999/02/22-rdf-syntax-ns#', 'rdf');
|
||||
INSERT INTO namespaces (iri, prefix)
|
||||
VALUES ('http://www.w3.org/2000/01/rdf-schema#', 'rdfs');
|
||||
|
||||
INSERT INTO nodes (namespace, name) VALUES (1, 'Node'); -- 1
|
||||
INSERT INTO nodes (namespace, name) VALUES (2, 'type'); -- 2
|
||||
INSERT INTO nodes (namespace, name) VALUES (2, 'Property');-- 3
|
||||
INSERT INTO nodes (namespace, name) VALUES (2, 'Class'); -- 4
|
||||
INSERT INTO nodes (namespace, name) VALUES (1, 'Datatype');-- 5
|
||||
|
||||
INSERT INTO datatypes (dtname, tablename) VALUES ('node', 'nodes'); -- 1
|
||||
INSERT INTO datatypes (dtname, tablename) VALUES ('string', 'texts'); -- 2
|
||||
INSERT INTO datatypes (dtname) VALUES ('int'); -- 3
|
||||
|
||||
INSERT INTO triples (subject, predicate, datatype, value) VALUES (1, 2, 1, 5);
|
||||
INSERT INTO triples (subject, predicate, datatype, value) VALUES (2, 2, 1, 3);
|
||||
INSERT INTO triples (subject, predicate, datatype, value) VALUES (3, 2, 1, 4);
|
||||
INSERT INTO triples (subject, predicate, datatype, value) VALUES (4, 2, 1, 4);
|
||||
INSERT INTO triples (subject, predicate, datatype, value) VALUES (5, 2, 1, 4);
|
||||
|
||||
-- indexes
|
||||
|
||||
CREATE INDEX idx_iri ON namespaces USING btree (iri);
|
||||
CREATE INDEX idx_prefix ON namespaces USING btree (prefix);
|
||||
|
||||
CREATE INDEX idx_node_name ON nodes USING btree (namespace, name);
|
||||
|
||||
CREATE INDEX fki_datatype_node ON datatypes USING btree (node);
|
||||
|
||||
CREATE INDEX fki_event_node ON events USING btree (node);
|
||||
|
||||
CREATE INDEX fki_datatype ON triples USING btree (datatype);
|
||||
CREATE INDEX fki_creation ON triples USING btree (creation);
|
||||
CREATE INDEX fki_deletion ON triples USING btree (deletion);
|
||||
CREATE INDEX idx_spo ON triples USING btree (subject, predicate, datatype, value);
|
||||
CREATE INDEX idx_po ON triples USING btree (predicate, datatype, value);
|
||||
CREATE INDEX idx_os ON triples USING btree (datatype, value, subject);
|
||||
|
||||
CREATE INDEX fki_language ON texts USING btree (language);
|
||||
|
||||
-- foreign key constraints
|
||||
|
||||
ALTER TABLE ONLY nodes
|
||||
ADD CONSTRAINT namespace FOREIGN KEY (namespace) REFERENCES namespaces(id);
|
||||
|
||||
ALTER TABLE ONLY datatypes
|
||||
ADD CONSTRAINT node FOREIGN KEY (node) REFERENCES nodes(id);
|
||||
|
||||
ALTER TABLE ONLY events
|
||||
ADD CONSTRAINT node FOREIGN KEY (node) REFERENCES nodes(id);
|
||||
|
||||
ALTER TABLE ONLY triples
|
||||
ADD CONSTRAINT subject FOREIGN KEY (subject) REFERENCES nodes(id);
|
||||
ALTER TABLE ONLY triples
|
||||
ADD CONSTRAINT predicate FOREIGN KEY (predicate) REFERENCES nodes(id);
|
||||
ALTER TABLE ONLY triples
|
||||
ADD CONSTRAINT datatype FOREIGN KEY (datatype) REFERENCES datatypes(id);
|
||||
ALTER TABLE ONLY triples
|
||||
ADD CONSTRAINT creation FOREIGN KEY (creation) REFERENCES events(id);
|
||||
ALTER TABLE ONLY triples
|
||||
ADD CONSTRAINT deletion FOREIGN KEY (deletion) REFERENCES events(id);
|
||||
|
||||
ALTER TABLE ONLY texts
|
||||
ADD CONSTRAINT language FOREIGN KEY (language) REFERENCES nodes(id);
|
||||
|
||||
Loading…
Add table
Reference in a new issue