데이터베이스의 개념

  • 데이터베이스란?
    • 어느 한 조직에서 업무 처리를 위해 공용으로 사용하기 위해 통합 및 저장된 운영 데이터의 집합
    • 통합된 데이터
      • 중복을 최소화한 데이터의 집합
    • 저장된 데이터
      • 사용자가 언제든지 이용할 수 있도록 저장된 데이터의 집합
    • 공용 데이터
      • 여러 사용자가 공유할 수 있도록 만든 데이터의 집합
    • 운영 데이터
      • 중복 최소화 및, 여러 사용자간에 공유함에 있어 문제가 발생하지 않도록 관리를 필요로하는 데이터
      • 이용가치가 있는 데이터의 집합
  • 데이터베이스의 특징
    • 계속적인 변화
      • 항상 최신 정보를 유지할 수 있도록 삽입 삭제 갱신이 이루어짐
    • 동시 공유
      • 여러 사용자가 동시에 접근하여 이용
    • 실시간 접근성
      • 질의(query)에 대해 실시간 처리 및 응답
    • 내용에 의한 참조
      • 데이터의 물리적 주소나 위치가 아닌 데이터 내용으로 검색
    • 데이터 중복의 최소화
      • 동일 데이터의 중복성을 최소화 해야함
  • 데이터 베이스의 구성요소
    • 개체, 속성, 관계로 이루어짐
    • 개체
      • 현실 세계의 대상체
      • 실세계 존재하는 유형 혹은 무형 정보의 대상, 서로 구별이 되는 하나의 대상
      • 개체는 하나 이상의 속성으로 구성
    • 속성
      • 데이터베이스를 구축하는 가장 작은 논리 단위
      • 개체의 특성, 상태 기술
      • 속성만으로는 개체를 구분하기 어렵다
    • 관계
      • 두 개이상의 개체 사이 또는 속성 간의 상호 연관성을 말함
      • 관계의 종류
        • 1 : 1
          • 두 개체 간의 구성 원소가 각각 하나씩 대응되는 경우
        • 1 : N
          • 두 개체 간의 구성 원소 중 하나의 원소와 여러 개의 원소가 대응되는 경우
        • N : M
          • 두 개체 간의 구성 언소들이 상호 여러 개의 원소들과 대응되는 경우
    • 시스템 카탈로그
      • 데이터베이스에 저장되어 있는 테이블, 인덱스, 뷰, 제약조건, 사용자 등 개체들에 대한 정보와 정보들 간의 관계를 저장 한 것
      • 데이터 사전이라고도함
      • 카탈로그에 저장된 데이터를 메타 데이터라 함
      • 시스템 카탈로그 갱신은 사용자가 sql 문을 실행하면 시스템에 의해 자동적으로 이루어진다

데이터베이스 관리 시스템

  • DBMS
    • 데이터의 중복성과 종속성 등의 문제를 최소화하기 위함
    • 사용자와 데이터베이스 간의 중계 역할을 한다
    • 데이터 베이스의 내용을 정의 조작 제어
    • 모든 사용자나 응용 프로그램들이 데이터 베이스를 공유할 수 있도록 관리 운영하는 소프트웨어 시스템
  • DBMS 필수 기능
    • 정의
      • 저장될 데이터의 형태 구조등 데이터베이스 저장에 관한 여러 가지 사항을 정의하는 기능
    • 조작
      • 데이터베이스의 자료를 사용자가 이용할수 있도록 검색,갱신,삽입, 삭제하는 기능
    • 제어
      • 데이터의 정확성과 안정성 유지를 위한 관리 기능
      • 데이터의 무결성 유지, 보안, 병행 수행 제어 제공
  • 데이터베이스 언어
    • DDL
      • 데이터베이스 구조를 정의 수정 삭제 등을 위해 사용되는 언어
    • DML
      • 데이터베이스 내의 자료를 검색,삽입,갱신,삭제하기 위해 사용되는 언어
    • DCL
      • 데이터베이스의 데이터에 대해 무결성 유지 병행 수행 제어, 보호와 관리를 위한 언어

