[파이썬 배우기] 9. 데이터 관리

Posted on Updated on

1 overall_infomation

보여주는 것도 잘 했으니 이제 잘 보관하고 잘 입력해야 한다.

복습 : 지금까지의 예제 :

데이터 저장 : txt 파일 -> 딕셔너리 형으로 로드 -> JSON 형식으로 저장
데이터 보기 : JSON 파일 로드

Web에서는 폼을 이용
안드로이드에서는 다이얼로그 이용

데이타베이스


파이썬에는 SQLite 가 내장되어 있음
파이썬 데이터베이스 API : 연결, 생성, 조작, 커밋이나 롤백, 닫기

import sqlite3
connection = sqlite3.connect('text.sqlite') #DB에 연결
cursor = connection.cursor() # 데이터에 대한 커서 생성
cursor.execute("""SELECT DATE('NOW')""") # SQL 명령 실행
connection.commit() # 변경 사항 영구 저장
connection.close # 연결 닫기

데이터베이스가 무엇일까?
스키마란 무엇인가?
테이블이란 무엇인가?
데이터베이스 설계란 무엇인가?

지금 약간 멘붕이다. 갑자기 SQLite 가 등장했기 때문이다. 여기서는 어느 정도 알고 있다고 가정하고 진행한다고 한다. 모르면 모르는대로 진행해 보기로 한다.

스키마

(http://ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4_%EC%8A%A4%ED%82%A4%EB%A7%88) 을 참고하자면, 데이터베이스에서 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의한 구조라고 한다. 외부 스기마, 개념 스키마, 내부 스키마 이렇게 3 층 구조로 되어 있다.

물음표는 플래이스 홀더

쿼리 : SELECT
어느 선수가 어떤 아이디를 가지고 있는지 알기 위해서는 쿼리를 해야한다.

cursor.execute("SELECT if from athletes WHERE name=? AND dob=?", (name, dob))

위와 같이 쿼리를 날리면 cursor 에 결과가 추가된다고 한다.
이제 위의 id 결과를 알게 되었다. 그렇다면 이게 왜 필요할까? 다음 페이지를 보면 시간 데이터를 추가하는 방법이 나와있다. 개별 선수들의 기록을 추가해야하는데 DB 의 어디 부분에 그 선수의 정보부분인지 알기 위해서 ID 를 쿼리했던 것이다.

데이터베이스 스키마 정의

추상화 같은 개념같다. 실 세상의 무언가를 모델링을 한다는 것인데, 책의 예제는 운동선수의 신상 정보를 한 묶음으로 묶고, 그 선수가 가진 시간 기록을 한 묶음으로 묶었다. 그리고 각각의 묶음을 테이블이라고 명명하였다. 각각의 두 묶음은 한 쌍의 정보가 되어야 하기 때문에 그 두 개를 엮을 링크가 필요하다. 2) 시간정보 안에 외래 키를 삽입하고 자기 자신의 아이디를 1) 신상정보 와 잇는다.

설명을 잘 모르겠어서. 나를 위한 자료를 만든다.

2 db 스키마 실제세게

위 그림처럼 실제 세계에서 존재할 법한 카드를 작성한다.

3 신상명세 기입

그리고 그 카드에 신상정보를 입력한다.

3.5 신상명세id찾기

신상명세서의 id 를 찾고 싶다면, 이름과 생일을 넣고 SELECT 하면 된다.

4 점수 기록 삽입

기록을 기입

Advertisements

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중