DBMS (Database Management System)

- DBMS는 데이터를 저장하고 관리하는 시스템으로, 데이터를 체계적으로 저장, 관리, 검색할 수 있게 해준다.
- DBMS는 여러 종류로 분류될 수 있으며, 각각의 DBMS는 특정한 용도와 특성을 가진다.
1. 관계형 DBMS (RDBMS)
- 데이터가 테이블 형식으로 저장되는 DBMS
- 각 테이블은 행(row)과 열(column)로 구성되며, 데이터 간의 관계는 외래 키(foreign key) 등을 통해 표현한다.
- 예시 : MySQL, PostgreSQL, Oracle Database, Microsoft SQL Server
- 특징 : SQL(Structured Query Language)을 사용하여 데이터를 관리한다. 데이터 무결성, ACID 특성을 보장한다.
2. 객체지향 DBMS (OODBMS)
- 객체지향 프로그래밍과 일치하는 방식으로 데이터를 저장하는 DBMS
- 데이터와 그 데이터를 처리하는 메서드를 객체로 함께 저장한다.
- 예시 : db4o, ObjectDB
- 특징 : 복잡한 데이터 구조를 쉽게 표현할 수 있으며, 객체지향 언어와의 호환성이 높다.
3. 문서 지향 DBMS (Document-Oriented DBMS)
- 문서(보통 JSON, BSON, XML 등)를 데이터로 저장하는 NoSQL DBMS의 한 종류
- 예시 : MongoDB, CouchDB
- 특징 : 스키마가 없는 데이터 구조를 지원하며, 비정형 데이터 관리에 적합하다.
4. 키-값 저장소 (Key-Value Store)
- 데이터를 키-값 쌍으로 저장하는 단순한 형태의 NoSQL DBMS
- 예시 : Redis, DynamoDB, Riak
- 특징 : 빠른 데이터 접근이 가능하며, 캐시 시스템으로 많이 사용된다.
5. 컬럼 지향 DBMS (Column-Oriented DBMS)
- 데이터를 테이블의 행이 아닌 열 단위로 저장하는 DBMS
- 예시 : Apache HBase, Cassandra
- 특징 : 대용량 데이터 분석에 최적화되어 있으며, 데이터 압축 및 빠른 읽기 성능을 제공한다.
6. 그래프 DBMS (Graph DBMS)
- 그래프 구조(노드와 간선)로 데이터를 저장하는 DBMS
- 예시 : Neo4j, ArangoDB, OrientDB
- 특징 : 복잡한 관계와 연결을 쉽게 표현하고, 그래프 탐색에 최적화되어 있다.
SQL (Structured Query Language)
- SQL은 관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 관리하기 위해 사용하는 표준 언어
- SQL은 다양한 기능을 제공하며, 다음과 같은 주요 명령어로 구성된다.
1. 데이터 정의 언어 (DDL: Data Definition Language)
- CREATE : 새로운 데이터베이스 객체(테이블, 인덱스 등)를 생성한다.
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(100),
age INT
);
- ALTER : 기존 데이터베이스 객체의 구조를 변경한다.
ALTER TABLE students ADD COLUMN email VARCHAR(100);
- DROP: 데이터베이스 객체를 삭제한다.
DROP TABLE students;
2. 데이터 조작 언어 (DML: Data Manipulation Language)
- SELECT : 데이터베이스에서 데이터를 조회한다.
SELECT * FROM students;
- INSERT : 데이터베이스에 새로운 데이터를 삽입한다.
INSERT INTO students (id, name, age) VALUES (1, 'John Doe', 20);
- UPDATE : 기존 데이터를 수정한다.
UPDATE students SET age = 21 WHERE id = 1;
- DELETE : 데이터를 삭제한다.
DELETE FROM students WHERE id = 1;
3. 데이터 제어 언어 (DCL: Data Control Language)
- GRANT : 사용자에게 권한을 부여한다.
GRANT SELECT ON students TO user1;
- REVOKE : 사용자에게서 권한을 회수한다.
REVOKE SELECT ON students FROM user1;
4. 트랜잭션 제어 언어 (TCL: Transaction Control Language)
- COMMIT : 트랜잭션을 확정하고 변경 내용을 영구적으로 저장한다.
COMMIT;
- ROLLBACK : 트랜잭션을 취소하고 변경 내용을 되돌린다.
ROLLBACK;
- SAVEPOINT : 트랜잭션 내에서 일시 저장 지점을 설정한다.
SAVEPOINT savepoint1;
DBMS는 다양한 종류가 있으며, 각기 다른 데이터 저장 및 관리 방식을 제공한다.
관계형 DBMS는 가장 널리 사용되는 형태로, SQL을 사용하여 데이터를 관리한다.
SQL은 데이터 정의, 조작, 제어, 트랜잭션 관리를 위한 다양한 명령어를 제공한다.
'CS' 카테고리의 다른 글
데이터 모델링(Data Modeling) (3) | 2024.07.25 |
---|---|
OAuth 2.0 개념 (0) | 2024.07.09 |
IA란? (0) | 2024.06.28 |
UX와 CX의 개념 차이점 (0) | 2024.06.26 |
웹 공격의 종류 및 개념 (0) | 2024.06.19 |
DBMS (Database Management System)

