[정처기] 메타코드M 3-1강 (데이터베이스 구축 : SQL 응용 )

정기홍·2024년 12월 6일

정보처리기사

목록 보기
10/28

시작하면서

해당 글은 메타 코드 M에서 지원하는 정처기 필기 장학생에 합격하여 글을 작성하게 되었습니다.

메타 코드 해당 강의 보러 가기

참고 사항

  • 플랫폼 => 이 뜻은 참고할 주제라는 뜻입니다.
  • 이렇게 형관펜이 되어 있는 곳은 시험에 나오거나, 강조하고 싶은 부분이 있을 때 표시할 것입니다.

3-1. 데이터베이스 구축 - SQL 응용

3-1-1. 절차형 SQL 작성

SQL(Structured Query Language)

  • 데이터베이스에서 데이터를 추출하고 조작하기 위해 사용하는 데이터 처리 언어
  • 장점
    • 대량의 데이터를 빠르게 조회, 필터링, 집계할 수 있어 데이터 분석 작업을 신속히 수행 가능
    • 대부분의 데이터베이스 시스템에서 사용하는 표준화된 언어로 활용이 편리함.

SQL 기능에 따른 분류

DDL(Data Definition Language, 데이터 정의어)

  • 데이터베이스의 구조를 정의하고 변경
  • 테이블, 인덱스, 뷰 등의 데이터베이스 객체를 생성, 수정, 삭제하는 작업 수행

DLC(Data Control Language, 데이터 제어어)

  • 데이터베이스의 권한과 보안을 관리
  • 사용자에게 데이터베이스에 대한 권한을 부여하거나 취소하는 작업 수행
  • 데이터 보안, 무결성 유지, 병행 제어, 회복의 기능이 있음.

DML (Data Manipulation Language, 데이터 조작어)

  • 데이터베이스에 저장된 데이터를 조작
  • 데이터를 삽입, 수정, 삭제, 조회하는 작업 수행

3-1-2. 응용 SQL 작성

DDL (Data Definition Language, 데이터 정의어)

  • 데이터베이스의 구조를 정의하고 변경
  • 도메인, 스키마, 테이블, 뷰, 인덱스 등의 데이터베이스 객체를 생성, 수정, 삭제하는 작업 수행

데이터베이스 객체의 종류

  • 도메인 : 하나의 속성이 가질 수 있는 원자값들의 집합, 속성의 데이터 타입과 저장될 수 있는 값의 범위 등을 지정
    • ex) 나이 → 숫자 , 0<n<150
  • 스키마 : 데이터 베이스 객체들을 논리적으로 그룹화하는 데이터 구조
    • 외부/ 개념/ 스키마의 3가지 계층으로 구분됨.
  • 테이블 : 데이터 레코드를 저장하는 기본 단위, Excel의 시트와 비슷함.
  • 뷰 : 기본 테이블의 데이터를 동적으로 생성된 결과 집합으로 보여주는 가상 테이블
  • 인덱스 : 데이터베이스 성능을 향상시키기 위한 데이터 구조

스키마(Schema)

  • 외부 스키마
    • 사용자나 응용 프로그램이 데이터를 보는 관점
    • 특정 사용자의 요구에 맞춘 사용자 뷰를 제공함.
  • 개념 스키마
    • 데이터베이스 전체의 논리적 구조를 정의
    • 데이블, 뷰, 인덱스, 관계 및 제약 조건을 포함한 모든 데이터베이스 객체를 정의
  • 내부 스키마
    • 데이터베이스의 뭄리적 저장 구조를 정의
    • 데이터 파일의 저장 위치, 접근 경로 등을 포함

DDL의 명령어 종류, CREATE, ALTER, DROP, TRUNCATE

  • CREATE: 데이터베이스 객체(도메인, 스키마, 테이블, 인덱스, 뷰) 를 생성하는 명령어
  • ALTER : 기존의 데이터베이스 객체를 수정하는 명령어
  • DROP : 데이터베이스 객체를 삭제하는 명령어
  • TRUNCATE : 테이블의 모든 데이터를 삭제하지만, 테이블의 구조는 유지하는 명령어

CREATE : 데이터 베이스 객체를 생성하는 명렁어

ALTER : 기존의 데이터베이스 객체를 수정하는 명령어

DROP : 데이터베이스 객체를 삭제하는 명령어

TRUNCATE : 테이블의 모든 데이터를 삭제하지만, 테이블의 구조는 유지하는 명령어

DCL (Data Control Language, 데이터 제어어)

  • 데이터베이스의 권한과 보안을 관리
  • 사용자에게 데이터베이스에 대한 권한을 부여하거나 취소하는 작업을 수행
  • 데이터 보안, 무결성 유지, 병행 제어, 회복의 기능이 있음.

주로 데이터 베이스 관리자가 사용함., 보안을 유지하는 데에 사용됨.

DCL의 명렁어 종류 : GRANT, REVOKE, COMMIT, ROLLBACK, SAVEPOINT

  • GRANT : 특정 사용자 또는 사용자 그룹에게 데이터베이스 객체애 대한 권한을 부여
  • REVOKE : 부여된 권한을 회수
  • COMMIT : 트랜잭션에서 수행된 작업을 영구적으로 데이터베이스에 적용
  • ROLLBACK : 트랜잭션에서 수행된 작업을 취소하고 이전 상태로 되돌림
  • SAVEPOINT : 트랜잭션 내에서 중간 지점을 설정하여 부분 취소를 가능하게 함.

