티스토리 뷰

 

[Note]

정보처리기사 실기 요약 정리 공유

08. SQL 응용

 

 


 

 

프로시저 (Procedure)

  • 절차형 SQL을 활용하여 특정 기능을 수행할 수 있는 트렌젝션 언어
  • 프로시저 호출을 통해 실행되며, 이를 통해 일련의 SQL 작업을 포함하는 데이터 조작어(DML)를 수행한다.
  • 프로시저 구성 : 선언부(DECLARE), 시작/종료부(BEGIN/END), 제어부(CONTROL), SQL, 예외부(EXCEPTION), 실행부(TRANSACTION)
    (디비컨 SET)
💡 실행부 (Transaction)
    - commit : 하나의 트렌젝션이 성공적으로 끝나고, 데이터베이스가 일관성 있는 상태에 있을 때 하나의 트렌젝션이 끝났을 때 사용하는 연산.
    - rollback : 하나의 트렌젝션이 비정상적으로 종료되어 트렌젝션 원자성이 깨질 경우 처음부터 다시 시작하거나, 부분적으로 연산을 취소하는 연산.

 

사용자 정의 함수

  • 절차형 SQL을 활용하여 일련의 SQL 처리를 수행하고, 수행 결과를 단일 값으로 반환할 수 있는 절차형 SQL.
  • DBMS에서 제공되는 공통적 함수 이외에 사용자가 직접 정의하고 작성한다.
  • 반환 부분만 프로시저와 다름
  • 호출을 통해 실행됨. 반환되는 단일 값을 조회 또는 삽입, 수정 작업에 이용하는 것이 일반적이다.
  • 종료 시 단일 값을 반환한다는 것이 프로시저와 가장 큰 차이점.
  • 사용자 정의함수 구성 : 선언부(DECLARE), 시작/종료부(BEGIN/END), 제어부(CONTROL), SQL, 예외부(EXCEPTION), 반환부(RETURN)
    (디비컨 SER)
💡 반환부 (Return)
   - RETURN 명령을 통해 사용자 정의함수 종료 시 사용자 정의 함수를 호출한 쿼리에 반환하는 단일값을 정의한다.

 

 

트리거 (Trigger)

  • 데이터 변경 이벤트가 발생하면 DBMS에서 자동적으로 실행되도록 구현된 프로그램
  • 특정 테이블에 대한 데이터 변경과 관련된 작업을 자동적으로 수행하기 위해 트리거 사용.
  • 일반적으로 이벤트와 관련된 테이블의 데이터 삽입, 추가, 삭제 작업을 자동으로 실행시키는 데 사용함.
  • 데이터 무결성 유지 및 로그 메시지 출력 등의 별도 처리를 위해 사용
  • 반환 값이 없다는 점, DML을 주된 목적으로 한다는 점에서 프로시저와 유사
  • EVENT 명령어를 통해 트리거 실행을 위한 이벤트를 인지한다는 점, 외부 변수 IN/OUT이 없다는 점은 프로시저나 사용자 정의 함수와 다르다.
  • 트리거의 구성 : 선언부(DECLARE), 이벤트부(EVENT), 시작/종료부(BEGIN/END), 제어부(CONTROL), SQL, 예외부(EXCEPTION)
    (디이비컨 SE)

💡 이벤트 (Event)

  • 트리거가 실행되는 타이밍. 이벤트를 명시하는 부분.

 

데이터베이스 (DataBase)

  • 다수의 인원, 시스템 또는 프로그램이 사용할 목적으로 통합하여 관리되는 데이터의 집합.
  • 데이터에 대한 효과적인 관리를 위해 자료의 중복성 제거, 무결성 확보, 일관성 유지, 유용성 보장 중요

파일 시스템 (File System)

  • 파일에 이름을 부여하고 저장이나 검색을 위하여 논리적으로 그것들을 어디에 위치시켜야 하는지 등을 정의한 뒤 관리하는 데이터베이스 전 단계의 데이터 관리 방식.

계층형 데이터베이스 관리 시스템

(HDBMS : Hierarchical Database Management System)

  • 데이터를 상하 종속적인 관계로 계층화하여 관리하는 데이터베이스
  • 데이터에 대한 접근 속도가 빠르지만, 종속적인 구조로 인하여 변화하는 데이터 구조에 유연하게 대응하기가 쉽지 않다.

