망형 데이터 모델(Network Data Model)은 찰스 바크만(Charles W. Bachman)에 의해 개발되었습니다. 그는 1960년대에 General Electric(GE)에서 근무하면서 IDS(Integrated Data Store)라는 최초의 상용 데이터베이스 시스템을 개발하였고, 이를 통해 망형 데이터 모델의 개념을 처음 도입했습니다. 이후 CODASYL DBTG(Data Base Task Group)에서 찰스 바크만의 아이디어를 바탕으로 망형 데이터 모델을 공식화하고 표준화했습니다. 따라서, 망형 데이터 모델을 최초로 제안하고 상용화한 인물은 찰스 바크만이며, CODASYL DBTG를 통해 모델이 널리 표준화되고 사용되었습니다.
1. 망형 데이터 모델 (Network Data Model)
: 이 모델은 각 데이터 엔티티를 노드로 표현하고, 엔티티 간의 관계를 간선으로 연결하여 그래프 형태로 데이터를 구성합니다. 망형 데이터 모델은 다대다(N) 관계를 직접적으로 표현할 수 있어, 복잡한 데이터 관계를 다루기 좋은 방식입니다. 망형 데이터 모델이 그래프(Graph)라고 불리는 이유는 데이터가 노드(Node)와 간선(Edge)으로 이루어진 구조를 가지기 때문입니다.
주요 특징
- 그래프 구조
- 데이터는 노드(Node)와 간선(Edge)을 통해 연결되며, 노드는 데이터 엔티티를, 간선은 노드 간의 관계를 나타냄
- 계층형 모델처럼 일방적인 부모-자식 관계가 아닌, 다양한 방향으로 연결된 복잡한 관계를 가질 수 있습니다.
- N관계 표현
- 하나의 데이터가 여러 부모와 자식 노드에 연결될 수 있어, 다대다 관계를 표현할 수 있음
- 예를 들어, 하나의 학생 엔티티가 여러 과목 엔티티와 연결될 수 있고, 하나의 과목도 여러 학생과 연결될 수 있음
- 네트워크 구조 탐색
- 특정 노드에서 다른 노드로의 경로를 탐색할 수 있으며, 깊은 관계를 표현하는 데 유리
- 트리 구조와 달리 직접적인 참조 경로가 설정되므로, 원하는 데이터를 찾기 위해 여러 경로를 탐색할 수 있음
2. 망형 구조 예시
: 학생과 과목의 **다대다 관계(N)**를 표현하는 망형 데이터 모델 예시입니다. 여기서는 학생이 여러 과목을 수강하고, 각 과목은 여러 학생이 수강할 수 있는 구조입니다.
- 노드(Node) : 학생, 과목과 같은 데이터 엔티티
- 간선(Edge) : 수강과 같은 관계를 통해 학생과 과목 간의 연결을 나타냄
3. 망형 모델 구현 방식 ( CODASYL DBTG = 관계형 데이터 모델의 ORACLE 과 같은 존재 )
: 망형 모델에서는 CODASYL DBTG 언어를 사용하여 네트워크 구조와 데이터를 정의합니다.
예시) 망형 데이터 모델에서는 데이터베이스의 스키마(Schema)와 서브스키마(Subschema)를 정의하여 데이터를 구조화
- STUDENT 레코드와 COURSE 레코드는 각각 학생과 과목에 대한 정보를 담고 있습니다.
- ENROLLMENT 레코드는 STUDENT와 COURSE 간의 관계를 나타내며, 다대다 관계를 구현하기 위한 중간 엔티티로 사용됩니다.
- SET ENROLLMENT-SET는 COURSE를 소유자로, ENROLLMENT를 멤버로 지정하여 학생-과목 간의 다대다 관계를 구현합니다.
이러한 방식으로 망형 모델에서는 데이터 간의 복잡한 관계를 효율적으로 탐색할 수 있습니다.
5. 망형과 관계형 데이터 모델 비교
: 망형 모델은 그래프 구조로 다대다 관계를 표현하는데 적합하지만, 구조가 복잡하고 표준 쿼리 언어가 없습니다. 관계형 데이터 모델은 테이블 구조로 SQL을 통한 관리가 용이하고, 데이터 무결성을 제약조건으로 보장하며 확장성과 유연성이 뛰어납니다.
비교관점 | 망형 데이터 모델 | 관계형 데이터 모델 |
데이터 구조 | 그래프 구조 (노드와 간선) | 테이블 구조 (행과 열) |
데이터 관계 표현 | 노드 간 간선을 통해 N관계를 직접 표현 | 테이블 간 외래 키(Foreign Key)로 관계 설정 |
관계 유형 | 다대다(N) 관계 포함한 복잡한 관계 직접 표현 가능 | 1:1, 1, N 관계를 유연하게 표현 가능 |
데이터 접근 방식 | 포인터와 경로 탐색을 통한 데이터 접근 | SQL 쿼리를 통해 데이터 검색 및 조회 |
무결성 관리 | 제약 조건(PK, FK 등) 부재로 무결성 관리 어려움 | PK,FK,UNIQUE,CHECK 등 다양한 제약 조건 제공 |
확장성과 유연성 | 관계 추가 및 수정이 어려움, 복잡한 구조로 관리 어려움 |
새로운 테이블, 열 추가가 용이하고 유연함 |
표준화 | 표준 쿼리 언어 부재 (시스템마다 API와 명령어 상이) |
SQL이라는 표준 쿼리 언어 사용 |
사용 예시 | IDS, CODASYL DBTG | Oracle, MySQL, PostgreSQL 등 |
데이터 모델링 용이성 | 데이터 모델링과 설계가 복잡하고 구현이 어려움 | 데이터 모델링과 설계가 상대적으로 쉬움 |
주요 장점 | 다대다 관계와 복잡한 연결 관계를 효율적으로 표현 가능 |
데이터 무결성 보장, 표준화된 SQL로 관리 용이 |
주요 단점 | 구조 복잡성, 유지보수 어려움, 표준화된 쿼리 언어 부재 |
데이터 관계 표현의 간접성으로 인해 성능 부하 높음 |
'데이터 모델링 > 관계형 데이터 모델링' 카테고리의 다른 글
관계형 데이터 모델 (0) | 2024.11.11 |
---|---|
계층형 데이터 모델 (1) | 2024.11.09 |
데이터 무결성과 제약조건 관계 (0) | 2024.11.08 |