맨위로가기

데이터베이스 설계

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

데이터베이스 설계는 데이터를 효율적으로 저장하고 관리하기 위한 과정으로, 데이터의 분류, 상호 관계 식별, 논리 구조화 등을 포함한다. 데이터베이스 설계는 개념적 설계, 논리적 설계, 물리적 설계의 단계를 거치며, 관계형 모델과 객체 지향 모델 등 다양한 데이터 모델을 활용한다. 데이터베이스 정규화는 데이터 중복을 줄이고 데이터 무결성을 확보하기 위한 중요한 과정이며, 설계 원칙과 다양한 설계 도구를 통해 효율적인 데이터베이스 구축을 지원한다.

더 읽어볼만한 페이지

  • 설계 - 유니버설 디자인
    유니버설 디자인은 모든 사람이 제품, 환경, 서비스를 편리하게 이용하도록 설계하는 개념이며, 7가지 원칙을 통해 공평한 사용을 추구하며 다양한 분야에 적용된다.
  • 설계 - 프로토타입
    프로토타입은 새로운 기술이나 기구의 검증, 기능 검증을 위해 제작되며, 대량 생산 전에 문제점을 파악하기 위해 사용되며, 다양한 유형의 프로토타입이 존재하며, 비용 증가와 같은 단점이 있다.
  • 데이터베이스 이론 - 관계형 데이터베이스
    관계형 데이터베이스는 데이터를 테이블 형태로 구성하여 관리하며, 1970년 E.F. 코드에 의해 정의되었고, RDBMS를 통해 ACID 트랜잭션, 저장 프로시저, 정규화, 인덱스 등의 기술을 활용하여 다양한 분야에서 사용된다.
  • 데이터베이스 이론 - 키-값 데이터베이스
    키-값 데이터베이스는 키를 사용하여 데이터를 저장하고 검색하는 데이터베이스 유형이며, 관계형 데이터베이스와 달리 유연성이 높고, NoSQL의 한 유형으로 널리 사용되며, 빅데이터 등 다양한 분야에서 활용된다.
  • 데이터베이스 관리 시스템 - 트랜잭션 처리
    트랜잭션 처리는 데이터베이스 시스템에서 데이터의 일관성과 무결성을 보장하기 위한 기술이며, ACID 속성을 통해 데이터 정확성을 유지하고 롤백, 데드락 처리 등의 기술을 활용한다.
  • 데이터베이스 관리 시스템 - 저장 프로시저
    저장 프로시저는 데이터베이스 관리 시스템에서 SQL 문들을 미리 컴파일하여 저장하고, 모듈화, 보안성, 성능 향상, 유지보수 용이성과 같은 특징을 가지며, 데이터베이스 시스템마다 구현 방식과 지원하는 언어가 다를 수 있는 코드 묶음이다.
