논리데이터 저장소
- 자료구조
- 리스트, 스택, 큐, 데크(큐의 양쪽끝에서 삽입삭제)
- 트리
- 차수 - 연결된 자식노드수 ( 디폴트-최대차수)
- 순회방법
- 전위(pre) - 뤁레롸
- 중위(in) - 레뤁롸
- 후위(post) - 레롸뤁
- 이진트리
- 포화이진트리 - 꽉찬거
- 완전이진트리 - 마지막레벨빼고는 꽉참
- 편향이진트리 - 한쪽으로만
- 그래프
물리데이터저장소
- 논리데이터 → 물리데이터저장소 모델로 변환
- 단위개체를 테이블로 변환
- 속성을 컬럼으로
- UID를 기본키로
- 관계를 외래키로
- 컬럼유형과 길이 정의
- 반정규화
- 테이블 통합 - 일대일, 일대다 관계를 통합 → 조인횟수를 줄인다 (다대다는 안됨)
- 테이블 분할 - 수평분할(레코드기준), 수직분할(컬럼의 개수가 증가하는경우 활용)
- 중복테이블 추가 - 집계함수 사용시 → 집계, 진행, 특정부분포함
- 컬럼 중복화 - 조인성능향상을 위한 중복 허용
- 물리데이터 저장소 구성
- 테이블 제약조건 설계
- 인덱스 설계 - 별도의 저장공간이필요, 오버헤드 조심
- 뷰 설계 - 뷰속성(REPLACE, FORCE, NOFORCE, WITH CHECK OPTION, WITH READ ONLY
- 클러스터 설계 - 인덱스 단점해결, 분포도가 넓을수록 유리, 대량의범위를 자주 액세스하는경우, 여러 테이블이 빈번하게 조인을 일으킬때, 검색효율을 증가하나 입력수정삭제시 부하가 증가함
- 파티션 설계 - 레해리컴(레인지, 해싱, 리스트, 컴포지트)
- 파티션의 장점 - 성가백합 ( 성능, 가용성, 백업, 경합감소)
- 디스크구성 설계
- ORM프레임워크
- 객체지향 언어 ↔ 관계형 데이터베이스간 호환
- SQL 매핑 - iBatis(자바, 닷넷, 루비를 연결), MyBatis(자바의 관계형 디비프로그래밍)
- OR매핑 - Hibernate(자바를 위한 객체관계 매핑 프레임워크)
- 트랜잭션 인터페이스
- 특징 : ACID (원자성(커밋, 롤백), 일관성, 격리성, 영속성)
- 설계 - JDBC, ODBC