본문 바로가기
  • Welcome!
personal activity/이것 저것 자료 캡처

데이터베이스(Database)란?

by ToolBOX01 2025. 2. 1.
반응형

□ 소개

데이터베이스(Database)란 전자적으로 저장되고 체계적인 데이터 모음을 의미합니다. 단어, 숫자, 이미지 등이 포함될 수 있는 것들을 말하며, 쉽게 말하면 정보입니다.이러한 정보들은 수십만 건 이상이 될 수도 있으며, 이러한 많은 양의 정보를 효율적으로 저장하고 관리하기 위해 데이터베이스 관리 시스템(DBMS)을 사용합니다.

대표적인 DBMS로는 MySQL, PostgreSQL, SQLite, Microsoft SQL Server, Oracle Database 등이 있으며, 이 외에도 MongoDB, Cassandra 등의 NoSQL 데이터베이스도 있습니다. 데이터베이스는 현대의 데이터 중심 애플리케이션에서 필수적인 도구로 자리 잡고 있습니다. 아래와 같은 순서로 학습을 합니다.


1. 기초 지식 습득

1) 기본 개념

  • 데이터(Data): 단순한 사실이나 값(예: 이름, 전화번호, 주소 등).
  • 정보(Information): 데이터를 가공하여 의미 있게 만든 것(예: 고객 리스트, 판매 통계 등).
  • 데이터베이스(DB): 데이터를 체계적으로 저장하고, 필요할 때 쉽게 꺼내 쓸 수 있도록 만든 시스템.
  • DBMS(Database Management System): 데이터베이스를 관리하는 소프트웨어(예: MySQL, Oracle, PostgreSQL 등).

2) 주요 용어

  • 테이블(Table): 데이터를 저장하는 구조, 엑셀의 시트와 비슷함.
  • 행(Row) / 레코드(Record): 테이블의 한 줄, 하나의 데이터 세트(예: 한 명의 고객 정보).
  • 열(Column) / 필드(Field): 테이블의 한 칸, 속성을 나타냄(예: 이름, 나이, 주소).

  • 기본 키(Primary Key, PK): 각 행을 고유하게 구별하는 값(예: 주민등록번호, 학생 ID).
  • 외래 키(Foreign Key, FK): 다른 테이블의 기본 키를 참조하는 값, 테이블 간 관계를 만듦.

  • 쿼리(Query): 데이터를 검색하거나 수정하는 명령(예: "고객 목록 보여줘").

 

 

Query(쿼리)란 무엇인가?

해당 게시글은 Querydsl에 관하여 공부하다가 정리하는 글들 중 하나이며, Querydsl에 관한 게시글 카테고리 및 다음 글 - Querydsl 을 사용하는 이유 에 관하여 에 관심 있으시다면 링크를 연결시켜두

turtle-codingstudy.tistory.com

  • 인덱스(Index): 데이터를 빠르게 검색할 수 있도록 돕는 도구.
 

[Database] 인덱스(index)란?

1. 인덱스(Index)란? [ 인덱스(index)란? ] 인덱스란 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조이다. 만약 우리가 책에서 원하는 내

mangkyu.tistory.com

 

2. 데이터 모델링, SQL 등 데이터베이스를 다루기 위한 기초 지식

1) 데이터 모델링 (Data Modeling)

데이터 모델링은 데이터를 어떻게 구조화할지 설계하는 과정입니다. 쉽게 말해, 데이터를 정리하는 설계도를 만드는 것입니다.

🔹 주요 개념

  • 개체(Entity): 저장할 대상 (예: 학생, 강의, 주문)
  • 속성(Attribute): 개체가 가진 정보 (예: 학생의 이름, 학번, 전공)
  • 관계(Relationship): 개체 간의 연결 (예: 학생과 강의는 "수강" 관계)

🔹 데이터 모델링의 단계

  • 개념적 모델링: 어떤 데이터를 저장할지 큰 그림을 그림 (ERD 사용)
  • 논리적 모델링: 테이블로 변환할 수 있도록 상세 설계
  • 물리적 모델링: 실제 데이터베이스에서 구현

 

