자격증/정보처리기사

[정보처리기사 필기 정리] 절차형 SQL 작성 | 메타코드 강의 후기_3강

토오오끼 2024. 12. 2. 20:58
728x90
반응형

메타코드 정처기 필기 3강

https://www.metacodes.co.kr/edu/read2.nx?M2_IDX=30659&page=1&sc_is_discount=&sc_is_new=&EP_IDX=14668&EM_IDX=14492

 

[40% 최대 할인 / 25.01.06까지] 2025 정보처리기사 필기 합격 올인원ㅣ기출문제 풀이 포함

 

www.metacodes.co.kr


3강 - 절차형 SQL 작성

 

◼️ SQL 응용

▪️ SQL (Structured Qurery Language)

- 데이터베이스에서 데이터를 추출하고 조작하기 위해 사용하는 데이터 처리 언어

- 대량의 데이터를 빠르게 조회, 필터링, 집계할 수 있어 데이터 분석 작업을 신속히 수행 가능

- 대부분 데이터베이스 시스템에서 사용하는 표준화된 언어로 활용이 편리

 

▪️ 스키마(Schema)

- 데이터베이스 객체들을 논리적으로 그룹화하는 데이터 구조

 

▪️ 외부 스키마

- 사용자나 응용 프로그램이 데이터를 보는 관점

- 특정 사용자의 요구에 맞춘 사용자 뷰를 제공

 

▪️ 개념 스키마

- 데이터베이스 전체의 논리적 구조를 정의

- 테이블, 뷰, 인덱스, 관계 및 제약 조건을 포함한 모든 데이터베이스 객체를 정의

 

▪️ 내부 스키마

- 데이터베이스의 물리적 저장 구조를 정의

- 데이터 파일의 저장 위치, 접근 경로 등을 포함

 

▪️ DDL 명령어 종류 : CREATE, ALTER, DROP, TRUNCATE

- CREATE : 데이터베이스 객체(도메인, 스키마, 테이블, 인덱스, 뷰)를 생성하는 명령어

    - PRIMARY KEY : 테이블의 기본 키를 저으이

    - UNIQUE : 해당 컬럼에는 고유한 값만 들어오게 하는 제약 조건

    - FOREIGN KYE : 외래 키를 정의

    - CONSTRANINTS ~ CHECK : 제약 조건

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

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

   - CASCADE : 테이블을 참조하는 모든 객체도 함께 삭제

   - RESTRICT : 테이블이 다른 객체에 의해 참조되고 있으면 삭제되지 않음(기본 옵션)

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

 

▪️ DCL의 명령어 종류 : GRANT, REVOKE, COMMIT, ROLLBACK, SAVEPOINT

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

   - GRANT SELECT ON "직원 정보" TO "USER1";

   - GRANT SELECT ON "직원 정보" TO "USER1" WITH GRANT OPTION;

- REVOKE : 부여된 권한 회수

   - REVOKE UPDATE ON "직원 정보" FROM "USER1";

   - REVOKE UPDATE ON "직원 정보" FROM "USER1" CASCADE;

- COMMIT : 트랜잭션에서 수행된 작업을 영구적으로 데이터베이스에 적용

- ROLLBACK : 트랜잭션에서 수행된 작업을 취소하고 이전 상태로 되돌림

- SAVEPOINT : 트랜잭션 내에서 중간 지점을 설정하여 부분 취소를 가능하게 함

 

 ▪️DML 명령어 종류 : SELECT, INSERT, UPDATE, DELETE

- SELECT : 데이터 조회

- INSERT : 데이터 입력

- UPDATE : 데이터 변경

- DELETE : 데이터 삭제

 

 

◼️ SQL 활용

 

▪️ 트랜잭션

- 데이터베이스 관리 시 시스템에서 수행되는 일련의 작업들을 하나의 단위로 묶은 것

 

 ▪️트랜잭션의 특성 (ACID)

- Atomicity(원자성) : 트랜잭션 내의 모든 작업이 모두 수행되거나 모두 수행되지 않아야 함

- Consistency(일관성) : 트랜잭션이 시작되기 전과 완료된 후에 데이터베이스의 상태는 규칙에 맞게 일관되어야 함

- Isolation(고립성, 격리성) : 여러 트랜잭션이 동시에 실행될 때 트랜잭션 간 서로 영향을 미칠 수 없음

