Data Governance Study - Data Model (2)

데이터 모델링 기초: 데이터베이스의 기초

이 블로그에서는 데이터베이스를 처음 접하는 사람들을 위한 데이터베이스의 기본 개념, 중요성, 특성에 대해 설명한다. 데이터베이스 시스템의 구조, 테이블의 구성 요소, 그리고 SQL 쿼리 언어에 대한 소개를 포함하고 있다.
Data Governance
저자

Kwangmin Kim

공개

2024년 08월 05일

1 데이터베이스 (Database, DB)

  • 쉽게 말해, 데이터베이스는 데이터 저장소
  • 어렵게 말해, 일정한 체계 속에 저장된 데이터 및 데이터간 관계의 집합
    • 데이터는 보통 table(표) 단위로 저장됨
    • DB는 보통 여러 table을 가지고 있을 수 있음

1.1 데이터베이스의 중요성

  • 현대 사회는 거의 모든 전기 기기에 DB가 있기때문에 데이터를 효율적으로 관리하려면 DB 시스템이 필요함
  • 하지만, 모든 상황에 DB가 필요한건 아님
  • 언제 필요함? 대용량의 데이터를 다룰 때
    • 입금 출금 이체 등 은행 거래 (인터넷 뱅킹 포함) : Data 필요, 대용량 Data, 많은 사용자 (DB 필요)
    • 호텔 객실 예약 관리는 기록이 필요함 : Data 필요, 대용량 Data, 많은 사용자 (DB 필요)
    • 신호등의 램프 제어: 소규모 Data 필요 (신호의 상태를 기억하고 있어야 다음 신호 상태를 결정할 수 있음, DB 불필요)
      • 알고리즘으로 관리할 수 있는 프로그램 회로가 기능 대체 가능. 실질적으론 DB가 필요하지 않음
    • 온라인 쇼핑몰에서의 물품 구매: Data 필요, 대용량 Data, 많은 사용자 (DB 필요)
    • 전자식 개폐장치의 비밀번호 관리: Data 필요 (한명이 한번에 번호를 눌러 정답과 비교. DB가 필요하지 않음 , DB 불필요)
      • 입력받은 번호를 저장해놔야 정답 비밀번호와 비교 가능 하지만 이것 역시 알고리즘 프로그램 회로로 대체 가능

1.2 DB 시스템의 특성

  • 데이터베이스 자체도 여러개 만들 수 있음
  • 최초 적재 (loading): 서비스를 위한 초기 대량 데이터 적재
  • 데이터 축적 (Interaction): 이벤트 발생에 따른 잦은 변경
  • 대용량의 데이터를 다룰때만 DB가 필요
    • 1) 많은 사용자들이 2)원하는 순간 3)데이터에 접근하거나 4)동시 접근 할때 관리 가능
    • 대용량의 데이터가 체계적으로 조직화되어 있어야함
    • 원하는 조건에 맞는 데이터에 접근가능
  • 데이터베이스 시스템

