1. DBMS
DBMS란?
Database Management System, 데이터를 체계적으로 저장하고 관리할 수 있게 도와주는 프로그램
- 데이터 저장
- 데이터 검색
- 데이터 수정
- 데이터 삭제
MySQL, Oracle, MS SQL Server 주로 사용
2. 키
데이터를 고유하게 식별하는 데 사용. 키를 통해 데이터베이스 내에서 특정 데이터를 쉽게 찾을 수 있음.
기본 키(Primary Key)
- 테이블에서 각 행(레코드)를 유일하게 식별
- 중복되지 않으며 NULL값을 가질 수 없음.
- 고유한 ID
외래 키(Foreign Key)
- 다른 테이블의 기본 키를 참조하는 키
- 친구의 전화번호 저장한다고 생각
후보 키(Candidate Key)
- 역할 : 기본 키로 사용할 수 있는 모든 키
- 여러 개의 후보 키 중에서 하나를 기본 키로 선택하는 것
대체 키(Alternate Key)
- 역할 : 기본 키로 선택되지 않은 후보 키
3. 관계
일대 일 (1:1) 관계
- 한 테이블의 한 행이 다른 테이블의 한 행과만 연결됨.
일대 다 (1:N) 관계
- 한 테이블의 한 행이 다른 테이블의 여러 행과 연결됨.
다대 다 (N:M) 관계
- 여러 행이 여러 행과 연결됨. 이를 구현하기 위해 중간에 연결 테이블이 필요함.
4. 데이터 무결성
데이터의 정확성과 일관성을 유지하는 것을 의미
데이터를 신뢰할 수 있도록 함.
데이터 무결성의 유형
참조 무결성
- 외래 키가 참조하는 값이 반드시 존재해야 함.
도메인 무결성
- 데이터가 정의된 도메인에 속해야 함.
엔터티 무결성
- 기본키는 중복되거나 NULL이 될 수 없음
5. 제약 조건
데이터가 특정 규칙을 따르도록 하는 규칙, 제약 조건을 통해 데이터의 무결성을 유지할 수 있음.
- NOT NULL : 해당 필드가 빈 값(NULL)이 될 수 없음.
- UNIQUE : 해당 필드의 값이 유일해야 함.
- CHECK : 특정 조건을 만족해야 함.
- DEFAULT : 필드의 기본값을 설정함.
6. 데이터 베이스 설계
데이터 베이스 설계는 데이터를 효율적으로 저장하고 관리하기 위한 구조를 만드는 과정임.
다음과 같은 단계로 진행됨.
1) 논리적 설계
- 데이터 모델을 설계하고 ERD를 작성함.
- 건물의 설계를 그린다고 생각하면 됨. 건물의 각 방과 구조를 설계하는 것처럼 각 테이블의 관계를 설계
2) 물리적 설계
- 실제 DBMS에서 테이블을 생성하고 인덱스를 설정함.
- 실제로 건물을 짓는 것과 같음. 논리적 설계를 바탕으로 실제 데이터 베이스를 만듬.
7. 정규화
정규화는 데이터 중복을 최소화하고 데이터를 구조화하는 과정임. 정규화를 통해 데이터베이스의 무결성을 유지하고 관리하기 쉽게 만듬.
1) 1NF (제1 정규형)
- 모든 필드가 원자값을 가짐
- 각 상자에 하나의 물건만 넣는 것과 같음. 하나의 필드에는 하나의 값만 들어감.
2) 2NF (제2 정규형)
- 1NF를 만족하고, 부분적 함수 종속을 제거함.
- 각 상자에 관련된 물건만 넣는 것과 같음. 각 테이블에는 테이블에 필요한 데이터만 넣음.
3) 3NF (제3 정규형)
- 2NF를 만족하고, 이행적 함수 종속을 제거함.
- 각 상자에 정말 필요한 물건만 넣는 것과 같음. 불필요한 물건을 제거하고, 꼭 필요한 물건만 넣음.
8. 트랜잭션(Transaction)
트랜잭션은 데이터베이스의 상태를 변화시키는 작업의 단위임.
여러 작업을 하나의 단위로 묶어서 실행함.
다음과 같은 ACID 특성을 가짐.
1) Atomicity (원자성)
- 트랜잭션이 완전히 수행되거나 전혀 수행되지 않아야 함.
2) Consistency (일관성)
- 트랜잭션 후에도 데이터베이스는 일관된 상태를 유지함.
3) Isolation (격리성)
- 동시에 실행되는 트랜잭션 간의 간섭을 방지함
4) Durability (내구성)
- 트랜잭션이 완료된 후에도 데이터는 영구적으로 저장됨.
9. 인덱스
인덱스는 데이터를 빠르게 검색하기 위한 데이터 구조임. 인덱스를 사용하면 데이터베이스에서 필요한 데이터를 더 빨리 찾을 수 있음.
1) B-Tree 인덱스
- 균형 트리 구조로 빠르게 데이터를 찾을 수 있음.
- 비유 : 도서관에서 책의 제목 순서로 정리된 카탈로그와 같음.
2) 해시 인덱스
- 특정 값을 기준으로 한 해시 테이블 구조임.
- 비유 : 친구의 이름을 기억하고 전화번호를 바로 찾는 것과 같음.
10. ERD
Entity - Relationship Diagram은 데이터베이스의 논리적 구조를 시각적으로 표현한 다이어그램임.
1) 엔터티 (Entity)
데이터를 저장하는 객체
2) 속성 (Attribute)
엔터티의 특징을 나타내는 필드
3) 관계 (Relationship)
엔터티 간의 연관성
'TIL > SQL' 카테고리의 다른 글
TIL (7/19) <날짜 차이 구하기 datediff()> (0) | 2024.07.19 |
---|---|
TIL (7/17) <if문, 임시테이블> (0) | 2024.07.17 |
TIL (7/16) <join> (0) | 2024.07.16 |
TIL (7/15) <두 개의 컬럼으로 그룹화하기, 조건에 맞는 사용자 조회하기> (0) | 2024.07.15 |
TIL (7/12) <group by, having, 서브쿼리를 사용하는 이유> (2) | 2024.07.12 |