디지털 인문학 데이터베이스 개론

31
인인인인 인인인인인인 [ 인인 ] 인인인 인인인 인인인인인인 [ 인인 ] 2013. 2. 27. 인인인인인인인인 [email protected] www.xuanflute.com

Upload: baro-kim

Post on 27-Jun-2015

752 views

Category:

Education


7 download

DESCRIPTION

디지털 인문학에서 필수적으로 익혀야 되는 데이터베이스 관련 내용을 요약해 놓은 자료.

TRANSCRIPT

Page 1: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

디지털 인문학 데이터베이스 [ 요약 ]

2013. 2. 27.

김 현한국학중앙연구원

[email protected]

Page 2: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

1. 데이터베이스

1. 데이터베이스

Page 3: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

데이터베이스 (Database) 란 ?

다수의 응용 시스템들이 사용하기 위해 체계적으로 편성 , 저장된 데이터의 집합 An organized collection of information records

that can be accessed electronically. A collection of data organized so that various

programs can access and update the informa-tion.

1. 데이터베이스

Page 4: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

데이터베이스 구축의 목적

데이터 관리의 편리성 데이터 무결성 유지

데이터의 물리적 & 논리적 독립성 유지 데이터 중복의 최소화

데이터의 공유 다양한 접근 방법 제공 데이터 보안

1. 데이터베이스

Page 5: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

스키마 (Schema)

스키마 : 데이터베이스의 논리적 정의

1. 데이터베이스

릴레이션 (relation)행 (Row) 과 열 (Column) 로 이루어진 2 차원 테이블

(Table)튜플들의 집합

번호 이름 생년 몰년 본관

102 원균 1540 1597 원주원씨

103 이순신 1545 1598 덕수이씨

104 허균 1569 1618 양천허씨

105 임성주 1711 1788 풍천임씨

애트리뷰트 (attribute)릴레이션의 열 (column)엔티티 (entity) 가 보유하는 특성 표현field

튜플 (tuple)릴레이션의 행(row)record, entity

Page 6: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

데이터베이스 관리 시스템 (DBMS)

DBMS: Database Management System

이용자 ( 응용 프로그램 ) 과 데이터의 중재자로서 모든

응용 프로그램들이 데이터베이스에 접근하여 공동으로

활용할 수 있게끔 관리해 주는 소프트웨어

데이터베이스의 편리하고 효율적인 검색 , 저장을 위한

환경 제공

1. 데이터베이스

Page 7: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

2. SQL

2. SQL

Page 8: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

SQL(Structured Query Language)

데이터베이스의 검색과 조작을 쉽고 빠르게 하기 위해 개발된 데이터베이스 언어

1970 년대 초반 IBM 사의 관계형 데이터베이스 질의어로 개발 1973 SQARE: Structured Queries as Relational Expressions

1974 SEQUEL: Structured English as Query Language

1976 SQL: Structured Query Language

DBMS 마다 상이한 형태의 질의어를 제공하는 데서 오는 사용자의 불편 해소 필요성 대두 ⇒ 데이터베이스 질의어 표준화 요구 발생

1986 년 ANSI 와 ISO 가 공동으로 SQL 의 표준화 작업을 진행 (SQL-86)

관계형 DB 를 위한 SQL2(1992 년 ), 객체지향형 DB 를 위한 SQL3(1999), XML 데이터를 처리하기 위한 SQL4(2003), 멀티미디어 정보를 위한 SQL/MM 등 표준화 작업이 계속 진행

2. SQL

Page 9: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

데이터 조작어(DML : Data Manipulation Language)

데이터 정의어(DDL : Data Definition Language)

SQL 의 구성

•테이블에 데이터를 삽입하거나 ,

삭제하고 , 수정할 수 있는 기능•저장 데이터 중 조건에 맞는

것들을 검색하는 기능 .

•데이터가 저장되는 테이블 (릴레이션 ) 을 생성 , 변경 , 삭제하는 기능

•테이블에 저장된 데이터에 빨리 접근하도록 인덱스 (index) 를 정의하는 기능

•가상 테이블 : 뷰 (view) 를 정의할 수 있는 기능

2. SQL

Page 10: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

데이터 조작의 기본 4 동작2. SQL

동작 SQL

