Notice
Recent Posts
Recent Comments
Link
개발 무지렁이
[MySQL] 데이터베이스 및 SQL Basic ver. 본문

𐂂 데이터베이스 (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: 테이블 스키마까지 완전 삭제
▶️ DELETE FROM: 로그 쌓음, COMMIT전 ROLLBACK 가능
▶️ TRUNCATE TABLE: 로그 쌓지 않음, ROLLBACK 불가
▶️ DROP TABLE: 테이블 스키마까지 완전 삭제
𖠃 '인덱스' 란
데이터에 색인을 부여하여, 데이터를 일정 기준에 맞게 정렬되도록 설정하는 기능을 말한다.
🎯 데이터에 접근하는 경로를 만들어 검색속도를 향상시킨다.
⚠️ 단, 업데이트 속도는 느려진다.(정렬해야해서)
🎯 데이터에 접근하는 경로를 만들어 검색속도를 향상시킨다.
⚠️ 단, 업데이트 속도는 느려진다.(정렬해야해서)
𖠃 데이터 무결성 (Data Integrity) 🗿
1️⃣ 도메인 제약조건: 각 애트리뷰트가 가질 수 있는 값(원자값)의 범위가 있다.
2️⃣ 키 제약조건: 키 애트리뷰트에 중복된 값이 들어가서는 안된다.
3️⃣ 기본키와 엔티티 무결성 제약조건: 기본키 애트리뷰트는 널값(NULL)을 가질 수 없다.
4️⃣ 외래키와 참조 무결성 제약조건: 참조하는 애트리뷰트의 도메인이, 참조되는 애트리뷰트의 도메인과 같아야한다.
(⚠️ 외래키에는 널값(NULL)이 올 수 있다.)
💉 참조 무결성 제약조건을 만족시키기 위한 옵션
🚫 restricted: 위배를 야기한 연산을 거절
🚸 cascade: 참조되는 릴레이션에서 튜플을 삭제할 때, 참조하는 릴레이션에서 연관된 튜플도 함께 삭제
❔ nullify: 참조하는 튜플의 외래키에 널값(null)을 삽입
2️⃣ 키 제약조건: 키 애트리뷰트에 중복된 값이 들어가서는 안된다.
3️⃣ 기본키와 엔티티 무결성 제약조건: 기본키 애트리뷰트는 널값(NULL)을 가질 수 없다.
4️⃣ 외래키와 참조 무결성 제약조건: 참조하는 애트리뷰트의 도메인이, 참조되는 애트리뷰트의 도메인과 같아야한다.
(⚠️ 외래키에는 널값(NULL)이 올 수 있다.)
💉 참조 무결성 제약조건을 만족시키기 위한 옵션
🚫 restricted: 위배를 야기한 연산을 거절
🚸 cascade: 참조되는 릴레이션에서 튜플을 삭제할 때, 참조하는 릴레이션에서 연관된 튜플도 함께 삭제
❔ nullify: 참조하는 튜플의 외래키에 널값(null)을 삽입
'Backend > SQL' 카테고리의 다른 글
[MySQL] MySQL 시퀀스 테이블과 프로시저 정의 및 호출 (0) | 2023.08.27 |
---|---|
[MySQL] 서브쿼리와 인라인뷰 및 쿼리 실행 순서 (0) | 2023.08.12 |
[MySQL] DDL 작성과 EQUI JOIN, OUTER JOIN, SELF JOIN (0) | 2023.08.10 |
[DB] 구조화가 중요한 RDBMS와 자유로운 형태의 NOSQL, Redis (0) | 2023.07.16 |
[Oracle] 사용자 생성 및 모든 권한 부여 (0) | 2023.06.02 |
Comments