강의18 - kyagrd/introCS2018spring GitHub Wiki

마지막 과제 (SQLite 활용)

  1. SQLite 샘플 DB 다운로드 ("Download SQLite sample database" 버튼 클릭)
  2. 내려받은 chinook.zip 파일을 풀면 chinook.db 파일이 나온다.
  3. 여기를 클릭하여 분반, 이름, 학번을 기입하여 과제 시작 준비
  4. 위를 클릭하면 나오는 화면 상단의 "Connect to a Database"를 클릭하여 chinook.db를 연결한다.
  5. 데이타베이스가 잘 연결되었으면 쿼리가 실행될 것이므로 과제를 하고 그 결과를 Download해서 html 파일로 저장
  6. 저장한 html 파일을 첨부해서 교수 이메일(huu.kr로 끝나는 이메일로 보내주세요. 가끔 네이버나 구글로 보내는 경우가 있던데 그러지 말고)로 보낸다.

제출기한 6월5일 화요일 밤9시

과제를 위해 도움이 될만한 내용들

  • 우선 과제를 실행하는 환경 가장 아래에 기본적으로 많이 활용되는 SQL 문법이 소개되어 있다
  • 샘플DB를 내려받은 웹사이트인 http://www.sqlitetutorial.net/ 에는 더 자세한 SQL 문법 및 SQLite에 대한 설명이 제공된다

과제를 직접적 도움은 안되지만 알아둘만한 상식

SQLite는 그 홈페이지에서 "Single File Database"라고 소개하고 있다. 즉, 파일 하나에 DB의 내용을 저장하고 프로그램을 작성할 때 API를 통해 그 파일에 접근해서 작업할 수 있도록 되어 있는 라이브러리의 형태로 제공되는 것이다. 이렇게 다른 소프트웨어에서 라이브러리의 형태로 포함해서 사용하는 방식으로 제공되는 SQLite와 같은 것들을 "Embedded Database"라고 하며 관련 위키피디아 항목에 보면 많은 임베디드DB 라이브러리가 존재한다는 것을 알 수 있다.

보통 갖출 것을 다 갖춘 DBMS라고 한다면 기본적으로 동시에 여러 명의 사용자가 원격접속해 사용할 수 있는 서버의 형태로 제공되는 것이 일반적인 것과 대조적으로 임베디드DB는 기본적으로 하나의 어플리케이션에서 혼자 사용하는 형태의 라이브러리 API로 제공된다. (어떤 경우에는 DBMS 서버를 돌릴 수도 있고 서버를 켜지 않고 임베디드DB로 API로 파일에 직접 접근해서 사용할 수 있는 두 가지를 동시에 제공하는 패키지도 가끔씩 있기도 한 것 같다.)

SQLite외에 대표적인 임베디드DB로는 오라클 Berkley DB, MongoDB 등등이 있다. 임베디드DB 중에는 SQLite처럼 JOIN 등을 포함한 SQL의 대부분의 기능을 지원하는 경우도 있고 간단한 것만 지원하고 JOIN이나 그보다 복잡한 것은 사용자가 알아서 구현해서 활용하도록 최소한의 검색과 색인 기능만 제공하는 경우도 있다.

TODO 관계(relation)에 대한 것은 아직 정리중

(정의역과 치역이 같은 집합에서 정의된) 이항관계에서 reflexive, transitive, symmetric 과 같은 관계의 성질, 그리고 한 관계로부터 시작해서 그 관계가 포함된 관계를 만드는 closure라는 개념, 그리고 그런 이항관계와 방향그래프와의 연관성 등을 수업에서 다뤘는데 정리중 ...