1. 데이터 독립성
1) 데이터 독립성의 필요성
간단하게 말하면, 개별적인 데이터 그 자체로도 의미가 있고 다른 서비스와 결합해서도 의미가 있다는 거예요!
이렇게 되면 독립적인 데이터는 개인의 고유한 기능을 가지고 그것을 제공할 수 있다는 장점을 가질 수 있겠죠.
원래는 데이터 종속성이라는 게 있었어요. 보통 이건 Application(사용자 요구사항을 처리하는 사용자 접점 인터페이스 오브젝트)을 말해요. 원래는 데이터를 구성할 때 파일 형식으로 했대요. 그래서 인덱스를 따로 구현해서 접근해야 했어요. 문제는 이게 발전하면서 점점 난해해졌다는 거죠.
그런 면에서 데이터 독립성은 계속해서 늘어나는 유지보수 비용을 절감할 수 있고, 데이터 복잡도를 낮출 수 있으면서 중복된 데이터를 줄이기 위해 사용할 수 있어요. 사용자가 요구하는 것에 대해 화면과 DB 간에 독립성을 유지하기 위해 등장하게 된 거죠.
*데이터 독립성을 확보하게 되면 얻을 수 있는 효과
- 각 View 독립성 유지, 계층별 View에 영향을 주지 않고 변경 가능
- 단계별 Schema에 따라 DDL, DML이 다름 제공
2) DB 3단계 구조/요소
a. 외부단계
사용자와 가장 가까운 단계
사용자 개개인이 보는 자료에 대한 관점과 관련이 있어요. 사용자가 처리하고 싶어하는 데이터 유형/관점/방법에 따라서 각기 다른 스키마를 가지고 있어요.
외부스키마는 개인적 DB스키마, DB 개개인의 사용자가 응용프로그래머가 접근하는 DB에 대한 정의죠.
b. 개념적단계
사용자가 처리하는 데이터 유형의 공통적인 사항을 처리하는 통합된 View를 스키마 구조로 디자인 하는 거예요! 외부단계에서 모았던 각 스키마들의 공통된 부분이 합쳐지는 거죠~
외부스키마가 개인이었다면 개념스키마는 조직이에요. 하나의 통합한 조직 전체 DB에 대한 정의죠. 모든 응용시스템이나 사용자들이 필요로 하는 것들(: 공통된 부분)을 통합한 것이고, DB에 저장되는 데이터와 조직 전체의 관계를 표현하는 것이죠.
c. 내부적단계
데이터가 물리적으로 저장된 방법에 대한 스키마예요! 개념적 단계에서 통합된 View가 내부에 어떻게 저장되느냐에 가까우니 사용자와 가장 멀겠죠.
위의 두 스키마가 접근/저장/관계 등을 표현했다면 내부스키마는 실제적으로 어떤 방식으로 저장되는지를 표현한 것이에요.
3) 논리적/물리적 독립성
a. 논리적 독립성
: 개념스키마가 변경되는 일이 생겨도 외부스키마에는 영향을 미치지 않도록 한다는 것인데, 한마디로 논리적 구조가 변경되어도 응용프로그램에는 영향을 주지 않도록 한다는 거죠.
이렇게 되면 개인, 즉 사용자의 특성에 맞게 변경이 가능하고 통합 구조를 변경할 수 있게 돼요. 웹사이트의 화면의 개별 화면을 개인에 맞춰 변경했다고해서 웹사이트 자체의 프로세스가 변화되는 건 아니라는 느낌일까 싶어요.
b. 물리적 독립성
: 내부스키마가 변경되어도 외부/개념스키마에 영향을 받지 않도록 하는 것이에요. 저장장치의 구조를 변경한다고 해서 응용프로그램이나 개념스키마에 영향이 없다는 말이죠.
물리적 구조의 영향 없이 개념구조를 변경할 수 있고, 개념구조의 영향 없이 물리적 구조를 변경할 수 있다는 거죠.
4) 사상(Mapping)
a. 외부/개념적 사상(논리적 사상): 외부 화면, 사용자에게 인터페이스하기 위한 스키마 구조는 개념스키마와 상호관련성 O
b. 개념/내부적 사상(물리적 사상): 개념스키마 주고와 물리적 테이블스페이스 연결
* 데이터 독립성 보장을 위해서는 사상하는 DDL을 DBA가 필요할 때마다 변경해주어야 해요. 그래야 각 단계에서 변경사항이 발생했을 때 DBA가 작업을 해줄 수 있거든요.
2. 데이터 모델링의 3가지 개념
1) 3가지 요소
a. Entity: 어떤 것에 대한 집합
b. Attribute: 집합개념이 속성, 그 안의 개별 값들
c. Relationship: 어떤 것 간의 연관
* 예를 들어
'토마토와 고양이가 존재하고 둘은 서로 사랑하는 연인사이다. 토마토는 빨갛고 68cm정도 되며, 성격은 장난치기를 좋아한다. 고양이는 검정색이고 63cm정도이며, 성격은 부끄러움을 많이 탄다.'
이때 토마토, 고양이는 각각 '어떤 것'에 해당하고, 연인은 '어떤 것 간의 연관', 빨갛다, 68cm, 장난치기/검정색, 63cm, 부끄러움은 '개별 값'에 해당한다.
3. ERD
1) ERD 작업순서
a. 엔터티 그리기
b. 엔터티 배치
중요 엔터티, 업무 흐름 중심, 중심 엔터티와의 관계 유뮤
c. 엔터티 간 관계 설정
Primary Key로 상속되는 식별자 관계, 중복 관계 X, Circle 관계 X
d. 관계명 기술
현재형 사용, 포괄절 용어 X
e. 관계 참여도 기술
관계차수(Cardinality) 표현
f. 관계 필수여부 기술
'SQL' 카테고리의 다른 글
SQLD 5 (0) | 2023.09.07 |
---|---|
SQLD 4 (1) | 2023.09.07 |
SQLD 2 (0) | 2023.08.27 |
SQLD 1 (0) | 2023.08.26 |
SQL_05 하룻데엔새싹 범 무서운 줄 모른다.(1편) (3) | 2023.06.04 |