본문 바로가기
학교/데이터베이스시스템응용

1. 2장 데이터베이스 설계 (database design) (1)

by 움바둠바 2024. 9. 27.
728x90

데이터 베이스 설계는 어떻게 해야할까??...

(데이터 베이스 "시스템"을 설계하는게 아님 주의!)

 

데이터 베이스 설계 단계

총 6단계로 이루어진다.

 

1. 요구사항 분석 (Requirements Analysis)

2. 개념적 데이터 베이스 설계 (Conceptual Database Design)

3. 논리적 데이터베이스 설계 (Logical Database Design)

4. 스키마 정제 (Schema Refinement)

5. 물리적 데이터베이스 설계 (Physical Database Design)

6. 애플리케이션 및 보안 설계 (Application and Securyt Design)

 

1, 2, 3 단계에서 주로 ER 모델 (Entity Realationship Model)이 사용된다.

 

Requirements. Analysis

요구사항 분석

데이터베이스에 저장할 데이터가 무엇인지, 지원해야하는 어플리케이션이 무엇인지, 자주 수행될 연산, 성능요구 등을 이해하는 과정

보통 비공식 적인 과정,,, -> 막 각잡고 하는건 아닌듯!

Conceptual Database Design

요구사항 분석에 수집된 정보를 바탕으로 ER 모델을 사용해 데이터베이스에 저장할 데이터의 고수준 설명을 작성

이 과정에서 데이터간의 제약조건도 정의됨

데이터를 시각적으로 표현하는것이 중요함!

설계는 명확히 표현되어야 하며, 이를 통해 관계형 데이터 모델로 변환이 용이해야함

Logical Database Design

DBMS를 선택해 개념적 설계를 실제 데이터 베이스 스키마로 변환해야함

관계형 DB를 이용할경우, ER스키마를 관계형 데이터베이스 스키마로 변환한다.

=> 결과로 논리적 스키마 (logical schema)라고 불림

 

-> 논리적 스키마가 완성되면 성능기준을 고려하고 이를 바탕으로 물리적 스키마를 설계한다.

Schema Refinement

관계형 데이터베이스 스키마를 분석해 잠재적인 문제를 찾아내고 개선한다

-> 정규화 (normalization)이론을 이용해 테이블 구조를 정제, 중복 최소화, 일관성 유지

physical Database Design

데이터 베이스가 처리해야 할 예상 작업량을 고려해 데이터베이스 설계를 추가로 정제함

-> 인덱스 생성, 데이터 클러스터링 등등

혹은 스키마 일부를 재설계

Application and Security Design

UML같은 설계 방법론

어플리케이션의 다양한 엔티티와 프로세스 정의, 각 역할에 대한 데이터 접근권한 설정

 

Conceptual Design

사용자에게 데이터를 설명하는게 핵심!!

high level description (often done w/ER model)

개념적 데이터 베이스 설계는 요구사항 분석단계에서 수집한 정보를 바탕으로 데이터베이스에 저장될 데이ㅌ의 고수준 표현을 작성하는 과정

-> 여기서 주로 ER모델을 이용하는것!

 

 

https://usowelcome.tistory.com/119

 

0. 1장 데이터 베이스 시스템 overview

DBMS란 무엇인가database를 저장하고, 다루기 위해 디자인된 소프트웨어 패키지 File vs DBMSdatabase를 그냥 file로서 관리하면 어떻게 될까..? (== DBMS가 굳이 필요한 이유는?)1. 메모리 제한과 주소공간

usowelcome.tistory.com

이 글에서 데이터베이스의 추상화 단계와 data independence에 대해 설명한 바 있다

더보기

1. data independence and efficient access

    데이터 독립성 : DBMS가 어플리케이션에게 실제 데이터가 물리적으로 어떻게 저장되는지 숨기는것

        => 어플리케이션 자체는 데이터가 어떻게 저장되는지 (블럭은 몇개구 어쩌구,,) 이런걸 모른채로 작동할 수 있어야함!

              즉 DBMS가 이런 부분을 알아서 감춰준다는것

              - 물리적 데이터 독립성 : 데이터가 실제로 어떻게 저장되는지 (어떤 디스크에 저장되는지, 어떤 파일구조인지 등등) 알필요 없음!!

                                                    실제 물리적인 부분이 바뀌어도 (다른 디스크로 이동 등등) 어플리케이션은 모른채로 잘 동작할 수 있음

              - 논리적 데이터 독립성 : 논리적 구조가 변경되어도 어플리케이션은 영향안받음

                                                    관계형 데이터베이스에서 테이블에 필드가 추가되거나, 제거돼도 어플리케이션이 보는 view는 영향X

 

DBMS 추상화 수준

1. Physical Schema (물리적 스키마)

    files, index 설명 -> 데이터가 실제로 어떻게 저장되는지를 설명

    (데이터를 디스크에 어떻게 저장할것인지, 어떤 파일구조인지, 인덱스가 뭔지)

    성능 최적화에 영향을 준다!

2. Conceptual Schema (개념적 스키마)

    logical structure 결정 -> 데이터 모델에 따라 데이터를 결정함

    다양한 entity의 관계가 결정된다

3. External Schema (== view, 외부 스키마)

    사용자가 데이터를 어떻게 보는지 설명

    -> 저장된 데이터가 아니라, view형태로 제공 (실제로 저장된건 아니지만, 필요한걸 계산해서 보여줌)

이렇게 레벨을 나눠둔 이유는 뭘까??

-> 데이터베이스와 연결된 어플리케이션은 오랜 기간동안 존재하고, 지속적으로 사용되기 때문이다!

     장기간 보관되고 관리되는것 -> 영속적인 데이터, 어플리케이션을 효율적으로 관리하는것에는 DBMS가 필요함

 

 

... ER modeling부터는 다음글로,,,

728x90