데이터 모델링

데이터베이스 2014. 10. 24. 00:43

데이터 모델

1. 구조 : 데이터 정적 성질
2. 연산 : 데이타 동적성질
3. 제약조건 : 데이터의 논리제약
 
개체 : 다른것과 구별되는 객체

개체 타입 : 이름과 속성들로 정의

개체 집합 : 개체 인스턴스 들의 집합(개체 모임)

단순 속성 : 더이상 작은 요소들로 분할할수 없는 속성

복합 속성 : 몇개의 단순속성으로 분해할수 있는 속성

단일값 속성 : 특정 개체에 대해 하나의 값만 지님 예)이름

다중값 속성 : 한 개체에 대해 여러값을 가질수 있음 예)취미

유도 속성 : 다른 속성이나 개체가 가지고있는 값으로 부터 유도되어 결정될 경우

저장 속성 : 유도속성을 생성하는데 사용된 속성

널 속성 : 널 값을 갖는 속성

관계 타입 : 개체 집합들 사이의 대응, 즉 매핑을 의미

[학생] - <등록> - [과목]

전체 참여 : A-B관계에서 개체집합 A와 모든 개체가 A-B관계에 참여 
예) 교수 - 학과 관계

부분 참여 : A-B관계에서 개체집합 A의 일부 개체만 A-B관계에 참여
예) 학생 - 과목 관계

존재 종속 : 어떤 개체 B의 존재가 A의 존재에 종속될때, B는 A에 존재종속
  A : 주개체, B : 종속개체(주개체가 존재함으로 인해 존재)

약한 개체타입 : 자신의 속성만으로는 키를 명세할수 없는 개체 타입
강한 개체타입 : 자신의 속성으로 구성된 키를 가진 개체 타입


*논리적 데이타 모델

<릴레이션 스키마 모델> : 개체와 관계성을 모두 테이블로 정의
<네트워크 데이타 모델> : 스키마 다이어그램
<계층 데이타 모델> : 사이클이 없음(네트워크 데이타 모델과 차이)

'데이터베이스' 카테고리의 다른 글

데이터 종속성, 정규화  (0) 2014.10.24
데이터베이스 접근  (0) 2014.10.24
무결성과 보안  (0) 2014.10.24
병행제어  (0) 2014.10.24
데이터베이스 정규화  (0) 2014.10.24

데이터 종속성, 정규화

데이터베이스 2014. 10. 24. 00:42

1. 삭제 이상 : 투플을 삭제함으로써 유지되어야할 정보까지도 삭제되는 연쇄삭제 현상이 일어나 정보손실이 발생하는것

2. 삽입 이상 : 어떤 데이타를 삽입해야 할때 불필요한 데이터를 삽입해야 하는것

3. 갱신 이상 : 중복된 투플 중에서 속성 값 만을 갱신시킴으로써 정보의 모순성이 생기는 현상

속성들 간의 종속성을 분석해서 하나의 릴레이션에 기본적으로 하나의 종속성이 되도록 분해하는 과정을 정규화라고 함

 

1. 정보 표현의 무손실 : 하나의 스키마에서 다른 스키마로 변환시킬때 정보 손실이 있어선 안됨

2. 최소 데이타의 중복성 : 중복으로 인한 여러가지 이상을 제거할수 있기 때문

3. 분리의 원칙 : 하나의 독립된 관계성은 별도의 릴레이션으로 분리시켜 표현

 

함수 종속 : 속성 X값에 대해 시간에 관계없이 항상 속성 Y의 값이 오직 하나만 연관되어 있을때, Y는 X에 함수 종속이라 함

    X(결정자) -> Y(종속자)

     


'데이터베이스' 카테고리의 다른 글

데이터 모델링  (0) 2014.10.24
데이터베이스 접근  (0) 2014.10.24
무결성과 보안  (0) 2014.10.24
병행제어  (0) 2014.10.24
데이터베이스 정규화  (0) 2014.10.24

데이터베이스 접근

데이터베이스 2014. 10. 24. 00:41

임의 접근 시간
- 헤드가 임의의 장소에서 원하는 트랙에 있는 레코드를 찾아 메인 메모리의 버퍼로 데이터를  전송하는데 걸리는 시간
- 접근시간 = 탐구시간(트랙 찾는시간) + 회전지연시간 + 데이터전송시간

데이타베이스 시스템에서 가장 중요한 성능 개선 초점은 디스크 접근 횟수를 최소화 하는것
- 디스크 배치, 저장하는 방법이 중요한 문제

