Jadual Kandungan
Development agility vs. database manageability
NoSQL business and data model design process
RDBMS data modeling influence on NoSQL
NoSQL data model variation
NoSQL data model visualization
New NoSQL data modeling opportunities
Rumah pangkalan data tutorial mysql NoSQL Data Modeling

NoSQL Data Modeling

Jun 07, 2016 pm 04:39 PM
data model nosql

Data modeling for RDBMS has been a well-defined discipline for many years. Techniques like logical to physical mapping and normalization / de-normalization have been widely practiced by professionals, including novice users. However, with

Data modeling for RDBMS has been a well-defined discipline for many years. Techniques like logical to physical mapping and normalization / de-normalization have been widely practiced by professionals, including novice users. However, with the recent emergence of NoSQL databases, data modeling is facing new challenges to its relevance. Generally speaking, NoSQL practitioners focus on physical data model design rather than the traditional conceptual / logical data model process for the following reasons:

  • Developer-centric mindset – With flexible schema (or schema-free) support in NoSQL databases, application developers typically assume data model design responsibility. They have been ingrained with the notion that the database schema is an integral part of application logic.
  • High-performance queries running in massive scale-out distributed environments – Contrary to traditional, centralized scale-up systems (including the RDBMS tier), modern applications run in distributed, scale-out environments. To accomplish scale-out, application developers are driven to tackle scalability and performance first through focused physical data model design, thus abandoning the traditional conceptual, logical, and physical data model design process.
  • Big and unstructured data – With its rigidly fixed schema and limited scale-out capability, the traditional RDBMS has long been criticized for its lack of support for big and unstructured data. By comparison, NoSQL databases were conceived from the beginning with the capability to store big and unstructured data using flexible schemas running in distributed scale-out environments.

In this blog post, we explore other important mindset changes in NoSQL data modeling: development agility through flexible schemas vs. database manageability; the business and data model design process; the role of RDBMS in NoSQL data modeling; NoSQL variations that affect data modeling; and visualization approaches for NoSQL logical and physical data modeling. We end the post with a peak into the NoSQL data modeling future.

Development agility vs. database manageability

One highly touted feature in today’s NoSQL is application development agility. Part of this agility is accomplished through flexible schemas, where developers have full control over how data is stored and organized in their NoSQL databases. Developers can create or modify database objects in application code on the fly without relying on DBA execution. The result is, indeed, increased application development and deployment agility.

However, the flexible schema is not without its challenges. For example, dynamically created database objects can cause unforeseen database management issues due to the lack of DBA oversight. Furthermore, unsupervised schema changes increase DBA challenges in diagnosing associated issues. Frequently, such troubleshooting requires the DBA to review application code written in programming languages (e.g., Java) rather than in RDBMS DDL (Data Definition Language) – a skill that most DBAs do not possess.

NoSQL business and data model design process

In old-school software engineering practice, sound business and (relational) data model designs are key to successful medium- to large-scale software projects. As NoSQL developers assume business / data model design ownership, another dilemma arises: data modeling tools. For example, traditional RDBMS logical and physical data models are governed and published by dedicated professionals using commercial tools, such as PowerDesigner or ER/Studio.

Given the nascent state of NoSQL technology, there isn’t a professional-quality data modeling tool for such tasks. It is not uncommon for stakeholders to review application source code in order to uncover data model information. This is a tall order for non-technical users such as business owners or product managers. Other approaches, like sampling actual data from production databases, can be equally laborious and tedious.

It is obvious that extensive investment in automation and tooling is required. To help alleviate this challenge, we recommend that NoSQL projects use the business and data model design process shown in the following diagram (illustrated with MongoDB’s document-centric model):

design_process

Figure 1

  • Business Requirements & Domain Model: At the high level, one can continue using database-agnostic methodologies, such as domain-driven design, to capture and define business requirements
  • Query Patterns & Application Object Model: After preliminary business requirements and the domain model are produced, one can work iteratively and in parallel to analyze top user access patterns and the application model, using UML class or object diagrams. With RDMS, applications can implement database access using either a declarative query (i.e., using a single SQL table join) or a navigational approach (i.e., walking individual tables embedded in application logic). The latter approach typically requires an object-relational mapping (ORM) layer to facilitate tedious plumbing work. By nature, almost all NoSQL databases belong to the latter category. MongoDB can support both approaches through the JSON Document model, SQL-subset query, and comprehensive secondary indexing capabilities.
  • JSON Document Model & MongoDB Collection / Document: This part is where native physical data modeling takes place. One has to understand the specific NoSQL product’s strengths and weaknesses in order to produce efficient schema designs and serve effective, high-performance queries. For example, modeling social network entities like followed and followers is very different from modeling online blogging applications. As such, social networking applications are best implemented using Graph NoSQL databases like Neo4j, while online blogging applications can be implemented using other flavors of NoSQL like MongoDB.

RDBMS data modeling influence on NoSQL

Interestingly enough, old-school RDBMS data modeling techniques still play a meaningful role for those who are new to NoSQL technology. Using document-centric MongoDB as an example, the following diagram illustrates how one can map a relational data model to a comparable MongoDB document-centric data model:

