데이터베이스(Database)

Luluzoe·2022년 1월 17일
0

01. Database란 무엇인가?

데이터란 컴퓨터 안에 기록되어 있는 숫자를 의미하며, 이러한 데이터의 집합을 데이터베이스라고 한다.

넓은 의미에서는 "컴퓨터 안에 기록된 모든 것"을 데이터베이스라고 하지만, 일반적으로 데이터베이스라는 개념은 특정 데이터를 확인하고 싶을 때 간단하게 찾아낼 수 있도록 정리된 데이터의 집합을 말한다.

데이터베이스 내부에 들어있는 데이터는 어떻게 생겼을까?


위 그림은 영화 데이터로, 영화의 title, release_year, length, replacement_cost를 저장하고 있다.

이러한 데이터들은 보통 데이터베이스 관리시스템 (DBMS, Database Management System)으로 제어하고 관리한다.

02. Database Management System (DBMS)란?

데이터베이스 관리 시스템(DBMS, Database Management System)은 데이터베이스를 효율적으로 관리하는 소프트웨어를 말합니다. 저장장치 내에 저장된 데이터의 집합인 데이터베이스는 다른 개념이다.

Database와 DBMS를 사용하는 이유?

  • 데이터를 보존하기 위해서
  • 체계적으로 관리할 수 있다.
  • 생산성 : 시스템 개발 과정에서의 생산성 향상
    ->데이터검색(Read), 추가(Create), 삭제(Delete), 갱신(Update)
  • 기능성 : 데이터베이스를 다루는 고급 기능 제공
    ->복수의 유저 요청 대응, 대용량 데이터 저장, 고속 검색, 기능 확장의 유연함.
  • 신뢰성 : 하드웨어를 여러 대로 구성하여 신뢰성을 높이는 동시에 성능 향상 도모
    ->확장성(Scalablity), 부하 분산(Load balancing), 데이터 추출, 데이터 리스토어

->정리하면, 데이터베이스 관리 시스템(DBMS, Database Management System)은 데이터베이스를 관리하는 소프트웨어로, 사용 목적은 생산성 향상과 기능성, 신뢰성 확보에 있다.

03. 관계형 데이터베이스

관계형 데이터베이스(RDBMS)란?

  • 관계 대수(relational algebra)라는 것에 착안하여 고안한 데이터베이스
  • 즉 행과 열을 가지고 표 형식 데이터를 저장하는 형태의 데이터베이스를 가리킨다.
  • 표 형식 데이터란 2차원 데이터를 말한다. 가로 방향으로는 "열, 세로 방향으로는 "행"을 나열한다. (엑셀 시트)
  • 관계형 데이터베이스에서는 이러한 표를 잔뜩 저장해두고, 각각의 테이블에 이름을 붙여 관리한다.
  • SQL을 사용할 수 있는 데이터베이스

    2차원 테이블(table) 예시

    • Column (열) : 컬럼은 테이블의 각 항목 (id, 책 제목, 작가, 출판사, 가격)을 의미합니다.
    • Row (행) : 로우는 각 항목들의 실제 값입니다. 2번 행을 보면, 갈매기의 꿈, 리처드 바크, 나무옆의자, 11,520 이라는 실제 값이 있습니다.
    • 각 로우는 저만의 고유 키(Primary Key)가 있습니다.

관계형 데이터베이스(RDBMS)가 사용되는 시스템

  • RDBMS는 역사가 깊은 만큼 다양한 시스템에서 사용된다. 현재 일반적으로 사용되는 인프라는 당연히 인터넷이다.
  • 웹 시스템과 연동하여 RDBMS를 사용하는 경우, 비행기나 전철의 대규모 예약 시스템부터 마을 병원의 작은 예약시스템에 이르기까지 널리 사용된다.

관계형 데이터베이스(RDBMS) 소프트웨어

  • RDMBS라는 용어는 관계형 데이터베이스를 관리하는 소프트웨어를 일컫는 말로, MySQL, PostgreSQL, Oracle 등이 있다.

관계형 데이터베이스(RDBMS) 특징

  1. 모든 데이터들은 2차원 테이블(Table)들로 표현할 수 있다.
  2. 테이블의 각 행(row)은 저만의 고유 키(Primary Key)가 있다.
  3. 각각의 테이블들은 서로 상호 관련성을 가지고 서로 연결될 수 있다.
    (데이터베이스를 구성하는 테이블은 수백, 수천 개가 될 수도...)

관계형 데이터베이스(RDBMS) - 상호관련성

  1. One to One (일대일)
    하나의 A테이블 데이터는 오로지 하나의 B테이블 데이터와 연결됩니다.
    예)주민등록번호

    • 테이블 Users : 한국 사람들의 이름 정보를 갖고 있는 테이블
    • 테이블 Identification numbers : 한국 사람들의 주민등록 번호를 갖고 있는 테이블
    • Identification numbers 테이블의 user 컬럼은 users 테이블의 id(pk)를 참조합니다.

    이와 같은 경우에서 테이블 Users와 테이블 Indentification은 서로 일대일 관계이다. 라고 표현합니다.

  2. One to Many (일대다)
    하나의 A 테이블 데이터는 B 테이블의 여러 데이터와 연결됩니다.

    • Users 테이블의 로우 하나는 Pets 테이블의 여러 로우와 연결됩니다.
    • Pets 테이블의 로우 하나는 Users 테이블의 로우 하나와 연결됩니다.
    • Pets 테이블의 user_id 컬럼은 users 테이블의 id(pk)를 참조합니다.

    이와 같은 경우에서 테이블 users와 테이블 pets는 서로 일대다 관계이다. 라고 표현합니다.

  1. Many to Many (다대다)
    하나의 A 테이블 데이터는 B 테이블의 여러 데이터와 연결될 수 있습니다.

    • Authors 테이블의 로우 하나는 Books 테이블의 여러 로우와 연결됩니다.
    • Books 테이블의 로우 하나 또한 Authors 테이블의 여러 로우와 연결됩니다.

    이렇게 두 테이블이 서로 각자 다른 테이블의 여러 데이터와 연결 될 때에는 두 테이블에 속한 데이터의 조합을 입력하기 위한 중간 테이블 이 하나 생성됩니다.

    이와 같은 경우에서 테이블 authors와 테이블 books는 서로 다대다 관계이다. 라고 표현합니다.

관계형 데이터의 강력한 특징
ACID(Atomicity, Consistency, Isolation, Durability)

  • 원자성
  • 일관성
  • 고립성
  • 지속성

트랜잭션(Transaction)

  • ACID를 보장하면서 일련의 작업들이 마치 하나의 작업처럼 취급되어서 모두 다 성공하거나 아니면 모두 다 실패하는 것을 의미

0개의 댓글