본문 바로가기
프로그래밍 공부/DBMS

[lesson] DBMS - 개요

by Luna_lua 2021. 8. 11.
반응형

이번에는 DBMS 즉 데이터베이스 관리 소프트웨어를 배워보려 합니다! DBMS가 무엇인지 알아보기 전에 DB와 DBMS가 무엇인지 알아볼까요?

 

<DB vs DBMS>

- DB

   데이터(Data)가 모여있는 기지(Base) (추상적인 용어입니다.)

 

- DBMS

   데이터를 관리할 수 있는 구체적인 시스템

   사용자와 DB사이에서 사용자의 요구에 따라 데이터를 생성하고, DB를 관리해주는 소프트웨어입니다.

   관리 시스템의 종류는 오라클, 마리아DB, MYSQL, MS-SQL, MongoDB 등등 다양한 프로그램이 있습니다.

 

+) 설치는 11G버전으로 합니다! -> 설치 방법은 저보다 더 자세히 해주신 분들이 많아 따로 올리지는 않겠습니다!

 

★ Point! 오라클 DBMS 버전 : 

I = INTERNET, G = GRID, C = CLOUD (버전에 따라 사용법도 조금씩 다르니 설치할때 참고하시면 좋습니다!

 

+) 기본 DBMS 설치 시 참고사항!

(계정)

SYS : 모든 권한,   SYSTEM : 계정 관리,   일반 계정 : 해당 스키마 관리(HR, OP, HE, SCOTT 등등)

 

(스키마)

정리가 잘 되어 있는 표들의 묶음, 상태!

 

-> 데이터 베이스 설치 시 CMD 상태에서 작성을 해야합니다. 

※ 로그인은 DBMS 설치시 등록한 ID/PW 입니다. 꼭 기억하거나, 어렵지 않게 등록해주세요!

 

 

<DBMS의 소통방식>

DBMS는 사용자가 직접 소통을 할 수 있으며(프로그래머), 사용자(고객)가 프로그램을 통해 DBMS와 소통을 할 수 있습니다.

 

 <RDBMS(관계형 데이터베이스 시스템)>

 - RDBMS는 DBMS의 하나의 유형이며, 말 그대로 테이블끼리 서로 관계를 맺는 데이터베이스 시스템입니다.

 - RDB는 관계형 데이터 모델에 기초를 둔 데이터베이스이고, 이를 관리하는 프로그램이 RDBMS입니다.

 - RDBMS는 위와 같이 테이블 끼리 서로 연관 되어있어 일반 DBMS보다 데이터 저장, 구성, 관리를 효율적으로 할 수 있습니다.

 

 

+) NoSQL 과의 차이점!

NoSQL이란 (Not Only SQL)의 약자로 RDB의 형태가 아닌 다른 형태의 데이터 저장기술입니다.

RDBMS와 같이 관계를 가지지 않아 테이블은 단 하나의 테이블만을 의미하며, 연관이 있는것끼리 엮기 위한 JOIN과 같은 기능을 사용할 수 없습니다.

하지만! 빅데이터가 나타나면서 생긴 수많은 데이터와 그와 관련된 트래픽들을 효율적으로 해결하기 위해 등장했으며, 데이터의 일관성보다는 여러 대의 DB에 분산하여 저장하는것에 조금더 목적을 가지고 있습니다.

또한 NoSQL에서도 Key-Value, Document, Wide column 등등 DB의 저장방법도 다양하게 존해합니다.)

 

 

<기본 용어>

(TABLE)

위의 표처럼 생긴 구조를 가지는 것을 Table, Relation(오라클에서 사용), Class라고 부릅니다.

 

(COLUMN) : 열, 속성, 필드

세로로 공통된 값들의 주제입니다. Table A에서 번호, 이름, 나이, 아이디의 컬럼을 가지고 있다고 표현할 수 있습니다.

 

(ROW) : 행, 레코드, 튜플

하나의 정보를 가지고 있는 단위 이며, 하나의 줄이 하나의 데이터가 됩니다. Table A에서 1번인 김철수는 나이가 20이다 라는 정보를 가지고 있다고 보면 됩니다.

 

(Primary key (PK) ) : 기본키

컬럼을 잘 보시면 PK라고 쓰여있는 부분이 있을 것 입니다.

이는 테이블에서 고유한 값, 즉 중복이 없으며, NULL값도 허용되지 않고, (NULL : 아직 어떤 값을 넣을지 모른다는 뜻)

각 행의 구분점으로 사용됩니다.

★Point!! 하나의 테이블에는 하나의 PK가 있어야 하며, 하나의 컬럼이 아닌 여러 컬럼이 하나의 PK로 사용할 수 있습니다. 이때 2개 이상이라면 2개의 컬럼이 모두 동일해야 중복으로 보며 하나라도 다르면 그것은 PK가 다르다고 봅니다.

또한 2개 이상의 컬럼으로 만들어진 PK는 조합키라고 부릅니다!

 

(Foreign Key (FK) ) : 외래키

다른 테이블의 PK를 의미합니다.

보통, 테이블끼리 관계를 맺을 떄 사용하며, PK와 다르게 중복이 허용됩니다.

 

(Unique Key (UQ) ) : 유니크 키

NULL은 허용하지 않지만 중복을 허용하지 않는다.

 

따로 NOT NULL이라고 추가로 속성을 지정해 줄 수 있는데, 이러면 PK와 동일하게 중복, NULL 허용하지 않게 됩니다.

이러면 그냥 PK쓰지 이렇게 쓰느냐? 라고 질문 할 수 있지만, 위에서 말했듯이 1개의 PK만 사용할 수 있으며, 여러개를 섞으면 조합키로 사용되기 때문에 데이터 중복의 문제에서 예상과 다르게 작동될 일이 많아집니다.

그런대도 사용하는 이유는 PK만 NULL과 중복을 허용하지 않을수 없기 때문입니다. TABLE A를 보면 번호를 PK로 주어서 각 튜플을 구분하는데 USER의 ID도 없으면 안되고, 중복도 되면 안되기 때문에 이렇게 PK로 쓰지 않지만 필요을 위해 QK를 사용합니다.

 

2021.08.23 - [프로그래밍 공부/DBMS(Oracle)] - [lesson] DBMS - 삭제조건과 KEY (후보, 기본, 조합, 슈퍼, 외래, 유니크)

 

(SQL문 Or 쿼리문)

데이터 베이스와 소통하기위해 DBMS에서 사용하는 언어

반응형