데이터베이스 구조(스키마)

  • 데이터 베이스의 표현
    • 논리적 구조
    • 물리적 구조
  • 스키마
    • 데이터베이스의 전체적인 구조와 제약조건에 대한 명세를 기술 정의한 것
    • 내부스키마
      • 물리적 저장장치 관점에서 본 데이터베이스의 물리구조
    • 개념 스키마
      • 논리적 관점에서 본 전체적인 데이터 구조
    • 외부 스키마
      • 전체 데이터 중 사용자가 사용하는 한 부분에서 본 논리구조를 말함
      • 서브 스키마
  • 데이터베이스 관리자(DBA)
    • 데이터 베이스 구성요소를 결정
    • 저장 구조와 접근 방법을 선정
    • 보안, 권한 부여, 유효성 검사 등을 수행
    • 스키마를 정의
    • 예방 회복 절차 수립 등을 모색
    • 무결성 유지를 위한 관리
  • 데이터 관리자(DA)
    • 기업이나 조직 내에서 데이터 정의와 체계화, 감독 및 보안 업무를 담당하는 관리자

데이터베이스 설계

  • 데이터베이스 설계 과정
    • 요구사항 분석 - 설계 - 구현 - 운영 및 개선(유지보수)
    • 요구 사항 분석
      • 데이터 베이스 정의, 명세서 작성
    • 설계
      • 개념적 설계 - 논리적 설계 - 물리적 설계
      • 개념적 설계
        • 구현할 데이터베이스 정함
        • 데이터베이스 구성요소 결정
        • 수행할 작업과 관계를 설계하는 과정
        • E-R 모델 이용
      • 논리적 설계
        • 스키마 정의
        • 개념적 설계에서 만들어진 구조를 데이터 모델로 변환하는 단계
      • 물리적 설계
        • 내부 저장 장치 구조와 접근 경로 등을 설계하는 과정
      • 구현
        • 설계 과정에서 얻어진 것을 토대로 실제 데이터 베이스를 만드는 과정
        • 유지 봉수의 용이성, 간결 명료하게 구현해야함
      • 데이터 아키텍쳐
        • 기업의 데이터 측면에서 기업 시스템을 처음부터 끝까지 시스템의 본질인 데이터를 구조적 체계적으로 관리하고 설계하는 모든 과정을 말함
      • 운영 및 개선(유지 보수)
        • 구현된 데이터베이스를 실제로 운영하는 단계

E-R 모델

  • E-R 모델
    • 개념적 설계 단계에서 사용되는 설계 기법
    • 데이터 베이스의 전반적인 구조를 이해하기 쉽도록 표현한 모델

관계 데이터 모델

  • 관계 데이터 모델

    • 자료의 저장 형태를 2차원 구조의 표로 표현하는 방법
  • 관계 데이터 모델의 용어

    • 릴레이션
      • 자료 저장의 형태가 2차원 구조의 테이블로 표현
    • 속성
      • 릴레이션을 구성하는 각 열
    • 튜플
      • 릴레이션의 한 행을 구성하는 속성들의 집합
      • Record
    • 도메인
      • 하나의 속성이 가질 수 있는 값들의 범위
    • 릴레이션 스키마
      • 릴레이션의 이름과 속성 이름의 집합
    • 릴레이션 인스턴스
      • 릴레이션에서 어느 시점까지 입력된 튜플들의 집합
    • 차수(degree)
      • 릴레이션을 구성하는 속성의 수
    • 카디널리티
      • 릴레이션에 입력된 튜플의 수
  • 릴레이션의 특징

    • 튜플들은 모두 상이하다
    • 튜플들은 유일하며 순서가 없다
    • 속성 간에도 순서가 없다
    • 속성 값은 원자값으로 구성되며 분해가 불가능하다
  • Mapping Rule

    • 개념적 데이터베이스 모델링 결과를 관계형 데이터 베이스 이론에 근거하여 데이터 베이스 구조로 변환하는 과정
    • E-R 모델 –> 릴레이션

