[CS] 데이터베이스

Ryong·2024년 6월 10일

CS

목록 보기
10/16
post-thumbnail

데이터베이스의 개념

데이터베이스(Database)는 체계적으로 구조화된 데이터의 집합으로, 다양한 응용 프로그램이 데이터를 효율적으로 저장, 관리, 검색, 수정할 수 있도록 한다. 데이터베이스의 주요 목적은 데이터를 중복 없이 효율적으로 관리하고, 필요한 정보를 빠르게 검색할 수 있도록 하는 것이다.

데이터베이스의 주요 특징

  • 데이터 일관성: 데이터의 무결성과 일관성을 유지.
  • 데이터 무결성: 데이터의 정확성과 신뢰성을 보장.
  • 데이터 보안: 권한이 없는 사용자로부터 데이터를 보호.
  • 동시성 제어: 다수의 사용자가 동시에 데이터를 접근하고 수정할 수 있도록 관리.

관계형 데이터베이스 (SQL, 테이블, 관계)

관계형 데이터베이스(Relational Database)는 데이터를 테이블 형식으로 저장하며, 각 테이블은 행(Row)과 열(Column)로 구성된다. 테이블 간의 관계를 정의하여 데이터를 효율적으로 관리한다.

  • SQL (Structured Query Language) : 관계형 데이터베이스에서 데이터를 정의, 조작, 제어하는 표준 언어다. SQL은 데이터베이스와 상호작용하기 위한 다양한 명령어를 제공한다.

    • DDL (Data Definition Language) : 데이터베이스 구조를 정의.
      예: CREATE TABLE, ALTER TABLE, DROP TABLE.
    • DML (Data Manipulation Language) : 데이터를 조작.
      예: SELECT, INSERT, UPDATE, DELETE.
    • DCL (Data Control Language) : 데이터베이스 권한을 제어.
      예: GRANT, REVOKE.
  • 테이블(Table) : 데이터베이스의 기본 저장 단위로, 행과 열로 구성.

    • 행(Row) : 레코드(Record)라고도 하며, 한 개체의 데이터를 저장.
    • 열(Column) : 필드(Field)라고도 하며, 데이터의 속성을 나타냄.
  • 관계(Relation) : 테이블 간의 논리적인 연결을 정의.

    • 기본 키(Primary Key) : 테이블 내의 각 행을 고유하게 식별하는 열.
    • 외래 키(Foreign Key) : 다른 테이블의 기본 키를 참조하여 두 테이블 간의 관계를 나타냄.

데이터베이스 관리 시스템 (DBMS)

데이터베이스 관리 시스템(DBMS, Database Management System)는 데이터베이스를 정의, 생성, 유지, 제어하는 소프트웨어 시스템. DBMS는 사용자가 데이터베이스와 상호작용할 수 있는 인터페이스를 제공.

DBMS의 주요 기능

  • 데이터 정의 : 데이터베이스 구조를 정의하고 변경.
  • 데이터 조작 : 데이터를 삽입, 수정, 삭제, 검색.
  • 데이터 보안 : 데이터 접근을 제어하고 권한을 관리.
  • 데이터 무결성 : 데이터의 일관성과 정확성을 유지.
  • 데이터 백업 및 복구 : 데이터 손실에 대비한 백업과 복구 기능을 제공.

대표적인 DBMS

  • Oracle Database : 대규모 기업용 데이터베이스 관리 시스템.
  • MySQL : 오픈 소스 관계형 데이터베이스 관리 시스템.
  • PostgreSQL : 객체 관계형 데이터베이스 관리 시스템.
  • Microsoft SQL Server : 마이크로소프트의 관계형 데이터베이스 관리 시스템.

데이터 모델링 (ER 다이어그램)

데이터 모델링(Data Modeling)은 데이터베이스의 구조를 시각적으로 표현하는 과정으로, 데이터베이스 설계의 중요한 단계. ER 다이어그램(Entity-Relationship Diagram)은 데이터 모델링에서 널리 사용되는 도구.

ER 다이어그램

  • 엔티티(Entity) : 데이터베이스에 저장될 수 있는 객체 또는 개체. (예: 고객, 주문, 제품)
    • 엔티티 타입(Entity Type) : 동일한 속성을 가진 엔티티의 집합. (예: 고객 엔티티 타입)
    • 엔티티 인스턴스(Entity Instance) : 특정 엔티티 타입의 개별 객체. (예: 특정 고객)
  • 속성(Attribute) : 엔티티의 특성이나 속성. (예: 고객의 이름, 주소)
  • 관계(Relationship) : 엔티티 간의 논리적인 연결. (예: 고객이 주문을 한다)
    • 일대일(1:1) 관계 : 한 엔티티가 다른 엔티티와 하나의 관계를 가짐. (예: 사람 - 주민등록번호)
    • 일대다(1:N) 관계 : 한 엔티티가 여러 엔티티와 관계를 가짐. (예: 고객 - 주문)
    • 다대다(N:M) 관계 : 여러 엔티티가 여러 엔티티와 관계를 가짐. (예: 학생 - 수강 과목)

NoSQL 데이터베이스

NoSQL 데이터베이스는 전통적인 관계형 데이터베이스의 한계를 극복하기 위해 설계된 데이터베이스로, 비정형 데이터나 대규모 데이터를 효율적으로 처리할 수 있다. NoSQL은 "Not Only SQL"의 약자로, 다양한 데이터 모델을 지원한다.

NoSQL 데이터베이스의 종류

  • 문서 지향 데이터베이스 : 데이터를 JSON, BSON 등의 문서 형식으로 저장.
    예 : MongoDB.
  • 키-값 저장소 : 키-값 쌍으로 데이터를 저장.
    예 : Redis, DynamoDB.
  • 열 지향 데이터베이스 : 데이터를 열 기반으로 저장.
    예 : Apache Cassandra, HBase.
  • 그래프 데이터베이스 : 데이터를 그래프 구조로 저장.
    예 : Neo4j.

NoSQL 데이터베이스의 특징

  • 확장성: 수평적 확장이 용이하여 대규모 데이터 처리에 적합.
  • 유연한 데이터 모델: 스키마가 없거나 동적으로 변경할 수 있어 비정형 데이터를 처리할 수 있다.
  • 고성능: 특정 작업에 최적화되어 빠른 데이터 읽기/쓰기가 가능.
  • 분산형 구조: 데이터가 여러 서버에 분산 저장되어 데이터의 가용성과 신뢰성이 높다.
profile
새로운 시작. 그리고 도약

0개의 댓글