1. 릴레이션(테이블)
- 행(Tuple)과 열(Attribute)로 구성된 테이블
- 데이터의 집합
(1) 튜플(Tuple)
- 표의 행에 해당
- 릴레이션에서 가로로 묶은 데이터의 집합
- 삽입 순서는 존재하지는 않음
(2) 속성(Attribute)
- 표의 열에 해당
- 릴레이션에서 세로로 묶은 데이터의 집합
(3) 릴레이션 스키마
- 자료의 구조를 정의하는 것
- 릴레이션에 데이터를 넣을때 기준점을 제시해주는 틀
(4) 관계 데이터 모델
- 각 릴레이션의 구조와 릴레이션간의 관계를 나타내는 스키마
- A 릴레이션에서 사용하는 데이터를 B 릴레이션에서도 호출하여 사용할때 관계형 데이터 베이스라고 한다.
2. 무결성 제약조건
(1) 키
- 릴레이션에서 특정 튜플을 식별할 때 상요하는 속성 혹은 속성의 집합이다. 릴레이션은 중복된 튜플을 허용하지 않기 때문에 각각에 튜플에 포함된 속성들 중 어느 하나는 값이 달라야 한다.
- 슈퍼키
튜플을 유일하게 식별할 수 있는 하나의 속성 혹은 속성의 집합을 말한다.
슈퍼키 종류
(회원번호),(회원번호,이름),(회원번호,이름,나이)...
(아이디),(아이디,이름),(아이디,이름,나이)...
- 후보키
튜플을 유일하게 식별할 수 있는 속성의 집합으로 슈퍼키에 유일성과 최소성을 만족해야한다.
이전의 슈퍼키중에서 유일성과 최소성을 만족시켜야 후보키가 된다.
따라서 (회원번호),(아이디)만이 후보키이다.
- 기본키
- 여러 후보키 중 하나를 선정하여 대표로 삼는 키이다.
- 릴레이션 내 튜플을 식별할 수 있는 고유한 값을 가져야 한다.
- NULL 값은 허용하지 않는다.
- 키 값의 변동이 일어나지 않아야 한다.
이러한 조건들을 통해 기본키를 구성할 수 있다. 예를들어
위의 후보키를 보면 회원번호와 아이디 총 2개의 후보키가 있다. 이 중에 아이디를 기본키로 사용한다고 했을때, 아이디는 수시로 수정이 가능하고 아이디는 이메일 주소다 보니 개인정보 보호에는 취약하다. 따라서 기본키로 회원번호를 선택하는 것이 좋다.
- 대리키
-
기본키가 보안을 요하여 사용하기 어렵거나, 여러 개의 속성으로 구성되어 복잡하거나, 마땅히 사용할 기본키가 없을 경우 가상의 속성을 만들어 기본키로 삼는 경우에 사용한다.
-
대리키는 DBMS나 관련 소프트웨어에서 임의로 생성하는 값으로 사용자가 직관적으로 그 값의 의미를 알 수 없다.
- 대체키
위의 후보키를 예시로 하자면 회원번호, 아이디 중 회원번호를 기본키로 사용하면 아이디는 자동으로 대체키가 된다.
- 외래키
- 다른 릴레이션의 기본키를 참조하는 속성을 말한다. 지금까지 살펴본 키들이 단일 릴레이션을 기준으로 설명하였다면 외래키는 다른 릴레이션의 기본키를 참조하여 관계 데이터 모델의 특징인 릴레이션 간의 관계를 표현한다.
(2) 무결성 제약조건
- 데이터 무결성은 데이터베이스에 저장된 데이터의 일관성과 정확성을 지키는 것을 말한다.
※ 참고자료 : CodeLatte - DB 강의