[혼공S] 1주차_SQL 기초부터 다시 가보자고

지니·2025년 1월 8일
0

혼공학습단

목록 보기
1/2

Chapter01 데이터베이스와 SQL

01-1 데이터베이스 알아보기

데이터베이스 Database, DB : 데이터의 집합

데이터베이스와 DBMS

DBMS의 정의

DBMS Database Management System : 데이터베이스를 관리하고 운영하는 시스템

ex) 은행 예금 계좌 데이터베이스

DBMS의 종류

MySQL, 오라클 Oracle, SQL 서버Server, MariaDB 등

DBMS의 발전 과정

종이에 펜으로 기록 → 컴퓨터에 파일로 저장 → DBMS의 대두와 보급

SQL Structured Query Language : DBMS에 데이터를 구축, 관리하고 활용하기 위해 사용되는 언어

DBMS의 분류

계층형 DBMS

계층형 DBMS Hierarchical DBMS

  • 각 계층은 트리tree의 형태를 가짐.
  • 처음 구성을 완료한 후 이를 변경하기 상당히 까다로움.
  • 다른 구성원을 찾아가는 것 비효율적.

망형 DBMS

망형 DBMS Network DBMS

  • 계층형 DBMS의 문제점을 개선하기 위해 등장
  • 하위에 있는 구성원끼리도 연결된 유연한 구조

관계형 DBMS

관계형 DBMS Relational DBMS - RDBMS

  • 테이블table이라는 최소단위로 구성
    • 하나 이상의 column과 now으로 이루어져 있음.

DBMS에서 사용되는 언어: SQL

SQL Structured Query Language : 관계형 데이터베이스에서 사용되는 언어

01-2 MySQL 설치하기

MySQL 서버 : 데이터베이스 엔진을 운영하는 가장 중요한 프로그램

MySQL 워크벤치 : MySQL 서버에 접속하기 위한 프로그램


Chapter02 실전용 SQL 미리 맛보기

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

데이터베이스 모델링 database modeling : 테이블의 구조를 미리 설계하는 개념

폭포수 모델 waterfall model

  • 데이터베이스 모델링은 폭포수 모델의 업무 분석과 시스템 설계 단계에 해당

테이블 구조 결정

프로젝트 진행 단계

프로젝트project : 현실 세계에서 일어나는 업무를 컴퓨터 시스템으로 옮겨놓는 과정. 대규모 소프트웨어software를 작성하기 위한 전체 과정

  1 프로젝트 계획 --> 2 업무 분석 --> 3 시스템 설계 --> 4 프로그램 구현 --> 5 테스트 --> 6 유지보수
  1. 프로젝트 계획 : 판매 계획 단계
  2. 업무 분석 : 업무가 어떻게 돌아가는지 파악
  3. 시스템 설계 : 업무 분석을 컴퓨터에 적용시키기 위해 알맞은 형태로 다듬는 과정
  4. 프로그램 구현 : 시스템 설계 결과를 실제 프로그래밍 언어로 코딩하는 단계
  5. 테스트 : 코딩된 프로그램에 오류가 없는지 확인하는 과정
  6. 유지보수 : 실제 운영을 통해 문제점을 보완하고 기능을 추가하는 과정

장점

  • 폭포수 모델은 각 단계가 구분되어 프로젝트의 진행 단계가 명확하다

단점

  • 문제가 발생할 경우 다시 앞 단계로 돌아가기 어렵다

데이터베이스 모델링

데이터베이스 모델링 database modeling : 우리가 살고 있는 세상에서 사용되는 사물이나 작업을 DBMS의 데이터베이스 개체로 옮기기 위한 과정

ex)

  • 신분증 - 이름, 주민등록번호, 주소 등
  • 인터넷 쇼핑몰 판매 제품 - 이름, 가격, 제조일자, 제조회사, 재고량 등

전체 데이터베이스 구성도

  • 데이터 data : 하나하나의 단편적인 정보
  • 테이블 table : 데이터를 입력하기 위해 표 형태로 표현한 것
  • 데이터베이스 Database, DB : 테이블이 저장되는 저장소. 각 데이터베이스는 이름이 서로 달라야 한다!
  • DBMS Database Management System : 데이터베이스 관리 시스템 of 소프트웨어
  • column : 테이블의 세로
  • 열 이름 : 각 열을 구분하기 위한 이름. 각 테이블 내에서는 서로 달라야 함.
  • 데이터 형식 : 열에 저장될 데이터의 형식
  • now : 실질적인 진짜 데이터, 행 데이터. 행의 개수 = 데이터의 개수
  • 기본 키 Primary Key, PK : 기본 키(주키) 열은 각 행을 구분하는 유일한 열을 말함. 중복X 비어 있음X

