"20201119"의 두 판 사이의 차이

phj
이동: 둘러보기, 검색
 
7번째 줄: 7번째 줄:
 
* 국립중앙박물관 가상현실은 큐레이션과 별도의 기술만. 세계 인문학 대회에서의 가능성을 봄(인문학 대상+컴퓨터 기술)
 
* 국립중앙박물관 가상현실은 큐레이션과 별도의 기술만. 세계 인문학 대회에서의 가능성을 봄(인문학 대상+컴퓨터 기술)
 
* 신뢰할 수 있는 데이터를 생산해야내야함
 
* 신뢰할 수 있는 데이터를 생산해야내야함
 +
<pre>
 +
use s_phj
 +
 +
select * from sys.tables
 +
 +
 +
drop table xmltable3 /*기존것 지워서 깨끗하게 만들어놓기*/
 +
select * into xmltable3 from Class2020.dbo.xmltable3 /*class2020안의 xmltable3를 카피하기*/
 +
select * from xmltable3
 +
 +
/*table2를 3에 넣고 다시 작업시작,자동으로 id값을 넣어줌,트리거(방아쇠, 자동으로 변환해줌) 새로운 insert작업이 이루어질때 필요*/
 +
create trigger xmltable3getid on xmltable3 instead of insert
 +
as /*as 아래와같이 동작하라*/
 +
insert into xmltable3(id, xmltxt)
 +
select
 +
that.xmltxt.value('(//./@id)[1]', 'nvarchar(20)') as id,
 +
that.xmltxt as xmltxt /* this, that 모두 상관없음 지금 입력되고 있는 그 테이블*/
 +
from inserted that
 +
 +
 +
/* xmltable3.xmltxt 데이터 예시
 +
 +
<개체 id="개념-화통도감">
 +
  <표제>
 +
    <이름 표기="국문">화통도감</이름>
 +
    <이름 표기="한자">火筒都監</이름>
 +
    <이름 표기="영문">Hwatongdogam</이름>
 +
  </표제>
 +
  <범주>
 +
    <프로젝트>민족기록화</프로젝트>
 +
    <클래스>개념</클래스>
 +
    <기여 역할="작성">김지선</기여>
 +
  </범주>
 +
  <속성 틀="제도정보">
 +
    <시대>고려/고려후기</시대>
 +
    <유형>제도</유형>
 +
    <성격>관청</성격>
 +
    <시행처>고려</시행처>
 +
    <시행일시>1327년</시행일시>
 +
    <폐지일시>1388년</폐지일시>
 +
    <정의>고려시대 화약·화기의 제조를 맡아보던 임시관청</정의>
 +
  </속성>
 +
  ......
 +
</개체>
 +
*/
 +
 +
/*1.  XML 문서로부터 특정 요소(Element) 값 추출 */
 +
 +
select id,
 +
xmltxt.value('(//범주/프로젝트)[1]', 'nvarchar(40)') as projcet,
 +
xmltxt.value('(//범주/클래스)[1]', 'nvarchar(40)') as class,
 +
xmltxt.value('(//속성/정의)[1]', 'nvarchar(256)') as definition
 +
from xmltable3
 +
 +
/*2.  XML 문서로부터 특정 요소의 속성(Attribute) 값 추출 */
 +
 +
select id,
 +
xmltxt.value('(//속성/@틀)[1]', 'nvarchar(20)') as template
 +
from xmltable3
 +
 +
/*3. 속성 값을 한정(Filtering)하여, 이에 해당하는 요소의 값 추출 */
 +
 +
select id,
 +
xmltxt.value('(//표제/이름[./@표기="국문"])[1]', 'nvarchar(40)') as hangeul,
 +
xmltxt.value('(//표제/이름[./@표기="한자"])[1]', 'nvarchar(40)') as hanja,
 +
xmltxt.value('(//표제/이름[./@표기="영문"])[1]', 'nvarchar(80)') as english
 +
from xmltable3
 +
 +
/* 종합: XML 문서로부터 데이터 활용에 필요한 메타데이터 추출 */
 +
 +
select id,
 +