- Durability(지속성) : 트랜잭션이 성공적으로 완료되면 그 결과는 영구적으로 데이터베이스에 저장되어야 함

 

▪️ 트랜잭션의 상태

- Active : 트랜잭션이 시작되어 작업을 수행 중인 상태

- Partially Committed : 모든 작업을 수행하였지만 결과를 한번에 DB에 반영하지 않은 상태

- Committed : 트랜젹선이 성공적으로 완료되어 데이터베이스에 모든 변경 사항이 영구 저장된 상태

- Failed : 트랜잭션이 더이상 정상적으로 진행될 수 없을 때의 상태

- Aborted : 트랜잭션이 취소되고 Rollback 연산이 실행되어 시작 전 상태로 돌아감

 

▪️ 병행 제어

- 트랜잭션 간 충돌을 방지하고 데이터베이스가 항상 일관된 상태를 유지하도록 하는 것

- 데이터베이스 공유 최대화, 시스템 활용도 최대화, 데이터베이스 일관성 유지, 사용자에 대한 응답시간 최소화

 

 ▪️병행 제어 기법

- 로깅(Locking), 타임스탬프, 낙관적 검증(Optimistic Validation), 다중버전 동시성 제어(MVCC), 2 Phase Commit

 

▪️ 트랜잭션 회복 기법

- 지연 갱신 회복기법, 즉각 갱신 회복기법, 체크포인트 회복기법, 그림자 페이징 회복기법, 

 

▪️ 뷰(View)

- 실제 데이터를 저장하지 않고 쿼리 결과를 동적으로 생성하는 가상의 논리적 테이블

- 데이터 접근 제어를 통해 데이터의 논리적 독립성과 보안 제공

- 사용자 요구에 맞게 데이터를 제공할 수 있어 사용자 데이터 관리 용이

- 뷰 위에 다른 뷰 정의 가능

- Insert, Update, Delete 연산 및 인덱스 생성에 제약사항 따름

- Create문을 사용해 정의하고 Drop문을 통해 제거

 

 ▪️인덱스(Index)

- 데이터 검색 시 처리속도 향상에 도움

- 테이블 삭제 시 인덱스도 같이 삭제

- 기본 테이블처럼 Create 문 사용해 정의하고 Drop문 통해 제거

 

▪️ 집한 연산

- 두 개 이상의 쿼리 결과를 결합하거나 비교하는 연산

- 집합 연산 수행 시에는 각 쿼리 결과의 열 개수와 데이터 유형이 일치해야 함

 

▪️ 조인(Join)

- 두개 이상의 테이블을 연결해 데이터를 결합하는 방법

- 내부 조인(Inner Join) : 두 테이블 간에 공통된 값이 있는 행만 결합해 반환, 일치하는 데이터만 조회되므로 양쪽 테이블 모두에 있는 값만 결과에 포함됨.

- 외부 조인(Outer Join) : 매칭되지 않는 행은 NULL이 반환

   - Left Outer Join : 왼쪽 테이블의 모든 행을 반환하고 오른쪽 테이블에서 일치하는 데이터를 함께 반환

   - Right Outer Join : 오른쪽 테이블의 모든 행을 반환하고 왼쪽 테이블에서 일치하는 데이터를 함께 반환

   - Full Outer Join : 두 테이블의 모든 데이터를 반환

   - Self Join : 한 테이블을 스스로와 조인하는 방식으로 같은 테이블 내에서 데이터를 조합할 때 사용

 

 

◼️ 논리 데이터베이스 설계

▪️관계 데이터 모델

- 데이터를 테이블 형식으로 정리하여 저장하고 각 테이블이 서로 관계를 맺도록 하는 데이터베이스 모델

- Relation, Tuple, Attribute, Cardinality, Degree, Schema, 인스턴스, 식별자, 도메인 등

 

▪️ 릴레이션 (Relation)

- 행과 열로 구성된 테이블

- 한 릴레이션에 포함된 튜플은 모두 상이함

- 릴레이션에 포함된 튜플 사이에는 순서가 없음

 

▪️ 튜플 (Tuple)

- 릴레이션의 행, 튜플의 수를 Cardinality라고 함

 

 ▪️애트리뷰트 (Attribute)

- 릴레이션의 열 = 특성 = 속성 = 필드

- 개체의 특성을 기술

- 데이터베이스를 구성하는 가장 작은 논리적 단위

- 애트리뷰트의 수를 degree로 표현

 

▪️ 관계 대수