망형 데이터베이스 관리 시스템

(NDBMS : Network Database Management System)

  • 데이터의 구조를 네트워크상의 망상 형태로 논리적으로 표현한 데이터 모델
  • 트리 구조나 계층형 데이터베이스보다는 유연하지만 설계가 복잡한 단점이 있다.

관계형 데이터베이스 관리 시스템

(RDBMS : Relational Database Management System)

  1. 개념
    • 관계형 모델을 기반으로 하는 가장 보편화된 데이터베이스 관리 시스템
    • 데이터를 저장하는 테이블의 일부를 다른 테이블과 상하 관계로 표시하며 상관관계를 정리한다.
    • 변화하는 업무나 데이터 구조에 대한 유연성이 좋아 유지 관리가 용이하다.
  2. 종류
    • Oracle, SQL Server, MySQL, Maria DB

 

DBMS

  • DBMS의 개념
    • 데이터베이스라는 데이터의 집합을 만들고, 저장 및 관리할 수 있는 기능들을 제공하는 응용 프로그램이다.
    • 데이터 관리의 복잡성을 해결하는 동시에 데이터 추가, 변경, 검색 , 삭제 및 백업, 복구, 보안 등의 기능을 지원하는 소프트웨어다.
    • 저장되는 정보는 텍스트, 이미지, 음악 파일, 지도 데이터 등 매우 다양하며, SNS의 발달과 빅데이터의 폭넓은 활용으로 인해 데이터의 종류와 양은 급격히 증가 중이다.
  • DBMS의 특징
    • 데이터 무결성 : 부적절한 자료가 입력되어 동일한 내용에 대하여 서로 다른 데이터가 저장되는 것을 허용하지 않는 성질
    • 데이터 일관성 : 삽입, 삭제, 갱신, 생성 후에도 저장된 데이터가 변함없이 일정
    • 데이터 회복성 : 장애가 발생하였을 시 특정 상태로 복구되어야 하는 성질
    • 데이터 보안성 : 불법적인 노출, 변경, 손실로부터 보호되어야 하는 성질
    • 데이터 효율성 : 응답 시간, 저장 공간 활용 등이 최적화되어 사용자, 소프트웨어, 시스템 등의 요구 조건을 만족시켜야 하는 성질
  • DBMS의 기능
    • 중복 제어, 접근 통제, 인터페이스 제공, 관계 표현 등을 제공한다.

 

트렌잭션 (Transaction)

  1. 개념
    • 인가받지 않은 사용자로부터 데이터를 보장하기 위해 DBMS가 가져야 하는 특성이자, 데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위
  2. 특성 (ACID)
    • 원자성 (Atomicity): 연산 전체가 성공 또는 실패 (All or Noting)
    • : 하나라도 실패할 경우 전체가 취소되어야 함.
    • : 분해가 불가능한 작업의 최소단위
    • 일관성 (Consistency)
    • : 트렌젝션이 실행 성공 후 항상 일관된 데이터베이스 상태를 보존해야 함
    • 격리성 (Isolation)
    • : 트렌젝션 실행 중 생성하는 연산의 중간 결과를 다른 트렌젝션이 접근 불가
    • 영속성 (Durability)
    • : 성공이 완료된 트렌젝션의 결과는 영속적으로 데이터베이스에 저장

 

TCL ( Transaction Control Language) (커롤체)

  • 트렌잭션 결과를 허용하거나 취소하는 목적으로 사용되는 언어를 지칭한다.
  1. Commit (트렌잭션 확정) : 트렌잭션을 메모리에 영구적으로 저장
  2. Rollback (트렌잭션 취소) : 트렌잭션 내역을 저장 무효화 시킴
  3. Checkpoint (저장 시기 설정) : Rollback을 위한 시점을 지정

 

데이터베이스 기본 연산

(CRUD : Create Read Update Delete)

  1. SELECT
    • SELECT [ALL | DISTINCT | DISTINCTROW] 속성명 1, ...
    • FROM 테이블명 1, ...[GROUP BY 속성명 1, ...][ORDER BY 속성 [AES | DESC ] ] ;
    • [HAVING 그룹 조건]
    • [WHERE 조건]
  2. INSERT
    • INSERT INTO 테이블명 (속성명 1, 속성명 2, ...)
    • VALUES (데이터 1, 데이터 2, ...) ;
  3. UPDATE
    • UPDATE 테이블명
    • SET 속성명 = 데이터,
    • WHERE 조건 ;
  4. DELETE
    • DELETE FROM 테이블명
    • WHERE 조건;

 

