'정보처리기사 > 데이터베이스' 카테고리의 다른 글

11. 데이터베이스 고급기능(1)  (0) 2017.08.01
10. 정규화  (0) 2017.08.01
09. 개체-관계(E-R) 모델  (0) 2017.08.01
08. 데이터모델링 및 설계  (0) 2017.08.01
07. SQL(Structure Query Language)  (0) 2017.08.01







제1절 데이터베이스 고급기능

제1항 트랜잭션 개념

(1) 트랜잭션의 정의

1) 데이터베이스 응용 프로그램에서 하나의 논리적 기능을 수행하는 연산자들의 집합

2) 데이터베이스 시스템에서 복구 및 병행 시행 시 처리되는 작업의 논리적 단위

3) 데이터베이스의 내용에 접근 혹은 수정하려는 단일 사용자나 응용 프로그램에 의해 수행되는 일련의 과정

 

(2) 트랜잭션의 속성

1) 원자성(atomicity)

① 트랜잭션 내의 모든 명령은 완벽히 수행되던지모두 취소되어야 함 (all or nothing)

② 트랜잭션은 일부만 수행된 상태로 종료되어서는 안 됨

2) 일관성(consistency)

① 트랜잭션이 성공적으로 완료되면 언제나 일관성 있는 데이터베이스 상태 유지

② 시스템이 가지고 있는 고정요소는 트랜잭션 수행전과 트랜잭션 수행 완료 후에 같아야 한다.

3) 독립성격리성(isolation)

① 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어들 수 없다.

4) 영속성(durability)

① 트랜잭션이 일단 그 실행을 성공적으로 완료하면 그 결과는 영속적이어야 함

 

(3) 트랜잭션의 특징

1) 트랜잭션은 작업의 논리적 단위

2) 하나의 트랜잭션은 commit 되거나 rollback 되어야 함

3) 트랜잭션은 일반적으로 회복의 단위가 됨

 

제2항 트랜잭션의 연산

(1) commit

1) 한 작업의 논리적 단위가 성공적으로 끝났고데이터베이스가 다시 일관된 상태에 있으며 이 트랜잭션이 행한 갱신 연산이 완료된 것을 트랜잭션 관리자에게 알려주는 연산

2) SQL 명령어로 수행된 결과를 실제 물리적 디스크로 저장하는 SQL 명령

(2) Rollback

1) 개념

① 트랜잭션의 실행이 실패하였음을 알리는 연산자로 트랜잭션이 수행한 결과를 원래의 상태로 원상 복귀시키는 연산

② 트랜잭션들이 장애가 발생하여 데이터베이스가 손상되었을 때 손상되기 이전의 정상 상태로 복구하는 작업

 

2) 장애의 유형

① 트랜잭션 장애

ü 입력데이터 오류불명확한 데이터 등 내부의 비 정상적인 상황으로 인한 장애

② 시스템 장애

ü 하드웨어 오작동소프트웨어의 손상교착상태 등에 의한 장애

③ 미디어 장애

ü 저장장치인 디스크 블록의 손상이나 디스크 헤드의 충돌 등에 의해 데이터베이스가 물리적으로 손상된 상태

 

(3) SAVEPOINT

1) 개념

① SAVEPOINT는 하위 트랜잭션을 실현하기 위한 데이터베이스 언어 SQL 구문중 하나이다트랜잭션의 특정 지점에 이름을 지정하고그 지점 이전에 수행한 작업에 영향을 주지 않고그 지점 이후에 수행한 작업을 롤백(rollback)할 수 있다.

② SAVEPOINT는 데이터베이스를 이용하는 응용 프로그램에서 복잡한 오류 복구 최리를 실현하는데 효과적이다여러 문이 갖춰진 트랜잭션 도중에 에러가 발생했을 경우, SAVEPOINT를 사용하면 전체 트랜잭션을 롤백하지 않고 오류에서 복귀할 수 있다.

 

2) 사용예

