필기

[전산직 필기] 5. 데이터베이스론

HHRR 2024. 9. 23. 19:31

출처 : 박미진 컴퓨터 일반
전산직 필기 준비를 위해 박미진 컴퓨터 일반 이론 일부 정리 글입니다.

데이터베이스

데이터베이스 장점

  1. 데이터 중복과 불일치 감소
  2. 데이터 독립성 보장
  3. 질의어 통해 사용자가 쉽게 데이터를 접근할 수 있음
  4. 무결성 향상
  5. 보안성 향상
  6. 데이터의 공유와 동시접근 가능
  7. 종속성 유지 (X)

데이터베이스 특징

  • DBMS로 외부, 내부, 개념 스키마로 계층적 데이터 독립성 제공. 종속성(X)
  • 데이터베이스 내에 있는 데이터 레코드내용에 의해 참조됨. 주소에 의해 참조(X)

DBMS로 데이터 관리

  • DBMS 필수 기능
    1. 정의 기능: 스키마 생성, 변경, 삭제
    2. 조작 기능: 검색, 삽입, 수정, 삭제
    3. 제어 기능: 보안, 무결성, 회복
    4. 보안 기능 (X)
  • 사용자가 데이터베이스의 모든 데이터 자유롭게 액세스 (X) → 접근 권한 있는 부분에 대해 액세스임
  • 데이터베이스는 데이터의 최소한의 중복을 허용함.
    • → 회복에 의한 신뢰성과 데이터 접근 속도 향상을 꾀할 수 있음
    • 너무 많은 중복은 무결성 침해 원인이 될 수도 있음
파일관리 시스템 문제 1. 중복 데이터와 독립성 문제 2. 무결성 유지 어려움
DBMS 장점 1. 중복의 최소화 2. 데이터의 일관성 및 무결성 유지

스키마

외부 스키마 데이터베이스의 개개 사용자나 응용 프로그래머가 접근하는 데이터베이스 정의 - 하나의 데이터베이스 시스템에 여러 개 외부 스키마 존재할 수 있음
개념 스키마 범 기관적 입장에서 데이터베이스 정의. 모든 응용 시스템들이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 데이터베이스 - 하나만 존재함. - 개념 스키마와 외부 스키마 사이에 논리적 데이터 독립성 제공 - 개념 스키마와 내부 스키마 사이에 물리적 데이터 독립성 제공
내부 스키마 저장 장치 입장에서 데이터베이스 전체가 저장되는 방법 명세. 개념 스키마에 대한 저장 구조

데이터베이스 설계

요구조건 분석 단계 데이터 및 처리 요구 조건
개념적 설계 단계 DBMS 독립적 개념 스키마 설계, 트랜잭션 모델링
논리적 설계 단계 목표 DBMS에 맞는 스키마 설계, 트랜잭션 인터페이스 설계
물리적 설계 단계 목표 DBMS에 맞는 물리적 구조 설계, 트랜잭션 세부 설계
구현 단계 목표 DBMS DDL로 스키마 작성, 트랜잭션 작성
  • ISAM: 색인 순차 접근 방법. 인덱스 영역 / 데이터 영역 / 오버플로 영역
  • VSAM: B+ 트리 인덱스 구조 사용
  • 히프 파일: 레코드들은 키 순서와 관계없이 저장 가능

인덱스

  • 기본키의 경우 자동으로 인덱스 생성, 인덱스 구축 시에 두 개 이상의 칼럼 결합하여 인덱스 생성 가능
  • SQL 명령문 검색 결과는 인덱스 사용 여부 관계없이 동일하며 인덱스는 검색 속도에 영향 미침
  • 모든 칼럼에 인덱스 생성 (X)
  • 데이터 순차적 접근 (X) 인덱스는 순차 접근 안 해서 빠른 검색인 거임

파일 구조

  특징 장점 단점
