데이터베이스 개요
▶ DBMS
다수의 사용자들이 Database 내의 데이터에 접근할 수 있도록 해주는 소프트웨어 도구의 집합으로, 데이터의 중복성과 종속성을 해결해준다.
▶ DBMS 고려사항 5가지
- 가용성
- 상호호환성
- 성능
- 기술지원
- 구축비용
▶ DBMS 접속 기술 3가지
- JDBC: Java를 통해 다양한 종류의 Database에 접속하며, Java SE에 포함되어있는 표준 API이다. 접속하려는 DBMS에 대한 드라이버가 필요하다.
- ODBC: Database에 접근하기 위한 표준 개방형 API로, 언어에 관계없이 사용한다. 접속하려는 DBMS의 종류를 몰라도 된다.
- MyBatis: JDBC를 개선한 SQL Mapping 기반 오픈 접속 프레임워크로, SQL 문장을 분리하여 XML 파일을 만들고, Mapping을 통해 SQL을 실행한다.
논리데이터 저장소 설계
▶ 데이터 모델
현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델
▶ 데이터 모델링 절차
- 요구 조건 분석: 요구조건 명세서 작성
- 개념적 데이터 모델링: E-R 다이어그램 작성, 독립적 개념 스키마 설계
- 논리적 데이터 모델링: 논리 스키마와 트랜잭션 인터페이스 설계, 정규화 수행
- 물리적 데이터 모델링: 물리적 구조의 데이터로 변환, 반정규화 수행
- 구현: DBMS의 DDL로 DB 생성
▶ 데이터 모델의 구성요소 3가지
- 개체 (Entity, ■): 데이터로 표현하고자 하는 현실 세계의 대상체
- 속성 (Attribute, ●): 개체에 관한 정보
- 관계 (Relationship, ◆): 개체 간의 연관성
▶ 관계 데이터 언어 2가지
- 관계대수: 원하는 정보와 그 정보를 어떻게 유도할지를 기술한 절차적 언어
- 관계해석: 원하는 정보가 무엇인지만을 정의하는 비절차적 언어
▶ 관계대수 순수 관계 연산자 4가지
- Select (σ): 릴레이션에서 특정 조건을 만족하는 튜플 선택
- Project (π): 릴레이션에서 속성 리스트에 제시된 속성 선택
- Join (⋈): 공통 속성을 중심으로 2개의 릴레이션을 하나로 합침
- Division (÷): 두 개의 릴레이션에 모두 있는 속성을 가진 튜플 중 우항에 있는 속성만 구함
▶ 관계대수 일반 집합 연산자 4가지
- UNION (∪): 합집합
- INTERSECTION (∩): 교집합
- DIFFERENCE ( - ): 차집합
- CARTESIAN PRODUCT (×): 교차곱
▶ 이상현상 정의 및 종류 3가지
데이터의 중복성으로 인해 테이블 조작 시 발생하는 비합리적인 현상
- 삽입 이상: 릴레이션에 데이터 삽입 시 원치 않는 값도 함께 삽입되는 현상
- 갱신 이상: 튜플에 있는 속성값 갱신 시 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상
- 삭제 이상: 튜플 삭제 시 원치 않는 정보까지 삭제되는 현상
▶ 정규화(Normalization) 정의 및 단계 6가지
관계형 데이터베이스 설계 시 데이터의 중복을 최소화하기 위해 테이블을 무손실 분리하는 과정
- 1NF: 테이블의 모든 도메인이 원자값이어야 한다.
- 2NF: 부분 함수적 종속 관계를 갖지 않아야 한다. (완전 함수적 종속 관계)
- 3NF: 이행적 함수 종속 관계를 갖지 않아야 한다.
- BCNF: 모든 결정자가 후보키여야 한다.
- 4NF: 다치 종속을 제거해야 한다.
- 5NF: 조인 종속을 제거해야 한다.
▶ 반정규화(De-Normalization)
시스템 성능 향상 및 개발 운영의 단순화를 위해 정규화 원칙을 의도적으로 위배하는 행위
▶ 시스템 카탈로그
다양한 객체에 관한 정보를 포함한 시스템 데이터베이스로, 데이터 사전이라고도 한다.
▶ 메타데이터
데이터에 대한 데이터라는 뜻으로, 시스템 카탈로그에 저장되며 모이면 데이터 사전이 된다.
▶ 데이터 디렉토리
데이터 사전에 수록된 데이터에 접근하기 위해 필요한 정보를 관리 유지하는 시스템
물리 데이터 저장소 설계
▶ 무결성(Integrity) 종류 6가지
- 개체 무결성: 기본키의 값은 NULL이나 중복된 값을 가질 수 없다. (고유 무결성 + NULL 무결성)
- 참조 무결성: 외래키의 값은 참조 릴레이션의 기본키 값과 같거나 NULL이어야 한다.
- 도메인 무결성: 특정 속성의 값은 해당 속성의 도메인에 속한 값이어야 한다.
- 고유 무결성: 특정 속성이 고유한 값을 가지도록 조건이 주어진 경우, 해당 속성값은 모두 달라야 한다.
- NULL 무결성: 특정 속성에 NULL이 올 수 없다는 조건이 주어진 경우, 해당 속성값은 NULL에 될 수 없다.
- 키 무결성: 한 릴레이션에는 최소한 하나의 키가 존재해야 한다.
▶ 인덱스(Index)
검색 속도 향상을 위해 [키값:포인터] 쌍으로 구성된 데이터 구조
▶ 뷰(View)
사용자에게 허용된 정보만 보여주기 위해 하나 이상의 테이블로부터 유도된 논리적 가상 테이블
▶ 클러스터(Cluster)
데이터 접근 효율성 향상을 위해 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법
▶ 파티셔닝(Partitioning) 정의 및 종류 3가지
대용량의 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나눈 것
- 범위 분할: 연속적인 숫자 또는 날짜를 기준으로 파티셔닝
- 해시 분할: 파티션 키의 해시 함수 값으로 파티셔닝
- 조합 분할: 범위 분할 이후 해시 함수를 적용하여 다시 분할하는 파티셔닝
▶ 옵티마이저 정의 및 종류 2가지
SQL을 가장 빠르고 효율적으로 수행할 최적의 처리경로를 생성해주는 DBMS 내부의 핵심엔진
- RBO (Rule Based Optimizer): 규칙 기반 옵티마이저
- CBO (Cost Based Optimizer): 비용 기반 옵티마이저
'정보처리기사 실기' 카테고리의 다른 글
[정보처리기사 실기] 6. 화면 설계 (0) | 2021.11.15 |
---|---|
[정보처리기사 실기] 5. 인터페이스 구현 (0) | 2021.11.12 |
[정보처리기사 실기] 4. 서버프로그램 구현 (0) | 2021.10.08 |
[정보처리기사 실기] 3. 통합 구현 (0) | 2021.10.07 |
[정보처리기사 실기] 1. 요구사항 확인 (0) | 2021.09.26 |