study/정보처리기사
3과목 데이터베이스 구축
으녕오리
2025. 5. 5. 04:55
- 트랜잭션의 4가지 특성(ACID) ★★★★★★★★★
- 원자성 (Atomicity) : 완전하게 수행 완료되지 않으면 전혀 수행되지 않아야 한다. commit, rollback
- 일관성 (Consistency) : 시스템의 고정 요소는 트랜잭션 수행 전후에 같아야 한다.
- 독립성, 격리성 (Isolation) : 다른 트랜잭션의 간섭을 받지 않아야 한다.
- 영속성 (Durability) : 트랜잭션의 결과가 데이터베이스에 영구히 기억된다.
- 반정규화(조인 시키는 것) : 데이터 베이스 정규화 후 성능향상, 개발 편의성 등을 위해 정규화 기법에 위배된 의도적 수행기법
- SQL 언어 (MDC ★★★★★★★★★)
- DDL (Data Definition Language) : 데이터 구조를 정의
: CREATE, ALTER(수정), DROP(테이블(구조)를 삭제), RENAME, TRUNCATE(구조 내의 데이터 초기화)- view는 ALTER x, CREATE와 DROP o
- DML (Data Manipulation Language) : 데이터를 넣고 빼고
: SELECT, INSERT, UPDATE, DELETE(행을 삭제)- UPDATE set, insert into Table (속성, 속성, ...) values ( , , ), Delete from
- DCL (Data Control Language) : 제어
- GRANT(권한을 주다) : GRANT 권한 [컬럼 리스트] ON 객체 TO { 사용자 | 역할 | PUBLIC } [WITH GRANT OPTION]
- REVOKE(권한을 뺏다) : REVOKE { 권한 리스트 | ALL } ON 객체 FROM { 사용자 | 역할 | PUBLIC }
- DDL (Data Definition Language) : 데이터 구조를 정의
- 데이터베이스 설계 단계 (개논물) ★★★★★
- 개념적 설계 : ERD(산출물)
- 논리적 설계 : 정규화, 목표 DBMS, 릴레이션 스키마, 트랜잭션 인터페이스 설계
- 물리적 설계 : 반정규화, 특정 DBMS(ex) MySQL), 트랜잭션 세부 설계, 실제로 저장되는 구조를 만듦
- E-R 다이어그램(ERD, 개체-관계 모델, 개념적 설계) : 사각형(객체), 마름모(관계), 타원(속성), 실선(객체 타입과 속성을 연결)

- 유일성(키는 유일해야 한다), 최소성(키를 유일하게 만드는 요소는 최소화 되어야 한다)
- 슈퍼키 : 두 개 이상의 속성으로 구성된 키, 유일성 o, 최소성 x
- 후보키, 기본키, 대체키 : 유일성 o, 최소성 o

- 관계 대수 : 절차적 방법
관계 해석 : 비절차적 방법 - sql문
- select DISTINCT(중복 없애기) * (*을 가져온다)
- from Table (어디서)
- where AND / OR (조건)
- Group by 컬럼
- having sum/avg/count (group by의 조건)
- order by 컬럼 ASC / DESC
- 데이터 모델의 요소 : 논리적 데이터 구조, 연산, 제약조건
- 정규형(도부이결다조 두부이걸다줘) ★★★★★★★★
- 1NF : 도메인이 원자값이어야 한다.
- 2NF : 부분 함수적 종속 제거
- 3NF : 이행적 함수 종속 제거 (X→Y→Z 제거(분리하기))
- BCNF : 결정자이면서 후보키가 아닌 것들 제거
- 4NF : 다치 종속 제거
- 5NF : 조인 종속성 이용
- OLAP : 최종사용자가 직접 다차원으로 이루어진 데이터로부터 통계적인 요약 정보를 분석하여 의사결정에 활용하는 방식
ex) Roll-up, Drill-down, Pivoting, Slicing, Dicing - LIKE 뒤에
- % : 와도 되고 안와도 됨 ex) LIKE 라면% -> 라면, 라면사리
- _ : 한글자 와야 함 ex) LIKE _라면 -> 신라면, 진라면
- 무결성의 종류 ★★★★★★
- 개체 무결성 : 중복 안됨, null 안됨
- 참조 무결성 : cascade-같이 변경해줌 / restricted-변경 불가능
- 도메인 무결성 : 대학교 학년은 1,2,3,4만 가능하고 5는 불가능
- 속성 무결성, 키 무결성, 사용자 정의 무결성
- 시스템 카탈로그 = 데이터 사전(스스로 생성하고 관리)
- 데이터베이스에 저장된 모든 객체들에 대한 정의나 명세에 대한 정보가 수록되어 있는 시스템 테이블 종류
- 시스템 자신이 필요로 하는 여러 가지 객체에 관한 정보를 포함하고 있는 시스템 데이터베이스
- 시스템 카탈로그에 저장된 내용을 메타데이터라고 한다
- 시스템 카탈로그는 사용자와 데이터베이스 관리 시스템의 접근이 가능하다
- 사용자가 시스템 카탈로그를 직접 갱신하는 것은 허용되지 않는다 -> DBMS가 스스로 생성하고 유지한다
- 순수관계 연산자
- SELECT : σ, 튜플 집합을 검색한다.
- PROJECT : π (예: π name, age), 속성 집합을 검색한다. 일부 속성 검색 후 중복 제거 후 새로운 릴레이션 생성
- JOIN : ⨝
- DIVISION : ÷, 특정 속성을 제외
- 릴레이션(테이블), 스키마(속성의 합), 속성(attribute, 차수(속성의 수), 컬럼, 논리적으로 더이상 분해될 수 없는 최소 단위, 원자값 가짐), 튜플(의 합 -> 카디널리티), 도메인
- 카티션 프로덕트 : 차수는 합, 튜플은 곱하기
- IN(값1, 값2, 값3) : 값1, 값2, 값3 중에서 하나 이상 일치하는 조건을 모두 포함

