티스토리 뷰
1. 릴레이션 ( relation )
- 릴레이션이란 행과 열로 구성된 테이블을 의미한다.
- Relational이 관계를 의미하지, 릴레이션이 관계를 의미하지 않는다.
- 릴레이션은 하나의 집합이며, 집합은 순서를 보장하지 않으며 중복을 허용하지 않는다.
- 즉, 데이터베이스에서의 테이블은 행과 열의 순서를 보장하지 않는다.
- 또한 하나의 열은 하나의 집합이며, 테이블은 집합의 모임이다.
- 하나의 행은 각각의 집합에서 원소 1개씩 선택해서 만들어진 것으로 원소들이 관계를 맺고 있다.
- Ex. 도서번호 = { 1,2,3,4,5 }
- Ex. 도서이름 = { 축구의 역사, 축구아는 여자, 축구의 이해, 골프 바이블, 피겨교본 }
2. 관계 ( relationship )
- 1 ) 릴레이션 내에서 생성되는 관계 : 릴레이션(테이블) 내 데이터들의 관계
- 2 ) 릴레이션 간에 생성되는 관계 : 릴레이션(테이블) 간의 관계
3. 릴레이션 스키마와 인스턴스
- 테이블의 각각의 열을 속성이라고 하는데, 속성을 개수를 차수라고 부른다.
- 스키마는 이러한 속성의 모음을 말한다.
- 테이블의 각각의 행을 투플이라고 하는데, 투플의 개수를 카디널리티라고 한다.
- 인스턴스는 이러한 투플의 모음의 의미한다.
- 도메인은 속성이 가질 수 있는 값의 범위를 의미한다.
- 투플이 가지는 속성의 개수는 릴레이션 스키마의 차수와 동일하고, 릴레이션 내의 모든 투플들은 서로 중복되지 않아야 한다.
- 이때 중복은 투플이 가지는 모든 속성이 같아야 중복이다.
- 스키마의 표현방법 : 릴레이션의 이름(속성1: 도메인1, 속성2: 도메인2 …. )
- Ex. 도서(도서번호, 도서이름, 출판사, 가격)
릴레이션 용어 | 같은 의미로 통용되는 용어 |
릴레이션 | 테이블 |
스키마 | 내포 |
인스턴스 | 외포 |
투플 | 행 |
속성 | 열 |
4. 릴레이션의 특징
- 1 ) 속성은 단일 값을 가진다.
- : 각 속성의 값은 정의된 값만을 가져야 하며, 그 값은 모두 단일 값이어야 한다.
- 2 ) 속성은 서로 다른 이름을 가진다.
- : 속성은 한 릴레이션에서 서로 다른 이름을 가져야 한다.
- 3 ) 한 속성의 값은 모두 같은 도메인 값을 가진다.
- : 한 속성에 속한 열은 모두 그 속성에서 정의한 도메인 값만을 가질 수 있다.
- 4 ) 속성의 순서는 상관없다.
- : 속성의 순서가 달라도 릴레이션의 스키마는 같다.
- 5 ) 릴레이션 내의 중복된 투플은 허용되지 않는다.
- 6 ) 투플의 순서는 상관없다.
5. 관계 데이터 모델
- 데이터를 2차원 테이블 형태인 릴레이션으로 표현한다.
- 릴레이션에 대한 제약조건과 관계연산을 위한 관계대수를 정의한다.
- 관계데이터 모델의 구성요소 : 릴레이션, 제약조건, 관계대수
6. 키
- 특정 투플을 식별할 때 사용하는 속성 혹은 속성의 집합이다.
- 릴레이션은 중복된 투플을 허용하지 않기 때문에 각각의 투플에 포함된 속성들 중 어느 하나(혹은 하나 이상)는 값이 달라야 한다.
- 즉, 키가 되는 속성(혹은 속성의 집합)은 반드시 값이 달라서 투플들을 서로 구별할 수 있어야 한다.
- 키는 릴레이션 간의 관계를 맺는데도 사용된다.
- 1 ) 슈퍼키
- 슈퍼키에 후보키( 기본키 + 대체키 )가 포함된다.
- 슈퍼키는 투플을 유일하게 식별할 수 있는 하나의 속성 혹은 속성의 집합이다.
- 투플을 유일하게 식별할 수 있는 값이라면 모두 슈퍼키가 될 수 있다.
- 2 ) 후보키
- 투플을 유일하게 식별할 수 있는 속성의 최소 집합
- + 릴레이션의 후보키가 2개의 속성을 합한 (고객번호, 도서번호)가 될 수 있는데, 이렇게 2개 이상의 속성으로 이루어진 키를 복합키라고 부른다.
- 3 ) 기본키
- 여러 후보키 중에서 하나를 선정하여 대표로 삼는 키이다.
- 후보키가 하나뿐이라면 그 후보키를 기본키로 사용하면 되며, 여러 개라면 릴레이션의 특성을 반영하여 하나를 선택해야 한다.
- 릴레이션 스키마를 표현할 때 기본키는 밑줄을 그어야 한다.
- Ex. 릴레이션 이름(속성1, 속성2, …. 속성N)
- Ex. 고객(고객번호, 이름, 주민번호, 주소, 핸드폰)
- 3-1 ) 기본키 선정 시 고려사항
- 1. 릴레이션 내 투플을 식별할 수 있는 고유한 값을 가져야 한다.
- 2. Null 값은 허용하지 않는다. ( Null = 값이 없다는 의미 )
- 3. 키 값의 변동이 일어나지 않아야 한다.
- 4. 최대한 적은 수의 속성을 가진 것이어야 한다.
- 5. 향후 키를 사용하는데 있어서 문제 발생 소지가 없어야 한다.
- + 즉, 기본키 = Unique(고유) + NOT NULL(NO 결측치)
- 4 ) 대리키
- 기본키가 보안을 요하거나, 여러 개의 속성으로 구성되어 복잡하거나 마땅한 기본키가 없을 때에는 일련번호 같은 가상의 속성을 만들어 기본키로 삼는 경우가 있다.
- 이러한 키를 대리키 혹은 인조키라고 한다.
- 대리키는 DBMS나 관련 소프트웨어에서 임의로 생성하는 값으로 사용자가 직관적으로 그 값의 의미를 알 수 없다.
- + 의미를 부여하는 키는 대리키가 아니다. (ex. 운송장 번호)
- 5 ) 대체키
- 대체키는 기본키로 선정되지 않은 후보키를 의미한다.
- 6 ) 외래키
- 다른 릴레이션의 기본키를 참조하는 속성을 말한다.
- 다른 릴레이션의 기본키를 참조하여 관계 데이터 모델의 특징인 릴레이션 간의 관계(relationship)를 표현한다.
- 외래키 사용 시 참조하는 릴레이션과 참조되는 릴레이션이 꼭 다른 릴레이션일 필요는 없다.
- 즉, 자기 자신의 기본키를 참조할 수도 있다.
- 6-1 ) 외래키의 특징
- 1. 관계 데이터 모델의 릴레이션 간의 관계를 표현한다.
- 2. 다른 릴레이션의 기본키를 참조하는 속성이다.
- 3. 참조하고(외래키) 참조되는(기본키) 양쪽 릴레이션의 도메인은 서로 같아야 한다.
- 4. 참조되는(기본키) 값이 변경되면 참조하는(외래키) 값도 변경된다.
- 5. 외래키에서는 NULL값과 중복 값 등이 허용된다.
- 6. 자기 자신의 기본키를 참조하는 외래키도 가능하다.
- 7. 외래키가 기본키의 일부가 될 수 있다. ( 단, 기본키가 외래키를 포함한 “복합키” 형태일 때에만 해당된다. )
- + 즉, 외래키 = 중복허용 + NULL허용
'KH 정보교육원 [ Java ]' 카테고리의 다른 글
KH 37일차 - 데이터 모델링 ( ERD ) (0) | 2022.04.19 |
---|---|
KH 36일차 - 데이터 모델링 (0) | 2022.04.18 |
KH 34일차 - 데이터베이스 시스템 ( DBS ) (0) | 2022.04.14 |
KH 33일차 - 자바 표준 API (0) | 2022.04.13 |
KH 32일차 - 데이터 베이스 ( Oracle SQL Developer ) (0) | 2022.04.12 |