数据库设计与分析第1章-绪论1

第1章绪论

本章内容:

1.1 数据库的基本概念

1.2 应用软件系统的体系结构

1.3 数据库与信息系统(Information System)

1.4 数据库设计(Database Design)的任务与步骤

1.5 数据库应用程序的生命周期

1.1 数据库的基本概念

在学习数据库设计之前,先来了解几个基本概念。

1.数据(Data)

数据是数据库中存储的基本对象。如数字、文本、图形、图像、声音等。

2.数据库(Database,DB)

DB是指逻辑上相关的、可共享的数据集合。

3.数据库管理系统(Database Management System,DBMS)

DBMS是位于用户与操作系统之间的一层数据管理(系统)软件。具有数据定义、数据操纵、数据库的运行管理、数据库的建立和维护等功能。

4.数据库系统(Database System,DBS)

DBS是指在计算机系统中引入数据库后的系统构成。由硬件、数据库、软件(OS、DBMS、应用程序等)、数据库管理员和用户构成。

硬件 OS(Operating System)

DBMS

DBS 软件

应用系统

用户

人应用程序员

数据库管理员(DBA),系统分析员

图1 销售和库存控制部门的数据库应用

5.数据模型(Data Model)

模型是对现实世界某个对象特征的模拟和抽象。

数据模型是对现实世界数据特征的抽象,在数据库中,通常把表示实体及实体间联系的模型称为“数据模型”,它是DBS的核心和基础。

数据模型的种类很多,目前被广泛使用的有两类:

图2 抽象的层次

(1)概念(数据)模型

用于语义建模。概念模型最著名的一种表示方法是“实体-联系模型(E-R方法)”,还有现代的“UML表示方法”。

(2) 结构数据模型/逻辑(数据)模型

逻辑数据模型是严格定义的一组概念的集合,它通常包含数据结构、数据操作和完整性约束三个部分。其中:

①数据结构是指对实体和实体间联系的表达和实现。如关系模型中的域、属性、关系等。

②数据操作是指对数据库的检索和更新(包括插入、删除、修改等)两类操作。

③数据完整性约束给出数据及其联系所具有的制约和依赖规则。这些规则用于限定数据库的状态及状态的变化,以保证数据库中数据的正确性。如在关系模型中,任何关系必须满足实体完整性()和参照完整性两个条件。

不同的DBMS可能基于不同的逻辑数据模型,常见有:层次模型(Hierarchical Model)、网状模型(Network Model)、关系模型(Relational Model)、面向对象模型(Object-oriented Model)和对象关系模型(Object Relational Model)等,它是按计算机系统的观点对数据建模,主要用于DBMS的实现。

6.模式(Schema)

DBMS通常采用三级模式结构,其中的二层映像保证了数

据的物理独立性和数据的逻辑独立性。

图2 DBMS的三级模式结构

(1) 外模式(子模式)

External Schema是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述。是数据库用户(包括应用程序员和最终用户)的数据视图。

DBMS提供外模式描述语言(外模式DDL)定义外模式。

(2) 模式(逻辑模式)

Schema是数据库中全体数据的逻辑结构和特征的描述。是数据库数据在逻辑上的视图。一个数据库只有一个模式。

定义模式不仅要定义数据的逻辑结构(例如,数据记录由哪些数据项构成,数据项的名字、类型、取值范围等),而且要定义数据之间的联系,定义与数据有关的安全性、完整性要求。

DBMS提供模式描述语言(模式DDL)定义模式。

(3) 内模式(存储模式)

Internal Schema是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。如,记录是堆(无序)存储、按照B树结构存储还是按hash方法存储;索引是B+索引还是hash索引结构;数据是否压缩存储,是否加密;记录是定长还是变长结构,记录能否跨页等。一个数据库只有一个内模式。

DBMS提供内模式描述语言(内模式DDL)定义内模式。

图3 各种人员的数据视图

7.二层映像

(1) 外模式/模式映像(有多个)

定义了外模式与模式之间的对应关系。这些映像定义通

常包含在各自外模式的描述中。

当模式改变时(例如增加新的关系、新的属性、改变属性

的数据类型等),由DBA对每个外模式/模式的映象作相应改

变,可使外模式保持不变。应用程序是依据数据的外模式编

写的,从而应用程序不必修改,保证了数据的逻辑独立性。

