본문 바로가기
카테고리 없음

[SQLD]002. SQL 기본 첫번째 공부. 관계형데이터베이스와 데이터구조, SQL문

by 현실남자 2023. 9. 17.

SQLD 두 번째 과목 SQL 기본 및 활용 중 SQL 기본 공부 과정 포스팅입니다.

SQL 기본에서 배우는 이론 내용과 실제 문제 그리고 SQL문을 SQL Developer를 통해 실행해 보면서

실제 결과 값을 확인해 보는 과정을 소개하겠습니다.

SQL기본 및 활용 과목에서는 총 40문제가 출제되며, 3개 장으로 이루어져 있습니다.
그 중그중, 첫 번째
SQL 기본 장에 대해 공부하는 과정을 소개하겠습니다.

SQL 기본 및 활용 문제 및 과목 내용

 

 

1. 관계형 데이터베이스(Relation Database)

관계형 데이터베이스란?

관계형 데이터베이스는 데이터를 행과 열로 구성된 테이블 형태로 구성합니다. 데이터는 일반적으로 여러 테이블로

구조화되며, 이러한 테이블은 기본 키 또는 외래 키를 통해 조인될 수 있습니다.

이러한 고유한 식별자는 테이블 간에 존재하는 다양한 관계를 보여주며, 이러한 관계는 일반적으로 다양한

유형의 데이터 모델을 통해 설명됩니다.(IBM 정의)

 

, 관계형 데이터베이스는 릴레이션에 데이터를 저장하고, 릴레이션을 사용해서 집합 연산 및 관계 연산을 지원합니다.

그리고 릴레이션은 최종적으로 데이터베이스 관리 시스템에서 테이블로 만들어집니다.

데이터베이스 관리 시스템(DBMS, Database Management System)은 데이터베이스를 관리하기
위한 소프트웨어를 의미하고, Oracle, MS-SQL, MySQL, Sybase 등이 있으며 모두 관계형 데이터베이스를 지원합니다.

 

※ 관계형 데이터베이스 연산

집합연산 :
1)
합집합(UNION) : 두 개의 릴레이션을 하나로 합함
2)
차집합(Difference) : 기존 릴레이션에는 존재하고 다른 릴레이션에는 존재하지 않는 것을 조회
3)
교집합(Intersection) : 두 개의 릴레이션 간에 공통된 것을 조회
4)
곱집합(Cartesian product) : 각 릴레이션에 존재하는 모든 데이터를 조합하여 연산

관계연산 :
1)
선택연산(Selection) : 릴레이션에서 조건에 맞는 행(튜플) 만을 조회
2)
투영연산(Projection) : 릴레이션에서 조건에 맞는 속성만을 조회
3)
결합연산(Join) : 여러 릴레이션의 공통된 속성을 사용 새로운 릴레이션 생성
4)
나누기연산(Division) : 기준 릴레이션에서 나누는 릴레이션이 가지고 있는 속성과 동일한 값을 가지는 행(튜플)

                                        추출하고 나누는 릴레이션의 속성을 삭제, 중복된 행을 제거하는 연산

 

2. 테이블 구조

테이블 구조

1) 기본키(Primary key)는 하나의 테이블에서 유일성과 최소성, Not Null을 만족하면서
    해당 테이블을 대표합니다. EMPLOYEE 테이블에서는 EMPNO(사원번호)가 기본키가 됩니다.

 

2) 테이블은 행과 칼럼으로 구성되며, 행은 튜플(Tuple)이라고도 합니다.

 

3) 칼럼(Column)은 어떤 데이터를 저장하기 위한 필드로 속성(Attribute)라고도 합니다.

 

4) 외래키(Foreign key)는 다른 테이블의 기본키를 참조(조인)하는 칼럼으로 위의 EMPLOYEE
    테이블에서 DEPT_NO(부서번호) 칼럼이 DEPARTMENT(부서정보 테이블)의 기본키인

    DEPT_NO(부서번호)를 참조하고 있음을 알 수 있습니다.

 

5) 외래키는 관계 연산 중 결합 연산(JOIN) 시 활용됩니다.

 

3. SQL 정의 및 종류

지난 포스팅에서 언급했지만, SQL의 정의는 아래와 같습니다.