① SAVEPOINT name에서 해당 지점에 이름을 지정하고 ROLLBACK TO SAVEPOINT name으로 롤백하면 된다.

 BEGIN;

  INSERT INTO tbl VALUES (1);

SAVEPOINT savepoint_example;

  INSERT INTO tbl VALUES (2);

ROLLBACK TO SAVEPOINT savepoint_example;

  INSERT INTO tbl VALUES (3);

COMMIT;

 

 

제3항 트랜잭션의 상태

 



 

(1) 활동(active)

1) 트랜잭션이 실행중인 상태

(2) 실패(failed)

1) 오류가 발생하여 중단된 상태

(3) 철회(aborted)

1) 비정상 종료되어 rollback 연산을 수행한 상태

(4) 부분완료(partially committed)

1) Commit 연산이 실행되기 직전 상태

(5) 완료(committed)

1) 성공적으로 완료된 상태

 

 

 

 

제4항 데이터베이스제어(보안무결성병행제어회복기법개념

(1) 보안

1) 보안의 개요

① 데이터베이스의 일부분 또는 전체에 대해서 권한이 없는 사용자가 액세스하는 것을 금지하기 위해 사용되는 기술

② 무결성은 권한이 있는 사용자로부터 데이터베이스를 보호하는 것이고보안은 권한이 없는 사용자로부터 데이터베이스를 보호하는 것

 

2) 보안의 특성

① 보안을 위한 데이터 단위는 테이블 전체로부터 특정 테이블의 특정한 행과 열 위치에 있는 특정한 데이터 값에 이르기까지 다양함

② 각 사용자들은 일반적으로 서로 다른 객체에 대하여 다른 접근권리 또는 권한을 갖게 됨

③ SQL의 경우에는 보안 규정에 포함된 독립적인 기능으로 뷰 기법(view mechanism)과 권한 인가 서브시스템(authorization subsystem)이 있음

 

3) 암호화 기법

① 개인키(대칭키암호 방식(private key encryption)

ü 암호화할 때 사용하는 키와 복호화할 때 사용하는 키가 동일한 암호 알고리즘 방식

ü 속도가 빠르지만키 배송 문제가 있다.

ü DES, 3DES, AES, SEED, ARIA

 

② 공개키(비대칭키암호 방식(public key encryption)

ü 암호화할 때 사용하는 키와 복호화 할 때 사용하는 키가 서로 다른 암호 알고리즘 방식

ü 속도는 느리지만키 배송 문제르 해결 함.

ü 전자서명 송신자의 개인키 송신자의 공개키

ü 메일수신자의 공개키 수신자의 개인키

 

③ 하이브리드 암호 시스템

ü 대칭키 암호와 공개키 암호를 조합한 암호 방식을 하이브리드 암호 시스템이라고 한다.

 

 

(2) 병행제어(concurrency control)

1) 개념

① 다중 프로그램의 이점을 활용하여 동시에 여러 개의 트랜잭션을 병행 수행할 때동시에 실행되는 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않도록 상호 작용을 제어하는 것

 

2) 병행제어의 목적

① 데이터베이스의 공유를 최대화한다.

② 시스템의 활용도 최대화한다.

③ 사용자에 대한 응답시간 최소화한다.

④ 데이터베이스 일관성 유지한다.

 

3) 병행수행의 문제점

병행제어 기법에 의한 제어 없이 트랜잭션들이 데이터베이스에 동시에 접근하도록 허용할 경우 다음과 같은 문제점이 발생한다.

 

① 갱신 분실(lost update)

ü 두개 이상의 트랜잭션이 같은 자료를 공유하여 갱신할 때 갱신 결과의 일부가 없어지는 현상

② 모순성(inconsistency)

③ 불일치 분석문제(inconsistent analysis problem)

ü 트랜잭션이 병행 수행될 때 원치 않는 자료를 이용함으로써 발생하는 문제

④ 연쇄복귀(cascading rollback)

