데이터베이스 Database, DB : 데이터의 집합
DBMS Database Management System : 데이터베이스를 관리하고 운영하는 시스템
ex) 은행 예금 계좌 데이터베이스
MySQL, 오라클 Oracle, SQL 서버Server, MariaDB 등
종이에 펜으로 기록 → 컴퓨터에 파일로 저장 → DBMS의 대두와 보급
SQL Structured Query Language : DBMS에 데이터를 구축, 관리하고 활용하기 위해 사용되는 언어
계층형 DBMS Hierarchical DBMS
망형 DBMS Network DBMS
관계형 DBMS Relational DBMS - RDBMS
SQL Structured Query Language : 관계형 데이터베이스에서 사용되는 언어
MySQL 서버 : 데이터베이스 엔진을 운영하는 가장 중요한 프로그램
MySQL 워크벤치 : MySQL 서버에 접속하기 위한 프로그램
데이터베이스 모델링 database modeling : 테이블의 구조를 미리 설계하는 개념
폭포수 모델 waterfall model
⇒ 테이블 구조 결정
프로젝트project : 현실 세계에서 일어나는 업무를 컴퓨터 시스템으로 옮겨놓는 과정. 대규모 소프트웨어software를 작성하기 위한 전체 과정
1 프로젝트 계획 --> 2 업무 분석 --> 3 시스템 설계 --> 4 프로그램 구현 --> 5 테스트 --> 6 유지보수
장점
단점
데이터베이스 모델링 database modeling : 우리가 살고 있는 세상에서 사용되는 사물이나 작업을 DBMS의 데이터베이스 개체로 옮기기 위한 과정
ex)
테이블에는 열이 여러 개 있지만 기본 키는 1개만 지정해야 하며, 일반적으로 1개의 열에 지정
데이터베이스 구축 절차
데이터베이스 만들기 → 테이블 만들기 → 데이터 입력/수정/삭제하기 → 데이터 조회/활용하기
테이블의 열 이름과 데이터 형식 지정
회원 테이블
제품 테이블
회원 데이터 입력
제품 데이터 입력
SELECT의 기본 형식
SELECT 열_이름 FROM 테이블_이름 [WHERE 조건]
*
: 모든 열을 의미
기본 숙제(필수)
추가 숙제(선택)
인덱스 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에서 프로그래밍이 가능하도록 해줌
스토어드 프로시저stored procedure : MySQL에서 제공하는 프로그래밍 기능으로, 여러 개의 SQL 문을 하나로 묶어서 편리하게 사용 가능
DELIMITER // ~ DELIMITER ; : 구분 문자. 스토어드 프로시저를 묶어주는 약속
CALL 문 : 스토어드 프로시저 호출
CREATE 개체_종류 개체_이름 ~~ : 데이터베이스 개체 생성
DROP 개체_종류 개체_이름 : 데이터베이스 개체 삭제
지난 12기 활동에선 자바로 참여했었는데 처음 참여하는 스터디라 계속 밀리기도 하고 어설프게 끝난게 너무 아쉬웠다. 그래서 이번에 다시 참여할 땐 제대로 학습할 겸 SQL 공부와 SQLD 시험 공부를 병행하려고 혼공S로 참여하게 되었다.
원래 학습 내용 정리는 노션이 편해서 노션에 정리하는데 벨로그도 시작해볼겸 다른 사람들과 공유하는데에는 벨로그가 더 나을 것 같아서 시작하게되었다. 벨로그는 makedown 언어로 작성해야 해서 기록할 때는 처음 이용하는 방법이라 조금 낫설지만 재밌기도 하고 html 용어도 어느 정도 알고있어서 금방 익숙해질 수 있을 것 같다.
이번주 학습내용에서는 SQL이 무엇인지, MySQL 설치하기, 데이터베이스 모델링이 무엇인지와 간단한 실습을 진행했다.
이미 전공 과목인 데이터베이스를 배우고 다시 공부하니 금방 이해하고 끝낼 수 있었다. 또 데이터베이스 모델링에 대한 내용을 학습할 때 소프트웨어 공학에서 배웠던 폭포수 모델이 나와서 반갑기도하고 다시 복습할 수 있었다.