1. 관계 대수(relational algebra)

  - 절차 언어 : how, what 대상

[정의] 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 언어

[일반집합연산] 합집합, 교집합, 차집합(-), 카티션 프로덕트(X)
[순수관계연산] Select, Project, Join, Division, Rename

 

 

 

 

 

 

 

 

2. 관계(relational calculus)

 - 비 절차 언어 : what

[정의] “어떻게 검색할 것인가” 보다 “무엇을 검색할 것인가” 만을 기술하는 선언적 표현법을 사용하는 비절차적 질의어

[구분] 투플 관계 해석(tuple relational calculus)와 도메인 관계 해석(domain relational calculus)으로 구분.


[관계 대수와의 차이점]
– 관계 해석은 하나의 선언적(declarative) 해석식으로 검색질의를 명시하며, 비절차적인 언어임
– 관계 대수에서는 연산들을 순차적으로 사용하므로 절차적인 성질을 가짐
– 두 언어의 표현력(expressive power)은 동등함

 

 

 

 

'ITPE > DB' 카테고리의 다른 글

Sharding  (0) 2021.03.06
데이터 리팩토링  (0) 2021.03.06
CRUD Matrix  (0) 2021.03.06
함수적 종속성  (0) 2021.03.06
데이터 모델링  (0) 2021.03.06

 

 


[정의] 물리적으로 다른 데이터베이스에 데이터를 수평 분할 방식으로 분산 저장하고 조회하는 방법

 

[특징] 성능개선(큰 데이터를 압축, 개별 테이블은 각 샤드에서 더 빠른 작업을 지원),
신뢰성 개선(한 샤드가 실패하더라도 다른 샤드는 데이터 서비스를 제공), 위치 추상화


[개념도]

- 샤드 키로 설정된 칼럼의 기반으로 각각의 값에 맞는 Shard 에 저장
- 사용하는 Application 단에서는 MongoS 라는 라우팅 프로세스만 연결하므로
 Shard 구조에 대해서 알 필요가 없음.

 

 


[분할방법]
1) Vertical Partitioning : 테이블 별로 서버를 분할하는 방식
2) Range based Partitioning : 하나의 feature 나 table 이 점점 거대해지는 경우 서버를 분리하는 방식.
3) Key or Hash Based Partitioning : 엔티티를 해쉬함수에 넣어서 나오는 값을 이용해서 서버를 정하는 방식.
4) Directory Based Partitioning : 파티셔닝 메커니즘을 제공하는 추상화된 서비스를 만듦.


[고려사항] 데이터 재분배, 조인불가, 파티션 등

 

 

 

'ITPE > DB' 카테고리의 다른 글

관계 데이터 언어(relational data language)  (0) 2021.03.09
데이터 리팩토링  (0) 2021.03.06
CRUD Matrix  (0) 2021.03.06
함수적 종속성  (0) 2021.03.06
데이터 모델링  (0) 2021.03.06

 

 

 

 

 

 

 

 

[정의] DataBase 의 Semantic의 변화없이 Schema의 변경을 통해 관리 편의성이나 속도, 정합성 개선을 확보하는 일련의 작업

 

[목적] 구조 최적화, 품질 향상, Agile 개발 지원


[DB Smell]

1. 다목적 컬럼 : 단일컬럼이 다양한목적으로 사용

2. 다목적 테이블 : 단일 테이블이 다양목적 사용

3. 중복데이터 : 많은 행과 열을 보유한 테이블

4. 스마트 컬럼 : 하나의 컬럼이 다기능적 목적 수행가능한 컬럼

5. 변화의 두려움

6. 비정상적 참조경로

7. 테이블 관계의 부적절함

8. 조회성능 및 삽입성능의 저하

 

 

 

 

 

 

 

 


[유형]

구조 리팩토링(스키마의 구조적 변경)

데이터 품질(테이블 데이터값의 일관성 및 사용성 개선)

참조무결성(제약조건 추가)

아키텍처(외부 프로그램과 상호 작용방법 개선)

기능 변환(저장 프로시저의 품질, 트리거 개선 등)


[고려사항]
1) 기존 의미에 대한 변경을 가하지 않았는지, 정보에 대한 손실은 없는지 반드시 DB Regression Test 를 수행함
2) 복원 가능한 시나리오 및 검증체계 구축

 

 

 

 

 

 

 

 

'ITPE > DB' 카테고리의 다른 글

관계 데이터 언어(relational data language)  (0) 2021.03.09
Sharding  (0) 2021.03.06
CRUD Matrix  (0) 2021.03.06
함수적 종속성  (0) 2021.03.06
데이터 모델링  (0) 2021.03.06

+ Recent posts