2025-소프트웨어과 2학년/데이터베이스 응용(DB응용)

DB응용-데이터베이스 응용 01

simless786-it 2025. 3. 14. 12:38

데이터베이스란 무엇인가?

데이터베이스(Database)란 조직적이고 체계적으로 데이터를 저장하고 관리하는 시스템을 의미한다. 데이터베이스는 필요한 정보를 효율적으로 저장, 검색, 수정, 삭제할 수 있도록 설계된 구조를 가진다.

데이터베이스의 주요 특징은 다음과 같다:

  • 데이터의 무결성(Integrity): 정확성과 일관성을 유지함
  • 데이터의 독립성(Independence): 응용 프로그램과 데이터가 분리되어 관리됨
  • 데이터의 중복 최소화: 같은 데이터를 여러 번 저장하는 것을 방지
  • 동시성 제어(Concurrency Control): 여러 사용자가 동시에 접근 가능
  • 보안성(Security): 사용자 권한을 설정하여 데이터 보호

데이터는 왜 모아두어야 하나?

데이터를 체계적으로 모아두는 이유는 의사결정 지원, 업무 효율성 향상, 분석 및 예측을 통한 미래 대비 때문이다.

  • 과거 기록 보관: 데이터를 저장하면 나중에 필요할 때 참조할 수 있다.
  • 패턴 및 트렌드 분석: 일정 기간 동안 데이터를 축적하면 경향을 파악하고 미래를 예측할 수 있다.
  • 의사결정 지원: 데이터 기반 의사결정을 통해 주관적인 판단을 줄이고, 더 정확한 결정을 내릴 수 있다.
  • 자동화 및 효율성 향상: 반복적인 작업을 데이터 기반으로 자동화할 수 있어 효율이 증가한다.

데이터의 개념

데이터(Data)란 사실, 사건, 숫자, 문자, 이미지 등 다양한 형태로 존재하는 정보의 원천을 의미한다.

  • 원시 데이터(Raw Data): 가공되지 않은 상태의 데이터
  • 정보(Information): 데이터를 가공하고 분석하여 의미를 부여한 것
  • 지식(Knowledge): 정보를 활용하여 패턴을 발견하고, 의미 있는 인사이트를 도출한 것

구조적 데이터와 비구조적 데이터

  1. 구조적 데이터(Structured Data)
    • 정해진 형식(표, 행, 열)으로 저장되는 데이터
    • 관계형 데이터베이스(RDBMS)에서 주로 사용됨
    • 예: 엑셀 스프레드시트, 데이터베이스 테이블
  2. 비구조적 데이터(Unstructured Data)
    • 형식이 일정하지 않은 데이터
    • 텍스트, 이미지, 동영상, 소셜미디어 게시글 등
    • 예: 이메일, PDF 문서, 사진, 영상 파일

데이터 변환이 필요한 이유

데이터 변환(Data Transformation)은 데이터를 분석하고 활용할 수 있도록 변형하는 과정을 의미한다.

  • 데이터 일관성 유지: 서로 다른 형식의 데이터를 동일한 형식으로 변환하여 활용성을 높임
  • 중복 및 오류 제거: 불필요한 데이터 제거 및 정제
  • 데이터 통합: 여러 출처에서 가져온 데이터를 하나로 합쳐 분석 가능하도록 만듦
  • 다양한 시스템에서 활용: 특정 시스템에서만 사용할 수 있는 데이터를 다른 시스템에서도 활용할 수 있도록 변환

조직화해서 저장해두는 이유

데이터를 체계적으로 정리하고 저장하는 이유는 빠른 검색, 효율적인 관리, 보안 강화 때문이다.

  • 빠른 검색 및 조회: 필요한 정보를 빠르게 찾을 수 있음
  • 데이터 무결성 유지: 중복된 데이터를 방지하고, 오류를 줄일 수 있음
  • 보안성 강화: 중요한 정보를 보호하기 위해 접근 권한을 설정할 수 있음
  • 백업 및 복구 용이: 데이터가 손실되었을 때 쉽게 복구할 수 있도록 함

의사결정과 데이터의 역할

