본문 바로가기
Data Analysis/정보처리기사

[3과목 데이터베이스 구축] 01. 논리 데이터베이스 설계

by suvii 2024. 4. 18.

[Sec 1. 데이터베이스 개념]

 

데이터베이스

  • 정의 (공장통운)
    • 공유 데이터 : 공동으로 사용
    • 저장 데이터 : 컴퓨터가 접근 가능한 매체에 저장
    • 통합 데이터 : 중복 최소화
    • 운영 데이터 : 조직의 목적을 위한 필수 데이터
  • 데이터 언어 (DMC)
    • DDL : 구조와 제약 조건 정의
    • DML : 처리 및 조작
    • DCL : 보안, 권한, 무결성 및 병행 제어
  • 스키마
    • 외부 스키마 (사용자 뷰) : 여러 개 존재 가능
    • 개념 스키마 (전체적인 뷰) : 하나만 가능
    • 내부 스키마 (저장 스키마) : 물리적 저장장치 관점
  • 장점
    • 통합 : 모든 데이터를 DB로 통합 관리 → 중복성과 불일치 감소
    • 독립성 : 프로그램과 데이터 분리 → 데이터의 변경으로 인한 종속성 감소
    • 동시성 제어 : 데이터의 일관성을 유지, 파일 시스템에 비해 응답 시간이 느림
    • 백업 및 복구 : 시스템이 고장 나기 이전의 일관된 데이터베이스 상태로 복구 가능
  • 데이터베이스 종류
    • 계층형 DB : 데이터를 트리 형태로 표현, 다대다 x
    • 네트워크 DB : 데이터를 그래프 형태로 표현, 다대다 o, 오너-멤버 관계, CODASYL DBTG
    • 관계형 DB : 데이터의 상호 관계를 테이블 형태로 표현, SQL로 데이터 처리
    • 객체지향형 DB : 객체 지향 개념(클래스, 상속 등) 이용, 비정형 데이터 관리
    • 객체관계형 DB : 객체형+관계형
    • NOSQL : 샤딩(분할) 지원, 비정형 데이터 관리, 스키마 없음, 비관계형 DBMS

 

 

[Sec 2. 데이터베이스 설계]

  • DB 설계 단계(개논물) : 요구 조건 분석 → 개념적 설계 → 논리적 설계 → 물리적 설계 → 구현
    • 개념 설계 단계 : E-R 다이어그램으로 개념적 스키마 구성
      특정 DBMS든 목표 DBMS든 상관 x
    • 논리적 설계 단계 : 트랜잭션 인터페이스 설계, 스키마의 평가 및 정제, 정규화
      목표 DBMS(계층형, 네트워크형, 관계형 등)에 맞는 설계
    • 물리적 설계 단계 : 데이터 효율적으로 저장 목적, 기계장치 입장에서 성능과 관련한 것, 레코드 집중의 분석 및 설계, 인덱스 설계, 물리적 스키마 생성, 반정규화
      특정 DBMS(ORACLE, MSSQL, MYSQL, DB2)에 맞는 설계
  • 관계형 데이터베이스 관리 시스템(RDBMS)
    • ORACLE : Oracle 개발
    • MSSQL : Microsoft 개발, Windows 환경에서 사용, IIS 서버와 호환성
    • MYSQL : 오픈 소스
    • DB2

 

 

