2. 데이터 입출력 구현

데이터베이스 개요

데이터베이스 (Database) – 여러 사람에 의해 공동으로 사용될 데이터를 중복을 배제하여 통합하고, 쉽게 접근하여 처리할 수 있도록 저장장치에 저장하여 항상 사용할 수 있도록 운영하는 운영 데이터

  • 통합된 데이터 (Integrated Data)
  • 저장된 데이터 (Stored Data)
  • 운영 데이터 (Operational Data)
  • 공용 데이터 (Shared Data)

DBMS (Database Management System, 데이터베이스 관리 시스템)

  • 사용자의 요구에 따라 정보를 생성해주고, 데이터베이스를 관리해주는 소프트웨어
  • 필수 3기능
    • 정의(Definition) 기능
    • 조작(Manipulation) 기능
    • 제어(Control) 기능

데이터 모델 구성 3요소

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

데이터베이스 스키마(Schema) – 데이터베이스의 전체적인 구조와 제약조건에 대한 명세를 기술하고 정의한 것

  • 스키마는 데이터 사전(Data Dictionary)에 저장
    • 데이터 사전 : 데이터 항목들에 대한 정보를 지정한 중앙 저장소 (테이블 및 뷰들의 집합)
  • 스키마는 특정 데이터 모델을 이용해서 만들어진다.
  • 스키마는 시간에 따라 불변인 특성을 가짐
  • 스키마는 데이터의 구조적 특성을 의미하며, 인스턴스에 의해 규정

스키마(Schema) 3계층

  • 외부 스키마 ( External Schema )
    • 개별 사용자들의 입장에서 데이터 베이스의 논리적 구조를 정의한 것
  • 개념 스키마 ( Conceptual Schema )
    • 데이터베이스의 전체 조직에 대한 논리적인 구조로, 물리적인 구현은 고려하지 않는다.
  • 내부 스키마 ( Internal Schema )
    • 물리적인 저장장치의 입장에서 본 데이터베이스 구조

데이터 독립성

  • 논리적 독립성 – 개념 스키마가 변경 되어도 외부 스키마에 영향을 주지 않는다.
  • 물리적 독립성 – 내부 스키마가 변경 되어도 외부/개념 스키마에 영향을 주지 않는다.

관계대수

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

관계대수 연산자

  • 순수 관계 연산자
    • SELECT (σ ) – 조건(Predicate)을 만족하는 튜플들의 부분 집합 (수평 연산)
    • PROJECT (π ) – 속성들의 부분 집합, 릴레이션에서 수직적 부분집합(속성의 값)을 구하는 연산으로 원하는 속성만 추출하기 위한 연산
    • JOIN (▷◁ ) – 두 테이블로부터 조건에 맞는 관련된 튜플들을 하나의 튜플로 결합하여 하나의 테이블로 만드는 연산
    • DIVISION (÷ ) – A, B 두 테이블에 대해 ‘A DIVISION B’는 B 테이블의 조건을 만족하는 튜플들을 테이블 A에서 추출하는 연산
  • 일반 집합 연산자 – 합집합 ( ∪ ), 교집합 ( ∩ ), 차집합( — ), 카티션 프로덕트( X )

반정규화 – 성능향상과 개발 편의성 등 정규화 기법에 위배되는 수행 기법

정규화

비정규 Relation >>>

  • 제1정규형 – 메인이 원자값
  • 제2정규형 – 분 함수적 종속 제거
  • 제3정규형 – 행적 함수 종속 제거
  • BCNF – 정자이면서 후보키가 아닌것 제거
  • 제4정규형 – 치 종속 제거
  • 제5정규형 – 인 종속성 이용

함수적 종속

  • 완전 함수 종속 (Full)
  • 부부적 함수 종속 (Partial)
  • 이행적 함수 종속 (Transitive)

이상현상 ( Anomaly, 정규화 하지않으면? 이상현상이 발생 )

  • 삽입 이상 – 불필요한 데이터까지 삽입되는 현상
  • 삭제 이상 – 연쇄 삭제
  • 갱신 이상 – 정보 모순

트랜잭션(Transaction) 특성 (ACID)

  • 원자성 (Atomicity) – 트랜잭션의 가장 기본적인 특성으로 트랜잭션 내의 연산은 반드시 모두 수행되거야 하며 그렇지 못한 경우 모두 수행되지 않아야 함
  • 일관성 (Consistency) – 트랜잭션이 정상적으로 완료된 후 언제나 일관성 있는 데이터베이스 상태가 되어야 하며, 결과에 모순이 생겨서는 안 됨
  • 격리성, 독립성 (Isolation)  – 하나의 트랜잭션이 수행 중에는 다른 트랜잭션이 접근할 수 없고 각각의 트랜잭션은 독립적이어야 함

영속성 (Durability) – 지속성이라고도 하며, 트랜잭션이 성공적으로 완료된 후 결과는 지속적으로 유지되어야 함

Loading

Leave a Reply

Your email address will not be published. Required fields are marked *