- 관계형 데이터베이스를 다루는 수학적 연산 체계로 데이터베이스 검색에 대한 이론적 기반

- 절차적 언어로 일반 집합 연산과 순수 관계 연산으로 구분

 

▪️ 관계대수 연산 - 일반 집합 연산자

- 합집합(Union, U), 교집합(Intersection, ∩), 차집합(Difference, -), 카르테시안 곱(Cartesian Product, X)

 

 ▪️관계때수 연산 - 순수 관계 연산자

- 셀렉트(σ), 프로젝트(π), 조인(⨝), 디비전(÷)

 

▪️ 데이터 모델

- 데이터베이스 시스템에서 데이터를 체계적으로 관리하고 조작할 수 있도록 하는 개념적인 프레임워크

- 개념적, 논리적, 물리적 모델로 설명할 수 있음

- 구조(Structure), 연산(Operation), 제약조건(Constraint)가 표시되어야 함

- 설계 순서 : 요구사항 분석 -> 개념적 설계 -> 논리적 설계 -> 물리적 설계 -> 구현

 

▪️ 개체-관계 다이어그램(E-R Diagram)

- 개체(Entity) : 데이터베이스에 저장되는 객체를 의미, 사각형으로 표기

- 속성(Attribute) : 개체의 특성을 의미, 타원형으로 표기

- 다중값 속성(Multi-valued Atttribute) : 한 속성이 여러 값을 가질 수 있으면 이중 타원으로 표기

- 관계(Relationship) : 두개 이상의 개체 간 관계를 표현, 마름모로 표기

- 관계-속성 연결 : 선으로 표현

 

▪️ 데이터 모델의 논리적 설계

- 개념적 설계를 바탕으로 데이터베이스를 논리적 구조로 변환

- 트랜잭션 인터페이스 설계

 

▪️ 데이터 모델의 물리적 설계

- 논리적 설계를 기반으로 데이터 저장 방식을 효율적인 방식으로 최적화

- 저장 레코드 형식, 순서, 데이터 값의 분포, 접근 경로, 접근 빈도와 같은 정보를 사용해 설계

- 레코드 집중의 분석 및 설계

 

▪️ 정규화

- 데이터베이스 설계 시 데이터를 구조화하여 중복을 최소화하고 데이터 무결성을 보장하는 과정

- 데이터 구조의 안정성을 최대화 함

- 중복을 최소화하여 삽입, 삭제, 갱신 이상의 발생을 방지

- 데이터 삽입 시 릴레이션을 재구성할 필요를 줄임

- 테이블 불일치 위험 최소화

- 효과적인 검색 알고리즘을 생성할 수 있음

 

▪️ 제1정규형(1NF)

- 어떤 릴레이션에 속한 모든 도메인이 원자값만으로 되어 있음

- 각 컬럼에는 단일 값만 포함되어야 함

 

 ▪️제2정규형(2NF)

- 제1정규형을 만족하면서 부분함수 종속성 제거

 

▪️ 제3정규형(3NF)

- 제2정규형을 만족하면서 이행함수 종속성 제거

 

▪️ Boyce Codd 정규화(BCNF)

- 제3정규형을 만족하면서 결정자가 후보 키가 아닌 함수 종속 제거

 

▪️ 제4정규형(4NF)

- BCNF를 만족하면서 다치 종속성을 제거

 

▪️ 제5정규형(5NF)

- 4NF를 만족하면서 후보키를 통하지 않는 조인 종속 제거

 

 

◼️ 물리 데이터베이스 설계

▪️ 분산 데이터베이스 시스템

- 실제 지리적으로 분산된 데이터베이스들을 관리하고 통합하여 단일 시스템처럼 작동하도록 만드는 시스템

- 투명성을 위한 효율적인 설계 필요

 

▪️ 투명성

- 분산 데이터베이스의 목표로 사용자가 데이터가 물리적으로 어디에 있는지 알 필요 없이 시스템을 사용하도록 하는 개념

- 장애 투명성(Failure Transparency) : 특정 지역의 시스템이나 네트워크에 장애가 발생해도 데이터 무결성이 보장됨

- 위치 투명성(Location Transparency) : 사용자가 데이터의 실제 저장위치를 알 필요 없이 데이터에 접근할 수 있도록 함

- 복제 투명성(Replication Transparency) : 동일한 데이터가 여러 위치에 복제되어 있는 경우 사용자가 인식하지 못하도록 함

