● table: 행과 열로 이루어진 data의 집합
관계형 db에서는 모든 값이 유일한 값을 갖고 중복 행이 없는 등 제약 조건 성립하면 relation이라고 함
모든 relation은 table이지만 역으로 모든 table이 relation이지는 않다.
1) 제약 조건
한 relation에서 tuple은 모두 다르고 순서 무관
relation schema를 구성하는 attribute의 값은 동일해도 됨
tuple을 식별하는 속성들의 부분 집합을 키(key)로 설정
● row(행): 가로로 묶은 dataset. 한 객체에 대한 정보를 가짐.
관계형 db에서는 tuple / record라고 불림
● column(열): 세로로 묶은 dataset. table의 속성. 열을 구성하는 값들은 같은 domain으로 되어 있음.
관계형 db에서는 속성(attribute)라고 불림
● Domain: field에 채워질 수 있는 값의 집합. 예를 들어 1-10 사이의 정수인 속성의 field에 domain을 벗어나는, 또는 자료형이 아예 다른 값은 들어갈 수 없음. 특정 attribute(column) 값의 집합을 domain이라고 부름.
아래 참조하면 첫 행은 17학번 김가나 tuple이고 학과 column을 학과 attribute라고 부름
<학생 relation>
학번 | 이름 | 나이 | 학과 |
17 | 김가나 | 25 | 수학과 |
20 | 김다라 | 23 | 실용음악과 |
<메뉴 relation>
번호 | 이름 | 가격 |
1 | 라면 | 4000 |
2 | 김밥 | 2000 |
<주문 relation>
학번 | 번호 | 날짜 |
17 | 1 | 22/01/30 |
20 | 2 | 22/01/29 |
● 기본 키
1) super key: 유일성을 만족하는 속성들의 집합. 유일한 tuple이 나와야 함. 집합이기 때문에 여러 속성 합쳐서도 가능함. {학번, 이름}, {이름, 학과} 등이 가능하지만 {학과}는 super key가 될 수 없음.
2) candidate key: 후보 키. super key 중에 유일성을 만족하는 최소한의 집합. 학생 relation에서 {학번}, {이름}만 가능함.
3) primary key: 후보 키 중에서 기본적으로 사용하는 키.
4) foreign key: 외래 키. 다른 relation의 기본 키를 참조하는 속성들의 부분 집합. 주문 relation에서 {학번}, {번호}.
5) Alternate key: 대리 키. 후보키가 둘 이상일 대 기본 키로 선택되지 않는 보조 키.
6) surrogate key: 대체 키. 자연적인 값이 아니라 db를 만들기 위해 임의로 만든 값. 메뉴 relation에서 {번호}.
'Database > Oracle' 카테고리의 다른 글
[Oracle] Diagram (0) | 2022.04.11 |
---|