본문 바로가기

Java 공부한 것

Database(1)

 

DataBase: 데이터를 모아 구조적으로 통합해 놓은 것을 말한다.

여기서 데이터란? 간단명료하게 얘기하면 자료다.

 

 

현재 운영되는 방식

오늘날 운영되고 있는 가장 일반적인 유형의 데이터베이스에서 데이터는

일반적으로 처리 및 데이터 쿼리를 효율적으로 수행하기 위해

일련의 테이블에서 로 모델링되고 있다.(데이터에 액세스 및  관리 등을 용이하게 해준다.)

대부분의 데이터베이스는 데이터 작성 및 쿼리에 SQL(Structured Query Language)을 사용한다고 한다. 

구성

  1. 데이터: 데이터베이스는 데이터의 집합체입니다. 데이터는 보통 구조화된 형태로 저장되며, 이를 테이블, 레코드, 필드 등의 용어로 표현할 수 있습니다.
  2. 스키마(주로 관계형 데이터베이스에서만): 데이터베이스의 스키마는 데이터의 구조, 속성, 관계 등을 정의하는 체계.
    데이터베이스에 저장된 데이터를 해석하고 조작하는 데 필요한 중요한 역할을 함.
  3. 쿼리 언어: 데이터베이스에서 데이터를 검색하고 조작하는 데 사용되는 언어.
  4. 보안: 데이터베이스는 중요한 비즈니스 정보를 담고 있기 때문에, 보안이 매우 중요한 요소입니다.
    데이터베이스는 대개 액세스 제어, 인증, 암호화 등의 보안 기능을 제공합니다.
  5. 백업 및 복원: 데이터베이스는 시스템 장애, 실수 등으로부터 보호하기 위해 백업 및 복원 기능을 제공한다.
    이를 통해 데이터의 안전성과 신뢰성이 유지될 수 있다.
  6. 인덱싱: 데이터베이스에서 데이터를 검색할 때, 인덱싱을 사용하여 검색 속도를 향상시켜준다.
  7. 동시성 제어: 데이터베이스는 다수의 사용자가 동시에 데이터를 업데이트하거나 검색하는 경우, 이를 제어하기 위한 기능을 제공하여 데이터 일관성을 유지할 수 있게 된다.

 

특징

  1. 데이터 중심성(Data-centricity): 데이터베이스는 데이터가 중심이 되는 시스템입니다.
    데이터의 생성, 저장, 수정, 검색, 삭제를 효과적으로 처리할 수 있도록 설계되어 있습니다.
  2. 동시성(Concurrency): 데이터베이스는 여러 사용자가 동시에 데이터를 사용할 수 있는 환경을 제공합니다.
    이러한 환경에서 발생하는 데이터의 일관성 유지 등의 문제를 해결하기 위해 동시성 제어 기술이 필요합니다.

  3. 영속성(Persistence): 데이터베이스는 데이터를 영구적으로 보존할 수 있습니다.
    따라서 데이터베이스에 저장된 데이터는 시스템이 종료되어도 유지됩니다.

  4. 데이터 독립성(Data Independence): 데이터베이스는 데이터와 응용 프로그램을 독립적으로 설계할 수 있는 환경을 제공합니다. 데이터의 논리적 구조와 물리적 구조를 분리함으로써 응용 프로그램의 유지 보수나 대규모 데이터의 이전 등을 용이하게 합니다.

  5. 보안성(Security): 데이터베이스는 데이터의 무단 접근, 변조, 파괴 등을 방지하기 위한 보안 기능을 제공합니다.
    사용자 인증 및 권한 관리, 데이터 암호화 등이 그 예입니다.

  6. 일관성(Consistency): 데이터베이스는 데이터의 일관성을 유지하기 위한 기능을 제공합니다.
    일관성 있는 데이터를 유지하기 위해 제약 조건, 트랜잭션 처리 등이 필요합니다.

  7. 효율성(Efficiency): 데이터베이스는 대량의 데이터를 효율적으로 처리할 수 있도록 설계되어 있습니다.
    인덱스, 쿼리 최적화 등의 기술을 활용하여 빠른 데이터 처리가 가능합니다.

유형

1. 관계형 데이터베이스(RDBMS) - Oracle, MySQL, PostgreSQL

  • 데이터를 표 형태의 테이블(table)로 표현합니다.
  • 각 테이블은 컬럼(column)과 로우(row)로 이루어져 있습니다.
  • 테이블 간에 관계를 설정하여 데이터를 저장하고 관리합니다.
  • SQL(Structured Query Language)을 사용하여 데이터를 조작합니다.
  • 트랜잭션(Transaction) 처리를 지원하여 데이터 무결성을 보장합니다.(작업 도중 에러 시 원상복귀)

2. 관계형 데이터베이스(NoSQL) - MongoDB, Cassandra, Redis

  • 데이터를 테이블 형태가 아닌 다른 형식으로 저장합니다. (예: 문서(document), 그래프(graph), 키-값(key-value) 등)
  • 스키마가 유연하게 처리되어 데이터의 형식 변화에 유연하게 대처할 수 있습니다.
  • 수평적 확장(Scaling-out)에 용이하며, 분산 시스템으로 구성될 수 있습니다.
  • 다양한 API를 사용하여 데이터를 조작합니다. (예: MongoDB에서는 JavaScript 기반의 쿼리 언어를 사용)
  • 트랜잭션 처리가 지원되지 않는 경우가 많습니다.

 

'Java 공부한 것' 카테고리의 다른 글

트랜잭션  (0) 2023.03.31
ERD(객체관계도)  (0) 2023.03.31
상속  (0) 2022.12.27
객체지향 프로그래밍(이라 쓰고 클래스에 대해서)  (0) 2022.12.19
조건문  (0) 2022.12.15