본문 바로가기

자격증/정보처리기사 4과목

4-12강. 논리 데이터베이스 설계-데이터 모델링 및 설계(1)

과목4. 데이터베이스 구축, 12강. 논리 데이터베이스 설계-데이터 모델링 및 설계(1)

 

[ 목차 ]

1. 데이터베이스 설계

2. 데이터 모델링

3. 데이터베이스 설계 요건

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

5. 요구사항 분석

6. 개념적 설계

7. 논리적 설계

8. 물리적 설계(성능에 대해 고민하는 단계)

9. 데이터베이스 구축

10. 데이터 이행

11. 개념 데이터 모델링

12. 논리적 데이터 모델링

13. 1:1 관계 해결

14. 1:N 관계 해결

15. N:M 관계 해결

 

1. 데이터베이스 설계

1) 한 조직체의 운영과 목적을 지원하기 위해 DB를 생성하는 과정

2) 현실세계의 업무 프로세스를 컴퓨터 세계로 데이터베이스화 하기 위한 과정

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

4) 순서 : 요구조건 분석 - 개념적 설계 - 논리적 설계 - 물리적 설계 - 구현 - 운영 - 감시 및 개선

요구조건 분석 
1) 업무프로세스 분석 -> 요구명세서 작성

개념적 설계
1) 개체 타입과 이들 간의 관계 타입을 이용해 현실 세계를 개념적으로 표현
2) 1)을 통해 개체 관계도(E-R 다이어그램) 생성

논리적 설계
1) 목표 DBMS에 맞춰 논리적 모델(관계형, 객체지향형, 객체관계형, 계층형, 망형 모델)로 설계하며 정규화 실행

 

2. 데이터 모델링

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

 

3. 데이터베이스 설계 요건

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

2) 데이터 항목의 중복을 최소화

3) 데이터베이스에 대한 효율적 접근을 제공

4) 무결성을 제공

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

 

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

1) 요구사항 분석 - 개념적 설계 - 논리적 설계 - 물리적 설계 - 데이터베이스 구축

2) 개념적 설계(E-R다이어그램)는 목표 DBMS에 종속되지 않음

3) 논리적 설계는 목표 DBMS가 채택한 논리모델에 따라 설계가 진행

4) 물리적 설계는 목표 DBMS가 지원하는 저장 구조에 맞게 설계가 진행

 

5. 요구사항 분석

1) 요구사항 수집 : 저장대상, 제약조건, 처리에 대한 요구사항을 기존 문서 조사, 인터뷰, 설문을 통해 수집

2) 요구사항 분석 : 개체, 속성, 개체간 관계, 사용되는 주요 연산, 연산 시 접근하는 데이터 양 등을 분석

3) 요구조건 명세서가 도출

 

6. 개념적 설계

1) 조직에서 사용되는 정보 모델을 구축하고 높은 수준의 추상화 데이터 모델을 사용

2) 대표적 모델은 E-R모델

3) 개체 타입, 관계 타입, 속성등을 식별하고 속성의 도메인, 후보키, 기본키를 설정

4) 개념적 스키마를 정의하고 이를 ER 다이어그램으로 표현

5) DBMS에 독립적

6) 트랜잭션(작업) 모델링

7) ERD(ER다이어그램) 도출

 

7. 논리적 설계

1) 선택한 DMBS의 데이터 모델을 사용하여 논리적 스키마 생성

2) 개념 스키마를 평가하여 목표 DBMS에 맞게 논리 스키마로 정규화

3) ER 모델로 표현된 개념 스키마를 관계 DB 스키마로 변환

4) 스키마 정제(정규화)

5) 트랜잭션 인터페이스 설계

6) 논리 스키마 도출

 

8. 물리적 설계(성능에 대해 고민하는 단계)

1) 인덱스를 사용해 저장 구조와 접근 경로 등을 결정

2) 성능 기준 - 응답시간 : 질의와 갱신이 평균적 또는 피크 시간에 얼마나 오래 걸리는가?

3) 성능 기준 - 트랜잭션 처리율 : 1초당 얼마나 많은 트랜잭션이 평균적 또는 피크 시간에 처리되는가?

4) 성능 기준 : 전체 DB에 대한 보고서를 생성하는데 얼마나 오래 걸리는가

5) 트랜잭션 세부사항 설계

저장 레코드 양식의 설계 및 물리적 구조 데이터를 표현

설계 시 고려사항 : 응답시간, 저장곤간의 효율성, 트랜잭션의 처리량

어떤 인덱스를 만들 것인지 고려

성능 향상을 위한 개념 스키마의 변경 여부 검토

빈번한 질의와 트랜잭션들의 수행 속도를 높이기 위한 고려

