테이블이없는 데이터베이스에 데이터를 저장하는 방법은 무엇입니까?


12

학교에서 배운 것은 테이블에 데이터를 저장하는 SQL이었습니다. 지금은 데이터가 XML 파일로 저장되는 프로젝트를 진행하고 있습니다. 또한 모든 XML에는 비주얼 파일 (JPEG)에 대한 참조가 포함되어 있습니다.

XML 자체에는 1,000 개가 넘는 좌표 포인트와 데이터에 대한 추가 정보가 포함되어 있습니다.

제 생각에는이 정보를 테이블에 저장하는 것은 의미가 없습니다. 게다가 SQL로 JPEG 파일도 저장할 수 없었습니다.

적절한 해결책은 무엇입니까, 아니면 내 편견에 오류가 있습니까?

보시다시피 데이터베이스에 익숙하지 않습니다. 따라서 건설적인 제안, 링크 및 조언을 환영합니다.


SQL Server는 IMAGE 데이터 형식을 사용하여 JPEG 파일을 확실히 저장할 수 있습니다. 그러나 나는 그것을 권장하지 않습니다. FILE-STREAM을 사용하는 것이 좋습니다.
datagod

데이터베이스에 jpeg (또는 다른 파일)을 저장할 때 가장 자주 묻는 질문 중 일부에서 처리됩니다. XML을 저장 한 다음 해당 데이터를 빨리 찾는 방법은 문서 데이터 스토리지 시스템의 목적과 거의 같습니다. 관계형 데이터베이스에 대한 NoSQL 솔루션을 살펴보면 상상하기 쉬운 작업이 더 쉬워 질 것입니다.
jcolebrand

XML과 관련하여 IBM의 DB2를 사용하면 XML을 수행 할 수 있습니다. 또한 SQL 또는 XPath / XQuery를 사용하여 데이터를 쿼리 할 수 ​​있습니다. 무료 Express-C 버전은이 기능을 제공합니다. 그러나 Enterprise Edition으로 이동하는 경우이 기능을 설정하려면 비용을 지불해야합니다.
Chris Aldrich 18

답변:


11

XML의 지속성 만 있으면됩니다. NoSQL 솔루션 또는 파일 시스템을 사용하십시오.

NoSQL 또는 파일 시스템 대신 RDBMS를 사용하지 않는 한 RDBMS를 사용하면 이점이 없습니다.


적절한 NoSQL 솔루션은 무엇입니까? winform 응용 프로그램 btw에서 C #으로 작업하고 있습니다.
치즈 판

@bodycountPP : 나는 그들과 경험이 없다 ...
gbn

7
Windows에서 사용하기 위해 RavenDB ( ravendb.net ) 또는 CouchBase ( couchbase.com/couchbase-server/overview )를 확인합니다. 다른 사람들은 Google을 통해 찾을 수 있습니다. 해당 제품에 대한 경험이 풍부합니다. 분명히 마일리지가 다를 수 있습니다 :)
ITHedgeHog

10

나는 북마크 필 팩터의 블로그 게시물 정상화와 '코 피아 notitia 아니마' 오늘은 깔끔하게과 특정 유형의 데이터를 정규화에 대한 사건을 요약으로합니다. SQL 인스턴스에서 다음 쿼리를 실행하고 동의하는지 확인하십시오.

SELECT * FROM sys.syslanguages

SQL을 사용하면 관계형 데이터베이스를 만들 수 있습니다. 그러나 악취가 나더라도 SQL 데이터베이스가 필요하고 그 차이를 알 수있는 한 관계없이 SQL 데이터베이스로 끔찍한 관계가없는 일을하는 것은 범죄가 아닙니다. 그뿐만 아니라 위험과 영향을 알고있는 경우에만 가능합니다.

XML 파일에 "데이터에 대한 추가 정보"가 포함되어 있다고 언급했습니다. 심문 목적으로 관계형 데이터베이스에서 메타 데이터를 모델링 할 때 어떤 이점이 있습니까? 그렇다면 관련 데이터를 추출하고 나머지 XML을 XML 문서 유형으로 유지하는 경우가있을 수 있습니다.

