IT/IT

정보처리기사 실기 요점 정리(1) - 데이터베이스

김효랑이 2019. 4. 10. 15:58
728x90
반응형

 호야의 블로그 

정보처리기사 실기

이번 주 일요일에 있는 정보처리기사 실기 시험을 위해 1주일간 정리하고 공부한 내용입니다. 알고리즘은 빠져있으며 개인적으로 따로 공부하시는 것을 추천합니다. 외우는 것 보단 직접 이해하는 것이 중요하기 때문입니다.
정보처리기사 실기 데이터베이스 파트입니다.

 

qnet

 

데이터베이스

SQL 언어

DML - INSERT, UPDATE, DELETE, SELECT

DDL - CREATE, ALTER, DROP

- 제약조건 : CONSTRAINT ~ CHECK(조건)

DCL - COMMIT, ROLLBACK, GRANT, REVOKE

 

varchar - 가변형이라 물리공간에서 검색속도 떨어짐. 데이터 크기가 별 차이없으면 고정형 char로 설정 고려

 

WHERE - BETWEEN A AND B 기억. and나오면 거의 비트윈. likeand로 못씀

 

TRIM - 문자열의 왼쪽, 오른쪽(LTRIM/RTRIM) 공백을 제거할 때 사용하는 함수

 

(VIEW) - 데이터 논리적 독립성 제공, 보안성 향상, 여러 사용자 요구 지원

 

OLAP - 온라인 분석 처리(Online Analytical Processing)

- ROLAP: 관계DB, 질의어 - MOLAP: 다차원데이터 - HOLAP: R+M

사용자가 직접 DB 분석해 해결하는 분석형 APP

OLAP 연산종류(Roll:요약, Drill:상세 데이터에 접근)

- Roll-up: 상세데이터->요약된형태(피라미드 위쪽으로 올라가면 좁다=요약)

- Drill-down: 요약된형태->상세데이터(피라미드 아래로 갈 수록 넓어진다=보다 많이 봐야함)

- Drill-through: 상세데이터에 접근(웨어하우스나 OLTP에 존재하는)

- Drill-across: 다른 데이터 큐브 데이터에 접근

- Pivoting: 행열 페이지 차원을 바꿔서 보는 기능, 원하는 형태

- Slicing: 데이터큐브를 다차원 데이터들을 다양한 각도에서 쪼개서 비교하며 보는 기능

- Dicing: Slicing을 더 자르고 쪼개는데 그 모양이 주사위 모양.

 

MVC 모델 (Model View Controller)

- Model : 어떠한 동작을 수행하는 코드

- View : 모델에게 질의를 하여 모델로부터 값을 가져와 사용자에게 보여줌

- Controller : 사용자는 컨트롤러를 사용하여 모델의 상태 변경

 

객체지향 기법의 기본 원칙

캡슐화 : 객체의 상세한 내용을 객체 외부에 감춤

추상화 : 불필요한 부분을 생략, 객체의 중요한 속성에만 중점을 두어 개략화, 모델화

상속성 : 상위 클래스의 속성을 하위 클래스가 물려받는 것

다형성 : 한 메시지에 대해 각 객체가 다양한 형태로 응답

 

트랜잭션의 특징 (ACID)

- Atomicity(원자성) : 모든 연산들은 완전히 실행되거나 전혀 실행되지 않아야 함

- Consistency(일관성) : 트랜잭션 수행 전 = 수행 완료 후

- Isolation(독립성) : 하나의 트랜잭션 실행 중에 다른 연산이 끼어들 수 없음

- Durability(지속성) : 고장 나더라도 트랜잭션에 의해 변경된 내용은 영구적으로 반영

 

trigger(트리거)

- 참조된 두 테이블에서 내용이 변경됐을 때 자동으로 연쇄 수행되는 동작(일관성, 무결성)

- 이벤트가 발생할 때 마다 자동적으로 수행되는 사용자 정의 프로시저

Event(이벤트) - DB 항목 변경시키는 일의 발생(삽입, 삭제, 변경 등 이벤트)

 

Mapping Rule(맵핑 룰)

- 모델링에서 도출된 개체를 릴레이션 스키마로 변환하는 것(개체-릴레이션, 속성-칼럼, 식별자-기본키, 관계-외래키)

 

관계해석: 관계 데이터의 연산을 표현하는 방법으로, 원하는 정보를 정의 할 때는 계산 수식을 사용하며, 관계 대수와 기능 면에서 동등하며 관계 대수로 표현 된 식은 관계 해석으로 표현, 질의어로 표현

 

관계대수

- 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 언어

순수 관계 연산자

- Select: σ, 릴레이션에서 행에 해당하는 튜플을 구한다.

