이 글은 전공 수업 내용을 복습할 겸 기록해놓은 글입니다.
추가할 사항이 있거나 잘못된 점이 있으면 댓글로 남겨주세요.
성능 데이터 모델링
- 정의
DB 성능을 고려해 데이터 모델링을 수행하는 것
- 정규화, 반정규화, 테이블 통합 및 분할, 조인 구조, PK, FK 등 여러 성능과 관련된 사항을 모델링에 반영
- 분석/설계 → 구현 → 테스트 → 운영의 과정을 거친 후 Backtracking 과정을 안 밟기 위해 수행
- 수행시점
빠를수록 좋음
- 분석/설계 단계부터 수행 시 성능개선 비용 최소화 가능
- 일반적으로 설계 → 성능 저하 발생 → 해당 SQL 튜닝 순으로 진행하는데, 바람직하지 않음 - 성능 데이터 모델링 진행 순서
정규화를 정확히 수행
- 주요 관심사별로 테이블 분산
DB 용량 산정
- 각 엔티티에 어느 정도의 트랜잭션이 들어오는지 파악
트랜잭션의 유형 파악
- CRUD 매트릭스 활용
용량과 트랜잭션에 따라 반정규화 수행
- 테이블, 속성, 관계 변경
이력 모델 조정, PK/FK 조정, 슈퍼타입/서브타입 조정
- 성능 관점에서 데이터 모델 최종 검증
관계형 모델
- DBMS의 발전
1960년대
- FlowChart 중심의 개발 방법 사용
- 파일구조를 통해 데이터를 저장하고 관리
1970년대
- 데이터베이스 관리 기법의 첫 등장
- 계층형, 망형 데이터베이스 제품 상용화
1980년대
- 관계형 데이터베이스 상용화
- Oracle, Sybase, DB2 등의 제품
1990년대
- 객체 관계형 데이터베이스 발전
- Oracle, Sybase, informix, DB2 Teradata, SQL Server 외 많은 제품 등장 - 관계형 데이터베이스 모델
데이터를 테이블로 관리하고, DB안에 복수의 테이블을 저장할 수 있는 DB 모델.
- 1970년대 영국의 수학자인 E.F.Codd 박사의 논문에서 제안
- 기업의 핵심 데이터는 대부분 RDB로 저장됨
- RDB는 SQL 문장에 의해 관리됨
테이블
- RDB의 기본 단위
- 행과 열의 2차원 구조를 가진 데이터 저장 객체
열(Column)
- 테이블에서 세로 방향으로 이루어진 개별 속성
행(Row) 또는 레코드(Record)
- 테이블에서 가로 방향으로 이루어진 연결된 데이터 - 제약조건
도메인 제약(Domain Constraints)
- 속성(Attribute)에 대한 제약
- 속성 값은 원자성(더 이상 쪼갤 수 없음)을 가짐
- 도메인에서 정의된 값이어야 함
- 복합 속성과 다중값 속성을 허용하지 않음
- Not Null인 경우에만 Null 값을 허용
키 제약(Key Constraints)
- 릴레이션에 대한 제약
- 릴레이션의 모든 튜플은 서로 식별 가능해야함
- PK가 존재해야 함
개체 무결성 제약(Entity Intergrity Constraints)
- 기본키에 대한 제약
- 기본키는 Not Null이면서 Unique여야 함
참조 무결성 제약(Referential Intergrity Constraints)
- 외래키에 대한 제약
- 한 릴레이션 R1이 다른 릴레이션 R2를 참조한다면, 외래키가 Null이거나 R2에 존재하는 값으로 구성되어야 함
'데이터베이스(Database) > Data Modeling' 카테고리의 다른 글
[DB] 데이터 모델링(9) - 반정규화(Denormalization) (0) | 2022.10.24 |
---|---|
[DB] 데이터 모델링(8) - 정규화(Normalization) (0) | 2022.10.24 |
[DB] 데이터 모델링(6) - 식별자(Identifier) (0) | 2022.10.24 |
[DB] 데이터 모델링(5) - 속성(Attribute) (0) | 2022.10.24 |
[DB] 데이터 모델링(4) - 관계(Relationship) (0) | 2022.10.24 |