(2022.04.04)
데이터베이스 강의들으면서 정리하기 4탄
3주차(3/18 강의)
Data modeling
- 현실세계에 존재하는 data를 컴퓨터 세계의 database로 옮기는 변환과정
- general 하게 가지고 있는 특징을 골라낸다.
- 2단계 data modeling : conceptual modeling & logical modeling
--> 1. conceptual modeling: 현실세계의 중요 data를 추출하여 개념세계로 옮기는 작업
--> 2. logical modeling: 개념세계의 data를 database에 저장하는 구조로 표현하는 작업
-----> 즉, 현실세계 - 개념세계 - 컴퓨터세계
Data model
- data modeling의 결과물을 표현하는 도구
1. conceptual data model: 현실세계를 개념적 모델링하여 데이터베이스의 개념적 구조로 표현하는 도구
(ex: 개체-관계 모델)
2. logical data model: 개념적 구조를 논리적 모델링하여 데이터베이스의 논리적 구조로 표현하는 도구
(ex: 관계 데이터 모델)
Conceptual Data model - ① E-R model (conceptual data model)
개체-관계 모델 (E-R model: Entity-Relationship model)
: 개체와 개체 간의 관계를 이용하여 현실 세계를 개념적 구조로 표현 (핵심요소: 개체, 속성, 관계)
개체-관계 다이어그램(E-R diagram)
: 개체-관계 모델을 이용하여 현실 세계를 개념적으로 모델링한 결과물을 그림으로 표현
---------------------------
개체(entity): 개체의 특성을 나타내는 속성에 의해 구별
- 개체 타입: 개체이름과 속성 한줄 자체
- 개체 인스턴스(개체): 개체의 속성이 실제값을 가짐으로써 실체화된 개체
- 개체 집합: 개체 인스턴스를 모아오는 것
----------------------------------------------------
속성(attribute)
- 개체나 관계가 가지고 있는 고유의 특성
- 스스로는 존재할 수 없는 종속적인 개념
- 의미 있는 데이터의 가장 작은 논리적 단위
속성의 분류기준에는 3가지가 있다.
1) 속성 값의 개수
- 단일 값 속성 single-valued attribute: 값을 하나만 가질 수 있는 속성
- 다중 값 속성 multi-valued attribute: 값을 여러 개 가질 수 있는 속성 (E-R diagram에서 이중 타원으로 표현)
2) 의미의 분해 가능성
- 단순 속성 simple attribute: 의미를 더는 분해할 수 없는 속성
- 복합 속성 composite attribute: 의미를 분해할 수 있는 속성
3) 기존 속성 값에서 유도
- 유도 속성 derived attribute: 기존의 다른 속성의 값에서 유도되어 나오는 속성 (E-R diagram에서 점선 타원으로 표현)
(값이 별도로 저장되지 않는다)
널 속성 null attribute : 널값이 허용되는 속성
널 값 null : 아직 결정되지 않았거나 모르는 값, 존재하지 않는 값 (0, 공백이랑은 다른 거임)
key 속성: 개체 인스턴스를 식별할 수 있는 고유한 값을 가지는 속성 (E-R diagram에서 밑줄로 표현)
-> 모든 개체 인스턴스의 key 속성값은 다름
-> 둘 이상의 속성들로 구성되기도 함
----------------------------------------
관계 relationship
- 개체와 개체가 맺고 있는 의미의 연관성으로 개체와 게체를 연결시켜준다. --> mapping
- 개체없이는 존재할 수 없는 종속적 존재 (E-R diagram에서 마름모로 표현)
- 관계 : 개체와 개체 사이에 맺어지는 하나의 연관성을 의미한다.
- 관계 집합 : 개체 집합과 개체 집합 사이에 맺어지는 모든 관계 인스턴스를 의미한다.
- 관계 타입: 개체 타입과 개체 타입 사이에 성립할 수 있는 모든 관계를 총체적으로 추상화하여 표현 (개체 타입의 모든 mapping을 의미)
관계의 참여 특성
- 최소 사상 수 (사상: mapping): 특정 개체와의 관계에서 실제 참여하는 상대 개체의 수 중에서 최솟값
1) 필수적 참여 (전체 참여) : 최소 사상 수 1
- 모든 개체 인스턴스가 관계에 반드시 참여해야함 (E-R diagram에서 이중선으로 표현)
2) 선택적 참여 (부분 참여) : 최소 사상 수 0
- 개체 인스턴스 중 부분만 참여해도 됨
관계의 유형
1) mapping cardinality 기준 (relation cardinality) : 관계를 맺는 두 개체 집합에서 각 개체 인스턴스가 연관성을 맺고 있는 상대 개체 집합의 인스턴스 개수
- 1:1 관계 : 두 개체가 서로 오직 하나의 개체와만 관계를 맺을 수 있다.
- 1:n 관계 : 한 개체는 여러 개체와 관계를 맺을 수 있지만, 상대 개체는 최대 1개의 개체와 관계를 맺을 수 있다.
- n:1 관계 : 1:n 관계와 동일
- n:m 관계 : 두 개체가 서로 여러 개체와 관계를 맺을 수 있다.
2) relation degree (관계 차수) : 관계에 참여하는 개체의 수
- 1진 관계 or 순환 관계 (recursive 관계): 차수가 1이며, 자기 자신과 스스로 맺는 관계 --> 순환관계
- 2진 관계: 차수가 2인 가장 일반적이 관계로, 2개의 개체가 서로 맺는 관계 --> 이항 관계
- 3진 관계: 3개의 개체가 함께 맺는 관계 --> 삼항관계
3) 관계의 종속성
- 비식별 관계 non-identifying relationship : 독립적인 두 개체가 대등한 관계를 맺음 (E-R diagram에서 실선 마름모로 표현)
- 식별 관계 identifying relationship : 두 개체가 종속적 관계를 맺음
--> 약한 개체 : 자신을 고유하게 식별할 수 있는 속성을 갖지 못하는 개체 (다른 개체의 존재에 의존적)
--> 강한 개쳬 : 자신을 고유하게 식별할 수 있는 속성을 갖는 개체 (다른 개체 존재 여부를 정함)
----> 약한 개체는 강한 개체의 키를 포함하여 키를 구성함.
----> 강한 개체와 약한 개체는 일반적으로 1:n 관계를 가짐.
----> 약한 개체는 강한 개체와의 관계에 필수적으로 참여함.
(E-R diagram에서 약한 개체는 이중사각형으로, 약한개체가 강한 개체와 맺는 관계는 이중 실선 마름모로 표현)
generalization 일반화 관계
- 개체 사이의 상하관계
- IS-A 관계, 역삼각형으로 표현한다.
E-R diagram 의 표기법
Logical Data Model
: E-R diagram 으로 표현된 conceptual data 구조를 database에 저장할 형태로 표현한 논리적 구조 (= database schema)
1. 계층 데이터 모델
- 논리적 구조가 트리 형태임
- 루트 역할을 하는 개체존재, 사이클 존재하지 않음
- 개체 관계 상하 관계 성립
- n:m 관계 직접 표현할 수 없음
- 개념적 구조 모델링이 어려워 구조가 복잡해질 수 있음
- 데이터의 삽입, 삭제, 수정, 검색이 쉽지 않음
2. 네트워크 데이터 모델
- 논리적 구조가 그래프 형태임
- 개체 간에는 1:n 관계만 허용됨
- 두 개체 간에 여러 관계를 정의할 수 있어 이름으로 구별함
- n:m 관계를 직접 표현할 수 없음
- 구조가 복잡하고, 데이터의 삽입, 삭제, 수정, 검색이 쉽지 않음
3. 관계형 데이터 모델
- 일반적으로 많이 사용되는 논리적 데이터 모델
- 논리적 구조가 2차원 테이블 형태임
- 데이터 사이의 연관 관계를 테이블의 key, column을 통해 저장하는 방식임
- 연관된 데이터 사이에 기본키와 외래키를 통해 논리적 관련성을 표현함으로써 유연하고 이해하기 쉬움
4. 객체 지향형 데이터 모델
- 객체 단위의 저장구조를 가짐
- 연관 데이터 사이의 관계를 객체 식별자 (OID: Object IDentifier)로 표현하는 저장방식임
- 객체 지향개념 + 데이터 베이스 개념 통합하여 실세계와 유사하게 모형화하는 데이터모델임
5. 객체 관계형 데이터 모델
- 관계형 데이터 모델 + 객체 데이터 모델 --> 절충형 모델 (장점을 골라냄)
'Computer Science > 데이터베이스' 카테고리의 다른 글
[데이터베이스] 관계 데이터 연산 (0) | 2022.04.07 |
---|---|
[데이터베이스] 관계형 데이터 모델 (0) | 2022.04.07 |
[데이터베이스] DataBase System (DBS) (0) | 2022.04.04 |
[데이터베이스] DBMS (0) | 2022.03.11 |
[데이터베이스] 데이터베이스 기본 개념 (0) | 2022.03.11 |