<p>Operations on a database are divided into DDL and DML. </p>

<p>DDL are operations that alter the structure of the database. This includes creating/dropping tables, constraints, indexes, packages, views, dblinks, adding or removing columns to a table, changing object names and so on.</p>

<p>DML are the operations that alter the data stored in the database. This includes inserting, deleting and updating rows to/from a table.</p>

CC BY-SA 3.0
2013-08-26T18:37:36.203Z
What does the author mean by storage structure and access ? :)
An SO User
CC BY-SA 3.0
2013-08-26T19:32:09.620Z
Specifying the storage structure means defining the layout of the tables that will be used to store the data (how many tables, what columns on each table, etc). Defining the access methods means granting insert/delete/update privileges on those tables, as well as creating packages such as Table API's that will be used control those insert/delete/update operations.
Arzaquel
CC BY-SA 3.0
2013-08-26T17:17:26.723Z
2013-08-26T17:17:26.723Z
Arzaquel
<p>All query languages (SQL, but also QBE, QUEL... ) are divided into 4 parts :</p>
<ul>
<li><strong>DDL</strong> : Data Definition Language, which allow mainly to CREATE, ALTER or DROP database objects. Basically change the structure of the database.</li>
<li><strong>DML</strong> : Data Manipulation Language, which allow mainly to SELECT, INSERT, UPDATE and DELETE informations contained into tables. Basically, modify the database data.</li>
<li><strong>DCL</strong> : Data Control Language, which allow mainly GRANT and REVOKE privileges. Basically manage security entities (SQL users).</li>
<li><strong>TCL</strong> : Transaction Control Language, which allow to BEGIN TRANSACTION and finally COMMIT or ROLLBACK them. Basically, this allows you to drive explicit transactions</li>
</ul>
<p>Some languages (SQL as an example), add a 5th part entitled &quot;<strong>Procedural</strong>&quot; and which makes it possible to define the accesses to the base and the way in which the external languages (CoBOL, C++, Java...) interact with the objects of the base.</p>
<p>For SQL, this part includes :</p>
<ul>
<li>API to create software drivers (<strong>CLI</strong> : Call Level Interface)</li>
<li>a way to code triggers, procedures or functions inside the database (<strong>PSM</strong> : Persistent Stored Modules)</li>
<li>an old fashion way for extrenal languages (CoBOL, ForTran...) to interacts  with the database (<strong>Embedded SQL</strong>)</li>
</ul>
<p>This is summarized in the table below</p>
<p><a href="https://i.sstatic.net/dc4mK.jpg" rel="nofollow noreferrer"><img src="https://i.sstatic.net/dc4mK.jpg" alt="Synthetic division of SQL language" /></a></p>

CC BY-SA 4.0
2022-02-22T09:42:17.280Z
2022-02-22T09:42:17.280Z
SQLpro
<p>As a part of my curriculum, I am studying principles of DBMS from the book by Silberschatz and Korth.<br>
A part of it is about <code>Data Definition Language (DDL)</code>.  </p>

<p>I understand, in normal terms, that DDL is any set of commands that modify the schema and not the actual data. That is the simple way of putting it. A certain paragraph in the book states, in addition to what I said, as below:  </p>

<pre><code>We specify the storage structure and access methods used by the database system
by a set of statements in a special type of DDL called a data storage and definition language.
These statements define the implementation details of the database schemas,
which are usually hidden from the users.  
</code></pre>

<p>Can someone please explain to me what the first two lines mean ?<br>
AFAIK, storage structure here would refer to the tables, in RDBMS, and access methods would refer to the views because they define what the user gets to see ?  </p>

<p>Still, a simple explanation on this is welcome :)</p>

CC BY-SA 3.0
2013-08-28T04:51:16.140Z
The questions doesn't seem to be a research-level question in theoretical computer science, please consider posting such question on [cs.se] which has a broader scope.
Kaveh
<db.databases><relational-structures>
What is DDL (Data Definition Language)?
An SO User
# What is DDL (Data Definition Language)?

(Asked by: username_0 on 2013-08-26)

As a part of my curriculum, I am studying principles of DBMS from the book by Silberschatz and Korth.
A part of it is about Data Definition Language (DDL).  
I understand, in normal terms, that DDL is any set of commands that modify the schema and not the actual data. That is the simple way of putting it. A certain paragraph in the book states, in addition to what I said, as below:  
We specify the storage structure and access methods used by the database system
by a set of statements in a special type of DDL called a data storage and definition language.
These statements define the implementation details of the database schemas,
which are usually hidden from the users.  

Can someone please explain to me what the first two lines mean ?
AFAIK, storage structure here would refer to the tables, in RDBMS, and access methods would refer to the views because they define what the user gets to see ?  
Still, a simple explanation on this is welcome :)

**Tags:** db.databases, relational-structures

> **Comments:**
> **username_1**: The questions doesn't seem to be a research-level question in theoretical computer science, please consider posting such question on [cs.se] which has a broader scope.  

---

## 2 answers

### Answer by username_2 on 2013-08-26. Score: 2 | Accepted answer

Operations on a database are divided into DDL and DML.

DDL are operations that alter the structure of the database. This includes creating/dropping tables, constraints, indexes, packages, views, dblinks, adding or removing columns to a table, changing object names and so on.

DML are the operations that alter the data stored in the database. This includes inserting, deleting and updating rows to/from a table.

> **Comments:**
> **username_0**: What does the author mean by storage structure and access ? :)  
> **username_2**: Specifying the storage structure means defining the layout of the tables that will be used to store the data (how many tables, what columns on each table, etc). Defining the access methods means granting insert/delete/update privileges on those tables, as well as creating packages such as Table API's that will be used control those insert/delete/update operations.  

---

### Answer by username_3 on 2022-02-22. Score: 0

All query languages (SQL, but also QBE, QUEL... ) are divided into 4 parts :

* **DDL** : Data Definition Language, which allow mainly to CREATE, ALTER or DROP database objects. Basically change the structure of the database.
* **DML** : Data Manipulation Language, which allow mainly to SELECT, INSERT, UPDATE and DELETE informations contained into tables. Basically, modify the database data.
* **DCL** : Data Control Language, which allow mainly GRANT and REVOKE privileges. Basically manage security entities (SQL users).
* **TCL** : Transaction Control Language, which allow to BEGIN TRANSACTION and finally COMMIT or ROLLBACK them. Basically, this allows you to drive explicit transactions

Some languages (SQL as an example), add a 5th part entitled "**Procedural**" and which makes it possible to define the accesses to the base and the way in which the external languages (CoBOL, C++, Java...) interact with the objects of the base.

For SQL, this part includes :

* API to create software drivers (**CLI** : Call Level Interface)
* a way to code triggers, procedures or functions inside the database (**PSM** : Persistent Stored Modules)
* an old fashion way for extrenal languages (CoBOL, ForTran...) to interacts with the database (**Embedded SQL**)

This is summarized in the table below

[![Synthetic division of SQL language](https://i.sstatic.net/dc4mK.jpg)](https://i.sstatic.net/dc4mK.jpg)


---

