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

[DB응용/데이터베이스] 1학기 중간고사 대비 개념정리(일부)

simless786-it 2025. 4. 12. 14:08

 

 Database란 무엇인가?

DataBase.

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

주요 특징-(무결성, 독립성, 중복 최소화, 동시성 제어, 보안성)

 

데이터란 무엇인가?

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

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

 

구조적 데이터(Structured Data)

-정해진 형식(, , )으로 저장되는 데이터. 관계형 데이터베이스(RDBMS)에서 주로 사용. ) 엑셀 스프레드시트, 데이터베이스 테이블.

 

비구조적 데이터(Unstructured Data)

-형식이 일정하지 않은 데이터. 텍스트, 이미지, 동영상, 소셜미디어 게시글 등...

 

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

데이터 기반 의사결정(Data-Driven Decision Making, DDDM): 경험과 직관이 아닌 데이터를 기반으로 의사결정을 내리는 방식. 실시간 분석은 빠른 데이터 분석을 통해 즉각적인 의사결정을 지원.

 

컴퓨터, S/W, 전산시스템의 장점은 무엇인가?(우리가 왜 사용하는가?)

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

EDPS는 전자 데이터 처리 시스템임. 컴퓨터를 이용하여 데이터를 자동으로 처리하는 시스템. 인풋-> 프로세스-> 출력 과정을 자동화함.

 

왜 반드시 DB를 사용해야하는가? (DB라는 도구가 필요한 궁극적인 목적은 무엇인가?)

Reliability. 신뢰성.

 

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

 

데이터 보안(Security)강화: 사용자 권한 관리(User Authentication & Authoriztion)를 통해 접근 가능한 사용자 제한. 암호화(Encryption) 및 백업 기능을 통해 해킹과 데이터 유출 방지. 데이터 변경 시 로그 기록(Audit Log)를 남겨 추적 가능!

 

데이터 신뢰성(Reliability) 보장: DBACID(Atomicity, Consistency, Isolation, Durability) 속성을 통해 데이터가 정확하게 처리됨을 보장. 이 외에도 데이터 백업 및 복구, 대량 데이터 효율적 관리 등의 장점이 있음.

 

DB는 어떻게 저장된 데이터를 신뢰할 수 있게 만드는가?

Structured(구조화)Integrity를 기반으로 설명하겠음!

DB는 구조적 저장 방식과 데이터 무결성 보장 기법을 활용해 신뢰할 수 있는 데이터를 유지함.

구조적 저장 방식은 체계적인 데이터 관리를 지원. 빠른 검색과 일관성 유지, 데이터 중복 최소화 등의 이점을 제공.

 

관계형 데이터베이스(RDBMS)사용: 데이터를 행(row)와 열(Column)로 구성된 테이블 형태로 저장.

기본키(Primary Key)를 활용해 각 데이터를 고유하게 식별하고, 외래키(Foregin Key)를 통해 테이블 간의 관계를 유지한다.

 

정규화(Normalization)-데이터 중복 방지: 데이터를 여러 개의 테이블로 나누어 중복과 불필요한 데이터 저장을 방지. 데이터 일관성을 유지하고 스토리지를 효율적으로 사용한다. 예로는 학생 테이블과 학과 테이블을 분리하여 관리하는 것이 있음. 검색 속도가 향상되고 데이터 중복 방지와 데이터 변경이 용이하다는 장점이 있음.

 

데이터 무결성(Integrity)-데이터의 정확성 및 일관성 보장: DB는 무결성 제약 조건인 Integrity Constranits를 적용하여 데이터의 신뢰성을 유지함.

개체 무결성-기본키(primary Key) : 각행 (row)는 고유한 식별자(Primary Key)를 가져야 함. 중복된 기본키를 허용하지 않으며, NULL값을 가질 수 없다.

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

도메인 무결성(Domain Integrity): 데이터 형식 제한: 특정 칼럼이 정해진 데이터 유형과 범위를 벗어나지 않도록 제한. 데이터 입력 오류를 방지하여 데이터의 신뢰성 향상.

트랜잭션 무결성(Transaction Integrity)-ACID 속성 보장: 데이터베이스는 트랜잭션을 통해 데이터를 신뢰할 수 있게 관리. ACID속성을 유지해 데이터 손실이나 충돌 방지.

[ACID개념]

원자성(Atomicity): 트랜잭션이 모두 수행되거나 전혀 수행되지 않음.

일관성(Consistency): 트랜잭션 전후 데이터가 일관성 유지

격리성(Isolation): 여러 트랜잭션이 동시에 실행되어도 서로 간섭하지 않음.

지속성(Durability): 트랜잭션이 완료되면 시스템 장애가 발생해도 변경 사항이 유지.

 

결론(Definition of DB)

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

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

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

 

생산적인, 효율적인 DB생성 방법은 무엇인가?

CASE(Computer Aided S/W Engineering) Tool 도구를 이용하는 것.

