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 |