데이터 베이스

중복 데이터 or 불필요한 데이터 제거  -> 체계적으로 최적화시킨 데이터들의 집합

 

데이터 베이스의 정의

  • 공유데이터(Shared Data) : 데이터들을 공동으로 공유

  • 운영 데이터(Operational Data) : 필요한 모든 데이터 and 데이터들의 관계 집합

  • 통합 데이터(Integrated Data, 종합데이터) : 중복이 최소화된 데이터들의 집합(불필요한거 제거)

  • 저장 데이터(Stored Data) : 저장 매체에 저장

 

데이터 베이스의 특징

  • 계속적인 변화(Continuous Evolution) : 새로운 데이터 삽입 삭제등 데이터 유지하면서 갱신됨

  • 실시간 접근(Real Time Accessibility) : 실시간 처리로 응답 가능

  • 동시 공유(Concurrent Sharing) : 다수 이용자 이용 가능

  • 내용에 의한 참조(Content Reference) : 데이터의 내용 참조하며 접근

  • 뛰어난 데이터 간의 연계성(Superb Data Combination) : 데이터와 데이터 사이의 관련된 정보들로 연결됨

 

 

스키마(테이블 구조)

외부 스키마(개별 사용자 접근)

|

응용인터페이스

|

개념 스키마(DB 전체)

|

저장인터페이스

|

내부 스키마(실제 레코드 형식)

 

 

 

<데이터베이스 관리 시스템(DBMS)>

  • 데이터 저장하고 분석하기 위한 컴퓨터 응용프로그램

  • 주요 기능 : DB관리

  • 데이터 관리의 복잡성 해결 

  • 운영 데이터를 통합 저장 -> 공동으로 사용 가능하도록

 

질의어

  • DDL (Data Definition Language, 데이터 정의어)

    • 테이블 생성, 변경, 제어

    • 응용프로그램 <-> DBMS 간의 인터페이스 제공

    • Table, row, column, 기본키, 외래키

  • DML (Data Manipulation Language, 데이터 조작어)

    • SELECT, UPDATE, INSERT, DELETE

    • 사용자 <-> DBMS 간의 인터페이스 제공

  • DCL (Data Control Language, 데이터 제어어)

    • 데이터 관리자가 사용

 

 

데이터 베이스 관리 시스템의 필수 기능

  • 데이터 정의 기능 (Definition Facility) : 논리적, 물리적 구조 정의

  • 데이터 조작 기능(Manipulation Facility) : 데이터 접근 방법 효율, 명확 / 누구나 쉽게 데이터 검색 변경 삭제 조작 가능해야함

  • 데이터 제어 기능 (Control Facility) :

    • 동시성 제어 (Concurrency Control) : 동시에 데이터 사용 -> 감시 감독

    • 보안과 권한 (Security + Authority) : 외부로부터 데이터 보호, 데이터 사용 권한 구분

  • 무결성 (Integrity)및 제약조건 유지 기능 :  변경돼도 데이터 일관성 유지되어야함

 

특징

  • 무결성

  • 일관성

  • 회복성 : 복구 가능

  • 보안성

  • 효율성 : 최적화

 

DBMS 장단점

  • 장점

    • 중복 최소화

    • 많은 사용자 공유

    • 보안, 무결성 유지, 일관성 유지

  • 단점

    • 구축 자체 어렵, 규모 큼

    • 파괴되면 회복 어렵

    • 독립적이지 않음 : 일부 문제 -> 전체 시스템 영향

    • 구축 비용 많이 듦

 

상용 DBMS 선정 시 고려사항

  • 협업 : 협업 용이한 툴 선정

  • 지원 깊이 : 지원 커퍼리지 파악

  • 시각화 : 그래필 요소 지원 여부 파악

  • 이 기종 DB 지원 : 하나의 툴로 여러 DB 지원

  • 비용 : 총비용 고려

  • 편의 기능 

 

 