데이터베이스 설계
개요
데이터베이스 설계데이터베이스 시스템의 구조와 특징을 정의하는 과정
목표데이터베이스 시스템의 효율성, 무결성, 사용성, 유지보수성을 극대화
관련 분야데이터 모델링, 데이터베이스 관리 시스템 (DBMS), 소프트웨어 공학
데이터베이스 설계 단계
요구 사항 분석데이터베이스 사용자 및 응용 프로그램의 요구 사항을 수집하고 분석
개념적 설계요구 사항을 기반으로 데이터베이스의 개체, 속성, 관계를 정의하는 개념적 스키마 생성
논리적 설계개념적 스키마를 특정 DBMS에 적합한 논리적 스키마로 변환 (예: 관계형 모델)
물리적 설계논리적 스키마를 기반으로 데이터베이스 파일 구조, 인덱스, 저장 공간 할당 등 물리적 구조를 설계
구현 및 테스트설계된 스키마를 DBMS에 구현하고, 데이터베이스의 기능과 성능을 테스트
유지보수데이터베이스의 성능을 모니터링하고, 필요에 따라 스키마를 개선하거나 재구성
데이터베이스 설계 원칙
무결성데이터의 정확성과 일관성을 유지
효율성데이터 접근 및 처리 속도를 최적화
유연성변화하는 요구 사항에 쉽게 대응할 수 있도록 설계
보안데이터에 대한 접근 권한을 관리하고, 무단 접근으로부터 보호
단순성이해하고 유지보수하기 쉬운 구조로 설계
데이터 모델
계층형 모델데이터를 트리 구조로 표현 (초기 DBMS에서 사용)
망형 모델데이터를 그래프 구조로 표현 (계층형 모델의 복잡성을 개선)
관계형 모델데이터를 테이블 형태로 표현 (현재 가장 널리 사용되는 모델)
객체지향 모델객체지향 프로그래밍 개념을 데이터베이스에 적용
NoSQL 모델관계형 모델의 제약에서 벗어나 유연하고 확장 가능한 데이터 관리 (키-값, 문서, 그래프 등 다양한 형태 존재)
데이터베이스 정규화
목적데이터 중복을 최소화하고, 데이터베이스의 무결성을 향상
정규형제1정규형 (1NF), 제2정규형 (2NF), 제3정규형 (3NF), BCNF (Boyce-Codd Normal Form), 제4정규형 (4NF), 제5정규형 (5NF) 등 다양한 정규형 존재
과정함수적 종속성을 분석하여 테이블을 분해하고, 정규형을 만족하도록 수정
데이터베이스 설계 도구
ER 다이어그램개체-관계 모델을 시각적으로 표현하는 도구
UML객체지향 모델링을 위한 표준 표기법
데이터 모델링 도구ERwin, PowerDesigner 등 다양한 상용 도구 존재
고려 사항
성능데이터베이스의 응답 시간, 처리량 등을 고려
확장성데이터베이스의 용량 증가, 사용자 증가 등에 대비
가용성데이터베이스의 장애 발생 시 복구 및 대체 방안 고려
보안데이터베이스에 대한 접근 제어, 암호화, 감사 등을 고려
추가 정보
데이터베이스 튜닝데이터베이스의 성능을 향상시키기 위한 작업
데이터 웨어하우징의사 결정 지원을 위한 데이터 저장 및 관리
빅 데이터대용량 데이터를 처리하고 분석하는 기술

2. 데이터베이스 설계의 개념

데이터베이스 설계는 데이터베이스 설계자가 수행하는 여러 작업으로 이루어진다. 모든 작업이 항상 필요한 것은 아니지만, 대부분의 경우 다음과 같은 필수적인 작업이 포함된다.


  • 데이터베이스에 영속화할 데이터를 결정한다.
  • 데이터 요소 간의 관계를 파악한다.
  • 파악된 관계를 바탕으로 데이터에 논리적인 구조를 적용한다.


관계형 모델에서는 데이터베이스 설계의 마지막 단계를 두 가지로 나눌 수 있다. 첫째는 시스템 내의 정보를 그룹으로 묶는 것이다. 이 작업은 객체를 식별하는 것으로, 이 객체에 대한 정보가 데이터베이스에 저장된다. 둘째는 정보 그룹 또는 객체 집합 간의 관계를 결정하는 것이다. 객체 데이터베이스를 사용하는 경우에는 이 작업이 필요하지 않다.

데이터를 트리 구조로 만들면, 계층형 데이터 모델로 구성하게 된다. 계층형 데이터 모델은 부모-자식 (has-a, is-a) 관계로 구성된다. 객체 데이터베이스에서는 객체 클래스의 인스턴스 간에 일대다 관계를 사용한다. 또한 객체 클래스 간의 계층적인 관계, 즉 상속 개념을 도입한다. 상속 관계에서 상위 클래스는 기저 클래스, 하위 클래스는 파생 클래스라고 한다.

2. 1. 데이터 모델링

