- Learning PostgreSQL 11
- Salahaldin Juba Andrey Volkov
- 355字
- 2021-07-02 13:11:40
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.
- GAE編程指南
- Delphi程序設計基礎:教程、實驗、習題
- Cocos2d-x游戲開發:手把手教你Lua語言的編程方法
- Reactive Programming with Swift
- Programming ArcGIS 10.1 with Python Cookbook
- Python程序設計
- Unity 5.x By Example
- Python數據挖掘與機器學習實戰
- Android程序設計基礎
- Visual C++開發入行真功夫
- C# and .NET Core Test Driven Development
- Go語言開發實戰(慕課版)
- 大學計算機基礎實訓教程
- Maven for Eclipse
- Learning Unreal Engine Game Development