이전 DB초보자 PostgreSQL 실습노트 01_요구사항 분석부터
ERD까지 에서 완성한 ERD초안
[ DB초보자 PostgreSQL 실습노트 01_요구사항 분석부터 ERD까지 ]
을 가지고 CRUD를 이해하고
Datebase와 Schema 까지 만들어본다.

실습 목표 현재 위치!
실습은 모두 5개다. 이번 글은 “1번, 카페 주문 및 메뉴 관리” 다.
- 카페 주문 및 메뉴 관리
고객, 메뉴, 주문, 주문상세 관리 - 도서 대여 관리
회원, 도서, 대여, 반납 관리 - 반려동물 병원 예약 관리
보호자, 반려동물, 수의사, 예약 관리 - 헬스장 회원·수업 예약 관리
회원, 강사, 수업, 예약 관리 - 스터디 모임 및 참여자 관리
회원, 스터디 그룹, 모임, 참여 신청 관리
목차
- CRUD가 무엇인지 이해하기
- PostgreSQL과 DBeaver 역할 이해하기
- 실습용 Database 만들기
- 현재 Database 확인하기
cafeSchema 만들기- Schema 생성 여부 확인하기
public으로 보이는 이유 이해하기- 다음 글: Table 생성과 데이터 입력
1. CRUD가 뭐야?
… … ???
ERD는 이제 뭔지 알았어. 그러면..
CRUD란??
C ( Create ) : 생성 : INSERT
R ( Read ) : 읽기 : SELECT
U ( Update ) : 수정 : UPDATE
D ( Delete ) : 삭제 : DELETE
1. 컴퓨터 프로그램이 데이터를 다루는 4가지 기본 동작
2. 우리가 인터넷을 쓸 때 하는 행동의 전부
배달 앱 CRUD
C ( Create ) : 추가 : INSERT : 먹고 싶은 음식을 장바구니 추가
R ( Read ) : 보기 : SELECT : 장바구니에 담긴 것을 확인 하는 것
U ( Update ) : 수량 변경,메뉴 추가 : UPDATE : 음식 수량을 변경하거나, 옵션 추가
D ( Delete ) : 취소 : DELETE : 힝! 안 먹을랭!! 하는거
인스타그램 CRUD
C ( Create ) : 추가 : INSERT : 오늘의 갬성글, 사진 업로드
R ( Read ) : 보기 : SELECT : 인스타 무한스크롤 구경
U ( Update ) : 수량 변경,메뉴 추가 : UPDATE : 글이나 사진 수정
D ( Delete ) : 취소 : DELETE : 아.. 악플 너무 많.. 삭제!
정리하면,
사장님이 메뉴를 등록 CREATE, 손님이 메뉴를 보고 READ, 사장님이 메뉴나 가격을 수정 UPDATE, 품절 메뉴나 시즌 메뉴를 삭제 DELETE 하는 것을 만드는 것!
2. CRUD 실습 전에 작업 공간 준비하기
사용 할 프로그램 ▼
PostgreSQL: 데이터 저장 창고
설치 url : https://www.postgresql.org/download/DBeaver: 관리 프로그램
설치 url : https://dbeaver.io/download/
PostgreSQL 설치 – 실행 – 비밀번호 설정 단계 ( 잊으면 복구 불가) 주의!!
PostgreSQL : 데이터 창고는 설치 완료한 상태로 두고,
DBeaver : 사용해서 관리를 시작 해보자.
이 둘의 관계에 대해서
TV로 예를 들면
PostgreSQL = TV본체
DBeaver = 리모컨
SQL = 리모컨 버튼DBeaver라는 리모컨의 동작 버튼( SQL )을 만드는 작업인 것이다!
TV PostgreSQL 버튼 만들어 놓고 누르면 안됌?
리모컨DBeaver를 안 쓰면 TV 못 보는 것도 아닌데 굳이 리모컨이 있어야 하나?
TV에 버튼 만들어 놓고 누르면 되니까 리모컨 없어도 된다!
TV에 버튼을 만들 때 아주 불편 할 뿐이지.
어떻게 불편할까?
채널 변경 버튼을 TV자체 PostgreSQL에 만들 수 있다. 하지만 만들려고 버튼 자리 뚫어서 만들고, 버튼 모양도 맞게 만들고, 그 안에 들어가는 어쩌구 저쩌구.. 걍 불편하단다.
간단하게 작업할 때 편의성이 DBeaver를 사용하는 것이 효율적이고 편하단다.PostgreSQL 설치하면 pgAdmin 이라는 기본 프로그램이나, 영화에서 해커들이 쓰는 까맣고 아무것도 없는 터미널 창(psql)에서 작업을 해야 된단다.
이전에 만들었던 초안을 보고 작업을 시작해보자.

3. DBeaver에서 새 데이터베이스 만들기
우선 작업 할 데이터 베이스를 만든다.
- Datebases에서 오른쪽 마우스 클릭
- Create >>> Database 선택 생성


- 데이터 베이스 이름 설정

