반응형

[TOC]

데이터 베이스 1

1. 데이터베이스 개념

데이터 vs 데이터베이스

데이터

  • 현실 세계에서 관찰 또는 수집의 결과로 나타난 객관적 사실(fact)
  • 획득된 그대로의 정량적 혹은 정성적 실제 값(value)
  • 현실세계로 부터 쉽게 얻음

정보

  • 획득된 데이터에 의미를 부여하거나 가공 처리를 통해 의사 결정(decision making) 에 활용하도록 체계적으로 조직한 결과
  • 가공 처리된 데이터
    • 가공처리 : 간단한 데이터의 조건 검색, 정렬, 사칙연산부터 복잡한 업무 처리나 통계 처리 등 다양한 행위를 포함

정보 시스템

  • 한 조직의 활동과 운영에 필요한 데이터를 수집, 저장해 두었다가 다양한 방식으로 처리 및 가공함으로써 의사 결정에 필요한 정보를 생성하는 소프트웨어 체계
  • 수집된 데이터를 저장했다가 필요할 때 제공하는 역할은 정보 시스템의 핵심 요소인 데이터베이스가 담당
image





정보 시스템의 발전 과정

과거 정보 시스템의 문제점

  • 데이터 종속성의 증가

    • 파일 안의 저장 방식이나 접근 방법을 변경할 경우, 연관된 모든 응용 프로그램도 함께 수정되어야 하는 데이터 종속성(data dependency) 문제 발생
  • 데이터 중복성의 증가

    • 같은 데이터가 여러 파일 안에 중복 저장되면 관리가 어렵고 기억 장소의 낭비도 발생함
    • 한 시스템 안에서 같은 내용의 데이터가 중복 저장되는 데이터 중복성(data redundancy) 문제 발생
  • 문제점

    • 데이터 중복성 문제는 줄어들 수 있지만 여전히 파일 단위의 동시 공유나 보안만 가능하여 다수의 사용자 지원이 제한됨
    • 대용량 데이터에 대한 공유나 보안, 장애 발생 시 회복 등의 처리가 어려움

데이터베이스의 등장

넓은 의미

관련된 콘텐츠(content)를 모아놓은 데이터 저장소

데이터 형식이나 구성에 제약 없이 자유롭게 활용하는 사용자 관점에서의 데이터베이스

예) 인터넷 웹 문서, 전자책(e-book)을 제공하는 전자도서관, VOD 서비스 등

좁은 의미

데이터베이스를 보다 효율적이고 체계적으로 활용하기 위해 구성한 데이터 형식이나 구성에 엄격한 제약을 갖는 시스템 관점에서의 데이터베이스

예) 인터넷 뱅킹 시스템, 극장예매 시스템, 쇼핑몰구매 시스템, 편의점 재고 시스템 등

보통 데이터베이스를 배운다고 할 때의 대상은 넓은 의미의 데이터베이스가 아닌 바로 이 좁은 의미의 데이터베이스임

  • 데이터 종속성 문제를 공통의 데이터 모델과 표준 데이터 언어를 이용하여 해결
  • 데이터 중복성 문제를 통합 저장소를 이용하여 해결
  • 데이터베이스 접근을 DBMS가 제공
    • 응용 프로그램이나 사용자는 DBMS를 통해서만 데이터 처리가 가능
    • 데이터 처리에 관한 복잡하고 힘든 과정을 DBMS가 모두 떠맡아 처리

imageimage

데이터베이스의 정의

  • 공용 데이터의 저장소(개인소유가 아닌 공동의 소유)
  • 통합 데이터의 저장소(여러곳에서 필요한 데이터를 하나로 통합)
  • 운영 데이터의 저장소(특정 조직의 운영 목적을 위해 사용되는 운영데이터, 필수적 데이터의 모임)
  • 저장 데이터의 저장소(디지털화된(0 or 1) 저장 데이터들의 저장소)

데이터베이스의 특징

  • 실시간 접근
  • 끊임없는 변화
  • 동시 공용
  • 내용 기반 참조

2. 데이터베이스 시스템

데이터베이스(DB) vs 데이터베이스시스템(DBMS)

  • 데이터베이스 : DB

저장소

  • 데이터베이스 관리 시스템 : DBMS

데이터베이스를 관리하는 소프트웨어

  • 데이터베이스 시스템 : DBS

데이터베이스와 데이터베이스 관리 시스템들을 모두 포함하는 개념