ü 병행수행 되던 트랜잭션들 중 어느 하나에 문제가 생겨 rollback하는 경우 다른 트랜잭션들도 함께 rollback 되는 현상

⑤ 비완료 의존성문제임시 갱신(uncommitted dependency problem)

ü 트랜잭션이 실패한 후 회복되기 전에 다른 트랜잭션이 실패한 결과를 참조하는 현상

 

4) 병행제어 기법의 종류

① 로킹(locking)

ü 개념

• 데이터의 접근을 상호 배타적으로 만들어 병행제어를 하는 방법

• 하나의 트랜잭션이 데이터를 액세스하는 동안 다른 트랜잭션이 그 데이터 항목을 액세스할 수 없도록 하는 방법

• 트랜잭션들이 어떤 로킹 단위를 액세스하기 전에 lock(잠금)을 요청해서 lock이 허락되어야만 그 로킹 단위를 액세스할 수 있도록 하는 기법이다.

 

ü 종류

• 공유 로크(S, shared lock)

• 배타 로크(X, exclusive lock)

• 의도 로크(I, intention lock)

• 의도공유 로크(IS, intention-shared lock)

• 배타의도 로크(IX, intention-exclusive lock)

• 공유의도 독점로크(SIX, shared and intention-exclusive lock)

 

ü 2단계 로킹(two-phase locking) 규약

• 각 트랜잭션의 로크 요청과 해제(unlock) 요청을 2단계로 실시한다.

• 직렬성을 보장하는 대표적인 로킹 규약이다.

• 직렬성을 보장하는 장점은 있지만교착상태를 예방할 수 없다는 단점이 있다.

    

 

교착상태(deadlock)

두개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태를 가리킨다.

 

교착상태 필요조건

1. 상호배제

최소한 하나는 비공유 방식(한번에 하나의 프로세스 자원만 사용)으로 점유

2. 점유와 대기

 - 하나의 자원을 점유하고 있고다른 하나가 점유 자원에 접근하려고 기다림

3. 비선점

점유된 자원은 강제로 해제될 수 없다

4. 순환대기

- P0, P1, P2 순으로 프로세스의 순환이 있어야 하고, P1은 P0의 자원을 기다리고, P2는 P1의 자원을 기다린다.

 

 

ü 로킹 단위(locking granularity)

• 병행제어에서 한꺼번에 로킹할 수 있는 객체의 크기를 의미함.

• 데이터베이스파일레코드필드 등은 로킹 단위가 될수 있다.

• 로킹 단위가 크면 로크수는 작아져서 관리하기 쉽지만병행성 수준이 낮아지고로킹 단위가 작으면 로크수가 많아져서 관리하기 복잡하고 오버헤드가 증가하지만 병행성 수준이 높아진다.

• 페이지 차원(page-level)의 잠금 테이블 차원(table-level)의 잠금 행차원(row-level)의 잠금

 

② 타임스탬프 순서(time stamp ordering)

ü 직렬성 순서를 결정하기 위해 트랜잭션 간의 처리 순서를 미리 선택하는 기법들 중에서 가장 보편적인 방법이다.

ü 트랜잭션과 트랜잭션이 읽거나 갱신한 데이터에 대해 트랜잭션이 실행을 시작하기 전에 시간표(time stamp)를 부여하여 부여된 시간에 따라 트랜잭션 작업을 수행하는 기법이다.

ü 교착상태가 발생하지 않는다.

 

(3) 회복

1) 회복의 정의

① 데이터베이스 운영 시 데이터베이스에 손상이 가해졌을 때 손상되기 이전의 상태로 되돌리는 작업

 

2) 장애의 종류

① 트랜잭션 장애(transaction failure)

② 시스템 장애(system failure)

③ 미디어 장애(media failure)

④ 네트워크 장애(network failure)

 

3) 회복기법

① 트랜잭션으로 쓰기가 수행될 때마다 데이터베이스가 변경되기 전에 로그 레코드를 생성

