관계형 데이터 모델

  • 데이터 모델 중 하나로 테이블 형식을 이용하여 데이터들을 정의하고 설명한 모델 (추상적인 개념)
  • 실세계의 데이터를 누구나 직관적으로 이해할 수 있는 형태로 기술할 수 있는 간단한 방식을 제공 (추상화, 정형화, 수치화)
  • 수학적인 개념을 바탕으로 설계됨
  • 테이블들의 집합

관계형 데이터베이스

  • 추상적인 개념인 관계형 데이터 모델에 기반하여 하나 이상의 테이블의 실세계를 표현한 데이터베이스
    • 실세계를 관계형 데이터 모델이라는 추상적인 도구를 이용하여 표현한 것
    • 테이블들을 컴퓨터의 기억 장치에 어떠한 방법으로 저장할 것인가에 대한 물리적인 구조까지 정의한 것은 아님 단순히 개념적으로 정의한 것
  • 관계형 데이터베이스가 하나 이상의 테이블로 구성되어 있을 때
    • 데이터베이스 스키마: 테이블 스키마의 집합
    • 데이터베이스 인스턴스(테이블 구조에 맞도록 들어가는 레코드): 테이블 스키마들에 대한 테이블 인스턴스의 집합

 

릴레이션(테이블)

  • 수학적으로 두 개 이상의 집합으로부터 각 집합을 구성하는 원소들의 순서쌍에 대한 집합을 의미
  • 속성(열)<필드>과 튜플(행)<레코드>으로 구성되어 있음

도메인(domain)

  • 데이터 타입
  • 실제 데이터 베이스에서 사용하진 않음
  • 각각의 필드가 가질 수 있는 값의 범위
  • 원자값(더 이상 분리되지 않는 값 - 최소 단위)이어야 함
    • 판별 방법: 어떤 용도로 사용되느냐에 따라 달라진다.

널(null)

  • 특정 필드에 대한 값을 알지 못하거나 아직 정해지지 않아 입력하지 못한 경우의 필드의 값
  • 0이나 공백 문자와는 다름

테이블 스키마

  • 테이블의 구조를 간단하게 표현한 것
    • 릴레이션(속성1,속성2,속성3….)
  • 테이블의 골격

테이블 인스턴스

  • 테이블 인스턴스의 각각의 레코드

차수

  • 테이블 스키마에 정의된 필드의 숫자

기수

  • 테이블 인스턴스의 레코드의 수

테이블의 특성

  • 중복된 레코드가 존재하지 않음
    • 전체가 동일한 레코드는 존재하지 않음
    • 테이블 인스턴스는 레코드들의 (집합)임
    • 예시: {1,1,2,3,5} 는 중복된 수가 있어서 집합이 아님
  • 레코드간의 순서는 의미가 없음
    • 테이블 인스턴스는 레코드들의 (집합)임
    • 두번째 세번째 필드를 찾는 연산 존재 x
    • 예시: {1,2,3,5}, {2,1,3,5} {3,1,2,5} 다음은 전부 같은 집합임

'CS > DataBase' 카테고리의 다른 글

집계 함수  (0) 2023.04.01
SQL 1  (0) 2023.03.24
관계 대수  (1) 2023.03.17
Key  (0) 2023.03.11
데이터와 데이터베이스  (1) 2023.03.03

데이터베이스

  • 정보를 필요에 따라 모아놓은 것
  • 조작 가능한(컴퓨터로 처리가 가능한) 데이터의 모임
  • 데이터를 좀 더 쉽게 처리하기 위해서 정렬된 형태로 저장
  • 목적: 지식을 판단하는 근거가 되는 자료를 제공하기 위해 존재
  • 서로 관련있는 데이터를 모아둔 기지(베이스)
  • 정형화되고 조작 가능한 컴퓨터에 저장된 데이터의 모임
  • 특정한 목적을 위해 계선, 저장, 검색, 정렬 등의 데이터 처리 작업을 수행
  • 디스크에 저장되는 지속적인 데이터의 모임

데이터, 정보 그리고 지식

  • 데이터: 실세계에 있는 현상 사실들을 관측하거나 측정하여 얻은 값들
    • 정형화되고(어떤 특유의 폼 안에 맞게 기록되는) 기록할 만한 가치가 있다고 판단되는 어떤 현상이나 사건, 아이디어에 대한 묘사
    • 객관적인 수치화된 값으로 저장이 되어 있어야함
  • 정보: 데이터를 처리하여 유추한 사실들 (객관적임)
  • 지식: 데이터와 정보를 처리하는 방법이나 분석과 판단에 관한 법칙 등을 포함하는 데이터와 정보에 비해 좀 더 상위 수준의 개념 (굉장히 주관적)

