데이터 추상화란
데이터 추상화란 물리적으로 저장된 실제 데이터를 감추고, 사용자에게 필요한 정보만 보여주는 것을 의미합니다.
예를들어 네이버에 접속을 하면 배너 광고, 뉴스, 웹툰, 인터넷 쇼핑 등등 여러 컨텐츠를 볼 수 있습니다.
하지만 사용자입장에선 그러한 데이터들이 어떻게 저장되어 있는지 알 방법이 없습니다.
이러한 것을 추상화라고 합니다.
추상화 단계
추상화는 세 단계로 구분할 수 있습니다.
- physical level
- logical level
- view level
physical level
물리적 단계는 실제 데이터가 어떻게 저장되어 있는지 기술합니다.
비슷한 예를들면 컴퓨터에 파일들이 저장장치(hdd, ssd 등)에 어떻게 저장되어 있는지 기술하는 단계입니다.
logical level
논리적 단계는 무슨 데이터가 저장되어 있고, 데이터 간의 관계에 대해 기술합니다.
어떤 데이터가 저장되었는지(ex 키, 년도, 몸무게), 데이터간 관계가 어떤지(ex 키와 년도가 관계되어 있으면 출생년도라는 의미) 기술하는 단계입니다.
이 단계에서 작업하는 사용자를 DBA(DB 관리자)라고 하는데, 사용자는 물리적으로 어떻게 구현이 되어 있는지 알 필요가 없습니다.
이러한 특성을 물리적 데이터 독립성(physical data independence)라고 합니다.
view level
뷰 단계는 외부 사용자가 보게되는 단계입니다.
외부 사용자에게는 데이터의 딱 필요한 정보만 보여줄 필요가 있습니다.
뷰는 여러개가 존재할 수 있습니다.
예를들면 네이버의 메인 페이지에는 배너 광고, 뉴스, 웹툰, 인터넷 쇼핑이 나온다고 가정합니다.
네이버에 등록된 수많은 배너 광고 중 하나, 가장 화제의 뉴스 2건과 최신 뉴스 6건이 뉴스란에, 인기 웹툰 6건이 웹툰란에, 인기상품 9건이 쇼핑란에 나오는 것을 볼 수 있습니다. 이것이 하나의 뷰 입니다.
만약 뉴스란을 클릭해서 뉴스 페이지로 들어간다면, 언론사별로 뉴스가 n건씩 나옵니다. 이것이 또 하나의 뷰입니다.
특정 언론사를 클릭해서 들어가면 해당 언론사 뉴스만 n건씩 나옵니다. 이것이 또 하나의 뷰입니다.
뷰 단계는 사용자에게 필요한 정보만 보여줌으로써 DB에 저장된 다른 정보에 접근을 차단하는 최소한의 보안 메커니즘을 제공합니다.