데이터는 의사결정을 내리는 데 중요한 역할을 한다.

  • 데이터 기반 의사결정(Data-Driven Decision Making, DDDM): 경험과 직관이 아닌 데이터를 기반으로 의사결정을 내리는 방식
  • 실시간 분석: 빠른 데이터 분석을 통해 즉각적인 의사결정을 지원
  • 미래 예측: 과거 데이터를 바탕으로 미래 트렌드와 위험 요소를 예측
  • 비즈니스 전략 수립: 데이터 분석을 통해 최적의 마케팅 전략 및 운영 계획을 세울 수 있음

데이터를 효과적으로 관리하고 활용하면 비즈니스 성장, 문제 해결, 경쟁력 강화에 기여할 수 있다.

 

컴퓨터, 소프트웨어, 전산 시스템의 장점과 데이터 처리 과정

컴퓨터와 소프트웨어, 전산 시스템은 데이터를 빠르고 정확하게 처리하여 효율성, 자동화, 보안성, 신뢰성을 높이는 장점이 있다. 이를 데이터 인풋(Input), 프로세스(Process), EDPS(Electronic Data Processing System) 개념을 사용하여 설명하면 다음과 같다.


1. 데이터 인풋(Input) – 데이터 입력

  • 데이터를 전산 시스템에 입력하는 과정
  • 키보드, 마우스, 바코드 리더기, 센서, 카메라 등을 통해 입력 가능
  • 장점: 빠른 데이터 수집, 정확한 입력, 자동화 가능

예시:

  • 온라인 쇼핑몰에서 고객이 주문 정보를 입력
  • 병원에서 환자 정보를 전산 시스템에 등록

2. 프로세스(Process) – 데이터 처리

  • 입력된 데이터를 연산, 변환, 분석하는 단계
  • CPU, 소프트웨어, 알고리즘 등을 이용하여 처리
  • 장점: 대량의 데이터를 빠르고 정확하게 처리, 반복적인 작업 자동화

예시:

  • 은행에서 고객의 계좌 이체 요청을 처리
  • 검색 엔진이 입력된 키워드에 맞는 정보를 찾아 제공

3. EDPS(Electronic Data Processing System) – 전자 데이터 처리 시스템

  • 컴퓨터를 이용하여 데이터를 자동으로 처리하는 시스템
  • 데이터 입력(Input) → 처리(Process) → 출력(Output) 과정을 자동화
  • 장점: 업무 속도 향상, 오류 감소, 비용 절감, 데이터 보안 강화

예시:

  • ERP(Enterprise Resource Planning) 시스템을 이용한 기업의 재고 및 회계 관리
  • AI 기반 추천 시스템(예: 넷플릭스, 유튜브)이 사용자 데이터를 분석하여 맞춤형 콘텐츠 추천

결론

컴퓨터와 소프트웨어, 전산 시스템은 데이터 입력(Input), 처리(Process), EDPS를 통해 업무 효율성을 극대화한다.
이를 활용하면 기업 운영, 금융 거래, 의료 시스템, 온라인 서비스 등 다양한 분야에서 빠르고 정확한 데이터 처리가 가능하다.

 

왜 반드시 DB(데이터베이스)를 사용해야 하는가? – 신뢰성을 바탕으로 설명

데이터베이스(DB)는 단순한 데이터 저장소가 아니라, 데이터의 신뢰성을 보장하며, 효율적인 관리, 보안성, 무결성 유지, 백업 및 복구 기능을 제공하는 핵심 시스템이다. 특히 **신뢰성(Reliability)**을 바탕으로 DB의 필요성을 설명하면 다음과 같다.


1. 데이터 무결성(Integrity) 유지

  • DB는 정확하고 일관된 데이터를 유지하도록 설계됨
  • 트랜잭션(Transaction) 관리를 통해 데이터가 손상되거나 중복되는 것을 방지
  • **제약 조건(Constraints)**을 설정하여 잘못된 데이터 입력 방지

예시:

  • 은행 계좌의 잔액이 마이너스로 기록되지 않도록 설정 가능
  • 동일한 고객 ID가 중복으로 저장되지 않도록 제약 조건 설정