② Undo

ü Log에 저장된 정보를 이용하여 가장 최근의 변경(트랜잭션부터 취소하여 데이터베이스를 복구하는 것

③ redo

ü 트랜잭션의 오류시 가장 최근의 정상상태로 데이터베이스를 되돌린 후 트랜잭션을 다시 실행

 

리눅스(linux) 파일시스템

 

Minix

과거 미닉스(minix)에서 사용되었던 파일시스템으로 가장 오래되고 기본이 되는 파일 시스템

 

Ext2(second extended file system, 2차 확장 파일 시스템)

- ext2는 캐시(cache)에 저장되어 있는 데이터들을 디스크로 저장하는 도중에 만약 시스템이 다운되거나 여러 문제가 발생할 경우 파일 시스템이 손상되는 단점

- ext2는 fsck(file system check)라는 파일 시스템 복구기능을 제공하는데복구시간 동안 시스템 사용이 불가능하다는 단점

 

Ext3(extended file system 3, 확장된 파일 시스템 3)

- ext2의 단점을 보완한 ext3 파일시스템으로 시스템의 무결성은 물론 뛰어난 복구기능까지 제공

- ext3은 저널링(journaling) 이라는 기술을 제공

 

저널링(Journaling)

기존의 fsck에 걸리는 시간을 단축하기 위해 데이터를 디스크에 쓰기전에 로그(log)에 데이터를 남겨 시스템이 비정상적인 셧다운 발생시에도 로그를 사용해 fsck보다 빠르고 안정적인 복구기능을 제공하는 기술

 

 


 

제5항 분산 데이터베이스

(1) 분산 데이터베이스 정의

1) 분산 데이터베이스

① 논리적으로는 하나의 시스템에 속하지만 물리적으로는 네트워크를 통해 연결된 여러개의 컴퓨터 사이트에 분산되어 있는 데이터베이스

② 동질 분산 데이터베이스 관리시스템과 이질 분산 데이터베이스 관리 시스템으로 구분할 수 있음

③ 수평 분할은 전역 테이블을 구성하는 튜플들을 부분집합으로 분할하는 방법을 말함

④ 데이터의 처리나 이용이 많은 지역에 데이터베이스를 위치시킴으로써 데이터의 처리가 가능한 해당 지역에서 해결될 수 있도록 하는 데이터베이스 시스템

 

2) 분산 데이터베이스의 구성요소

① 분산 처리기

ü 자체적 처리능력을 지닌 지리적으로 분산되어 있는 컴퓨터 시스템

② 분산 데이터베이스

ü 지리적으로 분산되어 있는 데이터베이스해당 지역의 특성에 맞게 구성됨

③ 통신 네트워크

ü 분산 처리기를 통신망으로 연결하여 논리적으로 하나의 시스템이 되도록 하는 네트워크 시스템

 

(2) 분산 데이터베이스 목표

1) 위치 투명성

① 데이터가 물리적으로 저장되어 있는 곳을 알 필요 없이 논리적인 입장에서 데이터가 모두 자신의 사이트에 있는 것처럼 처리하는 특성

② 액세스하려는 데이터베이스의 실제 위치를 알 필요가 없다.

2) 중복 투명성(replication transparency)

① 트랜잭션이 데이터의 중복 개수나 중복 사실을 모르고도 데이터 처리가 가능함

② 동일 데이터가 중복되더라도 사용자는 하나의 데이터만 존재하는 것처럼 사용

3) 병행 투명성(concurrency transparency)

① 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 안 받음

4) 장애 투명성(failure transparency)

① 트랜잭션, DBMS, 네트워크컴퓨터 장애에도 불구하고 트랜잭션을 정확하게 처리함

 

(3) 분산 데이터베이스 특징

1) 분산 데이터베이스의 장점

① 지역 자치성이 높음

② 효용성과 융통성이 높음

③ 점진적 시스템 용량 확장이 용이

