데이터 전환 c

데이터 검증 c

오류 데이터 측정 및 정제 c

데이터베이스 c

DBMS (DataBase Management System) c

스키마(Schema) a

데이터베이스의 구조제약조건에 관한 전반적인 명세를 기술한 것

종류 내용
외부 스키마 사용자가 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것
개념 스키마
  • 데이터베이스의 전체적인 논리적 구조
  • 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로, 하나만 존재함
내부 스키마
  • 물리적 저장장치의 입장에서 본 데이터베이스 구조
  • 실제로 저장될 레코드의 형식, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타냄

데이터베이스 설계 순서 a

1 요구조건 분석 요구조건 명세서 작성
2 개념적 설계 개념 스키마, 트랜잭션 모델링, E-R 모델
3 논리적 설계 목표 DBMS에 맞는 논리 스키마 설계, 트랜젝션 인터페이스 설계
4 물리적 설계 목표 DBMS에 맞는 물리적 구조의 데이터로 변환
5 구현 목표 DBMS의 DDL(데이터 정의어)로 데이터베이스 생성, 츠랜잭션 작성

개념적 설계 a

논리적 설계 a

물리적 설계 a

데이터 모델 a

개체 (Entity)c

관계 (Relationship) c

E-R (Entity-Relationship, 개체-관계) 모델 c

E-R 다이어그램 b

기호 기호이름 의미
사각형 개체(Entity)타입
관계 마름모 관계(Relationship)타입
속성 타원 속성 (Attribute)
다중값 속성(복합속성) 이중 타원 다중값 속성 (복합 속성)
기본키 속성 밑줄 타원 기본키 속성
복합 속성 복수 타원 복합속성 (예) 성명은 성과 이름으로 구성
관계 관계 1:1, 1:N, N:M 등의 개체간 관계에 대한 대응수를 선위에 기술함
선,링크 선,링크 개체 타입과 속성을 연결

관계형 데이터베이스의 릴레이션 구조 a

릴레이션(Relation)은 데이터들을 표(Table)의 형태로 표현한 것으로, 구조를 나타내는 릴레이션 스키마와 실제 값들인 릴레이션 인스턴스로 구성된다.

속성(Attribute)
학번 이름 학년 신장 학과 릴레이션 스키마 릴레이션
튜플(Tuple) 19001 김예소 2 170 CD 릴레이션 인스턴스
20002 고강민 1 168 CD
19012 이향기 2 180 ID
17032 김동준 4 174 ED
학년의 도메인 (domain)

튜플 (Tuple) a

도메인 (Domain) c

후보키 (CandIdate Key) a

기본키 (Primary Key) c

대체키 (Alternate Key) c

슈퍼키 (Super Key) a

외래키 (Forein Key) b

무결성 (Integrity) b

관계대수 b

순수 관계 연산자 a

Select

  1. 릴레이션에 존재하는 튜플 중에서 선택조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션을 만드는 연산이다.
  2. 릴레이션의 행에 해당하는 튜플(Tuple)을 구하는 것이므로 수평연산이라고도 한다.
  3. 기호 : σ(시그마)

Project

  1. 주어진 릴레이션에서 속성 리스트(Attribute List)에 제시된 속성 값만을 추출하여 새로운 릴레이션을 만드는 연산이다.
  2. 릴레이션의 열에 해당하는 속성을 추출하는 것이므로 수직 연산자라고도 한다.
  3. 기호 : π(파이)

Join

  1. 공통 속성을 중심으로 두개의 릴레이션을 하나고 합쳐서 새로운 릴레이션을 만드는 연산이다.
  2. Join의 결과는 Cartesian Product(교차곱)를 수행한 다음 Select 를 수행한 것과 같다.
  3. 기호 : ⋈

Division

  1. X⊃Y인 두 개의 릴레이션 R(X)와 S(Y)가 있을 때, R의 속성이 S의 속성값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만들 구하는 연산이다.
  2. 기호 : ÷

일반 집합 연산자 b

합집합(UNION)

교집합(INTERSECTION)

차집합(DIFFERENCE)

교차곱(CARTESIAN PRODUCT)

관계해석 (Relational Calculus) c

이상 (Anomaly) a

이상이란 데이터베이스 내에 데이터들이 불필요하게 중복되어 릴레이션 조작 시 예기치 않게 발생하는 곤란한 현상을 의미한다.

삽입 이상 (Insertion Anomaly)

테이블에 데이터를 삽입할 때 의도와 상관없이 원하지 않은 값들로 인해 삽입할 수 없게 되는 현상

삭제 이상 (Deletion Anomaly)

테이블에서 튜플을 삭제할 때 의도와 상관없는 값들도 함께 삭제되는, 즉 연쇄 삭제가 발생하는 현상

갱신 이상 (Update Anomaly)

테이블에서 튜플에 있는 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 불일치성(Inconsistency)이 생기는 현상

정규화 (Normalization) b

함수적 종속 (Functional Dependency) b

정규화 과정 a

아래의 주문목록 테이블을 가지고 정규화 과정을 살펴보자. 주문목록 테이블의 기본키 (Primary Key)는 제품번호이다.

주문목록 (비정규 릴레이션)

