Як зберігати дані в базі даних без таблиць?


12

Все, що я навчився в школі, - це SQL, який зберігає дані в таблиці. Зараз я працюю над проектом, де дані зберігаються у XML-файлах. Крім того, кожен XML містить посилання на візуальні файли (JPEG).

Сам XML містить понад тисячу точок координат, а також додаткову інформацію про дані.

На мою думку, не було б сенсу зберігати цю інформацію в таблицях. Крім того, я не міг зберігати JPEG-файли і з SQL.

Що було б підходящим рішенням, чи є помилка в міркуванні з мого боку?

Як бачите, я досить новачок у базах даних. Тож будь-які конструктивні пропозиції, посилання та поради вітаються.


SQL Server, безумовно, може зберігати файли JPEG, використовуючи тип даних IMAGE. Я б не рекомендував цього. Вам буде краще використовувати FILE-STREAM.
datagod

Якщо мова йде про збереження jpeg (або будь-якого іншого файлу) в базі даних, це розглядається тут на деяких наших найбільш часто заданих питань. Що стосується способу зберігання XML, а потім швидкого пошуку цих даних, то це майже те, для чого потрібні системи зберігання даних. Я хотів би розглянути рішення NoSQL над реляційною базою даних, працювати з цим буде простіше, я б міг уявити.
jcolebrand

Що стосується XML, то DB2 IBM дозволяє вам це робити. І ви можете запитувати дані за допомогою SQL або XPath / XQuery. Їх безкоштовне видання Express-C поставляється з можливістю зробити це. Якщо ви переходите до Enterprise Edition, вам потрібно заплатити, щоб увімкнути цю функцію.
Кріс Олдріч

Відповіді:


11

Все, що вам потрібно, - це збереження вашого XML. Використовуйте рішення NoSQL або файлову систему.

Користуватися RDBMS немає ніякої користі, якщо ви не хочете використовувати його замість NoSQL або файлової системи.


Яке б було відповідне рішення NoSQL? Я працюю з C # в додатку winform btw.
チ ー ズ パ ン

@bodycountPP: Я з ними не маю досвіду ...
gbn

7
Я б перевірив RavenDB ( ravendb.net ) або CouchBase ( couchbase.com/couchbase-server/overview ) для використання в Windows. Інших можна знайти через Google - я мав хороший досвід роботи з цими продуктами. Очевидно, ваш пробіг може змінюватися :)
ITHedgeHog

10

Сьогодні я зробив закладки у блозі Філа Фактора « Нормалізація» та «Anima notitia copia», оскільки це акуратно підсумовує справу за та проти нормалізації певних типів даних. Виконайте наступний запит на екземплярі SQL і подивіться, чи згодні ви.

SELECT * FROM sys.syslanguages

SQL дозволяє створювати реляційні бази даних. Однак, навіть якщо це погано пахне, це не злочин робити жахливо нереляційні речі з базою даних SQL так довго, як це необхідно, і ви можете сказати різницю; не тільки це, але і лише якщо ви знаєте про ризики та наслідки.

Ви згадали, що файл XML містить "додаткову інформацію про дані". Чи є якась користь у моделюванні цих метаданих у реляційній базі даних, можливо для цілей допиту? Якщо це так, може бути випадок вилучення відповідних даних та збереження решти XML як тип документа XML.

... якщо вам передано рядок JSON або XML, і вам потрібно зберегти його в базі даних, то все, що вам потрібно зробити, - це запитати себе у вашій ролі Anima notitia copia (Душа бази даних) "чи є у мене зацікавленість у змісті цього елемента інформації? '. Якщо відповідь - «Ні!» Або «Некеквам! Тоді це атомне значення, яким би складним воно не було.

Аргумент Філа Фактора полягає в тому, що нереляційні поля в реляційній базі даних є цілком прийнятними, якщо поле трактується як атомне, тобто воно не змінюється, або коли воно змінюється все поле, а не складова його частина. Природним розширенням цього є те, що якщо ваш документ містить елементи, які вас цікавлять, можливо, застосувати реляційну модель до цих елементів може бути корисно.

Остання відповідь до питання, але насамперед для фразеології, остання цитата Філа:

Природно, я ніколи свідомо не створював базу даних, на яку Кодд нахмурився, але навколо країв - це інтерфейси та канали даних, про які я писав, які спричинили пристрасть до фундаменталістів нормування.

Хіба ми не всі!


2
ACORD трохи такий. Я бачив людей, які намагаються привласнити це як модель бази даних. Згодом ACORD пішов і ліцензував модель даних від Prima, тож навіть вони визнають, що це була не дуже велика модель даних. Стандарт обміну повідомленнями ACORD містить близько 7000 полів, визначених з яких близько 200 є обов'язковими - найкращий опис ACORD (від того, хто сильно бере участь у стандартах обміну повідомленнями) полягає в тому, що "не знаю, як керувати процесом стандартів".
Занепокоєння

3

Що стосується баз даних Oracle, відповісти ви не можете . Всі дані в базі даних зберігаються в таблицях, навіть метадані. Дані можна зберігати у чергах, але це просто інший спосіб використання таблиць. XML-файли можна зберігати за межами бази даних, але це не відповідає вашим вимогам "у базі даних".

Якщо вийти за рамки вказаного питання, JPEG-файли або будь-які файли з цього питання можуть зберігатися в базі даних. Вони потребують таблиці та стовпця LOB (BLOB або CLOB). XML також може бути збережений таким чином, але імпорт XML-даних у базу даних дозволить вам оперувати даними способами, які зараз неможливо легко виконати. Він також надасть інші переваги баз даних, включаючи: зменшення надмірності, доступності, одночасності, масштабованості, сумісності, безпеки, відновлення та продуктивності.

Якщо переваги бази даних не сприяють досягненню ваших цілей, не використовуйте жодної.


2

Мені це здається, ніби ви намагаєтесь реалізувати просторову базу даних . Це своєрідна реляційна база даних (або доповнення до існуючих продуктів баз даних, наприклад, Oracle Spatial, postGIS), яка підтримує функції просторових типів даних і використовується для оптимізації зберігання та запитів даних, що стосуються просторових особливостей, таких як полігональні межі, точки і шари. XML у вас звучить як парні координати кордонів, а пов'язані з ними зображення звучать як засоби мистецтва для відображення на цій межі. Якщо дані підходять, розгляньте реляційну просторову базу даних, яка пропонує вбудоване просторове моделювання, щоб забезпечити функціональність, яку в іншому випадку ви могли б скласти або зайняти багато часу.


Крім того, якщо будуть впровадження географічної інформаційної системи , розглянути питання задаю це питання по по географічних інформаційних систем .
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.