1. 관계형 데이터 베이스

1) 관계형 데이터베이스

(1) 관계형 데이터베이스의 등장

- 릴레이션과 릴레이션의 조인 연산을 통해 합집합, 교집합, 차집합 등을 만들 수 있음


(2) 데이터베이스와 DBMS의 차이점

- 데이터베이스 : 데이터를 어떠한 형태의 자료구조에 저장하는 것

계층형 데이터베이스 

트리(Tree)형태에 저장 관리 

1:N 관계 

네트워크형 데이터베이스

오너(Owner)-멤버(Member)형태에 저장 관리 

1:N ,M:N 관계 

관계형 데이터베이스

릴레이션에 저장 관리 

집합 연산, 관계 연산 가능 

- DBMS : 데이터관리 시스템. 계층형 데이터베이스, 네트워크 데이터베이스, 관계형 데이터베이스 등 관리하기 위한 소프트웨어


(3) 관계형 데이터베이스 집합 연산과 관계 연산

- 릴레이션을 사용해 집합 연산, 관계 연산 가능한 관계형 데이터베이스

* 집합 연산

합집합 (Union)

 - 두개의 릴레이션을 하나로 합하는 것. 

 - 중복된 튜플은 한 번만 조회됨 

 차집합 (Difference)

 - 본래 릴레이션에는 존재하고 다른 릴레이션에는 존재하지 않는 것 조회

 교집합 (Intersection)

 - 두 개의 릴레이션 간에 공통된 것 조회

곱집합 (Cartesian product)

 - 각 릴레이션에 존재하는 모든 데이터를 조합하여 연산 


* 관계 연산

 선택 연산 (Selection)

 - 릴레이션에서 조건에 맞는 행만을 조회 

 투영 연산 (Projection)

 - 릴레이션에서 조건에 맞는 속성만을 조회 

 결합 연산 (Join)

 - 여러 릴레이션의 공통된 속성을 사용하여 새로운 릴레이션을 만들어냄 

 나누기 연산 (Division)

 - 기준 릴레이션에서 나누는 릴레이션이 가지고 있는 속성과 동일한 값을 가지는 행을 추출,

   나누는 릴레이션의 속성을 삭제한 후 중복된 행을 제거하는 연산 


2) 테이블

- 테이블은 어느 특정한 주제와 목적으로 만들어지는 일종의 집합

- 릴레이션에 데이터를 저장하고 릴레이션을 사용해서 집합 연산 및 관계 연산을 지원하여 다양한 형태로 데이터 조회 가능

- 릴레이션은 최종적으로 DBMS에 의해 테이블로 만들어짐

- 튜플(행) : 하나의 테이블에 저장되는 값

- 칼럼(속성) : 어떤 데이터를 저장하기 위한 필드

- 기본키 : 하나의 테이블에서 유일성과 최소성을 만족하며 해당 테이블을 대표하는 속성

- 외래키 : 다른 테이블의 기본키를 참조(조인)하는 칼럼. 결합연산을 하기 위해 사용


2. SQL 종류

1) SQL : 데이터의 구조를 정의, 데이터 조작, 데이터 제어 등을 할 수 있는 절차적 언어

2) SQL 종류 

DDL (Data definition Language) 

 - 관계형 데이터베이스의 구조를 정의하는 언어

 - Create Alter Drop Rename

DML (Data Manipulation Language)

 - 테이블에서 데이터를 입력, 수정, 삭제, 조회 함

 - Insert Update Delete Select

DCL (Data Control Language)

 - 데이터베이스 사용자에게 권한을 부여하거나 회수

 - Grant Revoke

TCL (Transaction Control Language)

 - 트랜잭션을 제어하는 명령

 - Commit Rollback

- DCL로 DB 사용자에게 권한을 부여한 뒤 DDL로 데이터 구조를 정의하고 DML로 데이터를 사용함


3) SQL문의 실행 순서

파싱 (Parsing)

 - sql문의 문법을 확인 -> 구문분석

 - 구문분석한 sql문은 Library Cache에 저장 

실행 (Execution)

 - 옵티마이저가 수립한 실행 계획에 따라 sql 실행 

인출 (Fetch)

 - 데이터를 읽어서 전송 



+ Recent posts