- Project: π, 릴레이션에서 열에 해당하는 튜플을 구한다.

- Join: , 공통 속성을 중심으로 2개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만든다.

- 세타 Join : =, <, > 등의 비교 연산자를 세타로 일반화하여 세타로 표현될 수 있는 조인

- 자연 Join : join 조건이 =일 때 동일한 속성이 2번 나타나는데, 중복 속성을 제거하여 1번만 나타나게 하는 연산

- Division: ÷, 릴레이션 R, S가 있을 때, RS인 경우, S의 속성 값을 가진 것만 제외 한 것

일반 집합 연산자

- 합집합(Union): 기호 , 튜플의 합집합

- 교집합(Intersection): 기호 , 튜플의 교집합

- Difference: 기호, 두 릴레이션의 차집합

- Cartesian Product(교차곱): 기호 ×, 튜플들의 결합된 정보

 

데이터

데이터 웨어하우스 - 의사결정, 원본DB로부터 정제된 DB, 다차원 분석도구

데이터마트 - 웨어하우스의 작은 규모, 관심있는 데이터만 담음

데이터큐브 - OLAP의 검색속도를 향상, 차원과 사실로 정의(Dimension & Fact)

자료사전(Data Dictionary) - 칼럼정의서의 코드 이름 규칙 관련(파일, 변수 목록), 데이터 개체를 유지 관리, 스키마, 언어, 제약 등의 내용 있음

데이터 마이닝 - DW의 데이터 집합에서 사용자의 요구에 따라 유용하고 가능성 있는 정보를 발견하기 위한 기법

- 군집화: 상호 간에 유사한 특성을 갖는 데이터들을 집단화(Clustering)하는 방법

 

병행 제어

- 다중 프로그램의 이점을 활용하여 동시에 여러 개의 트랜잭션을 병행 수행할 때 실행되는 트랜잭션들이 데이터베이

스의 일관성을 파괴하지 않도록 트랜잭션 간의 상호 작용을 제어하는 기술

(Locking)로킹 기법: 주요 데이터의 액세스를 상호 배타적으로 하는 것으로, 트랜잭션들이 어떤 로킹 단위를 액세스하기 전에 Lock을 요청해서 Lock이 허락되어야만 그 로킹 단위를 액세스할 수 있도록 하는 기법

 

함수 종속

- 애트리뷰트 A의 값 각각에 대해서 B의 값이 오직 하나만 연관되어 있을 때 BA에 함수 종속 AB

- A 값에 따라 B 값을 알 수 있을 때 A를 결정자(Determinant), B를 종속자(Dependent), YX에 함수적 종속

완전 함수적 종속 - AB에 완전 종속

부분 함수적 종속 - 완전한 종속이 아님. 부분 속성으로 결정, 속성 집합 X전체에 대해 함수적 종속이면서, 다른 부분집합에 대해 함수적 종속(복합키의 일부에 종속)

이행 함수적 종속 - X->Y, Y->Z 이면 X->Z를 만족하는 관계

 

다치종속 - 하나가 여러 개를 요청하면 동일 데이터 반복되는 것은 이와 관련(여러개 종속) ->> 화살표로 표시

 

스키마

- 외부 스키마 : 사용자나 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것

- 개념 스키마 : 모든 프로그램이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 데이터베이스 명세

- 내부 스키마 : 데이터베이스의 물리적 구조를 정의, 물리적 저장장치의 관점에서 본 전체 데이터베이스의 명세

 

관계

- 식별: 외래식별자가 주식별자로 존재(실선)

- 비식별: 외래식별자가 일반 속성으로 존재(점선)

 

무결성 제약조건

제약조건: 릴레이션 인스턴스들이 만족해야 하는 조건

- 정확하지 않은 데이터가 데이터베이스 내에 저장되는 것을 방지하기 위한 제약조건

도메인 무결성 제약조건

- 어떤 속성에 해당하는 속성 값은 항상 그 속성의 도메인에 속하는 값이어야 한다.

개체 무결성 제약조건

- 기본키에 해당하는 속성의 속성 값은 유일, Not Null(중복X)

참조 무결성 제약조건

- 개체간의 '관계'에서 데이터 무결성을 위함(참조 못하는 외래키[null 가능] 가질 수 없다.)

 

백업

- 원본이 손상되거나 잃어버릴 경우를 대비하여 원본 자료를 미리 복사하는 과정

전체 백업 : 변경 사항 유무에 관계없이 전체 데이터를 백업하는 방법

증분 백업 : 전체 백업 또는 증분 백업이 수행된 후 변경된 사항을 선택적으로 백업하는 방식

차등 백업 : 전체 백업 이후의 변경 사항을 모두 백업하는 방식

 

