[혼공학습단 13기] 활동의 일환으로 한빛미디어의 < 혼자 공부하는 SQL >을 읽고 요약 정리한 글입니다.
데이터베이스
: 데이터의 집합
DBMS
: 데이터베이스를 관리하고 운영하는 소프트웨어. Database Management System.
다양한 데이터가 저장되어 있는 데이터베이스는 여러 명의 사용자나 응용 프로그램과 공유하고 동시에 접근이 가능해야 한다.
데이터베이스를 사용하기 위해서는 DBMS를 설치해야 하며 대표적으로 MySQL, 오라클, SQL 서버, MariaDB 등이 있다.
SQL
이라고 한다.계층형 DBMS
: 트리 형태. 처음 구성을 완료한 후에 이를 변경하기가 상당히 까다로움.망형 DBMS
: 계층형 DBMS 개선. 하위에 있는 구성원끼리도 연결된 유연한 구조. 프로그래머가 모든 구조를 이해해야만 프로그램 작성 가능.관계형 DBMS
: RDBMS. 테이블
이라는 최소 단위로 구성되며 이는 하나 이상의 열
과 행
으로 이루어짐. 대부분의 DBMS가 여기에 해당.SQL
은 관계형 데이터베이스에서 사용되는 언어. 일반적인 프로그래밍 언어와는 조금 다른 특성을 가짐.
국제표준화기구에서 SQL에 대한 표준을 정해서 발표(표준 SQL
)
MySQL
은 교육용 혹은 개인에게는 무료로 제공됨.
(MariaDB
는 영리 목적, 무료로 사용할 수 있다.)
이 파트에서는 책을 참고하여 MySQL을 설치 및 정상작동 확인하면 된다.
MySQL 서버
: 엔진 기능을 하는 핵심 소프트웨어
MySQL 워크벤치
: MySQL 서버에 접속/연결하기 위한 클라이언트 도구
root
: MySQL의 관리자 이름. 가장 높은 권한의 사용자.
데이터베이스 모델링
: 테이블의 구조를 미리 설계하는 개념. 대표적으로 폭포수 모델
.
이 단계를 거쳐 테이블 구조
결정
프로젝트
: 대규모 소프트웨어
를 작성하기 위한 전체 과정
폭포수 모델
: 각 단계가 폭포 떨어지듯 진행
1️⃣프로젝트 계획
2️⃣업무 분석
3️⃣시스템 설계
4️⃣프로그램 구현
5️⃣테스트
6️⃣유지보수
✅각 단계가 구분되어 프로젝트의 진행 단계가 명확하다는 장점
❗다시 앞 단계로 돌아가기가 어렵다는 단점
데이터베이스 모델링
은 현실 세계에서 사용되는 사물, 작업들을 DBMS의 테이블
로 변경하기 위한 작업이라고 할 수 있다.
데이터
: 하나하나의 단편적인 정보테이블
: 데이터를 입력하기 위해 표 형태로 표현한 것데이터베이스
: 텡이블이 저장되는 장소DBMS
: 데이터베이스 관리 시스템열
: 테이블의 세로. 테이블은 여러 개의 열로 구성됨열 이름
: 각 열을 구분하기 위한 이름데이터 형식
: 열에 저장될 데이터의 형식행
: 테이블의 가로. 실질적인 진짜 데이터기본 키
: 각 행을 구분하는 유일한 열SQL
: 사람과 DBMS가 소통하기 위한 언어✅데이터베이스 구축 절차
데이터베이스 만들기➡️테이블 만들기➡️데이터 입력/수정/삭제하기➡️데이터 조회/활용하기
[Create Schema] 선택 후 [Name]을 설정하여 데이터베이스를 만든다.
테이블 설계는 테이블의 열 이름
과 데이터 형식
을 지정하는 것이다.
예약어
사용널(Null)
은 빈 것을 의미하며, 널 허용 안함(NN)
은 반드시 입력해야 한다는 의미이다.
[Create Table] 선택 후 설계한 테이블을 바탕으로 [Table Name], [Column Name], [Datatype] 등을 입력하여 테이블을 생성한다.
[Select Rows - Limit 1000] 선택 후 NULL부분에 원하는 데이터를 입력한다.
SQL에서는 데이터베이스를 활용하기 위해 주로 SELECT 문을 사용한다.
SELECT 문의 기본 형태는 SELECT 열_이름 FROM 테이블_이름 [WHERE 조건]
이다.
*
는 모든 열을 의미한다.
p. 80의 shop_db의 회원 테이블(member)에서 아이유 회원에 대한 정보만 추출한 후 결과 화면 인증하기
데이터베이스에는 테이블 외에도 인덱스
, 뷰
, 스토어드 프로시저
, 트리거, 함수, 커서 등의 개체가 있다.
인덱스
는 책 뒤의 '찾아보기'와 비슷한 개념으로 데이터를 빠르게 찾을 수 있도록 도와주며, CREATE 문을 통해 인덱스를 생성한다.
뷰
는 가상의 테이블을 의미하며 '바로가기'와 비슷한 개념, 뷰 또한 CREATE 문을 통해 생성한다.
✅뷰의 장점
스토어드 프로시저
는 MySQL에서 제공하는 프로그래밍 기능으로, 여러 개의 SQL문을 하나로 묶어서 편리하게 사용할 수 있다. 스토어드 프로시저 역시 CREATE 문을 통해 생성한다.
✅CREATE 문을 통해 생성한 개체를 삭제하기 위해서는 DROP 문을 사용한다.
데이터베이스 개체 3가지 설명하기