순차 파일 파일 내용 순차 접근만 가능 - 모든 데이터 순서대로 기록 - 저장공간 낭비 없음 - 순서대로 데이터 읽거나 저장할 때 빠름 - 새로운 데이터 삽입 삭제에 많은 시간 - 검색 효율이 낮음
인덱스 순차 파일 인덱스 사용하여 순차적인 접근 방법 - 다양한 접근 가능 - 효율적 검색, 삽입, 삭제, 갱신 용이 - 접근 시간이 직접 파일보다 느림 - 인덱스 위한 기억공간 필요
직접 파일 구성하는 레코드를 임의의 물리적 저장 공간에 기록 - 데이터 접근 매우 빠르고 효율적 삽입 삭제 갱신 - 물리적 주소로 레코드 직접 접근 기록해서 순서에 제약 없음 - 해시 함수 선정이 중요
  • 레코드 접근 시간 가장 빠른 것: DAM
  • 계층 데이터 모델, 관계 데이터 모델, 네트워크 데이터 모델: 논리적 데이터 모델
  • 개체 관계도(ERD): 개념적 데이터 모델
  • 계층형, 망형, 관계형, 객체지향형, 객체관계형 DBMS: 논리적 데이터 모델

ERD

1 : N 관계

  • 1 측이 기본키를 N측 릴레이션에 외래키로 추가해야 함.
  • 판매처(N), 주문(속성), 공장(1)
    • 주문을 별도의 릴레이션으로 할 경우: 양 옆의 기본키 모두 외래키로 포함시켜야 함. 기본키는 N측의 기본키로
    • N측이 1측의 기본키를 외래키로 가짐. 관계에 있는 속성을 N측이 가져감

N : M 관계

  • 속성은 양 옆의 기본키를 모두 기본키이면서 외래키 역할로 사용

관계 모델링

  1. 릴레이션: 정보 저장의 기본 형태가 2차원 구조의 테이블
  2. 튜플: 테이블의 한 행을 구성하는 속성들의 집합
  3. 속성: 테이블의 각 열
  4. 도메인: 속성이 취할 수 있는 값들의 집합
  5. 차수: 속성의 개수
  6. 기수: 투플의 개수
  • 속성은 원자값으로 분해가 불가능함. (튜플은 원자값으로 분해 불가능(X))
후보키 모든 튜플 유일 식별 속성의 부분집합 - 유일성, 최소성 만족
슈퍼키 모든 튜플 유일 식별 속성의 부분집합 - 유일성 만족
기본키 후보키 중 튜플 식별 기준
대체키 후보키 중 기본키로 선택되지 않은 나머지 후보키
외래키 어떤 릴레이션의 기본키 참조하는 속성

무결성 제약 조건

개체 무결성 제약 조건 기본 릴레이션의 기본키를 구성하는 어떤 속성도 널일 수 없고 중복 입력되지 않음
참조 무결성 제약 조건 외래키 값은 널이거나 참조 릴레이션에 있는 기본키와 같아야 함. 외래키의 도메인은 참조되는 릴레이션의 기본키의 도메인과 같다
도메인 무결성 제약 조건 특정 속성의 값은 그 속성이 정의된 도메인에 속한 값이어야 한다

  • 뷰 테이블 기반 만들어지는 가상 테이블로 뷰 기반으로 새로운 뷰 생성 가능
  • 뷰 삭제는 DROP. 뷰 생성에 기반이 된 기존 테이블들 영향 미치지 않음
  • 뷰 생성에 기본키 구성하는 속성이 포함되어 있지 않은 뷰는 데이터 변경 불가능
  • 뷰 검색 연산 = 기본 테이블과 동일 / 삽입, 삭제, 갱신 제약이 있음
  • 정의 변경 불가능. ALTER문 사용 불가능
    • 정의하고 싶으면 뷰 DROP하고 다시 뷰 CREATE 해야 함

관계 대수

정규화

수정 이상 반복된 데이터 중에 일부만 수정하면 데이터 불일치가 발생
삽입 이상 불필요한 정보를 함께 저장하지 않고는 어떤 정보를 저장하는 것이 불가능
삭제 이상 유용한 정보를 함께 삭제하지 않고는 어떤 정보를 삭제하는 것이 불가능
  • 스키마 변환 시 정보의 무손실, 자료 중복의 감소, 관련된 구조 간의 분리의 원칙을 준수하여야 한다.
    • 정보의 무손실: 하나의 스키마에서 다른 스키마로 변환시킬 때 정보의 손실이 있어서는 안 됨
    • 최소의 데이터 중복성: 중복으로 인한 여러 이상을 제거할 수 있다
    • 분리의 원칙: 하나의 독립된 관계성은 별도의 릴레이션으로 분리시켜 표현한다.
  • 관계 대수의 연산에서 피연산자는 모두 릴레이션이고 연산결과도 릴레이션이다.
  • 튜플을 구성하는 속성 사이에 존재하는 종속관계를 고려하여 하나의 릴레이션을 여러 릴레이션으로 분해하면 이상을 해결할 수 있다.
