[혼공S] 1주차 Chap 01~02. [혼공학습단 13기]

YOUNG·2025년 1월 9일
0
[혼공학습단 13기] 활동의 일환으로 한빛미디어의 < 혼자 공부하는 SQL >을 읽고 요약 정리한 글입니다.

Chap 01. 데이터베이스와 SQL

1. 데이터베이스 알아보기

데이터베이스 : 데이터의 집합

데이터베이스와 DBMS

DBMS : 데이터베이스를 관리하고 운영하는 소프트웨어. Database Management System.
다양한 데이터가 저장되어 있는 데이터베이스는 여러 명의 사용자나 응용 프로그램과 공유하고 동시에 접근이 가능해야 한다.

데이터베이스를 사용하기 위해서는 DBMS를 설치해야 하며 대표적으로 MySQL, 오라클, SQL 서버, MariaDB 등이 있다.

DBMS의 발전 과정

  • 종이에 펜으로 기록
  • 컴퓨터에 파일로 저장
  • DBMS의 대두와 보급 : 파일의 단점을 보완하면서 대량의 데이터 효율적으로 관리하고 운영하기 위해
    DBMS에 데이터를 구축, 관리하고 활용하기 위해서 사용되는 언어를 SQL이라고 한다.

DBMS의 분류

  • 계층형 DBMS : 트리 형태. 처음 구성을 완료한 후에 이를 변경하기가 상당히 까다로움.
  • 망형 DBMS : 계층형 DBMS 개선. 하위에 있는 구성원끼리도 연결된 유연한 구조. 프로그래머가 모든 구조를 이해해야만 프로그램 작성 가능.
  • 관계형 DBMS : RDBMS. 테이블이라는 최소 단위로 구성되며 이는 하나 이상의 으로 이루어짐. 대부분의 DBMS가 여기에 해당.

DBMS에서 사용되는 언어 : SQL

SQL은 관계형 데이터베이스에서 사용되는 언어. 일반적인 프로그래밍 언어와는 조금 다른 특성을 가짐.

국제표준화기구에서 SQL에 대한 표준을 정해서 발표(표준 SQL)


2. MySQL 설치하기

MySQL은 교육용 혹은 개인에게는 무료로 제공됨.
(MariaDB는 영리 목적, 무료로 사용할 수 있다.)

이 파트에서는 책을 참고하여 MySQL을 설치 및 정상작동 확인하면 된다.

MySQL 다운로드

MySQL 서버 : 엔진 기능을 하는 핵심 소프트웨어
MySQL 워크벤치 : MySQL 서버에 접속/연결하기 위한 클라이언트 도구
root : MySQL의 관리자 이름. 가장 높은 권한의 사용자.


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

1. 건물을 짓기 위한 설계도 : 데이터베이스 모델링

데이터베이스 모델링 : 테이블의 구조를 미리 설계하는 개념. 대표적으로 폭포수 모델.
이 단계를 거쳐 테이블 구조 결정

프로젝트 진행 단계

프로젝트 : 대규모 소프트웨어를 작성하기 위한 전체 과정

폭포수 모델 : 각 단계가 폭포 떨어지듯 진행
1️⃣프로젝트 계획
2️⃣업무 분석
3️⃣시스템 설계
4️⃣프로그램 구현
5️⃣테스트
6️⃣유지보수

✅각 단계가 구분되어 프로젝트의 진행 단계가 명확하다는 장점
❗다시 앞 단계로 돌아가기가 어렵다는 단점

데이터베이스 모델링

데이터베이스 모델링은 현실 세계에서 사용되는 사물, 작업들을 DBMS의 테이블로 변경하기 위한 작업이라고 할 수 있다.

전체 데이터이스 구성도

  • 데이터 : 하나하나의 단편적인 정보
  • 테이블 : 데이터를 입력하기 위해 표 형태로 표현한 것
  • 데이터베이스 : 텡이블이 저장되는 장소
  • DBMS : 데이터베이스 관리 시스템
  • : 테이블의 세로. 테이블은 여러 개의 열로 구성됨
  • 열 이름 : 각 열을 구분하기 위한 이름
  • 데이터 형식 : 열에 저장될 데이터의 형식
  • : 테이블의 가로. 실질적인 진짜 데이터
  • 기본 키 : 각 행을 구분하는 유일한 열
  • SQL : 사람과 DBMS가 소통하기 위한 언어

2. 데이터베이스 시작부터 끝까지

✅데이터베이스 구축 절차
데이터베이스 만들기➡️테이블 만들기➡️데이터 입력/수정/삭제하기➡️데이터 조회/활용하기

데이터베이스 만들기


[Create Schema] 선택 후 [Name]을 설정하여 데이터베이스를 만든다.

테이블 만들기

테이블 설계하기

테이블 설계는 테이블의 열 이름데이터 형식을 지정하는 것이다.

  • CHAR, INT, DATE 등의 예약어 사용
  • 널(Null)은 빈 것을 의미하며, 널 허용 안함(NN)은 반드시 입력해야 한다는 의미이다.

테이블 생성하기


[Create Table] 선택 후 설계한 테이블을 바탕으로 [Table Name], [Column Name], [Datatype] 등을 입력하여 테이블을 생성한다.

테이블 입력하기


[Select Rows - Limit 1000] 선택 후 NULL부분에 원하는 데이터를 입력한다.

데이터 활용하기

SQL에서는 데이터베이스를 활용하기 위해 주로 SELECT 문을 사용한다.
SELECT 문의 기본 형태는 SELECT 열_이름 FROM 테이블_이름 [WHERE 조건]이다.
*는 모든 열을 의미한다.

[기본 숙제]

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


3. 데이터베이스 개체

데이터베이스에는 테이블 외에도 인덱스, , 스토어드 프로시저, 트리거, 함수, 커서 등의 개체가 있다.

인덱스

인덱스는 책 뒤의 '찾아보기'와 비슷한 개념으로 데이터를 빠르게 찾을 수 있도록 도와주며, CREATE 문을 통해 인덱스를 생성한다.

는 가상의 테이블을 의미하며 '바로가기'와 비슷한 개념, 뷰 또한 CREATE 문을 통해 생성한다.
✅뷰의 장점

  • 보안에 도움
  • 긴 SQL 문을 간략하게

스토어드 프로시저

스토어드 프로시저는 MySQL에서 제공하는 프로그래밍 기능으로, 여러 개의 SQL문을 하나로 묶어서 편리하게 사용할 수 있다. 스토어드 프로시저 역시 CREATE 문을 통해 생성한다.

✅CREATE 문을 통해 생성한 개체를 삭제하기 위해서는 DROP 문을 사용한다.

[추가 숙제]

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


profile
개발 연습생

0개의 댓글

관련 채용 정보