1 minute read


04.11 1주차 수업 내용 정리


데이터베이스란

빅데이터

  • 대용량 데이터가 계속 생성되고 있다.
  • 연간 평균 성장률은 21.6%로, 2026년에는 221,100EB 이상.
    • 1EB = 10³PB = 10⁶TB = 10⁹GB
    • 1GB: 약 200~300장의 사진, 약 한 시간 분량의 동영상 …
  • 비구조 데이터가 90% 이상
    • 비구조 데이터: 정리되어 있지 않은 무작위의 데이터
    • 구조 데이터: 어떠한 기준 하에 정리되어 있는 데이터



DB 구현의 예

  • 서점을 관리하는 데이터베이스를 작성
    • 작가와 작품을 추적하고 싶다는 목적
  • 관리에 필요한 정보(엔티티 Entity)
    • 작가에 대한 정보
    • 작가가 출판하고 있는 작품에 대한 정보



CSV(Comma-seperated valu) 파일으로 DB를 작성해서, 어플리케이션 코드를 작성해 관리하는 방법

  • 엔티티를 각각의 파일로 작성해서 이용
    • Writer (Name, Years, Country) 예시: "Murakami Haruki", "1979-", "Japan"
    • Novel (Name, Author, Years) 예시: "Goblet of Fire", "J.K.Rowling", "2000"
  • 어플리케이션은 정보를 읽고, 변경할 때마다 파일 내 한 줄씩 처리함
for line in file.readlines():
	record = parse(line)
	if record[0] == "Victor Hugo":
		print(record[1])
  • 생각해 봐야 할 점
    • 데이터 인테그리티 관점
      • 작가가 이름을 2개 이상 사용할 경우, 같은 작가인지 판별할 수 없음
      • 한 작품에 여러 명의 작가가 존재할 경우, 인덱스를 알지 못하면 처리할 수 없음
      • 작가의 활동기간이 무효한 문자열로 입력되어 있는 경우, 오류가 발생하거나 처리할 수 없음
      • 작품을 가지고 있는 작가를 삭제할 경우, 어떤 일이 일어날 것인가?
    • 데이터 엔티티 관점
      • 특정 레코드를 습득하는 방법: 파일 사이즈가 커질수록 처리 시간이 길어짐
      • 같은 레코드를 동시에 갱신하는 방법이 복잡해짐
    • 듀라빌리티 관점
      • 같은 레코드를 갱신할 때, DB 소프트웨어나 서버에 장애가 발생하는 경우
  • DB 시스템에 요구되는 기능
    • 고속으로 검색, 갱신하는 기능
    • 장애나 이상이 발생한 경우에도 내용이 손실되지 않도록 하는 기능.
    • 데이터를 공유하는 기능.



DB 관리 시스템(DBMS)

  • DB 시스템에 요구되는 기능을 실장하고 있음
  • DB와 어플리케이션 사이에서 조율하고 관리하는 역할
  • 크게 데이터 조작 관련 기능, 상호작용 관리 기능으로 나뉨