정말 다양한 CASE 도구들이 쏟아지고 있음. 이를 잘 활용하는 것이 중요함.

 

 

전산시스템의 전체 설계과정과 의사결정에의 활용 과정도

시스템 개발 생명주기인 SDLC를 기준으로 설명하겠음.

 

-요구 분석 (Requirement Analysis)

사용자 요구사항 파악

시스템의 목표 정의

-계획 수립 (Planning)

자원(예산, 인력, 시간) 계획

일정 및 리스크 관리 계획

-시스템 설계 (System Design)

논리적 설계: 데이터 흐름, DB 설계(ERD )

물리적 설계: 하드웨어, 네트워크 구조 등

-구현 (Implementation)

프로그램 개발

데이터베이스 구축

시스템 통합

-테스트 (Testing)

단위 테스트, 통합 테스트, 시스템 테스트

버그 수정

-운영 및 유지보수 (Operation & Maintenance)

실제 사용 환경에서 운영

기능 추가 및 오류 수정

 

전산시스템 의사결정 활용 과정도

데이터 수집->데이터 저장 및 관리->데이터 분석->정보 제공->의사결정 지원

 

Mapping Rule

매핑 규칙은 ER모델(개념적 모델)을 관계형 모델(릴레이션 스키마)로 변환할 때 적용하는 규칙을 말함.

ERD(Entity Relationship Diagram)를 관계형 데이터베이스 테이블로 변환할 때 사용하는 규칙.

Strong Entity-> Table: 강한 개체는 그대로 테이블로 생성. 기본키(PK)는 엔터티의 식별자 속성 사용

Weak Entity->Table(with PK포함): 약한 개체는 자신의 속성 + 주 엔터티의 PK포함. 주 엔터티와의 관계에서 복합키(PK)구성.

1:1(일대일) 관계-> 하나의 테이블에 FK로 통합하거나 별도 테이블: 관계 참여자가 둘 다 선택적이면 새 테이블로 생성. 하나가 필수면 그쪽 테이블에 FK추가.

1:N(일대다) 관계-> N쪽에 FK 추가: N(다수 참여자) 테이블에 1쪽의 PK를 외래키(FK)로 추가

M:N(다대다) 관계-> 새로운 테이블 생성: 두 개체의 PK를 합쳐서 새로운 관계 테이블 생성. PK는 이 테이블의 FK이자 복합 PK

 

6. Normalization(정규화)

-중복 데이터를 제거하고, 이상(anomaly)을 방지하기 위해 테이블을 구조적으로 나누는 과정. 데이터를 논리적으로 정리해서 삽입/삭제/갱신 시 오류 방지가 목적임. 1NF, 2NF, 3NF와 그 이상이 있음.

-정규화의 장점: 데이터 중복 제거, 무결성 유지, 갱신/ 삭제 이상 방지

-정규화의 단점: 테이블이 많아져 조인 연산 증가, 속도 저하 가능성.

 

 

1. 관계란 무엇인가?

-두 테이블간의 업무적 연관성을 표현한 것이다.

-관계(relationship)이란, 두 개 이상의 테이블(엔터티) 간의 연결 또는 연관성을 의미.

 

2. 관계는 왜 필요하고 왜 만들어지는가?

-현실 세계의 연관된 정보를 표현하고, 중복 없이 효율적으로 관리하기 위해서다.

-이유로는, 현실 세계의 데이터는 서로 연결되어 있기 때문이고, 데이터 중복을 줄이기 위해서이며, 데이터 무결성과 일관성을 유지하기 위해서이다.

 

3. 관계의 종류

3-1. 현실에서의 관계(3가지)

-일대일, 일대다, 다대다

 

3-2. DB에서의 관계(2가지)

-데이터베이스에서는 M:N 관계를 직접 표현할 수 없다.

-1:1 관계, 1:N 관계.

-M:N->1:N+1:N 변환

 

4. 식별관계와 비식별관계

식별관계(Identifying R)

-약한 엔터티(Weak Entity)가 존재할 수 있으려면, 다른 강한 엔터티의 기본키(PK)를 식별자(Primary Key)로 함께 사용해야 할 때의 관계. 자체적으로 독립된 식별자가 없어서 다른 엔터티의 키에 의존해야만 존재 가능한 관계임.

 

비식별관계(Non Identifying R)

-자식 엔터티가 부모 엔터키의 기본키(PK)를 참조(FK)는 하지만 자신의 기본키(PK)에는 포함하지 않는 관계. 자식 엔터티가 부모 없이도 독립적으로 식별 가능한 경우다. 부모와 연결은 되어 있지만, 존재 의존은 하지 않음.

 

5. 식별, 비식별 관계의 적용 방법

-일단 무조건 비식별 관계로 설정한다.

-자식테이블쪽에 두 개의 샘플 레코드를 입력해본다

-이때 자식테이블내의 PK가 본연의 역할을 잘 수행한다면 비식별관계이다.

-만일 자식테이블내의 PK가 본연의 역할에 문제가 생긴다면 식별관계이다.