2020. 9. 23. 12:04ㆍ컴퓨터언어
데이터 모델
현실세계의 정보를 컴퓨터에 표현하기 위해 단순화, 추상화하여 체계적으로 표현한 개념적 모형
데이터 모델의 구성요소
개체 : 데이터베이스에 표현하려는 것으로 사람이 생각하는 개념이나 정보단위 같은 현실세계의 대상체
속성 : 데이터의 가장 작은 논리적 단위로서 파일 구조상의 데이터 항목 또는 데이터 필드
관계 : 개체 간 관계 또는 속성 간 논리적 연결
데이터 모델의 종류
개념적 데이터 모델
현실 세계에 대한 사람의 이해를 돕기 위해 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정
논리적 데이터 모델
개념적 모델링으로 나온 개념적 구조를 컴퓨터가 이해하고 처리할 수 있는 컴퓨터 환경에 맞도록 변환하는 과정
관계모델, 계층모델, 네트워크모델
논리 데이터 모델 품질 검증
완성된 논리 데이터 모델이 기업에 적합한지를 확인하기 위해 품질을 검증하는 것
데이터 모델의 표시 요소
구조 : 논리적으로 표현된 개체 타입 간 관계로서 데이터 구조 및 정적 성질을 표현
연산 : 데이터베이스에 저장된 실제 데이터들을 처리하는 작업에 대한 명세로서 데이터베이스를 조작하는 기본 도구
제약조건 : 데이터베이스에 저장될 수 있는 실제 데이터들의 논리적인 제약 조건
이상
테이블에서 일부 속성들의 종속으로 인해 데이터의 중복이 발생하고, 이 중복(Redundancy)으로 인해 테이블 조작 시 문제가 발생하는 현상
함수적 종속
어떤 테이블 R의 속성 부분집합 중 X, Y가 있을 때, 속성 X의 값 각각에 대해 시간에 관계없이 속성 Y의 값이 오직 하나만 연관되어 있는 경우 Y는 X에 함수적 종속, X는 Y를 함수적으로 결정한다고 한다.
무손실 분해
원본 테이블에서 일부 속성들만 추출한 프로젝션들을 다시 Natural Join 해도 정보 손실 없이 원래대로 복귀되는 형태의 분해
정규화
테이블의 속성들이 상호 종속적인 관계를 갖는 특성을 이용하여 테이블을 무손실 분해하는 과정으로, 삽입/삭제/갱신 이상의 발생 가능성을 줄이는 것이 목표다.
테이블
데이터를 저장하는 데이터베이스의 가장 기본적인 오브젝트
로우, 컬럼, 기본키, 외래키
기본키 = 후보키 중에서 선택한 주키로서, 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성
외래키 = 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
반정규화
시스템의 성능 향상, 개발 및 운영의 편의성 등을 위해 정규화된 데이터 모델을 통합/중복/분리하는 과정으로, 의도적으로 정규화 원칙을 위배하는 행위
테이블 통합, 테이블 분할, 중복 테이블 추가, 중복 속성 추가
테이블 통합
두 개의 테이블이 조인되는 경우가 많아 하나의 테이블로 합쳐 사용하는 것이 성능 향상에 도움이 될 경우 수행
테이블 통합 시 고려사항
데이터 검색은 간편하지만 레코드 증가로 인해 처리량이 증가한다.
입력/수정/삭제 규칙이 복잡해질 수 있다.
Not Null, Default, Check 등의 제약조건을 설계하기 어렵다.
테이블 분할
테이블을 수직 또는 수평으로 분할하는 것
수평 분할 : 레코드별로 사용 빈도의 차이가 큰 경우 레코드 사용 빈도에 따라 테이블 분할
수직 분할 : 하나의 테이블에 속성이 너무 많을 경우 속성을 기준으로 테이블을 분할
갱신 위주의 속성 분할 : 데이터 갱신 시 레코드 잠금으로 인해 다른 작업을 수행할 수 없으므로 갱신이 자주 일어나는 속성들을 수직분할하여 사용
자주 조회되는 속성 분할 : 테이블에서 자주 조회되는 속성이 극히 일부일 경우 자주 사용되는 속성들을 수직 분할하여 사용
크기가 큰 속성 분할 : 이미지나 2GB 이상 저장될 수 있는 텍스트 형식 등으로 된 속성들을 수직분할하여 사용
보안을 적용해야 하는 속성 분할 : 테이블 내의 특정 속성에 대해 보안을 적용할 수 없으므로 보안을 적용해야 하는 속성들을 수직 분할하여 사용
테이블 분할 시 고려사항
기본키의 유일성 관리가 어려워진다.
데이터 양이 적거나 사용 빈도가 낮은 경우 테이블 분할이 필요한지 고려해야 한다.
분할된 테이블로 인해 수행 속도가 느려질 수 있다.
데이터 검색에 중점을 두어 테이블 분할 여부를 결정해야 한다.
중복 테이블 추가
여러 테이블에서 데이터를 추출해서 사용해야 하거나 다른 서버에 저장된 테이블을 이용해야 하는 경우 중복 테이블을 추가하여 작업의 효율성을 향상시킬 수 있다.
중복 테이블을 추가하는 경우
정규화로 인해 수행 속도가 느려지는 경우
많은 범위의 데이터를 자주 처리해야 하는 경우
특정 범위의 데이터만 자주 처리해야 하는 경우
처리 범위를 줄이지 않고는 수행 속도를 개선할 수 없는 경우
'컴퓨터언어' 카테고리의 다른 글
정보처리기사 실기 공부log - 20200925 (0) | 2020.09.25 |
---|---|
정보처리기사 실기 공부log - 20200924 (0) | 2020.09.25 |
정보처리기사 실기 공부log - 20200922 (0) | 2020.09.22 |
정보처리기사 실기 공부log - 20200920 (0) | 2020.09.20 |
정보처리기사 실기 공부log - 20200915 (0) | 2020.09.15 |