- DBMS는 데이터를 저장하고 관리하는 시스템으로, 데이터를 체계적으로 저장, 관리, 검색할 수 있게 해준다.
- DBMS는 여러 종류로 분류될 수 있으며, 각각의 DBMS는 특정한 용도와 특성을 가진다.
1. 관계형 DBMS (RDBMS)
- 데이터가 테이블 형식으로 저장되는 DBMS
- 각 테이블은 행(row)과 열(column)로 구성되며, 데이터 간의 관계는 외래 키(foreign key) 등을 통해 표현한다.
- 예시 : MySQL, PostgreSQL, Oracle Database, Microsoft SQL Server
- 특징 : SQL(Structured Query Language)을 사용하여 데이터를 관리한다. 데이터 무결성, ACID 특성을 보장한다.
2. 객체지향 DBMS (OODBMS)
- 객체지향 프로그래밍과 일치하는 방식으로 데이터를 저장하는 DBMS
- 데이터와 그 데이터를 처리하는 메서드를 객체로 함께 저장한다.
- 예시 : db4o, ObjectDB
- 특징 : 복잡한 데이터 구조를 쉽게 표현할 수 있으며, 객체지향 언어와의 호환성이 높다.
3. 문서 지향 DBMS (Document-Oriented DBMS)
- 문서(보통 JSON, BSON, XML 등)를 데이터로 저장하는 NoSQL DBMS의 한 종류
- 예시 : MongoDB, CouchDB
- 특징 : 스키마가 없는 데이터 구조를 지원하며, 비정형 데이터 관리에 적합하다.
4. 키-값 저장소 (Key-Value Store)
- 데이터를 키-값 쌍으로 저장하는 단순한 형태의 NoSQL DBMS
- 예시 : Redis, DynamoDB, Riak
- 특징 : 빠른 데이터 접근이 가능하며, 캐시 시스템으로 많이 사용된다.
5. 컬럼 지향 DBMS (Column-Oriented DBMS)
- 데이터를 테이블의 행이 아닌 열 단위로 저장하는 DBMS
- 예시 : Apache HBase, Cassandra
- 특징 : 대용량 데이터 분석에 최적화되어 있으며, 데이터 압축 및 빠른 읽기 성능을 제공한다.
6. 그래프 DBMS (Graph DBMS)
- 그래프 구조(노드와 간선)로 데이터를 저장하는 DBMS
- 예시 : Neo4j, ArangoDB, OrientDB
- 특징 : 복잡한 관계와 연결을 쉽게 표현하고, 그래프 탐색에 최적화되어 있다.
SQL (Structured Query Language)
- SQL은 관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 관리하기 위해 사용하는 표준 언어
- SQL은 다양한 기능을 제공하며, 다음과 같은 주요 명령어로 구성된다.
1. 데이터 정의 언어 (DDL: Data Definition Language)
- CREATE : 새로운 데이터베이스 객체(테이블, 인덱스 등)를 생성한다.
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(100),
age INT
);
- ALTER : 기존 데이터베이스 객체의 구조를 변경한다.
ALTER TABLE students ADD COLUMN email VARCHAR(100);
- DROP: 데이터베이스 객체를 삭제한다.
DROP TABLE students;
2. 데이터 조작 언어 (DML: Data Manipulation Language)
- SELECT : 데이터베이스에서 데이터를 조회한다.
SELECT * FROM students;
- INSERT : 데이터베이스에 새로운 데이터를 삽입한다.
INSERT INTO students (id, name, age) VALUES (1, 'John Doe', 20);
- UPDATE : 기존 데이터를 수정한다.
UPDATE students SET age = 21 WHERE id = 1;
- DELETE : 데이터를 삭제한다.
DELETE FROM students WHERE id = 1;
3. 데이터 제어 언어 (DCL: Data Control Language)
- GRANT : 사용자에게 권한을 부여한다.
GRANT SELECT ON students TO user1;
- REVOKE : 사용자에게서 권한을 회수한다.
REVOKE SELECT ON students FROM user1;
4. 트랜잭션 제어 언어 (TCL: Transaction Control Language)
- COMMIT : 트랜잭션을 확정하고 변경 내용을 영구적으로 저장한다.
COMMIT;
- ROLLBACK : 트랜잭션을 취소하고 변경 내용을 되돌린다.
ROLLBACK;
- SAVEPOINT : 트랜잭션 내에서 일시 저장 지점을 설정한다.
SAVEPOINT savepoint1;
DBMS는 다양한 종류가 있으며, 각기 다른 데이터 저장 및 관리 방식을 제공한다.
관계형 DBMS는 가장 널리 사용되는 형태로, SQL을 사용하여 데이터를 관리한다.
SQL은 데이터 정의, 조작, 제어, 트랜잭션 관리를 위한 다양한 명령어를 제공한다.
'CS' 카테고리의 다른 글
데이터 모델링(Data Modeling) (3) | 2024.07.25 |
---|---|
OAuth 2.0 개념 (0) | 2024.07.09 |
IA란? (0) | 2024.06.28 |
UX와 CX의 개념 차이점 (0) | 2024.06.26 |
웹 공격의 종류 및 개념 (0) | 2024.06.19 |