2. 데이터 보안(Security) 강화

  • **사용자 권한 관리(User Authentication & Authorization)**를 통해 접근 가능한 사용자 제한
  • 암호화(Encryption)백업(Backup) 기능을 통해 해킹, 데이터 유출 방지
  • 데이터 변경 시 **로그 기록(Audit Log)**을 남겨 추적 가능

예시:

  • 병원 전산 시스템에서 의사만 환자의 진료 기록을 수정할 수 있도록 권한 설정
  • 온라인 쇼핑몰에서 고객의 신용카드 정보를 암호화하여 저장

3. 데이터 신뢰성(Reliability) 보장

  • DB는 ACID(Atomicity, Consistency, Isolation, Durability) 속성을 통해 데이터가 정확하게 처리됨을 보장
    • 원자성(Atomicity): 트랜잭션이 완전히 수행되거나 전혀 수행되지 않도록 보장
    • 일관성(Consistency): 데이터가 항상 유효한 상태로 유지됨
    • 격리성(Isolation): 여러 사용자가 동시에 접근해도 데이터가 충돌하지 않음
    • 지속성(Durability): 시스템 장애가 발생해도 데이터가 손실되지 않음

예시:

  • 은행에서 계좌 이체를 수행할 때, 돈이 출금되었으나 입금되지 않는 오류 방지
  • 전자상거래 사이트에서 주문 결제가 진행 중일 때 시스템이 멈춰도 트랜잭션이 복구됨

4. 데이터 백업 및 복구(Backup & Recovery) 가능

  • 데이터 손실을 방지하기 위해 자동 백업 시스템 제공
  • DBMS(Database Management System)를 사용하면 특정 시점으로 복구 가능

예시:

  • 기업의 서버가 다운되더라도, 백업 데이터를 사용하여 정상 상태로 복원 가능
  • 고객이 실수로 데이터를 삭제했을 때, 백업된 데이터를 복구할 수 있음

5. 대량 데이터의 효율적인 관리

  • 구조화된 데이터(Structured Data)뿐만 아니라, 비구조화된 데이터(Unstructured Data)도 효율적으로 저장 및 관리 가능
  • 데이터 검색, 업데이트, 삭제 속도가 빠르며, SQL 등의 쿼리 언어를 이용해 손쉽게 조작 가능

예시:

  • 검색 엔진이 수십억 개의 웹페이지 데이터를 빠르게 검색 가능
  • 온라인 쇼핑몰에서 수백만 개의 상품 정보를 빠르게 조회

결론: 반드시 DB를 사용해야 하는 이유

데이터베이스는 데이터 무결성, 보안, 신뢰성, 백업 및 복구 기능을 갖춘 시스템으로, 데이터의 정확성과 안정성을 보장한다.
DB를 사용하지 않으면 데이터 오류, 보안 취약점, 정보 유실 등의 문제가 발생할 가능성이 높아 기업 및 조직에서 데이터베이스 활용은 필수적이다.

 

DB는 어떻게 저장된 데이터를 신뢰할 수 있게 만드는가? (Structured & Integrity 기반)

데이터베이스(DB)는 구조적 저장 방식(Structured Data)과 데이터 무결성(Integrity) 보장 기법을 활용하여 신뢰할 수 있는 데이터를 유지한다. 이를 통해 데이터의 정확성, 일관성, 보안성을 보장하여 사용자와 시스템이 안심하고 데이터를 활용할 수 있도록 한다.


1. 구조적 저장 방식(Structured Data) – 체계적인 데이터 관리

DB는 데이터를 체계적인 구조(테이블, 관계형 모델 등)로 저장하여 빠른 검색, 일관성 유지, 데이터 중복 최소화 등의 이점을 제공한다.

① 관계형 데이터베이스(RDBMS) 사용

  • 데이터를 **행(Row)과 열(Column)**로 구성된 테이블(Table) 형태로 저장
  • **기본키(Primary Key)**를 활용하여 각 데이터를 고유하게 식별
  • **외래키(Foreign Key)**를 통해 테이블 간의 관계를 유지

예시

Student_ID Name Major Age

