// 1. 인덱스 및 제약 조건 설정 CREATE INDEX ON :Job(id); CREATE INDEX ON :JobType(id); CREATE INDEX ON :Object(id); CREATE INDEX ON :ObjectType(id); CREATE INDEX ON :Status(id); CREATE INDEX ON :Activity(id); CREATE INDEX ON :Scenario(id); // 2. 노드 레이블 및 관계 타입 정의 (최소한의 샘플 생성) // JobType 노드 생성 CREATE (:JobType {type_id: 'SAMPLE_JT', name: 'Sample JobType'}); // Job 노드 생성 CREATE (:Job {id: 'SAMPLE_JOB', name: 'Sample Job', duration: 0, cost: 0}); // ObjectType 노드 생성 CREATE (:ObjectType {type_id: 'SAMPLE_OT', name: 'Sample ObjectType'}); // Object 노드 생성 CREATE (:Object {id: 'SAMPLE_OBJ', name: 'Sample Object'}); // Status 노드 생성 CREATE (:Status {status_id: 'SAMPLE_STATUS', name: 'Sample Status'}); // Activity 노드 생성 CREATE (:Activity {id: 'SAMPLE_ACT', name: 'Sample Activity', description: 'Sample Description'}); // Scenario 노드 생성 CREATE (:Scenario {id: 'SAMPLE_SCN', name: 'Sample Scenario', description: 'Sample Description'}); // 관계 생성 (샘플 노드들을 연결) MATCH (j:Job {id: 'SAMPLE_JOB'}), (jt:JobType {type_id: 'SAMPLE_JT'}) CREATE (j)-[:IS_A]->(jt); MATCH (o:Object {id: 'SAMPLE_OBJ'}), (ot:ObjectType {type_id: 'SAMPLE_OT'}) CREATE (o)-[:IS_A]->(ot); MATCH (j1:Job {id: 'SAMPLE_JOB'}), (j2:Job {id: 'SAMPLE_JOB'}) CREATE (j1)-[:PRECEDES]->(j2); MATCH (j:Job {id: 'SAMPLE_JOB'}), (s:Status {status_id: 'SAMPLE_STATUS'}) CREATE (j)-[:HAS_STATUS]->(s); MATCH (s:Scenario {id: 'SAMPLE_SCN'}), (j:Job {id: 'SAMPLE_JOB'}) CREATE (s)-[:INCLUDES]->(j); MATCH (s1:Scenario {id: 'SAMPLE_SCN'}), (s2:Scenario {id: 'SAMPLE_SCN'}) CREATE (s1)-[:DELTA_FROM]->(s2); MATCH (j:Job {id: 'SAMPLE_JOB'}), (a:Activity {id: 'SAMPLE_ACT'}) CREATE (j)-[:PERFORMS]->(a); MATCH (a:Activity {id: 'SAMPLE_ACT'}), (o:Object {id: 'SAMPLE_OBJ'}) CREATE (a)-[:ACTS_ON]->(o); RETURN "Schema creation successful!";