데이터 독립성, 구조독립성에 대해 처음 접하는 사람들을 위해,
빠르고 쉽게 이해할 수 있도록 작성한 게시물로, 깊은 전문지식과는 거리가 멀 수 있습니다.
데이터 독립성 data independence
데이터의 성질(ex, int -> float)이 변화 했다고, 데이터를 읽고 쓰는 프로그램을 새로 짜야한다는 것은 상당히 비효율적이다.
요즘 같이 Oracle, MySQL과 같은 관계형DB (RDB)가 보편화 되어있는 요즘에는 상상할 수 없는 일이다.
회사에서 고객 평점 정보를 (1, 2, 3, 4, 5점)으로 나누어서 보관하고 있다고 하자, 이는 정수형이다.
그런데 어느날, 운영팀에서 (1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5점)으로 세분화 해서 새로 보관하는게 경영에 도움이 될 것이라고 한다.
RDB가 없고 File system으로 운영되던 과거에 이같은 의사결정을 했다면... 고객 평점이 들어있는 이 파일에 접속하는 프로그램 자체를 새로 만들어야 하는 것이다.
요즘으로 치면, Oracle과 같은 프로그램을 새로 만들어서 데이터에 접속해야 했던 것이다.
이렇게, 데이터의 특성 변화에 따라 데이터 액세스 방법이 변화되어야 하는 성질을 데이터 의존성(Data dependence)이라고 한다.
반대로, 이런 특성 변화에도 엑세스 방법을 바꾸지 않아도 되는 성질을 데이터 독립성(Data independence)이라고 한다.
데이터 독립성을 만족하는 경우에 여러 측면에서 더 효율적임을 생각해볼 수 있다.
이를 만족하지 않는 데이터모델은 File system이 있다.
더 자세한 이야기는 아래 칼럼을 참고해 볼 수 있겠다.
[https://dataonair.or.kr/db-tech-reference/d-lounge/expert-column/?mod=document&uid=52816]
아는 만큼 보이는 데이터베이스 데이터 독립성의 실무적용
아는 만큼 보이는 데이터베이스 데이터 독립성의 실무적용 일체적 구성에서 기능화 된 구성의 가장 큰 목적은 무엇일까 가장 주요한 이유가 서로의 영향에서 벗어나 개별 형식이 가지는 고유한
dataonair.or.kr
구조 독립성 structure independence
데이터 특성에 따라 엑세스 방법을 바꿔야 한다는 특징이 "데이터 의존성" 이었다면, 이번엔
데이터 구조에 따라 엑세스 방법을 바꿔야 하는 경우 "구조 의존성"을 가지고 있다고 이야기한다.
File system을 예시로 들면 다음과 같다.
한 쇼핑몰 회사의 관리 시스템에, 고객 개인정보가 담긴 폴더와 고객의 회원등급이 담긴 폴더가 각각 다른 폴더에 있었다고 하자.
이를 "고객"이라는 폴더 밑에 함께 두고 빠르게 접근하고 싶어 한다.
그런데 이 쇼핑몰에서 이렇게 구조를 바꾼다면, 이 파일에 접근하는 프로그램을 새로 프로그래밍 해야한다는 것이다.
이런 특성을 "구조 의존성"(Structure dependence)라고 한다.
기업의 운영 중 이런식으로 구조를 바꿔야하는 일이 생기기 마련인데, 그 때마다 접근을 위한 프로그램을 새로 만드는 것은 비효율 적일 수 밖에 없다.
그래서 구조 독립성을 갖춘 RDB의 사용이 더 효율적일 수 있다고 생각해볼 수 있다.
정리 [data model별 데이터독립성, 구조독립성 만족유무]
데이터 모델에는 File system과 Relational database만 존재하지 않는다. 관계형 모델이 나오기 전, 계층형 모델(Hierarchical)과 네트워크모델 (Network)이 있었으며, 이 모델들의 독립성들을 정리하면 다음과 같다.
데이터 | 구조 | |
File system | 데이터 의존성 (dependence) | 구조 의존성 (dependence) |
Hierarchical Model | 데이터 독립성 (independence) | 구조 의존성 (dependence) |
Network Model | 데이터 독립성 (independence) | 구조 의존성 (dependence) |
Relational Model | 데이터 독립성 (independence) | 구조 독립성 (independence) |
참고
Database systems design, implementaion & management. Carlos Coronel & Steven Morris. CENGAGE 13th edition.
'Data modeling' 카테고리의 다른 글
[데이터 모델] 관계형 모델 기본 (Relational Model) (0) | 2023.09.24 |
---|---|
[데이터 모델] 네트워크 모델 기본(Network Model) (0) | 2023.09.24 |
[데이터 모델] 계층형 모델 기본 (Hierarchical Model) (0) | 2023.09.24 |