DBMS
- 데이터베이스 관리 시스템
- 데이터베이스에 대한 접근하는 소프트웨어 관리도구

다른 데이터베이스와 비교
RDBMS vs. Object-Oriented Databases
- Object-oriented databases는 데이터를 객체로 표현하여 이해하기에 편리하다. RDBMS에서 제공하는 쿼리가 필요없다.
RDBMS vs. NoSQL Databases
- NoSQL은 RDMS에 비해 유연하고 확장성이 있다. 구조화되지 않는 데이터를 위한 설계
RDBMS의 장점
- 데이터 정합성
- 키와 제약조건이 데이터 정합성 유지에 도움되며 데이터 불일치로 인한 에러를 방지할 수 있다.
- 데이터 안정성
- RDBMS는 다양한 보안 기능을 제공하는데 예를 들면 유저인증허가, 데이터터 암호화기능이 있다.
- 고사양의 데이터 탐색
- 최적화된 구조화설계로 효율적으로 데이터 탐색이 가능하다.
- 인덱스기능을 사용하여 쿼리시행을 가속화할 수도 있다.
- 멀티유저 지원
- 멀티유저가 공동으로 동시에 사용해도 된다. RDMS에 대한 접근허가 최소 1명이상에게 주어질 수 있다.
- 같은 데이터를 다수의 사용자가 읽을 수 있다.
RDMS의 단점
- 장점이 많다. 하지만 단점도 있다.
- 확장성 이슈
- 극단적으로 대용량 데이셋과 수많은 트랜잭션환경에 대처할 수 있는 능력이 NoSQL에 비해 떨어진다.
- 복잡성
- 특히 대용량의 애플리케이션에 한해 RDMS관리에 어려우며 전문적인지식과 경험이 필요하다.
유명한 RDBMS 소프트웨어소개
- MySQL : 오픈소스 기반, 사용하기 편리하며 신뢰도가 높다. 주로 웹애플리케이션에 이용된다.
- Oracle : 초거대기업오라클
- Microsoft SQL Server : microsoft 자사 툴과 연동성이 종아서 높은 수요
- Postgre SQL : 완전히 오픈소스 기반으로 복잡한 쿼리나 매우 큰 쿼리도 다룰 수 있다.
SQL : RDBMS 언어
- sql은 RDBMS에 사용되는 언어이다. 데이터베이스생성, 삽입, 수정, 삭제에 사용된다.
RDBMS특징
ACID 속성을 가진다.
- Atomicity : 1 transaction를 하나의 싱글 유닛으로 치며, 성공하거나 실행하지 않음의 2중 하나의 상태를 가진다. 일부성공이란게 없으며 성공하거나 원상태거나 둘중하나다.
- Consistency : 데이터의 일관성을 보장한다.
- 데이터베이스 트랜잭션은 하나의 기본 일관식을 고수한다.
- Isolation : transaction간의 간섭을 할 수 없다. 진행중인 transation에 interference가 들어오면 무시해버린다.
- Durablity : 시스템 장애로 다운되었을때 트랜잭션이 커밋(성공적으로수행마침)이라면 데이터베이스는 이 커밋한 이후로 복구(다시 시작된다)
Data Integrity 데이터정합성
- 여러 제약조건을 사용하여 새로운 데이터가 데이터베이스에 삽입된경우 새로 들어온 데이터를 정확하고 일관성있게 한다.
- 이는 PK, FK를 사용하여 관리한다.
Normailzation 일반화
- 데이터를 구성하는 과정으로 데이터가 중복되는 경우를 최소화한다.
- 비교적 큰 사이즈의 테이블을 작고 연관관계를 가진 여러개의 테이블로 쪼개어 데이터베이스에 발생할 이상현상(원치않은 데이터의 삽입, 중복삽입, 원치않은 데이터의 삭제) 방지할 수 있다.
Scalablity 확장가능성
- RDBMS는 증가하는 유저수나 거대한 양의 데이터에 대해서도 확장이 가능하도록 고안되었다.
- 확장하는 방법은 하드웨어 장치의 증가
- 또는 여러 서버로 부하를 분산하여 수평적으로 확장할 수 있다.
RDBMS 기능
데이터 저장
- 구조화된 포맷에서 데이터를 저장한다.
- 순서대로 데이터를 구성하여 유저들은 순서있는 데이터를 다루면 된다.
- 모든 테이블에 대한 데이터베이스 파일로 존재하낟. 그래서 RDBMS는 해당하는 파일에 접근하여 데이터에 대한 요청된 임무을 수행한다.
데이터탐색
- SQL로 유저들은 원하는 데이터를 탐색할 수 있다.
- Select문으로 특정 조건을 달아서 일부 데이터레코드들을 리턴값으로 받는다.
데이터조작
- RDMBS는 유저가 여러SQL 문을 사용하여 데이터업데이트(수정)을 할 수 있다.
- Insert, Update, Delete
RDBMS 구성요소
Table : 데이터베이스 가장 기초적인 구성요소이다. 핵싱요인
Columns : 컬럼은 테이블의 속성값이다.
Rows : 데이터베이스의 테이블의 한 열을 말한다. 한 rows → 한 entity이다.
RK, FK : 레코드와 연관관계르 맺거나, 식별자로 사용된다.
Indexes : 레코드 탐색에 사용된다.