[혼공S_1주]chapter02 실전용SQL 미리맛보기

study_record·2024년 7월 6일
0

혼공S

목록 보기
2/9

데이터베이스 모델링

  • 데이터베이스 모델링이 잘되여야 프로젝트를 잘 진행할수 있음
  • 프로젝트 : 현실세계에서 일어나는 업무를 컴퓨터 시스템으로 옮겨 놓는 과정 / 대규모 소프트웨어를 작성하기 위한 전체과정
  • 폭포수 모델 : 소프트웨어 공학에서 가장 기본적으로 언급되는 소포트웨어 개발중 하나
    • 1단계 프로젝트 계획
    • 2단계 업무분석 (업무에 대해서 정리함)
    • 3단계 시스템설계 (컴퓨에 적용시키기 위해서 다듬는 과정)
    • 4단계 프로그램 구현 (프로그래밍 언어로 코딩하는 과정)
    • 5단계 테스트 (오류 확인 과정)
    • 6단계 유지보수 (문제점보완, 기능추가)
    • 장점 - 프로젝트 진행단계가 명확함
    • 단점 - 단계를 거슬러 가기 어려움
  • 데이터베이스 모델링
    • 현실세계 작업을 DBMS의 데이터베이스 개체(테이블)로 옮기는 과정
    • 사람, 행동 → 테이블 개체로 변환
  • 데이터베이스 구성도
    • 데이터 : 단편적인 정보
    • 테이블 : 표 형태로 표현한것
    • 데이터베이스 : 테이블이 저장 되는 저장소
    • DBMS : 데이터베이스 관리 시스템 또는 소프트웨어
    • 열=컬럼=필드 : 테이블의 세로
    • 열이름: 열을 구분하는 이름
    • 데이터 형식 : 열에 저장될 데이터 형식 / 테이블 생성시 지정함
    • 행 : 실질적인 데이터 / 행의 개수 = 데이터 개수
    • 기본키 : 각 생을 구분하는 유일한 열 / 중복없음/ 값이 비어있지 않음/ 기본키는 1개만 지정 해야함
    • SQL : DBMS와 소통하는 언어

데이터 베이스 모델링 툴 실습

데이터베이스 구축

  • 데이터베이스 구축 절차
    • 데이터베이스 만들기 → 테이블 만들기 → 데이터입력/수정/삭제하기 → 데이터조회/활용하기
  1. 데이터베이스 만들기

    • 스키마 = 데이터베이스
    • 스키마 패널에서 만들기
    • "CREATE DATABASE" 써도 만들수 있음
    • 실습
  2. 테이블 만들기

    • 테이블 설계 : 열이름과 데이터 형식을 지정하는 것
    • CHAR : 문자를 의미
    • 널 허용 안함(Not Null, NN) : 반드시 입력이 필요함
    • 열이름을 영문으로 정할때는 띄어쓰기 금지
    • 띄어쓰기 대신에 (_)를 이용한다
    • member테이블

    • product 테이블


  3. 테이터 입력/수정/삭제 하기

    • 데이터 입력(SQL문 INSERT INTO)

    • 기본키로 설정한열 기준으로 오름차순을 자동정렬 됨

    • 데이터 추가 입력

    • 데이터 수정(SQL문 UPDATE)

    • 데이터 삭제(SQL문 DELETE)

  4. 데이터 활용하기

    • SELECT : 데이터베이스 활용에 가장 많이 사용함
      SELECT 열이름 FROM 테이블이름 [WHRER 조건]
      SELECT * FROM member

      SELECT member_name, member_addr FROM member;

      ✨ 기본숙제 ✨
      SELECT * FROM member WHERE member_name="아이유"

데이터베이스 개체

  • 데이터베이스의 개체 : 테이블, 인덱스. 뷰, 스토어드 프로시저, 트리거, 함수등이 있음

데이터베이스 개채 3개 설명하기 ✨추가 숙제✨

인덱스스토어드 프로시저
책의 찾아보기와 비슷함바로가기 아이콘과 비슷한 기능MySQL의 프로그래밍 기능
데이터를 빠르게 찾을수 있음SELECT문여러개의 SQL을 묶어줌
데이터가 많을때 유용힘보안에 도움된다조건문, 반복문 사용할수 있음
6장5장7장

인덱스

  • 데이터가 많을때 시간을 단축시키는 효과가 있음
  • 책의 찾아보기와 비슷한 개념
  • 인덱스 생성여부에 따라서 결과가 달라지지 않음

    CREATE INDEX idx_member_name ON member(member_name); "ON member(member_name)"는 member테이블의 member_name 열에 인덱스를 지정하라 / 결과는 보이지 않음
    인덱스가 생겼음

  • 가상 테이블
  • 실제 데이터를 가지고 있지 않고 진짜 테이블에 링크된 개념
  • 뷰의 실제 = SELECT 문
  • 보안에 도움이 되고 긴 SQL문을 간단하게 만들수 있음

    CREATE VIEW member_view AS SELECT FROM member;
    SELECT
    FROM member_view;

