관계형 데이터베이스의 개념은 에드거 F. 커드(Edgar F. Codd) 박사에 의해 1970년에 제안되었습니다. IBM의 연구원이었던 그는 "A Relational Model of Data for Large Shared Data Banks"라는 논문을 통해 관계형 데이터 모델을 소개하였습니다. 이 모델은 데이터베이스를 수학적인 집합 이론과 일치시키는 혁신적인 접근 방식으로, 데이터의 구조와 처리를 간결하고 효율적으로 할 수 있게 해 주었습니다. 박사는 "계층형"과 "망형" 모델의 한계를 지적하며 관계형 데이터 모델의 필요성을 주장했는데, 특히 데이터의 비표준화된 접근방식과 유연성 부족에 비판을 했습니다.
1. 관계형 데이터 모델 (Relational Data Model)
: 관계형 데이터 모델은 데이터를 테이블(관계)의 형태로 표현하는 데이터베이스 모델입니다. 각 테이블은 "행(튜플)"과 "열(속성)"으로 구성되며, 이들은 현실 세계의 엔터티와 그 속성을 표현합니다. 관계형 모델은 데이터 간의 관계를 테이블 간의 "키(key)"를 통해 나타내며, 이를 통해 복잡한 데이터 구조를 간단하고 이해하기 쉽게 관리할 수 있습니다.
주요 특징
- 데이터의 구조화 : 데이터를 테이블 형태로 관리하여 일관성 있고 직관적인 데이터 구조를 제공합니다.
- 데이터 무결성 보장: 기본 키, 외래 키, 제약 조건 등을 통해 데이터의 정확성과 일관성을 유지합니다.
- 관계 표현: 테이블 간의 관계를 외래 키를 통해 명시적으로 표현하여 데이터의 연관성을 관리합니다.
- SQL 사용: 표준화된 질의 언어인 SQL을 사용하여 데이터의 정의, 조작, 제어를 수행합니다.
- 트랜잭션 관리: ACID 특성을 지원하여 데이터베이스의 신뢰성과 무결성을 보장합니다.
2. 관계형 구조 예시
: 간단한 관계형 데이터베이스의 예시로써, 고객과 주문 테이블 간의 관계를 보겠습니다. 고객은 주문을 여러번 할 수 있으며, 주문은 반드시 주문한 고객이 있어야 하는 논리적인 관계가 있습니다. 이때 Customer_ID는 "고객테이블의 PK(기본키)" 이며, 주문테이블에서는 "FK(외래키)"로 사용되어 고객과 주문 테이블 간의 관계를 나타냅니다.
3. 관계형 모델 구현 방식 ( ORACLE, MYSQL, POSTGRE 등 )
관계형 데이터 모델은 RDBMS를 통해 구현되며, 주요 구현 방식은 다음과 같습니다.
- 테이블 생성 및 관리 : SQL의 DDL(Data Definition Language)을 사용하여 테이블과 관계를 정의
- 데이터 조작 : DML(Data Manipulation Language)을 통해 데이터를 삽입, 수정, 삭제, 조회
- 제약 조건 적용 : 데이터 무결성을 위해 PK, FK, UNIQUE, CHECK 등의 제약 조건을 설정
- 트랜잭션 관리 : 데이터 일관성을 위해 트랜잭션과 ACID 특성을 지원
4. 망형과 관계형 데이터 모델 비교
: 망형 모델은 그래프 구조로 다대다 관계를 표현하는데 적합하지만, 구조가 복잡하고 표준 쿼리 언어가 없습니다. 관계형 데이터 모델은 테이블 구조로 SQL을 통한 관리가 용이하고, 데이터 무결성을 제약조건으로 보장하며 확장성과 유연성이 뛰어납니다.
비교관점 | 망형 데이터 모델 | 계층형 데이터 모델 | 관계형 데이터 모델 |
데이터 구조 | 그래프 구조 ( 노드와 간선 ) | TREE 구조 (부모-자식 관계) | 테이블 구조 (행과 열) |
관계 표현 방 | Owner-Member 관계 (노드,간선을 활용한 그래프구조) |
Parent-Child 관계 (Tree 구조) |
테이블과 키 기본키(PK), 외래키(FK) |
표현 가능한 관계 유형 |
1:1, 1(일대다), N(다대다) 관계 표현 가능 |
1:1 , 1 관계만 허용 | 1:1, 1, N 관계 표현 가능 |
N관계 표현 방식 | 포인터를 통해 다대다 관계표현 중간 테이블은 선택사항 |
중간테이블로 간접표현을 필수로 생성해야함 |
|
데이터 접근 방식 | 포인터와 경로 탐색을 통한 데이터 접근 |
포인터와 경로 탐색을 통한 데이터 접근 |
SQL 쿼리를 통해 데이터 검색 및 조회 |
무결성 관리 | 애플리케이션 수준 관리 무결성 관리 어려움 |
애플리케이션 수준 관리 무결성 관리 어려움 |
PK,FK,UNIQUE,CHECK 등 다양한 제약 조건 제공 |
확장성과 유연성 | 중간 ( 관계 추가 및 수정이 어려움, 복잡한 구조로 관리 어려움 ) | 낮음 ( 구조 변경시 영향이 큼 ) | 높음 ( 새로운 테이블, 열 추가가 용이) |
표준화 | 표준 쿼리 언어 부재 (CODASYL 의한 부분적 표준화) |
표준화 부족 | ANSI, ISO 표준화된 SQL |
사용 예시 | IDS, CODASYL DBTG | IMS | Oracle, MySQL, PostgreSQL 등 |
데이터 모델링 용이성 | 데이터 모델링과 설계가 복잡하고 구현이 어려움 |
데이터 모델링과 설계가 복잡하고 구현이 어려움 |
데이터 모델링과 설계가 상대적으로 쉬움 |
주요 장점 | 다대다 관계와 복잡한 연결 관계를 표현 가능 |
데이터 접근 속도 빠름 | 데이터 무결성 보장, 표준화된 SQL로 관리 용이 |
주요 단점 | 구조 복잡성, 유지보수 어려움, 표준화된 사용 언어 부재 | 구조 변경이 어렵고 유연성이 낮으며, 표준화된 사용 언어 부재 | 데이터관계표현의 간접성으로 인해 설계 복잡성과 성능 부하 발생 |
'데이터 모델링 > 관계형 데이터 모델링' 카테고리의 다른 글
망형 데이터 모델 (2) | 2024.11.10 |
---|---|
계층형 데이터 모델 (1) | 2024.11.09 |
데이터 무결성과 제약조건 관계 (0) | 2024.11.08 |