728x90
반응형
데이터베이스 시험대비
SQL 주요 특징 4가지
- 관계형 DBMS에 접근하는 유일한 언어
- ANSI-SQL
- 미국 산업 표준화 기구 SQL
- english like
- 비절차적언어
SQL 분류, 카테고리
- DDL : Data Definition Language
- CREATE, ALTER, DROP, TRUNCATE, RENAME
- DML : Date Manipulation Language
- INSERT, UPDATE, DELETE, MERGE
- Query : 질의어
- SELECT
- DCL : Data Control Language
- GRANT, REVOKE
- TCL : Transaction Control Language
- COMMIT, ROLLBACK, SAVEPOINT
Connection, Session
- user가 login 할 때 Connection 연결 통로 생성
- Session이라는 memory 덩어리가 할당됨
- Client가 Connection 통로로 SQL 명령어를 보내면 DBMS Server가 Session에서 처리
- Connection 통로로 client가 request에 대한 Result를 받음
- Connection
- DB 를 사용하기 위해 DB 와 애플리케이션 간 통신을할 수 있는 수단
- DB Connection 은 Database Driver 와 Database 연결 정보를 담은 URL 이 필요함
- Java DB Connection 은 JDBC 를 주로 이용하는데, URL 타입을 사용함
- Session
- 사용자가 DB 인스턴스에 ID/PW 입력했을 때, login ~ logout 전까지의 상태
- 사용자가 쿼리 작업을 할 수 있는 상태를 의미
추가 자료
컨넥션 풀의 개념

