자격증/SQLD

[SQLD] SQL 기본 - 관계형 데이터베이스 개요

숭코기 2023. 8. 30. 18:28
728x90

01. 데이터베이스

  • 넓은의미: 일상적인 정보들을 모아 놓은 것 자체
  • 일반적인 의미: 특정 기업이나 조직 또는 개인이 필요에 의해 데이터를 일정한 형태로 저장해 놓은 것

데이터 베이스의 발전

  • 1960s: 플로우차트 중심의 개발
  • 1970s: 데이터베이스 관리 기법이 처음 태동
  • 1980s: 오라클, 시베이스 등의 RDB 상용화
  • 1990s: 기존의 제품들이 향상됨. 객체 RDB로 발전

RDB

  • 1970년 코드 박사의 논문에서 처음 소개
  • 오라클을 선발로 여러 회사에서 상용화 제품을 출시
  • 계층형, 망형 데이터베이스를 대체하며 주력 DB로 성장
  • 데이터의 중복을 피하고 정합성을 보장하기 위해 RDB가 사용되기 시작
  • RDB는 메타데이터를 총괄 관리할 수 있기 때문에 성격, 속성 또는 표현 방법 등을 체계화 할 수 있음
  • 데이터 표준화를 통해 데이터 품질을 확보할 수 있음
  • 갑작스런 장애로부터 데이터가 정상적으로 반영될 수 있도록 보장
  • 시스템 다운, 재해 등의 상황에서도 데이터를 회복, 복구할 수 있는 능력이 있음

 

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

1970년 영국의 수학자 E.F. Codd 박사의 논문에서 처음으로 관계형 데이터베이스 소개 후 

기존의 파일시스템과 계층형, 망향 데이터베이스를 대부분 대체하면서 현재 주력 데이터베이스

SQL을 사용하여 관리함으로 관계형 데이터베이스와 SQL의 중요성이 높아짐

 

계층형 DB (트리구조, 1:N 구조, 부모자식구조)

계층형 DB

 

망형 DB (1:N, M:N 구조)

망형 DB

 

관계형 DB (테이블 구조)

관계형 DB

 

02. SQL (Structured Query Language)

관계형DB에서 데이터 정의, 조작, 제어를 하기 위해 사용하는 언어

 

SQL 종류

DDL로 테이블을 생성

DML로 테이블 안 데이터를 생성

DCL은 만든 테이블 권한 부여

TCL은 이런 명령어 결과를 최종 저장하는 트랜잭션 명령어

(TCL :: 컴퓨터로 문서를 다 만들고 저장 버튼을 누를지 안누를지를 결정하는 명령어라고 생각하면 쉽다)

 

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

테이블 구조정의 명령어

명령어 설명
CREATE 테이블 생성
ALTER 테이블 변경
DROP 테이블 삭제
RENAME 테이블 이름 변경

 

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

테이블 안 데이터 입력, 수정, 삭제 조회 명령어

명령어 설명
SELECT 데이터 조회
INSERT 데이터 삽입
UPDATE 데이터 수정
DELETE 데이터 삭제

 

 

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

테이블 상용자 권한 부여 명령어

명령어 설명
GRANT 권한부여
REVOKE 권한회수

 

트랜잭션 제어어(TCL, Transaction Control Language)

트랜잭션 제어 명령어

명령어 설명
COMMIT 작업 완료 처리
ROLLBACK 작업 취소 처리
트랜잭션 ❓
데이터베이스의 작업처리를 결정하는 단위

트랜잭션 특징
-  원자성: 중간 단계까지 실행되고 실패하는 일이 없도록 하는것이 (ALL OR NOTHING = 모두 완료 or 아예 실행 X)
e.g. 영화 예매 후 지불시 → 지불했지만 예매가 안되는 일, 예매는 했지만 지불이 안되는 일을 방지하는 것
- 일관성: 트랜잭션 전이나 후나 일관성 있는 데이터베이스 상태로 유지하는 것을 의미
- 고립성: 트랜잭션 실행 중 다른 트랜잭션 접근 금지
- 지속성: 트랜잭션 실행 성공 후 결과 영구적으로 저장

 

 

03. TABLE

데이터는 관계형 DB의 기본 단위인 테이블 형태로 저장된다. 모든 자료는 테이블에 등록 되고, 우리는 테이블로 부터 원하는 자료를 꺼내 올 수 있다.

 

테이블 구성

RDB에서는 모든 데이터를 칼럼과 행의 2차원 구조로 나타낸다

  • 칼럼(Column): 세로줄
  • 행(Row): 가로줄
  • 필드(Field): 칼럼과 행이 겹치는 하나의 공간 (엑셀에서의 셀)

 

테이블 관계 용어들

  • 정규화(Normalization): 테이블을 분해해 데이터 정합성을 확보하고, 불필요한 중복을 줄이는 과정
  • 기본키(Primary Key): 각 행 한가지 의미로 특절할 수 있는 한 개 이상의 칼럼
  • 외부키(Foreign Key): 다른 테이블의 기본키로 사용되고 있는 관계를 연결하는 칼럼

 

04. ERD(Entity Relationship Diagram)

ERD는 테이블 관계를 표현하는 수단이다. 테이블 간 서로의 상관 관계를 그림으로 도식화 한것을 E-R 다이어그램이라고 하며, 간략히 ERD라고 한다.

 

ERD의 구성요소

엔터티(Entity), 관계(Relationship), 속성(Attribute)

 

ERD 표기법

IE(Information Engineering) 표기법, Barker(Case*Method) 표기법

728x90