데이터베이스
12. 데이터베이스 설계
데이터베이스 설계
- 데이터베이스를 생성하는 일련의 과정
- 기본적으로 정보 시스템 개발 절차를 따른다.
데이터베이스 개발 생명 주기
요구사항 분석 -> 설계 -> 구현 -> 운영 -> 감시 및 개선
데이터베이스 설계 단계
- 요구사항 분석을 기반으로 데이터베이스 구조를 작성하는 과정
- 사용자들의 요구에 부합하도록 데이터베이스의 논리적, 물리적 구조를 설계하는것이 중요
요구사항 분석 -> 개념적 설계 -> 논리적 설계 -> 물리적 설계 -> 구현으로 이루어짐
설계 시 고려사항
무결성
- 변경 연산(삽입 삭제 갱신) 후에도 데이터가 제약조건에 만족해야함
일관성
회복
보안
효율성
-
최적화가 되어야함
- 응답시간 단축
- 저장 공간 최적화
- 시스템 생산성 향상
확장성
- 시스템 운영에 영향을 주지 않으며 새로운 데이터를 계속 추가시킬 수 있어야함
요구사항 분석
- 사용자의 요구사항을 수집,분석해 공식적인
요구사항 명세서를 생성
명세서에 포함되어야하는 내용
정적 정보 구조에 대한 요구사항
동적 DB 처리 요구사항
범기관적 제약조건 산출
분석 과정
- 일반 사항 분석
- 업무와 관련된 문서 수집
- 회사 목표, 제약 조건 파악
- 자료 분류 및 정리
- 공식적
요구사항 명세서 작성
- 회의를 거쳐 수정
개념적 설계
- 개념적 스키마 모델링과 트랜잭션 모델링을 병행적으로 수행
개념적 스키마 모델링
- ER 다이어그램 사용
- 명세서를 개념적 데이터 모델로 기술
- 이 과정을
개념적 데이터 모델링이라 함 - 이 결과를 개념적 데이터 구조 또는 개념적 데이터 스키마라고 함
- 스키마 구성 요소
추상화를 통해 개념적 데이터 스키마를 유도한다.
- 현실 세계를 단순화, 개념화시켜 표현한 것을 뜻함.
집단화와 일반화가 있다.
- 집단화
- 하위 클래스의 속성을 묶어 하나의 새 개체를 생성
- 일반화
- 하위 레벨 개체의 공통 특성을 파악해 상위 레벨의 개체를 생성
- 승용차,트럭의 특성을 파악해 자동차라는 상위레벨 생성
트랜잭션 모델링
논리적 설계
- 개념적 데이터 스키마로부터 DBMS가 처리할 수 있는 스키마를 생성
- 요구사항 명세서를 당연히 만족해야함
- 무결성,일관성,제약조건도 만족
- 3단계를 거쳐 수행
- 논리적 데이터 모델로 변환
- 트랜잭션 인터페이스 설계
- 스키마의 평가 및 정제
논리적 데이터 모델로 변환
- 개념적 데이터 스키마를 논리적 데이터 모델로 변환
- 이 과정을
논리적 데이터 모델링이라고 함
- 데이터 모델에는 관계,계층,네트워크,객체 지향, 객체관계형을 모두 포함함
논리적 데이터 모델링을 통해 DDL로 기술된 스키마가 됨
- 완전한 스키마 정의는 물리적 설계단계까지 보류
트랜잭션 인터페이스 설계
- 트랜잭션의 전체적 골격 개발
- 인터페이스 정의
- 트랜잭션에 대한 데이터 접근 방법 기술
스키마 평가 및 정제
정량적 정보와 성능평가 기준에 따라 수행
- 정량적 정보
- 성능 평가 기준
- 논리적 레코드의 접근
- 데이터 전송량
- DB 크기
- 필요한 경우 인덱스나 해싱 기법을 통해 성능을 개선시킨다.
물리적 설계
논리적 데이터 스키마로부터 효율적인 내부스키마를 설계
- 성능에 중대한 영향을 미치므로 효율성이 강조
- 트랜잭션의 상세 설계도 병행하여 수행
- 물리적 데이터 구조의 기본적 데이터 단위는
저장 레코드
- 하나의 파일: 한 타입의 저장 레코드들의 집합
다음의 설계가 포함
- 저장 레코드 양식 설계
- 레코드 집중화
- 접근 경로
- 저장 공간 할당
저장 레코드 양식
레코드 집중화
- 논리적으로 관련이 깊은 레코드들을 물리적으로 근접하도록 저장
- 연속된 레코드의 검색을 요구할 때 빠른 접근 가능
- 블록 크기의 선정이 중요함
접근 경로
-
저장된 데이터의 검색과 저장을 가능하게 함
- 저장구조
- 주로
인덱스를 통한 접근방법과 데이터 파일을 정의
- 탐색기법
기본 접근 경로와 보조 접근 경로로 나뉨
-
기본 접근 경로
기본키를 기본으로한 기본 인덱스를 이용
- 초기 레코드 적재, 레코드의 물리적 위치, 기본키를 통한 검색과 밀접
- 파일들은 주요 응용들이 기본 접근 경로를 이용해 처리되도록 설계되어야함
-
보조 접근 경로
보조키에 기반을 둔 보조 인덱스를 이용해 레코드를 접근, 화일간 연결을 가능캐
- 접근 시간은 줄이지만, 저장 공간 추가 사용 인덱스 관리 복잡
상용 DBMS는 성능 향상을 위해 여러 도구를 지원
물리적 데이터 구조 설계시 고려 사항
- 트랜잭션 응답 시간
- 실행을 위해 시스템에 요구한 시점부터 결과를 받을때 까지의 시간
- 저장 공간의 효율화
- 트랜잭션 처리도(throughput)
- 단위시간에 DBMS가 처리할 수 있는 평균 트랜잭션 수
물리적 설계의 평가를 위해 시뮬레이션이나 프로토타입과 같은 기법을 많이 사용
DBMS는 성능 평가를 위해 시스템 catalog에 통계 데이터를 저장
- 트랜잭션 발생 수, 입출력 연산, 페이지나 인덱스 수, 인덱스 사용빈도 등의 정보가 저장
- 이러한 통계 데이터는 성능향상을 위해 화일 재구성에 이용됨
구현
- 목표 DBMS의 DDL로 기술된 명령문이 컴파일되고 실행된다.
- 데이터베이스 스키마와 빈 데이터베이스 파일을 생성한다.
- 그 후 데이터를 적재
- DB의 트랜잭션은 응용 프로그래머에 의해 구현됨
- DB 설계 및 구현이 끝나면 DB 운영단계로 넘어감