Programming/Database

[Database] 데이터베이스 관련 기초 개념 '데이터베이스', 'DBMS', '데이터 모델', 'SQL'

728x90
반응형

1. 데이터와 데이터베이스, DBMS

데이터베이스 : 데이터 + 베이스
DBMS : Database Management System (데이터베이스 관리 시스템)

데이터와 정보

데이터베이스에서 데이터(data)와 정보(information)는 다른 의미로 해석된다.
흔히, 데이터를 원석, 정보를 보석으로 비유한다.

  • 데이터 : 어떤 필요에 의해 수집했지만 아직 특정 목적을 위해 평가하거나 정제하지 않은 값이나 사실 또는 자료 자체를 의미
  • 정보 : 수집한 데이터를 어떠한 목적을 위해 분석하거나 가공하여 가치를 추가하거나 새로운 의미를 이끌어 낼 수 있는 결과

⇒ 잘 수집된 데이터를 분석하고 가공하여 새로운 가치를 만들어 내는 정보를 얻을 수 있다 !

효율적인 데이터 관리를 위한 조건

  1. 데이터를 통합하여 관리
  2. 일관된 방법으로 관리
  3. 데이터 누락 및 중복 제거
  4. 여러 사용자(응용 프로그램 포함)가 공동으로 실시간 사용 가능

⇒ 효율적인 관리와 검색을 위해 구조화한 데이터 집합 : 데이터베이스

파일 시스템과 DBMS

  • 파일 시스템을 통한 데이터 관리
    각 파일에 저장한 데이터는 서로 연관이 없고 중복 또는 누락이 발생 (단층 파일 구조)

    서비스의 역할 분담

    • 서비스 요청을 받는 영역
    • 서비스 처리에 필요한 데이터를 다루는 영역
    • 처리한 데이터를 제공하는 영역
  • DBMS를 통한 데이터 관리
    여러 응용 프로그램이 사용할 데이터를 한 곳에서 관리 (데이터 오류, 누락, 중복 문제 해결)

2. 데이터 모델

데이터 모델 : 컴퓨터에 데이터를 저장하는 방식을 정의해 놓은 개념 모형 (오라클 데이터베이스는 객체 관계형 DBMS)

  1. 계층형 모델
    Hierarchical Data Model
    트리 구조를 활용하여 데이터 관련성을 계층별로 나누어 부모-자식 같은 관계를 정의하고 데이터를 관리

     1:N 관계
    하나의 부모 개체가 여러 자식을 가질 수 있는 반면, 자식 개체는 여러 부모를 가질 수 없음

  2. 네트워크형 모델
    Network Data Model
    그래프 구조를 기반으로 함 (=망형 데이터 모델) 개체 간 관계를 그래프 구조로 연결하기 때문에 자식 개체가 여러 부모 개체를 가질 수 있음

  3. 관계형 모델
    Relational Data Model
    데이터 간의 관계에 초점을 두는 모델
    각 데이터의 독립 특성만을 규정하여 데이터 묶음을 나누고, 중복이 발생할 수 있는 데이터는 별개의 릴레이션으로 정의한 후 식별코드 부여 (이후 테이블 연결)

    구성요소

    1. 개체 Entity : 데이터화하려는 사물, 개념의 정보 단위로 테이블_table 개념과 대응 (릴레이션으로 표기하기도 함)
    2. 속성 Attribute : 데이터의 종류, 특성, 상태 등을 정의하며 열_column 개념과 대응
    3. 관계 Relationship : 개체와 개체 또는 속성 간의 연관성을 나타내기 위해 사용 (외래키 등으로 구현)

    → 데이터의 독립성, 무결성 정의

  4. 객체 지향형 모델
    Object-Oriented Data Model
    객체지향 프로그래밍에서 사용하는 객체 개념을 기반으로 한 데이터 모델
    데이터를 독립된 객체로 구성하고 관리
    상속, 오버라이드, 오버로드 등 기능 사용
    (객체 지향형 모델 개념을 데이터베이스에 완전히 적용하는 것이 쉽지 않아 관계형 데이터 모델을 바탕으로 객체 개념을 도입하여 객체 관계형 DBMS 영역을 확장)

3. 관계형 데이터베이스와 SQL

관계형 데이터베이스

관계형 데이터 모델 개념을 바탕으로 데이터를 저장, 관리하는 데이터베이스
RDBMS : 관계형 데이터베이스 관리 시스템

SQL

Structured Query Language
RDBMS에서 데이터를 다루고 관리하는 데 사용하는 데이터베이스 질의 언어 (RDBMS에게 데이터에 관해 물어보고 결과를 얻음)

  1. DQL Data Query Language
    RDBMS에 저장한 데이터를 원하는 방식으로 조회하는 명령어
  2. DML Data Manipulation Language
    RDBMS 내 테이블의 데이터를 저장, 수정, 삭제하는 명령어
  3. DDL Data Definition Language
  4. RDBMS 내 데이터 관리를 위해 테이블을 포함한 여러 객체를 생성, 수정, 관리하는 명령어
  5. TCL Transaction Control Language
    트랜잭션 데이터의 영구 저장, 최소 등과 관련된 명령어
  6. DCL Data Control Language
    데이터 사용 권한과 관련된 명령어
728x90
반응형