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

The entity-relation model

The entity-relation (ER) model falls into the conceptual data model category. It captures and represents the data model for both business users and developers. The ER model can be transformed into the relational model by following certain techniques.

Conceptual modeling is a part of the software development life cycle (SDLC). It is normally done after the functional and data requirement-gathering stage. At this point, the developer is able to make the first draft of the ER diagram as well as describe functional requirements using data flow diagrams, sequence diagrams, user stories, and many other techniques.

During the design phase, the database developer should give great attention to the design, run a benchmark stack to ensure performance, and validate user requirements. Developers modeling simple systems could start coding directly. However, care should be taken when making the design, since data modeling involves not only algorithms in modeling the application but also data. The change in design might lead to a lot of complexities in the future such as data migration from one data structure to another.

While designing a database schema, avoiding design pitfalls is not enough. There are alternative designs where one could be chosen. The following pitfalls should be avoided:

  • Data redundancy: Bad database designs elicit redundant data. Redundant data can cause several other problems, including data inconsistency and performance degradation. When updating a tuple that contains redundant data, the changes on the redundant data should be reflected in all the tuples that contain this data.
  • Null saturation: By nature, some applications have sparse data, such as medical applications. Imagine a relation called diagnostics, which has hundreds of attributes for symptoms such as fever, headache, sneezing, and so on. Most of them are not valid for certain diagnostics, but they are valid in general. This could be modeled by utilizing complex data types such as JSON.
  • Tight coupling: In some cases, tight coupling leads to complex and difficult-to-change data structures. Since business requirements change with time, some requirements might become obsolete. Modeling generalization and specialization (for example, a part-time student is a student) in a tightly coupled way may cause problems.
主站蜘蛛池模板: 清徐县| 阿合奇县| 陵川县| 永嘉县| 赞皇县| 林西县| 岐山县| 汶川县| 马尔康县| 汝城县| 武安市| 东明县| 锡林郭勒盟| 甘孜| 旬邑县| 枣庄市| 筠连县| 甘泉县| 承德市| 佳木斯市| 华池县| 鄂托克前旗| 东乡族自治县| 日照市| 荥经县| 霞浦县| 历史| 盖州市| 庐江县| 聊城市| 凤台县| 横峰县| 随州市| 石城县| 邢台县| 灵台县| 驻马店市| 浦城县| 靖安县| 故城县| 晋宁县|