1、Department of computer science & technologyNJUST,Database Systems 数据库系统,数据库系统,2.5学分上课、 0.5学分上机 ,共3学分。 学习目的:掌握数据库系统的基本概念、原理和方法;学会有效地使用数据库管理系统,完成数据库的设计和对数据库的编程。 学习方法:理论结合实践。 考核方式及要求: 作业(20):按时认真完成作业。 实验(10):完成上机实验并提交实验报告。 闭卷考试(70)。,数据库系统,参考书 Jeffrey D.Ullman, Jennifer Widom. 数据库系统基础教程(原书第3版). 岳丽华等译. 机
2、械工业出版社. 2009. Abraham Silberschatz, Henry F.Korth, S.Sudarshan. Database System Concepts (Fourth Edition). 机械工业出版社. http:/www-db.stanford.edu/ullman/fcdb.html,数据库系统世界 关系数据模型 *关系数据库设计理论 高级数据库模型 代数和逻辑查询语言 *数据库语言SQL 约束与触发器 视图与索引 服务器环境下的SQL 关系数据库的新课题,数据库系统基础教程,1 数据库系统世界,1.1 数据库系统的发展 1.2 数据库管理系统概述 1.3 本课
3、程内容,1.1 数据库系统的发展,数据库是什么? 数据库是数据(信息)的集合。 数据库可以存储大量的数据。 数据库中的数据可能需要存储很长时间。 数据库中的数据可以为多用户多应用服务。 数据库中的数据按特定的结构存储。 数据库中的数据需要进行定义、存取、控制等有效的管理。 数据库是由数据库管理系统(database management system ,简称DBMS)管理的数据集合。,1.1 数据库系统的发展,数据库应用: 银行:客户,账户,交易,贷款等 航空:飞机,航班,客户,预定等 学校:学生,教师,课程,成绩等 销售:产品,顾客,订单,进货,售后等 人力资源:职工,考勤,业绩,工资等Da
4、tabases touch all aspects of our lives.,1.1 数据库系统的发展,数据库管理系统(DBMS )应具有以下功能 提供数据定义语言(DDL, Data Definition Language)用以建立数据库并说明它们的模式(schema)。 一个数据库的模式是一组用DDL表达的语句集合,完整描述该数据库数据的逻辑结构。 提供数据查询语言(DQL, Data Query Language)和数据操作语言(DML, Data Manipulation Language)以支持数据查询或数据更新的能力。 支持超大量数据的长时间存储,many terabytes(1
5、012 bytes) or more, 并且在数据查询和更新时支持对数据的有效存取。,1.1 数据库系统的发展,数据库管理系统(DBMS )应具有以下功能 具有持久性,在遇到各种故障、错误或用户的错误使用时,提供数据库的恢复功能。 支持数据共享,控制多个用户对数据的同时存取,不允许一个用户的操作影响另一个用户,也不允许对数据的不完整操作。,1.1 数据库系统的发展,文件系统,数据以文件的形式长期保存,可以存储大量数据 数据的物理结构与逻辑结构有了区别 文件形式多样化 数据的存取以记录为单位,1.1 数据库系统的发展,文件系统的问题,缺少完整的数据结构及数据关系的定义 数据冗余及不一致性 缺乏特
6、定的文件查询语言,读写数据不方便 无法说明特定的对数据的约束 例如:账户余额 0,1.1 数据库系统的发展,文件系统的问题,当多个用户或进程对文件并发访问时,可能出现数据的不一致性 例如: 两位客户同时更新同一个账户的余额 可能出现不完整的操作 例如: 两位客户之间的转账 安全性问题 很难限制用户只能读取数据或记录中的某一部分,1.1 数据库系统的发展,数据库系统,指采用了数据库技术的计算机系统。 数据库不仅反映数据本身的内容,同时也反映数据之间的关系。 在数据库中是用数据模型来对现实世界进行抽象的。 数据模型是数据库系统中用于提供信息表示和操作手段的形式架构。,1.1 数据库系统的发展,La
7、te 1960s and 1970s: 硬盘技术的发展使数据的直接读写成为可能 层次模型和网状模型数据库得到广泛应用早期的 DBMS 不支持高级的查询语言。,1.1 数据库系统的发展,1970: Ted Codd 提出关系数据模型 Received the ACM Turing Award in 1981 IBM Research begins System R prototype 主要思想: 数据库中的数据全部以表的形式呈现给用户, 这种表被称作关系。可以用高级查询语言表达查询从而提高程序员的编程效率。,1.1 数据库系统的发展,1980s: 关系数据库由原型发展为商用。 SQL becom
8、es industrial standard 并行分布式数据库系统 面向对象的数据库系统,1990s: 大型决策支持系统及数据挖掘技术得到发展 Large multi-terabyte data warehouses(数据仓库) Emergence(出现) of Web commerce(商务),2000s: XML(可扩展模型语言) and XQuery standards,1.2 数据库管理系统概述,负责数据库存取、维护和管理的软件系统,通常称为数据库管理系统(DataBase Management System, DBMS)。 数据库系统的各类用户对数据库的各种操作请求,都是由DBMS完
9、成的。 数据库系统的核心软件。,1.2 数据库管理系统概述,1.2 数据库管理系统概述,Application 1,Application 2,. . .,Application n,DBMS,database,Database Management System,单线框 系统成分 双线框 内存中的数据结构 实线 控制和数据流 虚线 数据流 P4 图1-1 数据库管理系统组成,1.2 数据库管理系统概述,两种用户: 普通用户和应用程序:发出查询或修改命令。 数据库管理员(database administrator,DBA): 负责数据库结构或模式。三种数据库指令: Queries , upd
10、ates : commands to affect the content of the database or extract(提取) data from the database. Transaction(事务) commands: commands to tell the transaction manager when transactions begin and end. DDL commands: 由DBA发出的修改数据库模式或建立新数据库的指令.,1.2 数据库管理系统概述,存储和缓冲区管理器: includes the storage manager and the buffe
11、r manager: 存储管理器: 控制数据在磁盘上的位置及其在磁盘和主存之间的移动, 跟踪文件在磁盘上的位置,根据缓冲区管理器的请求获取包含请求文件的一个或多个磁盘块。 缓冲区管理器: 负责将可用主存分割成不同的缓冲区并对之进行管理。,1.2 数据库管理系统概述,信息的种类: 数据: the contents of the database itself. 元数据(Metadata): 描述数据库的结构及约束(constraints)的数据库模式。 索引(Indexes): 支持对数据库中数据进行有效存取的数据结构。 统计数据: 由DBMS收集存储的关于数据特征的数据。 日志记录: 数据库新
12、近修改的信息, 该信息支持数据库的持久性 (durability)。,单线框 系统成分 双线框 内存中的数据结构 实线 控制和数据流 虚线 数据流,1.2 数据库管理系统概述,事务处理器: 事务 (Transaction): 一组数据库操作。 事务管理器: 接收来自应用的事务命令,负责系统数据的完整性,保证并发运行的多个SQL命令相互不冲突;保证系统出现故障时不丢失不损坏数据。 并发控制管理器(调度器): 保证事务的原子性 (atomcity) 和隔离性 (isolation)。 Lock. 日志和恢复管理器: 保证事务的持久性 (durability) 。 Logging.,1.2 数据库管
13、理系统概述,ACID 性质 Atomicity: either all of a transaction be executed or none of it is. Consistency(一致性): keep consistent state. Isolation(隔离性): When two or more transactions run concurrently, their effects must be isolated from one another. Durability(持久性): If a transaction has completed its work, its e
14、ffect should not get lost while the system fail, even if it fails immediately after the transaction completes.,1.2 数据库管理系统概述,查询处理器: Query compiler(编译器): 将查询转换成某种内部形式,称为查询计划.Query parser(分析器): 构造查询树.Query preprocessor(预处理器): 生成初始查询 计划Query optimizer(优化器): 利用统计数据及索引 Execution engine: 执行选定查询计划的每一步,为了对数
15、据进行操作,它必须将数据由数据库 读入缓冲区,必须与调度器交流以避免读到加锁的数据,它还要与日志管理器交互以保证所有数据库的改变都被日志正确地记录。,单线框 系统成分 双线框 内存中的数据结构 实线 控制和数据流 虚线 数据流,1.2 数据库管理系统概述,Client/Server (C/S) architecture,DB Client,DB Client,DB Server,Java C/C+ PowerBuilder Delphi VB ,MS Access MS SQL Server Sybase MySQL Oracle IBM DB2 ,Client(客户): 发出查询或其它指令的
16、用户进程 Server(服务器): 处理查询或其它指令的服务器进程,1.3 本课程内容,本课程的学习分为三个部分: 设计:如何设计一个数据库? 我们介绍如何从需求分析开始, 进行数据建模, 以及关系数据库设计. 编程:如何在数据库中表达查询以及各种操作? 实施:如何建立和使用数据库(上机实践)?,1.3.1 数据库设计,数据库设计第 4章: 高级数据库模型 实体-联系模型第 2章: 关系数据模型 从E/R模型到关系数据库模式第 3章: 关系数据库设计理论,1.3.2 数据库程序设计,数据库程序设计 2.4 :代数查询语言 第 5章: 代数和逻辑查询语言 第 6章: 数据库语言SQL 第 7章:
17、 约束与触发器 第 8章: 视图与索引 第 9章: 服务器环境下的SQL 第10章: 关系数据库的新课题,为某商品销售公司构作一个销售业务数据库系统,该系统至少应管理以下内容: 公司分为多个下属部门(Department),如“江苏销售部”,“上海销售部”等。每个部门有若干销售员(Salesman),每个销售员有唯一的员工号(如“E0025”)和身份证号,也包含姓名、性别、出生日期、电话等信息。一个销售员仅属于一个部门,且每个部门有一个销售员担任部门经理。 。 系统应管理客户信息(Customer),包含:名称、省、市、单位名称、电话等。 系统应管理所有销售的商品(Product):制造商(如
18、“春兰”、“海尔”)、种类(如“摩托车”、“空调机”)、规格(如“MT125”型摩托车、“RE1500”型空调)、价格、功能及性能描述。 该系统用销售订单(Sales order)表示销售业务。每个订单有一个订单号和签订日期,且对应一个客户和一个销售员。一个订单至少销售一种产品,并可销售多种产品,且每种产品应确定其销售数量和单价,以计算销售金额。,1.3.3 数据库应用实例,实体/联系模型,1.3.3 数据库应用实例,关系数据模型:Customer (custid, name, prov, city, phone, unit) Product (prodid, factory, type, s
19、pec, price, desc) Salesman (empid, idno, name, gender, phone, deptid) Department (deptid, name, headerid) Salesorder (orderno, signdate, empid, custid) Salesitem (orderno, lineno, prodid, singlecost, quantity),1.3.3 数据库应用实例,关系代数表达式:1 求姓名为 “张平”的销售员的职工号及电话号码。 empid,phone(name=张平 (Salesman)2 求与职工号为“E00
20、56”的销售员交易过的所有顾客的姓名及电话号码。name,phone(empid=E0056 (Salesorder Customer),SQL语言:1 求姓名为 “张平”的销售员的职工号及电话号码。SELECT empid, phone FROM salesman WHERE name = 张平;2 求与职工号为“E0056”的销售员交易过的所有顾客的姓名及电话号码。SELECT name, phoneFROM salesorder NATURAL JOIN customerWHERE empid = E0056;,Database Systems,作业:,阅读第1章。 通过上网或其它途径查阅资料,了解数据库的概念,数据库技术的发展与现状,并详细了解一个库存管理系统的信息需求和功能需求:需要管理哪些数据?数据的结构及关系是怎样的?对这些数据通常有哪些操作?,