01 데이터 모델링과 데이터 모델의 개념
데이터 모델링
현실 세계의 데이터를 추상화하여 데이터베이스 시스템에 표현하는 과정입니다. 이 과정은 데이터의 구조, 관계, 특성 등을 분석하고 설계함으로써 데이터의 효율적인 관리와 처리를 가능하게 합니다. 데이터 모델링은 데이터베이스 시스템을 구축하기 전에 수행되며, 다양한 요소를 고려하여 데이터의 구조와 관계를 정의합니다. 이를 통해 데이터의 일관성, 무결성, 보안성 등을 유지하면서 데이터에 접근하고 조작하는 방법을 결정할 수 있습니다.
데이터 모델링은 개념적 모델링과 논리적 모델링으로 이루어져 있습니다 :)
개념적 모델링
(개체 - 관계모델 (entity - relationship))
현실 세계의 개념과 관계를 추상화하여 표현합니다.
개념적 모델링은 현상이나 개념들을 개체(Entity)와 개체 간의 관계(Relationship)로 나타내며, 이를 통해 데이터베이스에서 표현하고자 하는 현상들을 명확하게 정의하고 구조화할 수 있습니다.
개체(Entity)는 데이터베이스에서 저장하고자 하는 실제 객체를 의미하며, 개체들은 속성(Attribute)을 가지고 있습니다. 속성은 개체의 특징이나 성격을 나타내는 데이터 요소입니다.
또한, 관계(Relationship)는 개체들 간의 연결과 의미를 정의합니다. 관계는 일대일(One-to-One), 일대다(One-to-Many), 다대다(Many-to-Many) 등의 유형을 가질 수 있으며, 이를 통해 개체들 간의 상호작용을 표현합니다.
논리적 모델링
(관계 - 데이터 모델(relational data model))
개념적 모델링의 결과물을 데이터베이스 시스템에 특화된 구조로 변환하는 과정입니다.
논리적 모델링에서는 개념적 모델링을 수행한 결과물을 데이터베이스 시스템이 제공하는 데이터 모델에 맞게 변환합니다. 가장 흔히 사용되는 데이터 모델은 관계형 데이터 모델이며, 대부분의 관계형 데이터베이스 시스템은 이 모델을 기반으로 합니다.
데이터 모델: 데이터모델링을 쉽게 해주는 도구
- 구조: 데이터 모델에서 사용되는 요소들 간의 관계와 구성을 나타냅니다. 이는 데이터의 논리적인 구조를 정의하는 것으로, 예를 들어 개체(Entity), 속성(Attribute), 관계(Relationship) 등이 데이터 모델의 구조에 해당합니다. 데이터의 구조는 데이터의 조직화와 저장 방식을 결정합니다.
- 연산: 데이터 모델에서 수행할 수 있는 작업들을 정의합니다. 이는 데이터의 조작과 처리를 위한 연산을 포함합니다. 예를 들어, 검색, 삽입, 수정, 삭제 등의 연산은 데이터 모델에서 자주 사용되는 연산입니다. 연산은 데이터베이스 시스템에서 데이터를 처리하고 조작하는 방법을 결정합니다.
- 제약조건: 데이터의 무결성을 유지하기 위해 적용되는 규칙들을 나타냅니다. 제약조건은 데이터의 유효성과 일관성을 보장하기 위해 데이터에 적용되는 규제나 조건입니다. 예를 들어, 고유한 값으로 설정된 속성, 참조 무결성 제약 등이 제약조건에 해당합니다. 제약조건은 데이터의 정확성과 신뢰성을 보장하기 위해 중요한 역할을 합니다.
02 개체 - 관계 모델
개체
개체: 현실 세계에서 조직을 운영하는 데 꼭 필요한 사람이나 사물과 같이 구별되는 모든 것
개체타입: 개체를 고유한 이름이나 속성들로 정의한 것
속성: 개체가 가지고 있는 고유한 특성
속성
단일 값 속성(single-valued attribute): 단일 값 속성은 하나의 속성에 대해 단일 값을 가지는 것으로 각 개체 또는 개체 집합에 대해 한 개체당 하나의 값을 가집니다.
다중 값 속성(multi-valued attribute): 한 속성이 여러 값을 가질 수 있는 것 입니다.
단순 속성(simple attribute): 의미를 더 분해할 수 없는 속성
복합 속성(composite attribute): 의미를 분해할 수 있어 값이 여러 개의 의미를 포함하는 속성
유도 속성(derived attribute): 값이 별도로 저장되는 것이 아니라 기존의 다른 속성 값에서 유도되어 결정되는 속성
널 속성(null attribute): 아직 결정되지 않았거나 모르는 값을 null이라 하며 이런 널 값이 허용되는 속성
키 속성(key attribute): 개체 집합에 존재하는 각 객체 인스턴스들을 식별하는 데 사용되는 속성
관계(relationship)
개체와 개체가 맺고 있는 의미 있는 연관성으로, 개체-관계 모델의 중요한 요소입니다. 관계는 개체 집합들 사이의 대응관계(correspondence), 즉 매핑(mapping)을 의미합니다.
관계의 유형
매핑 카디널리티: 관계를 맺는 두 개체 집합에서, 각 개체 인스턴스가 연관성을 맺고 있는 상대 개체 집합의 인스턴스 개수를 의미
1:1 -> 두 엔터티 간의 관계 중 하나의 엔터티 인스턴스가 다른 엔터티 인스턴스와 일대일로 대응하는 관계를 나타냅니다.
1:n -> 한 엔터티 인스턴스가 다른 엔터티 인스턴스와 일대다로 대응하는 관계를 나타냅니다.
n:m -> 두 엔터티 간의 관계 중 여러 엔터티 인스턴스가 서로 여러 개의 대응 관계를 가질 수 있는 관계를 나타냅니다.
관계의 참여 특성
엔터티 간의 관계에서 각 엔터티 인스턴스가 관계에 참여하는 방식을 나타내는 것을 의미합니다. 관계의 참여 특성은 다음과 같은 세 가지로 분류됩니다
필수 참여 (Mandatory Participation)
한 엔터티 인스턴스가 관계에 반드시 참여해야 함을 나타냅니다. 다른 엔터티 인스턴스와 관계를 맺는 경우, 해당 엔터티 인스턴스는 관계에 필수적으로 참여해야 합니다. 이는 관계를 표현하는데 필수적인 역할을 갖습니다.
선택적 참여 (Optional Participation)
한 엔터티 인스턴스가 관계에 참여할지 여부를 선택할 수 있다는 것을 나타냅니다. 다른 엔터티 인스턴스와 관계를 맺는 경우, 해당 엔터티 인스턴스는 관계에 참여할지 여부를 선택할 수 있습니다. 이는 관계에 참여하는 것이 선택 사항임을 나타냅니다.
배타적 참여 (Exclusive Participation)
한 엔터티 인스턴스가 관계에 배타적으로 참여해야 함을 나타냅니다. 즉, 한 엔터티 인스턴스는 여러 관계에 참여할 수 있지만, 동일한 관계에는 한 번만 참여할 수 있습니다. 이는 중복된 관계 참여를 허용하지 않는 것을 의미합니다.
관계의 종속성
개체가 독자적으로 존재할 수 없고 다른 개체의 존재 여부에 의존하면 그 관계는 종속되어 있다고 합니다.
종속된 개체는 상위 개체가 존재해야 존재할 수 있으며 상위 개체가 삭제되면 같이 삭제됩니다. 이러한 종속을 존재 종속(existence dependence)이라하며 다른 개체의 존재 여부에 의존적인 개체를 약한 개체(weak entity), 종속 개체 다른 개체의 존재 여부를 결정하는 개체를 강한 개체(strong entity), 오너 개체라 합니다.
E-R 다이어그램
개체-관계 모델을 이용해 현실 세계를 개념적으로 모델링한 결과물을 그림으로 표현한 것입니다.
기본적인 개체 표현: 사각형
개체 간의 관계 표현: 마름모
개체나 관계의 속성 표현: 타원
각 요소 끼리의 연결 표현: 연결선
03 논리적 데이터 모델
논리적 데이터 모델의 개념과 특성
데이터의 구조와 상호 관계를 표현하는 방법을 정의하는 개념입니다. 이는 데이터베이스 시스템에서 데이터를 조직화하고 표현하는 데 사용됩니다. 일반적으로 엔터티, 속성, 관계 등을 사용하여 데이터를 모델링합니다. 논리적 데이터 모델은 개념적 데이터 모델을 구체화하고 구현 가능한 형태로 변환하는 중간 단계로 볼 수 있습니다.
계층 데이터 모델
데이터를 트리 형태의 계층 구조로 표현하는 데이터 모델입니다. 이 모델에서는 각 레코드가 다른 레코드와 부모-자식 관계를 가지며, 최상위 레코드를 루트로 하는 계층 구조를 형성합니다. 각 레코드는 단일 값과 다중 값 속성을 가질 수 있습니다. 이 모델은 네트워크 데이터 모델의 선행 개념으로 볼 수 있습니다.
네트워크 데이터 모델
레코드 간의 복잡한 네트워크 구조를 사용하여 데이터를 표현하는 데이터 모델입니다. 이 모델에서는 레코드 간의 링크를 사용하여 관계를 표현합니다. 각 레코드는 다른 레코드와 직접 연결되어 다양한 관계를 가질 수 있습니다. 이 모델은 계층 데이터 모델을 보완하여 더 유연한 데이터 표현을 가능하게 합니다.
개체는 사각형으로 나타내고 개체들 간의 관계는 화살표로 나타내는데, 화살표는 일대다 관계( 오너(owner) : 멤버(member))만 표현할 수 있습니다.
'데이터베이스' 카테고리의 다른 글
Ch 6. 관계 데이터 연산 (0) | 2023.07.10 |
---|---|
Ch 5. 관계 데이터 모델 (0) | 2023.07.08 |
Ch 3. 데이터베이스 시스템 (0) | 2023.07.03 |
Ch 2. 데이터베이스 관리 시스템 (0) | 2023.06.28 |
데이터베이스 기본 개념 (0) | 2023.06.15 |