데이터베이스
엔티티 (Entity)
- 사람이 생각하는 개념 / 정보 단위 등 현실 세계의 대상체
- 실세계에 독립적으로 존재하는 정보 (형태가 있는지는 무관)
- 유일한 식별자에 의해 식별됨
릴레이션 (Relation)
속성 (Attribue)
- DB를 구성하는 가장 작은 논리적 단위
- 개체의 특성을 기술함
- 예를 들어, 학생 엔티티의 속성은 학번, 이름, 성별 등
도메인 (Domain)
- 하나의 속성이 취할 수 있는 같은 타입의 원자(Atomic) 값들의 집합
즉, 속성에 입력될 수 있는 값. 도메인 이외의 값은 입력 불가
필드 (Field)
레코드 (Record)
- 테이블의 행
- 각각 레코드는 엔티티의 한 인스턴스에 해당
키
DB에서 조건에 만족하는 튜플을 찾거나 정렬할 때 기준이 되는 속성
후보키(Candidate)
- 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합
= 기본키로 사용할 수 있는 속성들
만족시켜야 할 조건들
- 유일성 (Unique)
하나의 키 값으로 하나의 튜플 만을 유일하게 식별할 수 있어야 함
- 최소성(Minimality)
키를 구성하는 속성 하나를 제거하면 유일하게 식별할 수 없어야 함 = 꼭 필요한 최소의 속성으로 구성
기본키 (Alternate Key)
후보키 중에 특별히 선정된 주 키 (Main key)
- 중복값 불가
- NULL 값 불가 (존재성)
대체키 = 보조키
후보키가 둘 이상일 때 기본 키를 제외한 나머지 후보키
슈퍼키
한 릴레이션 내의 속성들의 집합으로 구성된 키
슈퍼키로 구성된 속성의 집합과 동일한 값은 나타나지 않음
모든 튜플에 대해 유일성 만족, 최소성 불만족
외래키
다른 릴레이션의 기본키를 참조하는 속성 / 속성들의 집합
참조 릴레이션의 기본키에 없는 값은 입력 불가
테이블간의 관계 (Relationship)
- 개체와 개체 간의 논리적인 연결
- 릴레이션의 형태는
1:N
, 1:1
, N:M
트랜잭션과 무결성
트랜잭션 (Transaction)
- 하나의 논리적 기능을 수행하기 위한 작업 단위
- 한꺼번에 모두 수행되어야 할 연산들
- DB 시스템에서 병행 제어, 회복 작업 시 처리되는 작업의 논리적 단위
특성 : ACID
Atomicity (원자성)
DB에 모두 반영되도록 완료 (커밋) 되거나 모두 반영되지 않도록 복구 (롤백)되어야 함
Consistency (일관성)
성공적으로 완료하면 언제나 일관성 있는 DB 상태로 변환함
Isolation (독립성)
둘 이상의 트랜잭션이 병행 실행 시 어느 하나의 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없음
Durability (영속성)
성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함
무결성 (integrity)
데이터베이스에 저장된 데이터 값과 현실 세계의 실제값이 일치하는 정확성
- 개체 무결성 : 기본키를 구성하는 속성은 NULL, 중복값을 가질 수 없다
- 참조 무결성 : 외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과
동일해야 한다. ~라는 규정