1. 데이터베이스(Database)
- 데이터의 집합으로, 체계적으로 데이터를 저장하고 관리하는 시스템입니다.
- 데이터를 테이블 형식으로 저장하며, 각 테이블은 행과 열로 구성됩니다. 이는 엑셀의 확장판으로 비유할 수 있습니다.
2. DBMS(Database Management System)
- 데이터베이스를 관리하는 소프트웨어로, 데이터를 저장, 수정, 삭제, 조회하는 기능을 제공합니다.
- 데이터베이스의 주요 특징으로는 동시 접속, 데이터 공유, 네트워크 기능, 보안 등이 있습니다.
- 대표적인 DBMS에는 MySQL, PostgreSQL, Oracle, SQLite 등이 있습니다.
DBMS의 특징
- 데이터 무결성: 데이터베이스에 저장된 데이터는 정확하고 신뢰할 수 있어야 합니다. 무결성은 데이터의 정확성, 일관성을 유지하기 위한 규칙으로, 중복되거나 잘못된 데이터 입력을 방지합니다.
- 데이터 일관성: 데이터베이스 내에서 동일한 데이터는 항상 일관되게 유지되어야 합니다. 즉, 하나의 데이터가 수정되면 관련된 모든 데이터에 동일한 수정이 적용되어야 합니다.
- 데이터 독립성: 데이터베이스 시스템에서는 데이터의 논리적 구조와 물리적 구조를 분리하여, 데이터 저장 방식이 변경되더라고 응용 프로그램은 영향을 받지 않는 특징을 가지고 있습니다.
- 데이터 중복 최소화: 데이터를 한 번만 저장하고 필요한 경우 관계를 통해 참조하는 방식으로 데이터를 관리합니다. 이를 통해 저장 공간을 절약하고, 데이터의 중복과 불필요한 업데이트를 방지할 수 있습니다.
- 동시성 제어: 여러 사용자가 동시에 접근하더라도, 데이터가 손상되지 않고 안전하게 관리될 수 있도록 동시성 제어 기능을 제공합니다. 여러 사용자가 같은 데이터를 수정하려고 할 때 충돌을 방지하는 역할을 합니다.
DBMS 사용자
- 일반 사용자: 응용 프로그램을 통해 간접적으로 DBMS에 접근합니다. 주로 데이터 조회, 입력, 수정, 삭제 작업을 합니다. SQL을 직접 다루지 않고, 응용 프로그램 화면을 통해 간접적으로 DBMS와 상호작용합니다.
- 응용 프로그래머: 데이터베이스와 연동된 응용 프로그램을 개발하는 사람들입니다. SQL을 사용해 데이터베이스와 직접 통신하며, 이를 통해 데이터를 조회하거나 저장하는 기능을 구현합니다.
- SQL 사용자: SQL을 사용해 DBMS에 직접 쿼리를 날리는 사용자들입니다.대이터를 조작하거나 조회할 때 SQL 질의를 작성하여 DBMS와 상호작용합니다.
- DBA(데이터베이스 관리자): 데이터베이스 설계 및 관리합니다. 데이터베이스 스키마를 정의하고 성능 최적화, 보안 관리, 백업과 복구 등을 책임집니다.
개발자의 역할
- SQL 쿼리 작성: 애플리케이션에서 필요한 데이터를 효율적으로 조회하고 조작하기 위해 SQL 쿼리를 작성합니다. 특히 성능을 고려한 쿼리 작성이 중요합니다.
- 데이터베이스 연동 코드 작성: 애플리케이션이 데이터베이스와 통신할 수 있도록 JDBC, ODBC 등의 API를 사용하여 데이터베이스 연동 코드를 작성합니다.
- 트랜잭션 처리: 데이터 일관성을 유지하기 위해 트랜잭션을 적절히 관리합니다. 여러 작업이 하나의 트랜잭션으로 처리되도록 코드를 작성합니다.
- DBA와 협업: 데이터베이스 성능에 영향을 미치는 쿼리 작성 시 DBA와 협력해 최적의 데이터베이스 구조를 설계합니다. 개발자는 테이블 및 인덱스 설계, 쿼리 최적화 등의 작업에서 DBA와 협업합니다.
SQL(Structured Query Language)
표준 SQL은 ANSI(미국 표준 협회)와 ISO(국제 표준화 기구)에서 정한 관계형 데이터베이스 언어의 표준입니다. SQL은 데이터를 조회, 삽입, 수정, 삭제하기 위한 기본적인 명령어들을 포함하고 있으며, 대부분의 DBMS(Database MAnagement System)는 이 표준 SQL을 기반으로 사용합니다.
표준 SQL이 모든 DBMS의 기본이 되는 언어입니다. 그러나 각각의 데이터베이스 시스템(Oracle, MySQL, SQL Server)은 각자 고유한 확장 기능을 가지고 있어, 표준 SQL 외에도 자신만의 기능들을 제공합니다.
- Oracle은 PL/SQL을 통해 절차적인 기능을 추가했고,
- MySQL은 표준 SQL을 거의 그대로 따르며,
- Microsoft SQL server는 T-SQL이라는 확장된 SQL을 사용하여 더 다양한 기능을 제공합니다.
이와 같은 기본 개념을 이해하면 데이터베이스와 DBMS를 효율적으로 활용할 수 있으며, ERP 시스템을 통해 기업의 자원을 효과적으로 관리할 수 있습니다.
ERP(Enterprise Resource Planning)
- 기업의 핵심 비즈니스 프로세스를 통합하고 관리하는 소프트웨어 시스템.
- 재무, 인사, 생산, 물류, 영업, 구매 등 다양한 비즈니스 기능을 통합하여, 조직 내 자원의 흐름을 실시간으로 관리하고 효율성을 극대화하는 역할을 합니다.