GRANT : 특정 사용자 또는 사용자 그룹에게 데이터베이스 객체애 대한 권한을 부여

  • GRANT SELECT ON 직원정보 TO USER1;
    • USER1에게 직원 정보를 선택할 수 있는 권한을 부여
  • GRANT SELECT ON 직원정보 TO USER1 WITH GRANT OPTION;
    • USER1에게 직원 정보를 선택할 수 있는 권한을 부여 + USER1이 권한을 다른 사람에게 부여할 수 있도록 함.

REVOKE : 부여된 권한을 회수

  • REVOKE UPDATE ON 직원정보 FROM USER1;
    • USER1으로 부터 직원정보를 UPDATE 할 수 있는 권한을 회수함.
  • REVOKE UPDATA ON 직원정보 FROM USER1 CASCADE;
    • USER1으로 부터 직원정보를 UPDATE 할 수 있는 권한을 회수함. + USER1이 다른 사용자에게 부여한 권한 또한 회수함.

ON이나 FROM 의미를 잘 파악하기

GRANT와 REVOKE

DML (Data Manipulation Language, 데이터 조작어)

  • 데이터베이스에 저장된 데이터를 조작
  • 데이터를 삽입, 수정, 삭제, 조회하는 등이 작업 수행

DML의 명렁어 종류: SELECT, INSERT, UPDATE, DELETE

  • SELECT : 조회
  • INSERT : 삽입 , 입력
  • UPDATE : 데이터 변경
  • DELECT : 데이터 삭제

SELECT : 데이터 조회

예시 모음

태이블 명은 직원정보임.

  • 예시 1) 모든 직원의 이름과 전화 번호를 조회
    • SELECT 이름, 전화 번호 FROM 직원정보
    • SELECT DISTINCT 이름, 전화번호 FROM 직원정보
      • 중복되는 문자 제거 : DISTINCT ⇒ 쿼리에서 지정된 모든 열에 대해 중복을 제거
      • 너무 많은 데이터에선, 성능이 좋지 않기 때문에 주의해야 함.
  • 예시 2) 전화번호가 010-2345-6789인 직원명을 조회
    • SELECT 이름 FROM 직원정보 WHERE 전화번호 = “010-2345-6789”

테이블 명은 직원정보임.

  • 예시 3) 각 부서별 직원의 수를 계산
    • SELECT 부서명, COUNT(*) AS 직원수 FROM 직원정보 GROUP BY 부서명;
      • Sub Query를 통해 1차 정제된 데이터를 재사용할 수 있음.
  • 예시 4) 직원 수가 2명 이상인 부서와 직원의 수를 계산
    Select 부서명, count(*) AS 직원수 
    FROM 직원 정보 
    GROUP BY 부서명 
    HAVING COUNT(*) > 1;*
    • HAVING을 통해 그룹화된 데이터에 추가 조건을 지정함.
  • 예시 5) 입사년도가 빠른 순서대로 3명을 확인
    SELECT 고유코드, 이름
    FROM 직원정보
    ORDER BY 고유코드, ASC
    LIMIT 3;
    • 고유코드를 기준으로 오름차순으로 정렬 후 , 상위 3개의 레코드를 반환
    • ASC는 생략 가능(ORDER BY는 오름차순 기본)

INSERT : 데이터 입력

INSERT INTO 테이블명(컬럼명1, 컬럼명2 ...)
VALUES(1,2 ...) ;
  • 컬럼 값 간의 데이터 개수, 타입이 일치해야 함.
INSERT INTO 테이블명
VALUES(1,2 ..., 마지막 값);
  • 모든 값을 입력할 때는 컬럼명을 생략해도 됨.

UPDATA와 DELETE

비교 연산자: 두 값을 비교하여 조건을 설정

집합 연산자 : 특정 값이나 범위 내의 값을 찾는 데 사용

패턴 연산자 : 문자열의 특정 패턴과 일치하는 지 확인

논리 연산자 : 여러 조건을 결합하거나 조건의 부정을 표현

집계함수 : 데이터 집계를 수행하는데 활용되는 함수

윈도함수(WINDOW FUNCTION)

  • 각 행에 대해 집계나 순위, 누적 합을 계산할 때 사용하는 함수
  • OLAP(Online Analytical Processing) 및 데이터 분석에서 중요한 역할
ex) SELECT ROW_NUMBER() OVER (ORDER BY 성적 DESC) AS RANK,이름
FROM 학생 ; -- 성적에 따라 학생에게 순위를 부여

OLAP(Online Analytical Processing)

다차원 데이터 분석을 할 수 있도록 도와주는 의사결정 지원 작업(시스템)
• Roll-up, Drill-Down, Slicing, Dicing, Pivoting 등의 연산이 있음


메타코드 M 해당 강의 보러가기

profile
하나를 알고 그걸로 모든걸 관통한다.

0개의 댓글