[DB] 데이터베이스 개념
2022. 3. 18. 13:26
기본용어
- 속성
- 릴레이션의 열을 의미.
- 릴레이션 : 파일, 속성 : 파일의 필드
- 더는 분해할 수 없는 원자 값만 사용
- ex) 고객 릴레이션 → 고객아이디, 고객이름, 나이, 등급, 직업, 적립금
- 튜플
- 릴레이션의 행을 의미.
- 고객 개체의 인스턴스
- ex) 고객 릴레이션에서 튜플은 고객 1명에 대한 실제 속성 값 6개
- 도메인
- 속성 하나가 가질 수 있는 모든 값의 집합
- 특정 속성이 가질 수 있는 모든 원자 값의 모임
- 속성의 특성을 고려한 데이터 타입으로 정의, 즉 도메인을 데이터 타입이라고 이해하기
- ex) 고객이름 속성의 도메인 : CHAR(20), 나이 속성의 도메인 : (INT)
- 널 값 (Null)
- 특정 튜플 속성 값 모르거나 적합한 값이 없는 경우
- 숫자 0, 공백 값과는 다른 개념
- ex) 고객이 아직 직업을 입력하지 않음, 새로 가입한 고객의 등급이 아직 결정되지 않음
- 차수
- 하나의 릴레이션에서 속성의 전체 개수, 즉 열의 개수
- 모든 릴레이션은 최소 1 이상의 차수를 유지해야하므로 정적인 특징
- ex) 고객 릴레이션에서 차수는 6
- 카디널리티 (Cardinality)
- 하나의 릴레이션에서 튜플의 전체 개수, 즉 행의 개수
- 튜플이 없는 릴레이션이 있을 수도 있음. 항상 변하므로 동적인 특징
릴레이션 (Relation)
- 릴레이션 스키마 (Relation Schema)
- 릴레이션 이름과 릴레이션에 포함된 모든 속성의 이름으로 정의하는 릴레이션의 논리적 구조
- 릴레이션의 이름, 속성들을 한 눈에 파악하기 쉬움
- 자주 변하지 않는다는 정적인 특징
- 릴레이션 인스턴스 (Relation Instance)
- 어느 한 시점에 릴레이션에 존재하는 튜플들의 집합
- 튜플의 삽입, 삭제, 수정이 자주 발생한다는 동적인 특징
- 데이터베이스 스키마 & 데이터베이스 인스턴스
- 데이터베이스 스키마 : 데이터베이스의 전체 구조. 릴레이션의 스키마를 모아놓은 것.
- 데이터베이스 인스턴스 : 데이터베이스에 저장된 데이터 내용의 전체 집합.
- 릴레이션의 특징
- 튜플의 유일성
- 하나의 릴레이션에는 동일한 튜플이 존재할 수 없다
- 키(key) : 튜플을 유일하게 구분하기 위해 선정되는 속성(들)의 모임
- 튜플의 무순서
- 하나의 릴레이션에서 튜플 사이의 순서는 무의미하다
- 순서와 상관없이 튜플 내용이 같으면 동일한 릴레이션
- DB는 위치가 아닌 내용으로 검색됨. 따라서 순서 중요 X
- 속성의 무순서
- 하나의 릴레이션에서 속성 사이의 순서는 무의미하다
- 속성의 원자성
- 속성 값으로 원자 값만 사용할 수 있다
- 하나의 속성은 다중값(여러 개의 값)을 가질 수 없다
- ex) 고객 릴레이션 → 직업 속성에서 2개의 값(회사원, 학생)을 가질 수 없음. but 분리해서 쓸 수 있긴 함.
- 튜플의 유일성
키의 종류
- 슈퍼키 (super key)
- 유일성의 특성을 만족하는 속성(들)의 집합
- 하나의 릴레이션에서 키로 지정된 속성 값은 튜플마다 달라야한다
- ex) 고객 릴레이션 → 고객아이디, (고객아이디, 고객이름) 속성 집합
- 후보키 (candidate key)
- 유일성과 최소성을 만족하는 속성(들)의 집합
- 슈퍼키 중에서 최소성을 만족하는 것이 후보키
- 새로운 튜플이 삽입되거나 기존 튜플의 속성 값이 바뀌어도 유지되어야 함
- 기본키 (primary key)
- 여러 후보키 중에서 기본적으로 사용할 키를 선택한 것
- 후보키가 1개 존재할 경우 해당 후보키는 자연스럽게 기본키가 됨
- 속성 이름에 밑줄 그어 표시
- 기본키 선택할 때 고려할 점
- 널 값을 가질 수 있는 속성이 포함된 후보키는 기본키로 부적합
- 값이 자주 변경될 수 있는 속성이 포함된 후보키는 기본키로 부적합
- 단순한 후보키를 기본키로 선택
- 대체키 (alternate key)
- 기본키로 선택되지 못한 후보키들
- 외래키 (foreign key)
- 어떤 릴레이션에 소속된 속성 또는 속성 집합이 다른 릴레이션의 기본키가 되는 키
- 다른 릴레이션의 기본키를 그대로 참조하는 속성의 집합
'DB' 카테고리의 다른 글
[DB] SQL 구문 기초 - IN, LIKE, IS NULL, ORDER BY (0) | 2022.03.18 |
---|---|
[DB] SQL 구문 기초 - AS, Comparison, OR, BETWEEN (0) | 2022.03.18 |
[DB] SQL 구문 기초 - Relational Algebra (0) | 2022.03.18 |
[DB] SQL 구문 기초 - CREATE, LOAD, INSERT, UPDATE, DELETE (0) | 2022.03.18 |
[DB] Database Elements (0) | 2022.03.18 |