데이터베이스 설계의 첫 단계는 데이터를 분류하고 상호 관계를 식별하는 것이다. 데이터의 이론적 표현을 온톨로지 또는 개념적 데이터 모델이라고 한다.

데이터베이스 설계를 수행하는 과정은 일반적으로 데이터베이스 설계자가 수행하는 많은 작업으로 구성된다. 이러한 작업 전부가 모든 경우에 반드시 필요한 것은 아니다. 대부분의 경우, 데이터베이스 설계자가 수행하는 필수적인 작업은 다음과 같다.

  • 데이터베이스 내에 영속화(격납)해야 할 데이터를 결정한다.
  • 다른 데이터 요소 간의 관련 집합을 결정한다.
  • 결정된 관련 집합을 기반으로 데이터에 논리 구조를 겹쳐 씌운다.


관계형 모델에서는 데이터베이스 설계의 마지막 작업을 일반적으로 두 가지 작업으로 분할할 수 있다. 하나는 구축할 시스템 내의 정보를 그룹 집합으로 묶는 작업이다. 이 작업은 일반적으로 기저 객체 집합을 식별하는 작업이다. 기저 객체 집합에 관한 정보가 데이터베이스에 영속화될 것이다. 다른 하나는 정보 그룹 집합 또는 객체 집합 상호 간의 관련 집합을 결정하는 작업이다. 후자의 작업은 객체 데이터베이스를 채용하는 경우에는 불필요하다.

데이터를 트리 구조로 구조화하는 경우에는, 필연적으로 계층형 데이터 모델로 데이터를 구성하게 될 것이다. 계층형 데이터 모델에 의한 데이터 구성은 부모-자식 (has-a, is-a) 관련 집합이다. 객체 데이터베이스에서는 객체 클래스 인스턴스 간에 단순하게 일대다 관련을 사용한다. 객체 데이터베이스에서는 또한, 객체 클래스 간에 계층적인 관련 개념을 도입하고 있다. 이 객체 클래스 간의 계층적인 관련 개념은 상속이라는 용어로 불린다. 상속 관련에서는 계층 구조의 상위 클래스를 기저 클래스라고 하며, 하위 클래스를 파생 클래스라고 한다.

3. 데이터베이스 설계 단계

데이터베이스 설계는 일반적으로 데이터베이스 설계자가 수행하는 여러 작업으로 이루어진다. 모든 작업이 반드시 필요한 것은 아니지만, 대부분의 경우 필수적인 작업은 다음과 같다.


  • 데이터베이스 내에 영속화해야 할 데이터를 결정한다.
  • 데이터 요소 간의 관련 집합을 결정한다.
  • 결정된 관련 집합을 기반으로 데이터에 논리 구조를 씌운다.


관계형 모델에서 데이터베이스 설계는 보통 두 가지 작업으로 나뉜다. 하나는 구축할 시스템 내의 정보를 그룹으로 묶는 작업으로, 기저 객체를 식별하는 것이다. 다른 하나는 정보 그룹 또는 객체 집합 간의 관련을 결정하는 작업이다. 객체 데이터베이스에서는 이 작업이 불필요하다.

데이터를 트리 구조로 구조화하면 계층형 데이터 모델로 데이터를 구성하게 된다. 계층형 데이터 모델은 부모-자식 (has-a, is-a) 관계를 사용한다. 객체 데이터베이스에서는 객체 클래스의 인스턴스 간에 일대다 관계를 사용하고, 객체 클래스 간 계층적 관계 (상속)도 도입한다. 상속 관계에서 상위 클래스는 기저 클래스, 하위 클래스는 파생 클래스라고 한다.[2]

3. 1. 개념적 설계

