정보처리기사

데이터베이스 개념(1)

청춘고양이 2023. 8. 26. 13:20
반응형

데이터베이스 개요
스키마 : 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술

  • 개념스키마 : 데이터베이스의 전체적인 논리적 구조
  • 내부스키마 : 물리적 저장장치의 입장에서 본 데이터베이스 구조
  • 외부스키마 : 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것 

데이터베이스 설계순서

  • 요구조건분석 > 개념적 설계 > 논리적 설계 > 물리적 설계 > 구현
    • 요구조건명세서 작성
    • 개념적 설계(정보 모델링, 개념화) : 개념스키마, 트랜잭션 모델링, E-R 다이어그램 모델
    • 논리적 설계(데이터모델링) : 목표 DBMS에 맞는 논리스키마 설계, 트랜잭션 인터페이스 설계, 테이블 설계, 논리적 데이터베이스 구조로 매핑, 스키마의 평가 및 정제
    • 물리적 설계 : 목표 DBMS에 맞는 물리적 구조의 데이터로 변환, 저장레코드, 접근경로설계
    • 구현 : DDL로 데이터베이스를 생성, 트랜잭션을 작성

데이터모델의 개념

  • 데이터 모델 : 현실세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화하여 체계적으로 표현한 개념적 모형. 데이터, 데이터의 관계, 데이터의 의미 및 일관성, 제약조건 등을 기술하기 위한 개념적 도구들로 구성되어있다.

데이터 모델 구성요소

  • 개체 : 데이터베이스에 표현하려는 것. 사람이 생각하는 개념이나 정보단위 같은 현실 세계의 대상체 
  • 속성 : 데이터의 가장 작은 논리적 단위, 파일 구조상의 데이터 항목 또는 데이터 필드에 해당
  • 관계 : 개체간의 관계 또는 속성 간의 논리적 연결을 의미

데이터 모델의 종류 : 개념적 데이터 모델, 논리적 데이터 모델, 물리적 데이터 모델
데이터 모델에 표시할 요소 

  • 구조 : 논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 정적 성질 표현
  • 연산 : 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세로서 데이터베이스를 조작하는 기본 도구
  • 제약조건 : 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약조건

릴레이션 : 데이터들을 표의 형태로 표현한 것
튜플 : 릴레이션을 구성하는 각각의 행
튜플의 수 = 카디널리티 = 기수 = 대응수 
속성 : 데이터베이스를 구성하는 가장 작은 논리적 단위, 데이터 필드에 해당
속성의 수 = 디그리 = 차수
도메인 : 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자 값들의 집합 
키 :  데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 튜플들을 서로 구분할 수 있는 기준이 되는 애트리뷰트를 말한다.
후보키 : 릴레이션을 구성하는 속성들 중에서 튜플들을 유일하게 식별하기 위해 사용하는 속성들의 부분집합, 모든 튜플에 대해 유일성과 최소성을 만족시켜야 한다.
기본키 : 후보키 중에서 특별히 선정된 주키로 중복값과 NULL 값을 가질 수 없다.
대체키 : 후보키가 둘 이상일때 기본키를 제외한 나머지 후보키
슈퍼키 : 한릴레이션 내에 있는 속성들의 집합으로 구서오딘 키, 모든 튜플에 대해 유일성은 만족시키지만, 최소성은 만족시키지 못함
외래키 : 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
무결성 : 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제값이 일치하는 정확성을 의미

  • 개체 무결성 : 기본 테이블의 기본키를 구성하는 어떤 속성도 NULL 값이나 중복 값을 가질 수 없다는 규정
  • 참조 무결성 : 외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야 한다.
  • 도메인 무결성 : 주어진 속성의 값이 정의된 도메인에 속한 값이어야 한다.
  • 사용자 정의 무결성 : 속성 값들이 사용자가 정의한 제약조건에 만족되어야 한다는 규정
  • NULL 무결성 : 릴레이션의 특정 속성 값이 NULL이 될 수 없도록 하는 규정
  • 고유 무결성 : 릴레이션의 특정 속성에 대해 각 튜플ㄹ이 갖는 속성 값들이 서로 달라야한다는 규정
  • 키 무결성 : 하나의 릴레이션에는 적어도 하나의 키가 존재해야 한다는 규정
  • 관계 무결성 : 릴레이션에 어느 한 튜플의 삽입 가능 여부 또는 한 릴레이션과 다른 릴레이션의 튜플들 사이의 관계에 대한 적절성 여부를 지정한 규정

관계대수와 관계해석

  • 관계 대수 : 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어

순수관계 연산자

  • Select : 릴레이션에 존재하는 튜플 중에서 선택조건을 만족하는 튜플의  부분집합을 구하여 새로운 릴레이션을 만든느 연산
  • Project : 주어진 릴레이션에서 속성 리스트에 제시된 속성값만을 추출하여 새로운 릴레이션을 만드는 연산
  • Join : 공통속성을 중심으로 두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드는 연산
  • Division : X>Y인 두개의 릴레이션 R, S가 있을때 R의 속성이 S의 속성값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만을 구하는 연산 