1001 홍길동 컴퓨터공학 21
1002 김철수 데이터과학 22
  • Student_ID(기본키)로 학생을 고유하게 식별
  • 데이터가 중복 없이 저장되며, 검색 시 빠르게 조회 가능

② 정규화(Normalization) – 데이터 중복 방지

  • 데이터를 여러 개의 테이블로 나누어 중복과 불필요한 데이터 저장 방지
  • 데이터 일관성을 유지하고, 스토리지를 효율적으로 사용

예시

  • 학생(Student) 테이블과 학과(Major) 테이블을 분리하여 관리
  • 한 학과에 여러 학생이 속할 수 있지만, 학과 정보는 한 곳에서만 관리됨

장점

  • 데이터가 구조화되어 있어 검색 속도 향상
  • 데이터 중복 방지 → 일관성 유지
  • 데이터 변경 용이 → 유지보수 쉬움

2. 데이터 무결성(Integrity) – 데이터의 정확성 및 일관성 보장

DB는 **무결성 제약 조건(Integrity Constraints)**을 적용하여 데이터의 신뢰성을 유지한다.

① 개체 무결성(Entity Integrity) – 기본키(Primary Key) 활용

  • 각 행(Row)는 고유한 식별자(Primary Key)를 가져야 한다.
  • 중복된 기본키를 허용하지 않으며, NULL 값을 가질 수 없음

예시

Student_ID (PK) Name Major

1001 홍길동 컴퓨터공학
1002 김철수 데이터과학
  • Student_ID가 중복되지 않아, 각 학생을 정확하게 구분 가능

② 참조 무결성(Referential Integrity) – 외래키(Foreign Key) 활용

  • 두 테이블 간 관계를 유지하는 규칙
  • **외래키(Foreign Key)**를 사용하여 한 테이블의 데이터가 다른 테이블의 데이터를 참조할 수 있도록 함
  • 삭제 및 변경 제약을 설정하여 데이터의 불일치를 방지

예시

Course_ID (PK) Course_Name Professor

CS101 데이터베이스 김교수님
CS102 운영체제 박교수님

Student_ID (PK) Name Course_ID (FK)

1001 홍길동 CS101
1002 김철수 CS102
  • Course_ID가 Course 테이블에 존재하지 않으면 Student 테이블에서 참조할 수 없음
  • Course 테이블에서 CS101이 삭제되면 Student 테이블에서도 관련 데이터가 삭제되거나 업데이트됨

③ 도메인 무결성(Domain Integrity) – 데이터 형식 제한

  • 특정 컬럼이 정해진 데이터 유형과 범위를 벗어나지 않도록 제한
  • 데이터 입력 오류를 방지하여 데이터 신뢰성 향상

예시

Student_ID Name Age (INT, 18~30)

1001 홍길동 21
1002 김철수 50 (❌ 오류)
  • Age 컬럼에는 18~30 사이의 정수만 입력 가능하도록 설정
  • 50을 입력하면 오류 발생 → 데이터 신뢰성 유지

④ 트랜잭션 무결성(Transaction Integrity) – ACID 속성 보장

  • 데이터베이스는 트랜잭션(Transaction)을 통해 데이터를 신뢰할 수 있게 관리
  • ACID 속성을 유지하여 데이터 손실이나 충돌 방지

ACID 개념

  • 원자성(Atomicity): 트랜잭션이 모두 수행되거나 전혀 수행되지 않음
  • 일관성(Consistency): 트랜잭션 전후 데이터가 일관성 유지
  • 격리성(Isolation): 여러 트랜잭션이 동시에 실행되어도 서로 간섭하지 않음
  • 지속성(Durability): 트랜잭션이 완료되면 시스템 장애가 발생해도 변경 사항이 유지됨

예시 (은행 계좌 이체)

  1. 홍길동이 10만 원을 김철수에게 이체
  2. 홍길동 계좌에서 10만 원 차감 → 트랜잭션 중간에 장애 발생 → 원래 상태로 복구됨 (원자성 보장)
  3. 홍길동 계좌에서 차감되었으면 김철수 계좌에도 10만 원 입금됨 (일관성 보장)