제품번호 제품명 재고수량 주문번호 고객번호 주소 주문수량
1001 모니터 2000 A345,
D347
100,
200
서울,
부산
150,
300
1007 마우스 9000 A210,
A345,
B230
300,
100,
200
광주,
서울,
부산
600,
400,
700
1201 키보드 2100 D347 200 부산 300

제 1정규형(1NF: First Normal Form)

제품

제품번호 제품명 재고수량
1001 모니터 2000
1007 마우스 9000
1201 키보드 2100

제품주문

주문번호 제품번호 고객번호 주소 주문수량
A345 1001 100 서울 150
D347 1001 200 부산 300
A210 1007 300 광주 600
A345 1007 100 서울 400
B230 1007 200 부산 700
D347 1201 200 부산 300

주문목록 테이블에서 반복되는 주문 관련인 주문번호, 고객번호, 주소, 주문수량을 분리하면 위와같이 제1정규형인 제품테이블과 제품주문 테이블이 만들어진다.

제 2정규형(2NF : Second Normal Form)

제품주문 테이블에서 함수적 종속이 되는 속성들을 분리하여 제2정규형을 만들 수 있다.

주문목록

주문번호 제품번호 주문수량
A345 1001 150
A347 1001 300
A210 1007 600
A345 1007 400
B200 1007 700
D347 1201 300

주문

주문번호 고객번호 주소
A345 100 서울
D347 200 부산
A210 300 광주
B230 200 부산

제품주문 테이블에서 주문번호에 함수적 종속이 되는 속성인 고객번호와 주소를 분리 (즉 부분 함수적 종속을 제거)해내면 위와 같이 제2정규형인 주문목록 테이블과 주문 테이블로 무손실 분해된다.

제 3정규형(3NF : Third Normal Form)

주문 테이블에서 이행적 함수적 종속을 제거하여 제3정규형을 만들 수 있다.

주문

주문번호고객번호
A345100
D347200
A210300
B230200

고객

고객번호주소
100서울
200부산
300광주

주문 테이블에서 이행적 함수적 종속(주문번호 → 주소)을 제거하여 무손실 분해함으로서 위와 같이 제3정규형인 주문 테이블과 고객 테이블이 생성된다.

BCNF(Boyce-Codd Normal Form)

수강_교수테이블에서 결정자가 후보키가 아닌 속성을 분리하여 BCNF를 만들 수 있다.

수강

학번담당교수
211746홍길동
211747유관순
211748윤봉길
211749홍길동
211747이순신
211749유관순

교수

담당교수과목명
홍길동데이터베이스
이순신데이터베이스
윤봉길인공지능
유관순네트워크

수강_교수 테이블에서 BCNF를 만족하지 못하게 하는 속성(즉 담당교수 → 과목명)을 분리해내면 위와 같이 BCNF인 수강 테이블과 교수 테이블로 무손실 분해된다.

제 4정규형(4NF : Forth Normal Form)

제 4정규형은 테이블 R에 다중값 종속(MVD : Multi Valued Dependency) A →→ B 가 존재할 경우 R의 모든 속성이 A에 함수적 종속 관계를 만족하는 정규형이다.

다중 값 종속(다치 종속) : A, B, C 3개의 속성을 가진 테이블 R에서 어떤 복합 속성 (A,C)에 대응하는 B값의 집합이 A값에만 종속되고 C값에는 무관하면 B는 A에 다중 값 종속이라 하고 A →→ B로 표기함

제 5정규형(5NF : Fifth Normal Form)

제 5정규형은 테이블 R의 모든 조인 종속(JD : Join Dependency)이 R의 후보키를 통해서만 성립되는 정규형이다.

조인 종속 : 어떤 테이블 R의 속성에 대한 부분집합 X,Y, ..., Z가 있다고 하자. 이때 만일 테이블R이 자신의 프로젝션(Projection) X, Y, ..., Z를 모두 조인한 결과와 동일한 경우 테이블 R은 조인 종속 JD(X, Y, ..., Z)를 만족한다고 함

정규화 과정 정리 b

  1. 비정규 릴레이션 -> 도메인이 원자값 -> 1NF
  2. 1NF -> 부분 함수 종속 제거 -> 2NF
  3. 2NF -> 이행적 함수 종속 제거 -> 3NF
  4. 3NF -> 결정자이면서 후보키가 아닌것 제거 -> BCNF
  5. BCNF -> 다치 종속 제거 -> 4NF
  6. 4NF -> 조인 종속성 이용 -> 5NF

반 정규화 (Denormalization) a

중복 테이블 추가 c

시스템 카탈로그 (System Catalog) b

트랜잭션 (Transation) b

트랜잭션의 특성 a

특성 의미
Atomicity (원자성) 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료(Commit)되든지 아니면 전혀 반영되지 않도록 복구(Rollback)되어야 함.
Consistency (일관성) 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환함.
Isolation (독립성, 격리성, 순차성) 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어들 수 없다.
Durability (영속성, 지속성) 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함.

CRUD(Create Read Update Delete) 분석 b

인덱스 (Index, 색인) b

클러스터드 인덱스 (Clusterd Index) c

넌클러스터드 인덱스 (Non-Clusterd Index) c