요구사항 분석 과정에서 데이터베이스 설계자는 도메인 지식을 가진 사람들로부터 필요한 정보를 파악해야 한다. 이들은 저장해야 할 개별 데이터 요소에 대한 관점을 가지기 어려워 시스템 요구 사항을 명확하게 표현하지 못하는 경우가 많기 때문이다. 따라서 데이터베이스 설계자는 이들로부터 필요한 정보를 이끌어내는 기술이 필요하다. 저장될 데이터는 요구 사항 명세서로 결정될 수 있으며[2], 수집된 정보는 다이어그램이나 개념 스키마로 형식화될 수 있다.

데이터베이스 설계자는 데이터베이스에 영구적으로 저장할 데이터를 식별한 후, 데이터 간의 종속 관계를 식별해야 한다. 예를 들어 이름과 주소 목록에서, 주소가 다르면 그 주소와 관련된 이름도 달라지기 때문에 이름은 주소에 종속된다.

3. 1. 1. 개체-관계 모델 (ER 모델)



개체-관계 모델(ER) 다이어그램은 가장 흔한 유형의 개념 스키마 중 하나이다.

ER 다이어그램에서 속성은 일반적으로 속성 이름이 적힌 타원형으로 표현되며, 해당 속성을 포함하는 개체 또는 관계에 연결된다.

ER 모델은 정보 시스템 설계에 일반적으로 사용된다. 예를 들어 개념 구조 설계 단계에서 정보 요구 사항 및/또는 데이터베이스에 저장할 정보 유형을 설명하는 데 사용된다.[3]

  • 백만선도
  • ERD(ERD: Entity-Relationship Diagram, 실체 관계 다이어그램)
  • IDEF1X
  • UML(UML: Unified Modeling Language, 통합 모델링 언어)

3. 2. 논리적 설계

정보 조각 간의 관계와 종속성이 결정되면, 데이터를 데이터베이스 관리 시스템에서 지원하는 저장 객체로 매핑할 수 있는 논리적 구조로 정렬할 수 있다. 관계형 데이터베이스의 경우 저장 객체는 행과 열로 데이터를 저장하는 테이블이다. 객체 지향 데이터베이스에서 저장 객체는 데이터를 관리하고 접근하는 데 사용되는 객체 지향 프로그래밍 언어의 객체에 직접 대응한다. 관계는 관련된 객체 클래스의 속성이나 객체 클래스에서 작동하는 메서드로 정의될 수 있다.

일반적으로 단일 객체(실제 또는 추상)에 종속된 관련 데이터의 각 세트는 테이블에 배치된다. 이러한 종속 객체 간의 관계는 다양한 객체 간의 링크로 저장된다.

각 테이블은 논리적 객체 또는 하나 이상의 논리적 객체의 인스턴스를 결합하는 관계의 구현을 나타낼 수 있다. 테이블 간의 관계는 자식 테이블을 부모와 연결하는 링크로 저장될 수 있다. 복잡한 논리적 관계 자체가 테이블이므로, 여러 부모에 대한 링크를 가질 수 있다.

데이터를 트리 구조로 구조화하면, 필연적으로 계층형 데이터 모델로 데이터를 구성하게 된다. 계층형 데이터 모델은 부모-자식 (has-a, is-a) 관계의 집합이다. 객체 데이터베이스에서는 객체 클래스의 인스턴스 간에 일대다 관계를 사용한다. 또한 객체 클래스 간 계층적 관계 개념( 상속)을 도입한다. 상속 관계에서 상위 클래스는 기저 클래스, 하위 클래스는 파생 클래스라고 한다.

영속화 대상 정보에 대한 종속 관계가 식별되면, 데이터를 논리적으로 구조화할 수 있다. 데이터의 논리적 구조는 데이터베이스 관리 시스템(DBMS)에서 지원하는 기억 영역 객체에 대응될 수 있다.

