3. 데이터베이스

 3.3 논리 데이터베이스 설계

  3.3.3 데이터모델링 및 설계


1. 데이터 모델링 과정

 

1.1 데이터모델링과 데이터베이스 설계 개념

 

1. 데이터베이스 설계

한 조직체의 운영과 목적을 지원하기 위해 데이터베이스를 생성하는 과정이다.

데이터모델링을 핵심 기법으로 사용하여 사용자 요구사항을 분석하고, 사용자가 요구하는 정보를 제공할 수 있도록 데이터베이스 구조와 접근방법 등을 정의한다.

 

2. 데이터 모델링

사용자 요구사항을 분석하고 필요한 데이터 요소를 도출하여 적절한 데이터 구조를 정의하는데 데이터베이스 설계 과정의 핵심 기법

 

2.2 데이터베이스 설계 과정

 

1. 바람직한 데이터베이스 설계 과정

시간의 흐름에 따른 데이터의 모든 측면을 나타내야 함

데이터 항목의 중복을 최소화해야 함

데이터베이스에 대한 효율적인 접근을 제공해야 함

데이터베이스의 무결성을 제공해야 함

데이터 구조를 이해하기 쉬워야 함

 

2. 데이터베이스 설계 순서

데이터베이스 설계는 데이터베이스를 사용하는 모든 사용자와 응용프로그램과 관련된 요구사항을 분석하여 저장할 데이터를 도출하고 도출된 데이터와 정보를 컴퓨터로 처리할 수 있도록 개념적 설계, 논리적 설계, 정규화, 물리적 설계, 데이터베이스 구축 및 데이터 적재 과정으로 구성된다.

개념적 설계는 목표 DBMS에 종속되지 않으며, 논리적 설계는 목표 DBMS가 채택한 논리모델에 따라 설계가 진행되어야 하며, 물리적 설계는 목표 DBMS가 지원하는 저장 구조에 맞게 설계를 진행해야 한다.

 

2. 개념 데이터 모델링

 

2.1 ER스키마 작성 순서

숙련된 설계자는 모델링 과정에서 개체타입과 속성, 식별자를 한번에 도출할 수도 있지만 일반적으로 다음과 같은 절차를 따라 개념 모델링을 수행한다.

요구사항 분석 -> 개체 타입 식별 -> 속성 식별 -> 식별자식별  -> 관계타입/관계속성식별 -> 관계 카디널리티 식별  ->ER스키마 작성/검토

 

2.2 개체타입 정의

 

1. 개체

업무의 관심 대상이 되는 정보를 갖고 있거나, 그에 대한 정보를 관리할 필요가 있는 유형, 무형의 사물을 의미한다.

현실세계를 관찰하여 컴퓨터로 관리해야 할 정보, 혹은 데이터를 개체 타입 또는 관계 타입으로 도출한다.

 

2. 개체 도출 방법

요구사항 분석 대상 문서에서 명사를 찾아 표시한다.

표시한 명사에 대해 독립적으로 존재하는 개체인지 개체의 속성인지를 구별한다.

개체 후보 들 중에서 중복된 명사나 유사한 의미의 명사는 하나로 통일한다.

개체 후보들 중에서 데이터베이스로 관리할 필요가 없는 것은 제외한다.

개체 정의서를 작성한다.

 

3. 식별자 정의

주식별자는 개체타입에 소속된 인스턴스들을 구분하는 기준이 되는 속성을 말한다.

주식별자는 현재 시점에서 뿐만 아니라 미래의 어떤시점에서도 중복된 값이 존재하지 않고, 최소한의 속성 집합으로도 유일 성을 보장할 수 있도록 구성한다.

 

4. 관계 정의

 

1. 관계 도출

두개 혹은 그 이상의 개체들 간의 의미있는 연결이나 개체와 개체가 존재의 형태나 행위로 서로에게 영향을 주는 형태 및 규칙을 도출한다. 일반적으로 요구사항에 나타난 동사를 기반으로 관계 후보를 도출한다.

 