xmltxt.value('(//범주/프로젝트)[1]', 'nvarchar(40)') as projcet,
 +
xmltxt.value('(//범주/클래스)[1]', 'nvarchar(40)') as class,
 +
xmltxt.value('(//표제/이름[./@표기="국문"])[1]', 'nvarchar(40)') as hangeul,
 +
xmltxt.value('(//표제/이름[./@표기="한자"])[1]', 'nvarchar(40)') as hanja,
 +
xmltxt.value('(//표제/이름[./@표기="영문"])[1]', 'nvarchar(80)') as english,
 +
xmltxt.value('(//속성/@틀)[1]', 'nvarchar(20)') as template,
 +
xmltxt.value('(//속성/정의)[1]', 'nvarchar(256)') as definition
 +
from xmltable3
 +
 +
/* 추출한 메타데이터를 가상 테이블(뷰, view)에 저장 */
 +
 +
create view xmlmeta as
 +
select id,
 +
xmltxt.value('(//범주/프로젝트)[1]', 'nvarchar(40)') as projcet,
 +
xmltxt.value('(//범주/클래스)[1]', 'nvarchar(40)') as class,
 +
xmltxt.value('(//표제/이름[./@표기="국문"])[1]', 'nvarchar(40)') as hangeul,
 +
xmltxt.value('(//표제/이름[./@표기="한자"])[1]', 'nvarchar(40)') as hanja,
 +
xmltxt.value('(//표제/이름[./@표기="영문"])[1]', 'nvarchar(80)') as english,
 +
xmltxt.value('(//속성/@틀)[1]', 'nvarchar(20)') as template,
 +
xmltxt.value('(//속성/정의)[1]', 'nvarchar(256)') as definition
 +
from xmltable3
 +
 +
select * from xmlmeta
 +
 +
/*클라스가 사건인 데이타를 뽑아내고싶다*/
 +
select * from xmlmeta
 +
where class='사건'
 +
 +
/*클라스가 사건인 데이타를 뽑아내어 xmltable3도 같이 보여줘라*/
 +
select xmlmeta.*,xmltxt.query('//속성'), xmltxt.query('//개설') from xmlmeta
 +
join xmltable3 on xmlmeta.id=xmltable3.id
 +
where class='사건'
 +
 +
select * from xmlmeta
 +
 +
</pre>

2020년 11월 23일 (월) 00:56 기준 최신판

  • 구글 어스 (구글의 API: application programming interface), 세슘 소개
  • 만경전, 잡상, 의궤, 여악 등 다양한 연구들 → 합해짐→ 더욱 발전
  • 디지털리터러시: 아날로그에서 분업되어있는 것을 디지털세계에서 협업하길
  • 모든것들 아래에는 데이터베이스가 기반
  • 인문지식의 저변화가 필요
  • 네이버 API가 무료로 제공되고 있는것이 많음. 그러나 쓰고싶으면 기본적인 논리와 언어, 총체적인 이해가 가능해야함. 누구나 쓸수있다하지만 문제는 API의 장벽이 높아지고 있음.
  • 국립중앙박물관 가상현실은 큐레이션과 별도의 기술만. 세계 인문학 대회에서의 가능성을 봄(인문학 대상+컴퓨터 기술)
  • 신뢰할 수 있는 데이터를 생산해야내야함
use s_phj

select * from sys.tables


drop table xmltable3 /*기존것 지워서 깨끗하게 만들어놓기*/
select * into xmltable3 from Class2020.dbo.xmltable3 /*class2020안의 xmltable3를 카피하기*/
select * from xmltable3

/*table2를 3에 넣고 다시 작업시작,자동으로 id값을 넣어줌,트리거(방아쇠, 자동으로 변환해줌) 새로운 insert작업이 이루어질때 필요*/
create trigger xmltable3getid on xmltable3 instead of insert
as /*as 아래와같이 동작하라*/
	insert into xmltable3(id, xmltxt)
	select
		that.xmltxt.value('(//./@id)[1]', 'nvarchar(20)') as id,
		that.xmltxt as xmltxt	/* this, that 모두 상관없음 지금 입력되고 있는 그 테이블*/
	from inserted that


