본문 바로가기
  • 1+1=3
독서/개발관련

[데이터베이스 첫걸음] 5,6장: DBMS구조, 뷰

by 여스 2021. 12. 31.
반응형

5장: DBMS를 조작할 때 필요한 기본지식

관계형 데이터베이스 계층

데이터를 사용한다는 것은 DBMS에 저장된 테이블을 sql을 사용해서 조작하는 것. 그러므로 DBMS구조를 아는것도 중요하다.
데이터베이스 내부의 테이블은 몇개의 그룹으로 나뉘어서 관리된다. 마치 폴더처럼.이 폴더르 디비에선 바로 '스키마'라고 한다.

스키마

'틀' 이란 의미이다. 테이블은 몇개싀 스키마 속에 저장되는 형식임. 사용자가 자유롭게 스키마 만들어서 용도별로 나눌 수 있다.
스키마 상위에는 또 하나의 계층으로 '데이터베이스'가 있다. 근데 사실 데이터베이스는 '데이터를 관리하는 기능의 집합체'가 원래 정의이지만, '계층'을 표시하는 의미도 갖고 있음. (혼동 소지 있다..)

인스턴스

데이터베이스보다 한층 더 위에 있는 '인스턴스'. 물리적으로 DBMS가 동작할 때의 단위임. 그래서 OS입장엣는 '프로세스'라고도 부름.(서버 프로세스 또는 걍 서버라고도 함). 아래사진에서처럼 오라클이 돌아가는 게 프로세스 하나 말하는 거임.

1개의 인스턴스에는 복수의 데이터베이스 존재할 수 있고, 1개의 데이터베이스 아래엔 복수의 스키마 존재할 수 있고, 1개의 스키마 아래에는 복수의 테이블 존재할 수 있는 트리구조 이다.
"인스턴스 - 데이터베이스 - 스키마 - 테이블"

그러나, 현실에서는 스키마와 데이터베이스 계층이 생략되기도 함(mysql이 그럼)

 

MySQL과 Oracle의 계층구조

mysql은 데이터베이스와 스키마를 동일한 것으로 간주(여기서 데이터베이스는 스키마의 상위계층을 말하는 것이다). 따라서 mysql에서 "데이터베이스 == 스키마"임.
즉 mysql은 "인스턴스 - 스키마 - 테이블" 구조이다.

근데 오라클은 또 "인스턴스-데이터베이스-스키마-테이블" 구조이긴 한데, 데이터베이스가 딱 한개만 만들 수 있다는 제약이 있어서 사실상 3계층처럼 보기도 함.

원래는 ANSI에서 정한 표준 규정이란 게 있다는데 거기선 4계층이 맞다고는 함.


6장: SQL 기본

기본적인 crud랑 조인은 패스~

뷰는 sql시점에서 보면 테이블과 동일하지만 테이블과 같은 데이터는 가지고 있지 않으며, 테이블에 대한 select를 가지고 있음.

  • 뷰를 사용할 때의 이점
  1. 복잡한 select문을 일일이 매번 기술할 필요가 없다
  2. 필요한 열과 행만 사용자게에 보여줄 수 있고, 갱신시에도 뷰 정의에 따른 갱신으로 한정할 수있다.
  3. 위 장점을 데이터 저장없이(기억장치의 용량을 사용하지 않고) 실현할 수 있다. 뷰를 제거해도 참조하는 테이블은 영향받지 않음!

구문은 다음처럼 씀.
CREATE VIEW 뷰 (열1, 열2, 열3....) AS SELECT문

반응형

댓글