Lectures Topic 02
Lectures Topic 02
2
Data Models
} Data Model:
} A set of concepts to describe the structure of a database, the
operations for manipulating these structures, and certain constraints
that the database should obey.
3
Data Models (continued)
} Data Model Operations:
} These operations are used for specifying database retrievals and
updates by referring to the constructs of the data model.
} Operations on the data model may include basic model
operations (e.g. generic insert, delete, update) and user-defined
operations (e.g. compute_student_gpa, update_inventory)
4
Categories of Data Models
} Conceptual (high-level, semantic) data models:
} Provide concepts that are close to the way many users perceive
data.
} (Also called entity-based or object-based data models.)
} Physical (low-level, internal) data models:
} Provide concepts that describe details of how data is stored in the
computer. These are usually specified in an ad-hoc manner through
DBMS design and administration manuals
} Implementation (representational) data models:
} Provide concepts that fall between the above two, used by many
commercial DBMS implementations (e.g. relational data models
used in many commercial systems).
} Self-Describing Data Models:
} Combine the description of data with the data values. Examples
include XML, key-value.
5
Schemas versus Instances
} Key Distinction:
} The database schema changes very infrequently.
} The database state changes every time the database is updated.
} Database Schema:
} The description of a database.
} Includes descriptions of the database structure, data types, and the
constraints on the database.
} Schema Diagram:
} An illustrative display of (most aspects of) a database schema.
} Schema Construct:
} A component of the schema or an object within the schema, e.g.,
STUDENT, COURSE.
6
Schemas versus Instances
} Database State:
} The actual data stored in a database at a particular moment in
time. This includes the collection of all the data in the database.
} Also called database instance (or occurrence or snapshot).
} The term instance is also applied to individual database components, e.g.
record instance, table instance, entity instance
} Initial Database State:
} Refers to the database state when it is initially loaded into the system.
} Valid State:
} A state that satisfies the structure and constraints of the database
7
Example of a Database Schema
8
Example of a database state
9
Three-Schema Architecture
} Proposed to support DBMS characteristics of:
} Program-data independence.
} Support of multiple views of the data.
11
Three-Schema Architecture
} Mappings among schema levels are needed to transform
requests and data.
} Programs refer to an external schema, and are mapped by the
DBMS to the internal schema for execution.
} Data extracted from the internal DBMS level is reformatted to
match the user’s external view (e.g. formatting the results of an
SQL query for display in a Web page)
12
Data Independence
} Logical Data Independence:
} The capacity to change the conceptual schema without having to
change the external schemas and their associated application
programs.
} Physical Data Independence:
} The capacity to change the internal schema without having to
change the conceptual schema.
} For example, the internal schema may be changed when certain file
structures are reorganized or new indexes are created to improve
database performance
} When a schema at a lower level is changed, only the
mappings between this schema and higher-level schemas
need to be changed in a DBMS that fully supports data
independence. The higher-level schemas are unchanged.
13
DBMS Languages
} Data Definition Language (DDL):
} Used by the DBA and database designers to specify the conceptual
schema of a database.
} In many DBMSs, the DDL is also used to define internal and
external schemas (views).
} In some DBMSs, separate storage definition language (SDL)
and view definition language (VDL) are used to define internal
and external schemas.
} SDL is typically realized via DBMS commands provided to the DBA and
database designers
14
DBMS Languages
} Data Manipulation Language (DML):
} Used to specify database retrievals and updates
} DML commands (data sublanguage) can be embedded in a general-
purpose programming language (host language), such as COBOL, C,
C++, or Java.
} A library of functions can also be provided to access the DBMS from a
programming language
} Alternatively, stand-alone DML commands can be applied directly
(called a query language).
15
Types of DML
} High Level or Non-procedural Language:
} These include the SQL relational language
} Are “set”-oriented and specify what data to retrieve rather than
how to retrieve it.
} Also called declarative languages.
} May be used in a standalone way or may be embedded in a
programming language
} Low Level or Procedural Language:
} Retrieve data one record-at-a-time;
} Constructs such as looping are needed to retrieve multiple records,
along with positioning pointers.
} These must be embedded in a programming language
16
DBMS Interfaces
} Stand-alone query language interfaces
} Example: Entering SQL queries at the DBMS interactive SQL
interface (e.g., SQL*Plus in ORACLE)
} Programmer interfaces for embedding DML in programming
languages
} User-friendly interfaces
} Menu-based (Web-based), popular for browsing on the web
} Forms-based, designed for naïve users used to filling in entries
} Graphics-based
} Point and Click, Drag and Drop, etc.
} Specifying a query on a schema diagram
} Natural language: requests in written English, free text as a query
17
Other DBMS Interfaces
} Mobile Interfaces: interfaces allowing users to perform
transactions using mobile apps
} Speech : Input query and Output response
} Web Browser with keyword search
} Parametric interfaces, e.g., bank tellers using function keys.
} Interfaces for the DBA:
} Creating user accounts, granting authorizations
} Setting system parameters
} Changing schemas or access paths
18
DBMS Programming Language
Interfaces
} Programmer interfaces for embedding DML in a programming
languages:
} Embedded Approach: e.g embedded SQL (for C, C++, etc.), SQLJ (for Java)
} Procedure Call Approach: e.g. JDBC for Java, ODBC (Open Databse
Connectivity) for other programming languages as API’s (application
programming interfaces)
} Database Programming Language Approach: e.g. ORACLE has PL/SQL,
a programming language based on SQL; language incorporates SQL and its
data types as integral components
} Scripting Languages: PHP (client-side scripting) and Python (server-side
scripting) are used to write database programs.
19
Typical DBMS Component Modules
} The top part refers
to the various users
of the database
environment.
} The lower part
shows the internal
modules of the
DBMS responsible
for storage of data
and processing of
transactions.
20
Database System Utilities
} To perform certain functions such as:
} Loading data stored in files into a database. Includes data
conversion tools.
} Backing up the database periodically on tape.
} Reorganizing database file structures.
} Performance monitoring utilities.
} Report generation utilities.
} Other functions, such as sorting, user monitoring, data
compression, etc.
21
Centralized and
Client-Server DBMS Architectures
} Centralized DBMS:
} Combines everything into single system including- DBMS software,
hardware, application programs, and user interface processing
software.
} User can still connect through a remote terminal – however, all
processing is done at centralized site.
22
A Physical Centralized Architecture
23
Basic 2-tier Client-Server Architectures
} Specialized Servers with Specialized functions
} Print server
} File server
} DBMS server
} Web server
} Email server
26
Three Tier Client-Server Architecture
} Common for Web applications
} Intermediate Layer called Application Server or Web Server:
} Stores the web connectivity software and the business logic part
of the application used to access the corresponding data from the
database server
} Acts like a conduit for sending partially processed data between
the database server and the client.
} Three-tier Architecture Can Enhance Security:
} Database server only accessible via middle tier
} Clients cannot directly access database server
} Clients contain user interfaces and Web browsers
} The client is typically a PC or a mobile device connected to the
Web
27
Three-tier client-server architecture
28
Classification of DBMSs
} Based on the data model used
} Legacy: Network, Hierarchical.
} Currently Used: Relational, Object-oriented, Object-relational
} Recent Technologies: Key-value storage systems, NOSQL systems:
document based, column-based, graph-based and key-value based.
Native XML DBMSs.
} Other classifications
} Single-user (typically used with personal computers)
vs. multi-user (most DBMSs).
} Centralized (uses a single computer with one database) vs.
distributed (multiple computers, multiple DBs)
29
Summary
} We distinguish three main categories of data models:
} High-level or conceptual data models (based on entities and
relationships)
} Low level or physical data models
} Representation or implementation data models (record-based,
object-oriented)
} We distinguished three-schema DBMS architecture, i.e.,
internal, conceptual and external.
} We discussed the main types of language and interfaces of
DBMS.
} We discussed different types of interfaces of DBMS.
} We discussed an overview of two-tier and three-tier
architecture for database applications.
30