SW
[데이터베이스] 관계형 데이터베이스 본문
0. 관계 데이터 모델
- 수학에서의 집합(set)과 릴레이션(realtion) 이론에 기초
- 일반 사용자 입장에서는 테이블(table) 형태로 생각
- 모든 데이터를 테이블 형태로 저장 및 관리
- 테이블의 열(column) = 필드(field) = 관계 데이터 모델의 애트리뷰트(attribute)
- 테이블의 행(row) = 레코드(record) = 관계 데이터 모델의 튜플(tuple)
학번 | 이름 | 학년 | 학과 |
1234 | 홍길동 | 2 | 컴퓨터공학과 |
5678 | 김철수 | 3 | 기계공학과 |
- 위 테이블은 학생 테이블(릴레이션)이다.
- attribute는 학번, 이름, 학년, 학과
- record 또는 tuple은 (1234, 홍길동, 2, 컴퓨터공학과), (5678, 김철수, 3, 기계공학과)
1. 용어 정리
- 테이블(table) = 릴레이션(relaion)
- 도메인(domain) => 애트리뷰트가 취할 수 있는 값(value)들의 집합
- 애트리뷰트(attribute) => 도메인의 역할(role) 이름, 한 릴레이션 내에서 애트리뷰트 이름은 모두 달라야 함
- 단순 도메인(simple domain) => 단순 애트리뷰트 : 원자 값
- 복합 도메인(composite domain) => 복합 애트리뷰트 : 복합 값(연, 월, 일 - 날짜: <연, 월, 일>)
- 릴레이션 스키마(relation schema) = 애트리뷰트의 집합 (a set of attributes) = 릴레이션 내포(relation intension) = 릴레이션 스킴(relation scheme) => 정적인 성질을 가짐. 즉, 시간에 따라 변경되지 않음.
- 릴레이션 인스턴스(relation instance) = 투플들의 집합(a set of tuples) = 릴레이션 외연(relation extension) => 동적인 성질을 가짐. 즉, 삽입, 삭제, 갱신으로 시간에 따라 변함
- 릴레이션 (relation) = 릴레이션 스키마 + 릴레이션 인스턴스 => 릴레이션 R의 애트리뷰트 도메인들의 카티션 프로덕트(곱집합)의 부분집합
- 릴레이션의 차수(degree) = 릴레이션의 애트리뷰트 갯수
- 릴레이션의 카디날리티(cardinality) = 릴레이션의 투플의 갯수
- 두개의 릴레이션을 곱집합할 때
- 차수는 양쪽 릴레이션 차수의 합
- 카디날리티는 양쪽 릴레이션 카디날리티의 곱
2. 릴레이션의 특성
- 테이블과 약간의 차이점을 가지고 있음
- 투플의 유일성(uniqueness of tuples)
- 릴레이션 = 투플의 집합(set of tuples)
- 투플의 무순서성(no ordering of tuples)
- 릴레이션 : 추상적 개념(순서가 없음) = 투플들의 집합(set) -> 주머니에 넣는다고 생각하면 됨
- 테이블 : 구체적인 개념(순서가 있음) -> 엑셀 형태라고 생각하면 됨
- 애트리뷰트의 무순서성(no ordering of attributes)
- 릴레이션 스키마 -> 애트리뷰트들의 "집합"
- 투플 -> <attribute: value> 쌍의 집합
- 애트리뷰트의 원자성(atomicity)
- 애트리뷰트 값은 단일값을 가져야 함. 복수의 값을 가지면 안됨.
- 정규화 릴레이션(normalized relation)
- 애트리뷰트 값으로 원자 값만 허용되는 릴레이션
- 비정규화 릴레이션은 분해(decomposition)을 통해 정규화
- 널 값(null value)도 원자 값으로 취급
- unknown, inapplicable
- 투플의 유일성(uniqueness of tuples)
3. 관계 데이터베이스
- 테이블들의 집합
- 데이터베이스를 시간에 따라 그 내용이 변할 수 있는 테이블 형태로 표현
- 관계 데이터베이스 스키마(relational database schma) = {릴레이션 스키마} + {무결성 제약조건}
- database = a set of relaions
- relation(instance) : a set of tuples
- relation schema : a set of attributes
4. 릴레이션의 키(key)
- 키(key)
- 릴레이션 안에서 각 투플을 유일하게 식별할 수 있는 애트리뷰트의 집합(set of attributes)
- 후보 키(candidate key)
- 릴레이션 R에 대한 애트리뷰트 부분집합
- 유일성과 최소성을 가져야 함
- 유일성(uniqueness) : 각 투플에 대해 값이 유일하다.(예를 들면 주민등록번호)
- 최소성(minimality) : 각 투플을 유일하게 식별하는데 필요한 애트리뷰트만 포함
- 슈퍼 키(super key)
- 유일성(uniqueness)는 만족하지만 최소성(minimality)은 만족하지 않는 애트리뷰트의 집합
- 기본 키(primary key)
- 후보 키(candidate key) 중에서 지정된 하나의 키(db설계자가 지정)
- 각 튜플에 대한 기본 키 값은 항상 유효한 값이어야 함(null값이 허용되지 않음)
- 대체 키(alternate key)
- 후보 키 중에서 기본 키를 제외한 나머지 후보 키
- 외래 키(foreign key)
- 릴레이션 R의 애트리뷰트(집합) FK가 릴레이션 S의 기본 키를 가리킬 때 , 이 FK는 R의 외래키이다.
- R의 FK의 도메인 = S의 기본 키의 도메인
- FK의 값은 S의 기본키에 존재하는 값이거나 null
- R과 S가 같은 릴레이션일 수도 있음
- R을 참조 릴레이션, S를 피참조 릴레이션이라고 함
- 관계형 데이터 모델에서는 기본키(개체)와 외래키(관계)에 의해서 개체(entity)간의 관계(relationship)을 유지함.
- 기본키 - 외래키 개념은 관계형 데이터베이스의 핵심 아이디어
5. 관계형 데이터베이스의 무결성 제약(Integrity Constraints)
- 개체 무결성(entity integrity)
- 기본 키 값은 언제 어느 때고 null값을 가질 수 없고, 중복 값을 가질 수 없음.
- 참조 무결성(referential integrity)
- 외래 키 값은 반드시 피참조 릴레이션의 기본 키 값으로 존재하는 값이거나 null 이어야 함.
- 도메인 무결성(domain integrity)
- 애트리뷰트의 값이 해당 도메인에 속한 값이어야 한다는 규정.
📌이러한 무결성 제약조건은 데이터베이스 상태(database state)가 항상 만족시켜야 될 제약조건임.
'대학교 > BE' 카테고리의 다른 글
[데이터베이스] (2) 데이터베이스 관리시스템 (0) | 2020.04.09 |
---|---|
[데이터베이스] (1) DB 환경 (0) | 2020.04.08 |
[데이터베이스] RDBMS 종류와 특성 (0) | 2020.03.19 |
[Maven] Plug in (0) | 2020.03.17 |
[Maven] 프로젝트 생성, 컴파일, 실행 (0) | 2020.03.17 |
Comments