mongodb_mapping

Figure 2

NoSQL data model variation

In the relational world, logical data models are reasonably portable among different RDBMS products. In a physical data model, design specifications such as storage clauses or non-standard SQL extensions might vary from vendor to vendor. Various SQL standards, such as SQL-92 and the latest SQL:2008 as defined by industry bodies like ANSI/ISO, can help application portability across different database platforms.

However, in the NoSQL world, physical data models vary dramatically among different NoSQL databases; there is no industry standard comparable to SQL-92 for RDBMS. Therefore, it helps to understand key differences in the various NoSQL database models:

  • Key-value stores – Collections comprised of unique keys having 1-n valid values
  • Column families – Distributed data stores in which a column consists of a unique key, values for the key, and a timestamp differentiating current from stale values
  • Document databases – Systems that store and manage documents and their metadata (type, title, author, creation/modification/deletion date, etc.)
  • Graph databases – Systems that use graph theory to represent and store data as nodes (people, business, accounts, or other entities), node properties, and edges (lines connecting nodes/properties to each other)

The following diagram illustrates the comparison landscape based on model complexity and scalability:

nosql_comparisons

Figure 3

It is worth mentioning that for NoSQL data models, a natural evolutionary path exists from simple key-value stores to the highly complicated graph databases, as shown in the following diagram:

nosql_evolution

Figure 4

NoSQL data model visualization

For conceptual data models, diagramming techniques such as the Entity Relationship Diagram can continue to be used to model NoSQL applications. However, logical and physical NoSQL data modeling requires new thinking, due to each NoSQL product assuming a different native structure. One can intuitively use any of the following three visualization approaches, using a document-centric data model like MongoDB as an example:

  • Native visual representation of MongoDB collections with support for nested sub-documents (see Figure 2 above)

Pros – It naturally conveys a complex document model through an intuitive visual representation.
Cons – Without specialized tools support, visualization results in ad-hoc drawing using non-uniform conventions or notations.

  • Reverse engineering selected sample documents using JSON Designer (see Figure 5 below)

Pros – It can easily reverse engineer a hierarchical model into a visual representation from existing JSON documents stored in NoSQL databases like MongoDB.
Cons – As of this writing, JSON Designer is available only on iPhone / iPad. Furthermore, it does not include native DB objects, such as MongoDB indexes.

json_designer

Figure 5

  • Traditional RDBMS data modeling tools like PowerDesigner (see Figure 6 below)

Pros – Commercial tools support is available.
Cons – it requires tedious manual preparation and diagram arrangement to represent complex and deeply nested document structure.

power_designer

Figure 6

In a future post, we’ll cover specific data model visualization techniques for other NoSQL products such as Cassandra, which is based on the Column Family structure.

New NoSQL data modeling opportunities

Like any emerging technology, NoSQL will mature as it becomes mainstream. We envision the following new data modeling opportunities for NoSQL:

  • Reusable data model design patterns (some product-specific and some agnostic) to help reduce application development effort and cost
  • Unified NoSQL model repository to support different NoSQL products
  • Bi-directional, round-trip engineering support for (data) model-driven design processes and tools
  • Automated data model extraction from application source code
  • Automated code-model-data consistency validation and consistency conformance metrics
  • Strong control for application / data model change management, with proactive tracking and reconciliation between application code, embedded data models, and the actual data in the NoSQL databases
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Penyepaduan dan penggunaan pangkalan data Spring Boot dan NoSQL Penyepaduan dan penggunaan pangkalan data Spring Boot dan NoSQL Jun 22, 2023 pm 10:34 PM

Dengan perkembangan Internet, analisis data besar dan pemprosesan maklumat masa nyata telah menjadi keperluan penting bagi perusahaan. Untuk memenuhi keperluan tersebut, pangkalan data hubungan tradisional tidak lagi memenuhi keperluan pembangunan perniagaan dan teknologi. Sebaliknya, menggunakan pangkalan data NoSQL telah menjadi pilihan penting. Dalam artikel ini, kita akan membincangkan penggunaan SpringBoot yang disepadukan dengan pangkalan data NoSQL untuk membolehkan pembangunan dan penggunaan aplikasi moden. Apakah pangkalan data NoSQL?

Trezor Cold Wallet: Ciri dan Panduan Penggunaan Model One dan Model T Trezor Cold Wallet: Ciri dan Panduan Penggunaan Model One dan Model T Jan 19, 2024 pm 04:12 PM

Selepas masalah berlaku dalam banyak bursa berpusat, semakin ramai pelabur mata wang mula memindahkan aset ke dompet sejuk untuk mengurangkan risiko yang ditimbulkan oleh pertukaran berpusat. Artikel ini akan memperkenalkan Trezor, penyedia dompet sejuk terawal di dunia Sejak dompet sejuk pertama dilancarkan pada 2014, ia telah dijual di banyak negara di seluruh dunia. Produk Trezor termasuk Model One yang dilancarkan pada 2014 dan versi lanjutan Model T yang dilancarkan pada 2018. Berikut akan terus memperkenalkan perbezaan antara kedua-dua produk ini dan dompet sejuk yang lain. Apakah dompet sejuk Trezor? Pada 2014, Trezor melancarkan dompet sejuk pertama ModelOne. Sebagai tambahan kepada BTC biasa, ETH, USDT dan mata wang lain, dompet itu juga menyokong lebih daripada 1,000 mata wang lain.

