1. DB
한 조직 내에서 필요로 하는 데이터를 공동으로 사용할 수 있도록 중복을 최소화하여 통합 저장한 데이터의 집합체.
특징
- 데이터의 대규모 저장소로서, 여러 사용자에 의해 동시에 사용됨.
- 모든 데이터가 중복을 최소화하면서 통합됨.
2. 데이터 베이스 스키마
관계형 데이터베이스에서 데이터가 구조화되는 방식
구성요소 :
- 테이블: 데이터를 저장하는 기본 단위
- 컬럼: 테이블의 각 필드를 나타냅니다.
- 데이터 타입: 각 컬럼에 저장될 데이터의 유형
- 키: 테이블의 각 레코드를 고유하게 식별하는 필드
- 제약 조건: 데이터의 유효성을 검사하는 규칙
데이터베이스 스키마는 데이터베이스 관리 시스템(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 사용이 적합한 경우
- 데이터베이스의 ACID 성질을 준수해야 하는 경우
(ACID는 Atomicity(원자성), Consistency(일관성), Isolation(격리성), Durability(지속성) 를 의미합니다.) - 소프트웨어에 사용되는 데이터가 구조적이고 일관적인 경우
- 소프트웨어(프로젝트)의 규모가 많은 서버를 필요로 하지 않고 일관된 데이터를 사용하는 경우, 관계형 데이터베이스를 사용하는 경우가 많습니다.
2) NoSQL 사용이 적합한 경우
- 데이터의 구조가 거의 또는 전혀 없는 대용량의 데이터를 저장하는 경우
- 클라우드 컴퓨팅 및 저장공간을 최대한 활용하는 경우
- 빠르게 서비스를 구축하는 과정에서 데이터 구조를 자주 업데이트 하는 경우