Discuss why the weaknesses of the relational data model and relational DBMS may make them unsuitable for advanced database applications?
Discuss why the weaknesses of the relational data model and relational DBMS may make them unsuitable for advanced database applications?
Share
The process of deriving relations from a conceptual database often leads to the creation of relations that do not directly correspond to modeled entity types. Cause • complex entities consists of other entities • entities are described by multi-valued attributes Result • fragmentation of a entity type into many relations • is inefficient and leads to many joins during query processing 2. Semantic Overloading The relational model uses only one construct for representing data and relationships between data: the relation. There is no mechanism to distinguish between entities and relationships, or to distinguish between different kinds of relationship that exist between entities. Often, attributes of different entities are mixed within one relation. Considering only the given relation, we cannot know, which attributes belong to a certain entity or relationship. ➔ the relational model is said to be semantically overloaded 3. Poor support for integrity and general constraints Integrity refers to the validity and consistency of stored data. Integrity is usually expressed in terms of constraints, which are consistency rules that the database is not permitted to violate. Many commercial systems do not fully support these constraints and it is necessary to build them into the applications. This is dangerous and can lead to duplication of effort and inconsistencies. There is no support for general constraints in the relational model, which again means that they have to be built into the DBMS or the application. 4. Homogeneous data structure The relational model assumes both horizontal and vertical homogeneity. • Horizontal homogeneity means that each tuple of a relation must be composed of the same attributes • Vertical homogeneity means that the values in a particular column of a relation must all come from the same domain The first normal form requires that the intersection of a row and column must be an atomic value. Drawbacks of Homogeneity • too restrictive for many (more complex) “real-world” objects • leads to unnatural and inefficient joins. 5. Limited Operations The relational model has only a fixed set of operations, such as set and tuple-oriented operations, operations that are provided in the SQL specification. Since (at least older versions of) SQL is not computationally complete, new operations cannot be specified. This is too restrictive to model the behavior of many real-world objects. 6. Difficulty handling recursive queries Atomicity of data means that repeating groups are not allowed in the relational model. As a result, it is extremely difficult to handle recursive queries, that is, queries about relationships that a relation has with itself (directly or indirectly). 7. Impedance Mismatch Older versions of SQL lack computational completeness and could not be used to develop more complex database applications. To overcome this problem, SQL can be embedded in a procedural programming language. However, this approach produces an impedance mismatch, because different programming paradigms are mixed: • SQL is a declarative language that handles many rows of data at a time • common high-level languages (such as C) are procedural languages that can handle only one row of data at a time Since the type systems are different, type checking is prevented and necessary conversions require a lot of programming effort and runtime resources.
1. Poor representation of real-world entities —
The process of deriving relations from a conceptual database often leads to the creation of relations that do not directly correspond to modeled entity types.
Cause
• complex entities consists of other entities
• entities are described by multi-valued attributes
Result
• fragmentation of a entity type into many relations
• is inefficient and leads to many joins during query processing
2. Semantic Overloading–
The relational model uses only one construct for representing data and relationships between data: the relation.
There is no mechanism to distinguish between entities and relationships, or to distinguish between different kinds of relationship that exist between entities.
Often, attributes of different entities are mixed within one relation. Considering only the given relation, we cannot know, which attributes belong to a certain entity or relationship.
➔ the relational model is said to be semantically overloaded
3. Poor support for integrity and general constraints–
Integrity refers to the validity and consistency of stored data.
Integrity is usually expressed in terms of constraints, which are consistency rules that the database is not permitted to violate.
Many commercial systems do not fully support these constraints and it is necessary to build them into the applications. This is dangerous and can lead to duplication of effort and inconsistencies.
There is no support for general constraints in the relational model, which again means that they have to be built into the DBMS or the application.
4. Homogeneous data structure —
The relational model assumes both horizontal and vertical homogeneity.
• Horizontal homogeneity means that each tuple of a relation must be composed of the same attributes
• Vertical homogeneity means that the values in a particular column of a relation must all come from the same domain
The first normal form requires that the intersection of a row and column must be an atomic value.
Drawbacks of Homogeneity
• too restrictive for many (more complex) “real-world” objects
• leads to unnatural and inefficient joins
5. Limited Operations–
The relational model has only a fixed set of operations, such as set and tuple-oriented operations, operations that are provided in the SQL specification.
Since (at least older versions of) SQL is not computationally complete, new operations cannot be specified.
This is too restrictive to model the behavior of many real-world objects.
6. Difficulty handling recursive queries–
Atomicity of data means that repeating groups are not allowed in the relational model.
As a result, it is extremely difficult to handle recursive queries, that is, queries about relationships that a relation has with itself (directly or indirectly).
7. Impedance Mismatch Older versions of SQL lack computational completeness and could not be used to develop more complex database applications.
To overcome this problem, SQL can be embedded in a procedural programming language.
However, this approach produces an impedance mismatch, because different programming paradigms are mixed:
• SQL is a declarative language that handles many rows of data at a time
• common high-level languages (such as C) are procedural languages that can handle only one row of data at a time Since the type systems are different, type checking is prevented and necessary conversions require a lot of programming effort and runtime resources.