④ 신뢰성과 가용성이 높음

⑤ 특정한 사이트에서 장애가 발생하더라도 다른 사이트는 계속 운용할 수 있음

⑥ 데이터의 공유성 향상

⑦ 질의 처리(query processing) 시간의 단축

⑧ 분산제어가 가능하고 시스템의 성능이 향상됨

 

2) 분산 데이터베이스의 단점

① 중앙 집중 시스템보다 구현하는 복잡하고 처리 비용이 증가

② 자료의 중앙 통제시 저장된 자료의 일관성 유지가 용이함

 

3) 미들웨어 (middle-ware)

① 복잡한 이기종 환경에서 응용 프로그램과 운영환경 간에 원만한 통신을 이룰수 있게 해 주는 소프트웨어

② 서로 다른 기종간의 서버와 클라이언트들을 연결해주는 소프트웨어

③ ODBC

ü 분산 환경에서 서로 다른 데이터베이스를 연결하여 사용할 수 있게 하는 미들웨어

 

4) 분산 데이터베이스 설계

① 설계시 고려사항

ü 작업부하(work load)의 노드별 분산 정책

ü 지역의 자치성 보장 정책

ü 데이터의 일관성 정책

ü 사이트나 회선의 고장으로부터 회복 기능

ü 통신 네트워크를 통한 원격 접근 가능

 

② 데이터베이스 서버(server)의 선정 시 조건

ü 고성능의 주기억장치와 빠른 입∙출력 연산등이 수행될 수 있는 기능이 지원되어야 함

ü 다양한 사용자 인터페이스가 지원되어야 함.

ü 대용량의 자료를 저장탐색할 수 있으며분산 데이터 관리가 지원되어야 함.


'정보처리기사 > 데이터베이스' 카테고리의 다른 글

12. 데이터베이스 실기 기출문제풀이  (0) 2017.08.01
10. 정규화  (0) 2017.08.01
09. 개체-관계(E-R) 모델  (0) 2017.08.01
08. 데이터모델링 및 설계  (0) 2017.08.01
07. SQL(Structure Query Language)  (0) 2017.08.01






제1항 관계 데이터베이스의 정규화

(1) 정규화

1) 개요

① 데이터베이스의 릴레이션이나 튜플을 불필요한 중복없이수정할 때 의도하지 않았던 불필요한 사실이 추가삭제갱신되는 일이 없도록 DB를 재구성하는 과정을 공식화한 과정

 

2) 필요성

① 중복에 따른 갱신이상 현상의 제거로 일관성 유지

ü (갱신이상삽입이상삭제이상 현상제거)

② 효율적인 검색이 가능

③ 중복의 제거로 인한 저장 공간의 최소화

④ 데이터 신규 발생시 DB 재구성의 필요성을 감소(유연한 구조)

 

3) 목적

① 정보의 중복을 피하기(최소화하기 위해

② 삽입삭제갱신 이상의 발생을 방지

③ 효율적인 데이터 조작

 

4) 기본 개념

① 하나 이상의 릴레이션을 두개 이상의 릴레이션으로 분해(decomposition) 시키는 과정을 포함

② 무손실 분해(lossless decomposition)

ü 분해한 릴레이션을 조인하여 저장 정보의 손실없이 원래의 릴레이션을 생성할 수 있는 것

 

5) 정규화 단계

 


 

(2) 함수적 종속성 (Functional Dependency)

1) 정의

① 정규화 과정에서 중요하게 이용되는 개념으로서 관계형 데이터베이스의 릴레이션에서 애트리뷰트간의 관계를 정의할 때 사용되는데 좋은 릴레이션을 판단하는 기준을 정하는 요소로 사용된다.

② 어떤 릴레이션 R에서 애트리뷰트 X의 값 각각에 대해 애트리뷰트 Y의 값이 오직 하나만 연관되어 있을 때 Y는 X에 함수적으로 종속된다.