<디스크 관리자>
- 운영체제의 한 구성요소로 모든 물리적 입출력 연산에 대한 책임을 지고 있음
- 디스크 관리자는 물리적 디스크 주소를 알고있어야함

<화일관리자>
- 디스크 관리자를 이용해서 DBMS가 디스크에 저장된 저장된 데이터베이스를 취급할수 있도록 지원함

<저장화일>
- 저장화일은 화일이름 또는 화일ID로 식별되기 때문에 페이지 세트내에서 유일해야 함

<저장레코드>
- 레코드 번호 또는 레코드 ID로 식별되는데, 저장화일 내에서는 유일,  보통화일뿐 아니라 전체디스크 내에서 유일함.
- 레코드ID <페이지번호, 슬롯번호> 로 구성

시스템이 얼마동안 삽입 삭제 연산을 계속 실행하고 나면 처음에 논리적 순서에 따라 물리적으로 인접했던 페이지들이 

더 이상 물리적으로 인접하지 않음. 따라서 포인터를 이용해 각 페이지 헤드에 다음 페이지 물리적 디스크 주소를 저장함

(헤드에 모든 제어정보 저장)


디스크는 보통 지정된 페이지(트랙0)에 정보(빈페이지, 자유공간, 데이터..)를 저장함

이 페이지를 디스크 디렉터리 또는 페이지 세트 디렉터리 라고 함


디스크관리자는 화일관리자로 하여금 물리적 디스크 입출력에 대한 세부적인 사항을 알 필요 없이 논리적 페이지로만 

동작할 수 있게 지원함


화일관리자는 DBMS로 하여금 페이지 입출력에 대한 세부적인 사항에 대해 알 필요 없이 저장 화일과 저장 레코드 만으로 

동작  이런 기능을 저장레코드관리 라고함

저장레코드는 내부적으로 레코드ID RID를 통해 식별됨. 이 방법은 레코드가 한 페이지 안에서 이동이 일어날때 RID를 변경시킬 

필요없이 페이지의 해당 슬롯내용만 변경해 주면 되는 이점을 가지고 있음

RID : <페이지번호, 슬롯번호>


<순차 방법>
레코드들의 물리적 순서가 레코드들의 논리적 순서와 같게 순차적으로 저장


<인덱스 방법>
레코드에 접근하기 위해 인덱스를 찾아, 그 인덱스가 가리키는 주소를 따라가 원하는 레코드를 접근할 수 있도록 데이타를 저장하는 방법

 


 - 다중 리스트 화일 : 하나의 인덱스 값마다 하나의 데이타 레코드 리스트를 구축


 

 

B+-, B-트리다른점

- B+트리는 키값을 찾아가는 경로만 제공

- 순차 세트의 모든 노드가 순차적인 연결리스트로 되어있음. 따라서 키값을 효율적으로 접근할수 있음  (순차접근이 빠름)


'데이터베이스' 카테고리의 다른 글

데이터 모델링  (0) 2014.10.24
데이터 종속성, 정규화  (0) 2014.10.24
무결성과 보안  (0) 2014.10.24
병행제어  (0) 2014.10.24
데이터베이스 정규화  (0) 2014.10.24

무결성과 보안

데이터베이스 2014. 10. 24. 00:38

<무결성>
- 데이타 베이스의 무결성이란 데이터의 정밀성, 정확성을 의미
- 사용자가 데이터를 사용할때 무결성(깨끗)을 헤지치 않아야함

<무결성 서브 시스템>
- 데이타베이스 시스템은 무결성을 유지하기 위해 DBMS구성요소 가지고있음
- 무결성 규정을 관리 유지 하고 트랜잭션이 수행하는 갱신 연산이 무결성 규정에 위반
  되지 않는지를 검사

뮤결성 규정은 규정 이름, 검사 시기, 제약 조건, 위반 조치 등을 포함

<무결성 규정 요건>
1. 고급 언어 사용
2. 카탈로그 또는 사전에 저장(질의 할수 있음)
3. 시스템에 의해 바로 실행

<무결성 규정의 종류>
1. 상태 제약 - 일관성있는 상태 조건 명세
2. 과도 제약 - 다른상태로 변환되는 과정 조건 명세
3. 집합 제약 - 투플 집합 전체에 관한 규정
4. 투플 제약 - 처리되고 있는 투플에 적용 규정
5. 즉시 제약 - 디스크에 변경이 일어날때마다 매번 저장
6. 지연 제약 - 디스크에서 가져온 값이 모두 변경되면 디스크에 저장(로그를 둠)

