기본 지식
Data 데이터
- 어떤 값을 포함하고 있는 가공되지 않은 1차 자료
- 컴퓨터가 처리할 수 있는 문자, 숫자, 소리, 그림 따위의 형태로 된 자료
Database 데이터 베이스
- 여러 사람이 공유하여 사용할 목적으로 체계화 해 통합, 관리하는 데이터의 집합
- DBMS(데이터 베이스 관리 시스템)의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터들의 묶음
DBMS 데이터베이스 관리 시스템
- DataBase Management System
- 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합
효율적인 데이터 관리 조건
- 데이터를 통합하여 관리
- 일관된 방법으로 관리
- 데이터 누락 및 중복 제거
- 여러 사용자(응용 프로그램)가 공동으로 실시간 사용 가능
DBMS의 종류
- Oracle, MSSQL, MySQL, MongoDB, MariaDB……
- Java 개발자로 취업할 경우 Oracle보다는 MSSQL, MySQL을 건드리게 될 확률이 매우 높음
Data Model 데이터 모델
컴퓨터에 데이터를 저장하는 방식을 정해 놓은 개념 모형
- 계층형:
- 네트워크형:
- 객체 지향형:
- 상속, 오버라이드 등 사용
- 데이터를 독립된 객체로 구성
- 관계형:
- 데이터 간 관계 relationship에 초점
RDBMS 관계형 DBMS
- Relational DataBase Management System
- IBM 산호세 연구소의 에드거 F. 커드가 도입한 관계형 모델을 기반으로 하는 데이터베이스 관리 시스템
- 서로 다른 데이터 구조가 어떻게 관련되어 있는지 쉽게 파악하고 이해할 수 있도록 사전 정의된 관계로 데이터를 구성하는 정보 모음
- 현재 사용되는 대부분의 DB는 관계형 DB 모델을 기반으로 한다.
- Oracle, MySQL, MS-SQL, PostgreSQL, SQLite
- 데이터가 하나 이상의 열과 행의 테이블(또는 관계)에 저장
SQL
- Structured Query Language
- RDBMS의 데이터를 관리하기 위해 설계한 특수 목적의 프로그래밍 언어
- 자료의 검색과 관리, DB 스키마 생성과 수정, DB 객체 접근 조정 관리를 위해 고안되었다.
- 많은 수의 DB 관련 프로그램들에서 SQL을 표준으로 채택한다.
NoSQL
- No only SQL
- 비관계형 DB 유형을 가리키며 이 DB는 관계형 테이블과는 다른 형식으로 데이터를 저장한다.
- NoSQL DB는 언어마다 관습화된 API, 선언적 구조의 쿼리 언어, 쿼리별 언어를 사용하여 질의한다.
- 실시간 웹 애플리케이션 및 빅데이터에 널리 사용되고 있다.
RDBMS
관계형 모델 개념을 한마디로 정리하면 테이블이라는 2차원 구조에 데이터를 성격에 맞게 분리해 가급적 중복되지 않게 저장하고, 필요한 데이터는 테이블 간에 관계를 맺어 추출하는 것
데이터 관리
결국 CRUD
- 데이터 저장 C(Create)
- 필요한 데이터만 적재적소에 저장해 두는 것이 효율적
- 가능한 중복된 데이터는 저장을 피하자
- 데이터 조회 관점 R(Read)
- 데이터 수정 관점 U(Update)
- 데이터 삭제 관점 D(Delete)
데이터의 저장과 조회
- 저장과 조회는 반대의 상관관계가 존재
- 빠르게 저장하면 조회가 느리고 조회가 빠르면 저장이 느리다.
- 책장에 책을 넣고 원하는 책을 찾는 경우를 상상해보자.
데이터 저장소 테이블

- 테이블은 가로와 세로, 즉 열(Column)과 행(Row)로 구성된다.
- Column이 테이블에 저장될 데이터 유형을 결정한다.
- 테이블을 만든다는 것은 컬럼을 정의하는 것이다.
관계 R: relation
- 데이터 성격에 맞게 테이블을 여러 개로 분리한다.
- 분리한 테이블 간에 연결고리 역할을 하는 컬럼을 두어 이 컬럼을 이용해 관계를 맺는다.
- = 테이블과 테이블 사이의 Column을 가지고 관계를 형성
- 주로 테이블의 Column의 Primary Key, Foreign Key를 사용한다.
모델링 Modeling
- 데이터 성격에 맞게 테이블을 여러 개 만들고 이들 간의 관계를 결정하는 것
키 컬럼 Key Column
- 데이터 무결성을 확보하고자 테이블에 반드시 하나의 키가 되는 Column을 두어야 한다.
데이터 무결성(integrity)이란?
- 데이터의 정확성을 보장해 올바른 데이터를 유지하는 것이다.
기본키 Primary Key, PK
- 테이블에서 특정 Row 데이터를 식별할 수 있는 값을 가진 Column
- 테이블 전체로 보면 기본 키 Column에는 유일한(Unique)한 값
- 유일한 식별자 역할을 하는 키는 테이블 간 관계를 맺을 때도 사용 된다.
외래(참조)키 Foreign Key, FK
- 다른 테이블의 기본 키와 연결 고리가 되는 키
SQL
구조화된 혹은 구조적인 질의(Query) 언어, 집합적 언어
- RDBMS 상에서 데이터를 원하는 대로 다루는 것
구조적 혹은 구조화된이라는 것은 어떤 틀이나 형식이 정해져 있다는 의미.
- DB를 상대로 데이터를 CRUD 하기 위해 사용하며 이 모든 것이 질의(Query)이다.
- 임의의 조건에 부합한다면 이를 충족하는 데이터를 CRUD 하는 기능을 수행한다.
- 데이터를 한 건씩 처리하는 게 아니라 조건에 맞는 데이터 전체를 한 번에 처리한다.
- SQL 표준과 제품별 다른 SQL이 있다.
종류
- DML: Data Manipulation Language
- DDL: Data Definition Language
- DCL: Data Control Language
- TCL: Transaction Control Language
- Transaction(트랜잭션) commit, Rollback
알아두면 좋은 내용