Create( 생성 , 삽입 ) INSERT

Read or Retrieve( 읽기 , 검색 ) SELECT

Update( 수정 , 갱신 ) UPDATE

Delete or Destroy( 삭제 ) DELETE

Page 11: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

SQL 문의 기본 구조

select 이름 , 생년 , 몰년 from 인물정보 where 생년 >1700 and 몰년 < 1900 order by 생년

☞ ‘ 인물정보’ 테이블에서 1700 년 이후에 태어나고 1900 년 전에 죽은 사람을 찾아 그들의 ‘이름’ , ‘ 생년’ , ‘ 몰년’을 ‘생년’ 순서대로 보여라

select 표시 열 from 테이블 where 행 제약 조건 order by 기준 열

2. SQL

Page 12: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

3. XML 데이터베이스의 기능

3. XML 데이터베이스의 기능

Page 13: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

일반적인 데이터베이스는 그것을 구성하는 정보의 조각 (데이터베이스의 행과 열 ) 에 문자나 숫자만을 담을 수 있는 데 반해 , XML 지원 데이터베이스는 XML 언어로 쓰여진 데이터를 담을 수 있는 기능을 지원

일반적인 DBMS 기능 + XML 데이터 타입 + XML 데이터 조작 메쏘드 지원

기사번호 국문기사

10001976

< 항목 ID="10001976">< 항목명 >

< 대표항목명 >< 지명 > 장서각 </ 지명 ></ 대표항목명 >< 한글항목명 > 장서각 </ 한글항목명 >< 한자항목명 > 藏書閣 </ 한자항목명 >

</ 항목명 >< 메타데이터 >

< 이칭별칭 />< 키워드 > 장서각 </ 키워드 >< 분야 > 문화 · 교육 / 교육 </ 대표분야 >< 유형 > 지명 / 시설 </ 대표유형 >< 지역 > 경기도 성남시 분당구 운중동 </ 지역 >< 시대 > 근대 / 일제강점기 | 현대 / 현대 </ 시대 >< 분야 > 문화 · 교육 / 교육 </ 분야 >< 유형 > 지명 / 시설 </ 유형 >< 위치 연관 ="1">< 공간 식별자 =" 성남 : 한국학중앙연구원 장서각 " /></ 위치 >< 집필자 > 문옥표 </ 집필자 >

</ 메타데이터 >< 본문 >