- 분할 투명성(Fragmentation Transparency) : 데이터가 여러 조각으로 나뉘어 분산되어 있는 경우에도 사용자가 이를 인식하지 못하도록 함

- 병행 투명성(Concurrency Transparency) : 여러 사용자가 동시에 데이터에 접근했을 때 발생할 수 있는 문제를 인식하지 못하도록 함

 

▪️ 파티셔닝 기법

- 대용량의 데이터를 파티션이라는 작은 논리 단위로 나누어 성능을 최적화 하는 것

- 물리적 파티셔닝으로 전체 데이터 훼손 가능성은 줄고 데이터 가용성이 향상됨

- 범위 분할(Range Partitioning), 목록 분할(List Partitioning), 해시 분할(Hash partitioning), 조합 분할(Composite Partitioning), 라운드 로빈(Round Robin)

 

▪️ 슈퍼 키(Super Key)

- 한 릴레이션 내의 속성들의 집합으로 구성된 키

- 릴레이션을 구성하는 모든 튜플에 대한 유일성은 만족시키지만 최소성은 만족시키지 못하는 키

 

▪️ 후보 키(Candidate Key)

- 릴레이션 후보키는 유일성과 최소성을 만족해야 함

- 모든 릴레이션은 반드시 하나 이상의 후보 키를 가짐

 

▪️ 기본 키(Primary Key)

- 릴레이션에서 각 레코드를 고유하게 식별하는 키

- Not NULL 제약조건을 기본으로 포함하고 있어 NULL 값을 가지지 않음

- 외래 키로 참조될 수 있음

 

▪️ 대체 키(ALternate Key)

- 후보키 중 기본키로 선택되지 않은 나머지 키

 

▪️ 외래 키(Foreign Key)

- 다른 릴레이션의 기본 키를 참조하는 키

- 외래 키는 참조하는 테이블의 기본 키와 동일한 값이어야 함

- 외래 키는 NULL일 수 있음

 

▪️ 데이터베이스 무결성

- 데이터베이스에 저장된 데이터가 정확하고 일관되며 신뢰할 수 있는 상태를 유지하도록 보장하는 원칙

- 무결성 규정의 대상으로는 도메인, 키, 종속성 등이 있음

- 개체 무결성 : 한 릴레이션의 기본키를 구성하는 어떠한 속성값도 NULL이나 중복값을 가질 수 없음

- 참조 무결성 : 외래 키는 다른 테이블의 기본 키를 참조하며 참조된 기본 키 값과 동일하거나 NULL이어야 함

- 속성 무결성 : 속성의 기본값, 데이터 타입 등 지정된 규칙을 준수해야 함

- 관계 무결성 : 관계를 조작하는 과정에서의 의미적 관계를 명세

 

▪️ 반정규화

- 데이터베이스 성능 향상을 위해 이미 정규화된 데이터 구조를 일부러 중복하거나 합쳐서 복잡성을 줄이는 과정

- 집계 테이블 추가

- 진행 테이블 추가

- 특정 부분만 포함하는 테이블 추가

 

 

◼️데이터 전환

▪️ ETL(Extract, Transform, Load)

- 데이터를 추출-변환-적재하는 데이터 처리 과정

- 여러 출처에서 데이터를 수집하여 원하는 형태로 변환한 뒤 데이터 웨어하우스나 데이터베이스에 저장

 


메타코드에서 정보처리기사 필기 강의 장학생으로 선발되어 앞으로 5주간 메타코드에서 정처기 필기 강의를 듣고 포스팅을 하게 되었다.
현재 메타코드에서는 정보처리기사 필기 환급 챌린지를 진행 중이며 합격 인증 시 100% 환급(제세공과금 22%, 교재비 3만원 제외)을 해 준다.
 
진도율을 100% 달성하고 시험 합격 후 합격 인증, 후기 작성 시 수강료를 100% 환불 (제세공과금 22%, 교재비 3만원 제외)을 해주기 때문에 수강료 부담없이 정처기 자격증을 따고 싶은 사람에게 좋은 강의이다.
https://metacodes.co.kr/edu/read2.nx?M2_IDX=31635&EP_IDX=15203&EM_IDX=15027

 

정보처리기사 필기 환급 챌린지ㅣ합격 인증 시 100% 환급 (제세공과금 22% 제외)

 

metacodes.co.kr

 

 

728x90
반응형