데이터베이스 설계에 관심을 가져야 하는 주된 이유는 그것이 데이터베이스 내의 데이터의 일관성, 무결성, 그리고 정확성에 결정적으로 중요하기 때문이다. 데이터베이스를 부적절하게 설계하면 어떤 정보는 추출하기 힘들고, 검색에서 부정확한 정보를 얻는 위험을 감수해야 한다.
이론의 중요성
이론의 주된 장점은 결과를 예측할 수 있도록 도와준다는 것이다. 이것은 하나의 처리 또는 일련의 처리를 수행할 때 어떤 일이 일어날지 예측할 수 있도록 해 준다. 관계형 데이터베이스는 집합 이론과 1차 술어 논리라는 수학의 두 분야에 기초를 두고 있다. 바로 이 사실이 관계형 데이터베이스가 정확한 정보를 보장하도록 해 주는 것이다. 또 이 수학의 분야들은 좋은 설계 방법론을 형식화하기 위한 기초와 좋은 관계형 데이터베이스 구조를 만드는 데 필요한 재료를 제공한다.
수학적 이론은 관계형 데이터베이스 모델을 위한 기초를 제공하고, 이 모델을 예측할 수 있으며, 신뢰성 있고 튼튼한 것으로 만든다. 이론은 관계형 데이터베이스를 만드는데 사용되는 기본적인 건축 자재를 설명하고 그것이 배열되어야 하는 지침을 제공한다. 원하는 결과를 얻기 위해 건축 자재를 배열하는 것은 '설계'라고 정의 된다.
좋은 설계 방법론을 배울 때의 장점
데이터베이스를 올바르게 설계하는 방법을 시행착오에 의해 배울 수도 있겠지만, 여기에는 아주 긴 시간이 걸릴 것이다. 최선의 접근 방법은 좋은 데이터베이스 설계 방법론을 배우고 나서 자신의 데이터베이스 설계에 착수하는 것이다.
좋은 설계 방법론을 배우고 사용함으로써의 장점
- 튼튼한 데이터베이스 구조를 설계하는데 필요한 기술을 제공한다.
- 설계 작업을 단계적으로 안내할 기술의 조직화된 집합을 제공한다.
- 실수와 설계 반복을 최소화하도록 도와준다.
- 설계 작업을 쉽게 해 주고 데이터베이스를 설계하는데 소비되는 시간을 줄여준다.
- RDBMS 소프트웨어를 더 완전하고 효율적으로 이해하고 사용하도록 도와준다.
좋은 설계의 목적
좋은 튼튼한 데이터베이스 구조를 설계하기 위해 달성해야만 하는 명확한 목적이 있다.
- 데이터베이스는 필수적인(required) 것과 임의적인(ad hoc) 정보 추출을 둘 다 지원한다.
- 테이블은 적절하고 효율적으로 구성되어야 한다.
- 필드, 테이블 및 관계 수준에서 데이터 무결성이 부과된다.
- 데이터베이스는 조직과 관련된 업무 규칙을 지원한다.
- 데이터베이스는 장래의 성장에 적합하다.
좋은 설계의 이점
튼튼한 데이터베이스 구조를 설계하면 수정에 들어가는 시간을 절감할 수 있다.
- 데이터베이스 구조를 쉽게 수정하고 유지할 수 있다.
- 데이터를 쉽게 수정할 수 있다.
- 정보를 추출하기 쉽다.
- 최종 사용자 애플리케이션이 쉽게 개발 및 구축된다.
데이터베이스 설계 방법
전통적인 설계 방법
일반적으로 데이터베이스를 설계하는 전통적인 방법들은 세 단계를 가진다.
요구사항 분석, 데이터 모델링, 그리고 정규화(normalization)다. 요구 사항 분석 단계는 모델이 되는 사업에 대한 조사, 현재 시스템을 평가하고 미래의 요구를 분석하기 위한 사용자 및 관리자와의 면담, 사업 전반에 대한 정보 요구 사항의 평가를 포함한다.
데이터 모델링 단계는 실체-관계(ER : Entity-Relationship) 그리기, 의미-개체(semantic-object) 모델링, 개체-관계(object-role) 모델링과 같은 데이터 모델링 방법을 사용하여 데이터베이스 구조를 모델링하는 것을 포함한다.
정규화는 중복 데이터와 이중 데이터를 줄이고 데이터 삽입/갱신/삭제에서 발생하는 문제를 피하기 위해 큰 테이블을 작은 테이블들로 분할하는 작업이다. 현재 사용되고 있는 정규형은 제1 정규형, 제2 정규형, 제3 정규형, 제4 정규형, 보이스-코드(Boyce-Codd) 정규형, 그리고 도메인/키 정규형이다.
'소프트웨어 공부 > 데이터베이스' 카테고리의 다른 글
[데이터베이스] 설계작업 (0) | 2021.08.23 |
---|---|
[데이터베이스] 용어 (0) | 2021.08.20 |
[데이터베이스] 데이터베이스의 종류 (0) | 2021.08.20 |
[데이터베이스] Attribute (속성) (0) | 2021.04.13 |
[데이터베이스] Entity (엔티티) (0) | 2021.04.13 |