... JSON 문자열 또는 XML이 전달되어 데이터베이스에 저장해야하는 경우 Anima notitia copia (Soul of the Database)의 역할에 따라 스스로에게 물어 보면됩니다. 이 정보의 내용에 관심이 있으십니까? '. 대답이 '아니요!'또는 '네키 쿼! 그러면 원자 값이지만 복잡 할 수 있습니다.

Phil Factor의 주장은 관계형 데이터베이스의 비 관계형 필드는 필드가 원자로 취급되는 경우 즉, 필드가 변경되지 않거나 필드의 일부가 아닌 전체 필드가 ​​변경되는 경우 완벽하게 수용 가능하다는 것입니다. 이것의 자연스러운 확장은 문서에 관심있는 요소가 포함되어 있으면 해당 요소에 관계형 모델을 적용하는 것이 가치가 있다는 것입니다.

Phil의 마지막 인용은 질문과 관련이 있지만 주로 문구에 관한 것입니다.

당연히, 나는 Codd가 찌그러 뜨릴 데이터베이스를 의도적으로 만들지 않았지만 가장자리 주변에는 정규화 근본 주의자들 사이에 히스를 맞추는 인터페이스와 데이터 피드가 있습니다.

우리 모두가 아니야!


2
ACORD는 그런 식입니다. 나는 사람들이 그것을 데이터베이스 모델로 사용하려고 시도하는 것을 보았습니다. ACORD는 이후 Prima의 데이터 모델에 라이센스를 부여하여 데이터 모델이 많지 않다는 것을 인정했습니다. ACORD 메시징 표준에는 약 7,000 개의 필드가 정의되어 있으며 그 중 약 200 개가 필수입니다. 메시징 표준에 많은 사람이 참여한 ACORD에 대한 최고의 설명은 "표준 프로세스를 관리하는 방법을 모른다"는 것입니다.
ConcernedOfTunbridgeWells

3

오라클 데이터베이스에 관한 한, 당신할 수 없습니다 . 데이터베이스의 모든 데이터는 메타 데이터를 포함하여 테이블에 저장됩니다. 데이터는 큐에 저장 될 수 있지만 테이블을 사용하는 방법과는 다릅니다. XML 파일은 데이터베이스 외부에 저장할 수 있지만 "데이터베이스"요구 사항을 충족하지 않습니다.

명시된 질문을 넘어 JPEG 파일 또는 해당 문제에 대한 파일을 데이터베이스에 저장할 수 있습니다. 테이블과 LOB 열 (BLOB 또는 CLOB)이 필요합니다. XML을 이런 식으로 저장할 수도 있지만 XML 데이터를 데이터베이스로 가져 오면 쉽게 수행 할 수없는 방식으로 데이터를 조작 할 수 있습니다. 또한 중복성 감소, 접근성, 동시성, 확장 성, 상호 운용성, 보안, 복구 및 성능 등 데이터베이스의 다른 이점도 제공합니다.

데이터베이스의 이점이 더 이상 목표를 달성하지 못하면 목표를 사용하지 마십시오.


2

공간 데이터베이스 를 구현하려는 것처럼 들립니다 . 공간 데이터 유형 함수를 지원하고 다각형 경계, 포인트와 같은 공간 특성과 관련된 데이터의 스토리지 및 쿼리를 최적화하는 데 사용되는 일종의 관계형 데이터베이스 (또는 기존 데이터베이스 제품 (예 : Oracle Spatial, postGIS)에 대한 애드온)입니다. 그리고 층. 경계 좌표 쌍과 같은 사운드가있는 XML 및 해당 경계에 표시 할 아트웍 자산과 같은 이미지 사운드가 있습니다. 데이터가 적합하면 구현하기 어렵거나 시간이 많이 걸리는 기능을 제공하기 위해 기본 제공 공간 모델링을 제공하는 관계형 공간 데이터베이스를 고려하십시오.


당신이 경우 또한 있다 구현하는 지리 정보 시스템 에 이상이 질문에 물어 고려 지리 정보 시스템을 .
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.