5. 관계 데이터베이스

2023. 4. 10. 06:15데이터베이스

728x90

 

수학에서의 릴레이션과 집합이론으로 생각하면 편하다. = > 테이블형태

테이블의 열 = field => 관계 데이터 모델의 애트리뷰트

테이블의 행 = 레코드 => 관계 데이터 모델의 튜플


학생 테이블 : 릴레이션

 

애트리 뷰트와 도메인

테이블 => 릴레이션

도메인

    - 애트리뷰트가 취할 수 있는 값들의 집합

애트리뷰트

    - 도메인의 역할 이름

    - 한 릴레이션 내에서 애트리뷰트 이름들은 모두 달라야 함

단순 도메인

    - 원자 

복합 도메인

    - 복합 값 -> ex) 날짜: <연, 월, 일>

 

애트리뷰트 이름과 도매인 이름은 같을 수 있음 -> 자명한 말

 

릴레이션 스키마 

 

릴레이션 스킴 

-릴레이션 이름 + 애트리뷰트 이름

 

정적 성질

- 시간에 무관

 

릴레이션 인스턴스

어느 한 시점에 릴레이션 R이 포함하고 있는 투플들의 집합

튜플 : {(attr1=v1, attr2.v2----)}

 

동적 성질

- 삽입 삭제, 갱신으로 시간에 따라 변함

 

릴레이션 R 

투플들의 집합

릴레이션 스키마 + 릴레이션 인스턴스

 

릴레이션의 특성

1) 투플의 유일성

 - 릴레이션 = 투플들의 "집합"

 

2) 투플의 무순서성

릴레이션 : 추상적 개념 <- 투플들의 집합

테이블 : 구체적 개념

 

3) 애트리뷰트의 무순서성

릴레이션 스키마 -> 애트리뷰트들의 "집합"

투플 : <attribute: value> 쌍의 집합

 

4) 애트리뷰트의 원자성

애트리뷰트 값은 원자 값 -> 분리 불가능

정규화 릴레이션

 Null Value도 원자 값으로 취급

 

릴레이션의 정규화

 

 


관계 데이터베이스 개념 

 

 

 

관계 데이터베이스
- 테이블들의 조합

- 데이터베이스를 시간에 다라 그 내용이 변할 수 있는 테이블 형태로 표현

 

관계 데이터베이스 스키마

= {릴레이션 스키마} + {*무결성 제약조건}

*무결성이란 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 정확성을 의미

 

관계 데이터 모델 <=> 프로그래밍 시스템

- 릴레이션 <=> 파일

- 투플 <=> 레코드

- 애트리뷰트 <=> 필드

 

++ 관계 데이터베이스라고 할 때 데이터가 물리적 테이블 형태로 저장된다는 것을 의미하지는 않음

 

 

데이터베이스 키

 

Key
- 각 투플을 유일하게 식별할 수 있는 애트리뷰트 집합 

 

후보 키(candidate key)

릴레이션 R에 대한 애트리뷰트 집합 K로서

유일성과 최소성을 가지고 있어야 한다. 

 

슈퍼키 (super key)

유일성은 만족지만, 최소성은 만족하지 않은 애트리뷰트의 집합. 

 

기본 키 (primary key)

후보키 중에서 지정된 하나의 키 

 - 데이터 베이스 설계자가 지정

 - 각 투플에 대한 기본 키 값은 항상 유효한 값이어야 함

     - null 값이 허용되지 않음

 

외래 키 (Foreign key)

 

 - 릴레이션 R의 에트리뷰트 집합 FK가 릴레이션 S의 기본 키일 때 FK는 R의 외래 키이다. 

 - (FK의 도메인)  =  (S의 기본 키의 도메인)

 - FK의 값은 S에 존재하는 값이거나 null

 - R과 S가 같은 릴레이션일 수도 있음

 - R을 참조 릴레이션, S를 피참조 릴레이션이라 함

-> 릴레이션 R은 FK를 통해 릴레이션 S를 참조

 

 

R!= S 인 경우

 - 교수 (교수번호, 교수이름, 학과번호, 직급)

 - 학과 ( 학과번호(PK), 학과이름, 학과장교수번호(FK), 학생수)

 

 - 학생 ( 학번, 이름, 학년, 학과)

 - 과목 (과목번호, 과목이름, 학점, 학과, 담당교수)

 - 등록 (학번(FK), 과목번호(FK), 성적) 

 

R = S 인 경우

 - 교수 1 (교수번호(FK), 교수이름, 학과번호, 학과교수번호(FK))


무결성 제약

   - 개체 무결성

       - 기본키 값은 언제 어느 때고 null 값을 가질 수 없다. 

    -참조 무결성

       - 외래 키 값은 반드시 피참조 릴레이션의 기본 키 값이거나 null이다.

 

데이터베이스 상태 

 - 어느 한 시점에 데이터베이스에 저장되어 있는 모든 데이터 값

 - 데이터베이스 인스턴스

    - 데이터베이스 스키마에 포함되어 있는 모든 릴레이션들의 인스턴스 집합

 - 데이터베이스 상태의 계속적인 변화

    - 삽입, 학제 변경, 연산

 

DBMS는 데이터베이스 상태의 변화에도 항상 무결성제약을 만족시키도록 해야 함

728x90