스토어드 프로시저

  • MySQL에서 프로그래밍 기능을 사용할수 있게 하는 것
  • 여러개의 SQL문을 하나로 묶어서 사용함
  • 기본적인 형태로만 코딩이 가능

    SELECT FROM member WHERE member_name='나훈아';
    SELECT
    FROM product WHERE product_name='삼각김밥'; 결과가 따로 2개 생성됨

  • 프로지저 한개로 만들기

    DELIMITER // <구분문자>
    CREATE PROCEDURE myProc()
    BEGIN
    SELECT FROM member WHERE member_name='나훈아';
    SELECT
    FROM product WHERE product_name='삼각김밥';
    END //
    DELIMITER ; <구분문자>
    CALL myProc(); <스토어드 프로시저 호출>

📚확인문제

P.65 확인문제
1번
1) 현실의 세게를 컴퓨터 시스템으로 옯겨놓는 일련의 과정
정답 : 프로젝트
2) 소프트웨어 개발 절차중 하나로 폭포가 떨어지듯 각 단계가 진행됨
정답 : 폭포수 모델
3) 소프트웨어를 완성하는 절차를 연구하는 분야를 통틀어 부르는 말
정답 : 소프트웨어 공학

2번 폭포수 모델 나열하기
정답 : 프로젝트 계획 → 업무분석 → 시스템 설계 →프로그램 구현 → 테스트 → 유지보수

3번
세상의 작업이나 사물을 DBMS로 옯기는 과정은 무엇인가?
정답 : 데이터베이스 모델링

4번
1) 회원이나 제품을 데이터를 입력하기 위해 표형태로 표현한것
정답 : 태이블
2) 데이터베이스를 관리하는 시스템 또는 소프트웨어
정답 : DBMS
3) 실질적인 진짜 데이터, 데이터의 가로
정답 : 행
4) 사람과 DBMS가 소통하기 위한 말
정답 : SQL

P.85
1번 데이터베이스 구축절차 나열하기
정답 : 데이터베이스 만들기 → 테이블 만들기 → 데이터 입력하기 → 데이터 조회하기

2번 빈칸에 들어갈 내용은? (4)번
데이터베이스는 테이블을 저장하는 공간으로 ( ) 라고도 부릅니다
1) 테이블 2) 열이름 3) 데이터형식 4) 스키마 5) 기본키

3번
1) 데이터를 수정할때 이용
정답 : UPDATE
2) 데이터를 조회할때 사용
정답 : SELECT
3) 테이블이나 데이터베이스를 만들때 이용
정답 : CREATE
4) 데이터를 삭제할때 사용
정답 : DELETE

4번
1) 데이터형식중 소수점이 없는 정수형
정답 : INT
2) 빈있는 값을 허용하지 않음
정답 : NOT NULL
3) 데이터형식중 문자형
정답 : CHAR
4) 데이터형식중 날짜형
정답 : DATE

5번

SELECT * FROM 테이블이름 WHERE 열이름 = '값'

정답(1)번 특정값 조회

P.99
1번 데이터베이스 개체가 아닌것은?
정답 : 열이름, 데이터형식, 기본키

2번 인덱스 설명이 아닌것은? 정답: (2)(3)번
1) 인덱스 책 뒤의 찾아보기와 비슷하다
2) 데이터 건수가 적어도 인덱스 효과를 체감할수 있다
3) 인덱스 테이블을 생성하면 자동으로 생성됨
4) 인덱스를 생성하는 SQL은 CREATE INDEX 이다

3번 뷰에대한 설명이 아닌것은? 정답 : (2)번
1) 가상의 테이블이라고 함
2) 생성하면 검색 속도가 향상된다
3) 윈도우즈의 바로가기 아이콘과 개념이 비슷하다
4) 뷰를 만든후에 테이블과 동일하게 사용하면 된다

4번 스토어드 프로시저에대한 설명이 아닌것은? 정답 (4)(5)번
1) 프로그래밍 기능을 제공한다
2) 여러개의 SQL을 하나로 묶으수 있다
3) 스토어드 프로시저를 만들때는 DELIMITER로 묶어준다
4) 스토어드 프로시저는 SELECT 문으로 호출한다
5) 스토어드 프로시저는 DELETE 문으로 삭제한다

0개의 댓글