Database

꾸Jun·2023년 9월 13일
0

📚 Database

목록 보기
3/20

1. Database?

논리적으로 서로 관계가 있는 data들의 조직화된 집합체를 의미한다. 체계가 저장되었다는 의미이고, 관련성 있는 data들이 같은 테이블에 있고 관계를 맺고 있는 집합체이다. 한 테이블의 PK와 FK로 관계를 맺는다. 계속 쌓아온 data로 부터 우리가 어떻게 행동하느냐, 어떤 방향으로 나아가느냐를 원하기 때문에 data가 들어갔을 때의 Information, Knowledge를 제공한다.



2. Database의 구성요소

  • meta data
    • Data of data
    • Data를 묘사하는 data
    • Data의 속성의 설명, 묘사
    • Data의 타입, 사이즈, 변수의 값으로 올 수 있는 값


3. Data Modeling

Modeling

  • 체계화해서 디자인한 것을 model이라고 하고, 어떤 식으로 저장할 것인가, 조직화 할 것인가를 modeling이라고 한다. Class diagram을 그리는 것도 modeling이다.

User Requirement 수집

  • customers, products, order에 대한 기록을 저장할 database를 원함

Data Modeling의 3단계

  1. Conceptual Design(ER Modeling)
    • 개념적으로 database를 만듦
    • ER Diagram을 그림
    • Entity와의 관계, Relationship에 대해 그림
  2. Logical Design(Relational Model)
    • ER Diagram으로 그린 것을 실제 저장구조와 비슷하게 디자인
    • 정규화 과정을 포함
  3. Physical Design
    • 마지막 단계의 디자인
    • Performance를 생각
      • Database가 어떤 테이블, 어떤 컬럼으로 되어있는지
      • 뭔가 성능을 생각하고, 각각의 컬럼이 어떤 타입인지
      • 성능이 느릴 것 같으면 최적화하는 단계
      • 가령 플랫폼 이용자가 10억명이라고 했을 때, 특정한 사람에 대한 정보를 얻고 싶으면 모든 레코드를 훑어야 가능해서 엄청 느릴 것이다. 이때 Indexing, Partition을 통해 성능 개선을 함


3. Database Layout

DBMS

  • database를 만들고 관리하기 위한 도구
  • database는 data를 저장하는 공간
  • database는 주로 원통으로 표현하는데 하드디스크를 의미
  • Repository는 meta data를 저장하는 공간
  • User Interface Database에 접속할 수 있는 창 역할

Data를 File로 다룰 때 단점

  • 프로그램에 종속

    • 텍스트 파일에 저장되어 있으면 코딩할 때 복잡
    • database를 사용하면 쿼리문을 사용하면 코딩할 때 활용하기 좋음
  • data 중복

    • 공간의 낭비
    • data의 수정이 있을 때 여러 파일에 반영이 안되기 때문에 data의 불일치가 발생
      • database의 무결성에 문제 발생
  • data 공유의 어려움

  • 개발시간이 늘어남

    • 읽어드리고 사용하는데 복잡함
    • 무선을 넘나드는 시스템 상의 어떤 걸 만들 때 복잡해짐
    • 가령, 회계부서와 주문부서에게 고객 data를 따로 관리할 때 길이, 컬럼 이름 등이 달라서 통합하기 어려움
    • 두 회사가 합병하면 그 회사들이 사용하던 시스템도 합쳐야하는데 어려움
  • 프로그램 관리의 어려움


Database의 장점

  • 각기 다른 부서가 하나의 data만 사용하기 때문에 공간 낭비가 사라짐

    • data 수정이 있을 대 쉽게 반영
    • data 공유가 쉬움
    • control agent인 dba가 있어서 관리가 쉬움
    • 사용하기 편리한 형태로 표준화 되어 있음
  • data의 중복을 없앨 수 있음

  • data의 불일치를 없앨 수 있음

  • 프로그램 data의 독립성 유지

    • meta data(타입, 길이,,,)가 바뀌었을 때 영향을 받지 않을 수 있음
  • 유지보수가 쉬움

  • 보안성 강화

    • dbms 자체적인 기능이 있음

The Three Schema Architecture

단계나 등급에 따라서 3가지의 scheme을 가진 구조

  • External Schema

    • 가장 바깥에 있으므로 사용자와 가까움
    • database의 일부인 개념적인 구조
  • Conceptual Schema

    • database의 전체적인 구조
      • ER Diagram
  • Internal Schema

    • database의 물리적 저장구조
    • Logical Schema, Physical Schema의 결과물로 구성되어 있음
profile
꾸준🐢

0개의 댓글