완전한 데이터베이스 설계 절차를 수행하지 않고 데이터베이스의 설계를 시도하는 것은 나쁜 생각이라는 것은 잘 알려지고 증명된 사실이다. 많은 데이터베이스 문제는 잘못된 데이터베이스 설계에 기인하며, 설계 절차를 부분적으로 따르는 것은 그것을 전혀 따르지 않는 것만큼이나 나쁘다. 불완전한 설계는 잘못된 설계다. 완전하고 생략되지 않은 설계 절차를 따르는 것만이 정상적인 구조와 데이터 무결성을 보장한다. 설계 절차에 소비한 시간이 적을수록 데이터베이스에 문제를 만날 위험은 커진다. 데이터베이스 설계 절차를 따르는 것이 비록 데이터베이스를 설계할 때 만날 수 있는 문제를 완전히 제거해 주지는 못하겠지만, 그것을 최소화하는 데는 큰 도움을 줄 것이다.
업무 명세와 임무 목표 정의하기
데이터베이스 설계 작업의 첫 번째 단계는 임무 명세(mission statement)와 임무 목표(mission objectives)를 정의하는 것을 포함한다. 임무 명세는 데이터베이스의 목적을 설정하고, 설계 작업에 명확한 초점을 제공한다.
모든 데이터베이스는 특별한 목적을 위해 만들어진다. 자신의 데이터베이스의 목적을 식별하고, 그것을 임무 명세 안에 정의한다. 이것은 적합한 데이터베이스 구조를 개발하고 데이터베이스의 의도된 목적을 지원하기 위해 필요한 데이터를 수집하는 것을 도와준다.
입무 목표는 데이터베이스의 데이터에 대해 사용자들이 수행하는 일반적인 작업을 나타내는 문장들이다. 임무 명세를 지원하고, 데이터베이스 구조의 다양한 측면을 결정하는 것을 돕기 위해 이 목표를 사용한다.
현재 데이터베이스 분석하기
현재의 데이터베이스가 존재한다면 그것을 분석한다. 그것을 분석하는 것은 조직이 현재 데이터를 사용하고 관리하는 방법에 대한 중요한 정보를 제공할 것이다. 추가적으로, 이 분석은 조직이 현재 데이터를 수집하고 표현하는 방법을 검토하는 것을 포함한다.
데이터베이스의 상호 작용하는 방법을 식별하기 위해, 사용자 및 관리자들과 면담을 수행한다. 사용자들에게는 어떻게 데이터베이스로 작업하며, 그들의 정보 요구 사항이 무엇인지 질문한다. 관리직원들에게는 현재 받고 있는 정보와 조직을 위한 전반적인 정보 요구 사항에 대한 인식을 질문한다.
분석과 면담을 통해 수집한 정보를 사용하여 초기 필드 목록을 만든다. 완성되면 간단한 검토와 정리를 위해 사용자와 관리자에게 보내 피드백을 권장하고 수정 검토를 위해 그들의 제안을 접수한다.
데이터 구조 만들기
테이블과 필드를 정의하고, 키를 설정하며, 각 필드에 대한 필드 명세를 정의한다.
임무 목표와 데이터 요구 사항으로부터 테이블이 표현하는 다양한 주제를 결정한다. 그리고 이 주제들을 테이블들로 설정하고, 설계 작업의 두 번째 단계에서 취합한 필드 목록으로부터 나온 필드들을 여기에 포함시킨다. 테이블 내의 다중 부분 또는 다중 값 필드들을 정제하여 각각의 필드가 단일 값만 저장하도록 하고, 테이블이 나타내는 주제의 고유한 특성을 나타내지 않는 필드들은 이동 또는 삭제한다. 다음으로, 각 테이블에 적절한 키들을 설정한다.
특정 필드의 특징을 식별하는데 도움을 받기 위해 사용자, 관리자와 면담을 수행하고, 그들이 잘 모르는 특성들에 대해 검토/논의 한다. 이 면담을 완료한 후에 각 필드에 대한 필드 명세를 정의하고 문서화한다.
테이블 관계 결정하고 설정하기
사용자, 관리자와 한번 더 면담하고, 관계를 식별하며, 관계 특성을 식별하고, 관계 수준의 무결성을 설정한다. 관계를 식별한 후에 주 키 또는 연결 테이블에 의해 관계가 있는 테이블들 사이의 논리적 연결을 설정한다. 실제로 관계 설정에 사용하는 방법은 관계의 종류에 의존한다. 그러고 나서, 관계가 있는 테이블들 사이의 참여의 종류와 참여의 수준을 결정한다.
업무 규칙 결정하고 정의하기
데이터베이스의 다양한 측면에 대한 제약을 식별하고, 업무 규칙을 설정하고, 검증 테이블의 정의/구현한다. 조직이 데이터를 보고 사용하는 방법이 데이터베이스 내에 반드시 구축해야 하는 제약과 요구 사항들의 집합을 결정할 것이다. 다음으로, 임의의 업무 규칙을 지원하는데 필요한 검증 테이블을 정의하고 구현한다.
이 시점에 업무 규칙이 설정하는 무결성의 수준은 조직이 그 데이터를 보고 사용하는 방법에 직접적으로 관련되어 있으므로 중요하다. 조직이 커지면서 데이터에 대한 관점도 변하는데, 이것은 업무 규칙도 변해야만 한다는 것을 의미한다. 업무 규칙을 결정하고 설정하는 것은 지속적이고 반본적인 작업이고, 이 수준의 무결성이 적절하게 유지되도록 하려면 계속 부지런해야 한다.
뷰를 결정하고 정의하기
사용자, 관리자와 면담하고 그들이 각자의 데이터로 작업하는 방법을 파악함으로써 데이터베이스 내에 구축할 필요가 있는 뷰의 종류를 식별한다. 각 그룹의 사용자들은 매우 구체적인 방법으로 정보를 액세스해야 하므로, 이 상황을 수용하기 위해 뷰를 사용할 수 있다. 다음으로, 적절한 테이블과 필드들을 사용하여 면담 작업 동안 식별한 뷰를 정의하고, 특정 정보를 추출하는데 요구되는 뷰의 범주를 설정한다.
데이터 무결성 검토하기
첫째, 적절하게 설계된 테이블 범주에 부합되는지 확인하기 위해 각 테이블을 검토하고, 각 테이블 내의 필드들이 적절한 구조를 가지는지 점검한다. 둘째, 각 필드를 위한 필드 명세를 검토 및 점검한다. 셋째, 각 관계의 유효성을 검토하고, 관계의 종류를 확인하며, 관계에서의 각 테이블의 참여 특성을 확인한다. 마지막으로, 데이터베이스 설계 작업의 앞 단계에서 식별한 업무 규칙을 검토하고 데이터베이스의 다양한 측면에서 부과한 제약 사항들을 확인한다.
전체 데이터베이스 설계 작업을 완료했다면 RDBMS 프로그램 내에서 논리적 데이터베이스 구조를 구현할 준비가 되었다. 그러나 조직이 발전함에 따라 데이터베이스 구조는 항상 개선이 필요하므로, 이 작업은 실제로 결코 완료되지 않는다.
'소프트웨어 공부 > 데이터베이스' 카테고리의 다른 글
[데이터베이스] 임무 목표 정의하기 (0) | 2021.08.23 |
---|---|
[데이터베이스] 임무 명세 정의하기 (0) | 2021.08.23 |
[데이터베이스] 용어 (0) | 2021.08.20 |
[데이터베이스] 왜 데이터베이스 설계에 관심을 가져야 하는가 (0) | 2021.08.20 |
[데이터베이스] 데이터베이스의 종류 (0) | 2021.08.20 |