본문 바로가기
Back-end

정보처리기사 필기 제3과목 데이터베이스 구축 요약

by 셀킴 2025. 5. 15.
728x90
반응형

관계형 데이터 모델

  • 릴레이션(Relation): 행+열로 구성된 테이블
  • 튜플(Tuple): 릴레이션의 (row)에 해당하는 요소
    • 카디널리티(Cardinality): 튜플의 수 = 행의 수, 한 릴레이션에 포함된 튜플은 모두 상이하고 튜플 사이에는 순서X
  • 속성(Attribute): 릴레이션의 (column)에 해당하는 요소
    • 차수(Degree): 속성의 수 = 열의 수, 한 릴레이션을 구성하는 속성 사이에는 순서X, 모든 속성값은 원자값을 갖는다
  • 스키마(Schema): 데이터베이스의 구조, 제약조건 등의 정보를 담는 기본 구조
  • 인스턴스(Instance): 정의된 스키마에 따라 생성된 테이블에 실제 저장된 데이터들의 집합

관계 대수 vs 관계 해석

  • 관계 대수: 릴레이션을 처리하기 위한 연산의 집합으로 피연산자와 결과 모두 릴레이션임, 원하는 정보와 그 정보를 어떻게 유도하는지 기술하는 절차적 특징을 가짐, 질의에 대한 해를 구하기 위해 수행해야 할 연산 순서를 명시, 일반 집합 연산자과 순수 관계 연산자
    • 일반 집합 연산자: 집합, 집합, 집합, 티션 프로덕트(Cartesian Product
      • 카티션 프로덕트: 모든 튜플을 연결해 새로운 튜플로 릴레이션을 구성. 차수=각 릴레이션 차수(열의 수)의 합, 카디널리티=각 릴레이션 카디널리티(행의 수)의 곱
    • 순수 관계 연산자 - 셀 프 조 디
      • 렉트(σ) : 조건을 만족하는 튜플 반환, 수평적 부분 집합
      • 로젝트(π): 주어진 속성들의 값으로만 구성된 튜플 반환 => 일부 속성만 추출해 중복 튜플 제거 후 새 릴레이션
      • 인(⋈): 공통 속성을 이용해 두 튜플을 연결해 만든 튜플 반환
      • 비전(÷): (R ÷ S) 릴레이션 S의 모든 튜플과 관련 있는 릴레이션 R의 튜플 반환
  • 관계 해석: 원하는 정보가 무엇인지라는 것만 정의하는 비절차적 방법, 튜플 해석과 도메인 관계해석, 관계 데이터 모델의 제안자인 코드(Codd)가 수학의 프레디킷 해석(Predicate Calculus)에 기반을 두고 관계 데이터베이스를 위해 제안함
  • 기본적으로 관계 대수와 관계 해석은 관계 데이터베이스를 처리하는 기능이나 능력에서 동등함

데이터 모델 구성요소 - 구 연 제

  • 논리적 데이터 구조(Structure): 데이터베이스에 논리적으로 표현될 대상으로서 개체 타입 + 개체 타입 간의 관계. 데이터베이스 구조 및 정적 성질을 표현
  • 연산(Operation): 데이터베이스에 실제 데이터를 처리하는 작업에 대한 명세, 릴레이션의 조작을 위한 관계연산
  • 제약조건(Constraint): 데이터 무결성 유지를 위한 데이터베이스의 보편적 방법
  • 데이터베이스 설계: 요구조건 분석 -> 개념적 설계 -> 논리적 설계 -> 물리적 설계
    • 요구조건 분석: 도출된 요구사항 간 상충 해결, 외부 환경과의 상호작용 분석을 통해 데이터에 대한 요구 분석
    • 개념적 설계: 트랜잭션 모델링, view 통합 방법 및 attribute 합성 고려, 개념적 데이터 모델은 데이터베이스 종류와 관계X
    • 논리적 설계: 데이터 모델링, DBMS에 맞는 논리적 스키마를 설계, 트랜잭션 인터페이스를 설계, 관계형 DB에선 테이블 설계 단계
    • 물리적 설계: 데이터 구조화, 저장 레코드 양식 설계, 레코드 집중 분석 및 설계, 접근 경로 설계
      • 물리적 설계 시 고려사항: 응답시간, 트랜잭션 처리량, 디스크 용량, 저장공간의 효율화

E-R 모델(개체-관계 모델)

  • 개체 ☐(사각형)
  • 속성 ⃝(타원), 다중값 속성 ◎(이중 타원)
  • 연결 ⎯(선)
  • 관계 ♢(마름모)

이상(Anomaly) 현상

릴레이션 조작 시 데이터들이 불필요하게 중복되어 예기치 않게 발생하는 곤란한 현상

  • 삽입 이상, 삭제 이상, 갱신 이상 - 삽 상 개

정규화(Normalization)

  • 정규화를 거치지 않으면 이상(Anomaly) 발생
  • 논리적 설계 단계에서 정규화 수행함
  • 정규화 목적: 중복 데이터를 최소화 => 테이블 불일치 위험 최소화, 수정/삭제 시 이상 현상을 최소화해 데이터 구조 안정성 최대화
  • 데이터베이스 정규화 단계 - 원 부 이 결 다 조
    • 제1정규형(1NF), 자화: 어떤 릴레이션 R에 속한 모든 도메인이 원자값만으로 되어있음
    • 제2정규형(2NF), 부분 함수 종속 제거: 키가 아닌 모든 속성이 기본키에 완전 함수적 종속돼야 함
    • 제3정규형(3NF), 이행 함수 종속 제거: 이행 함수 종속을 제거하는 단계
      • 이행 함수 종속성 관계란? A->B, B->C일 때 A->C인 관계
    • 보이스코드정규형(BCNF), 결정자 함수 종속 제거: 결정자이면서 후보키가 아닌 함수 종속 제거(결정자인데 후보키가 아닌 것) => 모든 결정자가 후보키가 됨
    • 제4정규형(4NF), 다치 종속성 제거
    • 제5정규형(5NF), 조인 종속성 제거: 후보키를 통하지 않는 조인종속(Join Dependency)을 제거 => 모든 조인 종속성의 만족이 후보키를 통해서만 만족

 반정규화(Denormalization)

  • 정규화된 엔티티, 속성, 관계를 시스템 성능 향상과 개발운영의 단순화를 위해 중복・통합・분리 등을 수행하는 데이터 모델링 기법
  • 반정규화를 통해 성능이 향상되고 관리 효율성은 증가하지만 데이터의 일관성 및 정합성이 저하될 수 있음
  • 유형: 중복 테이블 추가(집계 테이블 추가, 진행 테이블 추가, 특정 부분만 포함하는 테이블 추가), 중복 속성 추가, 테이블 통합, 테이블 분할 등

 분산 데이터베이스(Distributed Database)

  • 분산 데이터베이스 구성요소: 분산 처리기, 분산 데이터베이스, 통신 네트워크
  • 논리적으로는 같은 시스템에 속하지만 물리적으로는 컴퓨터 네트워크를 통해 분산되어 있는 데이터베이스
    • 장점: 지역 자치성이 높음, 분산 제어 가능, 시스템 성능 향상, 점진적 시스템 용량 확장 용이, 자료 공유성 향상, 물리적 위치 알 필요X, 중앙컴퓨터의 장애가 전체 시스템에 영향X
    • 단점: 구현 및 설계가 복잡하고 개발・처리 비용 증가, DBMS가 수행할 기능이 복잡
  • 분산 데이터베이스의 투명성
    • 위치(Location) 투명성: 데이터가 물리적으로 여러 곳에 복제되어 있는지 알 필요X
    • 복제(Replication) 투명성: 데이터가 물리적으로 여러 곳에 복제되어 있는지 알 필요X
    • 병행(Concurrency) 투명성: 여러 사용자가 동시에 트랜잭션 수행해도 결과에 이상X, 로킹(Locking)과 타임스탬프(Time Stamp) 순서 기법 이용
      • 로킹 단위가 클수록 로크의 수가 적어지고 병행성 수준이 단순해짐, 로킹 단위가 작을수록 병행 제어 기법이 복잡해지고 로크의 수가 많아짐
    • 분할(Fragmentaion) 투명성: 한 릴레이션의 각 단편의 사본이 여러 장소에 저장되어 있음을 알 필요X
    • 장애(Failure) 투명성: 데이터베이스가 분산되어 있는 각 지역의 시스템 또는 통신망에 이상이 생겨도 데이터의 무결성을 보존 가능, 2PC(Phase Commit)

파티셔닝(Partitioning)

  • 물리적 파티셔닝으로 인해 전체 데이터 훼손 가능성은 줄고 데이터 가용성 향상, 데이터베이스를 작은 단위로 관리해 편리, 부하 분산해 성능 향상
  • 병렬 데이터베이스 환경 중 수평분할에 활용되는 분할 기법
    • 범위 분할(Range Partitioning): 지정한 열값 기준으로 범위 지정해 분할 ex)월별
    • 해시 분할(Hash Partitioning): 해시 함수를 적용한 결괏값에 따라 분할, 특정 파티션에 데이터가 집중되는 범위 분할 단점을 보완함
    • 조합 분할(Composite Partitioning): 범위 분할 후 해시 함수 적용해 다시 분할함, 범위 분할한 파티션이 너무 커 관리 어려울 때 유용함
    • 목록 분할(List Partitioning): 지정한 열 값에 대한 목록을 만들어 이를 기준으로 분할 ex)국가->아시아
    • 라운드 로빈 분할(Round Robin Partitioning): 레코드를 균일하게 분배, 각 레코드가 순차적으로 분배되며 기본키 필요X

