코딩 기록 저장소

[23-01/데이터베이스 설계] DB 개요 및 개념적 모델링 본문

학교 공부/데이터베이스 설계

[23-01/데이터베이스 설계] DB 개요 및 개념적 모델링

KimNang 2023. 4. 27. 06:59

1. 데이터와 정보

데이터와 정보

■ 데이터

- 현실 세계에서 직접 관찰하고 측정하여 수집한 사실이나 값

- 가공하기 이전의 재료 사실, 음성, 문자, 수치 등

 

■ 정보

- 어떤 목적이나 의도에 맞게 데이터를 가공 처리한 것

- 특정 목적에 맞게 가공해서 판단의 근거로 사용될 수 있도록 의미와 가치를 부여한 것

 

정보 처리 (Information Processing)

- 데이터에서 정보를 추출하는 과정 또는 방법

- 데이터를 상황에 맞게 분석하거나 해석하여 데이터간의 의미 관계를 파악하는 것

 

I = P(D)

Info = Processing(Data)

 

■ 데이터와 정보 구분

- 오늘 기온은 영상 8도이고 습도는 75%입니다. D

- 기온이 영상 8도이고 습도가 75%인 기상 조건에선 비가 올 확률이 지난 10년간 68%였습니다. 우산을 챙겨야합니다.  I

- 1년간 월간 아이스크림 판매량을 조사한 조사. D

- 아이스크림은 여름에 제일 잘 팔린다는 결과를 얻음. I

 

memo : 데이터와 정보의 차이는? 그렇다면 지식은?

- 데이터는 가공하기 전의 상태의 수치들을 의미하고, 정보는 특정 목적에 맞게 가공된 2차 데이터의 형태임.

- 어떤 의미나 목적을 포함하지 않고 단순 수집된 원시 자료가 데이터, 어떤 목적으로 데이터를 처리하고 분석하여 의미를 부여한 것이 정보

- 지식은 정보들 간의 관계를 통해 얻은 가치 있는 정보. 

- 데이터가 모이면 정보, 정보가 모이면 지식.

 

2. 데이터베이스

데이터베이스 시스템의 특성

- 최초 적재 (Loading) -> 이벤트 발생에 따른 잦은 변경 (Interaction)

- 대용량의 데이터를 다룸

    - 사용자들이 원하는 순간 데이터에 접근하기 위해선 대용량의 데이터가 체계적으로 조직화되어 있어야 함

 

  1. 동시 공유 가능
  2. 내용으로 참조 가능
  3. 실시간 접근 가능
  4. 계속 변화

 

데이터베이스

- 특정 조직의 사용자들이 공유할 수 있도록 통합하여 저장한 운영 데이터의 집합체

- 정의 핵심 : 통합된 데이터, 공영 데이터(= 공유 데이터), 운영 데이터, 저장 데이터

- 실질적 의미 : 데이터 및 데이터간 관계의 집합

 

데이터베이스 장점

- 중복성 최소화

- 일관성 유지

- 독립성 유지

- 무결성 유지

- 공유성 최대화

- 보안성 최대화

- 표준화하여 관리

 

데이터베이스 단점

- 비용이 많이 듦

- 백업과 회복 방법이 복잡

- 중앙집중 관리로 인한 취약점이 존재

 

■ 데이터베이스 관리자 (DBA)

- DBS을 운영, 관리하는 사람 또는 팀

- 업무

    - DB 구성요소 선정, DB 스키마 정의, 물리적 구조와 접근방법 결정

    - 무결성 유지를 위한 제약조건 정의, 보안 및 접근 권한 정책 결정

    - 백업 및 회복 기법 정의, 시스템 DB 관리, 시스템 성능 감시 및 성능 분석

    - 데이터베이스 재구성

memo : 무결성의 개념 및 종류

- DB에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 정확성을 의미함

- DB에 들어있는 데이터 정확성을 보장하기 위해 정확하지 않은 자료가 DB 내에 저장되는 것을 방지하기 위한 제약조건

- 개체 무결성, 도메인 무결성, 참조 무결성, 사용자 무결성 등이 있음

 

DBS

- 데이터를 구성하고 관리하는 하드웨어와 소프트웨어를 모두 포함하는 개념, 즉 DB와 DBMS를 이용해 조직에 필요한 정보를 제공해 주는 제반 환경

 