2. 관계의 카디널리티 정의

관계에 참여하는 두 개의 개체가 관계에 참여하는 인스턴스의 수를 표현한다.

 

3. 관계의 참여도 정의

관계가 있는 두 개체의 인스턴스들이 항상 관계에 참여하는지 , 아니면 경우에 따라 관계에 참여 하는지를 정의한다.

 

3. 논리적 데이터 모델링

 

3.1 개념 vs 논리 스키마 사상

개념설계 단계에서 작성한 ER 스키마를 관계 데이터 모델의 릴레이션으로 사상한다.

ER 스키마의 개체 타입과 관계 타입은 관계형 데이터베이스의 릴레이션으로 사상된다.

 

3.2 개념 vs 논리 스키마 사상 규칙

단일 값 속성을 갖는 강한 개체 타입은 릴레이션과 해당 릴레이션의 속성으로 변환한다.

약한 개체 타입은 릴레이션으로 변환하고 소유 개체 타입의 기본키를 새로 생성한 릴레이션의 외래키로 포함 시킨 후 외래키와 부분키의 조합으로 키본키를 정의한다.

 

4. 데이터베이스 정규화

 

4.1 정규화 개념

정규화는 관계형 데이터베이스 설계 시 중복을 최소화하도록 데이터를 구조화하는 프로세스이다. 

데이터베이스 정규화의 목표는 이상이 있는 관계를 재구성하여 작고 잘 조직된 관꼐를 생성하는 것에 있다.

제대로 조직되지 않은 테이블들과 관계들을 작고 잘 조직된 테이블과 관계들로 나누는 것을 포함한다.

 

4.2 정규화의 목적

하나의 테이블에서의 데이터의 삽입, 삭제, 변경이 정의된 관계들로 인하여 데이터베이스의 나머지 부분들로 전파되게 하는 것이다.

어떤 관계라도 데이터베이스 내에서 표현이 가능하도록 만드는 것이다.

관계에서 바람직하지 않은 삽입, 삭제, 갱신 이상이 발생하지 않도록 한다.

새로운 형태의 데이터가 삽입될 때 관곌르 재구성할 필요성을 줄인다.

보다 간단 한 관계 연산에 기초하여 검색을 보다 효율적으로 한다.

 

4.3 이상현상의 개념

정규화를 거치지 않으면 데이터베이스의 데이터들이 불필요하게 중복되어 릴레이션 조작 시 문제가 발생하는데 이것을 이상 현상이라고 한다.

 

4.4 정규화의 원칙

낮은 차수의 정규화를 만족한 상태로 높은 차수의 정규화를 진행한다.

 

4.5 제1정규형

릴레이션 R의 모든 속성 값이 원자값을 가지는 릴레이션을 말한다.

 

4.6 제2정규형

릴레이션 R이 제1정규형이고 기본키가 아닌 속성이 키본키에 완전함수 종속일 때 제2정규형이라고 한다.

 

4.7 제3정규형

릴레이션 R이 제2정규형이고 기본키가 아닌 속성이 키본키에 비이행적으로 종속할때 제3정규형이라고 한다.

 

4.8 BCNF 정규형

릴레이션 R에서 함수 종속성 x->y가 성립할때 모든 결정자 X가 후보키이면 BCNF 정규형이라고 한다.

 

4.9 제4정규형

릴레이션 R에서 MVD A -> B가 존재할 떄 R의 모든 애트리뷰트들이 A에 함수종속이면 R은 4정규형이다.

 

4.10 제5정규형

릴레이션 R에 존재하는 모든 조인 종속이 이 R의 후보키를 통해 성립되면 제5정규형이다.

 

'자격증 > 정보처리기사' 카테고리의 다른 글

정보처리기사 31일차  (0) 2021.02.10
정보처리기사 30일차  (0) 2021.02.08
정보처리기사 28일차  (0) 2021.02.06
정보처리기사 27일차  (0) 2021.02.05
정보처리기사 26일차  (0) 2021.02.05

+ Recent posts