<트리거>
- 무결성을 유지하는 프로그램

데이터베이스 보안 
- 불법적인 폭로, 변경, 파괴로부터 데이터 보호

<직접 접근 제어>
- 가장 쉬운 방법은 암호 사용
- 일반적인 방법은 권한 테이블 사용(사용자, 허가 데이타, 허용 연산, 허가 조건 포함)

<간접 접근 제어>
- 임의 접근 제어 방식
- 암호화 기법은 데이타를 뒤섞은뒤 다른 사람이 그대로 사용할수 없도록 하는것

 

<권한 부여 테이블>

- 시스템은 모든 사용자에 대한 권한 테이블을 하나의 테이블로 종합해서 관리

 

<보안 집행기>

- 데이터베이스를 마음대로 접근할수 있기 때문에 접근 요청이 오면 권한 테이블을 검사해 접근을 

   허가할 것인지 거부할 것인지 결정

 

<뷰 기법>

- 테이블에 직접 접근하지 못하고 view를 통해 접근

- 보안에 민감한 데이터를 권한이 없는 사용자로부터 은닉시킬수 있음, 불법적인 접근 예방 가능

- 단점 : 갱신, 삽입, 삭제 연산에 제약

 

<테이블 생성자>

- 테이블에 대한 모든 권한 가짐

- 권한 일부를 다른 사용자에게 부여 가능

- 테이블 제거 권한은 부여 불가

 

<GRANT/REVOKE 기법>

- SQL에서 권한부여는 GRANT명령문에 의해 명세됨

 DBA : GRANT INSERT, DELETE ON STUDENT TO U1;

DBA가 사용자 U1에게 STUDENT 릴레이션에 대한 삽입과 삭제 권한을 부여

 

 DBA : GRANT SELECT ON STUDENT TO U2 WITH GRANT OPTION;

DBA가 사용자 U2에게 STUDENT 릴레이션 검색 기능 부여,

GRANT OPTION은 다른 사용자에게 권한 부여할수 있음

 

 U2 : GRANT SELECT ON STUDENT TO U3;

U2가 사용자 U3에게 STUDENT 릴레이션 검색 기능 부여

 

 DBA :  REVOKE SELECT ON STUDENT FROM U2 CASCADE;

U2에게 검색 기능을 회수 시킴, CASCADE는 U2가 U3에게 부여한 권한까지 취소 시킴

 

만약 GRANT OPTION FOR가 사용되면 접근 권한을 취소하는 것이 아니라 다른 사용자에게 권한을 

부여할수 있게 한 권한 자체를 취소함

 

<데이터 암호화>

허가 받지 않은 사람이 데이터나 메세지의 내용을 알수 없도록 은폐 시키기 위해 데이타를 암호로 바꾸는것

 

'데이터베이스' 카테고리의 다른 글

데이터 종속성, 정규화  (0) 2014.10.24
데이터베이스 접근  (0) 2014.10.24
병행제어  (0) 2014.10.24
데이터베이스 정규화  (0) 2014.10.24
데이터베이스론 이석호 솔루션  (0) 2014.10.24

병행제어

데이터베이스 2014. 10. 24. 00:37

트랜잭션 : 하나의 논리적 기능을 수행하기 위한 작업 단위

1. 원자성 : 연산 결과를 반영할때 모두 반영하거나, 모두 반영하지 않아야 함

2. 일관성 : 실행후에도 일관성유지(데이터가 모순되면안됨)

3. 격리성 : 트랜잭션이 수행중에 다른 트랜잭션이 접근할수 없음

4. 영속성 : 연산이 성공적으로 수행되면 결과값을 반영해야함

commit(완료) : 트랜잭션이 성공적으로 실행됬음을 의미

Rollback(복원) : 트랜잭션이 실패하였음을 의미, 데이터 베이스를 복원해야 한다, 그렇지 않으면 데이터베이스가 모순됨

소멸성 저장장치 : 메인 메모리와 같이 시스템이 붕괴되면 정보도 손실
비소멸성 저장장치 : 디스크나, 테이프와 같이 시스템이 붕괴되도 정보가 유지
안전성 저장장치 : 정보 손실이 발생하지 않게 여러개의 비소멸성 저장장치로 구성(동일 데이터를 여러 군대 저장)


회복 : 데이터베이스를 장애 발생 전의 일관된 상태로 복원하는것