- 웹 컨테이너(WAS)가 실행되면서 일정량의 Connection 객체를 미리 만들어서 pool에 저장했다가, 클라이언트 요청이 오면 Connection 객체를 빌려주고 해당 객체의 임무가 완료되면 다시 Connection 객체를 반납 받아서 pool에 저장하는 프로그래밍 기법이다.
- Container 구동 시 일정 수의 Connection 객체를 생성하게 되며 클라이언트의 요청에 의해 애플리케이션이 DBMS 작업을 수행해야 하면, Connection Pool에서 Connection 객체를 받아와 작업을 진행한다. 이후 작업이 끝나면 Connetion Pool에 Connection 객체를 반납한다.
절차적, 비절차적 언어 특징
- 절차적 언어
- 개발자가 처리절차를 처음부터 끝까지 정해 주어야하는 언어로 C, JAVA
- 순차적인 처리를 중요시 여기며, 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법
- 모듈 구성이 용이하며 구조적인 프로그래밍이 가능
- 컴퓨터의 처리구조와 유사해서 실행속도가 빠르다
- 비절자척 언어
- 개발자가 처리 절차를 지정하지 않고 원하는 결과를 정의하여 요청하는 언어로 SQL 이 대표적
- 처리방법, 순서를 명기하지 않고 원하는 조건을 정의하는 것
Transaction 정의, 트랜잭션의 시작과 종료, 명시적종료, 암시적 종료
- 트랜잭션이란 업무 처리를 위한 데이터베이스의 논리적인 작업 단위를 의미한다.
- 하나의 트랜잭션은 한 개 이상의 연산으로 이루어질 수 있고, 이 연산들은 완전히 처리되거나 아예 한개로 처리가 되지 않아야 한다. All or Nothing
- Atomicity, Consistency, Isolation, Durability
- Oracle 에서는 실행 가능한 첫 번째 SQL 문이 자동으로 트랜잭션의 시작
- DML, DDL, DCL 실행시 트랜잭션 시작
- Commit 을 하면 트랜잭션의 종료
- 명시적 종료 : COMMIT, ROLLBACK
- 암시적 종료
- DDL, DCL 실행시
- 비정상 종료시 자동으로 트랜잭션 ROLLBACK 수행
DDL, DML, DCL 트랜잭션 관점에서
- DML 은 N 개의 명령어 묶음이 1개의 트랜잭션을 구성
- DDL, DCL 은 1개의 명령어가 1개의 트랜잭션을 구성
- DDL, DCL 명령어 시작시 트랜잭션을 시작하고 성공적으로 종료 시에는 암시적(자동)으로 COMMIT 을 실행하고 실패하면 암시적(자동)으로 ROLLBACK 을 실행하여 트랜잭션 종료
트랜잭션 특징 3가지
- 트리플 A ???
- A logical unit of work
- Atomic unit
- All or nothing
- 4가지 특성
- Atomicity
- Consistency
- Isolation
- Durability
트랜잭션과 LOCK 의 관계, 읽기, 일관성
Lock으로 이해하는 Transaction의 Isolation Level
SELECT ~ FOR UPDATE : 데이터를 수정하고 조회하는중
→ Row Level Lock 이 발생한다! Transaction 의 원자성, 지속성, 일관성, 독립성을 위해
읽기 일관성이란 SELECT 동작을 수행할 때 현재 DB의 값이 아닌 특정 시점의 DB 스냅샷을 읽어오는 것이다. 이때의 스냅샷은 커밋된 변화만이 적용된 상태를 의미한다.
읽기 일관성이 이루어지는 가장 단순한 방법은 읽어온 row 에 lock 을 걸어 다른 transaction 이 일어나지 않도록 하는 것이다.
SQL 구문 JOIN, SUBQUERY
NULL과 관련된 정의, 주의사항, SQL문법 처리방법
NULL 이란 미확인 값이나 아직 적용되지 않은 값을 의미한다.
- 제어불가
- 비교불가
- 연산불가
NULL 을 비교하기 위해서는 ‘=’ 연산자를 사용하지 않고 IS NULL 조건을 사용해야한다. 만약 연산자를 사용하면 ‘NULL’ 문자열 데이터를 가진 행을 검색하므로 주의해야한다
- NVL 함수
- NVL(”값”, “지정값”)
- 값이 NULL 인 경우 지정값을 출력하고 NULL 이 아니면 원래 값을 그대로 출력
- NVL2 함수
- NVL2(”값”, “지정값1”, “지정값2”)
- 값이 NULL 이 아닌경우 지정값 1을 출력하고 NULL 인 경우 지정값 2를 출력
- DECODE
- DECODE(컬럼, 조건, 조건이 맞는경우 반환 값, 조건이 틀린경우 반환값)
- 예) DECODE(SAL, NULL, 0, SAL)
SQL 실행순서
FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
계정계 VS 정보계
- 계정계 : 고객의 거래를 처리하는 핵심 시스템
- 정보계 : 거래의 기록을 관리하고 기록의 통계 등을 관리하는 시스템
트랜잭션 유형 3가지
- OLTP (Online Transaction Processing)
- 실시간 처리 Real Time Processing
- 사용자 중심 → 응답시간 최소화
- OLAP (Online Analytical Processing)
- 일괄처리 Batch Processing (1일정주기, 2대용량, 3일괄)
- 시스템중심
- DTP
- 여러 DBMS에 흩어진 데이터를 처리할 때 분산 트랜잭션 처리가 필요하다 → DB LINK
SDLC 란?
Sofrware Developemnt Life Cycle
소프트웨어 개발 생명 주기

- 요구사항 수집 & 분석
- 설계
- 구현 및 코딩
- 테스트
- 배포
- 유지보수
728x90
반응형
'데이터베이스' 카테고리의 다른 글
| [데이터베이스] 커서 Cursor (0) | 2022.08.13 |
|---|---|
| [데이터베이스] 분산 트랜잭션 (0) | 2022.08.13 |
| [데이터베이스] 데이터베이스란? (0) | 2022.08.13 |
| [데이터베이스] PL/SQL (0) | 2022.08.13 |
| [데이터베이스] VIEW (0) | 2022.08.13 |