개발 공부/IT 기초

데이터베이스 이해하기

eunkonge 2026. 2. 26. 23:28

1. 데이터베이스

1. 데이터베이스의 개념

🍀구조화된 대용량의 데이터를 저장하는 곳

2. 데이터 저장 방식

테이블 : 데이터의 단위 ⇒ 행과 열로 이뤄져 있음

행 : 로우 또는 튜플

열 : 칼럼 또는 속성

번호 날짜 구매 물품 금액

1 2024.11.5.화 무선 마우스 35,000
2 2024.11.8.금 울 목도리 50,000

데이터 저장 시 데이터 타입(자료형)에 따라 저장하도록 조건

⇒ 스키마 : 테이블의 구조와 데이터의 제약 조건 등을 정의한 것

3. 데이터베이스의 특징

🍀정제된 데이터 저장
데이터 전처리 : 데이터베이스에 필요없는 데이터를 빼고 정제해 저장하는 것
🍀동시성 제어
데드락(교착 상태) : 여러개의 트랜잭션들이 실행 하지 못하고 서로 무한정 기다리는 상태
  • 데드락 해결방법
    1. 예방 기법⇒ 트랜잭션의 병행성을 보장하지 못하며 몇몇 트랜잭션은 게속해서 처리 못하게 되는 기아 상태가 발생할 수 있음
    2. 각 트랜잭션이 실행되기 전에 필요한 데이터를 모두 로킹(다른 트랜잭션이 접근하지 못하도록 잠금)
    3. 회피 기법: 자원을 할당할 때 시간 스탬프를 사용하여 교착상태가 일어나지 않도록 회피하는 방법
Wound-Wait 방식
다른 트랜잭션이 데이터를 점유하고 있을 때 기다리거나(Wait) 포기(Die)하는 방식
Wait-Die 방식
다른 트랜잭션이 데이터를 점유하고 있을 때 빼앗거나(Wound) 기다리는(Wait) 방식
🍀빠른 데이터 탐색
데이터를 쉽게 찾기 위해 테이블 구조를 만들고 테이블 간의 관계를 정의
🍀무결성 보장
데이터 처리 과정에서 변형되거나 손실되지 않고 일관되고 정확한 상태를 유지
🍀선택적 공유와 보호
사용자에 따라 공개해도 되는 데이터와 공개하면 안되는 데이터를 구분하여 관리
🍀탐색 최적화
데이터를 더 빠르게 찾도록 환경을 설정하는 것
인덱스 최적화필요한 칼럼에 적절한 인덱스를 추가하고 불필요한 인덱스를 제거쿼리 최적화데이터베이스 쿼리(데이터베이스에 정보를 요청하는 질의문)의 구조를 개선하여 실행 속도를 높이는 방법
🍀백업과 복구
데이터를 쉽게 백업하고 복구 할 수 있는 편의 기능 제공

4. 트랜잭션

트랜잭션 : 하나의 작업 단위

🍀트랜잭션의 성질(ACID)
원자성 :하나의 작업이 시작됐을 대 중간에 중단되면 안 된다는 성질
일관성 :작업 전후의 결과로 데이터가 모순되지 않고 일관된 상태를 유지해야 한다는 성질
고립성 :작업이 진행되는 중에는 아무도 끼어들 수 없어야 한다는 성질
지속성 :한 번 작업한 내용이 계속 반영돼 있어야 한다는 성질

2. 데이터베이스의 언어 : SQL

1. SQL의 개념

SQL : 데이터베이스에서 데이터를 추출하고 조작하는 데 사용하는 프로그래밍 언어

// 저장
INSERT INTO 테이블명(칼럼명1, 칼럼명2) VALUES (값1, 값2);
//조회
SELECT 칼럼명1, 칼럼명2,...
FROM 테이블명
WHERE 조건;
//수정
UPDATE 테이블명
SET 칼럼명=변경할_값
WHERE 조건;
//삭제
DELETE FROM 테이블명
WHERE 조건;

2. SQL 문 맛보기

//모든 데이터 조회하기
SELECT *
FROM 테이블명;
//조건으로 조회하기
SELECT *
FROM 테이블명
WHERE 조건;
//집계해 조회하기
SELECT COUNT(*)
FROM 테이블 명;

SELECT 기준그룹, COUNT(*)
FROM 테이블명
GROUP BY 기준그룹;
//오름차순으로 정렬하기
SELECT *
FROM 테이블명
ORDER BY 기준 ASC;

3. 데이터베이스 관리 시스템 : RDBMS와 NoSQL

데이터베이스 관리 시스템(DBMS) : 여러 사용자가 데이터베이스의 데이터를 접근하고 사용할 수 있게 해주는 프로그램

1. RDBMS

테이블 형태로 데이터를 저장하는 관계형 데이터베이스를 관리하는 시스템 ⇒ SQL 명령을 직접 실행

▶ 테이블 형태로 데이터 저장 후 테이블 간의 관계를 맺는 방식으로 관리

▶ MySQL, PostgreSQL, MariaDB, Oracle 등

🍀기본키와 외래키
기본키 : 한 테이블에서 하나의 행을 식별하기 위한 키
외래키 : 다른 테이블의 기본키를 가리키는 키
⇒ 외래키를 이용하여 다른 테이블의 기본키와 연결해 두 테이블을 합칠 수 있음
🍀관계의 종류
일대일 관계
일대다 관계
다대다 관계 

2. NoSQL

비관계형 데이터베이스 처리에 특화된 데이터베이스 관리 시스템

🍀키-값 쌍 모델
키 : 데이터를 식별하는데 사용
값 : 키에 맞는 값
▶ 기존에 없던 키를 추가해 데이터를 저장할 수 있음
▶ Redis : 자주 요청되는 데이터를 저장할 때 유용
⇒ 정렬된 세트, 해시, 목록 및 문자열과 같은 다양한 데이터 유형 지원
🍀문서 모델
데이터를 문서로 저장 ⇒ 데이터가 구조적으로 저장
▶MongoDB ⇒ 저장되는 데이터가 복잡하고 자주 변하는 경우에 사용
🍀열 지향 모델
데이터를 열 단위로 저장
🍀그래프 모델
마인드맵과 같은 형태로 데이터를 저장