1정규형 어떤 릴레이션 R에 속한 모든 도메인이 원자값만으로 되어 있다면, 1정규형에 속한다
2정규형 속성은 모두 기본키의 완전함수 종속일 때
3정규형 모든 속성들이 기본키에 이행적 함수 종속이 아닐 때
BCNF 모든 결정자가 후보키

도부이결다조

트랜잭션

  • 트랜잭션의 성질 (ACID)
    1. 원자성(Atomicity): 트랜잭션은 전부, 전무 실행만 있고 일부 실행으로 트랜잭션 기능 가질 수 없음
    2. 일관성(Consistency): 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관된 데이터베이스 상태가 됨
    3. 격리성(Isolation): 연산의 중간결과에 다른 트랜잭션이 접근 불가능
    4. 영속성(Durability): 트랜잭션은 일단 그 실행 성공적으로 끝나면 그 결과를 어떠한 경우라도 보장받음

회복과 동시성 제어

  • 지연 갱신(deferred update): 트랜잭션에 의해 갱신된 값은 트랜잭션이 커밋될 때 데이터베이스에 적용됨
    • 커밋되지 않은 트랜잭션에 의한 갱신 값은 데이터베이스에 적용되지 않으므로 그 전의 값을 갖고 있음.
    • 지연갱신에는 undo를 하지 않음
  • 즉시 갱신: 트랜잭션이 데이터베이스를 갱신한 사항이 주기억장치의 버퍼에 유지되다가 트랜잭션이 완료되기 전이라도 디스크의 데이터베이스에 기록될 수 있다.
    • checkpoint 기준으로 이전에 commit된 작업에 대해서는 아무런 회복의 조치 취할 필요 없이 저장 보장
    • checkpoint 기준으로 이후 작업들은 커밋된 작업은 REDO, 커밋되지 않은 작업은 UNDO 수행한다.
  • 로킹 기법
    • lock은 하나의 트랜잭션이 데이터를 접근하는 동안 다른 트랜잭션이 그 데이터를 접근할 수 없도록 제어하는 데 쓰인다.
    • 트랜잭션이 로크한 데이터에 대해서는 해당 트랜잭션이 종료되기 전에 해당 데이터에 대한 언로크를 실행하여야 한다.
    • 로킹의 단위가 작아질수록 로크 수가 많아서 관리가 복잡해지지만 병행성 수준은 높아지는 장점
    • 2단계 로킹 규약을 적용하면 트랜잭션 직렬 가능성을 보장할 수 있음. 교착상태 발생 막을 수는 없음

SQL

  • DDL (데이터 정의어): CREATE, ALTER, DROP, RENAME
  • DML (데이터 조작어): INSERT, UPDATE, DELETE, SELECT
  • DCL: GRANT, REVOKE
  • TCL: COMMIT, ROLLBACK, CHECKPOINT

질의 최적화

질의 최적화 시에 사용하는 경험적 규칙:

  • 추출(project) 연산은 일찍 수행한다.
  • 조인(join) 연산은 가능한 한 나중에 수행한다.
  • 선택(select) 연산은 가능한 한 일찍 수행한다.
  • 중간 결과를 적게 산출하면서 빠른 시간에 결과를 줄 수 있어야 한다.

분산 데이터베이스

  • 네트워크로 연결된 여러 사이트에 데이터베이스 자체가 분산되어 있으며, 데이터베이스 시스템도 여러 컴퓨터 시스템에서 운영된다.
  • 다른 사이트에 저장된 데이터베이스에 접근할 수 있다. 사용자에게 데이터베이스가 분산되지 않은 것처럼 인식하게 만드는 것이 필요하다.
  • 위치 투명성과 중복성이 제공된다.
  • 각 지역 사이트마다 분산 DBMS가 운영된다.
  • 서로 다른 DBMS를 사용해도 ODBC를 이용하여 상호 호환이 가능하다.

데이터 마이닝

  • 신뢰도(confidence) 값: 트랜잭션 내의 비율

'필기' 카테고리의 다른 글

[전산직 필기] 3. 데이터 통신론  (0) 2024.08.23
[전산직 필기] 2. 운영체제론  (4) 2024.07.14