2022. 3. 1. 17:12ㆍSQL
작은 규모 은행(은행원 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) : 하드디스크 등에 데이터 보관
'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 |