본문 바로가기

정보처리

데이터베이스 설계

오늘은 데이터베이스 설계에 대해 공부를 해봅시다. 데이터베이스 설계란 사용자의 요구를 분석하여 그것을 컴퓨터에 저장할 수 있는 데이터베이스의 구조에 맞게 변형한 후 특정 DBMS로 데이터베이스를 구현하여 일반 사용자들이 사용하게끔 해주는것을 말합니다. 데이터베이스 설계에서는 설계순서와 각 단계별 특징이 중요합니다. 데이터베이스 설계 순서 및 각 단계에서 대표적으로 수행해야 할 작업을 중심으로 학습해봅시다. 

 

데이터베이스 설계시 고려사항

  • 무결성 : 삽입, 삭제, 갱신 등의 연산 후에도 데이터베이스에 저장된 데이터가 정해진 제약 조건을 항상 만족해야합니다. 
  • 일관성 : 데이터베이스에 저장된 데이터들 사이나, 특정 질의에 대한 응답이 처음부터 끝까지 변함없이 일정해야합니다. 
  • 회복 : 시스템에 장애가 발생했을 경우 장애 발생 직전의 상태로 복구 할 수 있어야 합니다. 
  • 보안 : 불법적인 데이터의 노출 또는 변경이나 손실로부터 보호할 수 있어야 합니다. 
  • 효율성 : 응답시간의 단축, 시스템의 생산성, 저장 공간의 최적화 등이 가능해야 합니다. 
  • 데이터베이스 확장 : 데이터베이스 운영에 영향을 주지 않으면서 지속적으로 데이터를 추가 할 수 있어야합니다. 

위 고려사항들을 지켜서 설계를 해주는것이 중요합니다. 다음으로는 데이터베이스의 설계 순서입니다. 순서는 요구조건 분석 , 개념적 설계, 논리적 설계, 물리적 설계,구현 순으로 진행됩니다. 다음으로 하나하나 항목에대해서 알아봅시다. 

 

우선 첫번째로 요구 조건 분석 단계입니다. 요구조건 분석은 데이터베이스를 사용할 사람들로부터 필요한 용도를 파악하는것을 말합니다. 데이터베이스 사용자에 따른 수행 업무와 필요한 데이터의 종류, 용도, 처리 형태, 흐름, 제약 조건 등을 수집해야합니다. 이러한 수집된 정보를 바탕으로 요구 조건 명세서를 작성해야합니다. 

 

요구 조건 분석단계가 끝났으면 다음으로는 개념적 설계(정보 모델링, 개념화)단계로 넘어가게 됩니다. 이때 개념적 설계란 정보의 구조를 얻기 위하여 현실 세계의 무한성과 계속성을 이해하고 다른 사람과 통신하기 위하여 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정입니다. 이때 개념 스키마 모델링과 트랜잭션 모델링을 병행수행하고 요구조건 명세를 DBMS에 독립적인 E-R다이어그램으로 작성합니다. DBMS에 독립적인 개념 스키마를 설계해야합니다. 

 

다음으로는 논리적 설계(데이터 모델링)단계입니다. 논리적 설계 단계란 현실 세계에서 발생하는 자료를 컴퓨터가 이해하고 처리할 수 있는 물리적 저장장치에 저장할 수 있도록 변환하기 위해 특정 DBMS가 지원하는 논리적 자료 구조로 변환시키는 과정입니다. 만약에 개념적 설계가 개념 스키마를 설계하는 단계라면 논리적 설계에서는 개념 스키마를 평가 및 정제하고 DBMS에 따라 서로 다른 논리적 스키마를 설계하는 단계입니다. 

 

논리적 설계를 마치면 다음으로는 물리적 설계를 진행해야겠죠? 이번단계에서는 논리적 설계 단계에서 논리적 구조로 표현된 데이터를 디스크 등의 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정입니다. 이때 처리 성능을 얻기 위해서 데이터베이스 파일의 저장 구조 및 액세스 경로를 결정합니다. 저장레코드의 형식, 순서, 접근 경로와 같은 정보를 사용하여 데이터가 컴퓨터에 저장되는 방법을 묘사합니다. 

 

마지막 단계는 데이터 베이스 구현 단계입니다. 이번 단계에서는 논리적 설계 단계에서 도추로딘 데이터 베이스 스키마를 파일로 생성하는 과정입니다. 사용하려는 특정 DBMS의 DDL(데이터 정의어)를 이용하여 데이터베이스 스키마를 기술한 후 컴파일하면 빈데이터베이스 파일을 생성합니다. 이때 생선된 빈 데이터베이스 파일에 데이터를 입력하고 응용프로그램을 위한 트랜잭션또한 작성합니다. 

 

이번시간에는 데이터베이스 설계와 각 단계에서의 역할에 대해 공부 하였는데요 다음시간에는 데이터 베이스 모델에 대해 공부하겠습니다. 

'정보처리' 카테고리의 다른 글

인터페이스 구현  (0) 2020.05.27
애플리케이션 테스트 관리  (0) 2020.05.26
소프트웨어 패키징  (0) 2020.05.21
단위 모듈 구현과 테스트  (0) 2020.05.20
자료 구조에 대하여  (0) 2020.05.20