관계형 데이터베이스에서 기억 영역 객체는 기본 관계(표, 테이블)이다. 관계는 튜플(행)과 속성(열)에 데이터를 저장한다. 각 관계(표)는 논리적 객체 또는 하나 이상의 논리적 객체와 이들을 연결하는 관련의 구현을 나타낸다. 논리적 객체 간의 관련은 자식-부모 논리적 객체를 연결하는 관계로 저장된다. 복잡한 논리적 관련은 그 자체가 관계이며, 여러 부모 논리적 객체의 관계군에 대한 참조를 가질 수 있다.

객체 지향 데이터베이스에서 기억 영역 객체는 객체 지향 프로그래밍 언어의 객체에 직접 대응한다. 객체 지향 프로그래밍 언어는 데이터를 관리하고 접근하는 응용 소프트웨어를 기술하는 데 사용된다. 관련은 객체 클래스의 속성으로 정의되거나, 객체 클래스에서 조작을 수행하는 메서드로 정의된다.

3. 3. 물리적 설계

데이터베이스의 물리적 설계는 저장 매체에 데이터베이스의 물리적 구성을 명시하는 것이다. 여기에는 데이터 요소 및 데이터 유형에 대한 자세한 사양이 포함된다. 이 단계에서는 인덱싱 옵션과 데이터베이스 관리 시스템(DBMS) 데이터 사전에 있는 기타 매개변수를 지정한다. 이는 시스템의 모듈과 데이터베이스의 하드웨어 및 소프트웨어 사양을 포함하는 시스템의 상세 설계이다.

물리 계층에서 다루는 몇 가지 측면은 다음과 같다.

  • 보안 - 최종 사용자 및 관리자 보안.
  • 성능 - 주로 읽기/업데이트/삭제 쿼리에 대한 인덱싱, 삽입 쿼리에 대한 데이터 형식 선택을 통해 처리된다.
  • 복제 - 어떤 데이터 조각이 다른 데이터베이스로 복사되고 얼마나 자주 복사되는지, 다중 마스터가 있는지 아니면 단일 마스터가 있는지 등을 정의한다.
  • 고가용성 - 구성이 액티브-패시브인지 액티브-액티브인지, 토폴로지, 조정 방식, 신뢰성 목표 등을 모두 정의해야 한다.
  • 파티션 - 데이터베이스가 분산된 경우 단일 엔티티에 대해 데이터가 데이터베이스의 모든 파티션에 어떻게 분산되고 파티션 오류가 어떻게 고려되는지를 다룬다.
  • 백업 및 복원 방식.


응용 프로그램 수준에서 물리적 설계의 다른 측면에는 저장 프로시저 또는 구체화된 쿼리 뷰, OLAP 큐브 등을 정의해야 할 필요성이 포함될 수 있다.

물리적 설계에서는 기억 장치 상의 데이터베이스의 물리적인 설정을 지정한다. 이 설정에는 데이터베이스 관리 시스템(DBMS)의 데이터 사전에 보관되는 다음의 상세 사양이 포함된다.

  • 데이터 요소
  • 데이터 타입
  • 인덱스 설정 옵션
  • 기타 파라미터


시스템의 상세 설계에는 다음이 포함된다.

4. 데이터베이스 정규화

관계형 데이터베이스 설계에서 '''정규화'''는 데이터베이스 구조가 일반적인 쿼리에 적합하고, 데이터 무결성 손실로 이어질 수 있는 삽입, 업데이트, 삭제 이상과 같은 바람직하지 않은 특성이 없는지 확인하는 체계적인 방법이다.

데이터베이스 설계 표준 지침은 설계자가 완전히 정규화된 설계를 만들어야 한다는 것이다. 선택적 비정규화는 컴퓨터 성능상의 이유로 수행될 수 있다. 정규화는 저장 공간과 성능의 상충 관계를 갖는다. 설계가 더 정규화될수록 데이터 중복이 줄어들어 저장 공간이 덜 필요하지만, 일반적인 데이터 검색 패턴은 복잡한 조인, 병합 및 정렬이 필요할 수 있으며, 이는 더 많은 데이터 읽기 및 계산 주기를 소모한다.

