개발 무지렁이

[MySQL] 데이터베이스 및 SQL Basic ver. 본문

Backend/SQL

[MySQL] 데이터베이스 및 SQL Basic ver.

Gaejirang-e 2023. 8. 15. 22:31

𐂂 데이터베이스 (Database) 란
특정조직에서 다양한 데이터
다수의 사용자가 사용할 수 있도록, (동시사용, 질의어 사용)
구조적으로 통합된 데이터의 집합을 말한다. (중복최소화, 스키마명세)


🎲 프로그램-데이터 독립성
: 하위레벨 스키마의 변화가 상위레벨 스키마에 영향을 미치지 않는다.)

🧸 스키마(intension[내연], 구조) / 인스턴스(extension[외연], 상태)


𖠃 '정규화' 란
테이블을 분할하여 데이터의 불필요한 중복을 제거하는 것을 말한다.
즉, 테이블 설계 시 중복저장을 최소화하도록 구조화하는 작업을 말한다.
이는 검색효율을 높여주고, 테이블 🧩 무결성(정확한 데이터 보장)을 유지할 수 있게 한다.

🎯 삽입/수정/삭제 성능 향상

🥯 '반정규화' 란
: 데이터 중복을 통해 성능을 향상시키는 것을 말한다.
이는 개발운영을 단순화시키기도 한다

🎯 조인 성능 향상, 조회 성능 향상

𐁍 SQL (Structured Query Language)
구조적으로 표준화된 질의어
관계형 데이터베이스 시스템의 표준언어


구분
역할
명령어
의미
   DDL    데이터 정의어  CREATE, ALTER, DROP,
 TRUNCATE 
 테이블을 생성/변경/제거할때 사용 
   DML    데이터 조작어  INSERT, UPDATE, DELETE   테이블에 데이터를 삽입/수정/삭제할때 사용 
   DCL    데이터 제어어  GRANT, REVOKE   보안을 위한 데이터 접근 및 사용권한 부여
   TCL    트랜잭션  COMMIT, ROLLBACK  트랜잭션 처리
   DQL    조회  SELECT   테이블에 데이터를 조회할때 사용 

🦉 DELETE vs TRUNCATE vs DROP
▶️ DELETE FROM: 로그 쌓음, COMMIT전 ROLLBACK 가능
▶️ TRUNCATE TABLE: 로그 쌓지 않음, ROLLBACK 불가
▶️ DROP TABLE: 테이블 스키마까지 완전 삭제

𖠃 '인덱스' 란
데이터에 색인을 부여하여, 데이터를 일정 기준에 맞게 정렬되도록 설정하는 기능을 말한다.

🎯 데이터에 접근하는 경로를 만들어 검색속도를 향상시킨다.
⚠️ 단, 업데이트 속도는 느려진다.(정렬해야해서)

𖠃 데이터 무결성 (Data Integrity) 🗿
1️⃣ 도메인 제약조건: 각 애트리뷰트가 가질 수 있는 값(원자값)의 범위가 있다.
2️⃣ 키 제약조건: 키 애트리뷰트에 중복된 값이 들어가서는 안된다.
3️⃣ 기본키와 엔티티 무결성 제약조건: 기본키 애트리뷰트는 널값(NULL)을 가질 수 없다.
4️⃣ 외래키참조 무결성 제약조건: 참조하는 애트리뷰트의 도메인이, 참조되는 애트리뷰트의 도메인과 같아야한다.
(⚠️ 외래키에는 널값(NULL)이 올 수 있다.)

💉 참조 무결성 제약조건을 만족시키기 위한 옵션
🚫 restricted: 위배를 야기한 연산을 거절
🚸 cascade: 참조되는 릴레이션에서 튜플을 삭제할 때, 참조하는 릴레이션에서 연관된 튜플도 함께 삭제
❔ nullify: 참조하는 튜플의 외래키널값(null)을 삽입
Comments