데이터(Data)
- 저장이나 처리에 효율적인 형태로 변환된 정보
- 무한하게 증가하는 데이터 속 데이터를 잘 관리하는 것이 중요
Database
- 구조화된 정보 또는 데이터의 조직화된 모음
DBMS(Database Management System)
- 데이터베이스를 조작하는 프로그램
- SQL을 사용하는 관계형 DB
- 장점
- 명확하게 정의된 스키마, 데이터 무결성(정확성, 일관성) 보장
- 관계를 통해 각 데이터를 중복없이 저장 가능
- 단점
- 상대적으로 덜 유연하며, 데이터 스키마를 미리 계획해야 한다.
- JOIN문이 많은 매우 복잡한 쿼리가 만들어 질 수 있다.
- 수평 확장이 어렵고, 보통 수직 확장만 가능하다.
- NOSQL인 비관계형 DB
- 장점
- 스키마가 없기 때문에 유연성이 높다. 데이터 조정과 '필드' 추가 원활
- 데이터가 애플리케이션에 필요한 형식으로 저장 -> 데이터 속도 빠름
- 수직 및 수평 확장이 다 가능
- 단점
- 유연성 때문에, 데이터 구조 결정이 늦어질 수 있다.
- 복사된 데이터가 변경되면 여러 콜렉션과 문서 수정해야 한다.
관계형 데이터베이스를 공부하기 전에
- 내가 사용하는 서비스는 결국 데이터베이스를 사용한 CRUD의 반복
- 회원가입, 회원탈퇴, 프로필 조회, 프로필 수정, 새로운 피드 작성, 좋아요, 팔로우
RGB(관계형 데이터베이스)
- 데이터를 테이블, 행, 열 등으로 나누어 구조화 하는 방식
- 구조화해서 저장하기 때문에 보다 체계적으로 데이터를 저장, 관리
- SQL을 사용하여 데이터를 조회하고 조작
- 스키마
- 테이블의 구조
- 테이블
- 필드와 레코드를 사용해 조직된 데이터 요소들의 집합
- 필드
- 속성, 컬럼, 열
- 각 필드는 고유한 테이더 형식이 지정된다.
- 레코드
- 튜플, 행
- 테이블의 데이터는 레코드에 저장된다.
- PK(Primary Key) : 기본키
- 각 레코드의 고유한 값, 단일값
- FK(Foreign Key) : 외래키
- 한 테이블의 속성 중 다른 테이블의 레코드를 식별 할 수 있는 키
- 다른 테이블의 기본 키를 참조
- 각 레코드에서 서로 다른 테이블 간의 관계를 만드는데 사용
![]()
SQL(Structured Query Language)
관계형 데이터베이스에서 데이터를 관리하기 위해 사용하는 언어
- DDL(Data Definition Language)
- 관계형 데이터 베이스 구조(테이블, 스키마)를 정의(생성, 수정 및 삭제) 하기 위한 명령어
- SQL키워드 : CREATE, ALTER, DROP
- DML(Data manipulation Language)
- 데이터를 조작(조회, 추가, 변경, 삭제) 하기 위한 명령어
- SELECT, INSERT UPDATE, DELETE
- DCL(Data Control Language)
- 데이터의 보안, 수행제어, 사용자 권한 부여 등을 정의하기 위한 명령어
- 여기서는 생략할 것
참조한 블로그
관계형 데이터베이스의 구조
SQL(관계형 데이터베이스)과 NoSQL(비 관계형 데이터베이스) 개념/비교/차이다음 페이지에서는 DDL과 DML에 대해 더 구체적으로 이야기해보자