본문 바로가기

데이터베이스

[데이터베이스] 데이터베이스 기초

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

  1. user가 login 할 때 Connection 연결 통로 생성
  2. Session이라는 memory 덩어리가 할당됨
  3. Client가 Connection 통로로 SQL 명령어를 보내면 DBMS Server가 Session에서 처리
  4. 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 객체를 반납한다.

[데이터베이스] Connection Pool이란?

절차적, 비절차적 언어 특징

  • 절차적 언어
    • 개발자가 처리절차를 처음부터 끝까지 정해 주어야하는 언어로 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

소프트웨어 개발 생명 주기

  1. 요구사항 수집 & 분석
  2. 설계
  3. 구현 및 코딩
  4. 테스트
  5. 배포
  6. 유지보수
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