30
11 11 ㅎㅎ • XML 과 과과과과과과 • XML 과 과과과과과과 과과 과과 XML ㅎ ㅎㅎㅎㅎㅎㅎ

XML과 데이터베이스 XML과 데이터베이스 매핑 관계

Embed Size (px)

DESCRIPTION

ㅎㅎ. XML 과 데이터베이스. XML과 데이터베이스 XML과 데이터베이스 매핑 관계. 11 장 . XML 과 데이터베이스. 학습목표 XML 과 데이터베이스 개념 비교 XML 질의어 학습 XML 문서와 데이터베이스의 매핑 관계 학습 XML 문서와 객체 - 관계 매핑 설계 방법 학습. 데이터베이스란 ? 어느 조직에서 다수의 응용 시스템이 공유해서 사용할 수 있도록 통합 , 저장된 운영 데이터의 집합 데이터베이스의 필요성 데이터 검색의 효율성 데이터 빠른 갱신성 데이터 일관성 데이터 중복성 방지. - PowerPoint PPT Presentation

Citation preview

Page 1: XML과 데이터베이스 XML과 데이터베이스 매핑 관계

1111 장장 ㅎㅎ

• XML 과 데이터베이스• XML 과 데이터베이스 매핑 관계

XML 과 데이터베이스XML 과 데이터베이스

Page 2: XML과 데이터베이스 XML과 데이터베이스 매핑 관계

2

학습목표

XML 과 데이터베이스 개념 비교 XML 질의어 학습 XML 문서와 데이터베이스의 매핑 관계 학습 XML 문서와 객체 - 관계 매핑 설계 방법 학습

11 장 . XML 과 데이터베이스

Page 3: XML과 데이터베이스 XML과 데이터베이스 매핑 관계

3

데이터베이스란 ?어느 조직에서 다수의 응용 시스템이 공유해서 사용할 수 있도록 통합 , 저장된 운영 데이터의 집합

데이터베이스의 필요성데이터 검색의 효율성데이터 빠른 갱신성데이터 일관성데이터 중복성 방지

Section 01 XML 과 데이터베이스

Page 4: XML과 데이터베이스 XML과 데이터베이스 매핑 관계

4

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

데이터베이스를 생성 / 관리하며 , 관리 대상인 데이터베이스로부터 사용자의 요구에 대한 정보를 제공할 수 있는 프로그램 집합

데이터베이스 스키마스키마는 데이터베이스 구조와의 제약 조건에 대한 명세이며 데이터베이스 및 데이터 값의 제약 조건에 대한 정의의 총칭

스키마 3 단계• 외부 스키마

• 개념 스키마

• 내부 스키마

Section 01 XML 과 데이터베이스

Page 5: XML과 데이터베이스 XML과 데이터베이스 매핑 관계

5

외부 스키마 (external schema)전체 데이터베이스의 논리적 부분사용자나 응용 프로그래머가 직접 필요로 하는 DB 구조서브 스키마 (sub schema), 뷰 (view) 포함여러 개의 외부 스키마가 존재할 수 있음

개념 스키마 (conceptual schema)모든 애플리케이션에 대해 하나의 전체 통합된 데이터베이스각 응용에서 필요로 하는 데이터를 종합한 조직 전체의 DB 구조전체 사용자를 위한 데이터베이스의 구조 및 접근 권한 , 보안 정책 , 무결성 규칙의 명세를 포함

내부 스키마 (internal schema)물리적 저장 장치 면에서 본 전체 DB 구조개념 스키마의 물리적 저장 구조를 정의데이터 저장 구조의 세부 사항과 데이터베이스에 대한 접근 경로 , 데이터 항목 표현 방법 , 레코드의 물리적 순서 , 인덱스 사용 등을 기술

Section 01 XML 과 데이터베이스

Page 6: XML과 데이터베이스 XML과 데이터베이스 매핑 관계

6