결론: DB는 구조적 저장(Structured)과 무결성(Integrity)으로 신뢰성을 보장한다

1. 구조적 저장(Structured Data) 활용

  • 정형화된 테이블 및 관계형 모델을 통해 데이터 중복 방지 및 검색 속도 향상
  • **정규화(Normalization)**로 데이터를 체계적으로 분류하여 관리

2. 데이터 무결성(Integrity) 보장

  • **기본키(Primary Key), 외래키(Foreign Key)**를 활용한 정확한 데이터 관리
  • 제약 조건(Constraints) 및 ACID 트랜잭션 관리를 통해 데이터 신뢰성 유지
  • 데이터 입력 오류 방지 및 삭제/수정 시 관계 유지

📌 결론:
데이터베이스는 체계적인 구조(Structured)와 강력한 무결성(Integrity) 보장 메커니즘을 통해 데이터의 정확성, 일관성, 신뢰성을 확보한다. 이러한 이유로 기업, 금융, 의료, 전자상거래 등 다양한 산업에서 DB를 필수적으로 사용하고 있다.

 

1. 관계형 DB(Relational Database, RDB)란?

관계형 데이터베이스(RDB, Relational Database)는 테이블(Table) 형태로 데이터를 저장하고, 테이블 간의 관계(Relation)를 통해 데이터를 관리하는 데이터베이스 시스템이다.

✅ 주요 특징

  • 테이블 기반 저장: 데이터를 행(Row)과 열(Column) 형태로 저장
  • 기본키(Primary Key): 각 행을 고유하게 식별
  • 외래키(Foreign Key): 테이블 간 관계를 설정하여 무결성 유지
  • SQL(Structured Query Language) 사용: 데이터를 효율적으로 검색, 삽입, 수정, 삭제 가능
  • ACID 특성 보장: 트랜잭션을 안정적으로 관리하여 데이터 신뢰성 유지

✅ 예제

💡 학생 테이블(Student Table)

Student_ID (PK) Name Major

1001 홍길동 컴퓨터공학
1002 김철수 데이터과학

💡 수업 테이블(Course Table)

Course_ID (PK) Course_Name

CS101 데이터베이스
CS102 운영체제

💡 학생-수업 관계 테이블(Enrollment Table)

Student_ID (FK) Course_ID (FK)

1001 CS101
1002 CS102

➡ **외래키(Foreign Key)**를 사용하여 학생(Student)과 수업(Course)을 연결해 관리 가능


2. DB를 사용한다고 해서 모든 데이터가 신뢰할 수 있는가?

❌ 아니오. DB를 사용한다고 해서 모든 데이터가 100% 신뢰할 수 있는 것은 아니다.

✅ 신뢰성을 저해할 수 있는 요소들

  1. 잘못된 데이터 입력
    • 사람이 직접 데이터를 입력하는 경우, 오타 또는 오류 발생 가능
    • 예: 주민등록번호를 잘못 입력하거나, 상품 가격을 0원으로 입력
  2. 중복 데이터 발생
    • 데이터 정규화(Normalization)가 미흡하면 중복 데이터가 생성될 수 있음
    • 예: 고객 정보가 여러 테이블에 중복 저장되면서 서로 다른 정보로 관리됨
  3. 부적절한 데이터 관리 정책
    • 데이터가 주기적으로 검증되지 않으면 **오래된 데이터(Obsolete Data)**가 남아있을 수 있음
    • 예: 회원이 탈퇴했지만 데이터베이스에서 삭제되지 않음
  4. 데이터 무결성(Integrity) 오류
    • 외래키 제약 조건이 설정되지 않으면 참조 무결성이 깨질 수 있음
    • 예: 학생이 존재하지 않는데 특정 수업에 등록된 상태
  5. 보안 취약점 및 해킹
    • 데이터베이스가 해킹되면 신뢰할 수 없는 데이터로 변조될 위험 존재
    • 예: 금융 데이터가 조작되거나, 개인정보가 유출됨
  6. 편향된 데이터(비윤리적 데이터 활용)
    • 데이터가 충분히 검증되지 않거나, 편향된 데이터를 학습하면 오류 발생
    • 예: AI 모델이 잘못된 데이터로 훈련되어 차별적인 결정을 내릴 수 있음