<데이터 베이스의 종류>

  • 파일 시스템
  • HDBMS
    • 트리 형태의 구조

      • 구현 용이

    • 접근 속도 빠름

    • 종속적인 구조 -> 데이터 변화 유연하게 대응 어렵

      • 적응성 ↓

    • 한 레코드 -> 여러 개의 레코드 포함

      • 삽입 삭제 어렵

    • 1 : N

      • M : N 관계 표현 X

 

  • NDBMS (Network DBMS)
    • 그래프 형태

      • 계층형 DB보단 유연

      • 레코드로 연결

    • 설계 복잡

      • 데이터 간의 연계성 뛰어남

      • 비용 많이 듦

    • 1:1, 1:N, N:1, N:M

    • 데이터 종속성 문제 해결 X

 

  • RDBMS (Relational DBMS)
    • 테이블 구조

      • 단순한 데이터 구조

      • 2차원 형태인 테이블로 관계 맺는 개념

    • 가장 보편화 됨

    • 데이터 상호 간의 관계 표현

    • 유연성 좋음

      • 유지 관리 용이

    • 시스템 부하가 커서 수행 속도 느림

    • Oracle, SQL Server, MySQL, Maria DB

 

범용 DBMS

  • 관계형 DBMS

    • 테이블 구조(스키마)정의, 테이블 간의 관계 정의 -> 데이터 관리

  • 문서 저장 DBMS

    • 스키마 구조 필요 X

    • 컬럼의 하나 이상의 값 가질 O

    • Client 단에서 후 처리 필요

    • ex) Mongo DB, Amazon Dynamo DB ...

  • 그래프 DBMS

    • 정점과 간선으로 특화

    • 노드 간 관계를 구조화 -> 저장

    • ex) Neo4j

  • 키 값 DBMS

    • 가장 간단한 형태

    • 임베디드 시스템에 적합

    • ex) Redis, Amazon Dynamo DB

 

 

RDBMS 모델링

1. 기본용어

  • 속성 (Attribute) - 애트리뷰트
    • 변수명, 레코드의 필드

    • 유일한 값을 가져야 함

    • 순서 X

  • 도메인(Domain)
    • 실제 원자 값들의 범위

  • 튜플 (Tuple)
    • 실제 입력된 값들의 집합

    • 레코드

  • 릴레이션

    • 표 자체

    • 한개 이상의 속성들 집합

    • 릴레이션 스키마 + 릴레이션 어커런스

  • 릴레이션 스키마
    • 하나 이상의 속성

  • 릴레이션 어커런스
    • 실제 입력된 튜플들의 집합 -> 실시간 변화

  • 차수(Degree)
    • 릴레이션에서 정의된 속성의 개수

    • 레코드 필드 수

  • 카디날리티 (Cardinality, 기수)
    • 튜플의 개수 or 기수

    • 레코드의 수

  • 널 (NULL)
    • 속성 값 비어 있는 거

 

2. 릴레이션 특징

  • 튜플의 유일성

    • 중복 X

  • 튜플의 무순서

  • 속성의 원자성

  • 속성의 무순서 

  • 속성 이름의 유일성

 

3. RDMS의 키

  • 후보키(Candidate Key)
    • 유일성, 최소성

  • 기본키(Primary Key)
    • NULL값 불가

  • 대체키(Alternate Key, 보조키)
    • 후보키 중 기본키 제외한 모든 키

  • 외래키 (Foreign Key)
  • 슈퍼키
    • 튜플을 식별하기 위한 두 개 이상의 속성들의 집합

    • 유일성 O, 최소성 X

  • 무결성(integrity) 제약사항

    • 도메인 무결성
      • 정확성 유지

      • 숫자면 숫자로만, 한글은 한글로만

    • 개체 무결성
      • 기본키는 NULL값 X

      • 튜플 중복 X

    • 참조 무결성
      • 릴레이션은 참조할 수 없는 외래키 가질 X

      • 외래키가 NULL이거나 참조 릴레이션의 기본키값과 동일해야함

      • ex) [학과] 테이블의 '학번'은 [학생]테이블의 '학번'에 있는 값만 넣을 수 있다. 

+ Recent posts