- rollback(abort) -> 트랜잭션 실행이 실패했음, recovery -> 회복, 복구
- 분할 기준
- 범위 분할
- 목록 분할
- 해시 분할
- 합성 분할
- 라운드 로빈 분할 : 순차적으로 돌아가면서 ex) 1,2,3 ...
- 집합연산자
- UNION(합) : 중복을 제거한 결과의 합을 검색
- UNION ALL(중복 포함 합) : 중복을 포함한 결과의 합을 검색
- INTERSECT(교) : 양쪽 모두에서 포함된 행을 검색
- MINUS(차) : 첫번째 검색 결과에서 두번재 검색 결과를 제외한 나머지 검색
- 카티션 프로덕트 (x, 곱하기)
- 병행제어 기법
- 로킹
- lock 단위 ↑ : 병행성↓, 오버헤드↓
- lock 단위 ↓ : 병행성↑, 오버헤드↑
- 2단계 로킹 규약 : 확장(키를 가지고 있으려고 한다), 축소(키를 버리려고 한다)
- 타임스탬프 : 동시성 제어를 위한 직렬화 기법으로 트랜잭션간의 처리 순서를 미리 정한다.
- 낙관적 병행제어
- 다중 버전 병행제어
- 로킹
- 병행제어를 하지 않으면 발생하는 문제 ★★★★★ (병 갱 모 연 비)
- 갱신 분실
- 비완료 의존성
- 모순성
- 연쇄 복귀
- 관계 대수 -> 절차적, 관계 해석 -> 비절차적
- 이상 : 삽입이상, 삭제이상, 갱신이상 (삽삭갱) -> 정규화로 해결
- CRUD (Matrix) : 데이터베이스에 영향을 주는 생성, 읽기, 갱신, 삭제 연산으로 프로세스와 테이블 간에 매트릭스를 만들어서 트랜잭션을 분석하는 도구
- 즉각 갱신법 : 데이터를 갱신하면 트랜잭션이 완료되기 전에 실제 데이터베이스에 반영하는 방법, 로그를 필요로 한다.
- 관계대수 : 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 '절차적인' 방법
- Y는 X에 함수 종속이다 : X → Y
- 직접 파일 : 해싱 등의 사상 함수를 사용하여 주소를 계산하여 레코드 접근
- 파티션의 종류 : 범위 파티션, 목록 파티션, 해시 파티션, 컴포지트(Composite) 파티션
- CASCADE : 둘다 삭제된다. / RESTRICT : 둘다 삭제되지 않고 남아있다.
- 인덱스 : 수정 불가능, 생성은 CREATE 삭제는 DROP
- 트리의 차수 : 자식 노드가 가장 많은 노드의 자식 수
- ∀ : for all(모든 것에 대하여)
∃ : “There exists”, “For Some” - 디스크 출력 도중의 하드웨어 장애 : 트랜잭션이 부분 완료(Partial Commit) 상태에 도달했다가 실패(Fail) 상태로 가는 경우
- 스택 : 보기의 첫 번째 문자까지 스택에 차례대로 입력 후, 순서대로 Push와 POP을 진행해서 보면 된다.
- 이상(Anomaly) 현상 : 데이터의 불필요한 중복으로 발생하는 곤란한 현상
- BETWEEN A and B : A이상 B이하
- 뷰는 물리적으로 존재하지 않는 가상화된 테이블이다.