본문 바로가기
카테고리 없음

computer science 3일차 (DB,DBMS)

by useSword 2024. 3. 22.

1. DB

한 조직 내에서 필요로 하는 데이터를 공동으로 사용할 수 있도록 중복을 최소화하여 통합 저장한 데이터의 집합체.

 

특징

  • 데이터의 대규모 저장소로서, 여러 사용자에 의해 동시에 사용됨.
  • 모든 데이터가 중복을 최소화하면서 통합됨.

2. 데이터 베이스 스키마

관계형 데이터베이스에서 데이터가 구조화되는 방식

 

구성요소 :

  1. 테이블: 데이터를 저장하는 기본 단위
  2. 컬럼: 테이블의 각 필드를 나타냅니다.
  3. 데이터 타입: 각 컬럼에 저장될 데이터의 유형
  4. 키: 테이블의 각 레코드를 고유하게 식별하는 필드
  5. 제약 조건: 데이터의 유효성을 검사하는 규칙

데이터베이스 스키마는 데이터베이스 관리 시스템(DBMS)이 employees 테이블을 생성하고 관리하는 데 사용됩니다.

CREATE TABLE employees (
  employee_id INT NOT NULL AUTO_INCREMENT,
  first_name VARCHAR(255) NOT NULL,
  last_name VARCHAR(255) NOT NULL,
  email VARCHAR(255) NOT NULL,
  salary DECIMAL(10,2) NOT NULL,
  PRIMARY KEY (employee_id)
);

 

  데이터베이스 시스템(DBS : Database System)

  DB, DBMS, USER를 포함한 가장 큰 범위

 

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

 

데이터베이스를 정의하고, 질의어를 지원하고, 리포트를 생성하는 등 작업을 수행하는 소프트웨어

 

 

 

항목 장점 단점
데이터 관리 * 데이터 중복 최소화 * 데이터 일관성 유지
*데이터 접근성 향상 * 데이터 보안 강화 * 데이터 백업 및 복구
* 관리자의 전문 지식 필요
* 초기 설정 및 유지 관리 비용 발생
효율성 * 데이터 검색 및 추출 속도 향상
* 데이터 분석 및 보고 기능 제공 * 여러 사용자의 동시 접근 지원
* 하드웨어 및 소프트웨어 성능에 영향을 받음
* 복잡한 쿼리는 성능 저하 가능성
확장성 * 데이터 증가에 따라 용이하게 확장 가능
* 새로운 데이터 요구 사항에 맞게 변경 가능
* 확장 과정에서 데이터 손실 가능성
* 복잡한 시스템 관리 필요
사용 편의성 * 다양한 사용자 인터페이스 제공
* SQL 등 표준 언어 사용 가능 * 전문 지식 없이도 데이터 사용 가능
* 사용자 교육 및 학습 시간 필요
* 복잡한 기능 사용에는 전문 지식 필요

 

 

4. DBMS의 구조

 

구조 특징 장점 단점 대표적인 예시
계층형 DBMS * 데이터를 트리 구조로 저장
* 부모-자식 관계 정의
* 데이터 접근 방식이 단순
* 데이터 모델링이 복잡
* 유연성이 떨어짐
IMS, IDMS  
네트워크 DBMS * 데이터를 엔터티와 관계로 표현
* 여러 엔터티 간 연결 가능
* 유연한 데이터 모델링 가능
* 데이터 접근 방식이 복잡
* 성능 저하 가능성
CODASYL, DBTG
 
관계형 DBMS (RDBMS) * 데이터를 테이블 형태로 저장
* SQL 사용 가능 * 데이터 일관성 유지 용이
* 가장 많이 사용됨
* 복잡한 데이터 모델링 어려움
* 객체 데이터 저장 어려움
MySQL, Oracle, SQL Server
 
객체 지향 DBMS * 객체 지향 프로그래밍 개념 적용
* 객체를 저장하고 관리
* 복잡한 데이터 모델링 가능
* 표준화되지 않음
* 성능 문제 발생 가능성
ObjectStore, Versant
 
객체 관계 DBMS (ORDBMS) * 관계형 DBMS와 객체 지향 DBMS의 장점 결합
* 객체를 저장하고 관계형 모델 지원
* 표준화된 SQL 사용 가능
* 복잡성 증가
* 성능 문제 발생 가능성
Oracle 11g, PostgreSQL
 

 

 

5. DBMS 언어

 

1) 데이터 정의어 (DDL : Data Definition Language)

2) 데이터 조작어 (DML : Data Manipulation Language)

3) 데이터 제어어 (DCL : Data Control Language)

 

6. DBMS 사용자

 

응용 프로그래머 (우리!🧑‍💻)

데이터베이스 관리자(DBA : Database Administrator 👷‍♂️)

오퍼레이터 (인프라팀 👨‍🔧)

최종 사용자 (유저!👥)

 

 

7. 데이터베이스 유형

 

관계형 데이터 베이스 (SQL)

비관계형 데이터베이스 (NoSQL)

 

1) SQL 사용이 적합한 경우

  1. 데이터베이스의 ACID 성질을 준수해야 하는 경우
    (ACID는 Atomicity(원자성), Consistency(일관성), Isolation(격리성), Durability(지속성) 를 의미합니다.)
  2. 소프트웨어에 사용되는 데이터가 구조적이고 일관적인 경우
  3. 소프트웨어(프로젝트)의 규모가 많은 서버를 필요로 하지 않고 일관된 데이터를 사용하는 경우, 관계형 데이터베이스를 사용하는 경우가 많습니다.

 

2) NoSQL 사용이 적합한 경우  

  1. 데이터의 구조가 거의 또는 전혀 없는 대용량의 데이터를 저장하는 경우
  2. 클라우드 컴퓨팅 및 저장공간을 최대한 활용하는 경우
  3. 빠르게 서비스를 구축하는 과정에서 데이터 구조를 자주 업데이트 하는 경우