✅ 결론: DB는 신뢰성을 높여주지만, 완벽하지 않다

관계형 DB구조적 저장(Structured)과 무결성(Integrity) 보장 기법을 통해 데이터 신뢰성을 높이는 역할을 한다.
✔ 하지만, 데이터 입력 오류, 보안 취약점, 부적절한 관리 등의 문제로 인해 모든 데이터가 100% 신뢰할 수 있는 것은 아니다.
데이터 검증, 정기적인 점검, 보안 강화 등의 추가적인 조치가 필요하다.

📌 즉, DB 자체가 신뢰성을 제공하지만, 데이터 품질을 유지하려면 지속적인 관리가 필수적이다!

 

 

데이터베이스의 신뢰성을 높이는 방법

DB 자체가 데이터를 신뢰할 수 있도록 보장하는 기능을 제공하지만, 잘못된 데이터 입력, 보안 취약점, 데이터 정합성 문제 등으로 인해 완전한 신뢰를 보장할 수는 없다. 따라서 데이터의 정확성과 무결성을 유지하기 위한 추가적인 관리 방법이 필요하다.


✅ 1. 데이터 무결성(Integrity) 유지

무결성을 유지하면 데이터가 일관성 있고, 정확하며, 신뢰할 수 있는 상태를 유지할 수 있다.

① 기본키(Primary Key)와 외래키(Foreign Key) 사용

  • 기본키(PK): 각 데이터가 고유하도록 보장
  • 외래키(FK): 테이블 간 관계를 유지하여 잘못된 참조 데이터 방지

예시

  • 학생(Student) 테이블에서 동일한 학생 ID가 중복 입력되지 않도록 PK 설정
  • 수강 신청(Enrollment) 테이블에서 존재하지 않는 학생 ID를 참조하지 않도록 FK 설정

② 데이터 제약 조건(Constraints) 설정

  • NOT NULL: 필수 데이터가 빠지지 않도록 설정
  • UNIQUE: 중복 데이터를 방지
  • CHECK: 특정 값의 범위를 제한
  • DEFAULT: 기본값을 지정하여 데이터 오류 방지

예시

CREATE TABLE Student (
    Student_ID INT PRIMARY KEY,
    Name VARCHAR(50) NOT NULL,
    Age INT CHECK (Age >= 18 AND Age <= 30)
);

나이가 18~30세 사이인 경우에만 데이터 입력 가능


✅ 2. 데이터 정합성(Data Consistency) 유지

데이터 정합성이란, 데이터가 시스템 내에서 일관성을 유지하도록 관리하는 것을 의미한다.

① 정규화(Normalization) 적용 – 중복 데이터 제거

  • 중복 데이터로 인해 발생하는 데이터 불일치 문제 해결
  • 불필요한 데이터 중복을 제거하여 데이터 갱신 시 오류 방지

예시

  • 학생(Student) 테이블과 학과(Major) 테이블을 분리하여 저장
  • 학과 이름을 별도의 테이블에서 관리하여 모든 학생이 같은 학과명을 유지하도록 함

② 트랜잭션 관리 – ACID 특성 준수

DB는 트랜잭션을 통해 데이터 일관성을 유지해야 한다.
원자성(Atomicity): 트랜잭션이 완전 수행 또는 전혀 수행되지 않도록 보장
일관성(Consistency): 트랜잭션이 수행된 후에도 데이터가 유효한 상태 유지
격리성(Isolation): 여러 트랜잭션이 동시에 수행될 때 서로 간섭하지 않도록 보장
지속성(Durability): 트랜잭션이 완료되면 시스템 장애가 발생해도 데이터가 유지됨

예시 (은행 계좌 이체 트랜잭션)

START TRANSACTION;
UPDATE Account SET Balance = Balance - 10000 WHERE Account_ID = 'A001';
UPDATE Account SET Balance = Balance + 10000 WHERE Account_ID = 'A002';
COMMIT;