[Sec 3. 데이터 모델링]

  • 데이터 모델
    • 구조 : 개체, 개체 타입(속성의 집합), 개체 인스턴스(행), 개체 세트(개체 인스턴스 집합), 속성(열), 관계(개체 간 연관성)
    • 중요 요소 : 구조, 연산, 제약 조건 (구연산 제약)
  • 개체-관계 모델(Entity Relation Model)
    • 개체(사각형)
    • 속성(원) : 단일 값 속성, 다중 값 속성, 단순 속성, 복합 속성, 유도 속성, 널 속성, 키 속성
    • 관계(마름모) : 1:1, 1:N, N:M
    • 연결(선 링크) : 개체와 속성 연결
  • 정규화
    : 중복성을 최소화(독립성↑, 종속성↓)하기 위해 릴레이션을 분해한다.
    : 어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능하게 만든다.
    : 데이터 삽입 시 릴레이션을 재구성할 필요성을 줄인다.
    • 이상(Anomaly) 현상
      • 삽입 이상 : 데이터 삽입 시 불필요한 데이터가 함께 삽입되는 현상
      • 삭제 이상 : 한 튜플을 삭제할 때 연쇄 삭제 현상
      • 갱신 이상 : 갱신 시 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상
    • 함수적 종속
      • 완전 함수적 종속
      • 부분 함수적 종속
      • 이행적 함수 종속 : X → Y, Y → Z ⇒ X → Z
    • 정규화 과정 (도부이결다조: 사장님, 두부 이걸 다 줘요?)
      : 비정규형 → 1NF → 2NF → 3NF → BCNF(강한 제 3정규형) → 4NF → 5NF
      • 비정규형→1NF : 메인이 원자값
      • 1NF→2NF : 분적 함수 종속 제거
      • 2NF→3NF : 행적 함수 종속 제거
      • 3NF→BCNF : 정자이면서 후보키가 아닌 것 제거
      • BCNF→4NF : 치 종속 제거
      • 4NF→5NF : 인 종속성 이용
  • 논리 데이터 모델 품질 기준 (정완준최일활 : 정완이가 준 강아지 중 제일 활발해!)
    : 정확성, 완전성, 준거성, 최신성, 일관성, 활용성

 

 

[Sec 4. 관계 데이터베이스 모델]

  • 관계 데이터 릴레이션 (표)
    • 속성(Attribute) : 각 열 → 차수(Degree) : 속성의 수
    • 튜플(Tuple) : 각 행 → 카디널리티(Cardinality) : 튜플의 수
    • 도메인(Domain) : 한 속성이 가질 수 있는 동일한 타입의 모든 값의 집합/범위 (학년 : 1~6, 성별 : 여자/남자)

릴레이션

  • 구성
    • 스키마(Schema) : 릴레이션의 구조나 뼈대, 릴레이션의 이름과 그 릴레이션에 포함된 속성들의 집합으로 구성
    • 인스턴스(Instance) : 스키마에 따라 실제로 저장된 데이터의 집합
  • 특징
    • 튜플의 유일성
    • 튜플의 무순서성
    • 속성의 원자성
    • 속성의 무순서성
    • 동적 변화성

관계 데이터 언어

  • 관계 대수 : 절차적 방법(연산의 순서 명시), 릴레이션을 처리하기 위한 연산의 집합으로 피연산자와 그 결과 모두가 릴레이션이다.
    • 순수 관계 연산자
      • Select(σ) : 주어진 조건을 만족하는 튜플 선택
      • Project(π) : 속성 리스트에 주어진 속성 값만을 추출
      • Join(⋈) : 두 릴레이션에서 연관된 튜플들을 결합
      • Division(÷) : 관련이 있는 튜플 반환
    • 일반 집합 연산자
      • Union
      • Intersection
      • Difference
      • Cartesian Product
  • 관계 해석 : 비절차적 방법(결과만 명시), 수학의 Predicate Calculus에 기반을 둠
    • 연산자 : OR, AND, NOT
    • 정량자 : For All, At Least

** 관계대수와 관계해석은 관계 데이터베이스를 처리하는 기능과 능력 면에서 동등하다.

 

  • 시스템 카탈로그(System Catalog)
    DBMS가 스스로 생성하고 유지하는 데이터베이스 내의 특별한 테이블의 집합체
    시스템 카탈로그 = 데이터 사전(DD), 카탈로그에 저장된 정보 = 메타 데이터
    사용자는 SQL을 이용하여 내용을 검색해볼 수 있으나 갱신은 불가능
    구성 요소 : 테이블, 뷰, 칼럼, 인덱스, 데이터베이스, 응용계획, 패키지, 접근권한 등