01. 관계 데이터 모델의 개념
기본개념
- 개념적 구조 -> 논리적 구조 표현하는 논리적 데이터 모델
- 하나의 개체에 대한 데이터(특성)를 하나의 릴레이션에 저장
관계데이터모델의 기본용어
- 릴레이션(relation)
- 하나의 개체에 대한 데이터를 2차원 테이블의 구조로 저장
- 파일관리 시스템 관점에서 파일(file)에 대응 - 데베시험엔 안나옴 근데 자격증 시험에는 나온다~
- 속성(attribute)
- 릴레이션의 열. attribute
- 파일관리 시스템 관점에서 field에 대응
- 투플(tuple)
- 릴레이션의 행
- 파일관리 시스템 관점에서 레코드(record)에 해당
- 도메인(domain)
- 하나의 속성이 가질 수 있는 모든 값의 집합
- 속성 값을 입력 및 수정할 때 적합성 판단의 기준
- 일반적으로 속성의 특성 고려한 데이터타입으로 정의
- 별도제약조건보다는 domain 설정해놓는 게 좋음
- 널(null)
- 속성값을 아직 모르거나 해당되는 값이 없음을 표현
- 차수(degree)
- 하나의 릴레이션에서 속성의 전체 개수
- 카디널리티(cardinality)
- 하나의 릴레이션에서 투플의 전체 개수
릴레이션의 구성
- 릴레이션 스키마(relation schema) - (구조 & 제약조건)
- 릴레이션의 논리적 구조
- 릴레이션의 이름과 릴레이션에 포함된 모든 속성의 이름으로 정의
- 예) 고객(고객아이디, 고객이름, 나이, 등급, 직업, 적립금)
- 릴레이션 내포(relation intension)라고도 함. 자주 변하지 않는 정적인 특징
- 릴레이션 인스턴스(relation instance)
- 어느 한 시점에 릴레이션에 존재하는 투플들의 집합
- 릴레이션 외연(relation extension)이라고도 함
- 투플의 삽입, 삭제, 수정이 자주 발생하는 동적인 특징
데이터베이스의 구성
- 데이터베이스 스키마(database schema)
- 데이터베이스의 전체구조
- 데이터베이스를 구성하는 릴레이션 스키마의 모음
- 데이터베이스 인스턴스(database instance)
- 데이터베이스를 구성하는 릴레이션 인스턴스의 모음
릴레이션의 특성(중요!!!)
- 하나라도 만족하지 않으면 릴레이션 x
투플의 유일성
- 하나의 릴레이션에는 동일한 투플이 존재할 수 없다.
- 투플을 유일하게 구별하기 위해 선정하는 속성(또는 속성들의 모임)값으로 판단
투플의 무순서
- 하나의 릴레이션에서 투플 사이의 순서는 무의미
속성의 무순서
- 하나의 릴레이션에서 속성 사이의 순서는 무의미
속성의 원자성
- 속성 값으로 원자값만 사용할 수 있다.
키(key)
- 릴레이션에서 투플들을 유일하게 구별하는 속성 또는 속성들의 집합
키의 특성
- 유일성(uniqueness)
- 하나의 릴레이션에서 모든 투플은 서로 다른 키 값 가져야 함.
- 최소성(minimality)
- 꼭 필요한 최소한의 속성들로만 키 구성
키의 종류
- 슈퍼키(super key) : 유일성을 만족하는 속성 or 속성들의 집합
- ex) : 고객 릴레이션의 슈퍼키 : 고객아이디, (고객아이디, 고객이름), (고객이름, 주소) 등
- 후보키(candidate key) : 유일성과 최소성을 만족하는 속성 or 속성들의 집합
- ex) 고객 릴레이션의 후보키 : 고객아이디, (고객이름, 주소) 등
- 기본키(primary key) : 후보키 중 기본적으로 사용하기 위해 선택한 키
- ex) 고객 릴레이션의 기본키 : 고객아이디
- 기본키 선정에서 제외
- NULL값을 가질 수 있는 속성이 포함된 후보키
- 값이 자주 변경될 수 있는 후보키
- 후보키 하나면 그냥 얘가 기본키 됨.
- 단순한 후보키를 기본키로 선정한다.
- 대체키(alternate key) : 기본키로 선택되지 못한 후보키
- ex) 고객 릴레이션의 대체키 : (고객이름, 주소)
- 외래키(foreign key)
- 다른 릴레이션의 기본키(혹 대체키 참조)를 참조하는 속성 or 속성의 집합
- 관계데이터모델에서 객체와 객체의 관계 표현. 중요!!
- 릴레이션 사이의 관계 표현
- 참조하는 릴레이션 : 외래키를 가진 릴레이션
- 참조되는 릴레이션 : 외래키가 참조하는 기본키를 가진 릴레이션
(총정리) 키의 특성과 종류
- 특성 :
- 유일성 : 한 릴레이션에서 모든 투플은 서로 다른 키 값을 가져야 한다.
- 최소성 : 꼭 필요한 최소한의 속성들로만 키를 구성
- 종류 :
- 슈퍼키 : 유일성 만족하는 속성 또는 속성들의 집합
- 후보키 : 유일성과 최소성 만족하는 속성 또는 속성들의 집합
- 기본키 : 후보키 중 기본적으로 사용하기 위해 선택한 키
- 절대 null 허용 x
- 대체키 : 기본키로 선택되지 못한 후보키
- 대체무결성과 관련
- 전체 record 중 딱 1개만 null 허용 o
- 외래키: 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
02. 관계 데이터 모델의 제약
- 무결성 제약조건(integrity constraint)
- 데이터의 무결성을 보장하고 일관된 상태로 유지하기 위한 규칙
- 무결성 : 데이터에 결함이 없는 상태, 즉 데이터가 정확하고 유효하게 유지된 상태
- 삽입 삭제 수정이 빈번하게 발생하는데, 이런 제약조건은 항상 무결성이 유지 되어짐을 보장
- 개체 무결성 제약조건(entity integrity constraint)
- 기본키를 구성하는 모든 속성은 널값을 가질 수 없는 규칙
- 널값 가지면 error 메시지
- 기본키를 구성하는 모든 속성은 널값을 가질 수 없는 규칙
- 참조 무결성 제약조건(referential integrity constraint)
- 외래키는 참조할 수 없는 값을 가질 수 없는 규칙
- 고객 릴레이션과 주문릴레이션 사이 아무런 연관이 없는 값 : cherry.
- cherry 자리에 null이 들어올 수는 있음. 하지만 참조 릴레이션 해당 기본키 속성에 없으면 참조 무결성 위배
- 고객릴레이션에 새로운 고객 -> 괜찮음
- 고객 릴레이션과 주문릴레이션 사이 아무런 연관이 없는 값 : cherry.
- 삽입연산 : 참조 릴레이션의 삽입은 경우에 따라 거부당할 수 있다.
- 삭제연산 : 주문릴레이션에서는 삭제하는 데 있어 문제 x. 삽입이 문제 없다는 가정하에. 그러나 고객릴레이션에서 고객의 아이디가 삭제되면 주문릴레이션이 cherry와 같은 상태가 된다..
- 외래키는 참조할 수 없는 값을 가질 수 없는 규칙
'CS > 데이터베이스' 카테고리의 다른 글
[데이터베이스] myCompiler 실습_중간 (0) | 2025.04.26 |
---|---|
[Database] ch06. 관계 데이터 연산 (2) | 2025.04.24 |
[데이터베이스] ch04. 데이터 모델링 (0) | 2025.04.23 |
[데이터베이스] ch03. 데이터베이스 시스템 (0) | 2025.04.22 |
[데이터베이스] ch02. 데이터베이스 관리 시스템 (1) | 2025.04.22 |