[SQL] Database

2021. 3. 29. 15:32·프로그래밍 Programming

데이터 단위

 

bit - byte - field - record - file - database

 

Problems with the Tradition

 

 

각 부서마다 다른 application program을 가지고 그 프로그램 안에서 데이터를 다루고 있다.

그러나 각 부서마다 겹치는 데이터가 있음에도 각자 가지고 있어 data redundancy가 발생한다.

또한 데이터가 변경되었는데 다른 곳에서는 업데이트 되지 않아 일관되지 않은 데이터가 존재할 수 있다.

또한 데이터에 접근하는 프로그램이 각자 다르기 때문에 프로그램을 바꾸고 싶을 때 프로그램에 저장된 파일을 모두 변환해줘야 다른 프로그램에서 쓸 수 있다.

 

그 외에도 lack of flexbility, poor security, lack of data sharing and availability 문제가 있다.

 

 

Database Management Systems

 

데이터베이스 : 다양한 어플리케이션을 사용해 데이터를 중앙집중화하고, redundant data를 관리하는 것

 

 

  • DBMS(Database management system) : 어플리케이션과 데이터 사이에서 관리해주는 소프트웨어
  • logical views of data : end users 및 비즈니스 전문가들이 보는 데이터
  • physical views of data : 실제 storage에 저장되는 데이터

 

 

전체 데이터 중에 필요한 데이터만 database management system을 통해서 받아올 수 있다.

 

Ralational DBMS : 회사에서 가장 많이 쓰이는 DBMS. 데이터가 Table에 저장되어 있고 table마다 key가 있다. 각 table에도 연관성이 있다.

 

Relational DBMS Tables

 

 

위의 table은 supplier (공급자)에 대한 데이터 베이스다.

 

 

foreign key는 다른 table의 primary key를 가져온 것이다.

 

Operations of a Relational DBMS

  • SELECT : 조건에 맞는 데이터의 subset을 만드는 것 (row 기준)
  • JOIN : 여러 relational table을 합치는 것
  • PROJECT : table에서 필요한 column을 가져오는 것

 

 

Database design

 

E/R Diagrams, UML, IDEF1x 등 : 데이터의 관계를 나타내기 위한 표현들

 

E/R Diagram을 살펴보면 나머지 표현들도 쉽게 이해할 수 있다.

 

기본적인 형태는 다음과 같다.

 

 

Cardinalities

(영어) The property of possessing a cardinal number

 

 

표식

 

Minimum cardinality based : Mandatory, Optional

 

Maximum cardinality based

1:1 대응

M:N 대응

1:M 대응

 

 

몇 가지 예시

 

 

 

 

Chen E/R Diagram Notation

 

저작자표시 비영리 변경금지 (새창열림)

'프로그래밍 Programming' 카테고리의 다른 글

Git bash 명령어 정리 (4) 깃허브  (0) 2021.07.20
Git bash 명령어 정리 (3) 브랜치  (0) 2021.07.20
Git bash 명령어 정리 (2) 기본  (0) 2021.07.20
Git bash 명령어 정리 (1) 리눅스  (0) 2021.07.19
Numpy에 대하여  (0) 2020.09.23
'프로그래밍 Programming' 카테고리의 다른 글
  • Git bash 명령어 정리 (3) 브랜치
  • Git bash 명령어 정리 (2) 기본
  • Git bash 명령어 정리 (1) 리눅스
  • Numpy에 대하여
보통의공대생
보통의공대생
수학,프로그래밍,기계항공우주 등 공부하는 기록들을 남깁니다.
  • 보통의공대생
    뛰는 놈 위에 나는 공대생
    보통의공대생
  • 전체
    오늘
    어제
    • 분류 전체보기 (460)
      • 공지 (1)
      • 영어 공부 English Study (40)
        • 텝스 TEPS (7)
        • 글 Article (21)
        • 영상 Video (10)
      • 연구 Research (99)
        • 최적화 Optimization (3)
        • 데이터과학 Data Science (7)
        • 인공지능 Artificial Intelligent (40)
        • 제어 Control (45)
      • 프로그래밍 Programming (103)
        • 매트랩 MATLAB (25)
        • 파이썬 Python (33)
        • 줄리아 Julia (2)
        • C++ (3)
        • 리눅스 우분투 Ubuntu (6)
      • 항공우주 Aeronautical engineeri.. (21)
        • 항법 Navigation (0)
        • 유도 Guidance (0)
      • 기계공학 Mechanical engineering (13)
        • 열역학 Thermodynamics (0)
        • 고체역학 Statics & Solid mechan.. (10)
        • 동역학 Dynamics (1)
        • 유체역학 Fluid Dynamics (0)
      • 수학 Mathematics (34)
        • 선형대수학 Linear Algebra (18)
        • 미분방정식 Differential Equation (3)
        • 확률및통계 Probability & Sta.. (2)
        • 미적분학 Calculus (1)
        • 복소해석학 Complex Analysis (5)
        • 실해석학 Real Analysis (0)
      • 수치해석 Numerical Analysis (21)
      • 확률 및 랜덤프로세스 Random process (2)
      • 추론 & 추정 이론 Estimation (3)
      • 기타 (26)
        • 설계 프로젝트 System Design (8)
        • 논문작성 Writing (55)
        • 세미나 Seminar (2)
        • 생산성 Productivity (3)
      • 유학 생활 Daily (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Statics
    텝스
    MATLAB
    LaTeX
    JAX
    에러기록
    논문작성
    Linear algebra
    WOX
    ChatGPT
    Julia
    teps
    Dear abby
    Zotero
    obsidian
    Numerical Analysis
    논문작성법
    딥러닝
    Python
    우분투
    고체역학
    텝스공부
    IEEE
    생산성
    옵시디언
    서버
    matplotlib
    인공지능
    수치해석
    pytorch
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
보통의공대생
[SQL] Database
상단으로

티스토리툴바