일관된 상태 : 오류가 없는 상태를 말함(데이터베이스 모순이 없는 상태)

장애 : 정해진 명세대로 시스템이 작동하지 않는것

1. 트랜잭션 장애 - 트랜잭션 내의 논리적 오류나 내부문제(데이터베이스 불량, 불명..)
2. 시스템 장애 - 교착현상, 하드웨어 오동작, 메인메모리 정보 손실
3. 미디어 장애 - 디스크 헤더 붕괴나 고장으로 인해 데이터베이스 일부 혹은 전부가 손상

데이타 중복
덤프 - 주기적으로 다른 저장장치에 복제
로그 - 일지라고도 하며 데이타베이스가 변경될때마다 데이타 옛값과 새로운 값을 별도 화일에 저장

Redo : 가장 최근 복제본으로 복원시킨뒤 로그를 재실행 함으로써 데이터를 복원
Undo : 로그를 이용하여 모든 변경을 취소하여 원래의 데이터베이스로 복원

<T1, start> : T1 트랜잭션 실행 시작
<T1, X1, v1, v2> : 트랜잭션 T1이 데이타아이템 X1값을 v1에서 v2로 변경함
<T1, Commit> : T1트랜잭션 실행 완료


즉시 갱신
-트랜잭션이 연산을 실행하고 있는 상태에서 데이터변경결과를 그대로 반영(연산시 바로바로 반영)
-시스템 붕괴나 트랜잭션 장애가 일어나면 트랜잭션이 실행되기 이전 상태의 데이터 값으로 복원시키는 Undo작업 수행할때
 레코드의 옛값이 사용됨 
 <트랜잭션id, 데이타아이템, 변경 전 값, 변경 된값>

지연 갱신
-트랜잭션이 부분 완료 될때까지 데이터베이스 변경을 로그에 기록해 두었다가 한꺼번에 실행
-Undo연산이 필요가 없음(즉시갱신과차이)

<트랜잭션id, 데이타아이템, 변경 된값>

 

미디어 회복 

- 데이터 베이스 내용 전체를 주기적으로 또다른 안전한 저장장치에 덤프 시키는 것

- 디스크가 붕괴되어도 최근 덤프를 이용해 이전 상태로 복귀


검사 지점(checkpoint) : 실행하고 있는 일을 모두 멈추고 디스크에 모두 반영시켜 놓음(실시간 백업과 비슷)

병행수행 : 몇개의 트랜잭션들을 동시에 수행시키는 것, 시작과 종료가 서로 중복되는 것을 말함

1. 갱신분실 : 같은 레코드에 동시 접근
2. 모순성 : 덧셈과 곱셈 순서에 따라 결과가 달라짐
3. 연쇄 복귀 : T1에서 오류가 나 복구 하려할때, T2에서 T1를 가져다 썻으므로 T1도 복귀해야함


일반적으로 n개의 트랜잭션의 직렬 스케줄 방법은 n!개

직렬 스케줄 : 스케줄에 포함된 트랜잭션의 연산들을 각 소속 트랜잭션 별로 모두 연속적으로 실행하는 스케줄
비직렬 스케줄 : 트랜잭션을 병행 실행시키는 스케줄

만일 n개의 트랜잭션에 대한 비직렬 스케줄 S가 똑같은 n개의 트랜잭션에 대해 직렬 스케줄 S'과 항상 동일한 결과를 생성하면

이 스케줄 S를 직렬 가능 스케줄이라고 한다.

로킹(Locking)방법

- 아이템에 접근할때 Lock연산실행, 이미 Lock이 걸렸다면 기다림

- 사용이 끝나면 unLock실행
- 트랜잭션이 어느 한 데이타 아이템의 마지막 접근이 끝나자 마자 unlock을 하는 것은 바람직하지 않다.

   왜냐하면 병행수행에 의한 무결성(직렬 가능성)이 보장되지 않기 때문에 

   -> 다음 처리할 데이타아이템을 다른곳에서 Lock했을 경우

2단계 로킹
- 사용할때 lock하고 사용이 끝나면 unlock함
- 2단계 로킹 은 직렬 가능성을 보장하는 반변에 교착상태[더이상 어느것도 실행하지 못하는 상태(서로기다림, 사이클 형성)]
  문제를 내포하고 있음.

- 스케줄 내의 모든 트랜잭션 들이 2단계 로킹 규약을 준수한다면, 그 스케줄은 직렬 가능

