"Semantic Data SQL Script"의 두 판 사이의 차이
DH 교육용 위키
(새 문서: <pre> /* ---------------------------------------------------------------------------------------------- Semantic Data Table 생성 Script --------------------------------------...) |
|||
| 74번째 줄: | 74번째 줄: | ||
-- Excel File 업로드: 'SQL Server 가져오기 및 내보내기 마법사' 사용 | -- Excel File 업로드: 'SQL Server 가져오기 및 내보내기 마법사' 사용 | ||
| − | /* 반복해서 업로드 할 경우 기존 데이터 파일을 삭제해야 합니다. | + | /* |
| − | + | 반복해서 업로드 할 경우 기존 데이터 파일을 삭제해야 합니다. | |
| − | + | 그렇게 하지 않으면 중복 입력이 됩니다. | |
| − | + | drop table $project$Data$ | |
| + | drop table $project$Links$ | ||
*/ | */ | ||
| 83번째 줄: | 84번째 줄: | ||
/* | /* | ||
| − | + | 노드 데이터 테이블 안에 기존 데이터가 있으면 삭제하세요. | |
| − | + | delete $project$Data | |
*/ | */ | ||
| 94번째 줄: | 95번째 줄: | ||
/* | /* | ||
| − | + | 링크 데이터 테이블 안에 기존 데이터가 있으면 삭제하세요. | |
| − | + | delete $project$Links | |
*/ | */ | ||
| 111번째 줄: | 112번째 줄: | ||
/* | /* | ||
| − | + | 스키마 데이터 테이블 안에 기존 데이터가 있으면 삭제하세요. | |
| − | + | delete $project$Schema | |
*/ | */ | ||
2019년 10월 14일 (월) 21:09 판
/*
----------------------------------------------------------------------------------------------
Semantic Data Table 생성 Script
----------------------------------------------------------------------------------------------
1. 이 파일을 에디터로 옮기고, "$project$"로 표시된 부분을 project 이름으로 바꾸세요.
에디터의 '찾기 바꾸기' 기능을 이용
2. 수정된 파일을 확장가 ".sql"인 파일로 저장하고, Sql Server Management Studio로 읽어들이세요.
3. Query Editer 상에서 아래의 스트립트를 차례대로 실행하세요.
----------------------------------------------------------------------------------------------
*/
/* ************************************************************
Step 1: 테이블 생성
한 번만 수행하면 됩니다.
************************************************************ */
--① _____Data ....... 시맨틱 데이터의 노드
create table $project$Data (
id nvarchar(40) not null,
class nvarchar(40) null,
groupName nvarchar(40) null,
partName nvarchar(40) null,
label nvarchar(80) null,
infoUrl nvarchar(256) null,
iconUrl nvarchar(256) null,
primary key(id)
)
--② _____Links ...... 시맨틱 데이터의 링크 */
create table $project$Links (
source nvarchar(40) not null,
target nvarchar(40) not null,
relation nvarchar(40) not null,
attribute nvarchar(40) null,
primary key (source, target, relation )
)
--③ _____Schema ..... 각 노드의 계층적 분류
create table $project$Schema (
id nvarchar(40) not null,
class nvarchar(40) null,
groupName nvarchar(40) null,
partName nvarchar(40) null,
label nvarchar(80) null,
infoUrl nvarchar(256) null,
iconUrl nvarchar(256) null,
primary key(id)
)
--④ _____Category ... 계층 분류와 노드 사이의 관계
create table $project$Category (
source nvarchar(40) not null,
target nvarchar(40) not null,
relation nvarchar(40) not null,
attribute nvarchar(40) null,
primary key (source, target, relation )
)
--⑤ _____Nodes ... 노드 데이터와 분류 데이터 병합
create view $project$Nodes
as
select * from $project$Data
union
select * from $project$Schema
/* ************************************************************
Step 2: 업로드한 엑셀 데이터를 테이블에 삽입
데이터를 새로 업로드 할 때마다 수행합니다.
************************************************************ */
-- Excel File 업로드: 'SQL Server 가져오기 및 내보내기 마법사' 사용
/*
반복해서 업로드 할 경우 기존 데이터 파일을 삭제해야 합니다.
그렇게 하지 않으면 중복 입력이 됩니다.
drop table $project$Data$
drop table $project$Links$
*/
--① Node List 데이터 삽입
/*
노드 데이터 테이블 안에 기존 데이터가 있으면 삭제하세요.
delete $project$Data
*/
insert into $project$Data (id, class, groupName, partName, label, infoUrl, iconUrl )
select id, class, groupName, partName, label, infoUrl, iconUrl
from $project$Data$
--② Link List 데이터 삽입
/*
링크 데이터 테이블 안에 기존 데이터가 있으면 삭제하세요.
delete $project$Links
*/
insert into $project$Links (source, target, relation)
select source, target, relation from $project$Links$
/* ************************************************************
Step 3: 계층적 메뉴 데이터 생성
데이터가 바뀔 때마다 반복해서 수행합니다.
※ 계층적 메뉴를 사용할 때만 필요한 루틴입니다.
************************************************************ */
--① 스카미 데이터 생성
/*
스키마 데이터 테이블 안에 기존 데이터가 있으면 삭제하세요.
delete $project$Schema
*/
insert into $project$Schema (id, class, groupName, label)
values ('Thing', 'Category', 'Top', 'Thing' )
insert into $project$Schema (id, class, groupName, label)
select class as id, 'Category' as class, 'Thing' groupName, class as label
from $project$Data
group by class
insert into $project$Schema (id, class, groupName, label)
select groupName as id, 'Category' as class, class as groupName, groupName as label
from $project$Data
where groupName is not NULL
group by class, groupName