데이터베이스(Database)
공중 통저운 - 공동으로 사용될 데이터를 중복을 배제하여 통합하고, 저장하여 사용할 수 있도록 하는 운영 데이터
DBMS의 필수 기능
정조제 - 정의(Definition) / 조작(Manipulation) / 제어(Control)
데이터의 독립성
논리적 독립성 : 데이터의 논리적 구조를 변경시키더라도 응용 프로그램은 영향을 받지 않음
물리적 독립성 : 디스크를 추가/변경 하더라도 응용 프로그램은 영향을 받지 않음
스키마(Schema) : 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한 것
스키마의 종류
외내개 - 외부 / 내부 / 개념
외부 스키마 : 사용자나 프로그래머가 논리적 구조 정의한 것
개념 스키마 : 논리적 구조
내부 스키마 : 물리적 구조
데이터베이스 설계
요개논물 구 - 요구조건분석 -> 개념적 설계 -> 논리적 설계 -> 물리적 설계 -> 구현
데이터 모델 구성 요소
개속관 - 개체 / 속성 / 관계
개체(Entity) : DB에 표현하려는 것. <<사각형>>
속성(Attribute) : DB를 구성하는 가장 작은 논리적 단위 (기설파 - 기본 / 설계 / 파생) <<타원>>
관계(Relationship) : 개체와 개체 사이의 논리적인 연결 (종중재배 - 종속 / 중복 / 재귀 / 배타) <<마름모>>
데이터 모델에 표시할 요소
구연제 - 구조 / 연산 / 제약조건
구조(Structure) : 논리적으로 표현된 개체 타입들 간의 관계로, 데이터 구조 및 정적 성질 표현
연산(Operation) : DB에 저장된 실제 데이터를 처리하는 작업에 대한 명세
제약 조건(Constraint) : DB에 저장될 수 있는 실제 데이터의 논리적인 제약 조건
데이터 모델 종류
개논물 - 개념적 데이터 모델(E-R 모델) / 논리적 데이터 모델 / 물리적 데이터 모델
관계형 데이터베이스 : 2차원적인 표를 이용해서 데이터 상호 관계를 정의하는 데이터베이스
관계형 데이터 모델 : (위랑 동일) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 모델
릴레이션을 구성하는 것들
튜플(Tuple)
속성(Attribute)
도메인(Domain) : 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자값들의 집합.
키
후보키 : 속성들 중 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합. 유일성&최소성
기본키 : 중복, NULL X
대체키 : 후보키가 둘 이상일 때 기본키를 제외한 나머지 키
슈퍼키 : 속성들의 집합으로 구성된 키. 유일성 O, 최소성 X
외래키 : 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
무결성 : DB에 저장된 데이터값과 현실 세계의 실제값이 일치하는 정확성
개체 무결성 : 기본키는 NULL 이나 중복값을 가질 수 없다
참조 무결성 : 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다
데이터 무결성 강화
애트제 - 애플리케이션 / 데이터베이스 트리거 / 제약 조건
대절해비 - 관계대수는 절차적 언어, 관계해석은 비절차적 언어
관계대수 : 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적 언어
관계해석 : 관계 데이터의 연산을 표현하는 방법 (E.F.Codd)
이상(Anomaly) : 데이터의 중복으로 인해 테이블 조작 시 문제가 발생하는 현상
삽삭갱 - 삽입 / 삭제 / 갱신
삽입 이상 : 데이터를 삽입할 때 의도와는 상관없이 원하지 않는 값들로 인해 삽입할 수 없게 되는 현상
삭제 이상 : 연쇄 삭제 발생
갱신 이상 : 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 불일치성이 생기는 현상
X->Y : 함수적 종속 (X는 결정자, Y는 종속자)
X->Y->Z : 이행적 함수적 종속 (Transitive Functional Dependency)
{a,b} 둘다 : 완전 함수적 종속 (Full Functional Dependency)
{a,b} 중 a 또는 b로 식별 : 부분 함수적 종속 (Partial Functional Dependency)
정규화(Normalization) : 테이블의 속성들이 상호 종속적인 관계를 갖는 특성을 이용하여 테이블을 무손실 분해하는 과정
정규화 과정
원부이 결다조 - 원자값(1) / 부분 함수적 종속 제거(2) / 이행적 함수적 종속 제거(3) / 결정자 (BCNF) / 다치 값 제거(4) / 조인 종속성 이용(5)
제 1정규형 : 도메인(테이블의 모든 속성)이 원자값만으로 이루어짐
제 2정규형 : 부분 함수적 종속 제거
제 3정규형 : 이행적 함수적 종속 제거
BCNF : 모든 결정자가 후보키
제 4정규형 : 다치 종속 제거
제 5정규형 : 조인 종속성 이용
반정규화(Denormalization) : 정규화된 모델을 의도적으로 통합, 중복, 분리하여 정규화 원칙을 위배하는 행위
분할
수평 분할 : 레코드를 기준으로 테이블을 분할.
수직 분할 : 속성을 기준으로 테이블을 분할.
중복 테이블 추가
집진특 - 집계 테이블 추가 / 진행 테이블 추가 / 특정 부분만을 포함하는 테이블의 추가
시스템 카탈로그 : 다양한 객체에 관한 정보를 포함하는 시스템 DB. DBMS가 스스로 생성하고 유지함.
메타 데이터 : 시스템 카탈로그에 저장된 정보
데이터 디렉터리 : DD(데이터 사전)에 수록된 데이터에 접근하는 데 필요한 정보를 관리 유지하는 시스템
트랜잭션(Transaction) : 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미함.
트랜잭션의 특성
ACID - Atomic / Consistency / Isolation / Durability
원자성(Atomic) : 트랜잭션의 연산은 모두 반영되도록 완료(Commit)되거나 전혀 반영되지 않도록 복구(Rollback)되어야 함
일관성(Consistency)
독립성(Isolation)
영속성(Durability)
CRUD 분석 : 프로세스와 테이블 간에 CRUD 매트릭스를 만들어서 트랜잭션을 분석하는 것
Create / Read / Update / Delete
인덱스(Index) : 데이터 레코드를 빠르게 접근하기 위해 <키 값, 포인터> 쌍으로 구성되는 데이터 구조이다.
트비함도클 - 트리 기반 / 비트맵 / 함수 기반 / 도메인 / 클러스터드
트리 기반 인덱스 : 인덱스를 저장하는 블록들이 트리 구조를 이룸
비트맵 인덱스 : 컬럼의 데이터를 0 또는 1로 변환하여 인덱스 키로 사용
함수 기반 인덱스 : 컬럼에 함수나 수식을 적용해서 산출된 값을 사용
도메인 인덱스 : 개발자가 필요한 인덱스를 직접 만들어 사용
클러스터드 인덱스 : 데이터가 정렬되어 저장되는 방식, 검색이 빠름
넌클러스터드 인덱스 : 키 값만 정렬되어 있음
뷰(View) : 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 존재하는 가상 테이블
CREATE로 정의, DROP로 삭제. 인덱스 X
클러스터(Cluster) : 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법
처리 범위가 넓음 -> 단일 테이블 클러스터링
조인이 많이 발생함 -> 다중 테이블 클러스터링
파티션(Partition) : 대용량의 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것
파티션 종류
범해조 - 범위 / 해쉬 / 조합
범위(Range) 분할 : 열 기준
해쉬(Hash) 분할 : 해쉬 함수 적용 (근데 얘도 열 기준이긴 함)
조합(Composite) 분할 : 범위+해쉬
분산 데이터베이스의 목표 [투명성(Transparency)의 종류]
위중병장 - 위치 / 중복 / 병행 / 장애
위치(Location) 투명성 : 위치 몰라도 논리적인 명칭만으로 액세스 가능
중복(Replication) 투명성 : 동일 데이터가 중복되어 있어도 사용자는 하나의 데이터만 존재하는 것처럼 사용
병행(Concurrency) 투명성 : 트랜잭션들이 동시에 실현되더라도 결과는 영향을 받지 않음
장애(Failure) 투명성 : 장애에도 불구하고 트랜잭션을 정확히 처리
데이터베이스 이중화의 분류
이거지~(Eagerzy) - Eager / Lazy
Eager : 변경 발생 시 즉시 전달, 즉시 적용
Lazy : 수행 종료 시 변경 사실을 새로운 트랜잭션에 작성
클러스터링(Clustering) : 두 대 이상의 서버를 하나의 서버처럼 운영하는 기술
고가 병처리 - 고가용성 / 병렬 처리
고가용성 클러스터링 : 장애 발생 시 다른 노드(서버)가 받아 처리
병렬 처리 클러스터링 : 하나의 작업을 여러 서버에서 분산하여 처리
RTO(Recovery Time Objective) : 목표 복구 시간
RPO(Recovery Point Objective) :목표 복구 시점
접근통제 기술
임강역 - 임의 / 강제 / 역할기반
임의 접근통제(DAC - Discretionary) : 사용자의 신원에 따라 접근 권한 부여
강제 접근통제(MAC - Mandatory) : 등급을 비교하여 접근 권한 부여
역할기반 접근통제(RBAC - Role Based) : 역할에 따라 접근 권한 부여
로그 파일 : 상태 변화를 시간의 흐름에 따라 모두 기록한 파일. 과거로 복귀(UNDO)시키거나 현재로 재생(REDO)시킴.
UNDO : 시작과 완료에 대한 기록이 있는 작업을 재작업. 이전값->이후값
REDO : 시작은 있지만 완료가 없는 기록을 취소함. 이후값->이전값
스토리지(Storage) : 대용량의 데이터를 저장하기 위해 서버와 저장장치를 연결하는 기술
다나스 - DAS / NAS / SAN
DAS(Direct Attached Storage) : 직접 연결
NAS(Network Attached Storage) : 네트워크를 통해 연결
SAN(Storage Area Network) : DAS+NAS. 광 채널(FC) 이용.
엔티티(Entity)를 테이블로 변환
(논리적 설계) - (물리적 설계)
엔티티 - 테이블
속성 - 컬럼
주 식별자 - 기본키
외부 식별자 - 외래키
관계 - 관계
Primary UID - 기본키
Secondary UID - 유니크키
배열 : 크기와 형(Type)이 동일한 자료들이 순서대로 나열된 자료이 집합
연속 리스트(Contiguous List) : 배열과 같이 연속되는 기억장소에 저장되는 자료구조
연결 리스트(Linked List) : 자료들을 임의의 기억공간에 기억시키되, 순서에 따라 노드의 포인터 부분을 이용하여 서로 연결시킨 자료구조
방향 그래프 최대 간선 수 : n(n-1)
무방향 그래프 최대 간선 수 : n(n-1)/2
선형 구조 : 리스트, 스택, 데크, 큐
비선형 구조 : 트리, 그래프
트리 : 노드와 선분으로 이루어져있고 정점 사이에 사이클이 형성되어 있지 않은 비선형 구조.
디그리(차수) : 자식의 수 (손주는 안셈!)
트리의 디그리 : 노드들의 디그리 중 가장 많은 수
단말 노드 : 자식이 하나도 없는 노드
이진 트리 : 차수가 2 이하인 노드들로 구성된 트리
Preorder(전위), Inorder(중위), Postorder(후위)
정렬(Sort)
삽입(Insertion) 정렬 : 이미 순서화된 파일에 새로운 하나의 레코드를 순서에 맞게 삽입시켜 정렬하는 방식
선택(Selection) 정렬 : 최소값을 찾아 앞의 레코드 위치에 놓는 것을 반복하여 정렬하는 방식
버블(Bubble) 정렬 : 인접한 두 개의 레코드 키 값을 비교하여 위치를 교환하는 정렬 방식
쉘(Shell) 정렬 : 어떤 매개변수의 값으로 서브 파일을 구성하고 각 서브 파일을 삽입 정렬 방식으로 순서 배열하는 과정을 반복하는 정렬 방식
퀵(Quick) 정렬 : 키를 기준으로 작은 값은 왼쪽, 큰 값은 오른쪽 서브파일에 분해시키는 과정을 반복하는 정렬 방식
힙(Heap) 정렬 : 전이진 트리를 이용한 정렬 방식
합병(Merge) 정렬 : 이미 정렬되어 있는 두 개의 파일을 한 개의 파일로 합병하는 정렬 방식
기수(Radix) 정렬 : 큐를 이용하여 자릿수(Digit)별로 정렬하는 방식
'TIL > 기타' 카테고리의 다른 글
정처기 실기 용어정리 (4장) (3) | 2024.10.09 |
---|---|
정처기 실기 용어정리 (3장) (0) | 2024.10.01 |
정처기 실기 용어정리 (1장) (1) | 2024.09.18 |
9. 정보처리기사 필기 & CS 용어 공부 (1) | 2024.04.24 |
8. 응급처치 교육 (0) | 2024.04.24 |