- 교착상태 예방 lock를 요청하는 과정에 어떤 제약을 가함, 트랜잭션을 실행시키기 전에 필요한 lock를 한꺼번에 모두 요청
  부여받지 못하면 실행시키지 않음

- 교착상태 탐지 교착상태가 탐지되면 한 트랜잭션을 취소시켜 다시 스케줄을 짜는 방법

'데이터베이스' 카테고리의 다른 글

데이터베이스 접근  (0) 2014.10.24
무결성과 보안  (0) 2014.10.24
데이터베이스 정규화  (0) 2014.10.24
데이터베이스론 이석호 솔루션  (0) 2014.10.24
데이터베이스 시스템 구성  (0) 2014.10.24

데이터베이스 정규화

데이터베이스 2014. 10. 24. 00:36

정규화 순서도

   


4, 5 정규형은 생략

 

제 1 정규형(First Normal Form)


 


▶ 반복그룹(repeating group)이란?

- 복합 애트리뷰트(composite attribute)

- 다치 애트리뷰트(multivalue attribute)

- 중첩 릴레이션(nested relation)


▶ Example 분석

 


<고객테이블 - 2>에 대한 갱신이상 분석

◑ 수정이상(Modification Anomaly)

- 고객명이 취미의 수만큼 중복되어 저장 -> 취미의 수가 많을 경우 수정이상이 발생할

가능성 높다

◑ 삭제이상(Deletion Anomaly)

- 등산을 취미로 갖는 고객이 홍길동 1명인 경우, 홍길동 고객정보를 삭제하면 등산의

취미정보도 삭제되고, 등산정보를 삭제하는 경우 홍길동 고객정보도 같이 삭제된다.

◑ 삽입이상(Insertion Anomaly)

- 고객번호가 주키이므로 테니스라는 취미정보를 추가하는 경우, 테니스를 취미로 갖는

고객이 아직 없으므로 삽입이 불가능하다(주키는 null값을 못가지므로).

<고객테이블 - 2>에 대한 갱신이상 발생 원인

고객번호와 고객명은 (고객번호) -> (고객명) 으로 함수적 종속관계를 갖으나

고객번호와 취미는 함수적 종속관계가 아니다.


 


<고객테이블 - 2>에 대한 갱신이상 해결책
갱신이상은 <고객테이블 - 2>에서 취미 애트리뷰트가 반복그룹이어서 발생
-> 취미애트리뷰트를 새로운 테이블로 분리
-> 관계설정을 위하여 <고객테이블 - 1>의 주키인 (고객번호)를 새로운 테이블의 애트리뷰
트로 추가
따라서, 다음과 같이 <고객테이블 - 2>을 분리한다

 


▶ 제 1 정규형(First Normal Form)에 대한 결론
- 반복그룹을 갖는 릴레이션은 반복그룹의 애트리뷰트를 새로운 릴레이션으로 분리
- 관계 유지를 위하여 원 릴레이션의 주키를 새로운 릴레이션의 애트리뷰트로 추가

★ 보충 - L자형 테이블 ★

테이블의 데이터를 null값을 가지고 있는 데이터를 위쪽으로 정리했을 때 위쪽의 컬럼들이 null값을 가지는 관계로 빈 공간이 되어 전체적 모양이 L자 형태로 나타나는 테이블

 

위에서 보는 바와 같이, 반복그룹을 column을 추가하여 제거하는 <고객테이블 - B>경우, L자형 테이블이 나타난다. <고객테이블 - A>의 경우는 앞서 설명한 바와 같이 불필요한 데이터의 중복이 나타나고 있다.

L자형 테이블은 일반적으로 가장 많이 나타나는 테이블구조로서, 모든 정보를 한꺼번에 한 테이블에 넣도록 설계하는 경우에 자주 나타난다. 규모가 작은 웹사이트에서 회원정보를 적절히 분리하지 않고 한 테이블에 모조리 다 넣는 경우가 그 대표적 예이다.

A, B 두 테이블 모두 비효율적인 테이블구조이며 앞서 본 바와 같이 두 개의 테이블로 분해하는 것이 바람직하다.

 

 2 정규형(Second Normal Form)

 

 

▶ Example 분석

 


step 1. <학생>테이블의 모든 Att가 원자값으로 제 1 정규형을 만족하고 있다

step 2.

◑ (학번, 과목번호) -> (학점)

◑ (학번, 과목번호) -> 학과명, (학번, 과목번호) -> 학과전화번호

◑ (학번) -> (학과명), (학번) -> (학과전화번호)