DBMS (Database Management Systems)

- 정의 : 데이터베이스를 생성하여 안정적이고 효율적으로 운영하는데 필요한 기능을 제공하는 소프트웨어. 

          - 사용자 애플리케이션과 데이터베이스 간의 인터페이스 역할을 하는 논리적 프로그램

- 실질적 의미 : 사용자가 Database에 접근할 수 있도록 지원해주는 프로그램의 집합

 

■ DBMS의 필수 기능

- 정의 기능 : 데이터 정의 및 저장 관리

- 조작 가능 : 질의 처리 기능으로 조회, 삽입, 삭제, 갱신

- 제어 기능 : 트랜재션 관리 기능으로 데이터 접근 제어, 시스템 오류 발생시 복구 등

- 종류 : 액세스, 오라클, SQL 서버, DB2, MySQL, 몽고DB 등

 

■ DBMS의 유형

- 네트워크형 DBMS

- 계층형(Hierarchical) DBMS

- 관계형(Relational) DBMS

- 차이점 : 개체와 관계를 표현하는 방식

 

3. 스키마와 인스턴스

데이터베이스 스키마 (Schema)

- 데이터베이스 구조, 데이터 타입, 그리고 제약 조건에 대한 명세

- 데이터베이스 설계 단계에서 명시되며, 자주 변경되지 않음

 

데이터베이스 인스턴스 (Instance)

- 특정 시점에 데이터베이스에 실제로 저장되어 있는 데이터

= database instance = Occurrence = Snapshot

 

memo : 스키마와 인스턴스의 차이점

- 주요 차이점은 정의 내에 있음.

- 스키마는 데이터베이스의 구조에 대한 설명

- 인스턴스는 현재 특정 시간에 데이터베이스에 저장된 정보 집합

- 스키마는 거의 변경되지 않고 인스턴스는 자주 변경될 수 있음

 

4. SQL (Structured Query Language)

DML / DDL / DCL

● 데이터 정의어 (DDL : Data Definition Language)

- 데이터베이스의 논리적 구조, 스키마를 기술하기 위해 사용됨.

- 주로 DB 설계자가 사용함

 

● 데이터 조작어 (DML : Data Manipulation Language)

- 테이터 처리, 즉 데이터의 조회, 삽입, 삭제, 갱신에 사용됨.

- 주로 사용자가 사용함

 

● 데이터 제어어 (DCL : Data Control Language)

- 트랜젝션 관리, 즉 권한 정의, 데이터 보안, 데이터 무결성, 데이터 복구, 병행 수행 제어에 사용

- cf) DCL, TCL(Transaction Control Language)

 

독립 실행형 / 내장형

독립 실행형

- SQL 인터페이스를 이용하여 SQL 쿼리를 직접 DBMS에 입력

 

● 내장형

- C, C++, JAVA, 파이썬 등의 프로그래밍 언어에 내장됨

- Host Language + Data sublanguage로 구성됨

 

5. 데이터베이스 설계 과정 개요

데이터베이스 설계 과정
  1. 요구사항 분석
  2. 개념적 설계
  3. 논리적 설계
  4. 물리적 설계
  5. 구현

 

요구 사항 분석

- 데이터베이스 개발 단계의 첫 번째 단계

- 데이터베이스를 구축하려는 사용자의 요구사항 데이터베이스를 적용할 업무 흐름을 분석하여 목적에 맞는 데이터베이스를 설계

- 사용자와 개발환경에 대한 여러 요구 사항과 기존의 업무 양식 문서 등을 통해 분석

memo : 면담, 양식, 설문 조사 등을 통해 알아냄

 

● 요구 사항 명세서

- 요구사항 분석 단계에서 분석한 자료

ex) 도서 재고 관리 요구 사항 명세서

1. 도서의 재고 관리 기능

2. 회원 관리 (회원가입, 우수 회원 관리 등)

3. 배송업체 관리 기능

4. 회원 전용 게시판의 글쓰기 기능

5. 월별 판매 내역 보고서 인쇄 가능

 

● 업무 흐름도

- 업무 파악을 위해 가장 이해하기 쉽고 많이 쓰는 도구

- 정보가 처리되는 조직과 부서 간의 정보 생성 및 이동에 대한 흐름을 그림으로 표현한 것

 

업무 분석