키와 무결성 제약 조건

  • 키(KEY)

    • 관계 데이터베이스에서 튜플 을 식별하기 위해 사용하는 속성이나 속성의 집합
    • 데이터베이스의 참조 또는 검색 시에 사용
  • 키의 종류

    • 후보키
      • 릴레이션에서 각 튜플을 유일하게 식별할 수 있는 속성이나 속성의 집합
      • 유일성과 최소성을 모두 만족
    • 기본키
      • 후보키 중 튜플을 식별하기위해 특별히 선택된 키
      • 중볼 될수 없으며, NULL 값이 올 수 없다.
      • 유일성과 최소성을 만족해야함
    • 대체키
      • 후보키 중 기본키를 제외한 속성
    • 외래키
      • 하나의 테이블에서 원하는 자료를 얻지 못하는 경우 다른 테이블을 참조하기 위해 사용되는 속성, 외래 식별자
      • NULL 가능
      • 참조하는 릴레이션의 기본키와 같아야한다.
    • 슈퍼키
      • 한 릴레이션 내의 튜플들을 식별할 수 있는 후보키와 다른 속성들과의 모든 조합
      • 최송성은 만족하지 않음
  • 식별 관계와 비식별 관계

    • 식별 관계
      • 외래키가 기본키인 경우
    • 비식별 관계
      • 외래키가 일반속성인 경우
  • 무결성 제약조건
    • 개체 무결성
      • 기본키는 NULL 값이 올 수 없으며, 중복 될 수 없음을 나타냄
      • 개체 무결성은 개체를 식별하기 위해서 오류가 없도록 하기 위한 제약 조건
    • 참조 무결성
      • 외래키는 NULL 값이 올 수 있으며, 참조 릴레이션의 기본키와 같아야하는 제약조건
      • 테이블 참조시 오류가 없도록 하기 위한 제약 조건
    • 도메인 무결성
      • 릴레이션에서 속성값의 범위가 정의된 경우 그 속성 값은 정해진 범위 이내의 값으로 구성해야하는 제약조건
    • 고유 무결성
      • 특정 속성에 대해 고유한 값을 가지도록 조건이 주어진 경우, 그 속성값은 모두 달라야한다
    • NULL 무결성
      • 특정 속성 값에 NULL이 올 수 없다는 조건이 주어진 경우, 그 속성 값은 NULL 값이 올 수 없다는 제약조건
    • 키 무결성
      • 하나의 릴레이션에는 최소한 하나의 키가 존재해야하는 제약 조건

관계 데이터 연산

  • 관계 대수

    • 순수 관계 연산자
      • select, project, join, division
    • 일반 집합 연산자
      • 합집합, 교집합, 차집합, 카디션 프로덕트
  • select

    • 릴레이션에서 조건을 만족하는 수평적 부분집합(튜플)을 구하는 연산
    • 조건을 만족하는 튜플들로 테이블을 만듬
  • project

    • 릴레이션에서 수직접 부분 집합(속성의 값)을 구하는 연산으로 원하는 속성만 추출하기 위한 연산
  • join

    • 두 테이블로부터 조건에 맞는 관련된 튜플들을 하나의 튜플로 결합하여 하나의 테이블로만드는 연산
    • 동일 조인, 자연 조인, 외부 조인, 세타조인 등 여러가지 종류가 있다
    • 동일 조인
      • 관계 연산자 중 “=”만을 사용하여 조건을 표현
      • 가장 기본이 되는 조인
      • 중복이 되는 속성도 포함
    • 자연 조인
      • 동일 조인에서 중복되는 속성을 제거하여 표현
    • 세타 조인
      • 관계 연산자 중 “=”외의 연산자를 이용해 조건 수식을 표현하여 조인하는 연산
      • 중복 속성도 표현
    • 외부 조인
      • 조건에 맞지 않는 튜플도 결과 테이블에 포함시켜 조인하는 방법
      • 해당 장료가 없는 부분은 NULL 값이 된다
  • Division

    • A와 B 테이블에서 B 테이블의 조건을 만족하는 튜플들을 테이블 A에서 추출하는 연산
    • 연산에 사용된 속성은 결과에서 제외
  • 관계 해석
    • 릴레이션에서 결과를 얻기 위한 과정을 표현
    • 연산자 없이 정의하는 방법을 이ㅛㅇ하는 비절차적 언어
    • 튜플 관계 해석과 도메인 관계 해석이 있다.
    • 표기 형식 : {결과값|조건}