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