data analysis & visualization

SQL에서 개인적으로 자주 쓰는 문법

개인적으로 DB를 자유롭게 저장할 수 있다는 장점 때문에 sqlite를 많이 사용하고 있다.

 

오늘은 이 중에서 상위 자료 n개 보는법, 원하는 시간의 자료 뽑아내는법, fstring 쓰는법을 묶어 기입해보았다.

 

먼저  table리스트를 보기위해 qurey로 sqlite_master의 type이 table인 것만을 출력한다.

table list에 <table name>이  있다면 limit <n>을 통해 상위 n개의 자료를 출력할 수 있다.

 

또한 record_time이라는 column이 분단위 자료를 가지고 있는 시간 자료라고 하면 시간 자료만을 추출하기 위해 

아래와 같은 문법을 쓸 수 있다.

 

fstring은 예제로 남겨두겠다.  

import sqlite3

import pandas as pd

conn=sqlite3.connect('<filename.db>')

cur=conn.cursor()

cur.execute("select name from sqlite_master where type='table';")

print(cur.fetchall())

pd.read_sql('select * from <table name> limit 5;',conn)



pd.read_sql(f"select * from <table name> where (
            strftime('%M',record_time)='00'
            )&(obscode='{obscode}');",conn)

conn.close()

'SQL' 카테고리의 다른 글

1. 데이터 모델링의 이해(2)  (0) 2020.01.31
1. 데이터모델링의 이해(1)  (0) 2020.01.31
SQL개념 정리  (0) 2020.01.22

1. 데이터 베이스의 구조

2. 데이터 독립성 요소

   1) 외부스키마 

   View 단계 여러 개의 사용자 관점으로 구성

   개개 사용자 단계로서 개개 사용자가 보는 개인적 DB스키마

 

   2) 개념스키마

   하나의 개념스키마로 모든 사용자 관점을 통합한 조직 전체 DB를 기술하는 것

   3) 내부스키마

   DB가 물리적으로 저장된 형식

   물리적 장치에서 데이터가 실제적으로 저장되는 방법을 표현하는 스키마

 

   4) 논리적 독립성

   개념스키마가 변경되어도 외부스키마에 영향을 미치지 않도록 지원하는 것

   논리적구조가 변경되어도 응용프로그램에 영향이 없음

 

   5) 물리적 독립성

   내부스키마가 변경되어도 외부, 개념스키마에 영향을 미치지 않도록 지원하는 것

   저장장치의 구조변경시에도 응용프로그램과 개념스키마에 영향이 없음

 

3. 사상

   외부적/내부적 사상(논리적 사상) : 외부적 뷰와 개념적 뷰의 상호 관련성을 정의

   개념적/내부적 사상(물리적 사상) : 개념적 뷰와 저장된 DB와의 상호 관련성을 정의

 

   1) 데이터모델링의 세가지 중요 개념

   업무가 관여하는 어떤 것 - 단수 : 엔터티(entity)/복수 : 인스턴스(instance), 어커런스(occurrence)

   어떤 것이 가지는 성격(attributes) - 단수 : 속성(attribute)/ 복수 : 속성값(attribute value)

   업무가 관여하는 어떤 것 간의 관계 - 단수 : 관계(relationship)/복수 : 페어링(pairing)

 

   2) 관계흐름도(ERD) 작업 순서

   1. 엔터티를 그린다.

   2. 엔터티를 배치한다.

   3. 엔터티 간 관계를 설정한다. 

    - PK로 속성되는 관계를 설정하도록 한다.

    - 중복관계나 cicile 관계에 유의하여 작성

   4. 관계명을 기술한다. (현재형을 사용)

   5. 관계의 참여도 기술

   6. 관계의 필수여부 기술

 

4. 좋은 데이터 모델의 요소

   완전성 : 업무에서 필요로하는 모든 데이터가 데이터 모델에 정의

   중복배제 : 하나의 DB에 동일한 사실은 반드시 한번만 기록

   업무규칙 : 업무규칙이 데이터 모델에 표현되고 이를 모든 사용자가 공유할 수 있도록 제공

   데이터 재사용 : 데이터의 통합성과 독립성에 대해 충분히 고려

    - 애플리케이션으로부터 독립적으로 설계되어야 재사용성 향상

    - 확장성과 유연성에 초점

   의사소통 : 자료분석과정에서 자연스럽게 많은 업무규칙이 도출

   통합성 : 동일데이터는 조직의 전체에서 한번만 정의되고 이를 여러 다른 영역에서 참조