(2) 模式/内模式映像

它定义了数据库全局逻辑结构与存储结构之间的对应关

系。例如,说明逻辑记录和字段在内部是如何表示的。该映

象定义通常包含在模式描述中。

当数据库的存储结构改变了(例如选用了另一种存储结

构),由DBA对模式/内模式映象作相应改变,可使模式保持

不变,从而应用程序也不必改变。保证了数据与程序的物理

独立性,简称数据的物理独立性。

8.SQL数据库的体系结构

支持SQL (Structured Query Language)的RDBMS同样支

持关系数据库三级模式结构(图4),其中外模式对应于视图(View)和部分基本表(Base Table),模式对应于基本表,内

模式对应于存储文件(Stored File)。在SQL中,关系模式

称“基本表”(Base Table),存储模式称“存储文件”,子模

式称为“视图”(View)。

(1)基本表

是本身独立存在的表,在SQL中一个关系就对应一个表。

一个(或多个)基本表对应一个存储文件,一个表可以带若干

索引,索引也存放在存储文件中。

CREATE TABLE <表名> (<列名> <数据类型>[列级完整性

约束条件][<列名> <数据类型>[列级完整性约束条件]]

...[,<表级完整性约束条件>];

[例1]建立一个学生表Student。

CREATE TABLE Student(Sno CHAR(9) PRIMARY KEY,/*sNO是主码*/

Sname CHAR(20)UNIQUE,/* Sname取唯一值*/

Ssex CHAR(2),

Sage SMALLINT,/* 半字长二进制整数*/

Sdept CHAR(20)

);

(2)存储文件

存储文件的逻辑结构组成了关系数据库的内模式。存储

文件的物理结构是任意的,对用户是透明的。

(3)视图

视图是从一个或几个基本表导出的表。它本身不独立存

储在数据库中,即数据库中只存放视图的定义而不存放视图

对应的数据,这些数据仍存放在导出视图的基本表中,因此

视图是一个虚表。视图在概念上与基本表等同,用户可以在

视图上再定义视图。

CREATE VIEW <视图名>[<列名>[,<列名>]···)]

AS <子查询> [WITH CHECK OPTION];

[例1]建立信息系学生的视图。

CREATE VIEW IS_Student/*隐含由SELECT子句中的3个列名组成*/ AS SELECT Sno,Sname,Sage FROM Student

WHERE Sdept=’IS’;

图4 SQL数据库的体系结构

9.事务(Transaction)

Transaction是指对数据库的一组操作序列。以BEGIN TRANSACTION语句开始,以COMMIT语句或ROLLBACK结束。

典型地具有ACID特性,即Atomicity(原子性)、Consistency(一致性)、Isolation(隔离性)、Durability

(永久性)。

原子性(atomicity)。一个事务是一个不可分割的工作单位,

事务中包括的诸操作要么都做,要么都不做。

一致性(consistency)。事务必须是使数据库从一个一致性

状态变到另一个一致性状态。一致性与原子性是密切相关的。

隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。

持久性(durability)。持续性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。

1.2 应用软件系统的体系结构

单机版

C/S(胖客户)

网络版

三层(多层)

单机版是指应用软件系统不通过网络直接与数据库建立连接,存取数据库中的数据。用户界面也不是网页形式。这类软件可以用Delphi 、C++等编程工具进行开发。

网络版是指应用软件系统通过网络与数据库建立连接,存取数据库中的数据。

在C/S,客户端需要较高的配置,而且客户层不易维护。

在多层体系结构(表示层,业务逻辑层,数据访问层)中,用户可以在提供浏览器的任何一台计算机上与远端的服务器进行数据交互。用户界面是网页形式。分布结构如下图。

图5 三层体系的物理结构

IIS:Internet Information Server是Web服务器。此外还配置了应用服务器、数据库服务器。

1.3 数据库与信息系统(Information System)

信息系统是提供信息和辅助人们对环境进行决策与控制的系统。

●数据库是信息系统的核心和基础,它把信息系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。

●数据库是信息系统的各个部分能否紧密地结合在一起以及如何结合的关键所在。

1.4 数据库设计(Database Design)的任务与步骤

数据库设计:数据库设计人员根据应用需求(信息需求和处理需求)在系统环境(操作系统和硬件配置、DBMS选择等)下使用已有的设计技术开发一个数据库的过程。

