관계형 데이터베이스의 주요 개념 훑어보기
RDB
관계형 데이터베이스의 주요 개념을 훑어본다.
동의어 정리
id | password | name | |
---|---|---|---|
1 | honggilsun@mail.com | 1234 | 홍길순 |
2 | honggildong@mail.com | 1q2w3e4r! | 홍길동 |
3 | autroshot@mail.com | Lre*9^%&d^B#cym | 이민철 |
- 테이블(table), 릴레이션(relation), 파일(file)
- 튜플(tuple), 레코드(record), 행(row)
- 속성(attribute), 필드(field), 열(column)
엔터티(entity)
흔히 개체로 번역되는 엔터티의 정의는 다음과 같다.
- 테이블이다.
- 우리가 관리하고자 하는 데이터의 집합이다.
- 사람, 장소, 사물, 사건, 개념 등을 표현한 집합이다.
- 함수 종속에 의해 도출한 결과 집합이다.
엔터티는 크게 두 가지로 분류할 수 있다.
- 물리적으로 존재하는 것: 고객, 노트북, 상품, 자동차 등
- 개념으로 존재하는 것: 환율, 강좌, 분류(유형, 카테고리)
데이터 모델링에서 가장 중요한 것이 엔터티를 도출하는 것이다.
엔터티 정의는 주 키와 밀접하게 관련된다. 엔터티를 정의하는 것과 주 키를 찾는 것은 동시에 이루어진다.
키(key)
일반적으로 키는 주 키를 의미한다.
- 후보 키(candidate key): 주 키가 될 수 있는 후보이다.
- 주 키(primary key, PK): 흔히 기본 키라고 부른다. 행을 고유하게 식별한다. 엔터티에서 주 키는 하나만 존재해야 한다.
- 합성 키(composite key): 복합 키로도 부른다. 두 개 이상의 열로 이루어진 키다.
- 인조 키(artificial key): 보통 DBMS가 자동으로 만들어 주는 값이며 이름을
id
로 짓는다. 학번, 사원번호, 제품번호 등이 인조 키이다. 합성키를 대신하기도 한다. 인조 키를 무조건 생성하는 것에 대해서는 고민할 필요가 있다. - 외래 키(foreign key): 두 엔터티의 관계를 설정한다. 부모 엔터티의 주 식별자가 자식 엔터티의 외래 키가 된다.
관계
관계의 종류는 다음과 같다.
- 일대일(one-to-one)
- 일대다(one-to-many)
- 다대다(many-to-many)
함수 종속(functional dependency)
테이블 내에 존재하는 속성 간의 종속성을 의미한다. 하나의 속성이 다른 속성의 값을 결정(식별)하는 관계이다.
X를 결정자(determinant), Y를 종속자(dependent)라고 부른다.
함수 종속은 속성과 엔터티를 정의하고 관계를 파악하는데 절대적인 역할을 한다. 정규화를 위해서는 함수 종속을 파악해야 한다.
정규화는 함수 종속의 결정자가 키가 되게 만드는 과정이다. 키가 아닌 모든 속성이 키에 종속되게 만드는 과정이다.
관계형 데이터 모델링 프리미엄 가이드 개정판 - 김기창