관계형 데이터베이스의 기본 구조

속성 = 데이터 항목 , 데이터 필드개체 성질이나 상태 기술 , 데이터의 가장 작은 논리적 단위개체

데이터베이스가 표현하려고 하는 유 / 무형 정보 개체개념적 정보 세계에서의 정보 단위투플 = 레코드

데이터 저장의 기본 단위 , 관련있는 데이터를 묶어서 저장한 것관계 : 여러 개체의 연관성을 의미

Section 01 XML 과 데이터베이스

이름 학번 전화번호 주소

차임표 20020001 02-99-3874 서울 한남동

손지창 20020002 02-48-4847 서울 강남동

차태현 20020003 02-32-4546 서울 신사동

학 생(student)

속성

관계스킴

튜플

[ 그림 11-1] 관계형 데이터베이스의 기본 구조

Page 7: XML과 데이터베이스 XML과 데이터베이스 매핑 관계

7

개체 관계도

매핑 원소 수에 다른 개체 분류

Section 01 XML 과 데이터베이스

고객 상품구입

X Y

일대일 (1:1)

X Y

일대다 (1:n)

X Y

다대다 (n:n)

Page 8: XML과 데이터베이스 XML과 데이터베이스 매핑 관계

8

Section 01 XML 과 데이터베이스

SQL(Structured Query Language)데이터베이스 질의언어DML(Data Manipulation Language) 과 DDL(Data Definition Language) 로 구분

SQL 문

DDL

DML

Create Table

Alter Table

Drop Table

Select

Insert

Delete

Update

테이블 생성

테이블 구조 변경

테이블 삭제

데이터 조회

데이터 삽입

데이터 삭제

데이터 수정

Page 9: XML과 데이터베이스 XML과 데이터베이스 매핑 관계

9

CREATE TABLE 테이블이름( 속성이름 데이터타입 [NOT NULL] )

DROP TABLE Student

CREATE TABLE Student( sno int primary key not null, name varchar(10) not null, address varchar(50) )

기본 테이블 생성 :CREATE TABLE

기본 테이블 제거와 변경 :DROP TABLE

DROP TABLE 테이블이름

Section 01 XML 과 데이터베이스

테이블 생성문 형식

학생 테이블 생성 예

테이블 제거문 형식

학생 테이블 삭제 예

Page 10: XML과 데이터베이스 XML과 데이터베이스 매핑 관계

10

SELECT 열 _ 목록 FROM 테이블 _ 목록 WHERE 조건

SELECT sno, name FROM Student WHERE sno = 's100'

UPDATE 테이블이름 SET 열 _ 이름 = 바꿀 _ 데이터WHERE 조건

UPDATE Student SET name = ' 홍길동‘ WHERE sno = 's100'

데이터 검색문 : SELECT

데이터 갱신문 : UPDATE

Section 01 XML 과 데이터베이스

데이터 검색문 형식

S100 인 학생 검색 예

데이터 갱신문 형식

S100 인 학생 이름을 홍길동으로 바꾸는 예

Page 11: XML과 데이터베이스 XML과 데이터베이스 매핑 관계

11

INSERT INTO 테이블이름 [( 열 _ 이름 목록 )] VALUES ( 열 _ 값 목록 )

