Skip to content

Commit

Permalink
fix links
Browse files Browse the repository at this point in the history
  • Loading branch information
renejeglinsky committed Nov 27, 2024
1 parent 1318085 commit d5fea41
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 7 deletions.
12 changes: 6 additions & 6 deletions about/best-practices.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ For processing at runtime CDS models are compiled into a *machine-readable* plai

![cdl-csn.drawio](assets/cdl-csn.drawio.svg)

See also *[On the Nature of Models](/cds/odels)* in the CDS reference docs. {.learn-more}
See also *[On the Nature of Models](/cds/models)* in the CDS reference docs. {.learn-more}



Expand Down Expand Up @@ -399,7 +399,7 @@ entity ListOfBooks as projection on underlying.Books {
}
```

We use [CDS's *Conceptual Query Language (CQL)*](/cds/ql) to write queries in a human-readable way. For reasons of familarity, CQL is designed as a derivate of SQL, but used in CAP independent of SQL and databases. For example to derive new types as projections on others, or sending OData or GraphQL queries to remote services.
We use [CDS's *Conceptual Query Language (CQL)*](/cds/cql) to write queries in a human-readable way. For reasons of familiarity, CQL is designed as a derivate of SQL, but used in CAP independent of SQL and databases. For example to derive new types as projections on others, or sending OData or GraphQL queries to remote services.

Here's a rough comparison of [CQL] with [GraphQL], [OData], and [SQL]:

Expand All @@ -424,7 +424,7 @@ As apparent from this comparison, we can regard CQL as a superset of the other q

### Queries at Runtime

CAP also uses queries at runtime: an OData or GraphQL request is essentially a query which arrives at a service interface. Respective protocol adapter translate these into *machine-readable* runtime representations of CAP queries (→ see [*Core Query Notation, CQN*](/cds/qn)), which are then forwarded to and processed by target services. Here's an example, including CQL over http:
CAP also uses queries at runtime: an OData or GraphQL request is essentially a query which arrives at a service interface. Respective protocol adapter translate these into *machine-readable* runtime representations of CAP queries (→ see [*Core Query Notation, CQN*](/cds/cqn)), which are then forwarded to and processed by target services. Here's an example, including CQL over http:

::: code-group

Expand Down Expand Up @@ -583,12 +583,12 @@ CAP can be combined with event sourcing patterns, that is, by tracking events in

#### CAP supports SQL

CDS borrows reflexive view building from SQL to declare derived models and APIs as projections/transformation of underlying models, such as domain models. [CQL](/cds/ql) is based on SQL DML to allow direct mapping to SQL databases. However, it extends SQL with [Associations](/cds/dl#associations), [Path Expressions](/cds/ql#path-expressions), and [Nested Projections](/cds/ql#nested-expands) to overcome the need to deal with JOINs. Instead, these extensions allow working with data in a structured document-oriented way. {.indent}
CDS borrows reflexive view building from SQL to declare derived models and APIs as projections/transformation of underlying models, such as domain models. [CQL](/cds/cql) is based on SQL DML to allow direct mapping to SQL databases. However, it extends SQL with [Associations](/cds/dl#associations), [Path Expressions](/cds/cql#path-expressions), and [Nested Projections](/cds/cql#nested-expands) to overcome the need to deal with JOINs. Instead, these extensions allow working with data in a structured document-oriented way. {.indent}


#### CAP supports NoSQL

The previously mentioned extensions in [CQL](/cds/ql) feature the modeling of nested document structures as well as view building and querying using navigation instead of cross products, joins, and unions. This actually brings CDS close to the concepts of NoSQL databases, with the data models playing the role of schemas for validation. Although CAP currently doesn't provide out-of-the-box support for concrete NoSQL databases, it's easy to do so in project-specific solutions. {.indent}
The previously mentioned extensions in [CQL](/cds/cql) feature the modeling of nested document structures as well as view building and querying using navigation instead of cross products, joins, and unions. This actually brings CDS close to the concepts of NoSQL databases, with the data models playing the role of schemas for validation. Although CAP currently doesn't provide out-of-the-box support for concrete NoSQL databases, it's easy to do so in project-specific solutions. {.indent}


#### CAP and the Relational Model
Expand All @@ -615,7 +615,7 @@ In addition, CAP features _queries as first-class and higher-order objects_, all

#### CAP != Object-Relational Mapping

CAP and CDS aren't _Object-Relational Mapping_ (ORM). Instead, **we prefer querying** using [CQL](/cds/ql) to read and write data, which allows declaratively expressing which data you're interested in by means of projection and selection instead of loading object graphs automatically. Result sets are pure REST data, that are snapshot data representations. One reason for this is the assumption that the lifetime of object cache entries (which are essential for ORMs to perform) is frequently in the range of milliseconds for _REST_ services. {.indent}
CAP and CDS aren't _Object-Relational Mapping_ (ORM). Instead, **we prefer querying** using [CQL](/cds/cql) to read and write data, which allows declaratively expressing which data you're interested in by means of projection and selection instead of loading object graphs automatically. Result sets are pure REST data, that are snapshot data representations. One reason for this is the assumption that the lifetime of object cache entries (which are essential for ORMs to perform) is frequently in the range of milliseconds for _REST_ services. {.indent}

#### CAP != Business Objects

Expand Down
2 changes: 1 addition & 1 deletion about/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ Benefits are significantly **accelerated** development, **minimized boilerplate*

#### Enterprise Best Practices

- [Common Reuse Types & Aspects](/cds/ommon)
- [Common Reuse Types & Aspects](/cds/common)
- [Managed Data](/guides/domain-modeling#managed-data)
- [Localized Data](/guides/localized-data)
- [Temporal Data](/guides/temporal-data)
Expand Down

0 comments on commit d5fea41

Please sign in to comment.