③ 함수적 종속성은 애트리뷰트들 사이의 관계에 대한 제약조건으로 애트리뷰트 X가 Y의 결정자이면 Y는 X에 함수적으로 종속된다.

 

2) 함수적 종속성 표기

①  Y

ü X는 Y의 결정자(determinant), Y는 X의 종속자(dependent)이다.

 

② 결정자(determinant)

ü 결정자는 주어진 릴레이션에서 다른 애트리뷰트를 고유하게 결정하는 하나 이상의 애트리뷰트이다.

ü 기본적으로 기본키는 결정자이다.

학번

이름

학년

700100

김아무개

1

700200

류아무개

1

700200

박아무개

2

700300

최아무개

3

700400

한아무개

3

 

        학번 → 이름학번 → 학년 함수 종속성 성립.  이름 → 학번은 성립하지 않는다.

 

3) 종류

① 완전 함수적 종속성

ü 어떤 릴레이션 R에서 속성 X가 속성 집합일 때속성 Y가 속성 A에 함수적으로 종속하면서속성 X의 어떤 진부분 집합에도 함수적으로도 종속하지 않으면속성 Y가 속성 X에 완전하게 함수적으로 종속한다.

진부분 집합

 

집합 A={1,3}의 진부분집합은 공집합, {1}, {3}으로 모두 3개다

 

ü 여러 개의 속성이 모여서 하나의 기본키를 이룰 경우 기본키 전체가 있어야지만 어떤 속성이 결정될 때 완전 함수적 종속이다.

 

② 부분 함수적 종속성

ü 완전하게 함수적으로 종속하지 않으면 부분 함수적 종속성을 갖는다.

ü 여러 개의 속성이 모여서 하나의 기본키를 이룰 경우기본키를 구성하는 부분 속성만으로도 결정되어지면 부분 함수적 종속이다.

 

 

 

③ 이행 함수적 종속성

ü  Y 이고, Y  Z 일 때 X → Z를 만족하는관계를 이행적 함수 종속이라 한다.

학번’  ‘지도교수’ 이고, ‘지도교수’  ‘학과’ 일 때 학번’  ‘학과를 만족

 

(3) 이상현상

1) 개념

① 데이터의 중복으로 인해 릴레이션을처리할 때 발생한느 곤란한 현상

② 데이터베이스 사용자의 의도와는 다르게 다른 데이터가 삽입삭제갱신되는 현상

 

학번

과목

수강료

700100

데이터베이스

10,200

700200

데이터통신

10,150

700200

운영체제

10,250

700300

전자계산기구조

10,100

700400

데이터베이스

10,200

 

2) 갱신이상(update anomaly)

① 릴레이션 R에서 특정 속성값 갱신시에 중복 저장되어 있는 속성중 하나만 갱신하고 나머지는 갱신하지 않아서 발생하는 데이터의 불일치 현상

② 예제

ü 데이터베이스의 수강료를 200원 인상할 경우 ‘700100’번 학생의 수강료만 갱신하고, ‘700400’번 학생의 수강료는 200원 인상하지 않은 경우

 

3) 삭제이상(delete anomaly)

① 릴레이션 R에서 튜플을 삭제할 경우원하지 않는 정보까지도 삭제되는 현상

② 예제

ü 학번이 ‘700200’인 학생을 삭제할 경우 데이터통신의 수강료가 10,150이라는 정보까지 잃게 되는 경우

 

4) 삽입이상(insertion anomaly)

① 릴레이션 R에 특정 튜플을 삽입시원하지 않는 불필요한 정보까지도 삽입해야 하는 현상그렇지 않으면 삽입이 되지 않는 현상

② 예제

ü 암호학’ 과목을 삽입하기 위해서는 학번’ 이 기본키이므로 아무 학번이라도 함께 넣어야 하는 경우

 

→ 정규화 과정을 거쳐서 이러한 이상 현상을 줄여 나갈 수 있음

 

