官术网_书友最值得收藏!

What we know – ER diagrams and relational schemas

In a relational system, we have been taught to start our modeling with an Entity-Relationship diagram. Using these techniques, we can start from a problem/domain description (what we call a user story in today's agile development methodologies) and extract the meaningful entities and relationships. We will come back to this later, but essentially, we usually find that from such a domain description, we can perform the following:

  • Extract the entities by looking at the nouns of the description
  • Extract the properties by looking at the adjectives of the description
  • Extract the relationship by looking at the operating verbs in the description

These are, of course, generic guidelines that will need to be tried and tested on every domain individually to make sure that it is an appropriate fit. However, for now, let's look at the following diagram:


An Entity-Relationship diagram

As you can see from the preceding figure, ER diagrams have the advantage of at least attempting to capture the business domain in a real-world model. However, they suffer from quite a few disadvantages too.

Despite being visually similar to graph visualizations, ER diagrams immediately demonstrate the shortcomings of the relational model to capture a rich domain. Although they allow relationships to be named (something that graph databases fully embrace, but relational stores do not), ER diagrams allow only single, undirected, named but otherwise unqualified relationships between entities.

In this respect, the relational model is a poor fit for real-world domains where relationships between entities are numerous, semantically rich, and diverse. The labeled property graph, as we have seen previously, allows a much richer description of the domain, specifically with regard to the relationships between the entities, which will be multiple, directed, and qualified through properties.

The problem of relational ER modeling becomes even worse when we take the ER diagram to an actual system and are faced with serious limitations. Let's take a look at how one of the relational model's fundamental problems becomes apparent when we take the diagram to a test in a real-world implementation.

主站蜘蛛池模板: 南昌市| 嘉荫县| 青浦区| 贺兰县| 汶川县| 罗田县| 吉林省| 临猗县| 富蕴县| 鲁甸县| 苍溪县| 屯门区| 九江市| 辛集市| 西林县| 大洼县| 陕西省| 涞水县| 许昌县| 花莲县| 阿拉善盟| 镇康县| 武山县| 黄梅县| 甘洛县| 灵石县| 苗栗县| 阿坝县| 昭平县| 蒲江县| 凤山市| 罗城| 定兴县| 高平市| 朝阳县| 肃宁县| 望都县| 正蓝旗| 延安市| 新密市| 磐安县|