트리거 | - DB시스템에서 삽입, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL - 데이터 무결성 유지 및 로그 메시지 출력 등의 별도 처리를 위해 사용되기도 함 <트리거 구성> DECLARE(선언부): 트리거의 명칭 정의 EVENT(이벤트부): 실행되는 타이밍, 이벤트를 명시 before/after BEGIN/END(시작/종료부): 시작과 종료는 쌍으로 구성되는 기본 단위 CONTROL(제어부): 실행 흐름 제어 조건문/반복문 등 SQL: 데이터 관리를 위한 조회, 추가, 수정, 삭제(DML주로 사용) EXCEPTION(예외부): SQL문 실행될 때 예외 발생 시 예외 처리 방법을 정의하는 처리 <주의사항> 트리거 작성 시에는는 TCL사용 불가하므로 오류에 주의해야한다 |
이벤트 | 특정 시간에 특정한 쿼리, 프로시져, 함수 등을 실행시키는 기능 |
데이터 무결성 | 인가받지 않은 사용자가 데이터를 수정할 수 없도록 하는 특성, DB에 저장된 데이터 값과 실제 값이 일치하는 정확성 |
로그 메시지 | 시스템의 모든 기록을 담고 있는 데이터 |
트리거와 프로시저 | 트리거는 TCL(commit&rollback)불가능, 프로시저는 가능 트리거는 생성 후 자동 실행(데이터 추가 불가), 프로시저는 필요시 호출을 통해 실행 |
사용자 정의함수 | 쿼리 덩어리. 절차형 SQL을 활용하여 일련의 처리 결과를 단일 값으로 반환할 수 있는 함수 프로시저와 동일하지만, 종료시 단일값을 반환한다는 점에 차이! |
캡슐화 | 객체의 속성과 행위를 하나로 묶고, 실제 구현 내용 일부를 외부에 감추어 은닉 |
데이터 정의어(DDL) | 테이블이나 관계의 구조 생성, 데이터를 정의하는 언어->스키마 생성 CREATE, ALTER, DROP, TRUNCATE |
데이터 조작어(DML) | 데이터베이스에 저장된 자료를 입력, 수정, 삭제, 조회하는 조작어 SELECT, INSERT, UPDATE, DELETE **SELECT문은 특별히 질의어(Query)라고 부름(DQL) |
데이터 제어어(DCL) | DBA가 사용하는 제어용 언어(데이터 보안, 무결성 유지, 병행제어, 회복) GRANT, REVOKE COMMIT, ROLLBACK, SAVEPOINT |
윈도 함수 | -관계 정의 함수(행과 행 간의 관계를 쉽게 정의하기 위해 만든 함수) -OLAP함수(On-Line Analytical Processing; 온라인 분석 처리용도) -집계함수, 순위함수, 행 순서 함수, 그룹 내 비율 함수 |
집계 함수 | 하나의 결과값을 반환하는 함수 COUNT, SUM, AVG, MAX, MIN 등 |
순위 함수 | 레코드 순위를 계산하는 함수 RANK, DENSE_RANK, ROW_NUMBER 등 |
행순서 함수 | 가장 앞에 나오거나 가장 뒤에 나오는 값(이전, 이후의 값) FIRST_VALUE, LAST_VALUE, LAG, LEAD 등 |
그룹 내 비율 함수 | 백분율이나 비율과 관련된 통계 RATIO_TO_REPORT, PERCENT_RANK 등 |
OLAP연산 | 의사 결정 지원 시스템. 사용자가 동일한 데이터를 여러 기준을 이용하는 다양한 방식으로 바라보면서 "다차원 데이터 분석"을 할 수 있도록 도와주는 온라인 분석 기술로 다양한 정보를 제공 -Roll-Up: 구체적인 데이터로부터 요약된 형태의 데이터로 접근 -Drill-Down: 요약된 형태의 데이터로부터 구체적인 데이터로 접근 -Slicing: 데이터 큐브의 한 조각을 볼 수 있게 해주는 연산 -Dicing: 다이싱(주사위), 고정된 다차원 값에 대한 연산 -Pivoting: 피보팅, 크로스테이블에서 차원 변경을 위해 사용되는 연산 |
그룹함수 | 테이블의 전체 행을 하나 이상의 컬럼을 기준으로 컬럼 값에 따라 그룹하하여 그룹별로 결과 출력 -Roll-Up, Cube, Grouping Sets |
DDL | 데이터를 정의하는 언어 CREATE, ALTER, DROP, TRUNCATE ** TRUNCATE와 DELETE 차이 TRUNCATE(정의어)는 내용 전체를 삭제(롤백불가) DELETE(조작어) FROM절을 사용해 조건 걸어 삭제(롤백가능) ◼︎ DDL대상 -도메인: 하나의 속성이 가질 수 있는 원자, 속성의 데이터 타입과 크기, 제약조건등의 정보 -스키마: 기본적인 구조(뼈대) •외부스키마(서브 스키마): 사용자 뷰, 사용자나 개발자 관점에서 필요로하는 논리적 구조 •개념스키마: 데이터베이스의 전체적인 논리적 구조, 전체적인 뷰 데이터 개체, 관계, 제약조건, 접근 권한, 무결성, 보안에 대한 정의등을 명세화 한 것 •내부스키마: 물리적 저장장치 관점에서 보는 DB구조 -테이블: 물리적인 데이터 저장공간(=릴레이션, 엔터티) 테이블에 포함된 행들은 유일해야하고, 중복된 행이 존재하지 않아야함(튜플은 릴레이션에서 같은 값을 가질 수 없다) -뷰: 논리적으로 구현되는 가상의 테이블 뷰는 변경이 불가능하므로 ALTER 사용불가, 삭제DROP후 다시 생성CREATE 뷰가 정의된 기본 테이블 삭제시 뷰도 자동으로 삭제, 독자적 인덱스 생성불가 논리적 독립성 제공, 사용자 데이터 관리 용이, 데이터 보안의 용이 -인덱스: 검색을 빠르게 하기 위한 데이터 구조 |
관계형 데이터 모델 | 보편적인 데이터 모델, 데이터가 행과 열로 구성된 테이블(릴레이션)형태로 구성 관계 대수와 관계 해석은 관계형 데이터 모델에서 쓰이는 관계 데이터 언어 |
개체-관계 모델 | 관계형 데이터 모델은 데이터를 개체테이블과 관계 테이블로 표현하고, 개체-관계 모델은 데이터를 개체, 관계, 속성으로 표시 |
관계 대수 | 순서대로 명시하는 절차적 언어, 관계형 DB에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술 -일반 집합 연산자: 합집합, 교집합, 차집합, 카디션 프로덕트 -순수 관계 연산자: 셀렉트, 프로젝트, 조인, 디비전 |
관계 해석 | 튜플 관계 해석과 도메인 관계 해석을 하는 비절차적 언어 프레디킷 해석(Predicate Calculus) |
DML | |
DCL | |
트랜잭션 | 하나의 논리적 기능을 정상적으로 수행하기위한 작업의 기본 단위(쿼리 덩어리) |
★트랜잭션의 특성 (ACID) |
원자성(Atomicity) 일관성(Consistency) 격리성=고립성(Isolation) 영속성(Durability) |
트랜잭션 연상 (원자성 주요 기법) |
COMMIT(트랜잭션 확정)과 ROLLBACK(트랜잭션 취소) |
병행제어 (일관성 주요 기법) |
다수 사용자 환경에서 동시에 트랜잭션(작업)을 수행할 때도 일관성을 유지하기 위해 상호 작용을 제어 ◼︎ 병행제어 기법의 종류 -로킹 -낙관적 검증 -타임 스탬프 순서 -다중버전 동시성제어 |
DB고립화 수준 (격리성 주요 기법) |
현재 데이터에 대한 무결성을 해치지 않기 위해 잠금을 설정하는 정도 |
회복기법 (영속성 주요 기법) |
손상되기 이전의 정상상태로 복구시키는 작업 ◼︎ 회복기법의 종류 -로그 기반 회복 기법(자연 갱신 회복, 즉각 갱신 회복) -체크 포인트 회복 기법 -그림자 페이징 회복 기법 |
데이터 사전 (Data Dictionary) |
-데이터베이스에 저장되는 테이블, 뷰, 인덱스, 접근 권한 등에 대한 정보를 저장하는 데이터베이스 데이터의 데이터(메타데이터)로 구성 |
시스템 카탈로그 SYSTEM CATALOG |
-자료 사전과 같은 의미 -일반 사용자가 조회 가능, 단 갱신은 불가능(DBMS가 스스로 생성하고 유지) -테이블, 뷰, 인덱스 등에 변화를 주면 자동으로 갱신 -위치 투명성&중복 투명성을 위해 모든 제어 정보 포함 |
데이터 모델 | 현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델 💡 논리적 데이터 구조, 연산, 제약조건 💡 ▶︎ 데이터 모델 절차 요구조건 분석 → 개념적 설계(개념적 데이터 모델) → 논리적 설계(논리적 데이터 모델) → 물리적 설계(물리적 데이터 모델) |
요구조건 분석 | 요구사항 도출(주로 인터뷰를 통해), 경우에 따라 생략가능 |
개념적 설계 | • 사용자의 요구에 대한 트랜잭션을 모델링(개념적 데이터 모델 사용) • 현실세계애 대한 인식을 추상적, 개념적으로 표현해 개념적 구조를 도출하는 모델로 DB종류와 관계 없음 • 주요 산출물로 "개체관계 다이어그램(ERD)" |
개체-관계(E-R)모델 | 개체, 속성, 관계로 구성 |
논리적 설계 | • 트랜잭션의 인터페이스 설계, DBMS에 맞는 논리적 스키마 설계(논리적 데이터 모델 사용) • 정규화 수행(일관성과 정확성 유지를 위해 무손실 분해) • 스키마의 평가 및 정제 • 논리적 데이터 모델을 통해 테이블을 설계 |
논리적 데이터 모델 | 관계 데이터 모델(테이블 형태), 계층 데이터 모델(트리 형태), 네트워크 데이터 모델(망, 그래프) |
물리적 설계 | • 논리 데이터 모델을 특정 DBMS의 특성 및 성능을 고려해 물리적 스키마를 만드는 단계 • 물리적 데이터 모델은 논리 데이터 모델을 사용하고자 하는 특성을 고려해 물리데이터 모델로 변환 • 테이블, 인덱스, 뷰, 파티션 등 객체 생성 • 응답시간, 저장공간의 효율화, 트랜잭션 처리를 고려해 설계 • 반 정규화 수행(속도향상) • 레코드 집중의 분석 및 설계 • 저장 레코드 양식 설계 • 접근 경로 설계 |
물리적 데이터 모델 |
논리 데이터베이스 설계
정규화 | 원부이결다조 1차 정규화(1NF) 원자값으로 구성, 반복 속성/ 중복 제거 필요 2차 정규화(2NF) 부분 함수 종속 제거(=완전 함수적 종속 관계) 3차 정규화(3NF) 이행 함수 종속 제거 보이스-코드 정규화(BCNF) 결정자 함수 종속(모든 결정자가 후보키) 4차 정규화(4NF) 다치(다중 값) 종속 제거 5차 정규화(5NF) 조인 종속성 제거 |
이상현상 | 아노말리, 릴레이션 조작 시 데이터들이 불필요하게 중복되어 예기치 않게 발생하는 이상 현상 • 삽입 이상 • 삭제 이상 • 갱신 이상 |
함수 종속 | 애트리뷰트 X의 값 각각에 대해 시간과 관계없이 항상 애트리뷰트 Y의 값이 오직 하나만 연관된 관계 X→Y(Y는 X에 함수 종속) |
물리 데이터베이스 설계
스토리지 | 데이터를 보존하고 가능한 편하게 액세스 할 수 있도록 개발된 기술을 사용하여 정보를 보존하는 저장장치 데이터 저장소, 물리적 저장 공간 DAS, NAS, SAN |
DAS | Direct Attached Storage. 데이터 서버와 외장형 저장장치를 전용 케이블로 직접 접속 장점) 주어진 성능 보장되며 뛰어난 안정성 단점) 저장장치에 따른 접송방법이 상이하기에 저장장치 공유에 문제 |
NAS | Network Attached Storage. LAN을 통해 스토리지와 서버를 접속(파일서버를 통해 파일 시스템 공유) 장점) 데이터 저장 장치와 서버 간 독립성유지 단점) 파일서버의 병목현상, 파일 서버 종료 시 스토리지 접근 불가능 |
SAN | Storage Area Network. 광섬유채널을 통해서 스토리지 연결 장점) DAS의 접속한계성을 극복, n개의 서버가 m개의 저장장치 접속 가능 단점) 이기종 서버 환경 미지원, 공유 가능한 파일시스템과 데이터 형식 제한 |
분산DB | 분산해서 저장하지만 하나의 데이터 베이스처럼 보이도록 논리적으로 통합된 DB 전역 스키마, 분할 스키마, 할당 스키마, 지역 스키마로 구성 |
분산DB의 투명성 | • 위치 투명성 • 복제 투명성 • 병행 투명성 • 분할 투명성 • 장애 투명성 |
DB이중화 | • 액티브-액티브: 여러 노드가 동시에 가동, 동시동작으로 고성능이지만 고가 • 액티브-스탠바이: 하나의 노드만 가동하고, 나머지 노드는 대기하는 형태 |
DB암호화 | 저장된 데이터를 읽기 어려운 값으로 변환하여 권한이 없는 제3자가 볼 수 없도록 저장하는 기술 |
접근제어 | -불법적인 데이터의 접근으로부터 DB를 보호 -적절한 권을 가진 인가자만 특정 시스템이나 정보에 접근할 수 있도록 통제 -시스템 및 네트워크에 대한 접근 제어의 가장 기본적인 수단은 IP와 서비스포트 -관리 인터페이스 접근 제어 & ACL(Access Control List) |
접근제어 정책 | • 신원기반의 DAC(Discretionary Access Control) • 규칙 기반의 MAC(Mandatory Access Control) • 역할 기반의 RBAC(Role Based Access Control) |
기밀성 모델 | 벨라파듈라 모델 |
무결성모델 | 비바모델, 클락 윌슨 모델 |
파티셔닝 | -대용량의 테이블을 파티션으로 나눔으로써 성능 저하 방지 및 관리 용이(수평분할) -물리적 파티셔닝으로 인해 전체 데이터 훼손 가능성 감소 및 데이터 가용성 향상 -파티션 단위로 관리하여 편리 -부하를 각각 파티션들로 분산시켜 성능 향상 • 레인지 파티셔닝 • 해시 파티셔닝 • 리스트 파티셔닝 • 컴포지트 파티셔닝 • 라운드로빈 파티셔닝 |
클러스터링 | -지정된 컬럼 값의 순서대로 데이터 행을 저장 -엑세스 효율 향상을 위한 물리적 저장 방법으로 검색 효율은 향상되지만, 입력, 수정, 삭제 시 부하 증가 (조회는 빠르지만 삽입, 삭제 과정에서 느림) -클러스터링은 분포도가 넓을 수록 저장 공간의 절약이 가능해 오히려 유리 (테이블에서 분포도가 넓다=분포도가 안좋다) |
DB백업 | • 전체 백업 • 차등 백업 • 증분 백업 • 트랜잭션 로그 백업 |
데이터 무결성 | • 개체 무결성 • 참조 무결성 • 속성 무결성 • 사용자 무결성 • 키 무결성 |
키 | ★ 유일성과 최소성 ★ • 기본 키(Primary Key) 테이블 각 튜플들을 고유하게 식별하는 컬럼, 개체 무결성 • 대체 키(Alternate Key) 후보 키 중에서 기본 키로 선택되지 않은 키 • 후보 키(Candidate Key) 각 튜플을 구별하는데 기준이 되는 컬럼 • 슈퍼 키(Super Key) 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족하지 못하는 키 • 외래 키(Foreign Key) 테이블 간의 참조 데이터 무결성을 위한 제약 조건, 한 릴레이션의 컬럼이 다른 릴레이션의 기본 키로 이용되는 키 참조 무결성, |
데이터 전환
ETL | 조직 내/외부의 분석을 위해 원천 시스템에서 데이터를 추출(Extraction)하여 변환(Tranformation) 작업을 거쳐 목적 시스템으로 적재(Loading)하는 프로세스 |
파일 처리 기술 | 많은 양의 자료를 각종 매체에 저장하는 기법 • 순차 파일 논리적 순서에 따라 물리적 연속 공간에 순차적으로 기록하는 방식 • 색인 순차 파일(Indexed Sequential File) '키 값'순으로 정렬시켜 기록하고, 레코드의 키 항목 색인(인덱스)를 구성하는 방식, 순차처리와 랜덤처리가 모두 가능 • 직접 파일(=랜덤파일, DAM;Direct Access Method) 레코드를 특정 순서 없이 임의의 물리적 저장 공간에 기록, 해시 함수에 의해 계산된 물리적 주소를 통해 접근 |
'자격증 > 정보처리기사' 카테고리의 다른 글
정처기 실기 약술형 대비 정리 (1) | 2022.03.28 |
---|---|
정처기필기 오답정리 (0) | 2022.03.04 |
[정처기필기] 소프트웨어 설계 (0) | 2022.03.04 |
[정처기필기] 프로그래밍 언어 활용 (0) | 2022.03.02 |
자료구조와 알고리즘 (0) | 2021.12.09 |