<학생>테이블의 키를 구성하지 않는 (학과명)과 (학과전화번호), (학점) 애트리뷰트 중에서

(학과명)과 (학과전화번호)는 (학번, 과목번호)에 함수적 종속이면서 완전 함수적 종속은

아니다. (학번, 과목번호)의 부분집합인 (학번)에 다시 함수적으로 종속되고 있기 때문이다.

step 3. <학생>테이블에 대한 갱신이상 분석

◑ 수정이상(Modification Anomaly)

- 한 학과에 속한 학생의 수만큼 학과전화번호의 중복 발생 -> 수정이상 발생 가능성

◑ 삭제이상(Deletion Anomaly)

- 학생이 한 명인 학과의 경우, 학생정보 삭제 시 학과정보도 완전 삭제됨

◑ 삽입이상(Insertion Anomaly)

- 학번이 기본키 구성요소이므로 학생이 한 명도 없는 학과정보 삽입 불가능

step 4. <학생>테이블에 대한 갱신이상 발생 원인

- 기본키에 대한 부분 함수적 종속성이 <학생>테이블에 존재함

step 5<학생>테이블에 대한 갱신이상 해결책

부분 함수적 종속성을 제거하기 위하여 두 릴레이션으로 분리(제 2 정규형)


 


▶ 제 2 정규형(Second Normal Form)에 대한 결론

- 부분 함수 종속성 제거하기 위하여 두 릴레이션으로 분리

   

 3 정규형(Third Normal Form)

 

    

 

▶ Example 분석

   


step 1. 기본조건 분석

<학생>테이블이 제 2 정규형을 만족하고 있다 <- 키가 아닌 (학과명), (학과전화번호)

애트리뷰트가 키인 (학번)에 완전하게 함수적으로 종속하고 있다.

step 2. 이행적 함수적 종속성 여부

◑ (학번) -> (학과명), (학번) -> (학과전화번호)

◑ (학과명) -> (학과전화번호) <- (학과전화번호)가 (학번)에 이행적으로 함수적

종속을 하고 있다.

step 3. <학생>테이블에 대한 갱신이상 분석

◑ 수정이상(Modification Anomaly)

- 학과에 속한 학생 수만큼 학과명과 학과전화번호의 정보가 중복하여 나타남

-> 수정이상 발생 가능성

◑ 삭제이상(Deletion Anomaly)

- 학생이 한 명인 학과의 경우, 학생정보 삭제 시 학과정보도 완전 삭제됨

◑ 삽입이상(Insertion Anomaly)

- 학번이 기본키 구성요소이므로 학생이 한 명도 없는 학과정보 삽입 불가능

step 4. <학생>테이블에 대한 갱신이상 발생 원인

- 기본키에 대한 이행적 함수적 종속성이 <학생>테이블에 존재함

step 5. <학생>테이블에 대한 갱신이상 해결책

이행적 함수적 종속성을 제거하기 위하여 두 릴레이션으로 분리(제 3 정규형)

 

▶ 제 3 정규형(Third Normal Form)에 대한 결론

- 이행적 함수적 종속성 제거하기 위하여 두 릴레이션으로 분리


보이스(R.F. Boyce)와 코드(E.F. Codd)가 개발한 정규형.

제3정규형(3NF)을 확장한 것으로 이 정규형에 가까워질수록 데이터의 중복성이 배제되어

갱신 시에 부정합 또는 불일치가 잘 생기지 않는다.

 


▶ Example 분석


step 1. 기본조건 분석

<수강>테이블에 나타난 함수적 종속성

(학번, 과목) → (강사)

(강사) → (과목)

- 제 3 정규형을 만족하고 있다 <- (강사)는 (학번)이나 (과목)에 함수적으로 종속하지

않으며, 따라서 (강사)는 기본키인 (학번, 과목)에 완전하게 함수적으로 종속하고 있다.

- <수강>테이블의 후보키는 (학번, 과목), (학번, 강사)

 

step 2. 모든 결정자의 후보키 여부

- (학번, 과목)은 결정자이면서 후보키이다.(<- 기본키이므로 당연히 후보키)

(강사)는 결정자이면서 후보키가 아니다.

- 따라서, <수강>테이블은 제 3 정규형이면서, BCNF는 아니다.

 

step 3. <수강>테이블에 대한 갱신이상 분석

◑ 수정이상(Modification Anomaly)

- 예를 들어, ‘노련한’ 강사의 ‘데이터베이스’강좌를 수강하는 학생이 많은 경우,