문서 데이터베이스는 다른 접근 방식을 취한다. 일반적으로 이러한 데이터베이스에 저장된 문서는 둘 이상의 정규화된 데이터 단위와 단위 간의 관계를 포함한다. 모든 데이터 단위와 관계가 함께 검색되는 경우가 많다면, 이 접근 방식은 검색 횟수를 최적화한다. 또한 데이터 일관성이 자체적으로 유지되는 명확하게 식별 가능한 데이터 단위가 있기 때문에 데이터 복제 방식도 단순화된다. 이러한 데이터베이스에서 단일 문서를 읽고 쓰는 데 단일 트랜잭션이 필요하다는 점은 마이크로서비스 아키텍처에서 중요한 고려 사항이 될 수 있다. 이러한 상황에서는 종종 문서의 일부가 API를 통해 다른 서비스에서 검색되어 효율성을 위해 로컬에 저장된다. 데이터 단위가 서비스 간에 분할된다면, 서비스 소비자를 지원하기 위한 읽기(또는 쓰기)는 둘 이상의 서비스 호출이 필요할 수 있으며, 이는 여러 트랜잭션을 관리해야 할 수 있어 선호되지 않을 수 있다.

4. 1. 정규화 단계

관계형 데이터베이스 설계에서 '''정규화'''는 데이터베이스 구조가 일반적인 쿼리에 적합하고, 데이터 무결성 손실로 이어질 수 있는 삽입, 업데이트, 삭제 이상과 같은 바람직하지 않은 특성이 없는지 확인하는 체계적인 방법이다.

데이터베이스 설계의 표준 지침은 설계자가 완전히 정규화된 설계를 만들어야 한다는 것이다. 선택적 비정규화는 컴퓨터 성능상의 이유로 수행될 수 있다. 정규화는 저장 공간과 성능의 상충 관계를 갖는다. 설계가 더 정규화될수록 데이터 중복이 줄어들어 저장 공간이 덜 필요하지만, 일반적인 데이터 검색 패턴은 복잡한 조인, 병합 및 정렬이 필요할 수 있으며, 이는 더 많은 데이터 읽기 및 계산 주기를 소모한다.

정규화는 1NF, 2NF, 3NF, 보이스-코드 NF (3.5NF), 4NF, 5NF 및 6NF인 정규형으로 구성된다.[1]

데이터 웨어하우스 설계에 대한 차원 모델링 접근 방식과 같은 일부 모델링 분야에서는 비정규화된 설계, 즉 3NF를 크게 준수하지 않는 설계를 명시적으로 권장한다.[1]

4. 2. 비정규화

관계형 데이터베이스 설계에서 선택적 비정규화는 컴퓨터 성능상의 이유로 수행될 수 있다. 데이터베이스 설계가 더 정규화될수록 데이터 중복은 줄어들지만, 일반적인 데이터 검색에는 복잡한 조인, 병합 및 정렬이 필요해져 더 많은 데이터 읽기와 계산을 소모하게 된다. 데이터 웨어하우스 설계에 대한 차원 모델링 접근 방식과 같은 일부 모델링 분야에서는 비정규화된 설계, 즉 3NF를 크게 준수하지 않는 설계를 명시적으로 권장한다.

문서 데이터베이스는 다른 접근 방식을 취하는데, 저장된 문서는 둘 이상의 정규화된 데이터 단위와 그 관계를 포함한다. 모든 데이터 단위와 관계가 함께 검색되는 경우, 이 접근 방식은 검색 횟수를 최적화한다. 또한 데이터 복제 방식도 단순화되며, 단일 문서를 읽고 쓰는 데 단일 트랜잭션이 필요하다는 점은 마이크로서비스 아키텍처에서 중요한 고려 사항이 될 수 있다. 이러한 상황에서 문서의 일부가 API를 통해 다른 서비스에서 검색되어 로컬에 저장되기도 하는데, 데이터 단위가 서비스 간에 분할되면 여러 서비스 호출 및 트랜잭션을 관리해야 할 수 있어 선호되지 않을 수 있다.