- 기존 업무를 분석함과 동시에 미래의 시스템을 위한 개선점을 찾아내는 창조적인 일

- 신규 시스템에 대한 업무 흐름도와 시스템 제안서 등을 통해 기존 업무를 효과적으로 개선할 수 있는 시스템을 설계하는 것

 

6. ER 모델 개념

개체 (Entity)

- 실세계에 존재하는 의미있는 하나의 정보 단위

- 물리적 객체 뿐 아니라 개념적 객체도 포함됨

- ex ) 물리적 객체 : 학생, 자동차, 강의실 등 / 개념적 객체 : 프로젝트, 직업, 교과목 등

 

관계 (Relationship)

- 개체들 사이의 연관성

- ex) [학생]과 [학과] 사이의 [소속] 관계

 

속성 (Attribute)

- 개체 또는 관계의 본질적 성질

 

■ 속성의 종류

● 단일 속성 (Simple Attribute)

- 더 이상 쪼개지지 않는 원자값을 갖는 속성

- ex) ID, 이름, 나이 등

 

● 복합 속성 (Composite Attribute)

- 몇 개의 요소로 분해될 수 있는 속성

- ex) 주소 -> 시, 군, 구, 동, ...

 

● 다중값 속성 (Multivalued Attribute)

- 속성에 여러 개의 값을 가질 수 있는 것

- ex) 상품 리스트, 취미 등

 

● 유도 속성 (Derived Attribute)

- 저장된 다른 데이터로 부터 유도 가능한 속성

- ex) 주민등록번호 -> 나이, 성별, ...

 

■ 키 속성 (Key Attributes)

- 어떤 개체에 대해서 항상 유일한 값을 갖는 속성 (또는 속성들의 집합)

-특정 Snapshot이 아닌 해당 개체의 모든 가능한 Snapshot의 집합을 고려하여 파악되어야 함

- ex) 학생의 학번, 책의 ISBN, 자동차의 차량번호, ...

 

복합 키 (Composite Key)

- Composite Attribute가 키 속성이 되는 경우

- 각 개체는 하나 이상의 키를 가질 수 있음

- 어떤 개체는 키를 갖지 않을 수도 있음 (약성 개체)

- 복합 키는 최소성을 가져야 함

- ex ) 1번. 팀명, 등번호 vs. 2번. 팀명, 등번호, 선수명

1번은 유일하게 식별 가능함. 둘 중 하나 빠지면 식별 불가능함.

2번은 선수명이 있어서 복합키 되지 못함. 최소성을 갖추지 못했기 때문

 

7. 관계 (Relationships)

관계 설정

- 한 개체의 속성이 다른 개체를 참조할 때 관계가 형성됨

- [학생]의 [학과] 속성이 [학과] 개체를 참조함

 

관계의 차수 (Degree)

- 관계에 참여하는 개체의 수

- Binary, Ternary, Unary, ...

 

관계의 대응수 (Cardinality)

- 해당 개체가 해당 관계에서 참여할 수 있는 관계 인스턴스의 최대 수

- 1:1, 1:N, N:1, M:N

memo : 실무에서는 차수보다 이 표현을 더 많이 씀

 

■ 대응수에 따른 관계의 분류

- 일대다 (1:N) 관계

- 일대일 (1:1) 관계

- 다대다 (M:N) 관계

 

8. ER 다이어그램을 위한 표기법

 

약성 개체 (Week Entity) ↔ Strong Entity

- 키 속성을 갖고 있지 않은 개체 -> 부분키(Partial Key)만을 가짐

- 약성 개체는 개체를 식별할 수 있는 다른 개체와 식별 관계(Identifying Relationship)로 맺어져야 함

- 약성 개체의 식별자는 다음 속성의 조합으로 구성됨

    - 약성 개체의 부분키 속성 + 식별 개체의 키 속성 (ex : Building_Name + Room_ID -> 공학관 204호)

 

일반화 관계

- 학생에는 여러 종류가 있음.

- 예를 들어 고등학생, 학부생, 대학원생이 있을 때 이들은 중복되는 속성도 있겠지만 각자 가진 속성이 있을 것임

- 이 3개의 개체를 각각 나누어 속성을 정의한다면 데이터 중복성↑ 중복을 최소화 시키는 것이 좋음.

- 이것을 일반화 관계를 통해 나타냄

 

9. ERD