정처기 필기_데이터베이스
출처: 시나공 summary 정보처리기사 실기
- 데이터베이스의 정의
특징: 통합된 데이터(Integrated) & 저장된(Stored) 데이터 & 운영(Operational) 데이터 & 공용(Shared) 데이터
통합된 데이터: 중복이 최소화된 - 검생의 효율성을 위해
저장된 데이터: 컴퓨터가 접근 가능한 저장 매체에 저장된 데이터
운영 데이터: 존재 가치가 확실한 (꼭 필요한) 데이터
공용 데이터: 여러 응용 프로그램이 공동으로 사용하는 데이터
- DBMS 시스템 구성요소
각 구성 요소들의 위치 파악하기
출처: https://beansberries.tistory.com/entry/DBMS%EC%9D%98-%EA%B5%AC%EC%84%B1
- 정규화의 목적
: 어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능하게 만든다.
: 중복을 배제하여 삽입, 삭제, 갱신 이상의 발생을 방지하는 것이다.
: 데이터 삽입시 릴레이션을 재구성할 필요성을 줄인다.
: 효과적인 검색 알고리즘을 생성할 수 있다.
트리에서 차수(Degree)
가장 차수가 많은 노드의 차수(한 노드에 자식노드로 뻗어져있는 줄의 개수)이다.
시그마
=SELECT
: 조건을 만족하는 릴레이션의 수평적 부분집합을 구성한다.
자료 구조의 분류
- 선형 구조: 스택,큐,데크,연결리스
- 비선형 구조: 트리, 그래프
Anomaly 이상
= 데이터베이스 내에서 데이터들이 불필요하게 중복되어 릴레이션 조작 시 예기치 못한 곤란한 현상을 뜻한다.
Deque 데크
= 양 방향에서 입/출력이 가능한 선형 자료구조로 2개의 포인터를 이용하여 리스트의 양쪽 끝 모두에서 삽입/삭제가 가능하다.
- 로킹(Locking)
정의: 하나의 트랜잭션이 데이터를 액세스 하는 동안 다른 트랜잭션이 그 데이터 항목을 액세스할 수 없도록 하는 방법
특징: 로킹의 대상이 되는 객체의 크기를 로킹 단위라고 한다
: 데이터베이스, 파일, 레코드 등은 로킹 단위가 될 수 있다
: 로킹의 단위가 커지면 데이터베이스의 공유도, 즉 병행성은 감소한다
: 로킹 단위가 크면 로크 수가 적어 관리하기 쉽지만 병행성 수준이 높아진다
데이터 모델에 표시할 사항
1. 구조(Structure)
논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 정적 성질을 표현함
2. 연산(Operation)
데이터베이스에 저장된 실제 데이터를 처리하는 방법을 표시하는 것으로서 데이터베이스를 '조작'하는 기본 도구임
3. 제약조건(Constraint)
데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약조건을 표시함.
관계대수 | 관계해석 |
---|---|
원하는 정보와 그 정보를 어떻게 유도하는가를 기술 절차적 피연산자가 릴레이션이고, 결과도 릴레이션 릴레이션 조작을 위한 연산의 집합 연산의 순서를 명시 순수 관계 연산자와 일반 집합 연산자 |
원하는 정보가 무엇이라는 것만 정의 비절차적 계산 수식을 사용 튜플/ 도메인 관계해석 Predicate Calculus 질의어로 표현한다. |
관계대수와 관계해석은 관계 데이터베이스를 처리하는 기능과 능력 면에서 동등하다.
- 정규화(Normalization)
= 더 작은 테이블로 분해해 가면서 종속성을 제거하는 것
= 속성 간의 종속성을 피하기 위한 것
테이블을 결합하여 종속성을 증가시키는 것(x) 개체 간의 종속성을 피하기 위한 것 (x) 연산 시간을 감소한다 (x)
= 정규화는 데이터베이스의 논리적 설계 단계에서 수행한다.
- 정규화 목적
데이터 구조의 안정성을 최대화
데이터의 중복이나 이상(anomaly)을 방지하기 위한것. 오히려 연산시간이 늘어날 수 있다.
연산 시간을 감소한다 (x)
어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능하게 만든다
효과적인 검색 알고리즘을 생성할 수 있다.
중복을 배제하여 삽입/삭제/갱신 이상의 발생을 방지한다.
데이터 삽입 시 릴레이션을 재구성할 필요성을 줄인다.
- 정규화 과정
이행적 종속 관계
a->b 이고 b-> c일 때, a->c를 만족하는 관계이다.
비정규 릴레이션 ->(도메인이 원자값) 1NF ->(부분적 함수 종속 제거) 2NF ->(이행적 종속 제거) 3NF -> (결정자이면서 후보키가 아닌 것 제거) BCNF ->(다치 종속) 4NF ->(조인 종속성 이용) 5NF
- 개체-관계(Entity-Relationship) 모델
: 개념적 데이터 모델의 가장 대표적인 것으로, 1976년 Peter Chen 에 의해 제안되었다.
: 개체 타입(Entity Type)과 이들 간의 관계 타입(Relationship Type)을 이용해 현실 세계를 개념적으로 표현한다.
: 데이터를 개체(Entity), 관계(Relationship), 속성(Attribute)으로 묘사한다.
: e-r 다이어그램으로 표현한다
사각형: 개체 타입
마름모: 관계 타입
타원: 속성
선, 링크: 개체 타입과 속성 연결
: 특정 DBMS를 고려한 것이 아니기 때문에 관계 표현에 제한이 없다.
- 순차 파일(Sequential File)
대화식 처리보다 일괄처리에 적합한 구조이다
매체 변환이 쉬어 어떠한 매체에도 사용 가능
연속적인 레코드의 저장에 의해 레코드 사이에 빈 공간이 존재하지 않으므로 기억장치의 효율적인 이용이 가능하다.
레코드가 논리적인 처리 순서에 따라 연속된 물리적 저장 공간에 차례대로 기록되어 있다.
파일에 새로운 레코드를 삽입/삭제/수정하는 경우 파일 전체를 복사해야 하므로 시간이 많이 소요된다.
특정 레코드를 검색하려면 순차적으로 모든 레코드를 비교하면서 검색해야 하므로 검색 효율이 낮다. (즉각적인 응답을 요구하는 대화형 처리에는 적합하지 않다.)
- 색인 순차 파일(Indexed Sequential File)
: 파일을 조작할 때 색인 또는 오버프로를 위한 공간이 필요하고, 파일을 사용하던 중에 오버플로 레코드가 많아지면 재편성해야 하는 파일 구조이다.
: 색인을 이용한 순차적인 접근 방법을 제공하며 ISAM(Indexed Sequential Access Method)이라고도 한다.
색인 순차 파일의 구성
기본구역(prime area): 실제 레코드들을 기록하는 부분으로 각 레코드는 키 값 순으로 저장
색인구역(index area): 기본구역에 있는 레코드을의 위치를 찾아가는 색인이 기록되는 부분으로, 트랙 색인/실린더 색인/마스터 색인 구역으로 구분할 수 있음
오버플로 구역(overflow area): 기본 구역에 빈 공간이 없어서 새로운 레코드의 삽입이 불가능할 때를 대비하여 예비적으로 확보해 둔 부분
-실린더 오버플로 구역: 각 실리더마다 만들어지는 오버플로 구역으로, 해당 실린더의 기본 구역에서 오버플로된 데이터를 기록함
-독립 오버플로 구역: 실린더 오버플로 구역에 더 이상 오버플로된 데이터를 기록할 수 없을 때 사용할 수 있는 예비 공간으로, 실린더 오버플로 구역과는 별도로 만들어짐
색인순차 파일 장점:
순차 처리와 랜덤 처리가 모두 가능
효율적인 검색 가능, 레코드의 삽입/삭제/갱신이 용이
색인순차 파일 단점:
색인구역과 고버플로우 구역을 구성하기 위한 추가 기억 공간이 필요
파일이 정렬되어 있어야 하므로 추가,삭제가 많으면 효율이 떨어진다
색인을 이용한 액세스를 하기 때문에 액세스 시간이 랜덤 편성 파일보다 느리다.
- 스키마
- 정의
: 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한다.
: 데이터베이스를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약조건 등에 관해 전반적으로 정의한다.
: 스키마는 사용자의 관점에 따라 외부/개념/내부 스키마로 나뉜다.
: 데이터 사정에 저장되며, 다른 이름으로 메타 데이터라고도 한다.
- 외부 스키마
: 사용자나 응용 프로그래머가 각 '개인의 입장'에서 필요로하는 데이터베이스의 논리적 구조를 정의한다.
: 전체 데이터베이스의 한 논리적인 부분으로 볼 수 있으므로 서브 스키마라고도 한다.
: 하나의 데이터베이스 시스템에는 여러 개의 외부 스키마가 존재할 수 있으며, 하나의 외부 스키마를 여러 개의 응용 프로그램/사용자가 공용할 수 있다.
: 같은 데이터베이스에 대해서도 서로 다른 관점을 정의할 수 있도록 허용한다.
: 일반 사용자는 질의어(sql)를 사용하여 db를 사용한다.
- 개념 스키마
: 데이터베이스의 전체적인 '논리적 구조'로서, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 데이터베이스로 '하나만 존재'한다.
: 개체 간의 관계와 제약조건을 나타내고 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의한다.
: 단순히 스키마라고 하면 개념 스키마를 의미한다.
: 기관이나 조직체의 관점에서 데이터베이스를 정의한 것이다.
: 데이터베이스 관리자에 의해서 구성된다.
- 내부 스키마
: '물리적 저장장치의 입장'에서 본 데이터베이스 구조로, 물리적인 저장장치와 밀접한 계층이다.
: 실제로 데이터베이스에 저장될 레코드의 물리적인 구조를 정의하고, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타낸다.
: 시스템 프로그래머/설계자가 보는 관점의 스키마이다.
: 데이터베이스의 물리적 구조를 정의한다.
: 데이터의 실제 저장 방법을 기술한다.
- 트랜잭션의 특징
- Atomicity(원자성)
: 트랜젝션의 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 함
: 트랜잭션의 모든 명령은 반드시 완벽히 수행되어야 하며, 모두가 완벽히 수행되지 않고 어느 하나라도 에러가 발생하면 트랜잭션 전부가 취소되어야 함
- Consistency(일관성)
: 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환함
: 시스템이 가지고 있는 고정 요소는 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야 함
- Isolation(독립성, 격리성)
: 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어들 수 없음
: 수행중인 트랜잭션은 완전히 완료될 때까지 다른 트랜잭션에서 수행 결과를 참조할 수 없음
- Durability(영속성, 지속성)
: 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함
- 데이터베스의 특징
- 실시간 접근성(Real Time Accessibility)
: 수시적이고 비형식적인 질의(조회)에 대하여 _실시간 처리에 의한 응답이 가능_함
- 계속적인 변화(Continuous Evolution)
: 새로운 데이터의 삽입, 삭제, 갱신으로 _항상 최신의 데이터를 유지_함
- 동시 공유(Continuous Sharing)
: 여러 사용자가 _동시에 자기가 원하는 데이터를 이용할 수 있_음
- '내용'에 의한 참조(Content Reference)
: 데이터베이스에 있는 데이터를 참조할 때 데이터 (주소나 위치에 의해서가 아니라) 사용자가 요구하는 데이터 내용으로 데이터를 찾음
- 데이터의 논리적 독립성
: 응용 프로그램과 데이터를 독립시킴
: 데이터의 논리적 구조를 변경시키더라도 응용 프로그램은 변경되지 않음
- 데이터의 물리적 독립성
: 응용 프로그램과 보조기억장치와 같은 물리적 장치를 독립시킴
: 새로운 디스크를 도입하더라도 응용 프로그램에는 영향을 주지 않고 데이터의 물리적 구조만 변경될 수 있는 특징
+데이터베이스는 자료의 중복을 배제한 데이터의 모임이다.
- 데이터베이스 언어(Database Language)
- DDL(Data Definition Language) 데이터 정의 언어
정의: DB구조, 데이터 형식, 접근 방식 등 DB를 구축하거나 수정할 목적으로 사용하는 언어이다.
: 번역한 결과가 데이터 사전(Data-Dictionary)이라는 특별한 파일에 여러 개의 테이블로 저장된다
기능: 외부 스키마 명세 정의
: 데이터베이스의 논리적 데이터 구조와 물리적 데이터 구조의 정의 및 수정
: 논리적 데이터 구조와 물리적 데이터 구조 간의 사상 정의
: 스키마에 사용되는 제약조건에 대한 명세 정의
: 데이터의 물리적 순서 규정
종류: CREATE, ALTER, DROP
- DML(Data Manipulation Language) 데이터 조작 언어 = 서브 언어
정의: 사용자로 하여금 데이터를 처리할 수 있게 하는 도구로서 사용자(응용 프로그램)와 DBMS 간의 인터페이스를 제공한다
: 응용 프로그램을 통하여 사용자가 DB의 데이터를 실질적으로 조작할 수 있도록 하기 위해 C, COBOL 등의 호스트 언어에 DB 기능을 추가시켜 만든 언어이다
: 대표적인 DML에는 질의어가 있으며, 질의어는 터미널에서 주로 이용하는 비절차적 데이터 언어이다
종류: SELECT, INSERT, DELETE, UPDATE
- DCL(Data Control Language) 데이터 제어 언어
정의: 무결성, 보안 및 권한 제어, 회복 등을 하기 위한 언어이다.
: 데이터를 보호하고 데이터를 관리하는 목적으로 사용된다.
: 데이터베이스를 공용하기 위한 데이터 제어를 정의하고 기술한다.
기능: 불법적인 사용자로부터 데이터를 보호하기 위한 데이터 보안
: 데이터의 정확성을 위한 무결성 유지
: 시스템 장애에 대비한 데이터 회복과 병행수행 제어
: 데이터베이스를 공용하기 위한 데이터 제어를 정의하고 기술한다.
종류: COMMIT, ROLLBACK, GRANT, REVOKE
- ROLLBACK 연산
= 트랜잭션의 실행이 실패하였음을 알리는 연산자. 트랜잭션이 수행한 결과를 원래의 상태로 원상 복귀시키는 연산
- 데이터베이스 설계
고려사항: 무결성/일관성/회복성/보안성/효율성/확장성 유지 (종속성은 고려하지 X)
- 개념적 설계(정보 모델링, 개념화)
: 정보의 구조를 얻기 위하여 현실 세계의 무한성과 계속성을 이해하고, 다른 사람과 통신하기 위하여 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정이다.
: 스키마 모델링과 트랜잭션 '모델링'을 병행하여 수행한다.
: DBMS에 '독립적인' 개념 스키마를 설계한다.
: 개념 스키마는 개념적 설계 단계에서 설계한다. (외부 스키마는 데이터베이스를 작성한 후 운영중에 작성한다.)
- 논리적 설계(데이터 모델링)
: 현실 세계에서 발생하는 자료를 컴퓨터가 처리할 수 있는 물리적 저장장치에 저장할 수 있도록 변환하기 위해 특정 DBMS가 지원하는 논리적 자료 구조로 변환시키는 과정이다.
: 개념적 설계가 개념 스키마를 설계하는 단계라면 논리적 설계에서는 '개념 스키마를 평가 및 정제하고 특정 DBMS에 '종속적인' 논리적 스키마를 설계하는 단계'이다.
: 트랜잭션의 '인터페이스'를 설계한다.
: 관계형 데이터베이스라면 테이블을 설계하는 단계이다.
- 물리적 설계(데이터 구조화)
: 논리적 설계 단계에서 논리적 구조로 표현된 데이터를 디스크 등의 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정이다.
: 저장 레코드 양식 설계, 레코드 집중의 분석 및 설계 파일의 저장 구조 및 탐색 기법등의 설계를 수행하는 단계이다.
: 고려사항은 반응시간, 공간 활용도, 트랜잭션 처리량이다.
: 트랜잭션을 '작성'한다.
- 릴레이션의 특징
: 속성은 더 이상 쪼갤 수 없는 원자값만을 저장한다.
: 한 릴레이션에 포함된 튜플들은 모두 상이하다. (=모든 튜플은 서로 다른 값을 갖는다)
: 한 릴레이션에 포함된 튜플 사이에는 순서가 없다, 릴레이션 스키마를 구성하는 속성들 간의 수너도 중요하지 않다.
: 튜플들의 삽입, 삭제 등의 잡업으로 인해 릴레이션은 시간에 따라 변한다.
: 속성의 명칭은 유일해야 하지만, 속성을 구성하는 값은 동일한 값이 있을 수 있다.
: 튜플을 유일하게 식별하기 위해 속성들의 부분집합을 키(Key)로 설정한다.
![](C:\Users\박수진\Desktop\job_related\정처기 필기 공부\릴레이션.png)
__Degree( 속성의 수 = 열의 수) __
Cardinality( 튜플의 수 = 행의 수)
- 뷰(View)
: 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된 가상 테이블이다.
: 저장장치 내에 물리적으로 존재하지 않지만, 사용자에게는 있는 것처럼 간주된다.
- 뷰의 특징
: 가상 테이블이기에 물리적으로 구현되어 있지 않다.
: 필요한 데이터만 뷰로 정의해서 처리할 수 있기 때문에 관리가 용이하고 명령문이 간단해진다.
: '기본 테이블의 기본키를 포함한 속성(열) 집합으로 뷰를 구성해야만' 삽입, 삭제, 갱신 연산이 가능하다.
: 정의된 뷰는 다른 뷰의 정의에 기초가 될 수 있다.
: 하나의 뷰를 삭제하면, 그 뷰를 기초로 정의된 다른 뷰도 자동으로 삭제된다.
: 뷰는 정의를 변경할 수 없기 떄문에 ALTER문을 사용할 수 없습니다. 뷰의 정의를 변경하려면 지우고 다시 만들어야 한다.
- 뷰의 장점
: 논리적 데이터의 '독립성'을 제공한다.
: 접근 제어를 통한 자동 보안이 제공된다.
: 동일 데이터에 대해 동시에 여러 사용자의 상이한 응용이나 요구를 지원해준다.
- 뷰의 단점
: 독립적인 인덱스를 가질 수 없다.
: 뷰의 정의를 변경할 수 없다.
: 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신 연산에 제약이 따른다. (제약: 기본 테이블의 기본키를 포함한 속성(열) 집합으로 뷰를 구성해야만)
//뷰 정의문
CREATE VIEW 뷰이름[(속성이름[,속성이름])]
AS SELECT문;
//뷰 삭제문
DROP VIEW 뷰이름 {RESTRICTED | CASCADE};
- 시스템 카탈로그
: 시스템 그 자체에 관련이 있는 스키마 및 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스이다.
: 데이터베이스에 포함되는 모든 데이터 객체에 대한 정의나 명세에 관한 정보를 유지관리하는 시스템 테이블이다.
: 데이터 정의어(DDL)의 결과로 구성되는 기본 테이블, 뷰, 인덱스, 패키지, 접근 권한 등의 데이터베이스 구조 및 통계 정보를 저장한다. (DDL의 결과는 사용하는 DBMS의 종류에 따라 다르게 생성되기에, 동일한 구조로 필요한 정보를 제공하지 X)
: 카탈로그들이 생성되면 자료 사전(Data Dictionary)에 저장되기 떄문에 좁은 의미로는 카탈로그를 자료 사전이라고도 한다.
: 카탈로그에 저장된 정보를 메타 데이터라고도 한다.
- 시스템 카탈로그의 특징
: 가상 테이블이 아니라 실제로 존재하는 테이블이다.
: 카탈로그 자체도 시스템 테이블로 구성되어 있어 일반 이용자도 SQL을 이용하여 내용을 검색해 볼 수 있다.
: DBMS가 스스로 생성하고 유지한다.
: INSERT, DELETE, UPDATE문으로 갱신하는 것은 허용하지 않는다.
: 카탈로그는 사용자가 sql문을 실행시켜 기본 테이블, 뷰, 인덱스 등에 변화를 주면 시스템이 자동으로 갱신된다.
- 분산 데이터베이스의 장/단점
1. 장점
자료의 공유성 향상, 분산 제어 가능, 시스템 성능 향상
효용성과 융통성이 높음, 신뢰성/ 가용성이 높음, 점증적 시스템 용량 확장이 용이, 지역 자치성이 높음
2. 단점
데이터베이스 설계가 어려움, 소프트웨어 개발 비용이 증가, 처리 비용이 증가,
잠재적 오류가 증가, DBMS 가 수행할 기능이 복잡
-병행제어의 로킹(Locking)
로킹 단위가 작아지면 병행성 수준이 높아진다. = 로킹의 단위가 커지면 병행성 수준이 낮아진다.
로킹은 주요 데이터의 액세스를 상호 배타적으로 운영하는 것이다.
로킹 단위는 병행제어에서 한꺼번에 로킹할 수 있는 객체의 크기를 의미한다.
데이터베이스, 파일, 레코드 등은 로킹 단위가 될 수 있다.
- 후위 운행(Postorder) root 제일 나중에
post order는 left-right-root이다.
트리를 운행하려면 먼저 서브 트리를 하나의 노드로 생각할 수 있도록 서브 트리 단위로 묶습니다.
- 중위 운행(Inorder)
Inorder는 left-root-right이다.
전위 운행(Preorder) root 를 제일 먼저
Preorder는 root-left-right이다.
- 스택
스택은 서브루틴 호출, 인터럽트 처리, 수식 계산 및 수식 표기법에 응용된다.
- 데이터베이스에서 사용되는 널(NULL)
공백도, 영(Zero)도 아닌 부재 정보를 나타낸다.
해싱 테이블 관련 용어
Synonym: 같은 home address(홈주소)를 갖는 레코드들의 집합
Collision: 서로 다른 2개 이상의 레코드가 같은 주소를 갖는 현상
Bucket: 하나의 주소를 갖는 파일의 한 구역을 의미. 버킷의 크기는 같은 주소에 포함될 수 있는 레코드의 수를 의미
Overflow: 계산된 home address의 bucket 내에 저장할 기억공간이 없는 상태
: bucket을 구성하는 slot이 여러 개 일 때는 collision은 발생해도 overflow는 발생하지 않을 수 있음
- 주요 알고리즘의 이해
- 버블 정렬
=둘씩 짝지어서 정렬해주는 것. ex) 1-2번째끼리 정렬, 2-3번째끼리정렬 ~~ 반복.
85624
->58624->56824->56284->56248
->56248->52648->52468
->25468->24568
- 선택 정렬
=이건 정렬해주는데, 정렬해서 바꿀때 서로 위치를 바꿔줘야 함.
ex) 1회차: 1-2끼리 정렬, 1-3끼리 정렬, 1-4끼리 정렬 & 2회차: 2-3끼리 정렬, 2-4끼리 정렬 ~반복
85624
->58624->28654
->28654->26854->25864->24865
->24865->24685->24586
->24586->24568
- 삽입 정렬
=2번째 값을 (1)범위랑 비교해서 제대로 된 위치에 삽입, 3번째 값을 (12)범위랑 비교해서 제대로 된 위치에 삽입, 4번째 값을 (13) 범위랑 비교해서 제대로 된 위치에 삽입. 이건 서로 위치 교환 할 필요 X. 제대로된 위치에 삽입하면 됨
85624
->58624
->56824
->25684
->24568
- 2-way 병합 정렬 (2 way merge sort)
=2개씩 쌍 만들기, 그 쌍안에서 정렬. 4개씩 쌍 만들기, 그 안에서 정렬. ~~ 반복.
71,2,38,5,7,61,11,26,53,42
-> (71,2) (38,5) (7,61) (11,26) (53,42) -> (2,71) (5,38) (7,61) (11,26)(42,53)
->((2,71) (5,38))((7,61) (11,26))(42,53)-> (2,5,38,71) (7,11,26,61)(42,53)
->((2,5,38,71) (7,11,26,61))(42,53) ->(2,5,7,11,26,38,61,71)(42,53)
->(2,5,7,11,26,38,61,71)(42,53) -> 2,5,7,11,26,38,42,53,61,71
- between 연산
where(점수 between 90 and 95)
=점수 >= 90 and 점수 <= 95
- 무결성 Integrity
- 개체 무결성
: 한 릴레이션의 기본키를 구성하는 어떠한 속성값도 널(null) 값이나 중복값을 가질 수 없다는 것을 의미
- 참조 무결성
: 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다.
: 릴레이션 r1에 저장된 튜플이 릴레이션 r2에 있는 튜플을 참조하려면, 참조되는 튜플이 반드시 r2에 존재해야한다.
- 도메인 무결성
: 특정 속성의 값이 그 속성이 정의된 도메인에 속한 값이어야 한다는 규정
NoSQL(=Not Only SQL)
: 비정형 데이터의 저장을 위해 유연한 데이터 모델을 지원한다.
: 전통적인 관계형 데이터베이스 관리 시스템과는 달리 비관계형(non-relational) DBMS이다.
: 비정규화를 통해 데이터를 모델링한다.
- 즉각 갱신 기법
=데이터베이스 로그(log)를 필요로 하는 회복 기법
'정보처리기사 > 정보처리기사 실기' 카테고리의 다른 글
[정처기 실기] 실무 알고리즘 응용_기본 알고리즘(수열, 수학) (0) | 2019.10.03 |
---|---|
[정처기 실기] 실무 알고리즘 응용_프로그래밍 언어의 기본 (0) | 2019.09.16 |
Comments