5. 데이터베이스 설계 원칙

크리스 데이트 등은 관계형 데이터베이스 설계의 기반이 되는 몇 가지 원리를 제창했다.


  • 직교 설계 원리(Principle of Orthogonal Design, POOD): 관계형 데이터베이스에서는 동일한 사실을 표현하기 위해 여러 관계가 정의되어서는 안 되며, 단 하나의 관계로 정의해야 한다.[5] 데이터베이스 정규화의 맥락에서, 직교 설계 원리는 제어할 수 없을 정도로 중복된 기억 장치 및 데이터베이스상의 모호한 표현을 배제한다.
  • 정규화 원리(Principle of Full Normalization, POFN): 관계형 데이터베이스 설계에서 정규화 원리는 다음과 같다.[6]
  • 제5정규형 (5NF)이 아닌 관계는 제5정규형의 투영의 집합으로 분해(정규화)된다.
  • 분해는 무손실이다.
  • 분해는 함수 종속성, 다치 종속성, 결합 종속성을 유지한다.
  • 복원 프로세스에서는 모든 투영이 필요하다.
  • 분해는 모든 관계가 제5정규형이 된 시점에서 종료된다.

5. 1. 직교 설계 원리 (POOD)

크리스 데이트 등은 관계형 데이터베이스 설계의 기반이 되는 몇 가지 원리를 제창했다.

직교 설계 원리(Principle of Orthogonal Design, POOD)는 관계형 데이터베이스에서 동일한 사실을 표현하기 위해 여러 관계가 정의되어서는 안 되며, 단 하나의 관계로 정의해야 한다는 원리이다.[5] 데이터베이스 정규화의 맥락에서, 직교 설계 원리는 제어할 수 없을 정도로 중복된 기억 장치 및 데이터베이스상의 모호한 표현을 배제한다.

5. 2. 정규화 원리 (POFN)

관계형 데이터베이스 설계에서 정규화 원리(POFN)는 다음과 같다.[6]

  • 제5정규형 (5NF)이 아닌 관계는 제5정규형의 투영의 집합으로 분해(정규화)된다.
  • 분해는 무손실이다.
  • 분해는 함수 종속성, 다치 종속성, 결합 종속성을 유지한다.
  • 복원 프로세스에서는 모든 투영이 필요하다.
  • 분해는 모든 관계가 제5정규형이 된 시점에서 종료된다.

6. 데이터베이스 설계 도구

데이터베이스 설계를 지원하는 다양한 CASE 도구들이 있다. 대표적인 CASE 도구에는 나비캣 데이터 모델러, CA ERwin Data Modeler (ERwin), ER/Studio, DBDesigner, EREndia 등이 있다.

6. 1. ERwin, ER/Studio 등


  • 나비캣 데이터 모델러(Navicat Data Modeler)
  • CA ERwin Data Modeler (ERwin)
  • ER/Studio
  • DBDesigner
  • EREndia

7. 데이터베이스 설계와 한국 사회

데이터베이스 설계는 한국 사회의 다양한 분야에 영향을 미치며, 여러 쟁점을 야기하고 있다.

참조

[1] 서적 Database Design: Know it all Morgan Kaufmann Publishers 2009
[2] 서적 Database Modeling & Design: Logical Design Morgan Kaufmann Press 2005
[3] 논문 Iterative Process for Generating ER Diagram from Unrestricted Requirements SCITEPRESS – Science and Technology Publications 2018
[4] 웹사이트 Database design basics https://support.offi[...] 2010-05-01
[5] 웹사이트 Database Debunkings: The Principle of Orthogonal Design, Part I http://www.dbdebunk.[...]
[6] 문서 2006



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com