일반집합 연산자

  • 합집합 : 두개의 릴레이션의 합이 추출, 중복은 제거
  • 교집합 : 중복되는 값들만 추출
  • 차집합 : 중복되지 않는 값들만 추출
  • 교차곱 : 두 릴레이션의 가능한 모든 튜플들의 집합. 차수는 더하고 카디널리티는 곱해서 값을 구하면 됨

관계해석 : 관계 데이터의 연산을 표현하는 방법. 원하는 정보가 무엇이라는 것만 정의하는 비절차적인 특성을 지니다.
이상 : 테이블에서 일부 속성들의 종속으로 인해 데이터의 중복이 발생하고, 중복으로 인해 테이블 조작 시 문제가 발생하는 현상을 의미

  • 삽입이상 : 테이블에 데이터를 삽입할 때 의도와는 상관없이 원하지 않은 값들로 인해 삽입할 수 없게 되는 현상
  • 삭제이상 : 테이블에서 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 즉, 연쇄 삭제가 발생하는 현상
  • 갱신이상 : 테이블에서 튜플에 있는 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 불일치성이 생기는 현상

정규화 : 하나의 종속성이 하나의 릴레이션 표현될 수 있도록 분해하는 과정

  • 1정규형 : 릴레이션에 속한 모든 도메인이 원자값으로만 되어있는 정규형
  • 2정규형 : 모든 속성이 기본키에 대해 완전 함수적 종속을 만족하는 부분적 함수 종속을 제거한 정규형
    • 부분 함수적  종속 : 어떤 테이블 R에서 속성 Y가 다른 속성 집합 X 전체에 대해 함수적 종속이면서 속성집합X의 임의의 진부분집합에 대해 함수적 종속일때 속성 Y는 속성집합 X 에 부분 함수적 종속
    • 이행적 함수적 종속 : X -> Y이고 Y->Z일때 X->Z를 만족하는 관게를 이행적 함수적 종속이라고 한다.
  • 3정규형 : 이행적 함수 종속 관계를 만족하지 않는 정규형
  • BCNF 정규형 : 모든 결정자가 후보키인 정규형
  • 4정규형 : 다치종속이 성립하는 경우
  • 5정규형 : 릴레이션의 모든 조인 종속이 후보키를 통해서만 성립되는 정규형

반정규화 : 시스템 성능을 향상하고 개발 및 운영의 편의성을 높이기 위해 정규화된 데이터 모델을 의도적으로 통합, 중복, 분리하여 정규화 원칙을 위배하는 행위
반정규화 방법

  • 테이블 통합 : 두 개의 테이블이 조인 되는 경우가 많아 하나의 테이블로 합쳐 사용하는 것이 성능 향상에 도움이 될 경우 수행(1:1, 1:N 관게 테이블 통합, 슈퍼타입/서브타입 테이블 통합)
  • 테이블 분할 : 테이블을 수직 또는 수평으로 분할한 것
  • 중복 테이블 추가 : 여러 테이블에서 데이터를 추출해서 사용해야 하거나 다른 서버에 저장된 테이블을 이용해야 하는 경우 중복테이블을 추가하여 작업의 효율성을 향상 시킬 수 있다.(집계 테이블추가, 진행 테이블추가, 특정부분만을 포함하는 테이블)
  • 중복 속성 추가 : 조인해서 데이터를 처리할 때 데이터를 조회하는 경로를 단축하기 위해 자주 사용하는 속성을 하나 더 추가하는 것

트랜잭션 : 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산 
트랜잭션 특징

  • 원자성(atomicity) : 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료되든지 아니면 전혀 반영되지 않도록 복구 되어야 한다.
  • 일관성(consistency) : 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성있는 데이터베이스 상태로 변환함
  • 독립성(isolation) : 둘 이상의 트랜잭션이 동시에 병행 실행 되는 경우 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없다.
  • 영속성(durability) : 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 한다.

CRUD 분석 : 프로세스와 테이블 간에 CRUD 매트릭스를 만들어서 트랜잭션을 분석 
CRUD : 생성, 읽기, 갱신, 삭제
뷰 : 사용자에게 접근이 허영된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본테이블로부터 유도된 이름을 가지는 가상 테이블
파티션 : 데이터베이스에서 대용량 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것을 말한다.
파티션의 종류 

  • 범위분할 : 지정한 열의 값을 기준으로 분할 
  • 해시분할 : 해시함수를 적용한 결과 값에 따라 데이터를 분할
  • 조합분할 : 범위 분할로 분할한 다음 해시 함수를 적용하여 다시 분할

 
 

반응형