BigData

  • 빅데이터는 시스템, 서비스, 조직(회사)등에서 주어진 비용, 시간 내에 처리 가능한 데이터 범위를 넘어서는 수십 페타바이트 크기의 비정형 데이터를 말한다.

NoSQL

  • 전통적인 RDBMS와 다른 DBMS를 지칭하기 위한 용어로 데이터 저장에 고정된 스키마가 필요하지 않고 조인 연산을 사용할 수 없으며, 수평적으로 확장이 가능한 DBMS이다.

온톨로지

  • 실세계에 존재하는 모든 개념들과 개념들의 속성, 그리고 개념들 간의 관계 정보를 컴퓨터가 이해할 수 있도록 서술해 놓은 지식베이스.

시멘틱 웹

  • 의미론적인 웹이라는 뜻으로, 기계가 이해할 수 있는 용어로 제작된 웹을 뜻하는 용어다.
  • 온톨로지를 활용하여 서비스를 기술하고, 온톨로지의 의미적 상호 운용성을 이용해서 서비스 검색, 조합, 중재 기능을 자동화하는 웹.

데이터마이닝

  1. 개념
    • 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아내는 기술
    • 대규모 데이터에서 의미 있는 패턴을 파악하거나 예측하여의사결정에 활용하는 기법.
  2. 기법 (분연 연데)
    • 분류 규칙
    • 연관 규칙
    • 연속 규칙
    • 데이터 군집화

 

데이터 분석 함수의 종류

  1. 집계함수
    • 여러 행 또는 테이블 전체 행으로부터 하나의 결괏값을 반환하는 함수
    • MAX, SUM, MIN 등
    • GROUP BY, HAVING 구문
  2. 그룹함수
    • 테이블의 전체 행을 하나 이상의 컬럼을 기준으로 컬럼 값에 따라 그룹화하여 그룹별로 결과를 출력하는 함수.
    • 중간 합계 분석 데이터를 산출하는 함수.
    • ROLLUP, CUBE, GROUPING, SETS 등
  3. 윈도함수(= OLAP 함수)
    • 데이터베이스를 사용한 온라인 분석 처리 용도로 사용하기 위해서 표준 SQL에 추가된 기능

💡 OLAP (OnLine Analytical Processing)

  • 의사결정 지원 세스템으로, 사용자가 동일한 데이터를 여러 기준을 이용하는 다양한 방식으로 바라보면서 다차원 데이터 분석을 할 수 있도록 도와주는 기술이다.

API

  • 애플리케이션을 만들기 위한 하위 함수, 프로토콜, 도구들의 집합으로 명확하게 정의된 다양한 컴포넌트간의 통신 방법이다.

Mybatis

  • Mybatis는 SQL Mapping 기반 오픈 소스 Access Framework로, DBMS에 질의하기 위한 SQL 쿼리를 별도의 XML 파일로 분리하고, Mapping을 통해서 SQ을 실행한다.
  • DBMS 의존도가 높고 SQL 질의 언어를 사용하기 때문에 SQL 친화적인 국내 실무 개발 환경에 맞아서 많이 사용된다.

DCL (Data Control Language)

  • 데이터베이스 관리자(DBA)가 데이터 보안, 무결성 유지, 병행 제어, 회복을 위해 사용하는 제어용 언어.
  • GRANT (사용 권한 부여) (그온투위)
    • GRANT 권한 ON 테이블 TO 사용자 [WITH 권한 옵션];
  • REVOKE (사용 권한 취소) (리온프캐)
    • REVOKE 권한 ON 테이블 FROM 사용자 [CASCADE CONSTRAINTS];

 

 

 


틀린 내용이 있거나 문제가 있을시 알려주세요. 같이 공부해요 😊

이 글이 도움이 되셨다면 공감, 댓글 부탁드려요 👍🏻

 

댓글
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Total
Today
Yesterday
공지사항
최근에 올라온 글