< 소표제 >[ 정의 ]</ 소표제 >< 문단 >< 기관 > 한국학중앙연구원 </ 기관 > 내에 있는 옛 이왕직도서관 (( 李王職圖書館 ).</

문단 >……< 삽도 >< 시청각 ID="P0148"> 장서각 - 전경 정면 </ 시청각 ></ 삽도 >

</ 본문 ></ 항목 >

XML 데이터베이스란 ?3. XML 데이터베이스의 기능

Page 14: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

데이터 타입 (Data Type)

문자형 : 문자열을 정의하기 위한 데이터 타입 CHAR: 8000 바이트 이하의 고정형 문자 . VARCHAR:  8000 바이트 이하의 가변형 문자 TEXT: 8000 바이트 이상의 문자열 데이터 . (0 ~ 2 GB) NCHAR, NVARCHAR, NTEXT : 유니코드 형식의 문자 데이터

정수형 : 소수점이 없는 숫자형 데이터 타입 BIGINT, INT, SMALLINT, TINYINT, BIT

실수형 : 소수점을 가진 숫자형 데이터 타입 NUMERIC, DECIMAL, FLOAT, REAL

XML: XML 문서를 위한 데이터 타입 XML (MS SQL 2005 이상 )

계층형 : 엔티티의 계층적 지위를 표현하기 위한 데이터 타입 HIERARCHYID (MS SQL 2008)

/, /1/, /2/, /3/1/, /3/2/1/, /3/2/1.5/, /3/2/3/ 공간형 : 지리 공간 데이터를 처리하기 위한 데이터 타입

GEOMETRY, GEOGRAPHY (MS SQL 2008)

3. XML 데이터베이스의 기능

Page 15: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

메쏘드란 ? 특정 유형의 개체에 대해 동작하는 서브 프로그램

a piece of code that is exclusively associated either with a

class or with an object

XML 데이터 조작 메쏘드

국문기사 .query(‘/ 항목 / 항목명 / 한글항목명’ )

3. XML 데이터베이스의 기능

컬럼 이름 메쏘드 XPath

Page 16: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

MS SQL 의 XML 데이터 조작 메쏘드

XML 데이터 조작 메쏘드

메쏘드 기능 반환값

query() XML 인스턴스에 대해 쿼리 검색된 XML 인스턴스

value() XML 인스턴스에서 값을 검색하여 정해진 형식으로 반환

검색된 XML 인스턴스의 값

exist() NULL 이 아닌 결과를 반환하는지 여부를 확인

TRUE/FALSE

modify() XML 데이터의 업데이트를 수행하도록 DML 문을 지정

반환값 없음

nodes() 여러 개의 XML 인스턴스를 여러 개의 행으로 반환

노드별로 추출된 XML 인스턴스를 담은 행 집합 ( 테이블 )

3. XML 데이터베이스의 기능

Page 17: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

4. XML 설계

4. XML DB 설계

Page 18: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

XML 기반 관계형 데이터베이스 설계의 3 원칙

1. 단위 노드의 XML 문서는 더 이상 분해하지 않고 , 하나의 XML 컬럼에 적재한다 .

2. 주요 메타데이터 요소는 별도 테이블의 독립 컬럼

데이터로 관리한다 . 3. XML 본문 컬럼과 메타데이터 컬럼의 데이터는 항상

일치되도록 한다 .

4. XML DB 설계

Page 19: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

3 원칙 (1): XML 문서의 원형 유지

‘ 단위 노드’로 취급되는 원시 XML 문서는 하나의 ‘ XML 컬럼’에 담기도록 한다 .

기사번호 국문기사

10001976

< 항목 ID=“10001976”> < 항목명 > < 대표항목명 > 장서각 </ 대표항목명 >

…… < 삽도 >< 시청각 ID=“P0148”> 장서각 – 전경 </ 시청각 ></ 삽도 ></ 항목 >

10000312

< 항목 ID=“10000312”> < 항목명 > < 대표항목명 >백헌집 </ 대표항목명 >

…… < 삽도 >< 시청각 ID=“P0149”>백헌집 표지 </ 시청각 ></ 삽도 ></ 항목 >

10002014

< 항목 ID=“10002014”> < 항목명 > < 대표항목명 > 정일당 강씨 사당 </ 대표항목명 >

…… < 삽도 >< 시청각 ID=“P0336”> 정일당 강씨 사당 - 전경 </ 시청각 ></ 삽도 ></ 항목 >

4. XML DB 설계

Page 20: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

3 원칙 (2): 주요 메타데이터의 관리

주요 메타데이터 요소는 별도의 정형 데이터로 관리한다 .

기사번호 한글제목

한자제목

분야 유형 지역 시대 위치

10001965

입학도설 入學圖說 문화유산 /기록유산

문헌 / 단행본 경기도 성남시 분당구 운중동

조선 / 조선 전기

성남 :한국학중앙연구원 장서각

기사번호 국문기사

10001965

< 항목 ID=“10001965”> < 항목명 > < 대표항목명 >『입학도설』</ 대표항목명 > < 한글항목명 > 입학도설 </ 한글항목명 > < 한자항목명 >入學圖說</ 한자항목명 > </ 항목명 > < 메타데이터 > < 분야 > 문화유산 / 기록유산</ 분야 > < 유형 > 문헌 / 단행본 </ 유형 > < 지역 > 경기도 성남시 분당구 운중동 </ 지역 > < 시대 > 조선 / 조선 전기 </ 시대 > < 위치 연관 ="2">< 공간 식별자 =" 성남 : 한국학중앙연구원 장서각 " /></ 위치 > </ 메타데이터 >

…… < 삽도 >< 시청각 ID=“P1219”> 입학도설 </ 시청각 ></ 삽도 ></ 항목 >

4. XML DB 설계

Page 21: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

3 원칙 (3): 텍스트 (XML) 와 메타데이터의 동기화

XML 본문과 여기에서 추출된 정형 데이터는 항상 일치되도록 한다

XML 본문과 추출된 정형 데이터의 동기화 : ‘ 가상 뷰’ 또는 ‘트리거’ 사용

트리거 (trigger):• 데이터의 변경시 자동적으로 동작하도록 예정된

프로그램 • a SQL procedure that initiates an action when

an event (INSERT, DELETE or UPDATE) occurs.

4. XML DB 설계

Page 22: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

5. XML DB 구현

5. 멀티미디어 지식 콘텐츠 적재를 위한 XML DB 구현

Page 23: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

데이터베이스 생성

Microsoft SQL Server Management Studio 데이터베이스 > 새 데이터베이스

5. XML DB 구현

Page 24: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

스키마 구현 (1)

원시 XML 문서의 저장 공간 : [텍스트 ]

열 이름 데이터 타입 데이터 소스 특성

기사번호 nvarchar(20)‘/ 항 목 ’ 요 소 의 ‘ ID’ 속성

Not null, pri-mary key

국문기사 xml 입력 데이터 Not null

영문기사 xml 입력 데이터 Null

USE 성남문화지도

CREATE TABLE 텍스트 (기사번호 nvarchar(20) NOT NULL,국문기사 xml NOT NULL,영문기사 xml NULL,CONSTRAINT [PK_텍스트 ] PRIMARY KEY CLUSTERED( 기사번호

ASC))

5. XML DB 구현

Page 25: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

스키마 구현 (2)

자료번호 자동 추출을 위한 트리거 설정 : [텍스트 ].[ 기사번호 ]

CREATE TRIGGER 번호처리 ON 텍스트 INSTEAD OF INSERTAS

INSERT INTO 텍스트 ( 기사번호 , 국문기사 )SELECT

t. 국문기사 .value('(/ 항목 /@ID)[1]', 'nvarchar(20)') AS 기사번호 ,

t. 국문기사 AS 국문기사FROM inserted t

5. XML DB 구현

Page 26: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

스키마 구현 (3)

메타데이터 관리를 위한 가상 뷰 : [ 안내 ]

열이름 데이터 형식 컬럼 데이터 경로

기사번호 nvarchar(20) 기사번호

한글제목 nvarchar(max) 국문기사 / 항목 / 항목명 / 대표항목명

한자제목 nvarchar(max) 영문기사 / 항목 / 항목명 / 한자항목명

영문제목 nvarchar(max) 영문기사 / 항목 / 항목명 / 대표항목명

국문정의 nvarchar(max) 국문기사 / 항목 / 본문 / 문단 [1]

영문정의 nvarchar(max) 영문기사 / 항목 / 본문 / 문단 [1]

분야 nvarchar(40) 국문기사 / 항목 / 메타데이터 / 분야

유형 nvarchar(40) 국문기사 / 항목 / 메타데이터 / 유형

지역 nvarchar(40) 국문기사 / 항목 / 메타데이터 / 지역

시대 nvarchar(40) 국문기사 / 항목 / 메타데이터 / 시대

위치 nvarchar(40) 국문기사 / 항목 / 메타데이터 / 위치 / 공간 /@ 식별자

위치연관 int 국문기사 / 항목 / 메타데이터 / 위치 /@ 연관

5. XML DB 구현

Page 27: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

스키마 구현 (3)

가상 뷰 생성을 위한 SQL 문

CREATE VIEW 안내 AS

SELECT

기사번호 ,

국문기사 .value(‘(/ 항목 / 항목명 / 대표항목명 )[1]’, ‘nvarchar(max)’) AS 한글제목 ,

국문기사 .value(‘(/ 항목 / 항목명 / 한자항목명 )[1]’, ‘nvarchar(max)’) AS 한자제목 ,

영문기사 .value(‘(/ 항목 / 항목명 / 대표항목명 )[1]’, ‘nvarchar(max)’) AS 영문제목 ,

국문기사 .value(‘(/ 항목 / 본문 / 문단 )[1]’, ‘nvarchar(max)’) AS 한글정의 ,

영문기사 .value(‘(/ 항목 / 본문 / 문단 )[1]’, ‘nvarchar(max)’) AS 영문정의 ,

국문기사 .value('(/ 항목 / 메타데이터 / 분야 )[1]', 'nvarchar(40)') AS 분야 ,

국문기사 .value('(/ 항목 / 메타데이터 / 유형 )[1]', 'nvarchar(40)') AS 유형 ,

국문기사 .value('(/ 항목 / 메타데이터 / 지역 )[1]', 'nvarchar(40)') AS 지역 ,

국문기사 .value('(/ 항목 / 메타데이터 / 시대 )[1]', 'nvarchar(40)') AS 시대 ,

국문기사 .value(‘(/ 항목 / 메타데이터 / 위치 / 공간 /@ 식별자 )[1]’, ‘nvachar(40)’) AS 위치 ,

국문기사 .value(‘(/ 항목 / 메타데이터 / 위치 /@ 연관 )[1]’, ‘int’) AS 위치연관

FROM 텍스트

5. XML DB 구현

Page 28: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

소스 데이터 입력

XML 문서를 [ 국문기사 ] 컬럼에 적재

INSERT INTO 텍스트 ( 국문기사 ) VALUES(CONVERT(xml, N‘< 항목 ID="10001642">

< 항목명 >< 대표항목명 >< 인명 > 이경석</ 인명 > 선생 묘</ 대표항목명 >< 한글항목명 > 이경석 선생 묘</ 한글항목명 >< 한자항목명 > 李景奭 先生 墓 </ 한자항목명 >

</ 항목명 >< 메타데이터 >

< 이칭별칭 ></ 이칭별칭 >< 키워드 >묘소 | 무덤 | 신도비</ 키워드 >< 분야 > 역사 / 전통시대 | 문화유산 / 유형유산</ 분야 >< 유형 > 유적 / 능묘</ 유형 >< 지역 > 경기도 성남시 분당구 석운동 </ 지역 >< 시대 > 조선 / 조선 후기 </ 시대 >

……

</ 항목 >’, 1))

5. XML DB 구현

Page 29: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

소스 데이터 입력

XML 문서를 [영문기사 ] 컬럼에 적재

UPDATE 텍스트 SET 영문기사 = CONVERT(xml, N‘< 항목 ID="10001642">

< 항목명 >< 대표항목명 >Tomb of < 인명 >Yi Gyeongseok</ 인명 ></ 대표항목명 >

</ 항목명 >< 메타데이터 >

< 분야 >History / Traditional Period | Cultural Heritage / Tangible Cultural Heritage</ 분야 >< 유형 >Archaeological Sites / Tombs</ 유형 >< 지역 >San 16-18 Seogun-dong, Bundang-gu, Seongnam-si, Gyeonggi-do</ 지역 >< 시대 >Joseon</ 시대 >

……

</ 항목 >’, 1)WHERE 기사번호 = ‘10001642’

5. XML DB 구현

Page 30: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

입력 데이터 조회

메터데이터 및 전자문서 연계 조회

기사번호 한글제목 한자제목

분야 유형 지역 시대 위치 전자문서

10001642

이경석 선생 묘

李景奭 先生 墓

문화유산/유형유산

유적 / 능묘

경기도 성남시 분당구 석운동

조선 /조선 후기

성남 : 이경석 묘 및 신도비

< 항목 ID=“10001642”> < 항목명 > …… </항목명 > ……</ 항목 >

10001657

이곤 사당 李坤 祠堂 종교 /유교 유적 / 건물

경기도 성남시 분당구 판교동

현대 /현대

성남 :이곤사당

< 항목 ID=“10001657”> < 항목명 > …… </항목명 > ……</ 항목 >

10001976

장서각 藏書閣 문화 ·교육 /교육

지명 / 시설 성남시 분당구 운중동

근대 /일제강점기 | 현대 / 현대

성남 :한국학중앙연구원 장서각

< 항목 ID=“10001976”> < 항목명 > …… </항목명 > ……</ 항목 >

SELECT 안내 .*, 텍스트 . 국문기사 FROM 안내 , 텍스트 WHERE 안내 . 기사번호 =텍스트 . 기사번호

XML 전자문서의 갱신에 따라 메타데이터 뷰 자동 갱신

5. XML DB 구현

Page 31: 디지털 인문학 데이터베이스 개론

인문정보 데이터베이스 [ 요약 ]

적재 데이터 수정 / 삭제

XML 데이터의 갱신

update 텍스트 set 국문기사 =N‘………’ where 기사번호 =‘………’

Delete 텍스트 where 기사번호 =‘………’

데이터 삭제

5. XML DB 구현