테이블에는 열이 여러 개 있지만 기본 키는 1개만 지정해야 하며, 일반적으로 1개의 열에 지정

  • SQL Structured Query Language : 구조화된 질의 언어. 사람과 DBMS가 소통하기 위한 언어.

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

데이터베이스 구축 절차

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

DBMS 설치하기

데이터베이스 만들기

테이블 만들기

테이블 설계하기

테이블의 열 이름데이터 형식 지정

테이블 생성하기

회원 테이블

제품 테이블

데이터 입력하기

회원 데이터 입력

제품 데이터 입력

  • 데이터 입력 : INSERT문
  • 수정 : UPDATE
  • 삭제 : DELETE

데이터 활용하기

SELECT의 기본 형식

SELECT 열_이름 FROM 테이블_이름 [WHERE 조건]

* : 모든 열을 의미
기본 숙제(필수)

02-3 데이터베이스 개체

추가 숙제(선택)

인덱스

인덱스 개념 이해하기

인덱스 index : 데이터를 조회할 때 결과가 나오는 속도를 획기적으로 빠르게 해줌. ‘찾아보기’

인덱스 실습하기

Full Table Scan - 전체 테이블 검색

ON member(member_name) - member 테이블의 member_name 열에 인덱스를 지정하라

CREATE INDEX idx_member_name ON member(member_name);

Non-Unique Key Lookup - Key Lookup은 인덱스를 통해 결과를 찾았다 → 인덱스 검색(Index Scan)

  • 인덱스 생성 여부에 따라 결과가 달라지는 것은 아님!

테이블의 일부를 제한적으로 표현할 때 주로 사용. 테이블과 상당히 동일한 성격의 데이터베이스 개체

뷰 개념 이해하기

View : 가상의 테이블. 실제 데이터를 가지고 있지 않으며, 진짜 테이블에 링크link된 개념

ex) 윈도우즈 운영 체제의 ‘바로 가기 아이콘’

뷰의 실체는 SELECT

뷰 실습하기

CREATE VIEW member_view
AS SLELCT * FROM member;

테이블을 사용하지 않고 뷰를 사용하는 이유

  • 보안에 도움이 된다.
  • 긴 SQL 문을 간략하게 만들 수 있다.

스토어드 프로시저

스토어드 프로시저 : SQL에서 프로그래밍이 가능하도록 해줌

스토어드 프로시저 개념 이해하기

스토어드 프로시저stored procedure : MySQL에서 제공하는 프로그래밍 기능으로, 여러 개의 SQL 문을 하나로 묶어서 편리하게 사용 가능

스토어드 프로시저 실습하기

DELIMITER // ~ DELIMITER ; : 구분 문자. 스토어드 프로시저를 묶어주는 약속

CALL 문 : 스토어드 프로시저 호출

CREATE 개체_종류 개체_이름 ~~ : 데이터베이스 개체 생성

DROP 개체_종류 개체_이름 : 데이터베이스 개체 삭제


1주차 회고

지난 12기 활동에선 자바로 참여했었는데 처음 참여하는 스터디라 계속 밀리기도 하고 어설프게 끝난게 너무 아쉬웠다. 그래서 이번에 다시 참여할 땐 제대로 학습할 겸 SQL 공부와 SQLD 시험 공부를 병행하려고 혼공S로 참여하게 되었다.

원래 학습 내용 정리는 노션이 편해서 노션에 정리하는데 벨로그도 시작해볼겸 다른 사람들과 공유하는데에는 벨로그가 더 나을 것 같아서 시작하게되었다. 벨로그는 makedown 언어로 작성해야 해서 기록할 때는 처음 이용하는 방법이라 조금 낫설지만 재밌기도 하고 html 용어도 어느 정도 알고있어서 금방 익숙해질 수 있을 것 같다.

이번주 학습내용에서는 SQL이 무엇인지, MySQL 설치하기, 데이터베이스 모델링이 무엇인지와 간단한 실습을 진행했다.
이미 전공 과목인 데이터베이스를 배우고 다시 공부하니 금방 이해하고 끝낼 수 있었다. 또 데이터베이스 모델링에 대한 내용을 학습할 때 소프트웨어 공학에서 배웠던 폭포수 모델이 나와서 반갑기도하고 다시 복습할 수 있었다.

0개의 댓글

관련 채용 정보