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 }
  • 데이터베이스 설계 단계 (개논물) ★★★★★ 
    • 개념적 설계 : 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이하
  • 뷰는 물리적으로 존재하지 않는 가상화된 테이블이다.
  •