시작 전 확인해야 할 것!
- 미세하게 진한 데이터 베이스가 작업 가능한 데이터 베이스라는 뜻
- cafe_practice > 우클릭 > Set as default 눌러서 세팅하기!


새 SQL 편집기 만들기
- 진짜 이제 정말 시작하기 위해 작업창을 만드는 것!
- 새 SQL 편집기를 열어보자!

- 이제 드디어 진짜 시작이다.

실제로 작업해야 할 데이터 베이스를 보고 있는지 확인!
SELECT current_database();
| 부분 | 의미 |
|---|---|
SELECT | 값을 조회해서 보여달라는 명령 |
current_database | 현재 데이터베이스 이름을 알려주는 기능 |
() | 기능을 실행하라는 표시 |
; | SQL 문장이 끝났다는 표시 |

하단에 이렇게 표시되면, 새로 만든 데이터 베이스인
cafe_practice에 위치하고 있다는 뜻

4. ERD를 기준으로 Schemas 만들기
이번 비유는 카페를 짓는 것에 비유를 하겠다.PostgreSQL 이라는 아파트, 상가 등을 지을 수 있는 부지/단지가 있고,
그 안에 DataBase 라는 카페를 지을 부지를 선택했다.
이제 카페 내부 구역을 나누는 것에 해당하는 Schemas 를 만들고,
그 안에 배치 될 메뉴 목록, 고객 목록, 주문 시스템 등에 해당하는 Table 을 만드는 작업을 한다.
Schema 만들기 명령어
---SQL
CREATE SCHEMA cafe;
| 부분 | 의미 |
|---|---|
CREATE | 새로 만든다 |
SCHEMA | 스키마를 만든다 |
cafe | 스키마 이름 |


입력하고 Script창 왼쪽 상단의 ▶ (Ctrl + Enter) : 선택 되어 있는 줄을 실행

| 항목 | 의미 |
|---|---|
| Updated Rows | 변경된 데이터 행 수 |
| Execute time | SQL 실행에 걸린 시간 |
| Start time | 실행 시작 시간 |
| Finish time | 실행 완료 시간 |
| Query (데이터 베이스에 보낸 질문/ 명령문) | 실행한 SQL 문장 |
Cafe스키마 생성 확인하기.
/
그림으로 보는 스키마 SQL 문장 읽는 법

SELECT schema_name
FROM information_schema.schemata
WHERE schema_name = 'cafe';

| SQL 부분 | 종류 | 뜻 | 쉬운 설명 |
|---|---|---|---|
SELECT | SQL 키워드 | 조회 | 어떤 값을 보여줄지 정한다 |
schema_name | 컬럼명 | 스키마 이름 | 조회할 항목이다 |
FROM | SQL 키워드 | 출처 지정 | 어디에서 조회할지 정한다 |
information_schema.schemata | 시스템 카탈로그 뷰 | 스키마 목록 | DB가 가진 스키마 정보를 보여주는 시스템 뷰다 |
WHERE | SQL 키워드 | 조건 지정 | 원하는 데이터만 걸러낸다 |
schema_name = 'cafe' | 조건식 | cafe만 찾기 | 스키마 이름이 cafe인 행만 찾는다 |
'cafe' | 문자열 값 | cafe라는 글자 | 사용자가 찾고 싶은 스키마 이름이다 |
; | 문장 종료 기호 | SQL 종료 | SQL 문장이 끝났다는 표시다 |

아래에 schema_name 으로 cafe 가 보인다면 성공이다.
데이터 베이스를 만들었을 때 처럼 스키마 위치를 확인하자.
“보여줘. 지금 작업 기준 스키마 알려줘” 라고 명령을 해야 되겠지요?
SELECT current_database(); 데이터베이스 확인 할 때 명령어 였지요?
어떤 것만 바뀌면 되지요?▼
SELECT current_schema();

▼응???? 실행 했더니 public 으로 나왔다?

왜 그런지 이유가 알고 싶다면 보고 지나가자.
CREATE SCHEMA cafe; 는
는 cafe 스키마를 만드는 명령어다.
하지만 만든다고 해서
자동으로 작업 위치가 cafe로 바뀌지는 않는다.
그래서 current_schema()를 실행하면
아직 public으로 나올 수 있다.
이건 실패가 아니다.
cafe 스키마는 만들어져 있지만,
현재 기본 작업 위치가 아직 public인 것이다.
▼ 왼쪽 DB네이게이터를 보면
▼ cafe_practice > schemas > public 만 있는 것으로 보인다.

스키마를 새로 생성했는데 보이지 않을 때는 cafe_practice 오른쪽 마우스 클릭!
새로고침 해주면 화면에 보이게 되고▼

▼데이터 베이스 때와 마찬가지로 기본 작업 스키마를 Set as default 해준다!


그리고 다시 SELECT current_schema(); 실행 해보면


To be continued..
Next.
TABLE 생성 그리고 데이터 입력
다음 글에서는 cafe 스키마 안에 실제 테이블을 만들고,
샘플 데이터를 입력해본다.