데이터베이스 사용자의 분류

  • 일반 사용자 = 최종 사용자(end user)
    • 컴퓨터나 데이터베이스에 대한 전문 지식 없이 데이터베이스를 접근하는 사용자 유형
    • 초급 사용자: 데이터베이스나 DBMS의 존재를 알지 못하는 관련 지식이 없는 사용자
      중급 사용자: 데이터베이스 기본 지식을 갖추고 필요할 경우, 데이터 언어를 사용하여 데이터에 대한 처리를 직접 DBMS에 요청
  • 응용 프로그래머
    • 데이터베이스 전문 지식을 가지고 응용 프로그램(application)을 개발할 목적으로 데이 터베이스를 접근하는 사용자 유형
    • 프로그램 전문 개발자로 C, Java, JSP, PHP와 같은 프로그래밍 언어를 구사할 수 있고 작성한 응용 프로그램 안에 데이터 언어나 DBMS 실행 명령어 작성 능력을 갖춘 사용자
  • 데이터베이스 관리자(DBA: DataBase Administrator)
    • 데이터베이스를 구축하고 데이터베이스 시스템을 자체적으로 운영·통제하는 특별한 소 수의 사용자 유형
    • DBMS의 슈퍼 사용자(super user)
    • 데이터베이스 시스템의 관리를 총괄(데이터베이스의 설계, 구축, 서비스, 운영 등을 위해 DBMS의 다양한 기능들을 활용함으로써 데이터베이스 시스템을 제어)

DBA(데이터베이스 관리자)의 주요역할

  • 데이터베이스 시스템의 구성 요소 선정
  • 데이터베이스의 구조 정의
  • 물리적 저장 구조와 접근 방법 결정
  • 무결성 유지를 위한 제약 조건 정의
  • 보안 및 접근 권한 정책 결정
  • 백업 및 회복 기법 정의
  • 시스템 데이터베이스 관리
  • 시스템 성능 감시 및 성능 분석
  • 데이터베이스의 재구성
  • 데이터베이스 관련 의견 조정과 분쟁 해결

데이터 언어

  • SQL
  • 데이터베이스 사용자와 응용 프로그램은 모두 DBMS를 통해서만 데이터베이스에 접근 할 수 있음
  • DBMS에 요청 내용을 전달하기 위한 도구

데이터 언어의 분류

  • 데이터 정의어(DDL : Data Definition Language)

새로운 데이터베이스 구조를 정의하고 기존 데이터베이스 구조를 변경하는 명령어 집합

데이터베이스 구조를 표현하는 데이터베이스 스키마를 명세하기 위해 사용

CREATE, ALTER, DROP

  • 데이터 조작어(DML : Data Manipulation Language)

데이터베이스 안의 데이터를 실제 조작하는 명령어 집합

DBMS에게 데이터의 입력, 수정, 삭제 및 검색을 요청하기 위해 사용

INSERT, UPDATE, DELETE, SELECT

  • 데이터 제어어(DCL : Data Control Language)

데이터베이스를 제어하고 통제하기 위해 사용하는 명령어 집합

데이터베이스가 안전하게 오류없이 동작하고 성능을 유지하도록 각종 제약이나 옵션을 설정함으로써 DBMS가 데이터베이스를 올바르게 관리하도록 함

GRANT, REVOKE, CREATE USER, COMMIT, ROLLBACK

DMBS(Database Management System)

데이터베이스를 효율적으로 관리하고 데이터베이스에 대한 데이터 요청을 처리하는 소프트웨어 시스템

  • 정의 기능
    • 데이터를 저장하는 통합 DB구조를 생성하거나 이미 생성된 구조를 삭제 또는 변경할 수 있도록 함
  • 조작 기능
    • DB안에 저장된 데이터에 접근하여 원하는 데이터 조작을 할 수 있도록 함
    • 입력, 수정, 삭제 및 검색 요청을 효율적으로 처리
  • 제어 기능
    • 동시에 여러사용자가 접근해도 데이터를 정확하고 안전하게 유지하도록 통제
    • 사용자별 보안과 권한 설정 => 동시성과 무결성을 유지하면서 백업을 통해 장애 발생대처 가능

데이터베이스 서버

DB가 구동되는 서버의 역할을 하는 컴퓨터

  • 클라이언트/서버 컴퓨팅 환경
    • 사용자는 클라이언트 컴퓨터를 통해 접근
    • 데이터베이스 세스템을 독립된 컴퓨터 안에 서버 형태로 운영
    • DB서버 안에는 데이터베이스가 물리적으로 저장되며 DBMS가 설치되어 다양한 요청이 처리

데이터 모델

  • 계층형 데이터 모델
  • 네트워크형 데이터 모델
  • 관계형 데이터 모델
    • 테이블 형태의 저장구조를 가지며 데이터 사이의 연관관계를 테이블의 키(key), 열(column)을 통해 표현하는 저장방식
    • 연관된 데이터 사이에 기본키와 외래키를 통해 논리적 관련성을 표현
  • 객체 지향형 데이터 모델
  • 객체 관계형 데이터 모델

