observe_db

[객체지향설계] 11. Data Layer Design 본문

학교 공부/객체지향설계(3-1)

[객체지향설계] 11. Data Layer Design

쩡윤 2023. 6. 6. 01:56

5/26
 

Design Activities

Data Layer 설계

  • domain 객체에서 데이터로,그리고 DB 테이블 스키마로

UI 설계

  • Window navigation
  • 표준 인터페이스 설계

Physical Architecturing -- 서버라던지

  • 하드웨어 플랫폼 architecture
  • Development Diagram -- 어떤 compo를 올릴지 배분

 

Objectives

Object-Persistence formats에 익숙해짐
가능해짐

  • domain 객체에서 객체-지속 포맷으로 그림을 그리기
  • 일반화의 과정을 관계 테이블에 적용

RDBMS 문제의 해결 방법을 이해
 

Data Management Layer

시스템을 서포트하기 위해 객체-지속 포맷을 고름

  • 문제 영역 객체는 객체 저장소 설계
  • 객체-지속 포맷
    • 파일(순서 있든 없든)
    • 관계형 DB
    • 객체-관계/객체-지향 DB

데이터 저장소 설계

  • 클래스 다이어그램의 관계를 DB 테이블 스키마로 변형
  • 프로세싱을 효과적으로 최적화해야만 함.

 

관계형 DB

테이블의 모임

  • 엔트리들을 정의하는 필드들로 구성
  • Primary Key는 각 테이블에서 유일한 값을 가진다.
  • Foreign 키는 다른 테이블의 Primary 키

서로에게 관계된 테이블들

  • 테이블 필드의 Primary 키는 다른 테이블의 필드-foreign 키라고 부름
  • 한 테이블에 연결된 foreign 키가 만든 관계 

 

Criteria for Object Persistence Formats

지원하는 자료형
어플리케이션 시스템 타입
존재하는 저장 포맷
창후 필요
다른 여러종류의 기준
 

Mapping PD 객체 to RDBMS 스키마

  1. Map 모든 구체적 문제 영역 클래스들을 RDBMS 테이블들로
  2. 단순한 속성을 테이블의 col로
  3. 메소드를 stored procedure나 프로그램 모듈로
  4. 단순한 aggregation과 association 관계를 관계 테이블의 키를 저장할 수 있는 col로
  5. multi-valued 속성(set, structure등)과 반복되는 그룹들을 새로운 테이블에 매핑하고 1대다 association을 원래 테이블과 생성.
  6. multi-valued aggregation/association 관계는 새로운 associative 테이블에 매핑.-테이블은 두개의 원래 테이블에 같이 관계됨. Primary 키를 본 테이블에서 새로운 assocative 테이블로 복제.
  7. 복합 타입 aggregation/association 관계는 primary 키를 관계의 single-valued side에서 관계(관계 테이블의 키를 저장할 수 있는)의 multi-valued side의 테이블의 새로운 col에 매핑.
  8. a) subclass 인스턴스의 primary 키는 superclass의 primary키와 동일한지 확인
  9. b) 상속은 간편화

 
영역클래스에서 RDB 테이블
관계형 DB 스키마 설계

  • 영역 클래스 모델을 RDB 스키마로 변형
    • Entity-관계형 다이어그램(ERD)
    • DDL(데이터 정의 언어) --툴들에서
  • 변형 규칙
    • Association 관계
      • 1대1, 1대다, 다대다
    • 상속 관계

1대1
 

 

RDBMS 객체 저장소 최적화
중복X

  • 중복데이터는 메모리 낭비
  • 오류의 여지 허용

테이블에서 NULL 데이터를 최소화(없애기는 힘듬)

  • NULL데이터는 이해가 어렵게 만든다.

 
Normalization


3-NF
 
Problems with RDBMS
: 여러 테이블에서 데이터에 접근할때, 테이블들은 join 되어야한다.
: 이것은 많은 DB 동작과 느리게 동작하는 큰 테이블들을 결과로 할 수 있다.
 
Speeding up access
Denormalization: 프로세스 속도를 높이고, 조인동작을 제거하는 대신, 한 테이블에서 다른 테이블로 데이터를 추가.
 
Looking at the Data Needs

apllication 최적화

Comments