나는 현재 데이터 베이스에 대해 공부하고 있다.
데이터 베이스의 기본 개념을 더욱 확실히 알아갈 필요가 있다고 생각했다.
그래서 오늘은 데이터 베이스의 개념에 대해 포스팅해보려고 한다.
💻데이터 베이스란?
데이터베이스(Database, DB)는 데이터를 체계적으로 저장하고 관리하는 시스템이다.
단순히 데이터를 저장하는 것이 아니라, 효율적인 검색, 수정, 삭제가 가능하도록 설계된 것이 특징이다.
소프트웨어 및 정보 시스템에서는 데이터 관리가 필수적이며,
데이터베이스를 활용하면 데이터를 일관성 있게 유지하고, 안전하게 저장하며, 효율적으로 활용할 수 있다.
💻파일 시스템과 데이터베이스의 비교
과거에는 데이터를 관리하기 위해 파일 시스템(File System)을 많이 사용했다.
하지만 데이터가 많아지고 여러 사용자가 동시에 데이터를 처리해야 하는 상황이 증가하면서,
파일 시스템의 한계가 분명해졌고 데이터베이스 시스템이 이를 대체하게 되었다.
구분 | 파일 시스템 | 데이터베이스 |
데이터 저장 방식 | 개별 파일에 데이터를 저장 | 테이블 형태로 구조화하여 저장 |
데이터 중복 | 중복 저장이 많음 | 중복을 최소화(정규화) |
데이터 무결성 | 데이터 불일치 가능성 있음 | 무결성 제약 조건 적용 가능 |
데이터 검색 속도 | 데이터가 많아질수록 속도가 느려짐 | 인덱스를 활용하여 빠르게 검색 가능 |
동시 접근 | 여러 사용자가 동시에 수정하면 충돌 발생 가능 | 동시성을 지원하여 여러 사용자가 안전하게 접근 가능 |
보안 및 권한 관리 | 파일별 권한 관리만 가능 | 사용자별 세부적인 접근 권한 설정 가능 |
💻데이터베이스의 주요 특징
1. 실시간 접근성(Real-time Accessibility)
- 데이터는 필요할 때 즉시 조회하고 사용할 수 있어야 한다.
- 예: 온라인 쇼핑몰에서 실시간으로 상품 재고를 확인 가능.
2. 지속적인 변화(Continuous Evolution)
- 데이터는 항상 최신 상태로 유지되며, 지속적으로 변경된다.
- 예: 은행 계좌의 잔액이 변동될 때 즉시 반영됨.
3. 동시 공유(Concurrent Sharing)
- 여러 사용자가 동시에 같은 데이터에 접근할 수 있도록 관리해야 한다.
- 예: 여러 사용자가 동시에 송금할 때 데이터 충돌 없이 처리됨.
4. 내용에 대한 참조(Content-based Referencing)
- 데이터는 내용 자체를 기준으로 검색할 수 있어야 한다.
- 예: "이름이 김철수인 고객을 찾아라"와 같은 질의 수행 가능.
💻관계형 데이터베이스 시스템(RDBMS)란?
관계형 데이터베이스(Relational Database, RDB)는 테이블(Table) 형식으로 데이터를 저장하고,
테이블 간의 관계를 설정하여 데이터를 관리하는 데이터베이스이다.
그리고 관계형 데이터베이스 시스템(RDBMS, Relational Database Management System)은
데이터를 관계형 모델(Relational Model)로 저장하고 관리하는 데이터베이스 관리 시스템이다.
⌨️RDBMS의 주요 특징
테이블(Table) 기반의 데이터 저장
- 데이터를 행(Row)과 열(Column) 형식으로 저장한다.
- 동일한 구조를 가진 여러 개의 테이블이 존재하며, 각 테이블은 고유한 역할을 가진다.
키(Key) 사용
- 각 행을 유일하게 식별하기 위해 기본 키(Primary Key, PK)를 사용한다.
- 다른 테이블과 연결하기 위해 외래 키(Foreign Key, FK)를 사용하여 데이터 무결성을 유지한다.
SQL(Structured Query Language) 사용
- 데이터를 조작하고 관리하기 위해 SQL이라는 표준 질의 언어를 사용한다.
데이터 무결성(Integrity) 보장
- 관계형 데이터베이스에서는 기본 키, 외래 키, 제약 조건 등을 통해 데이터의 정확성과 일관성을 유지할 수 있다.
- 예: 학번이 중복되지 않도록 설정하거나, 이메일이 공백일 수 없도록 제한할 수 있다.
데이터 중복 최소화(Normalization)
- 정규화(Normalization) 기법을 적용하여 데이터 중복을 최소화하고, 저장 공간을 효율적으로 사용할 수 있다.
다중 사용자 지원 및 동시성 제어(Concurrency Control)
- 여러 사용자가 동시에 데이터에 접근할 때 충돌이 발생하지 않도록 트랜잭션(Transaction) 관리 및 잠금(Locking) 기법을 사용한다.
보안 및 접근 제어(Security & Access Control)
- 사용자별 권한 설정을 통해 특정 사용자만 데이터 조회, 수정, 삭제가 가능하도록 제어할 수 있다.
⌨️대표적인 관계형 데이터베이스 시스템(RDBMS)
다음은 가장 많이 사용되는 대표적인 관계형 데이터베이스 시스템들이다.
데이터베이스 시스템 | 특징 |
MySQL | 오픈소스이며, 빠른 속도와 쉬운 사용법으로 웹 개발에서 많이 사용됨. |
PostgreSQL | 오픈소스이며, 복잡한 데이터 처리 및 확장성 면에서 강력한 기능 제공. |
Oracle Database | 대기업 및 금융권에서 주로 사용되며, 보안과 성능이 뛰어남. |
Microsoft SQL Server | 마이크로소프트에서 개발한 RDBMS로, 윈도우 환경에서 강력한 성능 제공. |
MariaDB | MySQL에서 파생된 오픈소스 DB로, MySQL과 호환 가능. |
💻마무리
오늘은 데이터베이스의 기본 개념에 대해 알아보았다.
오늘의 포스팅을 자주 들여다봐서 데이터베이스를 사용하는 이유를 더욱 이해하고 의미있게 사용해보려고 한다.
현재 나는 오라클을 배우고 있기 때문에 다음에는 오라클에 대한 포스팅을 해보려고 한다.