티스토리 뷰
관계 데이터 모델링 이란?
- 개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델
- 하나의 개체에 대한 데이터를 하나의 릴레이션에 저장
- 릴레이션(relation)
- 하나의 개체에 관한 데이터를 2차원 테이블의 구조로 저장한 것
- 파일 관리 시스템 관점에서 파일(file)에 대응
- 속성(attribute)
- 릴레이션의 열, 애트리뷰트
- 파일 관리 시스템 관점에서 필드(field)에 디응
- 튜플(tuple)
- 릴레이션의 행
- 파일 관리 시스템 관점에서 레코드(record)에 대응
- 도메인(domain)
- 하나의 속성이 가질 수 있는 모든 값의 집합
- 속성 값을 입력 및 수정할 떄 적합성의 판단 기준이 됨
- 일반적으로 속성의 특성을 고려한 데이터 타입으로 정의
- 널(NULL)
- 속성 값을 아직 모르거나 해당되는 값이 없음을 표현
- 차수(degree)
- 하나의 릴레이션에서 속성의 전체 개수
- 카디널리티(cardicality)
- 하나의 릴레이션에서 투플의 전체 개수
- 릴레이션 스키마(relation schema)
- 릴레이션의 논리적 구조
- 릴레이션의 이름과 릴레이션에 포함된 모든 속성 이름으로 정의
- 릴레이션 내포(realation intenstion)라고도 함
- 정적인 특징이 있음
- 릴레이션 인스턴스
- 어느 한 시점에 릴레이션에 존재하는 투플들의 집합
- 릴레이셔 외연(relation extension)이라고도 함
- 동적인 특징이 있음
데이터베이스의 구성
- 데이터베이스 스키마(database schema)
- 데이터베이스의 전체구조
- 데이터베이스를 구성하는 릴레이션 스키마의 모음
- 데이터베이스 인스턴스(database instance)
- 데이터베이스를 구성하는 릴레이션 인스턴스의 모음
- 릴레이션의 특징
- 투플의 유일성 : 하나의 릴레이션에는 동일한 투플이 존재할 수 없다
- 투플의 무순서 : 하나의 릴레이션에서 투플 사이의 순서는 무의미하다
- 속성의 무순서 : 하나의 릴레이션에서 속성 사이의 순서는 무의미하다
- 속성의 원자성 : 속성 값으로 원자 값만 사용할 수 있다
- 키(key)
- 릴레이션에서 투플들을 유일하게 구별하는 속성 또는 속성들의 집합
- 키의 특성
- 유일성(uniqueness) 하나의 릴레이션에서 모든 투플은 서로 다른 키 값을 가져야 함
- 최소성(minimality) 꼭 필요한 최소한의 속성들로만 키를 구성
- 키의 종류
- 슈퍼키(Super Key)
- 유일성을 만족하는 속성 또는 속성들의 집합
- ex) 고객 릴레이션의 슈퍼키 : 고객아이디, (고객아이디, 고객이름) 등
- 후보키(candidate key)
- 유일성과 최소성을 만족하는 속성 또는 속성들의 집합(고객아이디,이름)에서 고객아이디만으로도 구별가능하기때문에 최소성에 의해 ❌
- ex) 고객 릴레이션의 후보키 : 고객아이디, (고객이름, 주소) 등
- 기본키(primary key)
- 후보키 중에서 기본적으로 사용하기 위해 선택된 키값이 자주 변경될 수 있는 속성이 포함된 후보키는 부적합
- 단순한 후보키를 선택
- 널 값을 가질 수 있는 속성이 포함된 후보키는 부적합
- 대체키(alternate key)
- 기본키로 선택되지 못한 후보키
- ex) 고객 릴레이션의 대체키 : (고객이름, 주소)
- 외래키(foreign key)
- 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
- 릴레이션들 간의 관계를 표현
- 참조하는 릴레이션 : 외래키를 가진 릴레이션(주문 릴레이션)
- 참조되는 릴레이션 : 외래키가 참조하는 기본키를 가진 릴레이션(고객 릴레이션)
- 기본키 속성의 이름은 달라도 되지만 도메인은 같아야 한다
하나의 릴레이션에는 외래키가 여러 개 존재할 수도 있고, 외래키를 기본키로 사용할 수도 있다
- 무결성 제약조건(integrity constraint)
- 데이터의 무결성을 보장하고 일관된 상태로 유지하기 위한 규칙
- 무결성: 데이터를 결함이 없는 상태, 즉 정확하고 유효하게 유지하는 것
참고 강의) http://www.kocw.net/home/cview.do?cid=9c591659f017851e
'DataBase System' 카테고리의 다른 글
데이터 모델링 (0) | 2022.08.22 |
---|---|
관계 데이터 모델: 실습 (0) | 2022.08.22 |
데이터 모델링 : 실습 (0) | 2022.08.22 |
데이터베이스 시스템 (0) | 2022.08.14 |
데이터베이스 관리시스템 (0) | 2022.08.14 |