(4) 데이터 종속성과 정규화

1) 1정규형 (1NF, first normal form)

① 모든 도메인의 값이 원자값 (atomic value) 를 가지고 있을 때 1차 정규형에 속한다.

② 반복/복수의 속성값 갖는 속성제거

 

 

반복집합이 있는 비정규 릴레이션

 

반복 집합을 제거하여 모든 속성값이 원자값으로 구성된 1NF로 만듬.

 

2) 2정규형 (2NF, second normal form)

① 어떤 릴레이션 R이 제1정규형을 만족하면서키가 아닌 모든 속성이 기본키에 완전 함수적 종속인 릴레이션

② 부분 함수 종속성 제거

 

 

1정규형 릴레이션에서 부분함수 종석성을 제거함.

 

모든 속성이 키에 대해서 완전 함수적 종속인 제2정규형 릴레이션을 만듬.

 

3) 3정규형 (3NF, third normal form)

① 어떤 릴레이션 R이 2NF이고키에 속하지 않은 애트리뷰트들이 기본키에 이행적 함수 종속이 아닐 경우 제3정규형(3NF)에 속한다.

② 이행적 종속성 제거

 

 

2정구형 릴레이션에서 이행적 함수 종속을 제거함.

 

이행적 함수 종속을 없앤 제3정규형 릴레이션을 만듬.

 

 

4) BCNF (boyce-codd normal form)

① 정의

ü 모든 결정자가 후보키(candidate key)인 관계

ü 결정자이면서 후보키가 아닌 것 제거

 

 

 

 

5) 4정규형

① 다치종속성(multivalued dependency)

ü 릴레이션 R의 속성 X, Y, Z가 있을 때 (X, Y)에 대응하는 Z의 집합이 X값에만 종속되고, Y값에 무관하면 Z는 X에 다치종속이라 하고, X  Y로 표기한다.

ü 다치종속성이란 속성들이 집합 값을 가지지 못하게 하는 제1정규형의 함수 종속성에 기인한다.

ü 다치종속의 예

이름

거래처

부양자

김사원

SAMSUNG

김부양

김사원

SAMSUNG

김부군

김사원

LGU+

김부양

김사원

LGU+

김부군

 

• 사원테이블에는 사원이 담당하는 거래처와 가족인 부양자가 각각 여러 개씩 존재한다.

• 거래처는 사원의 업무에 관련된 사항이며부양자는 사원의 급여에 관련된 사항이다거래처와 부양자 간에는 아무 관련성이 없다.

• 테이블의 일관성을 유지하기 위해서 사원마다 거래처와 부양 가족의 모든 가능한 조합들을 모두 포함해야 하며이로 인해서 거래처와 부양자가 여러 개 중복될 수 밖에 없다.

• 이런 제약 조건은 사원 테이블에 대한 다치 종속으로 표현된다두개의 독립적인 1:N 관계인 사원:거래처와 사원:부양자가 동일한 테이블에 존재할 때 다치 종속성이 발생한다.

• 자료의 성격에 따라서 사원:거래처 테이블과 사원:부양자 테이블로 분해한다면 중복은 사라진다.

이름

거래처

 

이름

부양자

김사원

SAMSUNG

 

김사원

김부양

김사원

LGU+

 

김사원

김부군

 

 

 

6) 5정규형

① 모든 조인 종속은 후보키를 통해서만 성립된다.

② 조인종속

ü 한 테이블을 분해했다가 분해된 결과들을 다시 조인하면 당연히 원래의 테이블로 복원된다고 기대하지만 그렇지 못한 경우가 있다다시 조인하면 예상하지 못했던 튜플들이 생성되는 경우가 발생한다.

 

ü 조인 종속(JD, join dependency)은 테이블을 분해한 결과를 다시 조인했을 때 원래의 테이블과 동일하게 복원되는 제약조건이다조인 종속성은 다치 종속의 개념을 더 일반화한 것이다.


+ Recent posts