Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 코테
- 정보처리기사
- 티스토리챌린지
- select
- SQL
- 안드로이드
- 기술면접
- Kotlin
- 혼공파
- java
- 자료구조
- 코틀린
- 혼공단
- join
- 알고리즘
- Til
- 프로그래머스
- 오블완
- Android
- doitandroid
- 인프런
- 혼공챌린지
- 정처기
- 카카오코테
- MySQL
- 스터디
- CS
- 안드로이드스튜디오
- 자바
- groupby
Archives
- Today
- Total
Welcome! Everything is fine.
[정처기/실기] 3단원(데이터 입출력 구현) 요약 본문
728x90
* 수제비 정보처리기사 실기 책을 보고 직접 정리한 내용입니다.
1. 논리 데이터 저장소 확인
[1-1] 데이터 모델 개념
- 데이터 모델 : 현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델
- 표시 요소
- 연산(Operation)
- 구조(Structure)
- 제약 조건(Constraint)
[1-2] 데이터 모델 절차
요구사항 분석
- 도출된 요구사항 간 상충을 해결하고 범위를 파악하여 외부 환경과의 상호 작용을 분석을 통해 데이터에 대한 요구 분석
개념적 설계
- 사용자의 요구에 대한 트랜잭션을 모델링하는 단계
- 개념적 데이터 모델 : 현실 세계에 대한 인식을 추상적, 개념적으로 표현하여 개념적 구조를 도출하는 데이터 모델
- 트랜잭션 모델링, View 통합방법 및 Attribute 합성 고려
- 개념적 데이터 모델은 DB 종류와 관계가 없음
- 주요 산출물은 개체관계 다이어그램이 있음
논리적 설계
- 트랜잭션의 인터페이스를 설계하는 단계
- DBMS에 맞는 논리적 스키마를 설계하는 단계
- 논리적 데이터 모델 : 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현한 데이터 모델
- 논리적 설계 단계에서 정규화 수행
- 논리적 데이터 베이스 구조로 매핑
- 스키마의 평가 및 정제
- 논리적 데이터 모델을 통해 “관계 데이터 모델”, “계층 데이터 모델”, “네트워크 데이터 모델”, “객체 지향 데이터 모델”, “객체-관계 데이터 모델” 중 하나의 모델에 맞게 설계
- 관계형 데이터 베이스에서는 테이블을 설계하는 단계
물리적 설계
- 논리 데이터 모델을 특정 DBMS의 특성 및 성능을 고려하여 물리적인 스키마를 만드는 단계
- 물리적 데이터 모델 : 논리 데이터 모델을 사용하고자 하는 각 DBMS의 특성을 고려하여 데이터베이스 저장 구조로 변환하는 모델
- 테이블, 인덱스, 뷰, 파티션 등 객체를 설정
- 응답시간, 저장 공간의 효율화, 츠랜잭션 처리를 고려하여 설계
- 성능 측면에서 반 정규화 수행
- 레코드 집중의 분석 및 설계
- 저장 레코드 양식 설계
- 접근 경로 설계
[2-1] 논리 데이터 모델링 개념
- 논리 데이터 모델링 : 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현하는 프로세스, 개념 모델로부터 업무 영역의 업무 데이터 및 규칙을 구체적으로 표현한 모델
[2-2] 논리 데이터 모델링 종류
관계 데이터 모델
- 논리적 구조가 2차원 테이블 형태로 구성된 모델
- 기본 키(PK)와 이를 참조하는 외래키(FK)로 관계 표현
- 1:1, 1:N, N:M 관계를 자유롭게 표현
- 구성요소
- 릴레이션(Relation) : 행과 열로 구성된 테이블
- 튜플(Tuple) : 릴레이션의 행에 해당되는 요소
- 속성(Attribute) : 릴레이션의 열에 해당되는 요소
- 카디널리티(Cardinality) : 튜플의 수
- 차수(Degree) : 애트리뷰트의 수
- 스키마(Schema) : 데이터베이스의 구조, 제약 조건 등의 정보를 담고 있는 기본적인 구조
- 인스턴스(Instance) : 정의된 스키마에 따라 생성된 테이블에 실제 저장된 데이터의 집합
- 관계 대수는 절차적 언어, 관계 해석은 비절차적 언어
- 관계 대수 : 관계형 데이터베이스에서원하는 정보와 그 정보를 어떻게 유도하는가를 기술한 절차적 정형 언어
- 일반 집합 연산자 기호 표현 설명
합집합(Union) ∪ R∪S 합병 가능한 두 릴레이션 R과 S의 합집합 교집합(Intersection) ∩ R∩S R과 S에 속하는 모든 튜플로 결과 릴레이션 구성 차집합(Difference) ─ R─S R에 존재하고 S에 존재하지 않는 튜플로 결과 릴레이션 구성 카티션 프로덕트(CARTESIAN Product) × R×S R과 S에 속한 모든 튜플을 연결해 만들어진 새로운 튜플로 릴레이션 구성 - 순수 관계 연산자 기호 표현 설명
셀렉트(Select) σ σ조건(R) 릴레이션 R에서 조건을 만족하는 튜플 반환 프로젝트(Project) π π속성리스트(R) 릴레이션 R에서 주어진 속성들의 값으로만 구성된 튜플반환 조인(Join) ▷◁ R▷◁S 공통 속성을 이용해 R과 S의 튜플들을 연결해 만들어진 튜플 반환 디비전(Division) ÷ R÷S 릴레이션 S의 모든 튜플과 관련 있는 R의 튜플 반환
- 일반 집합 연산자 기호 표현 설명
- 관계 해석 : 튜플 관계 해석과 도메인 관계 해석을 하는 비절차적(원하는 정보가 무엇이라는 것만 선언) 언어, 프레디킷 해석에 기반한 언어.
계층 데이터 모델
- 논리적 구조가 트리 형태로 구성된 모델
- 상하관계 존재(부모-자식 개체)
- 1:N 관계만 허용
네트워크 데이터 모델
- 논리적 구조가 그래프 형태로 구성된 모델
- CODASYL DBTG 모델이라고 불림
- 상위와 하위 레코드 사이에 다대다(N:M) 관계를 만족하는 구조
[2-3] 논리 데이터 모델링 속성
개체
- 사물 또는 사건, 관리할 대상이 되는 실체
- 피터 챈 모델 → 사각형으로 표시
- 까마귀 발 모델 →표 형식으로 표시
속성
- 개체가 가지고 있는 요소 또는 성질, 관리할 정보의 구체적 항목
- 피터 챈 모델 → 타원형으로 표시
- 까마귀 발 모델 → 표 내부에 표시
- 속성은 단수명으로 명명, 개체명 사용X, 속성이 필수사항인지(Not Null) 아닌지(Null) 고려
관계
- 개체 간의 대응 관계
- 피터 챈 모델 → 마름모로 표시
- 까마귀 발 모델
[2-4] 개체-관계(E-R) 모델
- E-R 모델 : 현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해서 가장 널리 사용되고 있는 모델. 요구사항으로부터 얻어낸 정보들을 개체, 속성, 관계로 기술한 모델.
[2-5] 정규화(Normalization)
- 관계형 데이터 모델에서 데이터의 중복성 제거 → 이상 현상 방지
- 데이터의 일관성과 정확성 유지를 위해 무손실 분해하는 과정
이상현상(Anomaly)
- 데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적 현상
- 삽입 이상 : 정보 저장 시 해당 정보의 불필요한 세부사항을 입력해야하는 경우
- 삭제 이상 : 정보 삭제시 원치 않는 다른 정보가 같이 삭제되는 경우
- 갱신 이상 : 중복 데이터 중에서 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우
정규화 단계
- 1차 정규화(1NF) : 원자화
- 2차 정규화(2NF) : 부분함수 종속 제거
- 3차 정규화(3NF) : 이행함수 종속 제거
- 보이스-코드 정규화(BCNF) : 결정자 함수 종속 제거
- 4차 정규화(4NF) : 다치 종속 제거
- 5차 정규화(5NF) : 조인 종속 제거
함수 종속
- X → Y 관계일 때 X는 결정자(Determinant), Y(Dependent)는 종속자이다.
- 함수 종속 종류
- 부분 함수 종속(Partial Functional Dependency) : 릴레이션에서 기본 키가 복합키일 경우 기본 키를 구성하는 속성 중 일부에게 종속된 경우
- 완전 함수 종속(Full Functional Dependency) : 릴레이션에서 X → Y 관계가 있을 때, Y는 X의 전체 속성에 대해 종속하고,부분 집합 속성에 종속하지 않을 경우
- 이행 함수 종속(Transitive Functional Dependency) : 릴레이션에서 X → Y, Y→ Z 종속 관계가 있을 때, X → Z가 성립되는 경우
[2-6] 반정규화
- 반정규화(De-Normalization) : 정규화된 엔터티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법(=비정규화, 역정규화)
- 장점 : 성능 향상, 관리의 효율성 증가
- 단점 : 데이터의 일관성 및 정합성 저하, 유지를 위한 비용이 별도로 발생하여 성능에 나쁜 영향을 미칠 수 있음
- 반 정규화 기법
- 테이블
- 테이블 병합
- 테이블 분할(파티셔닝)
- 수평 분할
- 수직 분할
- 중복 테이블 추가
- 집계 테이블 추가
- 진행 테이블 추가
- 특정 부분만을 포함하는 테이블 추가
- 컬럼
- 컬럼 중복화
- 관계
- 중복 관계 추가
- 테이블
2. 물리데이터 저장소 설계
[1-1]물리 데이터 모델링
- 물리 데이터 모델링 : 논리모델을 적용하고자 하는 기술에 맞도록 상세화해가는 과정
- 물리 데이터 모델링 변환 절차② 속성 → 컬럼으로 변환④ 관계 → 외래키로 변환⑥ 반 정규화 수행
- ⑤ 컬럼 유형과 길이 정의
- ③ UID → 기본키로 변환
- ① 개체 → 테이블로 변환
[2-1]데이터베이스 무결성 종류(개참속사키)
- 데이터베이스 무결성(Database Integrity) : 데이터베이스에 저장된 값과 그것이 표현하는 현실세계의 실제 값이 일치하는 성질, 권한이 있는 사용자로부터 데이터베이스 보호
개체 무결성
- 한 엔터티에서 같은 기본 키를 가질 수 없거나, 기본 키의 속성이 NULL을 허용할 수 없는 제약 조건
- 기본 키, 유니크 인덱스
참조 무결성
- 외래 키가 참조하는 다른 개체의 기본 키에 해당하는 값이 기본 키 값이나 NULL이어야하는 제약 조건
- 외래 키
- 참조 무결성 제약 조건 SQL 문법(삭제 시)
- ALTER TABLE 테이블 ADD FOREIGN KEY (외래키) REFERENCES 참조테이블(기본키) ON DELETE [ RESTRICT | CASCADE | SET NULL ];
속성 무결성
- 속성의 값은 기본 값, NULL 여부, 도메인(데이터 타입, 길이)이 지정된 규칙을 준수해야하는 제약 조건
- 체크, NULL/NOT NULL, 기본 값
사용자 정의 무결성
- 사용자의 의미적 요구사항을 준수해야하는 제약 조건
- 트리거, 사용자 정의 데이터 타입
키 무결성
- 한 릴레이션에 같은 키값을 가진 튜플들을 허용할 수 없는 제약 조건
- 유니크
[2-2] 키
- 키(Key) : 데이터베이스에서 조건을 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 기준이 되는 속성
- 키 특성
- 유일성(Unique) : 식별자에 의해 엔터티 타입 내에 모든 튜플들을 유일하게 구분
- 최소성(Minimality) : 최소한의 속성으로 식별자 구성
- 키 종류
- 기본 키(Primary Key) : 테이블의 각 튜플들을 고유하게 식별하는 컬럼
- 대체 키(Alternate Key) : 후보 키 중에서 기본 키로 선택되지 않은 키
- 후보 키(Candidate Key) : 테이블의 각 튜플들을 구별하는 데 기준이 되는 컬럼, 기본 키 + 대체 키
- 슈퍼 키(Super Key) : 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족하지 못하는 키
- 외래 키(Foreign Key) : 테이블 간의 참조 무결성을 위한 제약 조건, 한 릴레이션의 컬럼이 다른 릴레이션의 기본 키로 이용되는 키
[2-3] 인덱스
- 인덱스(Index) : 검색 연산의 최적화를 위해 데이터베이스 내 열에 대한 정보를 구성한 데이터 구조
[2-4] 파티셔닝
- 파티셔닝(Partitioning) : 테이블 또는 인덱스 데이터를 파티션 단위로 나누어 저장하는 기법
- 파티션의 장점(성가백합)
- 성능 향상
- 가용성 향상
- 백업 가능
- 경합 감소
레인지 파티셔닝
(=범위 파티셔닝)
- 연속적인 숫자나 날짜를 기준으로 하는 파티셔닝 기법
- 손쉬운 관리 기법을 제공하여 관리 시간의 단축 가능
- 우편번호, 일별, 월별, 분기별 등 의 데이터에 적합
해시 파티셔닝
- 파티션 키의 해시 함수 값에 의한 파티셔닝 기법
- 균등한 데이터 분할 가능, 질의 성능 향상 가능
- 파티션을 위한 범위가 없는 데이터에 적합
리스트 파티셔닝
(=목록 파티셔닝)
- 특정 파티션에 저장 될 데이터에 대한 명시적 제어가 가능한 파티셔닝 기법
- 분포도가 비슷하고 데이터가 많은 SQL에서 컬럼의 조건이 많이 들어오는 경우 유용
- [한국, 일본, 중국 → 아시아] [노르웨이, 스웨덴, 핀란드 → 북유럽]
컴포지트 파티셔닝
(=조합 파티셔닝)
- 레인지 파티셔닝, 해시 파티셔닝, 리스트 파티셔닝 중2개 이상의 파티셔닝을 결합하는 파티셔닝 기법
- 큰 파티션에 대한 I/O 요청을 여러 파티션으로 분산 가능
- 레인지 파티셔닝 할 수 있는 컬럼이나 파티션이 너무 커서 효과적으로 관리할 수 없을 때 유용
라운드로빈
- 라운드로빈으로 회전하면서 새로운 행을 파티션에 할당하는 기법
- 파티션의 고른 분포를 원할 때 사용
3. 데이터베이스 기초 활용하기
[1] 데이터베이스
- 데이터베이스 개념
- 다수의 인원, 시스템 또는 프로그램이 사용할 목적으로 통합하여 관리되는 데이터의 집합
- 중복성 제거, 무결성 확보, 일관성 유지, 유용성 보장 중
- 데이터베이스 정의
- 통합된 데이터
- 저장된 데이터
- 운영 데이터
- 공용 데이터
- 데이터베이스 특성
- 실시간 접근성
- 계속적인 변화
- 동시 공용
- 내용 참조
- 데이터베이스 종류
- 파일 시스템
- 관계형 데이터베이스 관리시스템(RDBMS)
- 계층형 데이터베이스 관리시스템(HDBMS)
- 네트워크 데이터베이스 관리시스템(NDBMS)
- 데이터베이스 관리 툴
[2-1] DBMS 유형(키컬도그)
- DBMS(Database Management System) : 데이터관리의 복잡성을 해결하는 동시에 데이터 추가, 변경, 검색, 삭제 및 백업, 복구, 보안 등의 기능을 지원하는 소프트웨어
키-값(Key-Value Store) DBMS
- 키 기반 Get/Put/Delete 제공
- 메모리 기반에서 성능 우선 시스템 및 빅데이터 처리 가능 DBMS
- Unique한 키에 하나의 값을 가지고 있는 형태
- [예] Redis, DynamoDB
컬럼 기반 데이터 저장(Column Family Data Store) DBMS
- Key 안에 (Column, Value) 조합으로 된 여러 개의 필드를 갖는 DBMS
- 테이블 기반, 조인 미지원, 구글의 Bigtable 기반으로 구현
- [예] HBase, Cassandra
문서 저장(Document Store) DBMS
- 값(Value)의 데이터 타입이 문서(Document)라는 타입을 사용하는 DBMS
- 문서 타입은 XML, JSON과 같이 구조화된 데이터 타입으로, 복잡한 계층 구조 표현 가능
- [예] MongoDB, Couchbase
그래프(Graph) DBMS
- 시맨틱 웹과 온톨로지 분야에서 활용되는 그래프로 데이터를 표현하는 DBMS
- 노드와 엣지로 특징되는 요소 특화
- 노드 간 관계를 구조화하여 저장
- [예] Neo4j, AllegroGraph
[2-2] DBMS 특징
- 데이터 무결성
- 데이터 일관성
- 데이터 회복성
- 데이터 보안성
- 데이터 효율성
[3] 데이터베이스 기술 트랜드
빅데이터
- 빅데이터(Big Data) : 주어진 비용이나 시간 내에 처리 가능한 데이터 범위를 넘어서는 수십 페타바이트(PB)의 비정형 데이터
- 수집, 저장, 처리 기술
NoSQL
데이터마이닝
- 데이터 마이닝(Data Minnig) : 빅데이터 분석 기술 중 대량의 데이터를 분석하여 데이터 속에 있는 변수 사이의 상호관계를 규명하여 일정한 패턴을 찾아내는 기법
'자격증 및 기타 활동 > 정보처리기사' 카테고리의 다른 글
[정처기/실기] 9단원(소프트웨어 개발 보안 구축) 요약 (0) | 2023.10.25 |
---|---|
[정처기/실기] 8단원(서버 프로그램 구현) 요약 (0) | 2023.10.25 |
[정처기/실기] 7단원(SQL 응용) 요약 (0) | 2023.10.25 |
[정처기/실기] 2단원(화면설계) 요약 (0) | 2023.10.25 |
[정처기/실기] 1단원(요구사항 확인) 요약 (0) | 2023.10.15 |