2) SQL (Structured Query Language)

SQL은 데이터베이스에서 데이터를 저장, 조회, 수정, 삭제하는 데 사용하는 언어입니다. 아래 내용은 SQL의 기본 문법입니다. 프로그램 개발시 SQL 문을 사용하여 데이터를 조회하고 추가 하고, 삭제 할수 있습니다.

📌 데이터 조회 (SELECT)

SELECT 이름, 나이 FROM 학생 WHERE 나이 > 20;

학생 테이블에서 이름과 나이를 가져오되, 나이가 20 초과인 경우만 출력

📌 데이터 추가 (INSERT)

INSERT INTO 학생 (이름, 나이, 전공) VALUES ('김철수', 22, '컴퓨터공학');

학생 테이블에 김철수(22세, 컴퓨터공학 전공) 추가

📌  데이터 수정 (UPDATE)

UPDATE 학생 SET 전공 = '데이터과학' WHERE 이름 = '김철수';

김철수의 전공을 데이터과학으로 변경

📌  데이터 삭제 (DELETE)

DELETE FROM 학생 WHERE 이름 = '김철수';

김철수 데이터를 삭제

📌  데이터  만들기 (CREATE TABLE)

CREATE TABLE 학생 (
    학번 INT PRIMARY KEY,
    이름 VARCHAR(50),
    나이 INT,
    전공 VARCHAR(50)
);

학생 테이블 생성 (학번은 기본 키)

  📌  데이터  만들기 (CREATE TABLE)

CREATE TABLE 수강 (
    수강번호 INT PRIMARY KEY,
    학번 INT,
    과목명 VARCHAR(50),
    FOREIGN KEY (학번) REFERENCES 학생(학번)
);

수강 테이블에서 학생(학번)과 연결

 

3) 정규화 (Normalization)

정규화는 중복 데이터를 줄이고 데이터 일관성을 유지하는 과정입니다.

1NF: 같은 칸에 여러 값 X (예: 전화번호 여러 개를 한 칸에 넣으면 안 됨)
2NF: 기본 키에 종속되지 않은 속성 제거
3NF: 기본 키가 아닌 속성끼리 종속 관계 제거

 

4)인덱스 (Index)와 성능 최적화

  • 인덱스: 데이터를 빠르게 찾기 위한 방법 (책의 목차 같은 역할)
  • JOIN: 여러 테이블을 합쳐서 데이터 조회 (INNER JOIN, LEFT JOIN 등)
  • 트랜잭션(Transaction): 데이터 변경 작업을 묶어서 처리 (예: 계좌 이체)

 

3. 실습 환경 구축

  • 데이터베이스를 학습하기 위한 환경을 구축합니다.
  • MySQL, Oracle 등의 DBMS를 설치하고, 데이터베이스를 생성하고 관리하는 방법을 익힙니다.

4.  SQL 학습 및 실습

  • SQL(Structured Query Language)을 학습하여 데이터베이스에서 데이터를 조작하는 방법을 익힙니다.
  • SELECT, INSERT, UPDATE, DELETE 등의 SQL 명령어를 익히고, 이를 활용하여 데이터를 검색, 삽입, 수정, 삭제하는 등의 실습을 합니다.

5. 데이터베이스 설계 및 구현

  • 데이터베이스를 설계하고 구현하는 방법을 학습합니다.
  • ERD(Entity-Relationship Diagram)를 작성하여 데이터의 구조를 파악하고, 이를 바탕으로 테이블을 생성하고 관계를 설정합니다.

6. 데이터베이스 관리

  • 데이터베이스를 관리하는 방법을 학습합니다.
  • 백업, 복구, 보안 등의 데이터베이스 관리에 필요한 기술을 습득합니다.
     

7. 프로젝트 수행

  • 실제로 데이터베이스를 활용한 프로젝트를 수행하여 실무 경험을 쌓습니다