공부/데이터베이스
[DB] 2. 관계형 모델
knhoo
2024. 9. 28. 18:03
728x90
관계형 데이터베이스
- 관계형 데이터베이스는 테이블의 집합으로 구성된다.
릴레이션과 튜플
- 테이블의 각 행은 일련의 값 사이의 관계(relation)을 담고 있다고 볼 수 있다.
- 관계형 모델에서 릴레이션은 테이블을 의미한다.
- 튜플(tuple) : 값의 나열 또는 리스트
- n-tuple : n개의 값을 가진 튜플
튜플의 순서
- 릴레이션은 튜플의 집합이기 때문에 순서 관계가 정의되지 않는다.
- 릴레이션에서 튜플이 어떤 순서로 나타나든 상관 없다.
- 즉, 두 릴레이션의 튜플의 순서가 달라도 같은 릴레이션이다.
릴레이션과 속성
- 테이블의 열은 속성(attribute)이라고도 한다.
- 각 속성은 도메인(domain)이라고 하는 허가된 값의 집합을 가진다.
- 속성 : ID, name,dept_name,salary
- 슴salary 속성의 도메인은 가능한 모든 salary 값의 집합
도메인의 원자성
- 모든 릴레이션 r에 대해서, 모든 속성의 도메인은 원자적(atomic)이다.
- 도메인의 요소(element)는 더 이상 나뉠 수 없는 단위이다.
널 값(null value)
- null 값은 '알려지지 않은 값' 또는 ' 존재하지 않는 값'을 의미한다.
스키마와 인스턴스
- 데이터베이스 스키마(database schema)는 데이터베이스의 논리적 설계이다.
- 어느 한 순간에 데이터베이스에 저장되어 있는 데이터의 스냅샷(snapshot)은 데이터베이스 인스턴스(database instance)라고 한다.
- 스키마와 인스턴스 개념은 각각의 릴레이션에도 적용 가능하다.
- 릴레이션 스키마 : instructor(ID,name,dept_name,salary)
- 릴레이션 인스턴스 :
수퍼 키(super key)
- 키는 속성의 집합이다.
- 릴레이션 스키마 R이 속성의 집합이라고 한다면, 키는 릴레이션 스키마 R의 부분 집합이다.
- K ⊆ R
- instruction 릴레이션의 스키마 : {ID,name,dept_name,salary}
- 키 : {ID}
- 릴레이션 스키마 R의 한 릴레이션 인스턴스 r을 r(R)로 표기할 때,
- K의 값들로 릴레이션 인스턴스 r(R)의 각각의 튜플을 고유하게 식별하기 충분한 경우, K는 R의 수퍼 키라고 한다.
- 수퍼 키 : {ID}, {ID,name}
후보 키(candidate key)와 주 키(primary key)
- 최소한의 슈퍼 키 K를 후보 키라고 한다.
- 예시 : {ID}
- 후보 키 중 하나가 주 키로 선택된다.
- 스키마에서는 주 키가 다른 속성보다 앞에 오게 하고, 밑줄을 친다.
- instructor(ID,name,dept_name,salary)
- 후보 키가 여러 개일 때, 튜플을 고유하게 식별할 수 있고, 거의 변하지 않는 키가 주 키로 선택된다.
외래 키
- 외래 키 제약(foreign-key constraint)
- 한 릴레이션의 값은 다른 릴레이션에 주 키의 값으로 반드시 나타나야 한다.
- 예시
- instructor (ID, name, dept_name, salary)
- department (dept_name, building, budget)
- 위 두 개의 릴레이션은 공통된 속성 dept_name 를 가진다.
- 참조하는 릴레이션(referencing relation) : instructor
- 참조된 릴레이션 ( referenced relation) : department
스키마 다이어그램
- 데이터베이스 스키마는 속성 간에 종속성을 가진다.
- 스키마 다이어그램은 이 관계를 시각적으로 보이는데 효과적이다.
728x90