티스토리 뷰
인덱스 데이터베이스에서 자료를 빨리 찾게 해 줌
스택 가드(Stack Guard) 특정값을 저장해두었다가 값이 변경된 경우 오버플로우 상태로 가정하여 프로그램 실행을 중단하는 기술
데크(Deque) 리스트 양쪽 끝에서 삽입 삭제 가능. 스택+큐
트리 근노드(Root Node), 차수(Degree 자식수), 단말노드(Terminal Node 마지막노드)
정렬
내부 정렬 - 주기억장치
외부 정렬 - 보조기억장치
삽입정렬 키값 기준
버블정렬 한 번 실행시마다 가장 큰 값이 마지막이 됨
선택정렬 뒤의 값 중 가장 작은 값과 현재 값의 위치 변경
병합정렬, 퀵정렬(n**2), 힙정렬
검색 방식 종류 이진 검색, 선형 검색, 피보나치 검색, 블록 검색, 이진트리 검색
해싱 속도는 빠르지만 충돌 발생 가능
제산 방법, 중간제곱방법, 중첩방법, 기수변환방법, 계수분석방법
오버플로우 해결 방법
선형 개방 주소법, 폐쇄 주소 방법(해시 체이닝), 재해싱
동의어(Synonym) 충돌 집합
슬롯 슬롯 모임 = 버킷
충돌 같은 버킷에 여러 레코드 삽입(버킷에 여러 슬롯이 있는 경우 충돌 O, 오버플로우 발생 X)
인덱스 구성 방식 B+트리
파일 편성 방법
순차 파일
색인 순차 파일(기본 영역, 색인 영역-트랙,실린더,마스터, 오버플로 영역)
VSAM 파일(동적 인덱스. 기본-오버플로 영역 구분하지 않음)
직접 파일
역파일
정적인덱싱 인덱스 구조가 바뀌지 않음
동적인덱싱
데이터웨어하우스 데이터집합
OLAP(On-Line Analytical Processing) 데이터분석기술
OLAP 연산 종류: Roll-Up, Drill-Down, Dicing, Slicing
데이터베이스 용어 빅데이터, 데이터마이닝, Hadoop
데이터베이스 언어 데이터 정의어, 데이터 조작어, 데이터 제어어
스키마 구조(외부, 개념, 내부)
사용자 데이터베이스 관리자, 응용 프로그래머, 일반 사용자
데이터 모델 데이터 구조, 연산, 제약조건
개념적 모델: E-R 다이어그램(네모:개체, 마름모:관계, 동그라미:속성, 선:개체와 속성 연결)
논리적 모델: 계층형(트리), 네트워크(망)형(그래프), 관계형(표), 객체지향형, ORDB(객체지향+관계형)
관계형 데이터베이스 모델
releation schema | 속성 목록(열의 종류) |
attribute | 속성 |
degree | 속성 개수 |
tuple | 값 목록(행) |
domain | 값의 범위 |
cardinality | tuple 개수 |
릴레이션 특징
튜플의 유일성, 튜플의 무순서성, 속성의 원자성, 속성의 무순서성
키 튜플 식별
슈퍼키 튜플을 식별할 수 있는 키
외래키 외부 테이블에 연결할 수 있는 키
무결성
개체 무결성(기본키는 null, 중복값이 될 수 없음)
참조 무결성(외래키는 참조할 수 있어야 함)
도메인 무결성: 속성이 원자값이어야 함
데이터베이스 설계 요구분석 → 개념적 설계 → 논리적 설계 → 물리적 설계
함수적 종속
결정자-종속자
완전/부분 함수적 종속
이행(X → Y, Y → Z이면 X → Z)
정규화
데이터 구조의 안정화
중복 데이터 최소화
수정/삭제 시 이상 현상 최소화
테이블 불일치 위험 간소화
과정
비정규 릴레이션
(도메인=원자값)
1NF
(부분적함수종속제거)
2NF
(이행적함수종속제거)
3NF
(결정자이면서 후보키가 아닌 함수 종속 제거)
BCNF(Boyce-Codd)
(다치종속제거)
4NF
(조인종속제거)
5NF
반정규화 성능 저하 방지를 위해 조인
데이터베이스 클러스터링 서버 가용성을 높이는 기술
병렬 처리 클러스터링(분산)
고가용성 클러스터링(대체)
관계 대수(Relational Algebra) 정보 유도(연산). 절차적인 방법
관계 해석 정보 정의. 비절차적인 방법
순수 관계 연산자
∑ σ | Select | 튜플 집합 검색 |
π | Project | 속성 집합 검색 |
⋈ | Join | 공통 속성 연결 |
÷ | Division | 특정 속성 제외 검색 |
Cartesian Product 교차곱
DDL(Data Definition Language) 데이터 정의어
CREATE | 정의 | CREATE TABLE |
ALTER | 정의 변경 | ADD 추가 ALTER ~ SET 변경 DROP ~ CASCADE 제거 |
DROP | 삭제 | CASCADE 삭제 RESTRICT 참조되어 있다면 삭제X |
DCL(Data Control Language) 데이터 제어어
데이터 제어, 보호, 무결성 유지, 복구
COMMIT, ROLLBACK, GRANT(권한부여), REVOKE(권한취소)
View 사용자에게 보여줄 가상 테이블
생성 CREATE, 검색 SELECT, 변경 DROP 후 CREATE
장점: 편리, 보안
단점: 삽입, 삭제, 갱신 제약
System Catalog(=Data dictionary, Meta Data)
정보. 자동갱신
DML(Data Manipulation Language) 데이터 조작어
SELECT | 검색 | SELECT 속성명 [ALL|DISTINCT] FROM 테이블 WHERE 조건 GROUPBY 속성 HAVING 그룹의조건 ORDERBY 속성 DISTINCT: 중복 튜플 생략 |
INSERT | 삽입 | INSERT INTO 테이블 VALUES |
DELETE | 삭제 | DELETE FROM 테이블 WHERE 조건 |
UPDATE | 수정 | UPDATE 테이블 SET 속성 WHERE 조건 |
NoSQL(Not Only SQL)
집계함수: COUNT, SUM, AVG, MAX, MIN
하위질의(SubQuery): IN(or문)
IN(1, 5, 10)
IN(SELECT 학번 FROM R2 WHERE 과목번호='C100')
트랜잭션(Transaction) 작업 단위, 연산
특성: 원자성, 일관성, 격리성, 영속성
연산: Commit(성공), Rollback(실패), Recovery(복구)
CRUD Matrix 트랜잭션 분석 도구
즉각 갱신법 데이터 갱신 시 트랜잭션 오나료 전 DB 반영
병행 제어 종류
로킹(Locking), 최적 병행 수행, 타임스탬프(동시성 제어, 순서), 다중 버전 기법
GRANT | 사용 권한 부여 | GRANT 권한 ON 데이터객체 TO 사용자 [WITH GRANT OPTION] WITH GRANT OPTION 사용자가 다른 사용자에게 권한 부여 가능 |
REVOKE | 권한 취소 | REVOKE [GRANT OPTION FOR] 권한 ON 데이터객체 FROM 사용자 [CASCADE] GRANT OPTION FOR: WITH GRANT OPTION 취소 CASECADE: 해당 사용자가 다른 사용자에게 부여한 권한까지 취소 |
Trigger 자동처리
분산 데이터베이스 목표 위치투명성, 중복투명성, 병행투명성, 장애투명성
분산 DB 시스템
구성요소: 분산 처리기, 분산 데이터베이스, 통신 네트워크
장점: 시간 단축, 데이터 공유성, 신뢰성, 가용성, 용량 확장 용이, 지역자치성 향상
단점: 개발 비용 증가, 오류 발생 가능, 통신 성능에 따라 전체 성능 영향, 하드웨어 구매 비용 증가
** 참고
'기타' 카테고리의 다른 글
[리액트 딥다이브] 6 리액트 개발 도구로 디버깅하기 (0) | 2025.04.27 |
---|---|
[정처기] 2과목 소프트웨어개발 (0) | 2025.02.12 |
[정처기] 1과목 소프트웨어설계 (0) | 2025.02.10 |
click 이벤트와 mouseup 이벤트의 차이 (0) | 2023.08.03 |
[기술 면접] 프론트엔드 공통, HTML5, CSS (0) | 2023.07.21 |