데이터 모델 | 사용자의 요구사항을 컴퓨터나 인간이 이해하기 추상화하여 표현 <데이터 모델의 요소> D=<S,O,C> 구조(structure), 연산(operation), 제약조건(constraint) <데이터 모델 절차> 요구사항 분석→개념적 설계→논리적 설계→물리적 설계 |
구조(structure) | 데이터 구조 및 정적 성질을 표현하는 요소 논리적으로 표현될 대상으로서의 개체와 개체 간의 관계 |
연산(operation) | DB에 저장된 실제 데이터를 처리하는 작업의 명세 릴레이션을 조작하기 위한 관계 연산(데이터베이스를 조작하는 요소) |
제약조건(constraint) | 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건 데이터 무결성 유지를 위한 제약(참조무결성, 개체 무결성 등) |
요구사항 분석 | 요구사항을 수집하여 분석하여 요구사항 명세서 작성 |
개념적 설계 (개념 데이터 모델) |
• 사용자의 요구에 대한 트랜잭션을 모델링하는 단계 • 추상적, 개념적으로 표현하여 개념적 구조를 도출하는 데이터 모델 • DB종류와 관계가 없다 • 주요 산출물은 개체관계 다이어그램 #객체 관계 다이어그램(ERD) 객체와 객체 간의 관계를 이해하기 쉽게 도식화하여 표현한 다이어그램 ◻︎ 개체 ◇ 관계 ○ 속성 ◎ 다중 값 속성 ⎻ 관계와 속성 연결 |
논리적 설계 (논리 데이터 모델) |
• 사람이 이해하기 쉽게 표현한 데이터 모델로 트랜잭션의 인터페이스를 설계 • 정규화를 수행하여 논리적 데이터베이스 구조로 매핑하여 테이블 설계 • 스키마의 평가 및 정제 • DB의 종류를 모델에 맞게 설계 <논리 데이터 모델링 종류> • 계층 데이터 모델 트리형태(사이클X), 상하관계 존재하는 계층관계, 1:N관계 • 네트워크 모델 그래프형태(사이클O), CODASYL DBTG, N:M관계(복잡한 다대다관계) • 관계 데이터 모델 2차원 테이블 형태, 기본키와 이를 참조하는 외래키로 표현, 1:1, 1:N, N:M관계를 자유롭게 이용 💡 관계 데이터 모델의 관계 대수와 관계 해석 관계 대수는 절차적으로 정형화된 언어, 일반 집합 연산자&순수 집합 연산자 관계 해석은 비절차적 언어, '프레디킷 해석' <논리 데이터 모델링 속성> 개체(Entity), 속성(Attributes), 관계(Relationship) |
물리적 설계 (물리 데이터 모델) |
• 특정DBMS의 특성 및 성능에 맞는 물리적인 스키마를 만드는 단계 • 테이블, 인덱스, 뷰, 파티션 등의 객체를 생성 • 성능향상을 위한 반정규화수행 • 레코드 집중의 분석 및 설계, 저장 레코드 양식 설계, 접근 경로 설계 <물리 데이터 모델링 절차> 개체를 테이블로 → 속성을 컬럼으로 → UID를 기본키로 → 관계를 외래키로 → 컬럼의 유형과 길이를 정의 → 반정규화 수행 <물리데이터 저장소 구성> ◆ 테이블 제약 조건 설계 참조 무결성: 릴레이션과 릴레이션 사이에 대해 참조의 일관성을 보장, 참조하는 외래키의 값은 항상 참조되는 릴레이션의 기본키로 존재하여야 한다(무결성은 결함이 없는 특성)제한(Restricted), 연쇄(Cascade), 널 값(Nullify) ◆ 인덱스 설계 검색연산의 최적화를 위한 데이터 구조 기본키 선택에 있어서 분포도가 낮을 수록 좋다(최적의 인덱스 분포도는 10~15%이하) ◆ 뷰 설계 뷰 사용에 따라 수행속도에 문제가 발생 최적의 액세스 경로를 사용 뷰는 수정이 불가 ◆ 파티션 설계 파티셔닝은 대용량의 테이블을 파티션이라는 보다 작은 논리적 단위로 나누어 성능 저하 방지 및 관리를 보다 용이하게 하고자 하는 기법(성능 향상, 가용성 향상, 백업 가능, 경합 감소 등의 장점) - 레인지 파티셔닝: 일정한 숫자나 날짜를 기준으로 파티셔닝 - 해시 파티셔닝: 해당 키의 해시 함수 값에 의한 파티셔닝 - 리스트 파티셔닝: 저장 데이터에 대한 명시적 제어가 가능한 파티셔닝(문자 등의 목록) - 컴포지트 파티셔닝: 2개 이상을 결합한 파티셔닝 - 라운드로빈 파티셔닝: 라운드로빈 분할로 회전하면서 새로운 행이 할당(행의 고른 분포) ◆ 클러스터 설계 대상이 되는 범위의 요소를 모은 집합체로 인덱스 사용의 단점을 해결 분포도가 넓을 수록 유리 검색 효율은 높여주나 입력, 수정, 삭제 시는 부하가 증가 연산이 빈번한 컬럼이면 검토 대상 |
정규화 (Normalization) |
불필요한 데이터의 중복성을 제거하고, 데이터를 무손실분해하는 과정 (이상현상 방지와 데이터의 일관성과 정확성 유지) <데이터베이스의 정규화 단계> • 1NF(1정규형): 하나의 속성인 원자값으로 구성(반복속성과 중복은 제거) • 2NF(2정규형): 부분 함수 종속 제거(완전 함수 종속), 주식별자가 아닌 속성을 분리 • 3NF(3정규형): 이행 함수 종속 제거, 속성에 종속적인 속성을 분리 • BCNF(보이스-코드 정규형): 결정자 종속, 모든 결정자가 후보키 • 4NF(4정규형): 다치(다중값) 종속 제거, 속성에 따른 속성을 제거 • 5NF(5정규형): 조인 종속 제거 |
이상현상 (Anomaly) |
릴레이션 조작시 데이터의 중복성으로 인해 예기치 않게 발생하는 곤란한 현상 - 삽입이상: 해당 정보의 불필요한 세부정보를 입력하는 경우 - 삭제이상: 정보 삭제 시 원치 않게 다른 정보가 같이 삭제되는 경우 - 갱신이상: 중복 데이터 중 특정 부분만 수정되어 중복된 값의 모순이 발생하는 경우 |
반정규화 (De-Normalization) |
성능향상과 개발운영의 단순화를 위해 통합, 중복, 분리등을 수행하는 기법(=역정규화, 비정규화) <반정규화 기법> • 테이블 병합(통합) • 테이블 분할(파티셔닝): 수평분할&수직분할 • 중복 테이블 추가: 집계 테이블 추가/진행 테이블 추가/특정 부분만을 포함하는 테이블 추가 • 컬럼 중복화 • 중복관계 추가 #정규화는 중복을 제거하고, 반정규화는 중복을 허용 |
외래키 | 참조하는 테이블의 기본키, Foreign Key |
디스크 스트라이핑 | 성능 향상(빠르게)을 위해 데이터를 1개 이상의 디스크 드라이브에 저장하여 병렬로 사용가능하게 하는 기법 |
데이터베이스 | 사람이나 시스템, 프로그램이 사용할 목적으로 통합하여 관리되는 데이터의 집합 (통합/저장/운영/공용데이터) 실시간 접근성, 계속적인 변화, 동시 공용, 내용 참조 <데이터베이스의 종류> ◆ 파일 시스템 ◆ RDBMS 관계형 데이터베이스 관리 시스템 -관계형 모델을 기반으로 하는 가장 보편화된 관리 시스템 -상하관계로 표시하여 상관관계를 정리 -변화하는 업무나 데이터 구조에 대한 유연성이 좋아 유지 관리가 용이 ◆ HDBMS 계층형 데이터베이스 관리 시스템 -상하 종속적인 관계로 계층화하여 관리하는 관리 시스템 -속도는 빠르나 유연성이 떨어짐 ◆ NDBMS 네트워크형 데이터베이스 관리 시스템 -데이터 구조를 네트워크로 표현한 데이터 모델 -트리나 계층형보다는 유연하지만 설계가 복잡 |
DBMS유형 (No SQL유형과 동일) |
DBMS는 데이터 관리의 복잡성을 해결하는 동시에 데이터의 추가 변경, 검색, 삭제 및 백업, 복구, 보안등의 기능을 지원하는 시스템으로, 관리하는 데이터의 형태 및 관리 방식에 따라 분류 ◆ 키-값 Key-Value Store ◆ 컬럼 기반 데이터 저장 Column Family Date Store ◆ 문서저장 Document Store ◆ 그래프 Graph Store |
DBMS특징 | • 무결성: 동일한 내용에 대해 서로 다른 데이터가 저장되는 것을 허용하지 않는 성질 • 일관성: 삽입/삭제/갱신/생성 후에도 저장된 데이터가 변함없이 일정한 성질 • 회복성: 장애가 발생되더라도 특정 상태로 복구되어야 하는 성질 • 보안성: 불법적인 노출, 변경, 손실로부터 보호되어야 하는 성질 • 효율성: 최적화되어 요구사항을 만족시켜야하는 성질 |
빅데이터 | 대규모 크기(수십PB이상의)의 비정형, 정형, 반정형 데이터 3V - 데이터의 양(Volume) / 데이터의 다양성(Variety) / 데이터의 속도(Velocity) |
No SQL | 고정된 테이블 스키마가 필요하지 않고, 조인연산을 사용할 수 없으며, 수평적으로 확장이 가능한 DBMS (RDBMS와 다른 개념) <No SQL의 특징 BASE> Basically Available: 언제 어디서든 접근 가능한 분산 시스템 Soft-state: 전송된 정보에 의해 노드의 상태가 결정, 특정 시점에는 일관성 보장X Eventually consistenty: 결과적으로는 데이터의 일관성 유지 |
'자격증 > 정보처리기사' 카테고리의 다른 글
2022정보처리기사 동차 합격 후기(비전공자) (0) | 2022.06.28 |
---|---|
애플리케이션 테스트 관리 (0) | 2022.04.15 |
정처기 실기 약술형 대비 정리 (1) | 2022.03.28 |
정처기필기 오답정리 (0) | 2022.03.04 |
[정처기필기] 소프트웨어 설계 (0) | 2022.03.04 |