[TIL_2023.11.20]MySQL 정리 1

김효진·2023년 11월 20일
0
post-custom-banner

관계형 데이터베이스(RDB)

대표적으로 MySQL과 오라클이 있는데 MySQL이 오픈소스 라이센스를 따르기에 기본 버전은 무료로 사용가능해 가장 많이 사용된다.

관계형 데이터베이스(RDB)는 각 데이터를 ‘테이블’이라는 표형태의 구조에 저장한다. 여기서, 각 ‘테이블’은 여러 정보를 저장하며, ‘테이블’간에 연관 관계를 설정하여, 여러 테이블에 분산된 데이터를 서로 연결하여 관리할 수 있다.

관계형 데이터베이스는 테이블(Table)이라는 구조를 가지며, 각 테이블은 고유한 데이터를 나타내는 행(row)데이터의 속성을 나타내는 열(column)을 가진다.

-> 각 column에 속성값 id, name 이 있다면
-> 각 row에는 1, 홍길동 이런 식으로 데이터가 들어감.

엑셀에 비유하자면
엑셀 파일 하나가 "데이터베이스"라면,
엑셀 시트 하나는 "테이블"이라고 부르고,
엑셀 행 하나는 "데이터"라고 부름

이 테이블들은 서로 연결될 수 있으며, 이 연결을 통해 복잡한 데이터를 관리할 수 있다.

관계형 데이터베이스(RDB)는 더욱 복잡한 비즈니스 로직과 정형화된 데이터를 체계적으로 관리할 수 있어 더욱 안전한 서버 환경을 구성하기에 좋은데
보안이 중요한 기관이나, 은행과 같은 안전성을 중시하는 회사들에서도 많이 사용한다.

SQL(Structured Query Language)이란? 데이터베이스에서 사용되는 생성, 삽입, 조회 명령문

SQL의 종류

  • DDL (Data Definition Language)
    -> 테이블이나 데이터베이스를 생성, 수정, 삭제와 같은 행위를 할 때 사용
    -> CREATE(생성), DROP(삭제), ALTER(속성변경)
  • DML (Data Manipulation Language)
    -> 데이터베이스(일반적으로 테이블)에서 데이터를 조작할 때 사용하는 언어로 데이터의 저장, 삭제, 수정, 조회를 함.
    -> SELECT(조회), INSERT(삽입), DELETE(삭제), UPDATE(수정)
  • DCL (Data Control Language)
    -> 데이터베이스에 대한 권한과 관련된 문법으로 특정 유저가 DB에 접근할 수 있는 권한을 설정할 때 사용
    -> GRANT(권한부여), REVOKE(권한취소)
  • TCL (Transaction Control Language)
    -> 데이터베이스 내의 트랜잭션을 관리하는 문법으로, 트랜잭션의 시작과 종료, 그리고 롤백을 수행할 때 사용
    -> COMMIT(정상완료시), ROLLBACK(비정상완료시)
    -> ROLLBACK(비정상완료시) : 작업 중 오류가 발생한 경우 이를 취소하고, 이전 상태로 되돌릴 때 사용
  • 트랜잭션(transaction) : 쪼갤 수 없는 업무 처리의 최소 단위
  • 롤백(rollback) : 데이터베이스에서 업데이트에 오류가 발생할 때, 이전 상태로 되돌리는 것

데이터의 정규화와 무결성을 보장하면서 정형화된 데이터를 효과적으로 관리할 수 있다는 장점으로 많은 서비스에서 SQL을 사용하지만 그렇다고 NoSQL이 나쁘다는 것은 아니다.

NoSQL의 경우 정형화된 데이터를 관리하거나 복잡한 비즈니스 로직을 구현하기에는 적합하지 않지만 유연한 데이터 구조를 가지기 때문에, 저장(Write)과 읽기(Read) 작업이 더욱 빠르며, 복잡한 비즈니스 로직 없이 주로 데이터 읽기와 쓰기에 중점을 둔 빅데이터 환경이나 단순 페이지뷰가 많은 어플리케이션 같은 서비스에서 주로 사용한다.

profile
더 많은 사람들이 더 좋은 정보와 서비스를 누릴 수 있게!!
post-custom-banner

0개의 댓글