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

PostgreSQL 실습노트 02 데이터베이스와 스키마 만들기 흐름을 보여주는 표지 이미지

실습 목표 현재 위치!

실습은 모두 5개다. 이번 글은 “1번, 카페 주문 및 메뉴 관리” 다.

  1. 카페 주문 및 메뉴 관리
    고객, 메뉴, 주문, 주문상세 관리
  2. 도서 대여 관리
    회원, 도서, 대여, 반납 관리
  3. 반려동물 병원 예약 관리
    보호자, 반려동물, 수의사, 예약 관리
  4. 헬스장 회원·수업 예약 관리
    회원, 강사, 수업, 예약 관리
  5. 스터디 모임 및 참여자 관리
    회원, 스터디 그룹, 모임, 참여 신청 관리

목차

  1. CRUD가 무엇인지 이해하기
  2. PostgreSQL과 DBeaver 역할 이해하기
  3. 실습용 Database 만들기
  4. 현재 Database 확인하기
  5. cafe Schema 만들기
  6. Schema 생성 여부 확인하기
  7. public으로 보이는 이유 이해하기
  8. 다음 글: 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 설치 – 실행 – 비밀번호 설정 단계 ( 잊으면 복구 불가) 주의!!

PostgreSQL : 데이터 창고는 설치 완료한 상태로 두고,
DBeaver : 사용해서 관리를 시작 해보자.

이 둘의 관계에 대해서

TV로 예를 들면
PostgreSQL = TV본체
DBeaver = 리모컨
SQL = 리모컨 버튼

DBeaver라는 리모컨의 동작 버튼( SQL )을 만드는 작업인 것이다!

TV PostgreSQL 버튼 만들어 놓고 누르면 안됌?

리모컨DBeaver를 안 쓰면 TV 못 보는 것도 아닌데 굳이 리모컨이 있어야 하나?
TV에 버튼 만들어 놓고 누르면 되니까 리모컨 없어도 된다!
TV에 버튼을 만들 때 아주 불편 할 뿐이지.

어떻게 불편할까?
채널 변경 버튼을 TV자체 PostgreSQL에 만들 수 있다. 하지만 만들려고 버튼 자리 뚫어서 만들고, 버튼 모양도 맞게 만들고, 그 안에 들어가는 어쩌구 저쩌구.. 걍 불편하단다.

간단하게 작업할 때 편의성이 DBeaver를 사용하는 것이 효율적이고 편하단다.
PostgreSQL 설치하면 pgAdmin 이라는 기본 프로그램이나, 영화에서 해커들이 쓰는 까맣고 아무것도 없는 터미널 창(psql)에서 작업을 해야 된단다.

이전에 만들었던 초안을 보고 작업을 시작해보자.

카페 주문 및 메뉴 관리 실습의 ERD 초안 다이어그램

3. DBeaver에서 새 데이터베이스 만들기

우선 작업 할 데이터 베이스를 만든다.

  • Datebases에서 오른쪽 마우스 클릭
  • Create >>> Database 선택 생성
  • 데이터 베이스 이름 설정
DBeaver 새 데이터베이스 이름 입력 창

시작 전 확인해야 할 것!

  • 미세하게 진한 데이터 베이스가 작업 가능한 데이터 베이스라는 뜻
  • cafe_practice > 우클릭 > Set as default 눌러서 세팅하기!
DBeaver에서 cafe_practice 데이터베이스를 기본 작업 대상으로 설정하는 화면
DBeaver에서 새 SQL 편집기를 여는 메뉴 화면

새 SQL 편집기 만들기

  • 진짜 이제 정말 시작하기 위해 작업창을 만드는 것!
  • 새 SQL 편집기를 열어보자!
DBeaver 새 SQL 편집기 생성 화면
  • 이제 드디어 진짜 시작이다.
DBeaver SQL 편집기에서 cafe_practice 데이터베이스가 선택된 상태