1.3 테이블 (Table)

  • table에는 row(행)와 column(열) 이 있다.

  • row: table에 대한 체계적인 정보가 set로 구성되어 있는 단위, 개체

  • column: table이 갖고 있는 속성

  • 예: 학생 table

    • row: 각 각의 학생 개체 (김철수 개체 , 이영희 개체 등)이 갖고 있는 정보
      • 행 (Row): SQL 등에서 실제로 데이터를 다룰 때 자주 사용되는 용어
      • 레코드 (Record): 가장 일반적으로 사용되는 용어, 하나의 완전한 데이터 항목을 나타냄
      • 튜플 (Tuple): 관계형 데이터베이스 이론에서 주로 사용되는 용어, 수학적인 의미에서 속성들의 순서화된 집합을 나타냄
      • 엔티티 (Entity): 주로 데이터 모델링 단계에서 사용되는 용어, 실세계의 개체나 개념을 나타냄.
      • 인스턴스 (Instance): 특정 엔티티의 구체적인 예를 나타냄, 객체 지향 개념에서 차용된 용어.
    • column: 학생(table)이 갖고 있는 속성
      • 열 (Column): SQL 등에서 실제로 데이터를 다룰 때 자주 사용되는 용어, 테이블의 수직적 구성 요소를 지칭
      • 필드 (Field): 가장 일반적으로 사용되는 용어, 특정 유형의 데이터를 저장하는 테이블의 한 부분을 나타냄
      • 속성 (Attribute): 데이터 모델링과 관계형 데이터베이스 이론에서 주로 사용되는 용어, 엔티티의 특성이나 성질을 나타냄
      • 도메인 (Domain): 특정 속성이 가질 수 있는 모든 가능한 값의 집합(or 정의역)을 의미하는데 때로는 열 자체를 지칭하는 데 사용되기도 한다.
      • 변수 (Variable): 프로그래밍 관점에서 데이터베이스를 다룰 때 사용되는 용어
    학번 이름 전공 성별
    20240001 김철수 컴퓨터공학
    20240002 이영희 경영학
    20240003 박민준 생물학
    20240004 정수연 물리학
    20240005 강지원 심리학

1.4 질의 (Queries)

  • DB를 다루는 언어
  • 대표적인 예: SQL
    • 다른 언어에서 SQL문을 string 의 형태로 DB에 접근할수도 있고 따로 SQL을 써서 접근할 수 있음
    • SQL 질의를 입력하면 (=SQL 쿼리을 날리면) 쿼리문이 stored database definition에서 DB구조를 파악한 후 Stored DB에 접근해서 쿼리문에 대응되는 원하는 data를 가지고와서 사용자에게 전달
  • DBMS: DB를 다루는 프로그램
    • DataBase Management System (DB 관리 시스템)
    • 사용자가 DB에 접근할 수 있도록 지원해주는 프로그램의 집합 (모듈의 집합)
      • 사용자 ID생성, 권한부여, 보안 관리, 동시성 제어, 사용자의 쿼리문을 처리 등의 모듈의 집합
    • Business 요구사항에 맞는 DBMS를 선택해야함
    • DBMS종류: 오라클, MS-SQL, MS-Access, SQLite, MySQL, MariaDB, SQL Server, SQLite, PostgreSQL, etc.
    • DBMS 종류마다 시스템이 다르긴 하지만 모두 SQL 로 다룰 수 있다.
    • SQL은 국제 표준이 존재하기 때문에 국제 표준을 습득하면 모든 DBMS를 어느 정도 사용할 수 있다. (하지만, 각 DBMS마다 고유의 문법이 있어 약간 씩 다름)

1.5 Database Example

  • 학적 관리
    • Course Table

      • attribute: course_name, credit_hours, department
      course_name credit_hours department
      Introduction to Computer Science 3 Computer Science
      Calculus I 4 Mathematics
      World History 3 History
      Organic Chemistry 4 Chemistry
    • Student Table

      • attribute: name, student_number
      name student_number
      John Smith 20240001
      Emma Johnson 20240002
      Michael Lee 20240003
      Sophia Chen 20240004
    • Section Table

      • attribute: section_ideintifier, course_number, semester, year, instructor
      section_identifier course_number semester year instructor
      CS101-1 CS101 Fall 2023 Dr. Alan Turing
      MATH201-2 MATH201 Spring 2023 Dr. Katherine Johnson
      HIST100-3 HIST100 Fall 2023 Prof. Howard Zinn
      CHEM302-1 CHEM302 Spring 2023 Dr. Marie Curie
    • Grade Report Table

      • attribute: student_number, section_identifier, grade
      student_number section_identifier grade
      20240001 CS101-1 A
      20240002 MATH201-2 B+
      20240003 HIST100-3 A-
      20240004 CHEM302-1 B

Subscribe

Enjoy this blog? Get notified of new posts by email: