1. 데이터베이스
DBMS
- 많은 사용자들의 보다 효율적 데이터의 관리
- 예기치 못한 사건으로 인한 데이터 손상 방지
- 필요 데이터 복구 위한 강력한 기능의 SW 필요성
1.1. 관계형 데이터베이스
- 정규화 통한 합리적 테이블 모델링
=> 이상ANOMALY 현상 제거, 데이터중복 피함.
- 동시성 관리, 병행 제어
- 메타 데이터 총괄 관리 가능
=> 데이터의 성격, 속성, 표현 방법 등 체계화 가능
- 데이터 표준화 통한 데이터 품질 확보
2. SQLStructured Query Language
2.1. SQL이란?
: 관계형 DB에서 데이터 정의, 데이터 조작, 데이터 제어 위해 사용하는 언어
관계형 DB는 수학의 집합 논리에 입각함.
=> SQL도 데이터를 집합으로써 취급.
ex) ‘포지션이 MF인 선수의 정보 검색’ 상황에선,
선수라는 큰 집합에서 포지션이 MF인 조건 만족하는 요구 집합 추출하는 조작.
2.2. SQL 문장들의 종류
명령어 종류 | 명령어 | 설명 |
데이터 조작어 (DML; Data Manipulation Language) | SELECT | DB의 데이터 조회, 검색 위한 명령어.RETRIEVE 라고도 함. |
INSERT UPDATE DELETE | DB의 테이블의 데이터에 변형(삽입, 삭제, 수정 등) 가하는 종류의 명령어들. | |
데이터 정의어 (DDL; Data Definition Language) | CREATE ALTER DROP RENAME | 테이블 등의 데이터 구조 정의할 때 사용되는 명령어들로, 생성, 변경, 삭제, 이름변경 관련 명령어들. |
데이터 제어어 (DCL; Date Control Language) | GRANT REVOKE | DB에 접근하고 객체 사용하도록 권한 주고 회수하는 명령어. |
트랜잭션 제어어 (TCL; Transaction Control Language) | COMMIT ROLLBACK | 논리적 작업의 단위를 묶어서 DML에 의해 조작된 결과를 트랜잭션 별로 제어하는 명령어. |
3. TABLE
데이터는 RDB의 기본 단위인 테이블 형태로 저장됨. 모든 자료는 테이블에 등록 되고, 테이블로부터 원하는 자료 꺼내옴.
테이블은 어느 특정 주제와 목적으로 만들어지는 일종의 집합.
3.1. 테이블이란?
: 데이터를 저장하는 객체Object로서 RDB의 기본 단위.
3.2. 정규화
: 테이블을 복수의 테이블로 분할하여 데이터의 불필요한 중복 줄이는 것.
데이터 정합성 확보와 데이터 입력/수정/삭제 시 발생가능한 이상현상Anomaly 방지 위해 매우 중요한 프로세스임.
3.3. 기본키와 외부키
기본키Primary Key
: 테이블에 존재하는 각 행을 한 가지 의미로 특정할 수 있는 한 개 이상의 Column.
외래키Foreign Key
: 다른 테이블의 기본키로 사용되고 있는 관계 연결하는 Column.
4. ERDEntity Relationship Diagram
: 테이블 간 서로의 상관 관계를 그림으로 도식화한 것.
4.1. 구성요소
flowchart LR
A[A]---C{C}---B[B]
(A, B: 엔터티 / C: 관계)
- 엔터티
- 관계
- 속성
위 테이블 간의 양방향 관계는 다음과 같다.
- 하나의 팀은 여러 명의 선수 포함할 수 있다.
- 한 명의 선수는 하나의 팀에 꼭 속한다.
- 하나의 팀은 하나의 전용 구장을 꼭 가진다.
- 하나의 운동장은 하나의 홈팀을 가질 수 있다.
- 하나의 운동장은 여러 게임 스케줄을 가질 수 있다.
- 하나의 스케줄은 하나의 운동장에 꼭 배정된다.
사원-부서 테이블 간 양방향 관계는 다음과 같다.
- 하나의 부서는 여러 명의 사원을 보유할 수 있다.
- 한 명의 사원은 하나의 부서에 꼭 소속된다.