2

표 형식의 데이터를 가져올 수있는 일반 형식을 설정하고 기능상의 종속성을 표시 할 수있는 Python 코드를 찾고 있습니다.정상적인 형식의 표 형식 데이터를 확인하기위한 Python 코드

+0

무엇을 묻는 지 설명하십시오. 어쩌면 예제를 포함 할 수 있습니다. – Brian

+0

나는 그가 데이터베이스 정규화에 대해 이야기하고 있다고 생각한다. [http : //en.wikipedia.org/wiki/Database_normalization] –

답변

0

이 코드는 실제로 구현하기가 어렵다고 생각합니다.

데이터베이스의 정규화 알고리즘에 대해 this question을보십시오.

2

"정규화"에 대한 논리적 테스트가 있습니다. 그러나 프로그래밍에서 사소한 연습은 아닙니다. 그것들은 데이터에 부과 된 메타 데이터의 관계입니다. 그들은 "사고"가 필요합니다.

1NF - 반복 그룹 없음. "반복 그룹"은 어떻게 식별합니까? 그것은 테이블의 열에 부과 된 배열 구조입니다. 어떻게 된거 야? SQL은 메커니즘을 제공하지 않으므로 "패턴"을 확인하기 위해 열 이름을 조사해야합니다. COL_1, COL_2, COL_3 등이 있습니다.

1NF - 일관된 행 레이아웃. 이봐. SQL은 테이블 정의의 본질에 의해이를 부과합니다.

2NF - 행의 데이터는 키에 따라 다릅니다. 이런 식으로 절차를 수행해야합니다.

For each non-key column: 
    Query distinct pairs (Key and the non-key column) 
    Do all non-key values depend in a consistent way on a key value? 
    Can you build a simple dict mapping non-key to key? 

전체 알고리즘

은 여기에 있습니다 : http://en.wikipedia.org/wiki/Relational_model#Set-theoretic_formulation

3NF - 행의 데이터는 키에 따라 달라집니다. 키가 아닌 열의 모든 조합을 키가 아닌 열의 모든 조합과 비교하여 값 사이에 키가 아닌 종속성이 없는지 확인해야하기 때문에 더 나쁜 것입니다.

4NF와 5NF는 나를 혼란스럽게합니다.

요점은 - 이론적으로 - 당신이 할 수 있다는 것입니다. 실질적으로 데이터의 복잡한 순열은 정상적인 형식 관계가 실제로 유지된다는 것을 주장합니다.

특정 위반에 대한 가설을 세우고 일부 SQL 쿼리 및 일부 사고만으로 그 문제를 조사하는 것이 훨씬 쉽습니다.

공식 수학

은 여기에 있습니다 :

http://en.wikipedia.org/wiki/Relational_model

+0

나는 보통 형태가 무엇인지 알고있다. 나는 파이썬에 이미 존재하는 코드가 있는지 궁금하다. 나는 내 것을 쓴다. –

+0

@James Tauber : "정상적인 형태가 무엇인지 알고 있습니다 ..."라는 질문에 분명하지 않았습니다. 모든 여분을 유감스럽게 생각합니다. 그러나 질문은 일반적으로 데이터의 자동 연삭이 아닌 스키마의 수동 분석을 통해 이루어지기 때문에 정보를 얻지 못한 것으로 보입니다. 이미 알고 있다면 알고리즘이 대규모 데이터 세트에서 너무 느려질 수 있음을 알고 있습니다. –