DB(Database)란?
통합하여 관리되는 데이터의 집합체를 의미하며. 이러한 데이터베이스는 응용 프로그램과는 다른 별도의 미들웨어에 의해 관리됩니다.
데이터베이스를 관리하는 이러한 미들웨어를 데이터베이스 관리 시스템(DBMS: Database Management System)이라고 부릅니다.
DB를 왜 사용할까요?
- 만약 사이트를 운영하는데 많은 데이터들을 손수 관리한다고 생각해보세요, 그러한 데이터들을 쉽게 관리할 수 있도록 해주는게 데이터 베이스 이니 사용하지 않을 이유가 없습니다.
- 또한 그렇게 관리해놓은 자료들이 전부 날아간다고 생각해보세요.
- 예를들어 장부를 만들었는데, 종이로 된 장부를 잃어버렸을때는 데이터를 모두 다시 수집해야겠죠? 하지만 DB를 사용함으로써 데이터를 안전하게 보관할 수 있습니다.
DB의 종류?
DB에도 여러개의 종류가 있지만 대표적으로 구분하는데는 두가지로 구분합니다
종류 | NoSQL | RDBMS |
장점 | - 관계형 데이터베이스와 달리 다른 형태의 데이터 저장 기술을 사용합니다. - 여러 형식의 데이터들을 손쉽게 저장/관리 할 수 있습니다. |
- 관계형 데이터베이스인 RDBMS는 이름과 같이 관계에따라 데이터를 관리 할 수 있습니다. - 정해진 스키마대로 데이터를 표현하며 중복을 방지해줍니다. |
단점 | - 데이터의 중복이 발생할 수 있습니다. - 데이터 구조를 보장치 않기 떄문에 데이터 구조를 결정하는데 어려움이 있을 수 있습니다. |
- 테이블간 관계를 갖고 있기 때문에 시스템이 커질 경우 복잡한 쿼리가 만들어지게 됩니다. - 데이터가 유연하지 못합니다. 변경시 스키마를 변경 하여야 하기때문에 번거롭고 어렵습니다. |
속하는 DB | Mongo DB, Redis... | Mysql, Oracle, Maria .... |
그렇다면 두 DB는 언제 사용해야 할까요?
- RDBMS : 관계를 맺고 있는 데이터가 자주 변경 또는 수정되는 애플리케이션 일 때, 또는 변경될 여지가 없고 명확한 스키마가 필요할 경우
- NoSQL : 정확한 데이터 구조를 알 수 없거나 변경 또는 확장 될 수 있는경우, 또는 데이터를 수평으로 확장 해야하는 경우(막대한 양의 데이터를 다뤄야 하는경우)
DB 용어
RDBMS는 보통 위와 같은 스키마구조를 기본으로 합니다.
식별자(identifier)
- 데이터를 구분 할 수 있는 논리적인 개념입니다, 쉽게 말해서 데이터 베이스의 idx 값으로 볼 수 있습니다.
- 하나의 테이블에는 반드시 하나의 식별자를 꼭 가지고 있어야한다.
- 보통 idx를 식별자로 사용한다, 이유는 조회를 쉽게 하기 위해서이다.
튜플(Tuple)
- 테이블에서의 행을 의미하며 , Record(레코드) 또는 Row라고 부르기도 합니다.
어트리뷰트(Attribute)
- 테이블에서의 열을 의미하며, 컬럼(columm)이라고도 합니다.
DDL(데이터 정의 언어)
- RDBMS의 구조를 정의하며, 쌍/속성/관계 인덱스 파일 위치 등 고유의 특성을 포함하고 있습니다.
- (CREATE / ALTER/ DROP/ RENAME/ TRUNCATE 등이 속한다.)
DML(데이터 조작 언어)
- 데이터베이스에 들어 있는 데이터를 조회하거나 검색하기 위한 명령어를 말합니다.
- (SELECT / INSERT/ UPDATE/ DELETE 가 속합니다)
- 가장 많이 쓰이는 부분이기도 합니다.
DCL(데이터 제어 언어)
- DB에 접근하고 객체를 사용하도록 권한을 주고 회수하는 명령어들을 말합니다
- (GRANTE / REVOKE 등이 속합니다)
질문이나 잘못된점 또는 추가 했으면 하는 점이 있으면 댓글 달아주시면 감사하겠습니다!
반응형
댓글