본문 바로가기
SQL

[혼공S] 1주차_SQL 개념 및 맛보기

by 바이오인포하는 tansansoo 2025. 1. 10.

썸네일. 네이버나눔스퀘어 폰트 사용

혼공학습단 13기는 SQL을 공부하고자 한다. 교재와 커리큘럼은 다음과 같다.

혼자공부하는 SQL 교재
혼공SQL 커리큘럼


Ch 01. 데이터베이스와 SQL

📌이 챕터는 본격적인 SQL 공부에 앞서, 데이터베이스와 SQL의 개념을 알려주는 챕터다.

 

데이터베이스와 DBMS의 개념 파악하기

  • 데이터베이스(Database): 데이터들이 한 곳에 모여서 만들어진 데이터의 집합
  • DBMS(Database Management System): 데이터베이스를 관리하고 운영하는 소프트웨어로, 사용자 여러명이서 동시접속이 가능해야 하고 데이터를 활용하는 응용프로그램과 공유 및 접근이 가능해야 함
  • 대표적인 DBMS: MySQL, Oracle, SQL server, MariaDB 등
    • 국제표준화기구에서 지정하는 표준 SQL을 준수하지만 각 제품의 특성을 반영한 SQL 사용중
    • 교육용 or 개인 목적 👉 MySQL
    • 회사용 or 영리 목적 👉 MariaDB
  • DBMS의 분류: 계층형(Hierarchical), 망형(Network), 관계형(Relational), 객체지향형(Object-Oriented), 객체관계형(Object-Relational) 등
  • 오늘날 대부분의 DBMS는 관계형 DBMS(RDBMS) 형태로 사용하고 있으며 최소 단위는 테이블
  • SQL(Structured Query Language) 언어: DBMS에 데이터를 구축 및 관리, 활용하기 위해 사용되는 언어

 

Ch 02. 실전용 SQL 미리 맛보기

📌이 챕터는 본격적인 SQL 문법 공부에 앞서 전반적인 데이터베이스 구축 절차를 이해하고 데이터베이스 모델링, 데이터베이스 개체에 대해 학습하는 챕터다.

 

데이터베이스 구축 절차

  • 데이터베이스 만들기 > 테이블 만들기 > 데이터 입력/수정/삭제하기 > 데이터 조회/활용하기

데이터베이스 모델링

  • 프로젝트(Project): 현실 세계에서 일어나는 일을 컴퓨터 시스템으로 옮겨놓는 과정
  • 폭포수 모델(waterfall model): 가장 기본적인 소프트웨어 개발 절차, 폭포가 떨어지듯 단계 진행
    • 장점: 각 단계가 구분되어 프로젝트 진행 단계가 명확함
    • 단점: 문제가 발생하면 이전 단계로 돌아가기 어려움
    • 폭포수 모델로 표현한 개발 과정: 프로젝트 계획 > 업무 분석 > 시스템 설계 > 프로그램 구현 > 테스트 > 유지보수
  • 데이터베이스 모델링(database modeling): 현실 세계에서 사용되는 사물이나 작업을 DBMS의 데이터베이스 개체(테이블)로 옮기기 위한 과정

데이터베이스 개체

  • 인덱스(Index): 결과를 빠르게 얻게 해주는 데이터베이스 개체
    • 인덱스 생성: CREATE INDEX idx_member_name ON member(member_name);
    • 인덱스 실행: SELECT * FROM member WHERE member_name = ‘아이유’;
    • 인덱스 검색(Index Scan): [Execution Plan] 탭에서 Key Lookup (인덱스를 통해 결과를 찾음)
  • 뷰(View): 가상의 테이블로, 테이블과 상당히 동일한 성격의 데이터베이스 개체
    • 뷰 생성: CREATE VIEW member_view AS SELECT * FROM member;
    • 뷰 접근: SELECT * FROM member_view;
    • 테이블 대신 뷰를 사용하는 이유
      • 보안 이슈
      • 긴 SQL 문을 간략화
    • 스토어드 프로시저(Stored Procedure): 여러 개의 SQL 문을 하나로 묶어서 사용하게 해주는 데이터베이스 개체로,  프로그래밍 언어의 연산식, 조건문, 반복문 등을 사용 가능
      • 스토어드 프로시저의 구성
        • 첫 행과 마지막 행: DELIMITER // ~ DELIMITER;
        • 중간 행: BEGIN ~ END // 문 사이에 SQL 문 넣기
      • 만든 스토어드 프로시저 호출: CALL 문 실행
      • 스토어드 프로시저 삭제: DROP PROCEDURE 이름();

 

1주차 기본 숙제

p.80의 shop_db의 회원 테이블(member)에서 아이유 회원에 대한 정보만 추출한 후 결과 화면 인증하기

숙제 인증

 

1주차 추가 숙제

데이터베이스 개체 3가지 설명하기

 

데이터베이스 개체에는 인덱스(Index), 뷰(View), 스토어드 프로시저(Stored Procedure)가 있다.

인덱스는 데이터를 빠르게 찾을 수 있도록 도와주는 데이터베이스 개체다. 뷰는 가상의 테이블로 테이블과 상당히 동일한 성격을 지닌 데이터베이스 개체고 보안에 도움이 되고 긴 SQL문을 간략화할 수 있다는 장점을 가진다. 

스토어드 프로시저는 MySQL에서 제공하는 프로그래밍 기능으로, 여러 개의 SQL 문을 하나의 SQL 문으로 묶어서 사용 가능하며 파이썬 등의 프로그래밍 언어에서 사용하는 조건문, 연산식, 반복문을 사용 가능하다.

 

1주차 학습 끝!

'SQL' 카테고리의 다른 글

[혼공S] 3주차_SQL 고급 문법  (0) 2025.01.26
[혼공S] 2주차_SQL 기본 문법  (0) 2025.01.19