인용하는 그림은 다양한 곳에서 가져왔음을 밝힙니다
Ch 2. 데이터 모델
Section 1. 데이터 모델
1.1 데이터 모델의 개념
- 데이터베이스의 구조를 단순화, 추상화하여 체계적으로 표현하는데 사용되는 도구
1.2 데이터 모델의 구성요소
- 데이터모델
- 데이터 구조 : 데이터 베이스에서 표현될 대상과 그들 간의 관계에 대한 명세
- 연산 : 데이터를 처리하는 작업에 대한 명세
- 제약조건 : 무결한 데이터 저장을 위한 데이터 조작한계에 대한 규정
1.3 데이터 모델의 종류
- 개념적 모델 : 최종 사용자가 인식하는 것과 유사하게 데이터베이스의 논리적 구조를 명시, 컴퓨터내에서 조작되는 방식과는 거리가 멀다, ex) ER모델
- 데이터 모델 : 최종 사용자도 이애하는 개념이면서 컴퓨터내에서의 조작방식과 유사
Section 2. 개념적 데이터 모델
- 개체(Entity)와 속성(attribute) 그리고 개체 간의 관계(Relation-ship)을 이용하여 현실세계에 존재하는 데이터를 추상화하여 개념적 구조를 표현하는 방법
2.1 개체
- 물리적으로 존재하는 실체, 추상적/개념적으로 존재하는 실체
- 기본 개체 : 원래 업무에 존재하는 정보
- 독립적으로 생성되며 다른 개체의 부모 역할을 한다.
- 중심 개체 : 기본 개체에서 발생하고, 데이터 양이 많다.
- 다른 개체와의 관계를 통해 행위 개체를 생성
- 행위 개체 : 두개 이사의 부모 개체에서 발생되고, 내용이 빈번하게 변경되거나 데이터 양이 증가한다. 분석 초기에는 잘 나타나지 않는다.
- ERD에서 개체 타입을 직사각형으로 나타낸다.
2.2 속성
- 개체의 특성이나 상태를 구체적으로 기술(속성값 : 현실화된 값)
- ERD에서 속성은 기본적으로 타원으로 나타내고, 소속된 개체에 실선으로 연결한다.
- 개체 인스턴스를 다른 개체 인스턴스들과 구별할 수 있게 하는 속성을 식별화(identifier)라고 하고, 개체를 설명하기 위해 존재한느 속성을 설명자(descriptor)라고 한다.
- 식별자에는 밑줄이 들어간다.
2.3 관계
- 개체간의 연관성
- 마음모와 실선
Section 3. 논리적 데이터 모델
3.1 계층 데이터 모델
- 논리적 구조를 트리로 표현
- 일대 다 관계만 존재하며, 다대다 관계를 표현하기 위해서는 추가적인 개체가 필요하다.
- 포인터를 이용하기 때문에 검색속다가 빠르지만, 데이터 접근법이 사전에 정의돼야 하고, DB가 생성될 때 관계가 명시적으로 정의되어 있어야 한다. 레코드들이 링크되어 있어 구조를 변경하기도 어렵다.
3.2 네트워크 데이터 모델
- 그래프 형태, 두 개체 사이의 관계를 여러 개 정의할 수 있다.
- 일대다 관계만 직접표현 가능하기 때문에, 일대다 관계 두개로 표현한다.
- 포인터를 사용해 빠르고, 여러 개의 관계 정의가 가능해 유연하지만 구조가 복잡해져 수정하는 것이 더 어렵다.
3.3 관계 데이터 모델
- 표로 표현
- 포인터가 아닌 속성값을 이용해 속도는 상대적으로 노리지만, 개념이해가 쉽고 사용자가 원하는 것만 명시하면 DBMS가 알아서 해주기 때문에 사용도 쉽다.