SK Networks AI/일일 회고록

[SK네트웍스 Family AI 캠프 11기] 일일 회고 - 8일차(25.02.18 화요일)

js-kkk 2025. 2. 18. 19:21

오늘은 Database 강의가 진행되었다. 

+DA#

 

학습 내용

1. Database 개요

2. 

 

 

1. Database 개요

1-1. Data와 정보

1-1-1. Data란

💡 관찰의 결과로 나타난 정량적 혹은 정성적인 실제 값을 의미한다. 예) 에베레스트의 높이: 8848m

 

1-1-2. Information이란

💡 데이터를 기반으로 하여 의미를 부여한 것이다. 예) 에베레스트는 세계에서 가장 높은 산이다.

 

1-2. Database

1-2-1. Database란

💡 한 조직에 필요한 정보를 여러 응용 시스템에서 공유할 수 있도록 논리적으로 연관된 데이터를 모으고, 중복되는 데이터를 최소화하여 구조적으로 통합/저장해 놓은 것이다. 구조화된 데이터의 집합이므로 컴퓨터에서 쉽게 접근, 관리, 업데이트할 수 있다.

1-2-2. Database의 정의

  1. 운영 데이터(Operational Data): 조직의 목적을 위해 사용되는 데이터
  2. 공용 데이터(Shared Data): 공동으로 사용되는 데이터
  3. 통합 데이터(Integrated Data): 중복을 최소화하여 중복으로 인한 데이터 불일치 현상 제거
  4. 저장 데이터(Stored Data): 컴퓨터 저장 장치에 저장된 데이터

1-2-3. Database의 특징

  1. 실시간 접근성(Real Time Accessibility): 사용자가 데이터를 요청하면 실시간으로 결과를 서비스한다.
  2. 계속적인 변화(Continuous Change): 데이터 값은 시간에 따라 항상 바뀐다.
  3. 동시 공유(Concurrent Sharing): 데이터베이스는 서로 다른 업무 또는 여러 사용자에게 동시 공유된다.
  4. 내용에 따른 참조(Reference By Content): 데이터베이스에 저장 된 데이터는 데이터의 물리적 위치가 아니라 데이터 값에 따라 참조된다.

 

2. DBMS

2-1. DBMS 개요

2-1-1. DBMS(Database Management System) 란

💡 데이터베이스에서 데이터를 추출, 조작, 정의, 제어 등을 할 수 있게 해주는 데이터베이스 전용 관리 프로그램들을 말한다.

2-1-2. DBMS의 기능

주요 기능 내용

데이터 추출
(Retrieval)
사용자가 조회하는 데이터 혹은 응용 프로그램의 데이터를 추출
데이터 조작
(Manipulation)
데이터를 조작하는 소프트웨어(응용 프로그램)가 요청하는 데이터의 삽입, 수정, 삭제 작업을 지원
데이터 정의
(Definition)
데이터의 구조를 정의하고 데이터 구조에 대한 삭제 및 변경 기능을 수행
데이터 제어
(Control)
데이터베이스 사용자를 생성하고 모니터링하며 접근을 제어
백업과 회복, 동시성 제어 등의 기능을 지원

2-1-3. DBMS의 사용 이점

주요 이점 내용

데이터 중복 최소화 중복된 데이터를 줄임으로써 삭제, 삽입, 수정 이상 현상을 최소화 할 수 있다.
쿼리 언어 DBMS는 SQL(Structured Query Language)과 같은 강력한 쿼리 언어를 제공하여, 복잡한 검색과 분석 작업을 손쉽게 수행할 수 있게 한다.
데이터 무결성 DBMS는 데이터의 무결성을 보장하기 위한 다양한 제약 조건과 규칙을 설정할 수 있다. 이는 데이터의 품질과 정확성을 보장한다.
데이터 백업 및 복구 DBMS는 데이터의 백업과 복구를 지원하여, 시스템 장애나 데이터 손상 시에도 데이터를 복원할 수 있다.
표준화 DBMS는 표준화 된 방법을 통해 데이터를 관리하므로, 데이터의 구조와 접근 방법이 일관적이다. 이로 인해 애플리케이션 개발 및 유지보수가 용이해 진다.

 

 

