数据库系统原理 叶 文 北京邮电大学 计算机学院 2013年2月,北京 Database System Concepts YE Wen School of Computer Science and Technology Beijing University of Posts and Telecommunications COURSE INTRODUCTION Syllabus for Database System Principles China Computing Curricula 2005/08 (CCC2005/08) Body of Knowledge in Computer Science Areas of Knowledge in Database Systems Contents of Class Teaching Basic Experiments on DB2 and Sybase Course Design Some Issues to Be Emphasized PART 1 Syllabus for Database System Principles The syllabus is about basic information about this course, such as course overviews, lecture meetings, faculty, text book and references, course objects and curricula, assignments and projects, grading policy, and class policies, etc. for more details, see the file Syllabus for Database System Principles.doc attached Database System is an essential part of Information Management (IM) knowledge area specified in China Computing Curricula 2008 by ACM and IEEE/CS Syllabus for Database System Principles (cont.) In Beijing University of Posts and Telecommunications, Database System Principles is a required course for about 450 juniors majoring in computer science and technology according to the cultivation plans. This course is taught in Chinese and English, and the English textbook used is DATABASE SYSTEM CONCEPTS (Fifth Edition), written by Abraham Silberschatz, etc.. Syllabus for Database System Principles (cont.) Course Contents The teaching of Database System includes three parts, i.e., In-class teaching of Database System (48 teaching hours) Basic after-class experiments on DB2, Sybase (17 teaching hours) Professional practice in DB2, Sybase (about 10 days, 40 teaching hours), i.e. Course Design Syllabus for Database System Principles (cont.) SQL Server, DB2, Sybase technologies and products are taken as case studies, applied to the class teaching, the basic experiments, and the professional practice in the course of Database Systems Syllabus for Database System Principles (cont.) With respect to in-class Teaching, SQL Server, DB2, Sybase are taken as case studies, their principles and key technologies are incorporated into the teaching contents, such as DBS and DBMS architectures Relational DBS DBS Development Database Management System (DBMS) PART 2 China Computing Curricula 2005/2008 China Computing Curricula 2005/2008 中国计算机科学与技术教程CCC2005/2008 参照IEEE-CS&ACM制定的Computing Curricula 2003/2006 计算机科学与技术学科的四个专业 计算机科学 计算机工程 软件工程 信息技术 China Computing Curricula 2005/2008 (cont.) 知识与课程体系 包括:知识领域(areas),知识单元(unit) in areas,知识 点(topics) in units 课程体系:基础课程,主干课程,特色课程 不同的专业方向上,知识领域和知识单元有所不同 Body of Knowledge in Computer Science 包括如下14个知识领域: CS-AR计算机体系结构与组织 CS-AL算法与复杂性 CS-HC人机交互 CS-OS操作系统 CS-PF程序设计基础 CS-SP社会与职业问题 CS-SE软件工程 CS-DS离散结构 CS-NC以网络为中心的计算 CS-PL程序设计语言 Body of Knowledge in Computer Science(cont.) CS-GV图形学与可视化计算 CS-IS智能系统 CS-IM信息管理: 核心课程“数据库系统原理” CS-CN数值计算科学 Body of Knowledge in Computer Science(cont.) —— Knowledge units in CS-IM信息管理 CS-IM IM1 信息模型与信息系统 信息管 (4) 理(34) IM2 数据库系统(4) IM3 数据建模(6) IM4 关系数据库(2) IM5 数据库查询语言(6 ) IM6 关系数据库设计(6 ) IM7 事务处理(6) IM8 分布式数据库 IM9 物理数据库设计 IM10 数据挖掘 IM11 信 息 存 储 与 信 息 检索 IM12 超文本和超媒体 IM13 多 媒 体 信 息 与 多媒体系统 IM14 数字图书馆 Body of Knowledge in Computer Science(cont.) —— Knowledge Topics in CS-IM信息管理 IM1 信息模型和信息系统(核心) 知识点: 信息系统简介,组织中的信息系统 信息存储和信息检索 信息获取和信息表示 信息管理应用程序 业务信息系统 信息系统中的搜索、检索、连接、导航 信息保密、信息完整性、信息安全性 信息的重要特征与特性 (如可伸缩性、有效性和可 行性) Body of Knowledge in Computer Science(cont.) —— Knowledge Topics in CS-IM信息管理 IM2数据库系统(核心) 知识点: 数据库系统简介 数据库系统的组件 DBMS功能 数据库的体系结构和数据完整性 数据库查询语言概述 Body of Knowledge in Computer Science(cont.) —— Knowledge Topics in CS-IM信息管理 IM3数据模型化(核心) 知识点: 数据模型 概念模型(如:实体—联系模型) 面向对象模型(语义对象模型) 关系数据模型 IM4 关系数据库(核心) 知识点: 概念模式映射为关系模式 实体完整性与参照完整性 关系代数与关系演算 Body of Knowledge in Computer Science(cont.) —— Knowledge Topics in CS-IM信息管理 IM5 数据库查询语言(核心) 知识点: 数据库查询语言概述(DDL, DML, DCL) SQL (数据定义、查询模式、更新子语言、约束及完 整性控制) 查询优化策略 QBE和第四代环境 嵌入式SQL 对象查询初步 Body of Knowledge in Computer Science(cont.) —— Knowledge Topics in CS-IM信息管理 IM6 关系数据库设计(核心) 知识点: 数据库设计的概念 函数依赖与范式(1NF, 2NF, 3NF, BCNF) 用多值依赖作规范化(4NF) 用连接依赖作规范化(投影—连接范式) IM7 事务处理(核心) 知识点: 事务处理 故障和恢复 并发控制 Body of Knowledge in Computer Science(cont.) —— Knowledge Topics in CS-IM信息管理 IM8 分布式数据库(选修) 知识点: 分布式数据存储 分布式查询处理 分布式事务模型 并发控制 分布式提交与分布式封锁 客户机—服务器机制 Body of Knowledge in Computer Science(cont.) —— Knowledge Topics in CS-IM信息管理 IM9 物理数据库设计(选修) 知识点: 存储结构和文件结构 索引结构(顺序文件上的索引、辅助索引) B树 散列表 签名文件 稠密索引文件 变长记录文件 数据库效率和协调 Body of Knowledge in Computer Engineering 包括如下18个知识领域: CE-ALG 算法与复杂度 CE-CAO 计算机体系结构和组织 CE-CSE 计算机系统工程 CE-CSG 电路和信号 CE-DBS 数据库系统 CE-DIG 数字逻辑 CE-DSP 数字信号处理 CE-ELE 电子学 CE-ESY 嵌入式系统 CE-HCI 人机交互 Body of Knowledge in Computer Engineering(cont.) CE-NWK 计算机网络 CE-OPS 操作系统 CE-PRF 程序设计基础 CE-SPR 社会和职业问题 CE-SWE 软件工程 CE-VLS VLSI设计与构造 CE-DSC 离散结构 CE-PRS 概率和统计 Body of Knowledge in Computer Engineering (cont.) —— Knowledge units in CE-DBS 数据库系统 CE-DBS 数据库 系 统 (10) DBS0 历史与概述 (1) DBS1 数据库系统 (2) DBS2 数据建模 (2) DBS3 关系数据库 (3) DBS4 数 据 库 查 询 语 言 (2) DBS5 DBS6 DBS7 DBS8 关系数据库设计 事务处理 分布式数据库 物理数据库设计 Body of Knowledge in Software Engineering 包括如下10个知识领域: SE-CMP 计算基础: 涉及核心课程DBS SE-FND 数学和工程基础 SE-PRF 职业实践 SE-MAA软件建模与分析 涉及核心课程DBS SE-DES 软件设计 SE-VAV 软件验证与确认 SE-EVO 软件进化 SE-PRO 软件过程 SE-QUA 软件质量 SE-MGT 软件管理 Body of Knowledge in Software Engineering (cont.) —— Knowledge units in CS270 数据库 信息模型和系统 数据库系统 数据建模 关系数据库 数据库查询语言 关系数据库设计 事务处理 分布式数据库 数据库的物理设计 最小核心学时 13,授课学时 48,实验学时 16 Body of Knowledge in Information Technology 包括如下12个知识领域: IT-ITF信息技术基础(34) IT-HCI人机交互(29) IT-IAS 信息保障和安全 (23) IT-IM 信息管理 (34) : 涉及核心课程DBS IT-IPT集成程序设计及技术 (23) IT-NET计算机网络(19) IT-PF程序设计基础 (38) IT-PT平台技术(14) Body of Knowledge in Information Technology (cont.) IT-SA系统管理和维护(11) IT-SIA系统集成和体系结构(21) IT-SP信息技术与社会环境(23) IT-SP信息技术与社会环境(23) IT-WS系统和技术(21) Body of Knowledge in Information Technology (cont.)——Knowledge Units in IT-IM IT-IM 信息管理 (34) IM.fun IM.dql IM.dor IM.dm IM.mg IM.spc 信息管 理 的概念 和基础知识(8) 数据库 查 询语言 (9) 数据组 织 和体系 结构 (7) 数据建模 (6) 数据库 环 境的管 理(3) 特殊用 途 的数据 库(1) PART3 Contents of Class Teaching Teaching contents principles and implementation/development techniques of DBS taking SQL Server, DB2, Sybase as case studies in inclass teaching, after-class experiments, and course design C++程序开发: 数据结构,程序设计, 软件工程, …. SQL查询语句/程序开发(§3, §4 ); 数据库应用程序开发DBAS(§7) C++ programs 程序编译/编译器: 词法/语法/语义分析; 中间代码生成与优化; 目标代码生成 查询处理与优化/DBMS (§13, §14) : 扫描和语法/语义分析; 查询优化; 查询代码/执行计划生成; 目标代码 事务执行/DBMS (§15, §16, §17) : 程序执行/OS: 进程/线程管理; 并发控制与调度; 死锁处理; 事务管理; 事务并发控制与调度; 事务死锁处理; 故障恢复 应用数据的存储与访问/DB: 程序与数据的存储与访问/OS: 基于文件系统的数据组织与存储; 基于文件系统/IO系统的数据访问; 基于数据模型(§2/5/9/10),设计数据库 ( §1/6/7/9 );在数据库文件中存储应用数据,快速 访问数据库文件中的应用数据( §11/12 ); Contents of Class Teaching(cont.) Main parts in the textbook 1. DBS Principles (基本理论) data model — Chapter1, PART1(Chapter2), PART3 (Chapter9, Chapter10) — Appendix A, B databases — PART2(chapter 3—4) — PART3(chapter9) Contents of Class Teaching(cont.) 2. DBS design (数据库应用系统开发) DBS的生命周期与设计过程 数据库设计 — PART2(Chapter 6, 7) — PART9(App.C) 应用开发 — Chapter9 Contents of Class Teaching(cont.) 3. DBS ( or DBMS) implementation 存储管理: PART4 (chapter11-12) 查询处理: — PART4(chapter13-14) 事务管理 — PART5(Chapter15-17) — PART8(Chapter25) DBS体系结构: PART7 (Chapter 20-22) Contents of Class Teaching(cont.) 4. CASE STUDIES PART9(Chapter26-29) PostgreSQL, SQL Server, Oracle, DB2 Contents of Class Teaching(cont.) Relations to Other Courses 数据结构: — data model: 复杂数据结构 + 语义描述 + 数据操作 离散数学:关系模型 操作系统: 文件子系统,I/O子系统,进程管理 编译原理: 查询处理与优化 软件工程:DBS系统的设计方法 面向对象技术:object-oriented DBS C++ programs 词法/语法/语义分析 中间代码生成 / 编 译 器 (中间)代码优化 Chapter 13, 14 目标代码生成 目标程序代码 process / thread 关系代数表达式&查询树 查询优化 (§14) (优化后)查询执行计划 查询代码生成 (§13) 查询计划执行的代码 理 (§15) transaction 并 发事 控务 制调 度 & 死 锁 处 理 扫描和语法/语义分析 事 务 事 处 Chapter 理 务 管 15,16, 17 / DBMS OS 并 发进 控程 制调 度 & / 程 序 进 执 程 行 管 理 Query processing / DBMS 程 序 编 译 SQL query 死 锁 处 理 (§16) 恢 复 技 术 (§17) PART4 Basic Experiments on DB2, Sybase In parallel with course learning, each student is directed to make several basic after-class Experiments on DB2, Sybase independently, to get the students to have a better grasp of their knowledge about DBS learned in the classes and become skilled at operating practical DBS like DB2, Sybase The experiment on DB2, Sybase to learn SQL’s functionality of data definition, including defining of tables and views The experiment on DB2, Sybase to learn SQL’s functionality of data query, including simple query, complex query, and nested query Basic Experiments on DB2, Sybase (cont.) The experiment on DB2, Sybase Enterprise Manager to learn building and maintaining of DBS, including Insert, Delete, and Update operations on DB The experiment on SQL Server to learn security mechanisms, including users, roles, and privileges on data access The experiment on SQL Server to learn integrity mechanisms, including defining constraints and triggers in Transaction-SQL The experiment on SQL Server to learn backup and recovery mechanisms in DBS Basic Experiments on DB2, Sybase (cont.) 实验安排 2人一组 随着课堂学习的进度逐步布置8组实验 由院实验中心的专职指导老师负责实验指导和上机验收 实验指导老师: ( ); 时间、地点:??,主楼院实验中心 913室 Part5 Course Design (cont.) As the seamless part of computer discipline specified in China Computer Curriculum 2005/2008, the Professional Practice of Database Systems course is conducted during the Summer short term (at the end of the second semester) on basis of principles and development of database systems , DB2, Sybase learned in course learning and basic experiments, the student teams are directed to design and develop a demos of telecommunications-area-oriented database application systems — GSM网络无线信道利用率分析) Part5 Course Design 应用程序1 API, e.g.ODBC, JDBC 数据库文 件 应用程序2 DBMS … DB query language e.g. SQL Users DBMS DBS, DBAS DB Part 6 Some Issues to Be Emphasized Bilingual teaching and English textbooks bilingual teaching in universities is an important policy decided by Ministry of Education, also by BUPT it is better for students to read the English textbook written by Abraham Silberschat etc. directly, not to use Chineseversion of the textbook for this course Tests, examination, and grading 课堂纪律 实验、课程设计独立完成,不要抄袭 期末考试成绩过低 重修 Some Issues to Be Emphasized 常识知识 related to DB e.g. 主流DB产品 注意积累 种瓜得瓜,种豆得豆 要分 ?! (cont.) Thanks for your attention