한화시스템 BEYOND SW캠프 - 4일차

Seung min·2025년 7월 18일

수업 내용

데이터베이스의 특징 및 종류와 MariaDB를 SQL 쿼리문으로 사용하는 법을 배웠다.

데이터베이스란?

information으로 추출하기 좋게 data를 정리해놓은 것
한 조직에 필요한 정보를 구조적으로 통합 / 저장해 놓은 것

  • 운영 데이터: 조직의 목적을 위해 사용되는 데이터
  • 공용 데이터: 공공으로 사용되는 데이터
  • 통합 데이터: 중복을 최소화하여 중복으로 인한 데이터 불일치 현상 제거
  • 저장 데이터: 컴퓨터 저장 장치에 저장된 데이터

Database 특징

  1. 실시간 접근성: 사용자가 데이터를 요청하면 실시간으로 결과를 서비스한다.
  2. 계속적인 변화: 데이터 값은 시간에 따라 항상 바뀐다.
  3. 동시 공유: 데이터베이스는 서로 다른 업무 또는 여러 사용자에게 동시 공유된다.
  4. 내용에 따른 참조: 데이터베이스에 저장 된 데이터는 데이터의 물리적 위치가 아니라 데이터 값에 따라 참조된다.

DBMS란?

데이터베이스에서 데이터를 추출, 조작, 정의, 제어할 수 있게 해주는 데이터베이스용 프로그램이다.

  • 데이터 추출 기능(DQL): 사용자가 조회하는 데이터 혹은 응용 프로그램의 데이터를 추출.
  • 데이터 조작(DML): 데이터를 조작하는 소프트웨어가 요청하는 데이터의 삽입, 수정, 삭제 작업을 지원.(CUD 기능을 말함, R 제외)
  • 데이터 정의: 데이터의 구조를 정의하고 데이터 구조에 대한 삭제 및 변경 기능을 수행
  • 데이터 제어: 데이터가 소실됐는데 복구 불가능하거나 데이터끼리 매치가 되지 않는 등의 문제가 생길시, 백업 및 회복, 동시성 제어 등의 기능을 지원.

DBMS 장점

  1. 데이터 중복 최소화: 데이터와 응용 프로그램을 분리시킴, 상호 영향 정도를 줄임.
  2. 쿼리 언어: SQL과 같은 쿼리 언어를 제공하겨 복잡한 검색과 분석 작업을 손쉽게 수행
  3. 데이터 무결성: 다양한 제약 조건과 규칙을 설정할 수 있다.
  4. 데이터 백업 및 복구: 백업과 복구를 지원하며 시스템 장애나 데이터 손상 시에도 데이터를 복원할 수 있다.
  5. 표준화: 표준화된 방법을 통해 데이터를 관리한다, 데이터의 구조와 접근 방법이 일괄적이다. 애플리케이션 개발 및 유지보수가 용이하다.

MariaDB란?

MariaDB는 오픈 소스 관계형 데이터베이스로 MySQL의 포크로 시작되어 MySQL과 API(Application Programming Interface) 및 ABI(Application Binary Interface) 호환성을 유지하면서도 독자적인 기능과 개선사항을 추가해 나가고 있다.

MariaDB 특징

  1. MySQL과의 호환성: MariaDB는 MySQL과의 높은 호환성을 유지한다.
  2. 오픈 소스: 누구나 자유롭게 사용, 수정, 배포할 수 있다
  3. 다양한 스토리지 엔진 지원: Aria, InnoDB, MyRocks, TokuDB등 다양한 스토리지 엔진을 지원하여, 사용자의 요구 사항에 맞게 데이터 저장 방식을 선택할 수 있다.
  4. 활발한 커뮤니티 및 개발: 활발한 커뮤니티와 지속적인 개발로 새로운 기능과 보안 패치를 꾸준히 제공한다.
  5. 개선된 성능: 쿼리 최적화, 새로운 인덱스 및 스토리지 엔진, 병렬 복제 등 MySQl 대비 성능을 향상시킨 여러 기능을 제공한다.

SELECT

특정 테이블에서 원하는 데이터를 조회해서 가져오는데 사용된다.

ORDER BY

select문과 함께 사용하며 결과 집합을 특정 열이나 열들의 값에 따라 정렬하는데 사용한다.

WHERE

특정 조건에 맞는 레코드만을 선택하는데 사용되며 다양한 방법으로 조건을 설정하는데 사용된다.

DISTINCT

중복된 값을 제거하는데 사용된다. 컬럼에 있는 컬럼값들의 종류를 쉽게 파악할 수 있다.

LIMIT

SELECT문의 결과 집합에서 반환할 행의 수를 제한하는데 사용된다.

SELECT
select_list
FROM
table_name
LIMIT [offset,] row_count;

offset: 시작할 행의 번호(인덱스 체계: 0이 첫번쨰)
row_count: 이후 행부터 반환 받을 행의 개수

새롭게 배운 점

데이터베이스의 특징과 DBMS가 무엇인지, MariaDB를 사용하는 법을 배울 수 있었다. 학교에서는 MySQL만 다루어서 MariaDB는 처음 사용해보았다.
하지만, MySQL과 특징과 사용법이 흡사해서 사용하는데 큰 어려움은 없었다. 한동안 SQL 쿼리문을 사용하지 않았었는데, 오랜만에 select문과 order by, where문을 다시 사용해보니 조금 어색한 감이 있었다. 주말동안 복습이 필요하다고 생각하였다.

부족한 점

오랫동안 사용하지 않아서 잊고 있던 SQL 쿼리문을 다시 복습해야 겠다고 생각했다. 아직까지는 강의에서 쉬운 문법만 배워가지고 어찌저찌 따라갈 수 있었지만, 어려운 문법이 나오면 분명 벽을 느낄 것이라 생각되었다. join문법 등 어려운 문법에 대한 예습, 복습을 할 계획이다.

앞으로의 계획 혹은 다짐

PCCE 시험까지 남은 시간이 얼마 안남았다. 지금까지 시험 연습으로 나에게 너무 쉬운 문제만 계속 푼 것은 아닌가라는 생각이 들었다. 어려운 문제도 조금씩 도전해야겠다. 그리고 현재 나의 최대 약점이라고 생각되는 Git을 틈틈히 연습할 계획이다. 또한 잊고 있던 SQL 쿼리문을 다시 숙달시키기위한 예습, 복습을 할 생각이다.

profile
Seung min의 개발 공부 노트

0개의 댓글