호야의 블로그
정보처리기사 실기
데이터베이스
● 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나오면 거의 비트윈. like는 and로 못씀
● 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가 있을 때, R⊃S인 경우, S의 속성 값을 가진 것만 제외 한 것
○ 일반 집합 연산자
- 합집합(Union): 기호 ∪, 튜플의 합집합
- 교집합(Intersection): 기호 ∩, 튜플의 교집합
- Difference: 기호-, 두 릴레이션의 차집합
- Cartesian Product(교차곱): 기호 ×, 튜플들의 결합된 정보
● 데이터
○ 데이터 웨어하우스 - 의사결정, 원본DB로부터 정제된 DB, 다차원 분석도구
○ 데이터마트 - 웨어하우스의 작은 규모, 관심있는 데이터만 담음
○ 데이터큐브 - OLAP의 검색속도를 향상, 차원과 사실로 정의(Dimension & Fact)
○ 자료사전(Data Dictionary) - 칼럼정의서의 코드 이름 규칙 관련(파일, 변수 목록), 데이터 개체를 유지 관리, 스키마, 언어, 제약 등의 내용 있음
○ 데이터 마이닝 - DW의 데이터 집합에서 사용자의 요구에 따라 유용하고 가능성 있는 정보를 발견하기 위한 기법
- 군집화: 상호 간에 유사한 특성을 갖는 데이터들을 집단화(Clustering)하는 방법
● 병행 제어
- 다중 프로그램의 이점을 활용하여 동시에 여러 개의 트랜잭션을 병행 수행할 때 실행되는 트랜잭션들이 데이터베이
스의 일관성을 파괴하지 않도록 트랜잭션 간의 상호 작용을 제어하는 기술
○ (Locking)로킹 기법: 주요 데이터의 액세스를 상호 배타적으로 하는 것으로, 트랜잭션들이 어떤 로킹 단위를 액세스하기 전에 Lock을 요청해서 Lock이 허락되어야만 그 로킹 단위를 액세스할 수 있도록 하는 기법
● 함수 종속
- 애트리뷰트 A의 값 각각에 대해서 B의 값이 오직 하나만 연관되어 있을 때 B는 A에 함수 종속 A→B
- A 값에 따라 B 값을 알 수 있을 때 A를 결정자(Determinant), B를 종속자(Dependent), Y는 X에 함수적 종속
○ 완전 함수적 종속 - A가 B에 완전 종속
○ 부분 함수적 종속 - 완전한 종속이 아님. 부분 속성으로 결정, 속성 집합 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로 무손실 복귀되는 경우 R은 R1,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)
후기 및 정리
이번 주 시험 잘 치셔서 꼭 합격하시길 바라겠습니다. 감사합니다.
조금의 도움이 되셨다면 로그인 없이도 가능한 댓글과
왼쪽 아래 ♥공감 버튼을 꾹 눌러주세요!
'IT > IT' 카테고리의 다른 글
정보처리기사 실기 요점 정리(3) - 업무프로세스 2 (0) | 2019.04.11 |
---|---|
정보처리기사 실기 요점 정리(2) - 업무프로세스 1 (0) | 2019.04.11 |
개인 Github 블로그 공유 (0) | 2019.04.01 |
ideone으로 가볍게 컴파일링 (0) | 2018.11.12 |
마이크로프로세서 - MCU 8051 LED 신호등 제어기 (0) | 2018.11.08 |