스키마(schema)

데이터베이스 안에 저장되는 데이터 구조와 제약 조건 등을 정의한 것

데이터베이스의 정적인 구성 뿐만아니라 동적인 유지 조건까지 포함

동일한 데이터베이스라도 접근 관점에 따라 스키마는 다를 수 있음

image image









외부 스키마(external schema)

사용자가 외부에서 바라보는 관점에서의 개인적 데이터베이스 구조 정의

일부 데이터베이스의 논리적 부분을 표현

데이터베이스 일부만을 대상으로 한정하여 명세한 구조이므로 서브 스키마로도 부름

사용자 별 바라보는 관점은 다양하므로 여러 외부 스키마가 존재

개념 스키마(conceptual schema)

모든 사용자들의 관점을 통합하여 전체 조직 관점에서 데이터베이스 구조를 정의

통합된 데이터베이스의 논리적 부분을 표현

조직이나 기관의 데이터베이스 전체를 명세한 구조로서 간단히 스키마라고 부름

DB에는 하나의 개념 스키마만 존재

내부 스키마(internal schema)

저장 장치의 관점에서 전체 데이터베이스의 내부구조 정의

개념스키마에 대한 시스템 내부의 저장 방식을 표현

내부 레코드 형식, 배치방법, 인덱스 등에 대한 명세 포함

DB당 하나만 존재

데이터 사전

DBMS는 스키마와 스키마 사상 정보를 데이터 사전(저장소)에 관리

  • 다양한 데이터베이스 객체(테이블과 열, 뷰, 인덱스, 사용자 권한 등)에 관한 모든 데이 터를 포함
  • DBMS가 스스로 생성하고 유지
  • 사용자뿐만 아니라 시스템 관리를 위해서도 필요한 저장 공간으로 그 자체가 하나의 데이터베이스
image








사용자 데이터베이스(user database)

  • 사용자나 응용 프로그램이 실제로 이용하는 데이터를 저장하는 일반 데이터베이스

시스템 데이터베이스(system database) 또는 시스템 카탈로그(system catalog)

  • 데이터 디렉토리(data directory)
    • 사용자가 접근할 수 없음
    • 데이터 접근에 필요한 위치 정보를 저장하는 저장소
  • 데이터 사전(data dictionary)
    • 데이터베이스에 저장된 모든 부가 정보 즉, 데이터베이스 정의나 명세뿐만 아니라 스 키마와 이들 간의 사상 정보, 제약 조건 등을 저장하는 저장소

메타 데이터

  • 데이터 사전에 저장된 데이터는 ‘데이터에 관한 데이터(data about data)’임
  • 한 차원 높은 데이터라는 의미에서 메타 데이터(meta data)라고 함
  • DBMS뿐만 아니라 일반 사용자도 검색할 수 있지만 변경은 DBMS만 가능

📌3단계 데이터베이스 구조 특징

응용 프로그램과 데이터 사이의 독립성 제공

데이터 독립성 : 데이터의 논리적 구조나 물리적 구조가 변경되어도 응용 프로그램이 영향을 직접 받지 않는 특성

DBMS는 3단계 데이터베이스 구조의 스키마 간의 적절한 사상을 통해 데이터 독립성 지원

image













  • 외부/개념 사상
    • 외부 스키마를 변경해도 전체 개념적 스키마는 변경의 최소화로 영향을 최소화함
  • 개념/내부 사상
    • 물리적 구조의 변경에 따른 내부 스키마가 수정되더라도 연관된 개념/내부 사상정보만 수정하면 상위 스키마에 대한 영향을 최소화

3. 관계형 데이터 모델

데이터 모델

현실 세계의 데이터를 명세하는 고유한 표현 방식, 데이터모델링을 위한 도구

데이터 모델의 구조

image







관계형 데이터 모델

테이블 형태릴레이션을 통해 데이터를 저장하고 데이터 간의 관련성도 표현

데이터베이스를 논리적 수준에서 이해하고 사용할 수 있도록 함

image









릴레이션(relation)

관계형 데이터 모델의 핵심 요소로 특별한 의미를 갖는 테이블

아래의 그림은 각각 학생 릴레이션과 직원 릴레이션

image

  • 속성(attribute)

    • 테이블의 열(column)
    • 의미적으로 더이상 분해할 수 없는 원자값(atomic value)만 사용 => 가장 작은 논리적 단위
  • 튜플(tuple) or 레코드

    • 테이블의 각 행(row)
    • 현실 세계의 개체(entity) 표현
  • 도메인(domain)

    • 각 속성이 취할 수 있는 모든 값들의 집합을 정의(필드에 채워질 수 있는 값들의 집합)
    • 데이터 값들의 유형과 크기, 범위를 정의
  • 카디널리티

    • 릴레이션 안의 전체 튜플의 개수
    • 입력, 수정, 삭제 등을 통해 계속 변화
    • 동적 특성
  • 차수

    • 릴레이션을 구성하는 전체 속성의 개수

    • 각 튜플이 가지는 속성값의 개수는 릴레이션의 차수와 같음

    • 정적특성