후보키(candidate) - 튜플을 유일하게 식별할 수 있는 부분집합, 유일성, 최소성

기본키(Primary Key) - 후보키중 선택, 식별자(고유함[개체무결성], not null), 조합도 가능

대체키(Alternate) - 후보키 중 기본키를 제외한 나머지 키

슈퍼키 - 후보키와 비슷한데 속성키의 집합으로 이루어져 있으며, 유일성은 만족하나 최소성을 만족못함(학번+성명은 유일성 만족하나, 성명만으로는 구별 불가하여 최소성 만족 불가)

외래키 - 릴레이션(태이블) 간 참조 관계를 표현함, 참조 태이블의 기본키(참조 무결성)

- : 뒤에 REFERENCES 포함, 옵션: CASCADE- 함께 적용, RESTRICT- 변경 유지, SET NULL- 다른개체 null

- CASCADE: 연쇄적으로 수정 및 삭제(종속) ex. ON DELETE SET NULL ON UPDATE CASCADE

 

이상: Anomaly 삽입, 삭제, 갱신 이상(Insert, Deletion, Update)

 

정규화(normalization) - 도부이결다조(도메인 원자->1-> 부분 종속->2-> 이행적->3-> 결정자->bcnf-> 다치->4-> 조인->5) 도메인 원자성 외에는 다 제거되어야 만족

 

2정규형 - 모든 도메인 원자값이며, 부분종속이 아닌 완전 종속 상태

 

비정규화(denormalization) - 비정규화. 정규화 반대. 대체로 정규화 설명과 같이 나온다.

 

INDEX - 자주 검색되는 대상으로 성능 향상을 위함.(단점 시공간 많이 필요) hint. 변수명에 idx 들어가면 인덱스임

클러스터드 인덱스 - 이미 정렬, 바로 값 찾음, 빠르나 수정 힘듬(재정렬 때문)

넌클러스터드 인덱스 - 성능은 보다 떨어지나 여러개 인덱스 설정 유리, 불특정 범위에서 검색 시 유리

선택성 - 인덱스 설계시 선택성(Selectivity)이 좋아야함

 

Locking(로킹) - DB 동시성으로 데이터를 잃거나 부정적 효과를 방지하기 위함(병목 방지)

 

메타 데이터 - 데이터에 관한 데이터라고 해서 데이터 사전을 메타데이터라고도 함

구축을 위해 'MARC', 'DC', ‘ONIX’, ‘MODS’(상호운용성 만족) 데이터 포맷 사용

상호운용성 - 같은 또는 타 기종 간의 통신 및 처리를 정확히 실행할 수 있는 것

MDR - (Metadata Registry)메타데이터 레지스트리

 

이력관리방식

-선분 이력 - 데이터 변경의 시작~종료 시점 관리

-시점 이력 - 데이터의 변경이 발생한 시간만 관리

-변경 이력 - 관리 중 데이터가 변경된 경우와 변경전 데이터를 모두 관리할 수 있도록 구성

-이력데이터 - 변경, 발생, 진행 3가지로 구분

 

JOIN - 분해된 릴레이션을 대상으로 질의, 자원과 시간 많이 소요

자연 조인 - 두 릴레이션의 공통 속성을 매개로 관계로 묵는 연산

조인 종속성 - 분할 R들을 모두 조인했을때 기존 R과 결과가 같은 경우

무손실 분해 - 릴레이션 R정규화 하여 생성된 R1, R2자연조인(natural)하여 원래 R로 무손실 복귀되는 경우 RR1,R2로 무손실 분해 된 것

*조인 : 두 테이블로부터 조건에 맞는 관련된 튜플을 하나의 테이블로 만듦

- 동등 조인(Equi Join) : '=' 만 사용

- 자연 조인(Natural Join) : 동등 조인에서 중복 속성 제거

- 외부 조인(Outer Join) : 조인시 조건에 맞지 않는 튜플도 결과 테이블에 포함

- 세타 조인(Theta Join) : '=' 제외 조건 수식을 표현하여 조인

 

DBA(DataBase Administration)

데이터베이스(database)의 전체적인 관리 운영(managing)에 대한 최고의 책임(responsible)

 

DBMS(DataBase Management System)

데이터베이스 관리 시스템, 데이터베이스(database)를 조작하는 소프트웨어(software), 사람과 데이터베이스 사이(between) 인터페이스 역할(paly the role)

 

후기 및 정리

이번 주 시험 잘 치셔서 꼭 합격하시길 바라겠습니다. 감사합니다.

 

조금의 도움이 되셨다면 로그인 없이도 가능한 댓글과

왼쪽 아래 ♥공감 버튼을 꾹 눌러주세요! 

 

 

 

728x90
반응형