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) |
- 데이터를 읽어서 전송 |
'[자격증] SQLD (SQL Developer)' 카테고리의 다른 글
[SQLD][책없이 공부]2과목 01. SQL 기본_03 DML (0) | 2019.11.14 |
---|---|
[SQLD][책없이 공부]2과목 01. SQL 기본_02 DDL (0) | 2019.11.14 |
[SQLD][책없이 공부]1과목 02. 데이터 모델과 성능_03 분산 데이터베이스 (0) | 2019.11.13 |
[SQLD][책없이 공부]1과목 02. 데이터 모델과 성능_02 반정규화 (0) | 2019.11.13 |
[SQLD][책없이 공부]1과목 02. 데이터 모델과 성능_01 성능데이터모델링, 정규화 (0) | 2019.11.13 |