[SQL] 관계형 데이터베이스 개요

2022. 3. 1. 17:12SQL

작은 규모 은행(은행원 1명)

은행원이 은행 장부를 수기로 고객들의 입출금 내역을 작성한다고 하자

 

중간 규모 은행(은행원 여러명)

은행원들이 은행 장부를 수기로 작성하는데 은행원들마다 수기 방식이 다를 것이고 필체도 다르다. ⇒ 규칙이 필요하다

표로 입출금 내역을 작성하면 → 구조화된 데이터

행 하나는 날짜, 이름, 입금액, 출금액 등 값을 나타내고 ⇒ 릴레이션(표) 등장

 

표를 다룰 수 있는 언어

  • DDL (Data Definition Language)
  • 표의 생성, 구조 변경
  • DML (Data Manipulation Language)
  • 정보 조회, 정보 수정/입력 등

입출금 내역 표 A

날짜 고객번호 이름 계좌번호 입금액 출금액 은행지부

고객정보 표 B

고객번호 이름 전화번호 주소 등급

고객번호가 공통으로 두 테이블을 연결 할 수 있다. (JOIN)

 

지부 총 입금액 총 출금액

고객 각각의 입출금액이 아닌 은행 지부별 입출금액을 알고 싶다면?

은행 지부 별 입출금액 합산, 평균 등 데이터 처리가 필요 → GROUP BY, HAVING

 

큰 규모 은행

수기 작성 한계 → 큰 규모 은행에서 여러 명의 은행원들이 동시에 장부를 써야 할 필요가 있다.

은행원이 직접 공통된 장부를 동시에 쓸 수 있게 되는 경우, 한 명의 은행원이 정보를 입력하는 작업 단위를 트랜잭션(Transaction)이라 한다. → 이를 관리하는 언어를 TCL (Transaction Control Language)

 

트랜잭션이 가져야 할 성질은? (ACID 특성)

1. Atomicity (원자성)

시스템 서버가 다운되더라도 돈을 100만원 입금했을 때 일이 모두 처리 되던지, 아예 안되던지 해야한다.

 

2. Consistency (일관성)

계좌에 잔고가 0원 이하가 내려가지 않도록 하고 잔고가 출금액보다 부족하면 출금이 안되는 규칙을 지키도록 한다.

 

3. Isolation (고립성)

은행원 한 명이 돈을 입금하는 과정에서 다른 은행원이 개입 할 수 없다.

 

4. Durability (영구성, 지속성)

이체가 완료되면 다른 사람이 건드리지 않는 한에서 잔고는 완료 시 이후로 계속 유지되어야 한다.

 

데이터 규모가 더 커지게 되면 다량의 데이터를 관리할 수 있는 관리자를 따로 두게 되고 관리자는 여러 명이 된다. ⇒ DBA

최고관리자는 다른 관리자에게 권한을 부여할 수 있고 하급 관리자들에게 데이터 접근 권한, 수정 권한 등 권한을 수여한다. → DCL (Data Control Language)

 

관계란?

관계(Relation)는 테이블을 의미하고, 키(key), 값(value)들 간의 관계를 테이블화시킨 전산정보 데이터베이스다. ⇒ 관계형 데이터베이스, RDBMS

 

관계형 데이터베이스 조직도 (i.g 클라이언트-서버형)

클라이언트(CLIENT) : 데이터베이스를 이용하는 프로그램

SQL : 원하는 데이터 조회

RDBMS : 관계형 데이터베이스를 처리하는 프로그램 (서버)

DATABASE(DB) : 하드디스크 등에 데이터 보관

728x90

'SQL' 카테고리의 다른 글

SELECT문  (0) 2022.03.07
SQL 명령문  (0) 2022.03.01
SQL 명령문 구성 및 연산 순서  (0) 2022.03.01
[SQL] SQL 용어 설명  (0) 2022.03.01
[SQL] 실습 환경 준비하기 (오라클 19c 설치)  (2) 2022.03.01