5장 #64
Replies: 4 comments
-
DBMS를 조작할 때 필요한 기본 지식커넥션 만들기
관계형 데이터베이스 계층
|
Beta Was this translation helpful? Give feedback.
-
1. 관련 용어[커넥션 ID]MySQL은 동시에 여러 개의 커넥션을 유지하는 것이 가능하기 때문에, 이를 관리하기 위해 붙인 번호 [세션]커넥션의 시작과 종료 사이에 여러분은 DBMS와 다양한 교환을 하게 되는데, 그 교환의 시작과 종료까지의 단위를 의미. 2. 관계형 DB의 계층[DB는 계층으로 나눠져 있다]DB 내부의 테이블을 한 개가 아닌 몇 개의 그룹으로 나뉘어서 관리되고 있다. PC에서 파일을 분류하기 위해 사용하는 폴더에 해당하는 것이 DB에도 있다고 생각하면 됨. [폴더에 해당하는 스키마]위에서 언급한 폴더가 바로 DB의 스키마. 스키마의 상위에는 DB가 있음. (DB에는 계층을 표시하는 의미도 있음) [최상위에 있는 인스턴스]DB보다 한 층 더 위엔 인스턴스라는 개념이 있음. 3. 계층 예시한 개의 인스턴스 아래에는 복수 개의 DB 가 존재할 수 있고 한 개의 DB 아래에는 복수의 스키마가 존재할 수 있으며, 한 개의 스키마 아래에는 복수 개의 테이블이 존재할 수 있음. 4. DBMS에 따른 계층 구조[MySQL과 Oracle의 계층 구조]MySQL은 DB와 스키마를 동일한 것으로 간주하여 계층 차이를 두지 않는다. Oracle은 4계층 구조를 갖지만, 인스턴스 아래에 DB를 한 개만 만들 수 있다는 독자적인 제약을 가지고 있다. |
Beta Was this translation helpful? Give feedback.
-
DBMS를 조작할 때 필요한 기본 지식MySql과 커넥션 만들기Mysql에 로그인이 성공했다는 의미는 사용자가 mysql dbms에 로그인해 조작할 수 있는 상태를 의미한다.
프롬프트가 표시된 것은 로그인 후 사용자와 mysql이 연결되었다는 뜻이며, 이를 “커넥션”이라 부른다 로그인이라는 행위는 mysql에게 전화를 거는 것과 같다. dbms가 로그인을 수락하면 커넥션이 유지되며, 이 기간동안 db와 무언가를 주고 받는다. 커넥션이 완료되면
커넥션이 생기고, 자원을 주고 받기 시작하면서 끝까지의 단위를 “세션”이라 한다. 커넥션이 확립된 후 세션이 만들어진다.
Sql과 관리 명령의 차이sql외에도 dbms는 다양한 명령어가 존재하는데, 이를 “관리 명령”이라 한다
관리 명령은 dbms가 정상적으로 동작하는지 확인하기 위해 사용된다. 중요한 점은 “관리 명령의 종류나 문법은 dbms에 따라 다르다”는 점이다. show status 명령어는 Oracle이나 sql server에서는 찾아볼 수 없다. “SQL과 관리명령을 구분하는” 중요한 점은 → SQL은 반드시 “SELECT, INSERT, DELETE, UPDATE” 중 하나의 단어로 시작한다는 것이다. 관계형 데이터베이스의 계층데이터베이스 내부의 테이블은, 몇 개의 그룹으로 나뉘어 관리된다. 여기서 그룹은 pc에서 사용하는 디렉토리 폴더와 같다. db에서 폴더에 해당하는 것을 “스키마”라고 한다. 테이블은 몇 개의 스키마 속에 저장된다. 스키마의 상위에는 “데이터베이스”계층이 존재한다. dbms와 다른 개념으로, “계층”을 표시하는 의미다. 데이터베이스의 상위에는 “인스턴스”라는 개념이 있으며, 물리적으로 dbms가 동작할 때의 단위다. os에서는 이를 “프로세스”라 부른다. dbms에서는 “서버 프로세스”, 혹은 “서버”라고 부른다. 따라서 인스턴스는 메모리와 cpu를 사용하며, 실제로 os에 존재하는 “실체”라는 의미다. 따라서 인스턴스(최상위) | | db1 db2 | | 스키마 1 스키마2 | | 테이블a 테이블 b dbms는 위와 같은 계층 구조를 가지고 있다 최하위 계층인 4계층에는 테이블도 존재하지만, 인덱스, 저장 프로시저 등 다양한 것들이 존재한다. 테이블, 인덱스, 저장 프로시저 등 데이터베이스에 보존된 것들을 총칭해 “오브젝트”라 한다. MySql은 데이터베이스와 스키마를 동일한 개념으로 간주해서 계층 차이를 두지 않는다. 따라서 데이터베이스와 스키마는 Mysql에서 동의어이다. 즉 Mysql은 아래처럼 3계층 구조라 할 수 있다 인스턴스(최상위) | | 스키마 1 스키마2 | | 테이블a 테이블 b Oracle은 4계층이지만, 인스턴스 하위의 데이터베이스를 한 개만 가질 수 있다는 제약이 있어 사실상 3계층과 비슷하다. 아래와 같은 형태이다. 인스턴스(최상위) | db | | 스키마 1 스키마2 | | 테이블a 테이블 b Oracle과 Mysql 등은 3계층을, Sql Server와 DB2와 PostgreSQL은 4계층을 사용한다. ANSI가 정한 표준 sql은 4계층이지만, 3계층으로도 충분히 잘 사용되고 있으므로, 둘이 차이가 있음을 인지하고 혼란을 방지하자. |
Beta Was this translation helpful? Give feedback.
-
|
@somefood |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
5장 DBMS를 조작할 때 필요한 기본 지식
MySQL과 커넥션 만들기
mysql>: 프롬프트로 사용자로부터 명령을 입력받을 수 있는 상태라는 것을 의미합니다.위와 같이 mysql에 연결이 된 것을
커넥션이라고 합니다.데이터베이스를 이용하기
세션과 커넥션을 크게 구분짓지 않는데 그 이유는 기본적으로 커넥션과 세션은 1:1로 대응되어서 커넥션이 성립이 되면 세션이 끊을때 커넥션도 끊어지는 경우가 많습니다. (커넥션이 형성된 후에 세션이 만들어집니다.)
데이터베이스의 특징(MySql)
SQL과 관리 명령의 차이
SQL : Structured Query Language의 약자로 관계형 데이터베이스 시스템에서 데이터를 관리 및 처리하기 위해 설계된 언어입니다.
관리 명령 : DBMS가 정상적으로 동작하는지 감시하거나 DBMS가 이상한 동작을 할 때 문제 해결을 위해 정보수집을 하는 용도로 사용되는 언어입니다. ex) show 명령어
관계형 데이터베이스의 계층
시중에 나온 데이터베이스(mysql, Oracle, postgreSQL 등)의 계층 구조는 여러가지가 있습니다. 기본이 되는 것을 4계층 구조를 가지는 것입니다.
데이터베이스의 기본적인 계층
mysql 계층구조
mysql의 경우 데이터베이스와 스키마를 같은 개념으로 간주하여 계층에 차이를 두지 않습니다. 따라서
인스턴스 - 스키마(여러) - 테이블(여러)와 같은 계층 구조를 가지고 있습니다.Oracle 계층 구조
Oracle의 경우 4계층 구조를 따르고 있지만 하나의 인스턴스 내에서는 하나의 데이터베이스만 만들 수 있다는 제약이 있어서 사실상 3계층 구조로 볼 수 있습니다.
즉,
인스턴스 - 데이터베이스(하나) - 스키마(여러) - 테이블(여러)의 계층 구조를 가지고 있습니다.3계층 Vs 4계층
기본적으로는 4계층이 표준이나 mysql과 같은 3계층 구조도 많은 개발자들이 이용합니다. 그래서 계층 구조가 중요하다기 보다는 기존것에서 다른 구조의 데이터베이스로 변경이 될 때 혼란이 발생할 수 있습니다.
Beta Was this translation helpful? Give feedback.
All reactions