수강학생 수만큼 강사명의 정보가 중복하여 나타남 -> 수정이상 발생 가능성

◑ 삭제이상(Deletion Anomaly)

- 학생이 한 명인 강좌의 경우, 학생정보 삭제 시 강사정보도 완전 삭제됨

◑ 삽입이상(Insertion Anomaly)

- 학번이 기본키 구성요소이므로 미개설강좌에 대한 강사정보 삽입 불가능

 

step 4. <학생>테이블에 대한 갱신이상 발생 원인

후보키가 아닌 애트리뷰트가 다른 애트리뷰트의 결정자이기 때문

- 후보키가 여러 개인 경우 발생하는 현상으로, 만약 하나의 후보키만을 가진 릴레이션이

제3정규형을 만족하면 동시에 BCNF도 만족함

 

step 5. <학생>테이블에 대한 갱신이상 해결책

▶ 키가 아니면서 결정자 역할을 하는 애트리뷰트와 그 결정자에 함수적으로 종속하는 애트

리뷰트로 하나의 테이블을 구성. 이 테이블에서 결정자는 기본키가 됨

▶ 기존 릴레이션에 결정자를 남겨서 기본키의 구성요소가 되도록 함. 또한 이 결정자는

새로운 릴레이션에 대한 외래키 역할도 함




 

- 모든 결정자가 후보키가 되도록 한다 



[출처] 13. 정규화(Normalization)4 - 제 3 정규형

'데이터베이스' 카테고리의 다른 글

무결성과 보안  (0) 2014.10.24
병행제어  (0) 2014.10.24
데이터베이스론 이석호 솔루션  (0) 2014.10.24
데이터베이스 시스템 구성  (0) 2014.10.24
데이터베이스 관리 시스템  (0) 2014.10.24

데이터베이스론 이석호 솔루션

데이터베이스 2014. 10. 24. 00:28

'데이터베이스' 카테고리의 다른 글

병행제어  (0) 2014.10.24
데이터베이스 정규화  (0) 2014.10.24
데이터베이스 시스템 구성  (0) 2014.10.24
데이터베이스 관리 시스템  (0) 2014.10.24
데이터베이스 환경  (0) 2014.10.24

데이터베이스 시스템 구성

데이터베이스 2014. 10. 24. 00:28

데이터 베이스 시스템

: 데이터를 데이타베이스로 저장 관리하여 정보를 생성하는 컴퓨터 중심 시스템

 

스키마(schema) : DB의 구조(개체, 관계) 와 제약조건 을 명세

 - 외부 스키마 : 개개 사용자 관점에서 정의한 DB 스키마, 전체 DB의 한 논리적인 부분

 - 개념 스키마 : 범 기관적인 관점에서 정의한 DB 스키마, 모든 응용에 대한 전체적인 통합된 데이터 구조

 - 내부 스키마 : 저장장치 관점에서의 정의한 DB 스키마, 개념 스키마에 대한 저장구조를 정의

 

카탈로그 : 시스템 내의 모든 객체들에 대한 정의나 명세에 대한 정보를 수록(데이터베이스 정보를 갖고 있음)

데이터 디렉토리 : DB에 저장된 데이터를 참조 하는데 필요한 정보를 수록

 

데이터 언어

데이터 정의어 : DDL(Data Definition Language), 데이터베이스 구조를 정의 하고 변경 하는데 사용

데이터 정의의 내용

 - 논리적 데이터 구조의 정의 : 스키마, 외부 스키마 명세

 - 물리적 데이터 구조의 정의 : 내부 스키마 명세

 

데이터 조작어

- DML : Data Manipulation Language

- 데이터 처리 연산의 집합(데이터의 검색, 삽입, 삭제, 변경 연산)

'데이터베이스' 카테고리의 다른 글

병행제어  (0) 2014.10.24
데이터베이스 정규화  (0) 2014.10.24
데이터베이스론 이석호 솔루션  (0) 2014.10.24
데이터베이스 관리 시스템  (0) 2014.10.24
데이터베이스 환경  (0) 2014.10.24

데이터베이스 관리 시스템

데이터베이스 2014. 10. 24. 00:27

데이터베이스 관리 시스템(DBMS : DataBase Management System)

DBMS 발전 배경

1. 데이터 종속성 : 응용프로그램과 데이타 간의 상호 의존 관계

2. 데이터 중복성 : 한 시스템 내에 같은 내용의 데이타가 여러 회일에 중복 저장되어 관리

 