접근 경로 설계

레코드 집중의 분석 및 설계

9. 데이터베이스 구축

1) DB 설계 결과물을 토대로 DDL(데이터 정의어)로 데이터베이스 객체들을 생성하는 과정

2) 데이터베이스 설계 도구를 이요할 경우 자동으로 특정 DBMS에 맞는 데이터베이스를 구축 가능

3) 응용 프로그램을 위한 트랜잭션 작성

 

10. 데이터 이행

1) 신규 데이터를 수집하고 도메인에 맞게 데이터를 변환하여 데이터베이스 테이블로 로딩하는 과정

2) 기존 데이터베이스에 저장된 데이터를 전환할 경우 데이터 전환 과정을 수행

 

11. 개념 데이터 모델링

1) ER 스키마 작성 순서

요구사항 분석 - 개체타입 식별 - 속성 식별 - 식별자 식별 -

관계타입/관계속성 식별 - 관계 카디널리티 식별 - ER스키마작성/검토

2) 개체

  1] 업무의 관심 대상이 되는 정보를 가졌거나 그에 대한 정보를 관리가 필요가 있는 유형으로 무형의 사물

  2] 현실세계를 관찰하여 컴퓨터로 관리할 정보, 데이터를 개체 타입or관계 타입으로 도출

3) 개체 도출 방법

  1] 요구사항 분석 대상 문서에서 명사를 찾아 표시

  2] 명사에 대해 독립적으로 존재하는 개체인지 개체의 속성인지 구별

  3] 개체 후보 중 중복된 명사나 유사한 의미의 명사는 하나로 통합

  4] 개체 후보 중 db로 관리할 필요 없는 것은 제외

  5] 개체 정의서 작성

4) 식별자

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

  2] 주식별자는 현재 뿐만 아니라 미래에서도 중복값이 존재하지 않고(유일성) 최소한의 속성(최소성)으로도 유일성을 보장할 수 있어야 함

  3] 마땅한 주식별자가 없는 경우 인위적 식별자를 정의

  4] 인위적 주식별자는 편하지만 중복값이 입력될 위험 존재

  5] 주식별자는 해당 개체를 대표하며 업무적으로 활용도가 높은 속성을 선택

  6] 주식별자는 not null

5) 관계

  1] 두개 혹은 그 이상의 개체들 간의 의미있는 연결이나 개체와 개체가 존재의 현태나 행위로 서로에게 영향을 주는 형태 및 규칙

  2] 요구사항에 나타난 동사를 기반으로 관계 후보를 도출

  3] 두 개체가 관계가 있음은 상호 공유하는 속성이 있다는 의미(기본키, 외래키)

  4] 두 개체 사이의 관계는 관점에 따라 관계 이름과 형태가 다름

6) 관계 카디널리티

  1] 관계에 참여하는 두개의 개체가 관계에 참여하는 인스턴스의 수

  2] 학생의 경우 수강과목에 1~n개의 카디널리티를 가지며 반대의 경우는 1개의 카디널리티를 보유

7) 관계 참여도

1) 관계가 있는 두 개체의 인스턴스들이 항상 관계에 참여하는지 그렇지 않은지에 따라 정의

2) 필수참여의 경우 1로 표기, 선택참여의 경우 O로 표기

 

12. 논리적 데이터 모델링

1) 개념 VS 논리 스키마 사상

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

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

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

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

4) 일대일 2진 관계는 관계에 참여하는 개체 타입을 한 개의 릴레이션으로 통합하거나 한 쪽 릴레이션의 기본키를 다른 쪽의 외래키로 정의

5) 일대다 2진 관계는 한쪽의 릴레이션의 기본키를 다른쪽의 릴레이션의 외래키로 정의

6) 다대다 2진 관계는 두개의 개체 릴레이션의 기본키들을 포함하는 새로운 관계 릴레이션을 생성하고 양쪽의 기본키는 새로운 관계 릴레이션의 외래키가 됨

7) 다중값 속성별도의 릴레이션을 생성하고 소속되어 있던 개체 릴레이션의 기본키를 외래키로 포함 

 

13. 1:1 관계 해결

1) 테이블의 기본키롤 다른 테이블의 외래키로 전이

2) 1:1 관계가 많을 경우 JOIN이 많아 성능이 저하되며 개체 통합 시 성능 향상 가능

3) 하지만 조회가 많이 않을 경우 통합하지 않더라도 성능 저하가 적음

 

14. 1:N 관계 해결

1) 테이블의 기본키롤 다른 테이블의 외래키로 전이

 

15. N:M 관계 해결

1) 두 테이블의 기본키를 외래키로 가지는 새로운 릴레이션 스키마를 생성