Today I Learned (TIL)/SQL

[TIL] DA를 위한 데이터베이스 완전 정복

신짜린 2024. 7. 16. 15:48

1. DBMS란?

 DBMS는 데이터를 체계적으로 저장하고 관리할 수 있게 도와주는 프로그램이다. 데이터를 효율적으로 관리하기 위해 사용하며 저장, 검색, 수정, 삭제 기능을 사용할 수 있다.

종류 설명
MySQL 오픈 소스 데이터베이스로 많이 사용
PostgreSQL 또 다른 오픈 소스 데이터베이스로 안정성이 높음
Oracle 기업에서 많이 사용하는 상용 데이터베이스
MS SQL 마이크로소프트에서 만든 데이터베이스

 

2. 키의 종류

 데이터베이스에서 키는 데이터를 고유하게 식별하는 데 사용한다. 키를 통해 데이터베이스 내에서 특정 데이터를 쉽게 찾을 수 있다.

종류 설명
기본키 (Primary Key) 테이블에서 각 행(레코드)를 유일하게 식별
중복되지 않으며 NULL 값을 가질 수 없음
외래키 (Foreign Key) 다른 테이블의 기본키를 참조하는 키
후보키 (Candidate Key) 기본키로 사용할 수 있는 모든 키
대체키 (Alternate Key) 기본키로 선택되지 않은 후보키

 

3. 관계의 종류

 데이터베이스에서 테이블 간의 관계는 데이터를 더 체계적으로 관리할 수 있게 해준다.

종류 설명
일대일 (1:1) 관계 한 테이블의 한 행이 다른 테이블의 한 행과만 연결
일대다 (1:N) 관계 한 테이블의 한 행이 다른 테이블의 여러 행과 연결
다대다 (N:M) 관계 여러 행이 여러 행과 연결
이를 구현하기 위해 중간에 연결 테이블이 필요함

 

4. 데이터 무결성

 데이터의 정확성과 일관성을 유지하는 것을 의미한다. 데이터를 신뢰할 수 있도록 한다.

유형 설명
참조 무결성 외래 키가 참조하는 값이 반드시 존재
도메인 무결성 데이터가 정의된 도메인에 속해야 함
엔터티 무결 기본키는 중복되거나 NULL이 될 수 없음

 

5. 제약 조건

 데이터가 특정 규칙을 따르도록 한다. 제약 조건을 통해 데이터의 무결성을 유지할 수 있다.

조건 설명
NOT NULL 해당 필드가 빈 값(NULL)이 될 수 없음
UNIQUE 해당 필드의 값이 유일해야 함
CHECK 특정 조건을 만족해야 함
DEFAULT 필드의 기본값을 설정

 

6. 데이터베이스 설계

 데이터베이스 설계는 데이터를 효율적으로 저장하고 관리하기 위한 구조를 만드는 과정이다.

- 논리적 설계

 데이터 모델을 설계하고 ERD를 작성한다.

- 물리적 설계

 실제 DBMS에서 테이블을 생성하고 인덱스를 설정한다.

 

7. 정규화

 데이터 중복을 최소화하고 데이터를 구조화하는 과정이다. 정규화를 통해 데이터베이스의 무결성을 유지하고 관리하기 쉽게 만든다.

종류 규칙
1NF (제1 정규형) 1. 각 컬럼이 하나의 속성만을 가져야 함
2. 하나의 컬럼은 같은 종류나 타입의 값을 가져야 함
3. 각 컬럼이 유일한 이름을 가져야 함
4. 칼럼의 순서가 상관없어야 
2NF (제2 정규형) 1. 1정규형을 만족해야 함
2. 모든 컬럼이 부분적 종속이 없어야 함 (모든 컬럼이 완전 함수 종속을 만족해야 함)
*부분적 종속이란 기본키 중 특정 컬럼에만 종속되는 것
*완전 함수 종속이란 기본키의 부분집함이 결정자가 되어서는 안됨
3NF (제3 정규형) 1. 2정규형을 만족해야 함
2. 기본키를 제외한 속성들 간 이행 종속성이 없어야 함
*이행 종속성이란 A > B, B > C 일때 A > C가 성립하는 것을 말함

 

8. 트랜잭션

 데이터베이스의 상태를 변화시키는 작업의 단위를 말한다. 여러 작업을 하나의 단위로 묶어서 실행하는 트랜잭션은 ACID특성을 가진다.

특성 설명
Atomicity (원자성) 트랜잭션이 완전히 수행되거나 전혀 수행되지 않아야 함
Consistency (일관성) 트랜잭션 후에도 데이터베이스는 일관된 상태를 유지
Isolation (격리성) 동시에 실행되는 트랜잭션 간의 간섭을 방지
Durability (내구성) 트랜잭션이 완료된 후에도 데이터는 영구적으로 저장

 

9. 인덱스

 인덱스는 데이터를 빠르게 검색하기 위한 데이터 구조를 말한다.

- B-Tree 인덱스

 균형 트리 구조로 빠르게 데이터를 찾을 수 있다,

- 해시 인덱스

 특정 값을 기준으로 한 해시 테이블 구조이다.

'Today I Learned (TIL) > SQL' 카테고리의 다른 글

[TIL] SQL 챌린지 - 2회차  (0) 2024.07.22
[TIL] SQL 베이직 - 2회차  (0) 2024.07.18
[TIL] SQL 챌린지 - 1회차  (0) 2024.07.15
[TIL] SQL 베이직 - 1회차  (0) 2024.07.15
[TIL] 엑셀보다 쉽고 빠른 SQL - 5주차  (0) 2024.06.28