技术:指各种设计工具。包括算法、文档规范及其编制

方法、用户的数据表示(如图、表等)、各种转换规则、数据库定义技术、程序设计技术等。

1.数据库设计的基本任务

是根据一个单位的信息需求和处理需求,以及所选DBMS 的特点等设计出能够满足用户需求的数据库模式。

信息需求:是指要求应用软件系统能够提供给用户的所有信息。如提供各种统计报表、产品销售情况等。

处理需求:是指一个单位经常需要对数据进行的各种操作,如统计商品订货情况。

2.数据库设计的基本步骤

数据库设计的过程通常可分为以下几个阶段:

(1)数据库设计的需求分析

(2)数据库的概念设计

(3)数据库的逻辑设计

(4)数据库的物理设计

(5)数据库的实现设计

(6)数据库的运行和维护

需求分析:了解和认识应用领域,确定数据需求和处理需求。

概念设计:是对应用领域进行概念(语义)建模,建立概念模型,为逻辑设计提供基础。

逻辑设计:是在概念设计的基础上,利用一些映射关系得到一组关系模式集,然后用关系数据理论对关系模式进行优化。

物理设计:是根据所选DBMS提供的各种手段设计数据库的内模式(包括索引结构等)。

数据库的实现设计:是指用DBMS提供的数据定义语言和其它实用程序将数据库逻辑设计和物理设计结果严格描述出来。之后数据就可以入库了。

数据库试运行合格后,数据库设计工作基本完成,即可投入正式运行。但是,由于应用环境在不断变化,此外数据库运行过程中物理存储也会不断变化,对数据库设计进行评价、调整、修改等维护工作是一个长期的任务,也是设计工作的继续和提高。

与DBMS无关与DBMS有关与DBMS有关

注意:数据库设计是一个复杂、循环的过程,需要考虑

很多细节问题。每个设计步骤很难一次成功,常常进行到某

一步后,因当前设计未实现用户目标或未满足系统限制,或

者由于增加了额外的新需求,需要返回到前面的某一步重设

计,这种循环还可能重复多次。

3.数据库管理员的职责

数据库是一种共享的资源,需要有人进行数据库的规划、

设计、协调、维护和管理等工作,负责这些工作的人员或集

体称为数据库管理员(Data Base Administrator,DBA)。

在许多情况下,数据库设计人员往往由DBA担当。

(1)决定数据库的信息内容和结构

DBA必须参加数据库设计的全过程,并与用户、应用程序

员、系统分析员密切合作共同协商,搞好数据库设计。

(2)决定数据库的存储结构和存取策略

(3)定义数据的安全性要求和完整性约束条件

DBA负责确定各个用户对数据库的存取权限、数据的保密

级别和完整性约束条件。

(4)监控数据库的使用和运行

周期性地转储数据、维护日志文件等工作。

1.5 数据库应用程序的生命周期

数据库应用程序生命周期包括:数据库规划、系统定义、

需求的收集与分析、数据库设计和应用程序设计、实现、数

据转换与加载、测试、维护等阶段。

注意:数据库应用程序生命周期并不是严格顺序进行的,

而是通过反复循环包含前面步骤的一些重复。例如在数据库

设计期间遇到了问题,可能就要收集和分析其它的需求。

数据转换:将数据从一种表示形式转变为另一种表示形

式的过程。

U盘作业:

Solve in relational algebra the following queries involving the CAP database,table and attribute definitions for the CAP

1. Get the names of customers who order at least one product priced at $0.50.

2. Find cids of all customers who don’t place any order through agent a0

3.

3. Retrieve customers who place orders only through agent a03.

4. Find products that have never been ordered by a customer based in New York through an agent based in Boston.

5. Get names of customers who order all products priced at $0.50.

6. Get cids of customers who order all products that anybody orders.

7. Get aids of agents who take orders on at least that set of products ordered by c004.

8. Get cids of customers who order both products p01 and p07.

9. Get cids of customers who place an order through at least one agent who places an order for product p03.

10. G et cids of all customers who have the same discount as any customer in Dallas or Boston.

11. Get pids of products not ordered by any customer living in a city whose name begin with the letter D.

12. List pids of products that are ordered through agents who place orders for (possibly different) customers who order at least one product from an agent who has placed an order for customer c001.

相关文档
最新文档