[혼공S] 1주차_CH1&2

StatBao·2025년 1월 11일
0

혼공S

목록 보기
1/6

Ch1. 데이터베이스와 SQL

1.1 데이터 베이스 알아보기

  • 데이터베이스(스키마) : 데이터의 집합, 테이블이 저장되는 저장소.
  • SQL(Structured Query Language) : DBMS에 데이터를 구축, 관리하고 활용하기 위해 사용되는 언어. 대소문자 구분 안함. 맨 뒤에는 주로 세미콜론(;)필요.
  • DBMS(Database Management System) : 데이터베이스를 관리하고 운영하는 소프트웨어, 여러명의 사용자나 응용프로그램과 공유하고 동시에 접근 가능.
    ex) MySQL, 오라클, Maria DB, SQL 서버 등
    ※주의) 엑셀은 동시 접근이 불가하므로 DBMS라고 볼 수 없음!!

▶ DBMS의 종류
1) 계층형 DBMS
각 계층이 트리형태를 갖는 구조
단점 : 변경이 까다롭고 최근에는 잘 사용 안함.

2) 망형 DBMS
계층형 DBMS의 단점을 보완하기 위해 하위 구성원끼리 연결된 유연한 구조
단점 : 프로그래머가 모든 구조를 이해해야 프로그램 작성 가능하고 최근에는 잘 사용 안함.

3) 관계형 DBMS(RDBMS) ★
테이블이라는 최소 단위로 구성됨.
ex)

아이디이름연락처주소
chicken유재석01010101010서울시
maratang박명수02020202020경기도

아이디, 이름, 연락처, 주소 → 열이름
(chicken, 유재석, 01010101010, 서울시) → 행, 하나의 데이터 역할

1.2 MySQL 설치하기

  • MySQL워크벤치 : MySQL 서버에 접속해서 사용하도록 해주는 도구

    설치홈페이지 주소 : https://dev.mysql.com/downloads/installer/
    책에 있는 그대로를 따라하면 위와같이 데이터베이스 목록을 불러오는데 성공! 👍

Ch2. 실전용 SQL 미리 맛보기

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

  • 데이터베이스 모델링 : 테이블의 구조를 미리 설계하는 것.
    ex)

    상황(슈퍼)데이터베이스 모델링테이블
    진열된 물건물품 테이블
    고객회원 테이블
    직원직원 테이블
    고객의 구매행위구매 테이블
  • 소프트웨어 : 프로그래밍 언어를 통해 만들어진 결과물.

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

  • 소프트웨어 개발 절차 중 하나로 폭포수 모델(waterfall model)이 있음.

  • 폭포수모델
    1) 프로젝트 계획
    2) 업무 분석 : 물건이 어디서 들어오는지, 물건을 어떻게 계산하는지, 재고 관리가 어떻게 되는지 등 파악
    3) 시스템 설계 : 컴퓨터에 알맞은 형태로 다듬는 과정
    4) 프로그램 구현 : 시스템 설계의 결과를 실제 프로그래밍 언어로 코딩
    5) 테스트 : 코딩된 프로그램에 오류가 없는지 확인
    6) 유지보수 : 실제 운영하며 문제점 보완
    장점 : 각 단계가 구분되어 프로젝트의 진행단계가 명확
    단점 : 거슬러 올라가기가 어려움..

  • 데이터베이스 구성요소
    ✔️ 열이름 : 각 테이블 내에서 서로 다르게 영문으로 설정.
    ✔️ 기본키(Primary Key, PK) : 각 행을 구분하는 유일한 열. 중복안됨. 빈칸 안됨.(Non Null), 테이블마다 기본키는 1개이고 일반적으로 1개의 열에 지정.
    ex) 회원 아이디, 주민등록번호

2.2 데이터베이스 시작부터 끝까지

  • 데이터베이스 구축 절차

1) DBMS 설치하기
→ MySQL을 설치함.

2) 'shop_db'라는 데이터베이스 만들기

CREATE SCHEMA shop_db ;


3) 테이블 만들기
(1) 테이블 설계 : 열이름과 데이터 형식(문자, 숫자, 날짜) 지정
(2) 테이블 생성

CREATE TABLE 'shop_db', 'member'(
'member_id' CHAR(8) NOT NULL,
'member_name' CHAR(5) NOT NULL,
'member_addr' CHAR(20) NULL,
PRIMARY KEY('member_id'));

4) 데이터 입력하기

데이터 입력시 수정할때는 UPDATE문을, 삭제할때는 DELETE문을 사용.

5) 데이터 활용하기
(1) 회원 테이블의 모든 행 조회

SELECT * FROM member;

(2) 회원 테이블 중에 이름과 주소만 출력

SELECT member_name, member_addr FROM member;

💡(3) WHERE을 이용한 아이유 회원에 대한 정보만 추출

SELECT * FROM member WHERE member_name = '아이유';

2.3 데이터베이스 개체

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

→ member 테이블의 member_name 열에 인덱스 구성 (6장에서 자세히..)

CREATE INDEX idx_member_name ON member(member_name);

  • 뷰 : 테이블의 일부를 제한적으로 표현할 때 주로 사용. 실제 데이터를 가지고 있진 않고, 진짜 테이블에 링크된 개념.
    장점 : 보안에 도움. / 긴 SQL문을 간략하게 만들 수 있음.

→ 회원 테이블과 연결되는 member_view 만들기

CREATE VIEW member_view
AS SELECT * FROM member;

→ member _view에 접근

SELECT * FROM member_view;

출력은 원래 member테이블과 같지만 실제 데이터가 이 뷰에 있는 것은 아님!

  • 스토어드 프로시저 : 여러 SQL문을 하나로 묶어서 편리하게 사용가능, c나 자바, 파이썬처럼 연산식이나 반복문, 조건문을 사용가능.
    → 두 SQL을 따로 실행

    SELECT FROM member WHERE member_name = '나훈아';
    SELECT
    FROM product WHERE product_name = '삼각김밥';

→ 두 SQL을 하나의 스토어드 프로시저로 만들어 실행

DELIMITER //
CREATE PROCEDURE myProc()
BEGIN
SELECT FROM member_view WHERE member_name = '나훈아';
SELECT
FROM product WHERE product_name = '삼각김밥';
END //
DELIMITER;

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

CALL myProc();


✔️ 데이터베이스 개체 생성 : CREATE 개체종류 개체이름;
✔️ 데이터베이스 개체 삭제 : DROP 개체종류 개체이름;
마찬가지로,
✔️ 스토어드 프로시저 생성 : CREATE PROCEDURE myproc()
✔️ 스토어드 프로시저 삭제 : DROP PROCEDURE myproc
또는 생성, 삭제할 데이터베이스 개체에서 마우스 오른쪽 버튼을 클릭하고 Create으로는 생성을, Drop으로는 삭제 가능.

profile
통계를 판다

0개의 댓글

관련 채용 정보