데이터모델링이란?

 1. 모델링 

   모델링 : 사람, 사물, 사건 간에 발생하는 다양한 현상을 표기법에 의해 규칙을 가지고 표기하는 것

 1) 모델링의 특징

   추상화 : 현실세계를 일정한 형식에 맞추어 표현해야 함.

   단순화 : 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현해 쉽게 이해할 수 있도록 하는 개념

   명확화 : 누구나 이해하기 쉽게 모호하지 않게 기술해야 함.

  2) 모델링의 관점

   데이터 관점 : 업무가 어떤 데이터와 관련이 있는지 데이터 간에는 어떠한 관계가 있는지에 대한 관점

   프로세스 관점 : 업무가 실제 하고 있는 일은 무엇인지와 무엇을 해야하는지에 대한 관점

   데이터와 프로세스 관점 : 업무가 처리하는 일의 방법에 따라 어떤 영향을 받고 있는지에 대한 관점

   3) 모델링의 필요성

   - 파급효과 : 병행테스트, 통합테스트 수행중 데이터 모델의 변경이 불가피한 경우 전체 시스템 구축 프로젝트에 큰 위험요소가 발생

   - 시스템의 요구사항과 한계를 가장 명확하게 표현할 수 있는 도구

   - 데이터의 품질과 밀접한 관련

   4) 모델링의 유의점

   - 중복 : 데이터베이스가 여러장소에 저장되는 것을 유의해야 함

   - 비유연성 : 업무 변화에 따라 모델이 영향을 받으므로 모델 변경이 요구되는 경우 존재.

                 유지보수를 편하게 하기위해서는 데이터 정의와 프로세스를 분할 할 필요가 존재 
   - 비일관성 : 데이터의 중복이 없어도 비일관성이 존재할 수있으므로 모델링시에 데이터간 상호 연관관계에 대한 명확한 정의가 중요

 2. 데이터모델링

   1) 데이터 모델링의 정의

   - 정보 시스템을 구축하기 위한 데이터 업무 분석 기법

   - 현실세계의 데이터를 약속된 표기법에 의해 표현하는 과정

   - 데이터베이스를 구축하기 위한 분석/설계 과정

   2) 데이터모델링의 단계

   - 개념적 모델링 : 추상화 수준이 높으며 업무중심적, 포괄적 수준의 모델링 진행

    * 데이터의 요구사항 파악에서 시작

    * 자료의 중요도 파악

    * 핵심 엔터티 간의 관계 파악 및 ERD를 구축하는 단계

 

   - 논리적 모델링 : 시스템으로 구축하고자하는 업무에 대해 Key, 속성, 관계 등을 정확히 표현하는 단계

    * 정규화 : 논리데이터모델의 일관성 확보 및 중복 제거를 통한 속성들의 적절한 엔터티에 배치되도록 함으로써 신뢰성있는 데이터를 얻는 것

    * 상세화 : 식별자의 확정, 정규화, M:M 관계 해소, 참조무결성규칙정의 등을 의미

 

   - 물리적 모델링 : 실제 데이터베이스에 이식할 수 있게 성장, 저장 등 물리적 성격을 고려하여 설계

    * 물리적 스키마 : 테이블, 컬럼 등으로 표현되는 물리적 저장구조와 저장장치, 자료추출을 위해 사용된 방법 등을 정의하는 단계

 

   데이터 독립성의 목적

   - 유지보수 비용절감

   - 데이터 복잡도 감소

   - 중복된 데이터 감소

   - 요구사항 대응이 용이

 

   데이터 독립성의 이점

    - 각 View의 독립성을 유지, 계층별 View에 영향을 주지않고 변경이 가능

    - 단계별스키마에 따라 데이터 정의어와 데이터 조작어가 다름을 제공

 

 

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

확인