본문내용
1. 데이터 모델링의 이해
1.1. 데이터 모델의 이해
데이터 모델의 이해는 정보시스템을 구축하기 위한 데이터 관점의 업무 분석 기법이다. 현실세계의 데이터에 대해 약속된 표기법에 의해 표현하는 과정으로, 데이터베이스를 구축하기 위한 분석과 설계의 과정이라고 할 수 있다.
데이터 모델링의 주요 특징은 추상화, 단순화, 정확화이다. 현실세계를 일정한 형식에 맞추어 표현하며, 시스템 구현을 포함한 업무 분석 및 업무 형상화를 수행한다. 데이터 모델링은 통합관점의 개념스키마를 만드는 과정이며, 사용자의 응용프로그램과 물리적 DB를 분리하기 위한 목적이 있다. 사용자 관점, 사용자 그룹이 관심 갖는 외부스키마 부분을 나타내고, 그 외는 은폐한다. 응용 프로그램이 접근하는 DB는 통합 관점의 스키마 구조이며, DB에 저장되는 데이터와 관계를 표현한다. 물리적 관점의 물리적 데이터 모델도 활용한다.
데이터 모델링은 정보시스템 구축의 대상이 되는 업무 내용을 정확하게 분석하고, 분석된 모델을 가지고 실제 DB를 생성하여 데이터를 관리하는 것이 목적이다. 단순히 DB를 구축하기 위한 용도로만 쓰이는 것이 아니라, 데이터 모델링 자체로서 업무를 설명하고 분석하는데 의미가 있다.
데이터 모델링 시 주의할 점으로는 중복, 비유연성, 비일관성이 있다. 여러 장소에 같은 정보를 저장하는 중복, 데이터의 정의와 사용이 프로세스와 분리되는 비유연성, 데이터 간 상호 연관 관계에 대해 명확히 정의하지 않는 비일관성이 문제가 될 수 있다.
데이터 모델링에는 개념적, 논리적, 물리적 데이터 모델링이 있다. 개념적 모델링은 업무중심적이고 포괄적인 수준의 모델링으로 전사적 데이터 모델링이나 EA 수립 시 많이 활용된다. 논리적 모델링은 키, 속성, 관계 등을 정확히 표현하며 재사용성이 높다. 물리적 모델링은 실제 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려하여 설계한다.
데이터베이스 스키마 구조는 외부스키마, 개념스키마, 내부스키마의 3단계로 구분된다. 외부스키마는 개개 사용자가 보는 개인적 DB 스키마이며, 개념스키마는 모든 사용자 관점을 통합한 전체 DB 스키마, 내부스키마는 물리적 장치에서 데이터가 실제적 저장되는 구조를 말한다. 이러한 3단계 구조를 통해 논리적 독립성과 물리적 독립성을 확보할 수 있다.
데이터 모델링의 유의점을 고려하여 정확하고 일관성 있게 모델링을 수행하는 것이 중요하다. 데이터 모델링의 파급효과가 크므로 이 과정이 올바르게 진행되어야 한다.
1.2. 엔티티
엔티티는 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것으로, 사람, 장소, 물건, 사건, 개념 등의 명사에 해당한다. 엔티티는 여러 가지 특징을 가지고 있는데, 첫째 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다. 둘째 유일한 식별자에 의해 식별 가능해야 한다. 셋째 두 개 이상의 인스턴스의 집합이어야 한다. 넷째 업무 프로세스에 의해 이용되어야 한다. 다섯째 반드시 속성이 있어야 한다. 마지막으로 다른 엔티티와 최소 한 개 이상의 관계가 있어야 한다.
엔티티는 유무형에 따라 유형엔티티, 개념엔티티, 사건엔티티로 분류될 수 있다. 유형엔티티는 물리적 형태를 가지고 있고, 개념엔티티는 개념적 정보를 나타내며, 사건엔티티는 업무 수행 시 발생하는 엔티티이다. 또한 엔티티는 발생시점에 따라 기본엔티티, 중심엔티티, 행위엔티티로 구분된다. 기본엔티티는 해당 업무에 원래 존재하는 정보이고, 중심엔티티는 기본엔티티로부터 발생하여 다른 엔티티와의 관계로 많은 행위 엔티티를 생성한다. 행위엔티티는 두 개 이상의 부모 엔티티로부터 발생하며 자주 변동된다.
엔티티를 명명할 때는 실제 업무에서 사용하는 용어를 사용하고, 약어 사용을 금지하며, 단수 명사를 사용해야 한다. 또한 모든 엔티티를 통틀어 유일하게 이름을 부여하고, 생성 의미에 맞게 이름을 부여해야 한다.
엔티티 관계 모델링(ERD)에서는 엔티티, 관계, 속성으로 구성된다. ERD 작성 순서는 ① 엔티티 그리기, ② 엔티티 배치, ③ 엔티티간 관계 설정, ④ 관계명 기술, ⑤ 관계의 참여도 기술, ⑥ 관계의 필수여부 기술 순으로 진행된다.엔티티는 데이터 모델링의 핵심 요소로, 실체, 객체, 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합이다. 엔티티는 다양한 특징을 가지고 있으며, 이를 통해 엔티티의 성격과 역할을 파악할 수 있다.
첫째, 엔티티는 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다. 둘째, 엔티티는 유일한 식별자에 의해 식별 가능해야 한다. 셋째, 엔티티는 두 개 이상의 인스턴스의 집합이어야 한다. 넷째, 엔티티는 업무 프로세스에 의해 이용되어야 한다. 다섯째, 엔티티는 반드시 속성이 있어야 한다. 마지막으로, 엔티티는 다른 엔티티와 최소 한 개 이상의 관계가 있어야 한다.
엔티티는 유무형에 따라 유형엔티티, 개념엔티티, 사건엔티티로 분류된다. 유형엔티티는 물리적 형태를 가지고 있고, 개념엔티티는 개념적 정보를 나타내며, 사건엔티티는 업무 수행 시 발생하는 엔티티이다. 또한 엔티티는 발생시점에 따라 기본엔티티, 중심엔티티, 행위엔티티로 구분된다. 기본엔티티는 해당 업무에 원래 존재하는 정보이고, 중심엔티티는 기본엔티티로부터 발생하여 다른 엔티티와의 관계로 많은 행위 엔티티를 생성한다. 행위엔티티는 두 개 이상의 부모 엔티티로부터 발생하며 자주 변동된다.
엔티티 명명 시에는 실제 업무에서 사용하는 용어를 사용해야 하며, 약어 사용은 금지된다. 또한 단수 명사를 사용하고, 모든 엔티티를 통틀어 유일한 이름을 부여해야 한다. 생성 의미에 맞게 이름을 부여하는 것도 중요하다.
엔티티-관계 모델링(ERD)에서는 엔티티, 관계, 속성으로 구성된다. ERD 작성 순서는 ① 엔티티 그리기, ② 엔티티 배치, ③ 엔티티간 관계 설정, ④ 관계명 기술, ⑤ 관계의 참여도 기술, ⑥ 관계의 필수여부 기술 순으로 진행된다.
엔티티는 데이터 모델링의 핵심 요소로, 업무 분석 및 데이터베이스 설계에 있어 매우 중요한 역할을 한다. 엔티티의 특성과 분류, 명명 기준, ERD 작성 방법 등을 이해하는 것은 데이터 모델링 역량을 높이는 데 필수적이다.
1.3. 속성
속성은 업무에서 필요로 하는 인스턴스에서 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위이다. 한 개의 엔티티는 두 개 이상의 속성을 가지며, 한 개의 속성은 한 개의 속성값을 가진다.
속성의 특징은 다음과 같다. 첫째, 해당 업무에 필요하고 관리하고자 하는 정보여야 한다. 둘째, 정규화 이론에 근간하여 정해진 주식별자에 함수적 종속성을 가져야 한다. 셋째, 하나의 속성에 다중 값을 가질 경우 별도의 엔티티로 분리해야 한다.
속성은 특성에 따라 기본속성, 설계속성, 파생속성으로 분류된다. 기본속성은 업무로부터 추출한 모든 일반적인 속성을 의미한다. 설계속성은 업무를 규칙화하기 위해 새로 만들거나 변형, 정의하는 속성이다. 파생속성은 다른 속성에 영향을 받아 발생하는 속성으로, 빠른 성능을 낼 수 있도록 원래 속성의 값을 계산하여 생성한다.
속성의 명명 기준은 다음과 같다. 첫째, 해당 업무에서 사용하는 이름을 부여한다. 둘째, 서술식 속성명은 사용하지 않는다. 셋째, 약어 사용을 금지한다. 넷째, 전체 데이터 모델에서 유일성을 확보하도록 구체적으로 명명한다.
이처럼 속성은 데이터 모델링에서 매우 중요한 요소이며, 업무 요구사항을 충실히 반영하고 정규화 이론을 바탕으로 설계되어야 한다.
1.4. 관계
관계는 엔티티의 인스턴스 사이의 논리적인 연관성으로서, 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태를 의미한다. 관계는 엔티티 간의 페어링의 집합으로 구성된다. 예를 들어 "강사는 학생을 가르친다."라는 관계가 성립할 수 있다.
관계는 관계차수와 관계선택사양으로 그 특성이 정의된다. 관계차수는 1:1, 1:M, M:N의 형태로 표현되며, 이는 각 엔티티에 속한 인스턴스의 수량 관계를 의미한다. 관계선택사양은 필수관계와 선택관계로 구분되는데, 필수관계는 모든 참여자가 반드시 타 엔티티와 연결되어야 하는 경우이고, 선택관계는 NULL 값이 허용되는 경우이다.
관계 분석 시 고려해야 할 사항은 다음과 같다. 첫째, 두 개의 엔티티 사이에 관심 있는 연관 규칙이 존재하는지, 둘째, 두 개의 엔티티 사이에 정보의 조합이 발생하는지, 셋째, 업무기술서나 장표에 관계연결에 대한 규칙이 서술되어 있는지, 넷째, 업무기술서나 장표에 관계연결을 가능하게 하는 동사가 있는지 등이다.
관계는 식별자 관계와 비식별자 관계로 구분된다. 식별자 관계는 자식 엔티티의 주식별자가 부모 엔티티의 주식별자를 상속받는 관계로, 강한 연결 관계를 표현한다. 반면 비식별자 관계는 부모 엔티티의 속성을 자식 엔티티의 일반 속성으로 사용하는 관계로, 약한 연결 관계를 표현한다. 비식별자 관계는 부모 엔티티 없이 자식 엔티티가 생성될 수 있거나, 부모와 자식의 생명주기가 다른 경우, 여러 엔티티가 통합되어 표현된 경우, 자식 엔티티에 별도의 주식별자 생성이 유리한 경우, SQL 문장이 복잡해지는 것을 방지하기 위해 사용된다.""
1.5. 식별자
식별자는 엔티티를 구분짓는 논리적인 이름으로, 엔티티를 대표하는 속성이다. 식별자는 엔티티 내에서 인스턴스를 유일하게 구분할 수 있는 구분자이다.
주식별자는 엔티티 내의 모든 인스턴스를 유일하게 구분할 수 있어야 하며, 그 수는 유일성을 만족하는 최소의 수가 되어야 한다. 또한 주식별자로 지정된 후에는 그 값이 변하지 않아야 하며, 반드시 값이 존재해야 한다.
식별자의 분류는 대표성 여부에 따라 주식별자와 보조식별자로 나뉜다. 주식별자는 엔티티 내에서 각 인스턴스를 구분할 수 있는 구분자이며 타 엔티티와의 참조 관계를 연결할 수 있다. 보조식별자는 구분자이지만 대표성을 가지지 못해 참조 관계 연결이 불가능하다.
식별자의 생성 여부에 따라 내부식별자와 외부식별자로 구분되며, 속성의 수에 따라 단일식별자와 복합식별자로 나뉜다. 또한 업무적인 맥락에 따라 본질식별자와 인조식별자로 구분할 수 있다.
주식별자를 도출하기 위해서는 해당 업무에서 자주 이용되는 속성, 명칭이나 내역과 같이 이름으로 기술되는 것은 피하며, 복합으로 구성할 경우 너무 많은 속성이 포함되지 않도록 해야 한다.
식별자와 비식별자 관계에서는 식별자 관계가 자식 테이블의 주식별자에 부모의 주식별자를 상속하는 강한 연결 관계로 표현되며, 비식별자 관계는 부모 속성을 자식의 일반 속성으로 사용하는 약한 연결 관계로 표현된다.
이처럼 식별자는 데이터 모델링에서 매우 중요한 개념으로, 엔티티 내 인스턴스를 유일하게 구분하고 다른 엔티티와의 참조 관계를 연결하는 핵심적인 역할을 한다.
2. 데이터 모델과 성능
2.1. 성능 데이터 모델링의 개요
성능 데이터 모델링이란 데이터베이스 성능 향상을 목적으로 설계 단계의 데이터 모델링 때부터 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것이다. 데이터 구조에 의한 성능 저하, 대용량 데이터로 인한 성능 저하, 인덱스 특성 미고려로 인한 성능 ...