Please enable JavaScript.
Coggle requires JavaScript to display documents.
데이터베이스 기본 - Coggle Diagram
데이터베이스 기본
1.1 데이터 처리 시스템
개념: 데이터 - 처리 - 정보
활용 목적: 고품질 서비스, 매출 증대, 의사결정 기초자료
필요성: 생산성 증대, 의사결정 기준, 이력 데이터 자산 축적
유형: 일괄 처리, 온라인 처리, 분산 처리
1.2 데이터베이스 개념
시스템들이
공용
할 수 있도록
통합
,
저장
된
운영
데이터의 집합
특성: 실시간 접근성, 계속적인 변화, 동시 공용,
내용에 의한 참조
구조: 논리적 구조(사용자 입장), 물리적 구조(저장 장치 입장)
구성요소: 개체(entity), 관계(relationship)
1.3 데이터베이스 시스템의 구성
데이터를 데이터베이스로 저장하고 관리해서 필요한 정보를 생성하는 컴퓨터 중심의 시스템
구성요소: DB, DBMS, 데이터 언어, 사용자, DB 컴퓨터
3단계 DB 아키텍처: 데이터 독립성, 외부/개념/내부 스키마
데이터 독립성
: 하위 단계의 데이터 구조 변경이 상위 단계에 영향X, 사용의 단순화, 유지보수 편리성, 3단계 DB 구조로 구현(매핑)
데이터 사전(시스템 카탈로그) : DB 메타데이터 저장 레파지토리, 사용 위해 항상 검색 필요, 정상적 가동을 위한 필수 데이터
데이터 사전 관리정보: Object 구조/변경, 권한 정보, 성능 정보
데이터 사전 운영 고려사항: 성능(메모리 상주), 백업 및 복구(시스템 카탈로그)
데이터 언어
데이터 정의어(DDL): DB 정의/수정, Alter/Drop/Create
데이터 조작어(DML): 비절차적(Select, Update, Delete, Insert), 절차적(PL/SQL(함수, 프로시저) 등)
데이터 제어어(DCL): 보안, 무결성, 회복, 병행제어(Grant/Revoke, Commit/Rollback, Set 등)
1.4 데이터베이스 관리 시스템
DBMS: 응용 프로그램과 데이터의 중재자, DB 공용
데이터 종속성 및 중복성
종류: 계층형, 네트워크형, 관계형, 객체지향, 객체관계형, XML
구성요소
: DDL 컴파일러, DML 예비 컴파일러, 질의 처리기, DML 컴파일러, 런타임 DB 처리기, 트랜잭션 관리자, 저장 데이터 관리자
1.5 데이터베이스 저장과 접근
DB 저장: 직접 접근 저장장치(DASD), 디스크, 디스크 어레이(RAID), 광 디스크에 저장, 성능 개선은 디스크 접근 횟수 최소화
DB 접근: DBMS - 운영체제(파일 관리자 - 디스크 관리자) - DB
파일 조직 방법: 순차 방법(정렬), 인덱스 방법, 해싱 방법
인덱스 방법
특징: 성능 향상(조회), 독립성, 알고리즘(트리, 해시 등), Trade-Off
트리: 계층적 구조화 위한 자료구조
이진트리 순회
전위 순회: Root - Left - Right
중위 순회: Left - Root - Right
후위 순회: Left - Right - Root
탐색 트리
각 트리 노드에 하나의 디스크 블록 할당하여 저장
각 노드는 상-하, 좌-우 오름차순 정렬
B-Tree
제약조건: 항상 균형 유지, 모든 Leaf node 같은 레벨
새로운 키 값 리프 노드 삽입(중위순회)
장점: 균등 속도 보장, 균형유지, 저장장치 효율성, 단점: 복잡한 재분배, 병합 연산 발생, Split으로 성능저하, 중위순회탐색 비효율성 => B*트리
B*Tree
키/포인터로 구성된 Index Set, Leaf node만 구성된 Sequence Set
Index Set: 경로제공, 키/포인터값
Sequence Set: 키값과 데이터 포함, 오름차순, 삭제: 키값 유지/탐색X
삽입: Leaf 분열시 중간 키값이 부모노드와 분열노드에 존재, 순차성
삭제: Leaf 노드만 수행, Index Set에 계속 유지, 분기 값으로만 사용
실질적 데이터 Leaf node에만 있고 나머지 node 키값만 관리
중위순회-순차접근, 레코드 위치(전노드-리프노드), 중복성제거-중복성존재, 노드 크기 및 저장공간 관리 복잡-노드 크기 동일/리프노드만 삭제
제약사항: 최소한 노드의 2/3 채우도록(B-Tree 1/2)
해싱 방법
정의: 다른 어떤 레코드 참조않고 목표 레코드 직접 접근(직접 파일),
원소값으로부터 직접 저장 원소의 위치 계산
빠른 검색 속도, 인덱스 기법 널리 사용, 충돌 많을 경우 기억장소 낭비
정적 해싱 기법: 버킷 주소 집합 고정, 파일 크기 근거 해싱 함수 선택,
파일 크기 증가 따라 주기적 해싱 구조 재구성 필요
정적 해싱 기법: 중간제곱법, 진수 변환법, 폴딩법, 충돌/오버플로 발생
충돌 해결 기법: 개방 주소 지정(선형 조사, 이중 해싱),
체인(linked list 연결, 오버헤드, 레코드 수 미리 예측 못할 때)
동적 해싱: 데이터 증감따라 해시함수 동적 변환, 버킷 수 가변, 버킷 주소 테이블 생성/유지,
장점: 데이터 증감 성능 영향X, 메모리/디스크 낭비 줄임, 접근시간 일정
단점: 별도 버킷 주소 테이블 필요, 버킷 주소 적으면 저장공간 낭비, 주소통한 간접 검색, 버킷 주소 테이블 재구조화로 성능 지연 발생
확장성 해싱: 동적 해싱 한 형태, 깊이가 2인 트리구조(디렉터리와 버킷), 충돌 대처, 비트스트링 하나 씩 추가, 재구조화가 한 번에 하나의 버킷에서만 일어나므로 오버헤드 적음, 버킷 절약