SQL(Structured Query Language)은 데이터베이스를 직접적으로 액세스 할 수 있는 언어로,
데이터를 정의하고(Data Definition), 조작하며(Data Manipulation), 조작한 결과를 적용하거나
취소할 수 있고(Transaction Control), 접근권한을 제어하는(Data Control) 처리들로 구성됩니다.

SQL 표준 : ANSI, American National Standards Institute(미국 표준 협회)가 각기 다른 DBMS(Oracle, MySQL )에서

                      공통적으로 사용할 수 있도록 고안한 표준 SQL문 작성방법입니다.

 

SQL 종류는 아래 4가지가 있으며, 종류별 구문에 대해서는 뒤에서 상세하게 다루겠습니다.

 

DDL(Data Definition Language) : 관계형 DB의 구조를 정의하는 언어로 테이블을 생성/변경/삭제하는 것으로

                                                        데이터를 저장할 구조를 정의합니다.
                                                         - CREATE, ALTER, DROP, RENAME, TRUCATE
문이 있습니다.

 

DML(Data Manipulation Language) : 테이블에서 데이터를 입력, 수정, 조회하는 언어입니다.
                                                              - INSERT, UPDATE, DELETE, SELECT
문이 있습니다.

 

DCL(Data Control Language) : 데이터베이스 사용자에게 권한을 부여하거나 회수하는 언어입니다.
                                                     - GRANT, REVOKE
문이 있습니다.

 

TCL(Transaction Control Language) : *트랜잭션을 제어하는 명령어입니다.
                                                                 - COMMIT, ROLLBACK, SAVEPOINT
문이 있습니다.

*트랜잭션이란?

트랜잭션은 데이터베이스의 작업을 처리하는 단위로 아래 4가지 특성을 가지며 ACID라고 합니다.

1) 원자성(Atomicity) : 트랜잭션은 DB 연산의 전부가 실행되거나 전혀 실행되지 않아야 하며,
트랜잭션의 처리가 끝나지 않았을 경우는 실행되지 않은 상태와 같아야 합니다.

2) 일관성(Consistency) : 트랜잭션 실행 결과로 데이터베이스의 상태가 모순되지 않아야 합니다.

3) 고립성(Isolation) : 아직 완료되지 않은 트랜잭션은 다른 트랜잭션에서 처리하거나 수정할 수 없습니다.

4) 영속성 또는 내구성(Durability) : 트랜잭션이 성공적으로 수행되면, 해당 결과는 영구적으로 보장되어야 합니다.

                                                         즉, 트랜잭션이 데이터베이스에 기록된 후에는 데이터베이스에 장애가

                                                         발생하더라도 데이터베이스에 저장돼야 합니다.

 

 

4. SQL문 실행 순서

SQL3단계에 걸쳐서 실행되며, 문법을 검사하고 분석합니다.
3
단계는 파싱 -> 실행 -> 인출의 순서로 실행됩니다.

 

파싱(Parsing) 단계에서 SQL문의 문법을 확인하고 구문을 분석하며, 분석한 SQL문을 Library Cache에 저장합니다.
이후 실행단계에서 옵티마이저(Optimizer)가 수립한 실행 계획에 따라 SQL을 실행합니다.

마지막으로 인출(Fetch) 단계에서 데이터를 읽은 후 전송합니다.

 

이번 포스팅에서는 SQL문의 기초 이론에 대해서 포스팅했습니다.다음 포스팅에서는 앞서 말씀드린 오라클에서 제공하는 샘플데이터를 이용하여,
DDL/DML
문을 공부한 내용을 포스팅하겠습니다

 

이전 포스팅 SQLD 시험의 개요와 준비과정을 보지 못하신 분들은 아래 이전 포스팅을 참고 부탁드립니다.  

 

2023.09.13 - [분류 전체 보기] - [SQLD]001. SQLD 시험 개요 및 준비하기(오라클 XE와 SQL Developer 설치하기)

 

[SQLD]001. SQLD 시험 개요 및 준비하기(오라클XE와 SQL Developer 설치하기)

SQLD는 SQL 개발자 자격 검정 시험으로 시험 준비 방법과 공부 내용을 포스팅하겠습니다. 첫 포스팅으로 SQLD 자격검정은 무엇인지와 공부하기 위한 준비 과정을 먼저 작성해 보겠습니다.우선 공식

realisticguy.com