릴레이션의 구성 요소

릴레이션 스키마 + 릴레이션 인스턴스 2가지 요소로 구성

image








  • 릴레이션 스키마
    • 특정 릴레이션의 논리적 구조를 뜻함
    • 시간이 경과해도 좀처럼 변경되지 않는 정적인 특성
    • 키 속성을 밑줄 표시
    • image
  • 릴레이션 인스턴스
    • 어느 한 시점에 릴레이션에 존재하는 튜플들의 집합
    • 시간에 따라 변하는 동적인 특성
    • image

관계형 데이터베이스의 구성

데이터베이스 스키마 : 릴레이션 스키마들의 모임(정적)

데이터베이스 인스턴스 : 특정 시점에서의 모든 릴레이션 인스턴스들의 모임(동적)

image








릴레이션의 특성

  1. 튜플의 유일성(중복값 x)
  2. 튜플의 무순서성(순서 상관 x)
  3. 속성의 무순서성(순서 상관 x)
  4. 속성의 원자성(더이상 분해할 수 없는 하나의 원자값을 가짐)

제약조건

  • 릴레이션의 키(key)
    • 중복허용 x

키의 종류

  • 후보키(CK)
    • 튜플을 유일하게 식별할 수 있는 속성들의 최소집합
    • 유일성(해당값이 유일)과 최소성(키로 지정한 속성의 개수를 최소화) 조건 만족
  • 슈퍼키(SK)
    • 유일성 조건만 만족하면 됨
    • 모든 후보키는 슈퍼키
  • 기본키(Primary key)
    • 투플을 대표하도록 선정된 후보키
      • 여러 후보키중 하나를 기본키로 지정
      • 식별수단으로 적합
    • 후보키가 하나일 경우 바로 기본키가 됨
    • 후보키가 여러개일 경우
      • 정적인 속성
      • null값을 가질 수 없는 속성
      • 속성 개수가 작은 후보키
      • 속성값의 크기가 작은 후보키
  • 대체키(AK)
    • 기본키로 선정되지 못한 후보키
image











  • 외래키(FK)
    • 특정 릴레이션의 기본키를 참조하는 속성 집합
    • 기본키와 외래키는 릴레이션 간의 연관성을 표현
image











무결성 제약조건

관계형 데이터베이스 모델에서 릴레이션 안의 모든 데이터들을 정확하고 완전한 상태로 유지하기 위해 적용해야하는 제약사항

데이터 무결성

데이터의 일관성과 정확성에 손상이 없도록 유지되는 특성

  • 개별 응용 프로그램안에 각 프로그램에 맞춰 제약사항을 점검하는 코드를 추가하여 구현(비효율)
  • DBMS안의 무결성 제약조건을 설정하여 구현
기본 무결성 제약 조건
  • 개체 무결성 제약 조건
    • 기본키로 지정한 모든 속성은 NULL값을 가질수 없고 중복도 없음(기본키 제약조건)
    • 개체의 유일성 선언
    • DBMS에게 기본키를 선언하면 즉시 적용
  • 참조 무결성 제약 조건
    • 외래키로 지정한 속성은 참조하는 릴레이션의 기본키 속성값과 일치 혹은 그에 준하는 제약조건을 가진 값
    • 외래키 제약 조건
    • DBMS에 외래키를 선언하면 즉시 적용
  • 도메인 무결성 제약 조건
    • 투플의 모든 속성값이 각 속성의 도메인에 속한 값만을 취해야함
  • 유일성 제약 조건
    • 모든 키 속성 값이 서로 중복되지 않고 유일해야 함
image





3. 관계연산

릴레이션을 조작하기 위한 연산

관계 대수

사용자가 필요로 하는 데이터를 획득하는 절차(연산들의 적용순서)를 명세

실행 순서를 순차적으로 명세하는 절차적 표현법

관계 해석

사용자가 필요한 데이터가 무엇인지, 연산들의 최종 결과만을 명세

image
반응형

'데이터 베이스' 카테고리의 다른 글

데이터 베이스 3  (0) 2023.05.01
데이터베이스2  (0) 2023.05.01
테이블 설계의 기초  (0) 2022.05.23
트랜잭션  (0) 2022.05.23
데이터베이스 아키텍처 구성  (0) 2022.05.19

+ Recent posts