2-1-4. DBMS의 종류와 특징

 

2-1-5. Database의 변천 과정

 

2-1-6. Database의 유형

  • 계층형 데이터베이스와 네트워크형 데이터베이스
    • 계층형 데이터베이스(Hierarchical Database)
    •  장점:
      • 계층적인 구조는 직관적이고 이해하기 쉽다.
      • 부모-자식 관계에 의한 데이터 접근이 빠르다.
      단점:
      • 복잡한 많은 to many 관계를 표현하는 것이 어렵다.
      • 유연성이 부족하며, 구조 변경이 어렵다. 
    • 💡 트리 구조를 가지며, 각 노드는 한 개 이상의 자식 노드를 가질 수 있지만 한 개의 부모 노드만 가질 수 있다. 데이터는 "부모-자식" 관계를 통해 연결되며, 이런 특성은 특히 조직 구조나 파일 시스템과 같이 자연스럽게 계층 구조를 가지는 데이터를 표현하는데 적합하다.  
      • 네트워크형 데이터베이스(Network Database)
      •  장점:
        • 복잡한 관계를 표현할 수 있다.
        • 데이터 무결성을 유지하는데 효과적이다.
        단점:
        • 구조가 복잡하며, 이해하기 어렵다.
        • 데이터를 검색하고 관리하는 데 높은 수준의 처리 능력이 필요허다. </aside>
      • 💡 그래프 구조를 가진다. 각 노드는 여러 부모 노드를 가질 수 있으므로, 계층형보다 복잡한 관계를 표현할 수 있다. 데이터는 "주인-멤버" 관계를 통해 연결되며, 이런 특성은 특히 많은 M:N 관계를 가지는 데이터를 표현하는데 적합하다.

 

  • 관계형 데이터베이스(RDBMS, Relational Database Management System)SQL(Structured Query Language)은 RDBMS에서 데이터를 조작하고 쿼리하는데 주로 사용되는 언어로 엄격한 데이터 무결성 규칙을 가지며, ACID(Atomicity, Consistency, Isolation, Durability) 트랜잭션 속성을 지원한다.
    • 데이터 무결성을 유지하는데 효과적이다.
    • 강력한 쿼리 언어(SQL)를 통해 복잡한 데이터 조작이 가능하다.
    • 데이터의 정규화를 통해 중복성을 최소화한다.
    단점:
    • 복잡한 객체 관계를 표현하는데 한계가 있다.
    • 스키마 변경이 어렵고 비용이 많이 든다. 
  • 장점:
  • 💡 데이터를 테이블의 형태로 저장하며, 각 테이블은 행(레코드)과 열(필드)로 구성되어 있다. 테이블 간의 관계는 공통 필드를 통해 형성된다.

 

 

 

  • 객체-관계형 데이터베이스(ORDBMS, Object-Relational Database Management System)RDBMS는 RDBMS의 테이블 구조와 SQL의 강력한 쿼리 기능을 유지하면서, 객체 지향 프로그래밍의 유연성과 복잡한 데이터 구조를 지원하는 것이 특징이다.
    • 복잡한 데이터 타입과 객체 지향 프로그래밍을 지원한다.
    • 관계형 데이터베이스의 강력한 쿼리 기능과 데이터 무결성을 유지한다.
    단점:
    • 구현이 복잡하며, 관리가 어렵다.
    • 모든 상황에 적합한 솔루션은 아니므로 일반적인 업무용 애플리케이션에는 RDBMS가 더 적합할 수 있다. 
  • 장점:
  • 💡 관계형 데이터베이스의 기능을 확장하여 객체 지향 데이터 모델을 지원한다. 이로 인해, ORDBMS는 복잡한 데이터 타입(예: 배열, 딕셔너리 등)과 메소드, 상속 등의 객체 지향 기능을 활용할 수 있다.