일시적인 데이터와 영구적 데이터

  • 일시적 데이터
    • 프로그램 종료시 사라지는 데이터
    • 휘발성 데이터
    • ex 프로그램의 변수
  • 영구적 데이터
    • 비휘발성 데이터
    • 프로세스의 생명주기에 종속적이지 않고 스스로 존재
    • 비휘발성 매체에 저장 ex SSD

데이터베이스 관리 시스템

  • DBMS: DataBase Management System
    • 컴퓨터에 저장되는 데이터베이스를 관리해주는 소프트웨어 시스템
    • 사람들이 데이터베이스를 쉽게 사용할 수 있게 해주는 시스템
    • 사용자와 데이터를 연결시켜주는 인터페이스
  • DBMS 종류들
    • Oracle, MS SQL-Server, DB2, MySQL
  • 실세계 비유
    • 물건 - 데이터
    • 창고 - 데이터베이스
    • 창고관리인 - DBMS
    • 직원 - 응용 프로그램 또는 사용자
  • 제공하는 기능
    • 정보를 표현할 수 있는 틀
      • DBMS가 정보를 관리할 수 있는 양식: Table의 양식
      • 다양한 정보의 표현이 가능해야 함
      • DDL 언어를 통해 정의
    • 데이터의 공유기능
      • 서로 동일한 데이터는 하나의 데이터로 관리함
      • 데이터를 공유함으로써 데이터의 중복을 제거
      • 동시성 제어: 동일한 데이터를 여러개의 응용프로그램에서 동시에 접근(트랜잭션) 하게 될때 해당 데이터가 비 일관적인 상태에 빠질 수 있는(동시성 문제)것을 방지 (어느 한쪽의 실행을 멈춤)
    • 데이터 무결성 유지 기능
      • 데이터를 정의할때 제약조건을 정의하기 때문에 들어온 데이터가 정확한 값임을 알 수 있음
    • 데이터 독립성
      • 응용 프로그램과 데이터 간의 독립성을 보장
      • 데이터 베이스의 테이블을 바꾸어도 프로그램이 바뀌지 않는다
    • 효율적인 자원관리
      • 많은 양의 데이터를 다루는데 효과적인 방법을 사용함
      • 디스크 상에 데이터를 배치시키거나 디스크의 데이터를 메인메모리로 버퍼링을 하는 기능을 제공해줌
    • 데이터 보안성과 안정성 유지 기능
      • 읽기 쓰기 권한을 따로 구분해서 제공함으로써 보안성과 안정성을 유지

파일 시스템의 데이터 관리 기능

  • 파일 시스템
    • 운영체제의 중요한 부분으로 데이터나 프로글매을 디스크에 읽고 쓸 수 있도록 해주는 프로그램
  • 프로그램에서 다루는 데이터를 직접 하나의 파일에 저장하여 관리 하는 경우의 문제점
    • 프로그램 이외의 방법으로도 데이터 조작 가능
    • 프로그램과 데이터 형식이 묶여 있음
      • 독립성이 보장되지 않음
    • 동시 접근의 문제
    • 보안 문제
    • 장애 복구 문제
  • 파일 시스템을 이용하는 DBMS
    • 파일 시스템: 기본적인 저장 기능만을 제공
    • DBMS: 데이터베이스 관리에 필요한 다양한 기능을 제공

데이터베이스 시스템과 사용자

  • 일반 사용자 (end user)
    • 응용프로그램의 인터페이스를 통해서 데이터베이스에 접근
  • 응용프로그램 개발자
    • 응용프로그램에서 데이터베이스를 연결하여 사용
  • DBMS 개발자
    • DBMS 구성하는 모듈들을 설계하고 구현하는 사람
  • 데이터베이스 관리자
    • 데이터베이스에 관련된 모든 것에 관리하고 책임을 지는 사람
    •  

'CS > DataBase' 카테고리의 다른 글

집계 함수  (0) 2023.04.01
SQL 1  (0) 2023.03.24
관계 대수  (1) 2023.03.17
Key  (0) 2023.03.11
릴레이션  (0) 2023.03.11

+ Recent posts