INSERT INTO Student (sno, name, address) VALUES (100, ' 홍길동‘ , ’ 서울 신사동 11 번지‘ )

DELETE FROM 테이블이름[WHERE 조건 ]

DELETE FROM StudentWHERE sno = 's100'

Section 01 XML 과 데이터베이스

데이터 삽입문 : INSERT

데이터 삭제문 : DELETE

데이터 삽입문 형식

데이터 삽입 예

데이터 삭제문 형식

S100 인 학생 삭제 예

Page 12: XML과 데이터베이스 XML과 데이터베이스 매핑 관계

12

데이터베이스 관리 언어의 역할데이터베이스에 저장될 데이터의 구조 정의

정의된 구조에 따라 데이터를 저장 / 삭제하는 역할

사용자나 데이터베이스 관리자의 질문을 처리

Section 01 XML 과 데이터베이스

Page 13: XML과 데이터베이스 XML과 데이터베이스 매핑 관계

13

Section 01 XML 과 데이터베이스

XML 질의 언어XML-QL• 반구조적 데이터를 위한 질의 언어• 사용자 정의 가능한 태그와 입력 요소를 다루는 것이 가능

XQL(XML Query Language)• XSL 에서의 패턴 매치 구문과 유사한 질의 형태

QUILT• XML-QL 장점인 질의 결과 재구성과 XQL 장점인 간편성을 고려해서 만든

언어

XQuery• XML 구조를 이용해서 전체가 구조화되거나 부분적으로 구조된 XML

문서에 대한 복잡한 질의 수행• Quilt 에서 유래 후 , 다른 언어들이 가지고 있는 유용한 기능 추가• XQuery 에서 질의는 하나의 표현으로 나타남• 다양한 구조와 외형을 가진 몇 개의 표현이 지원• Xpath 에 근거하고 있으며 , 요소 생성자 , For Let When Return, 함수와

산술연산 표현 , 한정 [*] 표현 , 조건 표현 , 테이터 타입의 수정과 검증에 사용되는 표현 등의 방식이 지원

Page 14: XML과 데이터베이스 XML과 데이터베이스 매핑 관계

14

Section 02 XML 과 데이터베이스 매핑 관계

XML 이 시스템 통합에 유리한 이유플랫폼 , 운영체제 , 프로그래밍 언어 등에 완전히 독립적W3C 가 규정한 표준

개체 표현 방식

Page 15: XML과 데이터베이스 XML과 데이터베이스 매핑 관계

15

테이블과 XML 문서 매핑

Section 02 XML 과 데이터베이스 매핑 관계

Page 16: XML과 데이터베이스 XML과 데이터베이스 매핑 관계

16

속성 중심 매핑

속성 중심의 데이터 확장

Section 02 XML 과 데이터베이스 매핑 관계

[ 그림 11-7] 속성 중심의 데이터 확장

[ 그림 11-6] 속성 중심의 매핑 표현

Page 17: XML과 데이터베이스 XML과 데이터베이스 매핑 관계

17

요소 중심 매핑

요소 중심 데이터 확장

Section 02 XML 과 데이터베이스 매핑 관계

[ 그림 11-8] 요소 중심 매핑 표현

[ 그림 11-9] 요소 중심의 데이터 확장

Page 18: XML과 데이터베이스 XML과 데이터베이스 매핑 관계

18

DTD 나 XML 스키마가 정의된 경우 매핑

Section 02 XML 과 데이터베이스 매핑 관계

[ 그림 11-10] DTD 에 따른 XML 문서 매핑 관계

Page 19: XML과 데이터베이스 XML과 데이터베이스 매핑 관계

19

다중 테이블 기반 관계 매핑

Section 02 XML 과 데이터베이스 매핑 관계

[ 그림 11-11] 관계의 매핑 표현

Page 20: XML과 데이터베이스 XML과 데이터베이스 매핑 관계

20

Section 02 XML 과 데이터베이스 매핑 관계

XML 과 객체 - 관계 매핑 설계1 단계 : XML 스키마 (DTD) 가 객체 스키마로 매핑2 단계 : 클래스가 테이블로 , 기본형이 컬럼으로 매핑

포인터와 참조 관계는 기본키와 외래키 관계로 매핑

Page 21: XML과 데이터베이스 XML과 데이터베이스 매핑 관계

21

Section 02 XML 과 데이터베이스 매핑 관계

DTD 에 의한 XML 문서와 테이블간의 매핑

[ 그림 11-12] DTD 에 의한 XML 문서와 테이블 간의매핑

Page 22: XML과 데이터베이스 XML과 데이터베이스 매핑 관계

22

Section 02 XML 과 데이터베이스 매핑 관계

순차 매핑 설계 : DTD 를 고려한 테이블 매핑의 설계 방식

DTD 에서 순차적으로 표현된 요소는 클래스 속성으로 매핑

테이블은 각 속성에 따른 컬럼으로 매핑

기본키와 참조키를 고려해서 테이블 컬럼을 표현하고 , 정규화를 거쳐 문제가 없는지 점검

DTD, 클래스 , 테이블 스키마간의 순차 매핑 관계XML` DTD 클래스 테이블

<S>

<X> </X>

<Y> </Y>

<Z> </Z>

</S>

<!ELEMENT S(X,Y,Z)>

<!ELEMENT X (#PCDATA)>

<!ELEMENT Y (#PCDATA)>

<!ELEMENT Z (#PCDATA)>

class S {

String X;

String Y;

String Z;

}

cretae table S (

X varchar(10),

Y varchar(10),

Z varchar(10))

Page 23: XML과 데이터베이스 XML과 데이터베이스 매핑 관계

23

Section 02 XML 과 데이터베이스 매핑 관계

순차 매핑 설계 : DTD 를 고려한 테이블 매핑의 설계 방식순차 매핑 관계

XML DTD 클래스 테이블

<A F="data">

<B> </B>

<C>

<D> </D>

<E> </E>

</C>

</A>

<!ELEMENT A(B,C)>

<!ELEMENT B (#PCDATA)>

<!ATTLIST A

F CDATA #REQUIRED>

<!ELEMENT C (D,E)>

<!ELEMENT D (#PCDATA)>

<!ELEMENT E (#PCDATA)>

class A {

String b;

String f;

C c ; }

class C {

String d;

String e; }

cretae table A (

B varchar(10),

F varchar(10),

C_fk varchar(10))

cretae table C (

C_pk varchar(10),

D varchar(10),

E varchar(10) )

Page 24: XML과 데이터베이스 XML과 데이터베이스 매핑 관계

24

선택 매핑 설계클래스 속성으로 매핑되고 , 클래스 속성은 다시 테이블 컬럼으로 매핑선택인 요소는 클래스 속성과 테이블 컬럼으로 매핑될 때 null 값을 가질 수 있다

Section 02 XML 과 데이터베이스 매핑 관계

[ 그림 11-15] 선택 매핑 관계

XML DTD 클래스 테이블

<A F="data">

<C> <D/>

</C>

</A>

----------

<A F="data">

<B> </B>

</A>

<!ELEMENT A(B | C)>

<!ELEMENT B (#PCDATA)>

<!ATTLIST A

F CDATA #IMPLIED>

<!ELEMENT C (D | E)>

<!ELEMENT D (#PCDATA)>

<!ELEMENT E (#PCDATA)>

class A {

String b=null;

String f=null;

C c=null ; }

class C {

String d=null;

String e=null; }

cretae table A (

B varchar(10) null,

F varchar(10) null,

C_fk varchar(10) null)

cretae table C (

C_pk varchar(10) null,

D varchar(10) null,

E varchar(10) null)

Page 25: XML과 데이터베이스 XML과 데이터베이스 매핑 관계

25

Section 02 XML 과 데이터베이스 매핑 관계

반복되는 자식 요소 매핑 설계 부모 요소에서 여러 번 나타나는 자식 요소는 클래스에서 여러 값을 가질 수 있는 속성으로 매핑

이것은 다시 테이블의 여러 컬럼으로 매핑되거나 , 다른 외부 테이블로 매핑 = 프로퍼티 테이블

반복 횟수를 미리 알 수 있다면 테이블에서 여러 개의 컬럼으로 표현할 수 있다 .

Page 26: XML과 데이터베이스 XML과 데이터베이스 매핑 관계

26

Section 02 XML 과 데이터베이스 매핑 관계

반복되는 자식 요소 매핑 설계 한정되어 반복되는 자식 요소 매핑 관계

무한정 반복되는 자식 요소 매핑 관계

XML DTD 클래스 테이블

<A> <B> </B> <B> </B> <B> </B> <C> </C></A>

<!ELEMENT A (B,B,B,C)><!ELEMENT B (#PCDATA)><!ELEMENT C (#PCDATA)>

class A {String[] b ;String c ; }

cretae table A (B1 varchar(10),B2 varchar(10),B3 varchar(10),C varchar(10) )

XML DTD 클래스 테이블

<A> <B> </B> <B> </B> <C> </C></A>

<!ELEMENT A (B+, C)><!ELEMENT B (#PCDATA)><!ELEMENT C (#PCDATA)>

class A {String[] b ;String c ; }

cretae table A (A_pk varchar(10),C varchar(10) )

cretae table B (A_fk varchar(10),B varchar(10) )

Page 27: XML과 데이터베이스 XML과 데이터베이스 매핑 관계

27

선택 요소 매핑 설계부모 요소에서 선택 자식 요소를 갖는 경우에 클래스에서 자식 요소는 null 값을 가질 수 있는 속성으로 매핑테이블은 null 값을 가질 수 있는 컬럼으로 매핑

Section 02 XML 과 데이터베이스 매핑 관계

[ 그림 11-18] 선택 요소 매핑 관계

XML DTD 클래스 테이블

<A>

<B> </B>

<C> </C>

<C> </C>

</A>

<!ELEMENT A (B?, C*)>

<!ELEMENT B (#PCDATA)>

<!ELEMENT C (#PCDATA)>

class A {

String b=null ;

String[] c=null ;

}

cretae table A (

A_pk varchar(10),

B varchar(10) null )

cretae table C

A_fk varchar(10),

C varchar(10) null )

Page 28: XML과 데이터베이스 XML과 데이터베이스 매핑 관계

28

혼합 내용 매핑 설계혼합된 내용은 크기를 알 수 없고 , null 값을 가질 수 있는 클래스로 매핑테이블에서는 프로퍼티 테이블을 생성하여 매핑

Section 02 XML 과 데이터베이스 매핑 관계

[ 그림 11-19] 혼합 내용 요소 매핑 관계

XML DTD 클래스 테이블

<A> data <B> </B> <C> </C></A>

<!ELEMENT A (#PCDAT,B,C)*><!ELEMENT B (#PCDATA)><!ELEMENT C (#PCDATA)>

class A {String[] pd=null ;String[] b=null ;String[] c=null ; }

cretae table A (A_pk varchar(10) )

cretae table BA_fk varchar(10),B varchar(10) null )

cretae table CA_fk varchar(10),C varchar(10) null )

cretae table pdA_fk varchar(10),pd varchar(10) null )

Page 29: XML과 데이터베이스 XML과 데이터베이스 매핑 관계

29

속성 매핑 설계XML 문서의 속성은 기본 타입으로 매핑단일 값을 갖는 속성은 기본 타입으로 매핑다수 값을 갖는 속성도 다수값을 갖는 기본 타입으로 매핑ID 는 기본키로 매핑IDREF 와 IDREFS 는 외래키로 매핑

Section 02 XML 과 데이터베이스 매핑 관계

[ 그림 11-20] 속성 매핑 관계

XML DTD 클래스 테이블

<A D="data"> <B> </B> <C> </C></A>

<!ELEMENT A (B, C)><!ATTLIST A D IDREFS #IMPLIED><!ELEMENT B (#PCDATA)><!ELEMENT C (#PCDATA)>

class A {String b ;String c ;String[] d ; }

cretae table A (A_pk varchar(10),B varchar(10),C varchar(10) )

cretae table DA_fk varchar(10),D varchar(10) )

Page 30: XML과 데이터베이스 XML과 데이터베이스 매핑 관계

Thank you