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 :)

  • 2
    $\begingroup$ The questions doesn't seem to be a research-level question in theoretical computer science, please consider posting such question on Computer Science which has a broader scope. $\endgroup$
    – Kaveh
    Aug 28, 2013 at 4:51

2 Answers 2


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.

  • $\begingroup$ What does the author mean by storage structure and access ? :) $\endgroup$
    – An SO User
    Aug 26, 2013 at 18:37
  • $\begingroup$ 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. $\endgroup$
    – Arzaquel
    Aug 26, 2013 at 19:32

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


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.