[DB] RDBMS

[verify$y]·2025년 7월 29일

CS핵심개념

목록 보기
4/35

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 : 레코드 탐색에 사용된다.

profile
welcome

0개의 댓글