Skip to content

MariaDB

Jongchan_Choi edited this page Jun 13, 2024 · 7 revisions

MariaDB는 MySQL 데이터베이스 관리 시스템의 오픈 소스 대안으로, MySQL의 창시자들이 만든 데이터베이스 관리 시스템(DBMS)입니다. MariaDB는 높은 성능과 안정성, 확장성을 제공하며, 다양한 운영 체제와 플랫폼에서 사용할 수 있습니다.

도입 이유

  1. 오픈 소스 및 비용 효율성
    MariaDB는 오픈 소스로 제공되어 라이선스 비용이 없으며, 이로 인해 비용을 절감할 수 있습니다.

  2. MySQL 호환성
    MariaDB는 MySQL과의 호환성을 보장하기 때문에, 기존에 MySQL을 사용하던 기업들이 비교적 쉽게 마이그레이션할 수 있습니다. 기존 MySQL 애플리케이션을 MariaDB로 이전할 때 큰 수정 없이 호환성을 유지할 수 있어 편리합니다.

  3. 고성능 및 확장성
    MariaDB는 InnoDB와 같은 고성능 스토리지 엔진을 사용하여 뛰어난 성능을 제공합니다. 클러스터링과 분산 데이터베이스를 지원하여 대규모 트래픽 처리와 데이터베이스 확장이 필요한 경우에도 용이합니다.

  4. 커뮤니티 지원과 지속적인 개발
    MariaDB는 활발한 커뮤니티와 개발자들에 의해 지속적으로 개발 및 업데이트되고 있습니다. 이는 버그 수정, 보안 강화, 새로운 기능 추가 등에 있어서 안정성과 기능성을 지속적으로 향상시킬 수 있는 장점을 제공합니다.

  5. 보안 강화
    MariaDB는 강력한 보안 기능을 갖추고 있습니다. 데이터 암호화, SSL 연결 지원, 강화된 사용자 인증 및 권한 관리 등의 기능을 제공하여 데이터베이스의 보안을 강화할 수 있습니다.

  6. 업계 인식과 신뢰도
    MariaDB는 많은 기업에서 사용되고 있으며, 이미 업계에서 검증된 데이터베이스 시스템으로 인식되고 있습니다. 이는 신규 도입 시 안정성과 신뢰성을 보장받을 수 있는 요소가 됩니다.

Trigger

데이터 무결성과 정합성, 그리고 효율적인 자원 관리를 위하여 MariaDB 내 Trigger를 통해 데이터를 논리에 맞게 관리하였습니다.

이에 따라 PPM ERP solution에는 다음과 같은 Trigger가 적용되어 있습니다.

  1. 업무 현황에 따른 일정 진행률 갱신 Trigger
  2. 부모 일정의 깊이에 따른 일정의 깊이 갱신 및 설정 Trigger
  3. 사원 이름과 구성원 이름 갱신 Trigger

Patch Note

24.05.02
  • DB 초안 완성

주제영역1_LOG 주제영역1_PHY_MYSQL

24.05.03
알림
- 카카오톡, 이메일 기능 도입으로 인한 **템플릿 테이블 추가**

일정
- 일정에 필요한 **업무 테이블 추가**

주제영역1_LOG 주제영역1_PHY_MYSQL

24.05.07
프로젝트
- 프로젝트 생성일시, 수정일시 추가

일정
- 일정 생성일시, 수정일시 추가

주제영역1_LOG 주제영역1_PHY_MYSQL

24.05.08
전체
- 모든 테이블에 삭제여부(테이블명_is_deleted), 삭제일시(테이블명_deleted_date) 추가

공통코드 테이블
- 공통코드 식별자 이름 변경 '공통코드(code_code)' -> '공통코드 ID'(code_id)
- 공통코드, 공통코드그룹 삭제일시를 제외한 모든 속성에 NOTNULL 부여

회원 테이블
- 회원(employee)테이블의 이름과 비밀번호의 길이, 컬럼명이 뒤바뀐 오류 수정

주제영역1_LOG 주제영역1_PHY_MYSQL

24.05.10
전체
- 공통코드를 제외한 PK가 INTEGER인 모든 테이블에 AUTO_INCREMENT 적용

공통코드(프로젝트 상태)
- 공통코드(프로젝트 상태)에서 '임시', '실행' 상태 삭제

휴일 테이블
- 휴일 삭제 일시를 제외한 모든 속성에 NotNull 부여

그래프 테이블
- MongoDB 이전으로 인한 삭제

일정요구사항맵 테이블
- 인조키(PK) 추가

PL권한 테이블
- 인조키(PK) 추가
- PL권한 테이블의 테이블명 변경 (project_lead_permission -> pl_permission)

주제영역1_LOG 주제영역1_PHY_MYSQL

24.05.22
토큰
- 회원 관리를 위한 토큰 테이블 추가
발신
- 알림 기능 설계로 인한 속성 변경
알림
- 알림 기능 설계로 인한 속성 변경

카카오톡 템플릿, 이메일 템플릿
- 알림 기능 설계로 인한 템플릿 테이블 제거
역할, PL 권한
- 역할 및 권한 처리 기능 설계로 인한 테이블 수정 및 삭제

구성원
- 역할 테이블 삭제로 인한 구성원 역할 ID 속성 삭제

주제영역1_LOG 주제영역1_PHY_MYSQL

24.05.31
구성원
- 구성원 참조 시, 사원 이름을 빈번히 사용하므로, 해당 테이블에 이름 속성 추가

권한
- 권한 역할명 -> 권한 구분으로 변경
- 권한 공통코드를 PM, PL, 참여자에서 PM, PL, PA로 변경
- 권한을 구성원 내부에 속성으로서 추가함에 따라, 권한 테이블 삭제

주제영역1_LOG 주제영역1_PHY_MYSQL

24.06.03
구성원
- 구성원 권한 구분 속성명 수정 (project_member_role_name -> project_member_role_id)

주제영역1_LOG 주제영역1_PHY_MYSQL

24.06.04
알림
- 알림 속성명 수정 (read -> mark_as_read)

주제영역1_LOG 주제영역1_PHY_MYSQL

24.06.09
회원
- 관리자 추가로 인한 회원 역할 속성 추가

주제영역1_LOG 주제영역1_PHY_MYSQL

Clone this wiki locally