Aplikasi pangkalan data PHP dan NoSQL Aplikasi pangkalan data PHP dan NoSQL Jun 19, 2023 pm 03:25 PM

Dalam pembangunan aplikasi web moden, pangkalan data PHP dan NoSQL telah menjadi pilihan teknologi yang sangat popular. Pada masa lalu, PHP telah digunakan secara meluas untuk membangunkan laman web dinamik dan aplikasi web, manakala pangkalan data NoSQL ialah teknologi penyimpanan data baharu yang baru sahaja muncul, menyediakan penyelesaian yang lebih fleksibel dan berskala. Dalam artikel ini, kami akan meneroka pangkalan data PHP dan NoSQL dalam aplikasi praktikal. PHP ialah bahasa pengaturcaraan sebelah pelayan, pada asalnya

Gunakan PHP dan MongoDB untuk melaksanakan pangkalan data NoSQL untuk memenuhi keperluan pengguna yang berbeza Gunakan PHP dan MongoDB untuk melaksanakan pangkalan data NoSQL untuk memenuhi keperluan pengguna yang berbeza Jun 26, 2023 pm 11:39 PM

Pangkalan data NoSQL (NotOnlySQL) ialah sejenis pangkalan data yang telah berkembang pesat dalam beberapa tahun kebelakangan ini Berbanding dengan pangkalan data hubungan tradisional, ia mempunyai kebolehskalaan dan prestasi yang lebih baik, dan menyokong lebih banyak jenis data dan kaedah penyimpanan data. Antaranya, MongoDB ialah pangkalan data NoSQL yang menggunakan model pangkalan data dokumen dan digunakan secara meluas dalam aplikasi web, aplikasi mudah alih, peranti Internet of Things dan bidang lain. Artikel ini akan memperkenalkan cara menggunakan PHP untuk menulis operasi asas pangkalan data MongoDB, dan menunjukkan melalui contoh cara bertemu

nosql与mysql的区别是什么 nosql与mysql的区别是什么 May 06, 2019 pm 02:39 PM

nosql与mysql的区别是:1、MySQL是一个基于表格设计的关系数据库,而NoSQL本质上是非关系型的基于文档的设计;2、MySQL的严格模式限制并不容易扩展,而NoSQL可以通过动态模式特性轻松扩展等等。

Perbandingan pangkalan data Redis dan NoSQL Perbandingan pangkalan data Redis dan NoSQL May 11, 2023 am 10:52 AM

Dengan perkembangan pesat Internet, jumlah data juga semakin meningkat. Oleh itu, pengurusan data telah menjadi topik yang sangat penting. NoSQL (pangkalan data bukan hubungan) telah menjadi salah satu penyelesaian popular untuk menangani masalah data besar. Redis ialah perisian pengurusan data NoSQL yang sangat popular. Artikel ini akan menganalisis dan membandingkan persamaan dan perbezaan antara Redis dan pangkalan data NoSQL lain untuk membantu memahami ciri, kelebihan dan kekurangannya. 1. Gambaran Keseluruhan Redis Redis ialah sistem storan berasaskan memori yang membolehkan pengguna menggunakan

Apakah data yang terdapat dalam folder data? Apakah data yang terdapat dalam folder data? May 05, 2023 pm 04:30 PM

Folder data mengandungi data sistem dan program, seperti tetapan perisian dan pakej pemasangan Setiap folder dalam folder Data mewakili jenis folder storan data yang berbeza, tidak kira sama ada fail Data merujuk kepada nama fail Data atau sambungan data , semuanya adalah fail data yang disesuaikan oleh sistem atau program Data ialah fail sandaran untuk penyimpanan data Secara umumnya, ia boleh dibuka dengan meidaplayer, notepad atau word.

Menggunakan MongoDB untuk pemprosesan NoSQL dalam pembangunan API Java Menggunakan MongoDB untuk pemprosesan NoSQL dalam pembangunan API Java Jun 18, 2023 am 10:24 AM

Dengan perkembangan Internet, jumlah data semakin meningkat, dan amat penting untuk menyimpan dan memproses data ini dengan berkesan. Pangkalan data NoSQL (NotOnlySQL) telah menarik banyak perhatian kerana prestasi tinggi, kebolehskalaan dan kemudahannya Berbanding dengan pangkalan data hubungan tradisional, ia lebih fleksibel dan sesuai untuk pelbagai senario pemprosesan data. MongoDB ialah pangkalan data NoSQL yang sangat popular dan sering digunakan dalam pembangunan Java. Artikel ini akan memperkenalkan pembangunan JavaAPI

See all articles