(2022.04.07)
데이터베이스 강의 들으면서 정리하기 5탄
Data Model 구성 3요소
1. data structure : 데이터 구조
- 데이터를 어떤 형태로 저장하는지를 표현하는 추상적 표현
- 실제 저장 구조가 아닌 개념상의 저장구조를 직관적으로 표현
2. operation : 연산
- 개념적인 데이터 구조 안의 데이터를 어떤 방식으로 처리하지를 표현
3. constraint : 제약조건
- 데이터 구조 안에 데이터를 저장할 때의 구조적 제약 사항과 연산을 적용할 때의 행위적 제약 사항을 표현
관계형 데이터 모델
- relation으로 불리는 2차원 테이블 (table) 형태의 단순구조에 데이터를 저장하는 방식
- 테이블 구조는 relation 개념을 직관적으로 쉽게 이해하도록 함
관계형 데이터 모델의 3요소
- 데이터를 저장하는 기본 데이터 구조: relation
- relation의 데이터를 처리하는 연산 : 관계대수
- 제약사항 : 무결성 제약 조건
-------------------------------------------------------
relation --> 관련된 여러 relation 들로 데이터베이스를 구성 (table)
: 관계형 데이터 모델의 핵심
▷tuple (투플)
- relation의 raw(행) (table의 행)
- 현실 세계의 개체를 표현
- 속성 값들의 조합으로 구성
- 파일 관리 시스템 관점에서 record에 대응
▷attribute (속성)
- relation의 column(열) (table의 열)
- 데이터를 표현하는 가장 작은 논리적 단위 --> 의미적으로 더 이상 분해할 수 없는 원자값만을 사용
- 릴레이션이 표현하는 대상의 주요 특성들을 서로다른 이름으로 구별하여 표현
- 파일 관리 시스템 관점에서 field에 대응
▷domain (도메인)
- 각 속성이 취할 수 있는 모든 값들의 집합, 즉 하나의 속성이 가질 수 있는 모든 값의 집합
- 적합성 판단의 기준이 됨
------------------------------------------
카디널리티 (cardinality) : 하나의 relation 안의 전체 tuple의 개수 -> 동적 특성
차수 (degree) : 하나의 relation 을 구성하는 전체 attribute의 개수 -> 정적 특성
------------------------------------------
relation의 구성
1. relation의 schema (relation intension)
- relation의 논리적 구조
- 정적인 특성있음
2. relation의 instance
- 어느 한 시점에 relation에 존재하는 tuple들의 집합
- 동적인 특성있음
database의 구성
1. database의 schema
- 데이터베이스 전체 구조
- 데이터베이스를 구성하는 relation의 schema의 모음
- 정적임
2. database의 instance
- database를 구성하는 relation의 instance의 모음
- 동적임
relation의 특성
- tuple의 유일성
- tuple의 무순서
- attribute의 무순서
- attribute의 원자성
1. tuple의 유일성 (uniqueness of tuple)
- 하나의 relation은 tuple들의 집합이다. --> relation 안에는 똑같은 tuple이 존재하지 않는다.
- 모든 tuple은 다른 tuple과 구별되는 유일한 속성값이 있어야한다.
2. tuple의 무순서성 (no ordering of tuple)
- 집합에서는 원소들 사이에서 순서가 의미가 없다. --> relation의 tuple 사이에 순서는 의미가 없다.
3. 속성의 무순서성 (no ordering of attribute)
- tuple과 마찬가지로 relation이 속성의 집합이라 순서에 의미가 없다.
- 속성 값은 속성의 순서가 아니라 속성의 이름에 의해 참조된다.
4. 속성의 원자성 (atomicity of attribute)
- 속성 값은 더 이상 의미적으로 쪼개서 사용할 수 없다.
- relation은 다중값이나 복합속성을 허용하지 않는다.
key
- relation에서 tuple 들을 유일하게 구별하는 속성 또는 속성들의 집합
- 모든 relation은 키를 가진다. --> 키에 속하는 속성 집합은 반드시 속성값의 조합이 tuple마다 달라야함
- 여러 무결성 제약 조건과 관련하여 중요한 역할을 함
key 의 특성
- 유일성 (uniqueness) : 하나의 relation에서 모든 tuple은 서로 다른 키값을 가짐
- 최소성 (minimality) : 최소한의 속성들로만 key를 구성함 (복합키 제외하면 최소성 조건은 항상 충족함)
key 의 종류
- 슈퍼키(super key) : 유일성 만족 but, 최소성 불만족
- 후보키(candidate key) : 유일성과 최소성 만족
- 기본키(primary key) : 후보키 중에서 보통 값이 바뀌지 않는 것
- 대체키(alternate key) : 기본키로 선택되지 못한 후보키
- 외래키 (foreign key) : 다른 relation의 기본키를 참조하는 키 (외래키 속성과 그것이 참조하는 기본키 속성의 이름은 달라도 되지만, 도메인은 같아야한다), 하나의 relation에는 외래키가 여러개일 수도 있음, 외래키 속성은 null 값 일수도 있음.
무결성 제약조건 integrity constraint
- 데이터의 무결성을 보장하고 일관된 상태로 유지하기 위한 규칙 (무결성: 데이터를 결함이 없는 상태로 유지하는 것)
- 개체 무결성 제약조건 : 기본키를 구성하는 모든 속성은 null 값을 가질 수 없다
- 참조 무결성 제약조건 : 외래키는 참조할 수 없는 값을 가질 수 없다
1. 개체 무결성 제약조건
- 기본키를 구성하는 모든 속성은 null 값을 가질 수 없고, relation 안에서 중복되지 않는 유일한 값을 가져야 한다는 제약
- primary key constraint 라고도 함 (기본키 제약조건)
- 개체의 유일성을 선언하는 제약 조건
- DBMS에게 기본키를 선언함으로써 즉시 적용
2. 참조 무결성 제약조건
- 외래키는 참조할 수 없는 값을 가질 수 없는 규칙
- 외래키로 지정한 속성은 참조하는 relation의 기본키 속성값과 일치하는 값이나 null 값만을 가져야한다는 제약
- foreign key constraint 라고도 함 (외래키 제약조건)
- 개체의 참조관계를 선언하는 제약 조건
- DBMS에게 외래키를 선언함으로써 즉시 적용 (의미적으론 연관된 두 relation tuple 사이의 일관성 유지를 위해 사용)
- 외래키 속성이 null 값을 가진다고 해서 참조 무결성 제약조건을 위반하는 것은 아님
+ 도메인 무결성 제약조건
- tuple의 모든 속성 값이 각 속성의 도메인에 속한 값만을 취해야 한다는 제약 사항
+ 유일성 제약조건
- 모든 키 속성 값이 서로 중복되지 않고 유일해야한다는 제약사항
데이터 무결성을 유지하는 2가지 구현방식
- 개별 응용 프로그램 안에 코드를 추가하여 구현
- DBMS 안의 무결성 제약 조건을 설정하여 구현
관계연산 relation operation
- 관계형 데이터 모델에서 relation을 조작하기 위한 연산
- 관계형 데이터베이서 언어의 명세 형식, 내부 처리과정과 밀접한 연관성 있음
관계연산 2가지 표현방법
- 관계 대수 relation algebra : 절차적 표현방법 procedural (연산들의 적용 순서, 절차를 명세)
- 관계 해석 relation calculus : 비절차적 표현방법 nonprocedural / 선언적 declarative (연산들의 최종 결과만 명세)
'Computer Science > 데이터베이스' 카테고리의 다른 글
[데이터베이스] DB 설계 (0) | 2022.07.06 |
---|---|
[데이터베이스] 관계 데이터 연산 (0) | 2022.04.07 |
[데이터베이스] Data Modeling (0) | 2022.04.05 |
[데이터베이스] DataBase System (DBS) (0) | 2022.04.04 |
[데이터베이스] DBMS (0) | 2022.03.11 |