/* xmltable3.xmltxt 데이터 예시

<개체 id="개념-화통도감">
  <표제>
    <이름 표기="국문">화통도감</이름>
    <이름 표기="한자">火筒都監</이름>
    <이름 표기="영문">Hwatongdogam</이름>
  </표제>
  <범주>
    <프로젝트>민족기록화</프로젝트>
    <클래스>개념</클래스>
    <기여 역할="작성">김지선</기여>
  </범주>
  <속성 틀="제도정보">
    <시대>고려/고려후기</시대>
    <유형>제도</유형>
    <성격>관청</성격>
    <시행처>고려</시행처>
    <시행일시>1327년</시행일시>
    <폐지일시>1388년</폐지일시>
    <정의>고려시대 화약·화기의 제조를 맡아보던 임시관청</정의>
  </속성>
  ......
</개체>
*/

/*1.  XML 문서로부터 특정 요소(Element) 값 추출 */ 

select id,
	xmltxt.value('(//범주/프로젝트)[1]', 'nvarchar(40)') as projcet,
	xmltxt.value('(//범주/클래스)[1]', 'nvarchar(40)') as class,
	xmltxt.value('(//속성/정의)[1]', 'nvarchar(256)') as definition
from xmltable3

/*2.  XML 문서로부터 특정 요소의 속성(Attribute) 값 추출 */ 

select id,
	xmltxt.value('(//속성/@틀)[1]', 'nvarchar(20)') as template
from xmltable3

/*3. 속성 값을 한정(Filtering)하여, 이에 해당하는 요소의 값 추출 */ 

select id,
	xmltxt.value('(//표제/이름[./@표기="국문"])[1]', 'nvarchar(40)') as hangeul,
	xmltxt.value('(//표제/이름[./@표기="한자"])[1]', 'nvarchar(40)') as hanja,
	xmltxt.value('(//표제/이름[./@표기="영문"])[1]', 'nvarchar(80)') as english
from xmltable3

/* 종합: XML 문서로부터 데이터 활용에 필요한 메타데이터 추출 */ 

select id,
	xmltxt.value('(//범주/프로젝트)[1]', 'nvarchar(40)') as projcet,
	xmltxt.value('(//범주/클래스)[1]', 'nvarchar(40)') as class,
	xmltxt.value('(//표제/이름[./@표기="국문"])[1]', 'nvarchar(40)') as hangeul,
	xmltxt.value('(//표제/이름[./@표기="한자"])[1]', 'nvarchar(40)') as hanja,
	xmltxt.value('(//표제/이름[./@표기="영문"])[1]', 'nvarchar(80)') as english,
	xmltxt.value('(//속성/@틀)[1]', 'nvarchar(20)') as template,
	xmltxt.value('(//속성/정의)[1]', 'nvarchar(256)') as definition
from xmltable3

/* 추출한 메타데이터를 가상 테이블(뷰, view)에 저장 */ 

create view xmlmeta as
select id,
	xmltxt.value('(//범주/프로젝트)[1]', 'nvarchar(40)') as projcet,
	xmltxt.value('(//범주/클래스)[1]', 'nvarchar(40)') as class,
	xmltxt.value('(//표제/이름[./@표기="국문"])[1]', 'nvarchar(40)') as hangeul,
	xmltxt.value('(//표제/이름[./@표기="한자"])[1]', 'nvarchar(40)') as hanja,
	xmltxt.value('(//표제/이름[./@표기="영문"])[1]', 'nvarchar(80)') as english,
	xmltxt.value('(//속성/@틀)[1]', 'nvarchar(20)') as template,
	xmltxt.value('(//속성/정의)[1]', 'nvarchar(256)') as definition
from xmltable3

select * from xmlmeta

/*클라스가 사건인 데이타를 뽑아내고싶다*/
select * from xmlmeta
where class='사건'

/*클라스가 사건인 데이타를 뽑아내어 xmltable3도 같이 보여줘라*/
select xmlmeta.*,xmltxt.query('//속성'), xmltxt.query('//개설') from xmlmeta
join xmltable3 on xmlmeta.id=xmltable3.id
where class='사건'

select * from xmlmeta