xml과 데이터베이스 xml과 데이터베이스 매핑 관계
DESCRIPTION
ㅎㅎ. XML 과 데이터베이스. XML과 데이터베이스 XML과 데이터베이스 매핑 관계. 11 장 . XML 과 데이터베이스. 학습목표 XML 과 데이터베이스 개념 비교 XML 질의어 학습 XML 문서와 데이터베이스의 매핑 관계 학습 XML 문서와 객체 - 관계 매핑 설계 방법 학습. 데이터베이스란 ? 어느 조직에서 다수의 응용 시스템이 공유해서 사용할 수 있도록 통합 , 저장된 운영 데이터의 집합 데이터베이스의 필요성 데이터 검색의 효율성 데이터 빠른 갱신성 데이터 일관성 데이터 중복성 방지. - PowerPoint PPT PresentationTRANSCRIPT
1111 장장 ㅎㅎ
• XML 과 데이터베이스• XML 과 데이터베이스 매핑 관계
XML 과 데이터베이스XML 과 데이터베이스
2
학습목표
XML 과 데이터베이스 개념 비교 XML 질의어 학습 XML 문서와 데이터베이스의 매핑 관계 학습 XML 문서와 객체 - 관계 매핑 설계 방법 학습
11 장 . XML 과 데이터베이스
3
데이터베이스란 ?어느 조직에서 다수의 응용 시스템이 공유해서 사용할 수 있도록 통합 , 저장된 운영 데이터의 집합
데이터베이스의 필요성데이터 검색의 효율성데이터 빠른 갱신성데이터 일관성데이터 중복성 방지
Section 01 XML 과 데이터베이스
4
데이터베이스 관리 시스템 (DBMS)
데이터베이스를 생성 / 관리하며 , 관리 대상인 데이터베이스로부터 사용자의 요구에 대한 정보를 제공할 수 있는 프로그램 집합
데이터베이스 스키마스키마는 데이터베이스 구조와의 제약 조건에 대한 명세이며 데이터베이스 및 데이터 값의 제약 조건에 대한 정의의 총칭
스키마 3 단계• 외부 스키마
• 개념 스키마
• 내부 스키마
Section 01 XML 과 데이터베이스
5
외부 스키마 (external schema)전체 데이터베이스의 논리적 부분사용자나 응용 프로그래머가 직접 필요로 하는 DB 구조서브 스키마 (sub schema), 뷰 (view) 포함여러 개의 외부 스키마가 존재할 수 있음
개념 스키마 (conceptual schema)모든 애플리케이션에 대해 하나의 전체 통합된 데이터베이스각 응용에서 필요로 하는 데이터를 종합한 조직 전체의 DB 구조전체 사용자를 위한 데이터베이스의 구조 및 접근 권한 , 보안 정책 , 무결성 규칙의 명세를 포함
내부 스키마 (internal schema)물리적 저장 장치 면에서 본 전체 DB 구조개념 스키마의 물리적 저장 구조를 정의데이터 저장 구조의 세부 사항과 데이터베이스에 대한 접근 경로 , 데이터 항목 표현 방법 , 레코드의 물리적 순서 , 인덱스 사용 등을 기술
Section 01 XML 과 데이터베이스
6
관계형 데이터베이스의 기본 구조
속성 = 데이터 항목 , 데이터 필드개체 성질이나 상태 기술 , 데이터의 가장 작은 논리적 단위개체
데이터베이스가 표현하려고 하는 유 / 무형 정보 개체개념적 정보 세계에서의 정보 단위투플 = 레코드
데이터 저장의 기본 단위 , 관련있는 데이터를 묶어서 저장한 것관계 : 여러 개체의 연관성을 의미
Section 01 XML 과 데이터베이스
이름 학번 전화번호 주소
차임표 20020001 02-99-3874 서울 한남동
손지창 20020002 02-48-4847 서울 강남동
차태현 20020003 02-32-4546 서울 신사동
학 생(student)
속성
관계스킴
튜플
[ 그림 11-1] 관계형 데이터베이스의 기본 구조
7
개체 관계도
매핑 원소 수에 다른 개체 분류
Section 01 XML 과 데이터베이스
고객 상품구입
X Y
일대일 (1:1)
X Y
일대다 (1:n)
X Y
다대다 (n:n)
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
테이블 생성
테이블 구조 변경
테이블 삭제
데이터 조회
데이터 삽입
데이터 삭제
데이터 수정
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 과 데이터베이스
테이블 생성문 형식
학생 테이블 생성 예
테이블 제거문 형식
학생 테이블 삭제 예
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 인 학생 이름을 홍길동으로 바꾸는 예
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 인 학생 삭제 예
12
데이터베이스 관리 언어의 역할데이터베이스에 저장될 데이터의 구조 정의
정의된 구조에 따라 데이터를 저장 / 삭제하는 역할
사용자나 데이터베이스 관리자의 질문을 처리
Section 01 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, 함수와
산술연산 표현 , 한정 [*] 표현 , 조건 표현 , 테이터 타입의 수정과 검증에 사용되는 표현 등의 방식이 지원
14
Section 02 XML 과 데이터베이스 매핑 관계
XML 이 시스템 통합에 유리한 이유플랫폼 , 운영체제 , 프로그래밍 언어 등에 완전히 독립적W3C 가 규정한 표준
개체 표현 방식
15
테이블과 XML 문서 매핑
Section 02 XML 과 데이터베이스 매핑 관계
16
속성 중심 매핑
속성 중심의 데이터 확장
Section 02 XML 과 데이터베이스 매핑 관계
[ 그림 11-7] 속성 중심의 데이터 확장
[ 그림 11-6] 속성 중심의 매핑 표현
17
요소 중심 매핑
요소 중심 데이터 확장
Section 02 XML 과 데이터베이스 매핑 관계
[ 그림 11-8] 요소 중심 매핑 표현
[ 그림 11-9] 요소 중심의 데이터 확장
18
DTD 나 XML 스키마가 정의된 경우 매핑
Section 02 XML 과 데이터베이스 매핑 관계
[ 그림 11-10] DTD 에 따른 XML 문서 매핑 관계
19
다중 테이블 기반 관계 매핑
Section 02 XML 과 데이터베이스 매핑 관계
[ 그림 11-11] 관계의 매핑 표현
20
Section 02 XML 과 데이터베이스 매핑 관계
XML 과 객체 - 관계 매핑 설계1 단계 : XML 스키마 (DTD) 가 객체 스키마로 매핑2 단계 : 클래스가 테이블로 , 기본형이 컬럼으로 매핑
포인터와 참조 관계는 기본키와 외래키 관계로 매핑
21
Section 02 XML 과 데이터베이스 매핑 관계
DTD 에 의한 XML 문서와 테이블간의 매핑
[ 그림 11-12] DTD 에 의한 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))
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) )
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)
25
Section 02 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) )
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 )
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 )
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) )
Thank you