➡ 만약 중간에 장애가 발생하면 **롤백(ROLLBACK)**을 수행하여 원래 상태로 복구 가능


✅ 3. 데이터 품질(Data Quality) 관리

① 데이터 입력 검증

  • 입력 데이터가 올바른 값인지 사전에 검증하여 오류 방지
  • 프론트엔드 & 백엔드 레벨에서 데이터 유효성 검사 적용

예시 (전화번호 형식 검증)

CREATE TABLE Customer (
    Customer_ID INT PRIMARY KEY,
    Phone_Number VARCHAR(15) CHECK (Phone_Number LIKE '010-%')
);

잘못된 전화번호 형식 입력을 차단

② 정기적인 데이터 클리닝(Data Cleaning)

  • 오래되거나 불필요한 데이터를 정기적으로 삭제 및 업데이트
  • 오류가 있는 데이터를 감지하고 수정

예시

  • 사용하지 않는 계정 데이터 삭제
  • 중복 고객 정보 통합

✅ 4. 보안(Security) 및 접근 제어

데이터 신뢰성을 높이려면 데이터 유출 및 조작을 방지하는 보안 정책이 필요하다.

① 사용자 권한 관리(Role-Based Access Control, RBAC)

  • 관리자(Admin): 모든 데이터 읽기 및 수정 가능
  • 일반 사용자(User): 본인 데이터만 조회 가능
  • 게스트(Guest): 제한된 데이터만 접근 가능

예시 (SQL 사용자 권한 설정)

GRANT SELECT, INSERT ON Student TO 일반사용자;
REVOKE DELETE ON Student FROM 일반사용자;

일반 사용자는 데이터를 조회 및 입력 가능하지만, 삭제는 불가능

② 데이터 암호화(Encryption) 적용

  • 데이터 저장 시 암호화하여 보안 강화
  • 민감한 정보(비밀번호, 카드정보 등)를 단방향 해시(Hashing) 또는 대칭키 암호화 적용

예시 (비밀번호 해싱 저장)

UPDATE Users SET Password = SHA2('user_password', 256) WHERE User_ID = 'U001';

비밀번호를 해싱하여 저장하여 보안 강화


✅ 5. 백업 및 복구(Backup & Recovery) 체계 구축

  • 정기적인 백업 수행 → 시스템 장애 발생 시 신속한 복구 가능
  • 이중화(Replication) 적용 → 하나의 DB가 손상되더라도 다른 DB에서 복구 가능

예시 (자동 백업 설정)

BACKUP DATABASE MyDB TO DISK = 'C:\Backup\MyDB.bak' WITH FORMAT;

DB를 자동으로 백업하여 데이터 유실 방지


✅ 결론: 신뢰 가능한 DB를 만들기 위한 핵심 원칙

데이터 무결성 유지: PK, FK, 제약 조건을 활용하여 잘못된 데이터 입력 방지
데이터 정합성 유지: 정규화와 트랜잭션 관리(ACID)로 데이터 일관성 보장
데이터 품질 유지: 입력 검증, 정기적인 데이터 클리닝 수행
보안 강화: 사용자 권한 관리 및 데이터 암호화 적용
백업 및 복구 체계 구축: 장애 발생 시 데이터 복구 가능하도록 준비

📌 결론:
DB 자체가 신뢰성을 보장하는 것은 아니며, 데이터 무결성 관리, 보안, 품질 유지, 백업 체계 등을 함께 적용해야 신뢰 가능한 데이터 관리가 가능하다. 즉, DB + 철저한 데이터 관리 전략이 필수적!

 

DB는 신뢰성있는 데이터들이 저자될 수 있도록 토대를 제공하는 전산시트메 내의 중요한 구성 요소로, 최종 사용자인 End User에게 신속, 정확하고 반복된 의사결정을 도와 성공확률을 높이는데 사용되는 필수 불가결한 도구이다.

 

CASE(Computer Aided S/W Enginerring) Tool 도구를 이용하면 생산적이고 효율적인 DB를 생성할 수 있다.
->요새 정말 다양한 CASE 도구들이 쏟아지고 있다. 이를 잘 활용하는 것이 중요하다.