[T-MySQL] Part1_Ch03 MySQL 전체 운영 실습

밤초록·2021년 8월 20일
0

이것이 MySQL이다

목록 보기
2/3

요구사항 분석과 시스템 설계 그리고 모델링

정보시스템 구축 절차 요약

분석 : '무엇을' 할 것인지 결정, 사용자의 인터뷰와 업무 조사 등
설계 : '구축하고자 하는 시스템을 '어떻게' 할 것인지 결정
구현 :
시험 :
유지보수 :


데이터베이스 모델링과 필수 용어

데이터베이스 모델링 - 현실세계에서 사용되는 데이터를 MySQL에 어떻게 옮겨 놓을 것인지 결정하는 과정
ex) 판매할 제품 - 이름, 가격, 제조일자, 제조회사 등


데이터 하나하나의 단편적인 정보, 정보는 있으나 아직 체계화되지 못한 상태
테이블 표 형태
데이터베이스(DB) 테이블이 저장되는 저장소
DBMS 데이터베이스를 관리하는 시스템 또는 소프트웨어, MySQL

열=칼럼=필드 아이디, 회원 이름, 주소 등
데이터 형식 열의 데이터 형식
행=로우=레코드 실질적인 데이터

기본 키 열 각 행을 구분하는 유일한 열 - 중복, null 안 됨.
각 테이블은 오직 하나의 기본키를 가질 수 있음
외래키 필드 두 테이블의 관계를 맺어주는 키

SQL SQL은 사람과 DBMS가 소통하기위한 말(언어)



MySQL을 이용한 데이터베이스 구축 절차

데이터베이스 생성 - 테이블 생성 - 데이터 입력 - 데이터 조회/활용

데이터베이스 생성

  • 데이터베이스 먼저 선택하는 습관 가지기

  • sql 실행 방법 :
    Ctrl + Shift + Enter
    툴바 클릭 - Execute the selected portion~~
    [Query] >> [Execute (All or Selection)]

  • 주석 처리 : 하이픈 연속 2개 '--' 뒤에 공백 하나 있어야 함



테이블 외의 데이터베이스 개체의 활용

인덱스, 스토어드 프로시저, 트리거, 함수, 커서 등

인덱스

  • 실무에서 인덱스 없이 전체 데이터를 찾으면 시간이 오래 걸림

  • 데이터베이스 튜닝 - 데이터베이스 성능을 향상시키거나 응답하는 시간을 단축시키는 것
    쿼리에 대한 응답을 줄이기 위해서 가장 집중적으로 보는 부분 중 하나가 '인덱스'

  • 인덱스는 테이블의 열 단위에 생성

  • 열을 기본 키로 설정하면 자동으로 인덱스 생성됨


  • 가상의 테이블, 실제 행 데이터를 가지고 있지 않음, 진짜 테이블에 링크된 것

스토어드 프로시저

  • 여러 개의 SQL문을 하나로 묶어서 편리하게 사용하는 기능

  • DELIMITER - 구분 문자
    뒤에 //가 나오면 기존의 세미콜론을 //로 대신한다는 의미
    CREATE PROCEDURE ~~ END 까지 하나의 단락으로 묶어줌

  • 실행 : CALL 스토어드 프로시저 이름()
    삭제 : DROP PROCEDURE 스토어드 프로시저 이름

DELIMITER //
CREATE PROCEDURE myProc()
BEGIN
	SELECT * FROM memberTBL WHERE memberName='당탕이' ;
	SELECT * FROM productTBL WHERE productName='냉장괴' ;
END //
DELIMITER ;

CALL myProc() ;

트리거

  • 테이블에 부착되어서 테이블에 INSERT나 UPDATE 또는 DELETE 작업이 발생되면 실행되는 코드
    ex) 탈퇴한 회원의 정보 저장
DELIMITER //
CREATE TRIGGER trg_deletedMemberTBL
    AFTER DELETE
    ON memberTBL
    FOR EACH ROW
BEGIN
	INSERT INTO deletedMemberTBL VALUES (OLD.memberID, 
    		OLD.memberName, OLD.memberAddress, CURDATE());
END //


데이터베이스 백업 및 관리

백업과 복원

  • 백업 : 현재의 데이터베이스를 다른 매체에 보관하는 작업
    복원 : 데이터베이스에 문제가 발생했을 때 다른 매체에 백업된 데이터를 이용해서 원상태로 돌려놓는 작업

0개의 댓글