실제로 작업해야 할 데이터 베이스를 보고 있는지 확인!

SELECT current_database();
부분의미
SELECT값을 조회해서 보여달라는 명령
current_database현재 데이터베이스 이름을 알려주는 기능
()기능을 실행하라는 표시
;SQL 문장이 끝났다는 표시
SELECT current_database() 실행 결과로 현재 데이터베이스 이름을 확인하는 화면

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

DBeaver 하단 상태 표시줄에서 cafe_practice 데이터베이스 위치를 보여주는 화면

4. ERD를 기준으로 Schemas 만들기

이번 비유는 카페를 짓는 것에 비유를 하겠다.
PostgreSQL 이라는 아파트, 상가 등을 지을 수 있는 부지/단지가 있고,
그 안에 DataBase 라는 카페를 지을 부지를 선택했다.
이제 카페 내부 구역을 나누는 것에 해당하는 Schemas 를 만들고,
그 안에 배치 될 메뉴 목록, 고객 목록, 주문 시스템 등에 해당하는 Table 을 만드는 작업을 한다.

Schema 만들기 명령어

---SQL

CREATE SCHEMA cafe;
부분의미
CREATE새로 만든다
SCHEMA스키마를 만든다
cafe스키마 이름
DBeaver SQL 편집기에 CREATE SCHEMA cafe 명령을 입력한 화면
DBeaver SQL 편집기 상단의 실행 버튼과 Ctrl+Enter 단축키 안내 화면

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

CREATE SCHEMA 실행 후 DBeaver 결과 패널에 실행 정보가 표시된 화면
항목의미
Updated Rows변경된 데이터 행 수
Execute timeSQL 실행에 걸린 시간
Start time실행 시작 시간
Finish time실행 완료 시간
Query (데이터 베이스에 보낸 질문/ 명령문)실행한 SQL 문장

Cafe 스키마 생성 확인하기.

/

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

아래에 schema_name 으로 cafe 가 보인다면 성공이다.

데이터 베이스를 만들었을 때 처럼 스키마 위치를 확인하자.

“보여줘. 지금 작업 기준 스키마 알려줘” 라고 명령을 해야 되겠지요?

SELECT current_database(); 데이터베이스 확인 할 때 명령어 였지요?
어떤 것만 바뀌면 되지요?▼
SELECT current_schema();

SELECT current_schema()를 실행해 현재 스키마를 확인하는 DBeaver 화면

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

SELECT current_schema() 결과로 public 스키마가 표시된 DBeaver 화면
왜 그런지 이유가 알고 싶다면 보고 지나가자.

CREATE SCHEMA cafe; 는
는 cafe 스키마를 만드는 명령어다.

하지만 만든다고 해서
자동으로 작업 위치가 cafe로 바뀌지는 않는다.

그래서 current_schema()를 실행하면
아직 public으로 나올 수 있다.

이건 실패가 아니다.

cafe 스키마는 만들어져 있지만,
현재 기본 작업 위치가 아직 public인 것이다.

▼ 왼쪽 DB네이게이터를 보면
▼ cafe_practice > schemas > public 만 있는 것으로 보인다.

DBeaver DB Navigator에서 cafe_practice의 Schemas 아래 public만 보이는 화면

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

cafe_practice 데이터베이스 우클릭 메뉴에서 새로고침을 선택하는 화면

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

DBeaver에서 cafe 스키마를 Set as default로 설정하는 메뉴 화면
cafe 스키마를 기본 작업 스키마로 설정한 DBeaver 화면

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

SELECT current_schema() 실행 결과로 cafe 스키마를 확인하는 화면
스키마 생성 완료. 글의 마무리 이미지.

To be continued..

Next.

TABLE 생성 그리고 데이터 입력

다음 글에서는 cafe 스키마 안에 실제 테이블을 만들고,
샘플 데이터를 입력해본다.

PostgreSQL 초보자 실습 03: 테이블 생성과 INSERT 데이터 입력