데이터베이스의 무결성 vs 보안

  • 보안: 권한 없는 사용자가 데이터 조작하는 것을 방지
  • 무결성: 권한이 있는(Insert, Update, Delete) 사용자로부터 데이터베이스 보호 -> 저장된 데이터값과 실제값이 일치하는 정확성 유지
    • 개체 무결성: 한 엔티티에서 동일한 기본키(PK)를 가질 수 없거나, 기본키의 속성이 NULL을 허용할 수 없
    • 참조 무결성: 외래키가 참조하는 다른 개체의 기본키에 해당하는 값이 기본키 값이나 NULL이어야 하는 제약조건
    • 키 무결성: 한 릴레이션에 같은 키값을 가진 튜플들을 허용할 수 없는 제약 조건
    • 속성 무결성: 속성의 값은 기본값, NULL 여부, 도메인(데이터 타입, 길이)이 지정된 규칙을 준수해야 하는 제약조건
    • 사용자 무결성: 사용자의 의미적 요구사항을 준수해야 하는 제약조건

키(Key)

  • 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성
    • 기본키(Primary Key): 테이블의 각 튜플을 고유하게 식별, NOT NULL, 유일성O, 최소성O
    • 후보키(Candidate Key): 테이블에서 각 튜플을 구별할 때 기준키, 유일성O, 최소성O
    • 대체키(Alternate Key): 후보 키 중에서 기본키로 선택하지 않은 키, 유일성O, 최소성O
    • 슈퍼키(Super Key): 모든 튜플에 대해 유일성O, 최소성X
    • 외래키(Foreign Key): 한 릴레이션의 컬럼이 다른 릴레이션의 기본키로 이용되는 키

 

제가 모르거나 헷갈리는 부분만 정리했답니다

의미보다는 기출에 잘 나오는 키워드 위주로 볼드 표시 했어요

728x90
반응형