DBMS이란 ?

 응용 프로그램과 데이터 사이의 중재자로서 모든 응용 프로그램(사용자)들이 데이터베이스를

 공용할 수 있게 관리해 주는 범용 소프트웨어 시스템

 

DBMS의 필수 기능

1. 정의 기능

 - 하나의 저장 구조로 여러 사용자의 요구를 지원할 수 있도록 데이타를 조직 하는 기능

2. 조작 기능

  - 사용자와 데이터베이스 간의 interface를 위한 수단

3. 제어 기능

  - 데이터의 정확성 과 보안성을 유지하는 기능

 

DBMS의 장단점

장점 : 데이터 중복의 최소화, 데이터의 공용

         일관성 유지, 무결성 유지

         보안 보장, 표준화 용이, 기관 전체 데이타 요구의 조정

단점 : 운영비의 overhead, 특정 응용 프로그램의 복잡화, 복잡한 backup과 recovery, 시스템의 취약성

 

DBMS의 궁극적 목적은 데이터의 독립성

1. 논리적 데이터 독립성 : 응용 프래그렘에 영향을 주지 않고 논리적 데이타 구조의 변경이 가능

2. 물리적 데이터 독립성 : 응용 프로그램과 논리적 데이터 구조에 영향을 주지 않고 물리적 데이터 구조의 변경이 가능

 

DBMS의 발전 과정

1세대 : IMS(Information Management System) DBMS

2세대 : SQL(세계 표준 데이터베이스 언어)

3세대 : 현재는 제 2세대 DBMS + 제 3세대 DBMS -> 객체 관계 DBMS

'데이터베이스' 카테고리의 다른 글

병행제어  (0) 2014.10.24
데이터베이스 정규화  (0) 2014.10.24
데이터베이스론 이석호 솔루션  (0) 2014.10.24
데이터베이스 시스템 구성  (0) 2014.10.24
데이터베이스 환경  (0) 2014.10.24

데이터베이스 환경

데이터베이스 2014. 10. 24. 00:27

정보와 데이터

- 데이터 : 관찰이나 측정을 통해서 수집된 사실 이나 값

- 정보 : 의사결정을 할 수 있게 하는 데이터의 해석이나 데이터 상호간의 관계

데이터 =/ 정보

데이터 - > 처리기 =  정보

- 정보 시스템 : 한 기관을 위해 데이터를 수집, 조직, 저장하고 정보를 생성, 분배하는 수단

 

일괄 처리(모아서 처리)

- 사전 준비 작업 필요 : 원시 데이터(raw data)의 수집, 분류 정리하여 화일에 수록

- 시스템 중심 처리 방법 : 높은 시스템 성능, 낮은 시스템 비용

- 순차 접근 방법 이용 업무에 유리

 

온라인 처리(실시간 처리)

- 사용자 중심 처리 방법 : 낮은 시스템 성능, 높은 처리 비용

- 통신제어기 가 필요함

 

분산처리(인터넷 시스템)

- 클라이언트/서버 시스템 운영 형태

 

Database란?

- 한 조직의 여러 응용 시스템들이 공용하기 위해 통합, 저장 한 운영 데이터의 집합

공용 데이터 : 한 조직의 여러 응용 시스템들이 공동으로 소유, 유지, 이용하는 데이터

통합 데이터 : 최소의 중복, 통제된 중복

저장 데이터 : 컴퓨터가 접근 가능한 저장 매체에 저장

운영 데이터 : 한 조직의 고유 기능을 수행하기 위해 필요한 데이터

 

Database의 특성

1. 실시간 접근성 : 질의에 대한 실시간 처리 및 응답

2. 계속적인 변화 : 갱신, 삽입, 삭제 : 동적 특성

3. 동시 공용 : 여러 사용자가 동시에 사용

4. 내용에 의한 참조 : 데이타의 위치 나 주소가 아닌 내용에 따라 참조

 

Database의 구성 요소

- 논리적 구성요소

   데이터베이스 = {개체, 관계}

개체 : 표현하려는 유무형 정보의 객체

관계

속성 관계 : 개체 내 관계

- 개체 관계 : 개체 간 관계

'데이터베이스' 카테고리의 다른 글

병행제어  (0) 2014.10.24
데이터베이스 정규화  (0) 2014.10.24
데이터베이스론 이석호 솔루션  (0) 2014.10.24
데이터베이스 시스템 구성  (0) 2014.10.24
데이터베이스 관리 시스템  (0) 2014.10.24