MindMap Gallery 관계 데이터 모델 지식 그래픽
이 그래픽은 관계 데이터 모델의 중요한 개념과 구성 요소를 설명합니다. 데이터 모델, 관계 데이터 모델, 릴레이션, 무결성 제약 조건 등의 내용을 포함하고 있습니다. 데이터베이스 개발자나 시스템 설계자는 이 그래픽을 통해 관계 데이터 모델의 기본 개념과 구조를 파악하고 데이터베이스 설계에 활용할 수 있습니다. EdrawMax는 다양한 그래픽 요소와 템플릿을 제공하여 사용자가 그래픽을 보다 전문적으로 디자인하고 편집할 수 있도록 지원합니다.
Edited at 2023-10-10 14:41:42관계 데이터 모델
데이터 모델
data model
◎ 정의
데이터 모델링의 결과물을 표현하는 도구
데이터 모델링?
◎ 정의
현실세계에 존재하는 데이터를 컴퓨터세계의 DB로 옮기는 변환과정
※ 구분
개념적 데이터 모델링
conceptual modeling
◎ 현실 세계의 중요 데이터를 추출하여 개념 세계로 옮기는 작업
논리적 데이터 모델링
logical modeling
◎ 개념 세계의 데이터를 DB 구조로 표현하는 작업
※ 구분
개념적 데이터 모델
conceptual data model
◎ 정의
현실세계를 모델링하여 개념적 도구로 표현하는 도구
♤ 예시
개체-관계 모델
ER: Entity-Relationship
논리적 데이터 모델
logical data model
◎ 정의
개념적 구조를 모델링하여 DB의 논리적 구조로 표현하는 도구
♤ 예시
관계 데이터 모델
relational data model
계층 데이터 모델
hierarchical data model
네트워크 데이터 모델
network data model
# 구조
데이터 구조
data structure
◎ 저장할 데이터 타입 + 관계
☆ 정적 특징
연산
operation
◎ 표현한 값들을 처리하는 작업
☆ 동적 특징
제약조건
constraint
◎ 구조적 측면의 제약사항
◈ 데이터 무결성 유지 목적
관계 데이터 모델
☞ 소개
▷
가장 널리 사용되는 DBMS
◈ 제안된 목적
데이터 독립성 향상
단순한 데이터 모델
한 번에 다수의 레코드 집합 조작 가능
DB 관리분야에 튼튼한 이론적 근거 제공
¶ 성공 요인
간단한 바탕 구조 (릴레이션)
복잡한 구조 부재 (중첩 X)
집합 위주의 데이터 처리
쉬운 이해 가능
표준 DB응용에 좋은 성능
타 DB모델에 비해 이론정립이 잘 되어 있음
설계/질의 처리 면에서 뛰어난 장점 보유
원하는(what...o) 데이터만 명시하며, 어떻게(how...x) 데이터를 찾을 것인지 명시할 필요 없음.
○ 개념
릴레이션
relation
◎ 정의
하나의 개체에 관한 데이터를 2차원 테이블 구조로 저장한 것
릴레이션
투플
tuple
◎ 정의
릴레이션의 행
투플
애트리뷰트
attribute
◎ 정의
릴레이션의 열
애트리뷰트
도메인
domain
= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
◎ 정의
한 애트리뷰트가 가질 수 있는 모든 값들의 집합
▽ 조건
원자값
복합 애트리뷰트 X
여러 애트리뷰트로 구성된 애트리뷰트
다치 애트리뷰트 X
여러 개의 값을 갖는 애트리뷰트
명시 이유
릴레이션들의 합집합/교집합/차집합 등 제한 (합집합 호환 체크)
의미있는 연산만 허용하기 위함
도메인
차수
degree
◎ 정의
릴레이션의 애트리뷰트들의 수
▽ 조건
최소 차수 = 1
☆ 특징
릴레이션의 차수는 잘 바뀌지 않음
차수
카디날리티
cardinality
◎ 정의
릴레이션의 투플 수
▽ 조건
카디날리티 = 0을 가질 수 있음
☆ 특징
릴레이션의 카디날리티는 계속해서 변함
카디날리티
릴레이션 스키마
relation schema
◎ 정의
릴레이션 이름 + 애트리뷰트 집합
릴레이션의 틀
= 내포 (intension)
◇ 표기법
릴레이션명(애트리뷰트1, 애트리뷰트2, ... 애트리뷰트N)
기본 키 애트리뷰트에는 밑줄
△ 관련 용어
관계 데이터베이스 스키마
릴레이션 스키마들로 구성된 스키마
릴레이션 스키마
릴레이션 인스턴스
relation instance
◎ 정의
릴레이션의 어느 시점에 들어 있는 투플들의 집합
= 외연 (extension)
☆ 특징
시간 흐름에 따라 지속적으로 변함
△ 관련 용어
관계 데이터베이스 인스턴스
릴레이션 인스턴스들로 구성된 인스턴스
릴레이션 인스턴스
널 값
null value
◎ 의미
알려지지 않음 / 적용되지 않음 / 0이나 공백문자와 다름
널 값
△ 관련 용어
릴레이션
☆ 특성
속성의 원자성
한 투플의 각 애트리뷰트는 원자값을 가지며, 정의한 도메인 값만 가질 수 있음
속성의 무순서
애트리뷰트들의 순서는 무의미
튜블의 유일성
동일한 튜플이 2개 이상 존재하지 않음
각 튜플을 고유하게 식별할 수 있는 적어도 1개 이상의 애트리뷰트 집합이 존재
튜플의 무순서
튜플의 순서는 무의미
키
◎ 정의
각 투플을 유일하게 식별할 수 있는 하나 이상의 애트리뷰트들의 집합
☆ 특성
○ 유일성
Uniqueness
하나의 키 값으로 각 튜플을 유일하게 식별할 수 있어야 함
○ 최소성
Minimality
각 튜플을 유일하게 구별하는 키는 꼭 필요한 어트리뷰트로만 구성되어야 함
만약 1개의 애트리뷰트를 제거하면 식별 불가
※ 종류
수퍼 키
super key
◎ 정의
한 릴레이션 內 특정 투플을 고유하게 식별하는 하나의 애트리뷰트 (집합)
▽ 조건
"유일성"만 만족하면 OK
∴ 식별하는 데 꼭 필요하지 않은 애트리뷰트 포함 가능
♤ 예시
>> 신용카드 회사의 고객 릴레이션
(신용카드번호, 주소)
(주민등록번호, 이름)
(주민등록번호)
수퍼 키
후보 키
candidate key
◎ 정의
한 릴레이션 內 각 투플을 고유하게 식별하는 최소한의 애트리뷰트 (집합)
▽ 조건
유일성
최소성
▼ 릴레이션 조건
모든 릴레이션에는 최소한 1개 이상의 후보 키 존재
♤ 예시
>> 신용카드 회사의 고객 릴레이션
(신용카드번호) ... O
(신용카드번호, 주소) ... X
최소성 만족 X
(이름) ... X
동명이인 존재
개명 가능
후보 키
기본 키
primary key
◎ 정의
한 릴레이션 內 후보 키가 2개 이상 있을 때 그 中 선택된 1개의 키
▽ 조건
유일성
최소성
선정 시 고려사항
① 항상 고유한 값 갖는 애트리뷰트
② 널 값을 가지지 않는 애트리뷰트
③ 값이 변경될 가능성이 낮은 애트리뷰트
④ 가능하면 작은 정수/짧은 문자열을 갖는 애트리뷰트
⑤ 가능하면 "복합" 기본 키가 아닌 애트리뷰트
♤ 예시
>> 신용카드 회사의 고객 릴레이션
(신용카드 번호), (주민등록번호) ... 후보키 └→ (신용카드번호) ... 기본키
기본 키
대체 키
alternate key
◎ 정의
기본 키가 아닌 후보 키
♤ 예시
>> 신용카드 회사의 고객 릴레이션
기본키 = (신용카드번호) ∴ 대체 키 = (주민등록번호)
대체 키
외래 키
foreign key
◎ 정의
어떤 릴레이션의 기본 키를 참조하는 애트리뷰트
◈ 목적
관계 데이터베이스에서 릴레이션 間 관계 표현
▽ 조건
외래 키 애트리뷰트 도메인 = 참조되는 릴레이션 기본 키의 도메인
(옵션) 자신이 속한 릴레이션의 기본키의 구성요소가 될 수도 있음
외래 키
무결성 제약조건
data integrity
◎ 의미
데이터의 정확성 또는 유효성
※ 종류
도메인 무결성 제약조건
domain constraint
◎ 의미
각 애트리뷰트 값이 반드시 원자값이어야 함
= 도메인에 지정된 값만을 가져야 함
엔티티 무결성 제약조건
entity integrity constraint
◎ 의미
릴레이션의 기본 키를 구성하는 어떤 애트리뷰트도 널값을 가질 수 없음
= 기본 키는 널값 불가
참조 무결성 제약조건
referential integrity constraint
◎ 의미
...다음의 두 조건 중 하나가 성립되면 만족됨
① 외래 키의 값은 참조'되는' 릴레이션의 어떤 투플의 기본 키 값과 같다 ② 외래 키가 참조'하는' 릴레이션의 기본 키를 구성하고 있지 않으면 널 값을 가진다
① 도메인이 같아야 함 ② 참조되는 릴레이션 값이 변경되면, 참조하는 릴레이션 값이 제약을 받음
= 릴레이션 간의 참조관계를 선언하는 제약조건
제약조건 유지법
♧ 과정
각각의 갱신연산에 대하여 DBMS가 여러 무결성 제약조건을 만족하도록 필요한 조치를 취함
외래 키 갱신/참조된 기본 키 갱신 시, DBMS가 참조 무결성 제약조건을 위배하지 않도록 조치를 취함
갱신 연산
삽입 연산
참조하는 릴레이션
① 도메인 무결성 제약조건, ② 엔티티 무결성 제약조건, ③ 참조 무결성 제약조건 위반 가능
③ EMPLOYEE 릴레이션에 (4325, 오혜원, 6) ...이라는 투플 삽입 시 참조 무결성 제약조건 위반
참조되는 릴레이션
① 도메인 무결성 제약조건, ② 엔티티 무결성 제약조건 위반 가능
삭제 연산
참조하는 릴레이션
위반가능 제약조건 없음
DEPARTMENT 릴레이션에서 네 번째 투플인 (4, 홍보, 8)을 삭제 시 위반여부 없음
참조되는 릴레이션
③ 참조 무결성 제약조건 위반 가능
③ DEPARTMENT 릴레이션에서 세 번째 투플인 (3, 개발, 9)를 삭제 시 참조 무결성 제약조건 위반
수정 연산
◇ 수정하려는 애트리뷰트가 기본 키 또는 외래 키인가?
Yes
① 도메인 무결성 제약조건, ② 엔티티 무결성 제약조건 위반 가능
③ 참조 무결성 제약조건 위반 가능
★ 수정연산 = 삭제연산 + 삽입연산
No
① 도메인 무결성 제약조건, ② 엔티티 무결성 제약조건 위반 가능
삭제연산 해결책
제한
restricted
§ 동작
위반 연산을 단순히 거절
연쇄
cascade
§ 동작
① 참조되는 릴레이션에서 투플 삭제 ② 참조하는 릴레이션에서, 해당 투플을 참조하는 투플들도 삭제
♤ 예시
널 값
nullify
§ 동작
① 참조되는 릴레이션에서 투플 삭제 ② 참조하는 릴레이션에서, 해당 투플을 참조하는 투플에 NULL값 삽입
디폴트 값
default
§ 동작
① 참조되는 릴레이션에서 투플 삭제 ② 참조하는 릴레이션에서, 해당 투플을 참조하는 투플에 default값 삽입
대리 키
surrogate key
◎ 정의
자연스러운 기본 키를 찾을 수 없을 때 인위적으로 만든 키
복합 키
composite key
◎ 정의
2개 이상의 애트리뷰트로 구성된 후보 키